diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md
new file mode 100644
index 00000000..accbbb00
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug.md
@@ -0,0 +1,34 @@
+---
+name: Bug report
+about: Use this form to submit a bug report about something not working in OnionShare
+---
+- [ ] I have already searched the issue queue for my error message or symptom
+
+
+## Details about your operating system
+
+Operating system: (e.g. Linux / Windows)
+Version/distribution: (e.g. Ubuntu 22.04 / Debian Bookworm / macOS Ventura, etc)
+
+Version of Onionshare: (e.g. 2.6.2)
+
+## How did you install OnionShare
+
+- [ ] Native Mac/Windows package
+- [ ] Flatpak
+- [ ] Snap
+- [ ] Pip (command line)
+- [ ] Via my Linux distribution's package manager
+- [ ] From source
+
+## What is the problem
+
+Please replace this text with the problem you experienced.
+
+Please try to include logs if safe to do so (run OnionShare cli or desktop with -v from a terminal).
+
+Make sure to omit any onion addresses or 'Private Key'/passwords if they would deanonymize you or your recipient!
+
+
+## Anything else you'd like to tell us?
+
diff --git a/.github/ISSUE_TEMPLATE/feature.md b/.github/ISSUE_TEMPLATE/feature.md
new file mode 100644
index 00000000..e4664e30
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature.md
@@ -0,0 +1,16 @@
+---
+name: Feature request
+about: Use this form to submit a suggestion about a feature you think OnionShare should have.
+---
+- [ ] I have already searched the issue queue for my feature request
+
+## Your feature idea
+
+Please write it here.
+
+Please note that we are not looking to add the following features:
+
+ * Ability to host a dynamic website requiring databases or anything not considered 'static'
+ * Database backends to store persistent information about use of Share or Receive mode, e.g statistics
+ * Chat, voice or other instant messaging services
+ * High availability for Onion Services (e.g OnionBalance)
diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md
new file mode 100644
index 00000000..bf3e38cb
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/question.md
@@ -0,0 +1,9 @@
+---
+name: Question or support
+about: Use this form if it is neither a bug nor a feature, but you just had a question.
+---
+
+## Your uestion
+
+Please write it here.
+
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index c897875d..f1042869 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -12,18 +12,18 @@ jobs:
build-win64:
runs-on: windows-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Install python
- uses: actions/setup-python@v4
+ uses: actions/setup-python@v5
with:
- python-version: "3.11.6"
+ python-version: "3.12.8"
- name: Install poetry
- run: C:\hostedtoolcache\windows\Python\3.11.6\x64\python -m pip install poetry
+ run: C:\hostedtoolcache\windows\Python\3.12.8\x64\python -m pip install poetry
- name: Restore cache - poetry
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: ~\AppData\Local\pypoetry\Cache\virtualenvs
key: ${{ runner.os }}-win64-poetry-${{ hashFiles('desktop/poetry.lock') }}
@@ -31,27 +31,27 @@ jobs:
- name: Install poetry dependencies
run: |
cd desktop
- 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
+ C:\hostedtoolcache\windows\Python\3.12.8\x64\Scripts\poetry install
+ C:\hostedtoolcache\windows\Python\3.12.8\x64\Scripts\poetry env list --full-path
- name: Restore cache - tor
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: desktop\build\tor
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.11.6\x64\Scripts\poetry run python .\scripts\get-tor.py win64
+ run: cd desktop && C:\hostedtoolcache\windows\Python\3.12.8\x64\Scripts\poetry run python .\scripts\get-tor.py win64
- - name: Install Go >=1.21.1
- uses: actions/setup-go@v4
+ - name: Install Go >=1.23.5
+ uses: actions/setup-go@v5
with:
- go-version: ">=1.21.1"
+ go-version: ">=1.23.5"
cache: false
- run: go version
- name: Restore cache - obfs4proxy
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: desktop\onionshare\resources\tor\obfs4proxy.exe
key: ${{ runner.os }}-win64-obfs4proxy-${{ hashFiles('desktop/scripts/build-pt-obfs4proxy.ps1') }}
@@ -67,7 +67,7 @@ jobs:
}
- name: Restore cache - snowflake
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: desktop\onionshare\resources\tor\snowflake-client.exe
key: ${{ runner.os }}-win64-snowflake-${{ hashFiles('desktop/scripts/build-pt-snowflake.ps1') }}
@@ -83,7 +83,7 @@ jobs:
}
- name: Restore cache - meek
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: desktop\onionshare\resources\tor\meek-client.exe
key: ${{ runner.os }}-win64-meek-${{ hashFiles('desktop/scripts/build-pt-meek.ps1') }}
@@ -101,36 +101,36 @@ jobs:
- name: Build OnionShare
run: |
cd desktop
- 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
+ C:\hostedtoolcache\windows\Python\3.12.8\x64\Scripts\poetry run python .\setup-freeze.py build
+ C:\hostedtoolcache\windows\Python\3.12.8\x64\Scripts\poetry run python .\scripts\build-windows.py cleanup-build
- name: Compress
shell: pwsh
run: |
- mv desktop\build\exe.win-amd64-3.11\ ~\onionshare-win64
+ mv desktop\build\exe.win-amd64-3.12\ ~\onionshare-win64
Compress-Archive -LiteralPath ~\onionshare-win64 -DestinationPath ~\onionshare-win64.zip
- - uses: actions/upload-artifact@v3
+ - uses: actions/upload-artifact@v4
with:
name: win64-build
path: ~\onionshare-win64.zip
build-mac-intel:
- runs-on: macos-latest
+ runs-on: macos-13
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- - name: Install Python 3.11.6 (universal2)
+ - name: Install Python 3.12.8 (universal2)
run: |
- 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 /
+ curl -L https://www.python.org/ftp/python/3.12.8/python-3.12.8-macos11.pkg --output ~/Downloads/python.pkg
+ cd ~/Downloads && echo "c411b5372d563532f5e6b589af7eb16e95613d61bd5af7bfe78563467130bbff python.pkg" | shasum -a 256 --check && sudo installer -pkg python.pkg -target /
- name: Install poetry
run: |
curl -sSL https://install.python-poetry.org | python3 -
- name: Restore cache - poetry
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: ~/Library/Caches/pypoetry/virtualenvs
key: ${{ runner.os }}-macos-poetry-${{ hashFiles('desktop/poetry.lock') }}
@@ -141,7 +141,7 @@ jobs:
~/Library/Application\ Support/pypoetry/venv/bin/poetry install
- name: Restore cache - tor
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: desktop/build/tor
key: ${{ runner.os }}-macos-tor-${{ hashFiles('desktop/scripts/get-tor.py') }}
@@ -151,15 +151,15 @@ jobs:
cd desktop
~/Library/Application\ Support/pypoetry/venv/bin/poetry run python ./scripts/get-tor.py macos
- - name: Install Go >=1.21.1
- uses: actions/setup-go@v4
+ - name: Install Go >=1.23.5
+ uses: actions/setup-go@v5
with:
- go-version: ">=1.21.1"
+ go-version: ">=1.23.5"
cache: false
- run: go version
- name: Restore cache - obfs4proxy
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: desktop/onionshare/resources/tor/obfs4proxy
key: ${{ runner.os }}-macos-obfs4proxy-${{ hashFiles('desktop/scripts/build-pt-obfs4proxy.sh') }}
@@ -174,7 +174,7 @@ jobs:
fi
- name: Restore cache - snowflake
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: desktop/onionshare/resources/tor/snowflake-client
key: ${{ runner.os }}-macos-snowflake-${{ hashFiles('desktop/scripts/build-pt-snowflake.sh') }}
@@ -189,7 +189,7 @@ jobs:
fi
- name: Restore cache - meek
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: desktop/onionshare/resources/tor/meek-client
key: ${{ runner.os }}-macos-meek-${{ hashFiles('desktop/scripts/build-pt-meek.sh') }}
@@ -212,6 +212,10 @@ jobs:
cp -r /Volumes/Postgres-2.6.5-14/Postgres.app /Applications/
hdiutil detach /Volumes/Postgres-2.6.5-14
+ - name: Touch dylib file for build to finish
+ run: |
+ touch /usr/local/lib/libmimerapi.dylib
+
- name: Build OnionShare
run: |
cd desktop
@@ -223,7 +227,7 @@ jobs:
cd desktop/build
tar -czvf ~/onionshare-macos-intel.tar.gz OnionShare.app
- - uses: actions/upload-artifact@v3
+ - uses: actions/upload-artifact@v4
with:
name: mac-intel-build
path: ~/onionshare-macos-intel.tar.gz
@@ -231,7 +235,7 @@ jobs:
build-flatpak:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Setup
run: |
@@ -240,13 +244,13 @@ jobs:
flatpak remote-add --if-not-exists --user flathub https://flathub.org/repo/flathub.flatpakrepo
- name: Restore cache - .flatpak-builder
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: flatpak/.flatpak-builder
key: flatpak-.flatpak-builder-${{ hashFiles('flatpak/org.onionshare.OnionShare.yaml') }}
- name: Restore cache - build
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: flatpak/build
key: flatpak-build-${{ hashFiles('flatpak/org.onionshare.OnionShare.yaml') }}
@@ -254,10 +258,10 @@ jobs:
- name: Flatpak build
run: |
cd flatpak
- flatpak-builder build --force-clean --install-deps-from=flathub --install --user org.onionshare.OnionShare.yaml
+ flatpak-builder build --force-clean --verbose --install-deps-from=flathub --install --user org.onionshare.OnionShare.yaml
flatpak build-bundle ~/.local/share/flatpak/repo ~/OnionShare.flatpak org.onionshare.OnionShare --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo
- - uses: actions/upload-artifact@v3
+ - uses: actions/upload-artifact@v4
with:
name: flatpak-build
path: ~/OnionShare.flatpak
@@ -265,10 +269,10 @@ jobs:
build-snap:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Restore cache - lxd
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: ~/lxd_cache.tar.gz
key: snap-lxd-${{ hashFiles('snap/snapcraft.yaml') }}
@@ -287,14 +291,14 @@ jobs:
sudo ufw disable
- name: Build snap
- run: sudo snapcraft
+ run: sudo snapcraft -v
- 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
+ - uses: actions/upload-artifact@v4
with:
name: snapcraft-build
path: onionshare_*.snap
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index da7ac335..911e0af5 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -15,7 +15,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
- python-version: "3.9"
+ python-version: "3.10"
- name: Install dependencies
run: |
sudo apt-get update
@@ -41,7 +41,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
- python-version: "3.9"
+ python-version: "3.10"
- name: Install dependencies
run: |
sudo apt-get update
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a0715f83..3c0766a4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,24 @@
# OnionShare Changelog
+## 2.6.3
+
+* Feature: It is now possible to view what URLs are visited in Share/Website mode using the CLI tool, with `--log-filenames`.
+* Feature: It is now possible to automatically start a saved persistent onion tab, once OnionShare itself starts and once Tor is connected.
+* Bug fix: It is now once again possible to request bridges and use meek as a Pluggable Transport.
+* Bug fix: Fixed a fatal error with Censorship Circumvention when no bridges are returned.
+* Bug fix: Fixed an issue with lack of gevent with SocketIO on systems that don't have it.
+* Bug fix: Fixed a thread-related race condition segfault with the CLI tool on shutdown.
+* Bug fix: Fixed an issue with the 'auto-stop timer' when the CLI tool is being used in 'Share mode' and someone has visited the share at least once. Desktop was unaffected, as were all other modes.
+* Locales: Gaeilge, Slovenčina and Tamil languages introduced, and various other translations in existing languages added or improved (thanks to the translators!)
+* Documentation: Added examples of using a systemd unit file for persistent onions, and various other clarifications.
+* Documentation: Documented all the config file parameters and what they mean, as well as that for persistent onion json files.
+* Packaging: Built the snap with a cleanup step in such a way that it should work on Ubuntu 24.04 and higher. Unfortunately, we have to drop support for armhf for now, as there are no PySide6 packages available on Pypi to install for that architecture. However, ARM64 is supported.
+* Packaging: Fixed ARM64 packaging for Flatpak.
+* Packaging: Many internal packaging improvements that make it easier for us to release snap and flatpak.
+* Miscellaneous: Many dependency updates to Python libraries, Tor, Snowflake
+* Miscellaneous: Various minor bug fixes/warning messages resolved, and minor changes to some wording for the 'Save this tab' option to make it clearer that this means 'persistent onion address'.
+* Miscellaneous: Nicer and more intuitive icons with better dark mode support.
+
## 2.6.2
* Security fix: Removes newlines from History item path
diff --git a/RELEASE.md b/RELEASE.md
index 4f5a8407..41d00927 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -74,10 +74,16 @@ Update the versions of `meek`, `obfs4proxy`, and `snowflake` in the `desktop/scr
### Make sure Snapcraft packaging works
+Ensure you have the ability to run `poetry export`. You may need to run `poetry self add poetry-plugin-export@latest`, as in recent versions of Poetry it is now a plugin rather than in the core.
+
+Enter the `cli` directory and run `poetry export > ../snap/local/cli-requirements.txt`
+
+Enter the `desktop` directory and run `poetry export > ../snap/local/desktop-requirements.txt`. Now edit this file and remove the first line that has a `-e` with a path to the `cli` folder - we don't want it.
+
In `snap/snapcraft.yaml`:
+- [ ] Update the version number near the top of the file.
- [ ] 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
To test locally:
@@ -93,33 +99,30 @@ With every commit to the `main` branch, Snapcraft's CI should trigger builds. Ma
In `flatpak/org.onionshare.OnionShare.yaml`:
-- [ ] 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
+- [ ] Update `tor` and `libevent`
+- [ ] Update `obfs4proxy`, `meek-client`, and `snowflake-client` dependencies. To do this, edit the script `flatpak/generate-golang-dependencies.py` and make sure that the repository URLs and tags are the latest versions. Then run this command from the root of the onionshare repository folder:
- # For each these, incorporate the output into the Flatpak manifest
- # Make sure to update the version numbers
- ./flatpak-go-deps.py gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/meek.git/meek-client@v0.38.0
- ./flatpak-go-deps.py gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git/client@v2.6.0
- ./flatpak-go-deps.py gitlab.com/yawning/obfs4.git/obfs4proxy@obfs4proxy-0.0.14
+ ```sh
+ ./flatpak/generate-golang-dependencies.py
```
- 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
+- [ ] Update the Python dependencies. This is super hacky. You need to use both the poetry and pip parts of [this tool](https://github.com/flatpak/flatpak-builder-tools), but the version from [this PR](https://github.com/flatpak/flatpak-builder-tools/pull/353):
+ ```sh
# 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
+ cd flatpak-build-tools/poetry
+ ./flatpak-poetry-generator.py ../../onionshare/cli/poetry.lock --production
+ ../flatpak-json2yaml.py ./generated-poetry-sources.json
+ mv generated-poetry-sources.yml onionshare-cli.yaml
# get onionshare dependencies
+ cd flatpak-build-tools/pip
./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.
+
+ Now, move `onionshare-desktop.yaml` and `onionshare-cli.yaml` into the `flatpak/` folder. For the `onionshare-cli.yaml` file, adjust the `pip3 install` step so that it includes the `--use-pep517` argument.
+
- [ ] 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
@@ -156,6 +159,7 @@ From https://snapcraft.io/onionshare/releases (you must be logged in), promote t
- [ ] Create a new branch in https://github.com/flathub/org.onionshare.OnionShare for the version
- [ ] Overwrite the manifest in the flathub repo with the updated version in [flatpak/org.onionshare.OnionShare.yaml](./flatpak/org.onionshare.OnionShare.yaml)
- [ ] Edit it so that the sources for `onionshare` and `onionshare-cli` are the GitHub repo, with the correct git tag, rather than the local filesystem
+- [ ] Ensure you also copy across the `onionshare-cli.yaml`, `onionshare-desktop.yaml`, `meek-client`, `snowflake` and `obfs4proxy` from the `flatpak/` folder into the flathub repository, so that the flathub repository has all the latest dependencies.
- [ ] Make a PR in the flathub repo, and merge it to make a release
### Windows release
diff --git a/build-source.sh b/build-source.sh
index 887135a2..9610d52e 100755
--- a/build-source.sh
+++ b/build-source.sh
@@ -46,7 +46,7 @@ then
echo "Tag does not verify"
exit 1
fi
-cat ../verify.txt | grep -e "using RSA key 927F419D7EC82C2F149C1BD1403C2657CD994F73" -e "using RSA key 2E530667425F4B93874935707B7F1772C0C6FCBF"
+cat ../verify.txt | grep -e "using RSA key 927F419D7EC82C2F149C1BD1403C2657CD994F73" -e "using RSA key 2E530667425F4B93874935707B7F1772C0C6FCBF" -e "using RSA key 3804565A5EFA6C11AFDA0E5359B3F0C24135C6A9"
if [ $? -ne 0 ]
then
echo "Tag signed with wrong key"
diff --git a/cli/onionshare_cli/__init__.py b/cli/onionshare_cli/__init__.py
index d84a1eec..3ea0d76d 100644
--- a/cli/onionshare_cli/__init__.py
+++ b/cli/onionshare_cli/__init__.py
@@ -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(
+ "--log-filenames",
+ action="store_true",
+ dest="log_filenames",
+ default=False,
+ help="Log file download activity to stdout"
+ )
parser.add_argument(
"--qr",
action="store_true",
@@ -204,6 +211,7 @@ def main(cwd=None):
disable_files = args.disable_files
disable_csp = bool(args.disable_csp)
custom_csp = args.custom_csp
+ log_filenames = bool(args.log_filenames)
verbose = bool(args.verbose)
# Verbose mode?
@@ -242,6 +250,7 @@ def main(cwd=None):
mode_settings.set("persistent", "mode", mode)
if mode == "share":
mode_settings.set("share", "autostop_sharing", autostop_sharing)
+ mode_settings.set("share", "log_filenames", log_filenames)
if mode == "receive":
if data_dir:
mode_settings.set("receive", "data_dir", data_dir)
@@ -259,6 +268,7 @@ def main(cwd=None):
if custom_csp:
mode_settings.set("website", "custom_csp", custom_csp)
mode_settings.set("website", "disable_csp", False)
+ mode_settings.set("website", "log_filenames", log_filenames)
else:
# See what the persistent mode was
mode = mode_settings.get("persistent", "mode")
@@ -505,7 +515,7 @@ def main(cwd=None):
if not app.autostop_timer_thread.is_alive():
if mode == "share":
# If there were no attempts to download the share, or all downloads are done, we can stop
- if web.share_mode.cur_history_id == 0 or web.done:
+ if not web.share_mode.download_in_progress or web.share_mode.cur_history_id == 0 or web.done:
print("Stopped because auto-stop timer ran out")
web.stop(app.port)
break
@@ -531,6 +541,7 @@ def main(cwd=None):
finally:
# Shutdown
web.cleanup()
+ t.join()
onion.cleanup()
diff --git a/cli/onionshare_cli/censorship.py b/cli/onionshare_cli/censorship.py
index 4cff4862..caa8dd24 100644
--- a/cli/onionshare_cli/censorship.py
+++ b/cli/onionshare_cli/censorship.py
@@ -238,21 +238,23 @@ class CensorshipCircumvention(object):
bridges_ok = False
self.settings = settings
- # @TODO there might be several bridge types recommended.
- # Should we attempt to iterate over each type if one of them fails to connect?
- # But if so, how to stop it starting 3 separate Tor connection threads?
- # for bridges in request_bridges["settings"]:
- bridges = bridge_settings["settings"][0]["bridges"]
- bridge_strings = bridges["bridge_strings"]
+ # We iterate over each group of bridges returned in settings.
+ # The first set of valid bridges are the ones we use.
+ if bridge_settings.get("settings", False):
+ for returned_bridge_settings in bridge_settings["settings"]:
+ if returned_bridge_settings.get("bridges", False):
+ bridges = returned_bridge_settings["bridges"]
+ bridge_strings = bridges["bridge_strings"]
- self.settings.set("bridges_type", "custom")
+ self.settings.set("bridges_type", "custom")
- # Sanity check the bridges provided from the Tor API before saving
- bridges_checked = self.common.check_bridges_valid(bridge_strings)
+ # Sanity check the bridges provided from the Tor API before saving
+ bridges_checked = self.common.check_bridges_valid(bridge_strings)
- if bridges_checked:
- self.settings.set("bridges_custom", "\n".join(bridges_checked))
- bridges_ok = True
+ if bridges_checked:
+ self.settings.set("bridges_custom", "\n".join(bridges_checked))
+ bridges_ok = True
+ break
# If we got any good bridges, save them to settings and return.
if bridges_ok:
diff --git a/cli/onionshare_cli/common.py b/cli/onionshare_cli/common.py
index 67d89571..724122b5 100644
--- a/cli/onionshare_cli/common.py
+++ b/cli/onionshare_cli/common.py
@@ -19,6 +19,7 @@ along with this program. If not, see .
"""
import base64
import hashlib
+import importlib.resources as importlib_resources
import os
import platform
import random
@@ -29,7 +30,6 @@ import threading
import time
import shutil
import re
-from pkg_resources import resource_filename
import colorama
from colorama import Fore, Back, Style
@@ -313,9 +313,10 @@ class Common:
"""
Returns the absolute path of a resource
"""
- path = resource_filename("onionshare_cli", os.path.join("resources", filename))
- self.log("Common", "get_resource_path", f"filename={filename}, path={path}")
- return path
+ ref = importlib_resources.files("onionshare_cli.resources") / filename
+ with importlib_resources.as_file(ref) as path:
+ self.log("Common", "get_resource_path", f"filename={filename}, path={str(path)}")
+ return str(path)
def get_tor_paths(self):
if self.platform == "Linux":
@@ -484,16 +485,16 @@ class Common:
if bridge != "":
# Check the syntax of the custom bridge to make sure it looks legitimate
ipv4_pattern = re.compile(
- "(obfs4\s+)?(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]):([0-9]+)(\s+)([A-Z0-9]+)(.+)$"
+ r"(obfs4\s+)?(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]):([0-9]+)(\s+)([A-Z0-9]+)(.+)$"
)
ipv6_pattern = re.compile(
- "(obfs4\s+)?\[(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\]:[0-9]+\s+[A-Z0-9]+(.+)$"
+ r"(obfs4\s+)?\[(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\]:[0-9]+\s+[A-Z0-9]+(.+)$"
)
meek_lite_pattern = re.compile(
- "(meek_lite)(\s)+([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:[0-9]+)(\s)+([0-9A-Z]+)(\s)+url=(.+)(\s)+front=(.+)"
+ r"(meek_lite)(\s)+([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:[0-9]+)(\s)+([0-9A-Z]+)(\s)+url=(.+)(\s)+front=(.+)"
)
snowflake_pattern = re.compile(
- "(snowflake)(\s)+([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:[0-9]+)(\s)+([0-9A-Z]+)"
+ r"(snowflake)(\s)+([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:[0-9]+)(\s)+([0-9A-Z]+)"
)
if (
ipv4_pattern.match(bridge)
diff --git a/cli/onionshare_cli/meek.py b/cli/onionshare_cli/meek.py
index 81ef6c6e..7fcc39a0 100644
--- a/cli/onionshare_cli/meek.py
+++ b/cli/onionshare_cli/meek.py
@@ -51,8 +51,8 @@ class Meek(object):
) = get_tor_paths()
self.meek_proxies = {}
- self.meek_url = "https://moat.torproject.org.global.prod.fastly.net/"
- self.meek_front = "cdn.sstatic.net"
+ self.meek_url = "https://1723079976.rsc.cdn77.org/"
+ self.meek_front = "www.phpmyadmin.net"
self.meek_env = {
"TOR_PT_MANAGED_TRANSPORT_VER": "1",
"TOR_PT_CLIENT_TRANSPORTS": "meek",
diff --git a/cli/onionshare_cli/mode_settings.py b/cli/onionshare_cli/mode_settings.py
index 90bcaf07..cfd9971c 100644
--- a/cli/onionshare_cli/mode_settings.py
+++ b/cli/onionshare_cli/mode_settings.py
@@ -40,7 +40,11 @@ class ModeSettings:
"client_auth_priv_key": None,
"client_auth_pub_key": None,
},
- "persistent": {"mode": None, "enabled": False},
+ "persistent": {
+ "mode": None,
+ "enabled": False,
+ "autostart_on_launch": False
+ },
"general": {
"title": None,
"public": False,
@@ -48,14 +52,23 @@ class ModeSettings:
"autostop_timer": False,
"service_id": None,
},
- "share": {"autostop_sharing": True, "filenames": []},
+ "share": {
+ "autostop_sharing": True,
+ "filenames": [],
+ "log_filenames": False,
+ },
"receive": {
"data_dir": self.build_default_receive_data_dir(),
"webhook_url": None,
"disable_text": False,
"disable_files": False,
},
- "website": {"disable_csp": False, "custom_csp": None, "filenames": []},
+ "website": {
+ "disable_csp": False,
+ "custom_csp": None,
+ "log_filenames": False,
+ "filenames": []
+ },
"chat": {},
}
self._settings = {}
diff --git a/cli/onionshare_cli/onion.py b/cli/onionshare_cli/onion.py
index 6e1dad74..85576c2b 100644
--- a/cli/onionshare_cli/onion.py
+++ b/cli/onionshare_cli/onion.py
@@ -27,13 +27,14 @@ import base64
import nacl.public
import os
import psutil
+import re
import shlex
import subprocess
import tempfile
import time
import traceback
-from distutils.version import LooseVersion as Version
+from packaging.version import Version
class TorErrorAutomatic(Exception):
@@ -658,7 +659,8 @@ class Onion(object):
# Does this version of Tor support next-gen ('v3') onions?
# Note, this is the version of Tor where this bug was fixed:
# https://trac.torproject.org/projects/tor/ticket/28619
- self.supports_v3_onions = self.tor_version >= Version("0.3.5.7")
+ cleaned_tor_version = re.sub(r"\s*\(.*\)", "", self.tor_version)
+ self.supports_v3_onions = Version(cleaned_tor_version) >= Version("0.3.5.7")
# Now that we are connected to Tor, if we are using built-in bridges,
# update them with the latest copy available from the Tor API
diff --git a/cli/onionshare_cli/resources/torrc_template-meek_lite_azure b/cli/onionshare_cli/resources/torrc_template-meek_lite_azure
index 91374975..8ddac227 100644
--- a/cli/onionshare_cli/resources/torrc_template-meek_lite_azure
+++ b/cli/onionshare_cli/resources/torrc_template-meek_lite_azure
@@ -1,2 +1,2 @@
# Enable built-in meek-azure bridge
-Bridge meek_lite 192.0.2.18:80 BE776A53492E1E044A26F17306E1BC46A55A1625 url=https://meek.azureedge.net/ front=ajax.aspnetcdn.com
+Bridge meek_lite 192.0.2.20:80 url=https://1314488750.rsc.cdn77.org front=www.phpmyadmin.net utls=HelloRandomizedALPN
diff --git a/cli/onionshare_cli/resources/torrc_template-snowflake b/cli/onionshare_cli/resources/torrc_template-snowflake
index 0ca1edae..b52411cd 100644
--- a/cli/onionshare_cli/resources/torrc_template-snowflake
+++ b/cli/onionshare_cli/resources/torrc_template-snowflake
@@ -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=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
+Bridge snowflake 192.0.2.3:80 2B280B23E1107BB62ABFC40DDCC8824814F80A72 fingerprint=2B280B23E1107BB62ABFC40DDCC8824814F80A72 url=https://1098762253.rsc.cdn77.org/ fronts=www.cdn77.com,www.phpmyadmin.net ice=stun:stun.antisip.com:3478,stun:stun.epygi.com:3478,stun:stun.uls.co.za:3478,stun:stun.voipgate.com:3478,stun:stun.mixvoip.com:3478,stun:stun.nextcloud.com:3478,stun:stun.bethesda.net:3478,stun:stun.nextcloud.com:443 utls-imitate=hellorandomizedalpn
+Bridge snowflake 192.0.2.4:80 8838024498816A039FCBBAB14E6F40A0843051FA fingerprint=8838024498816A039FCBBAB14E6F40A0843051FA url=https://1098762253.rsc.cdn77.org/ fronts=www.cdn77.com,www.phpmyadmin.net ice=stun:stun.antisip.com:3478,stun:stun.epygi.com:3478,stun:stun.uls.co.za:3478,stun:stun.voipgate.com:3478,stun:stun.mixvoip.com:3478,stun:stun.nextcloud.com:3478,stun:stun.bethesda.net:3478,stun:stun.nextcloud.com:443 utls-imitate=hellorandomizedalpn
diff --git a/cli/onionshare_cli/resources/version.txt b/cli/onionshare_cli/resources/version.txt
index 097a15a2..ec1cf33c 100644
--- a/cli/onionshare_cli/resources/version.txt
+++ b/cli/onionshare_cli/resources/version.txt
@@ -1 +1 @@
-2.6.2
+2.6.3
diff --git a/cli/onionshare_cli/settings.py b/cli/onionshare_cli/settings.py
index 9ee65a87..4cd56ee9 100644
--- a/cli/onionshare_cli/settings.py
+++ b/cli/onionshare_cli/settings.py
@@ -76,7 +76,7 @@ class Settings(object):
"el": "Ελληνικά", # Greek
"is": "Íslenska", # Icelandic
# "id": "Bahasa Indonesia", # Indonesian
- # "ga": "Gaeilge", # Irish
+ "ga": "Gaeilge", # Irish
"it": "Italiano", # Italian
"ja": "日本語", # Japanese
"km": "ខ្មែរ", # Khmer(Central)
@@ -91,10 +91,11 @@ class Settings(object):
"ru": "Русский", # Russian
"sn": "chiShona", # Shona
# "sr_Latn": "Srpska (latinica)", # Serbian (latin)
- # "sk": "Slovenčina", # Slovak
+ "sk": "Slovenčina", # Slovak
"es": "Español", # Spanish
"sw": "Kiswahili", # Swahili
"sv": "Svenska", # Swedish
+ "ta": "Tamil", # Tamil
# "te": "తెలుగు", # Telugu
"tr": "Türkçe", # Turkish
"uk": "Українська", # Ukrainian
diff --git a/cli/onionshare_cli/web/send_base_mode.py b/cli/onionshare_cli/web/send_base_mode.py
index ca79b99f..e55841a8 100644
--- a/cli/onionshare_cli/web/send_base_mode.py
+++ b/cli/onionshare_cli/web/send_base_mode.py
@@ -25,7 +25,7 @@ import mimetypes
import gzip
from flask import Response, request
from unidecode import unidecode
-from urllib.parse import quote
+from urllib.parse import quote, unquote
class SendBaseModeWeb:
@@ -132,6 +132,9 @@ class SendBaseModeWeb:
self.set_file_info_custom(filenames, processed_size_callback)
def directory_listing(self, filenames, path="", filesystem_path=None, add_trailing_slash=False):
+ """
+ Display the front page of a share or index.html-less website, listing the files/directories.
+ """
# Tell the GUI about the directory listing
history_id = self.cur_history_id
self.cur_history_id += 1
@@ -151,6 +154,11 @@ class SendBaseModeWeb:
# If filesystem_path is None, this is the root directory listing
files, dirs = self.build_directory_listing(path, filenames, filesystem_path, add_trailing_slash)
+
+ # Mark the request as done so we know we can close the share if in auto-stop mode.
+ self.web.done = True
+
+ # Render and return the response.
return self.directory_listing_template(
path, files, dirs, breadcrumbs, breadcrumbs_leaf
)
@@ -170,18 +178,18 @@ class SendBaseModeWeb:
if is_dir:
if add_trailing_slash:
dirs.append(
- {"link": os.path.join(f"/{path}", filename, ""), "basename": filename}
+ {"link": os.path.join(f"/{path}", quote(filename), ""), "basename": filename}
)
else:
dirs.append(
- {"link": os.path.join(f"/{path}", filename), "basename": filename}
+ {"link": os.path.join(f"/{path}", quote(filename)), "basename": filename}
)
else:
size = os.path.getsize(this_filesystem_path)
size_human = self.common.human_readable_filesize(size)
files.append(
{
- "link": os.path.join(f"/{path}", filename),
+ "link": os.path.join(f"/{path}", quote(filename)),
"basename": filename,
"size_human": size_human,
}
@@ -228,11 +236,11 @@ class SendBaseModeWeb:
chunk_size = 102400 # 100kb
fp = open(file_to_download, "rb")
- done = False
- while not done:
+ self.web.done = False
+ while not self.web.done:
chunk = fp.read(chunk_size)
if chunk == b"":
- done = True
+ self.web.done = True
else:
try:
yield chunk
@@ -245,8 +253,17 @@ class SendBaseModeWeb:
or self.common.platform == "Linux"
or self.common.platform == "BSD"
):
+ if self.web.settings.get(self.web.mode, "log_filenames"):
+ # Decode and sanitize the path to remove newlines
+ decoded_path = unquote(path)
+ decoded_path = decoded_path.replace("\r", "").replace("\n", "")
+ filename_str = f"{decoded_path} - "
+ else:
+ filename_str = ""
+
sys.stdout.write(
- "\r{0:s}, {1:.2f}% ".format(
+ "\r{0}{1:s}, {2:.2f}% ".format(
+ filename_str,
self.common.human_readable_filesize(
downloaded_bytes
),
@@ -264,10 +281,10 @@ class SendBaseModeWeb:
"filesize": filesize,
},
)
- done = False
+ self.web.done = False
except Exception:
# Looks like the download was canceled
- done = True
+ self.web.done = True
# Tell the GUI the individual file was canceled
self.web.add_request(
@@ -278,8 +295,7 @@ class SendBaseModeWeb:
fp.close()
- if self.common.platform != "Darwin":
- sys.stdout.write("\n")
+ sys.stdout.write("\n")
basename = os.path.basename(filesystem_path)
diff --git a/cli/onionshare_cli/web/share_mode.py b/cli/onionshare_cli/web/share_mode.py
index 6af4ae0b..49d87282 100644
--- a/cli/onionshare_cli/web/share_mode.py
+++ b/cli/onionshare_cli/web/share_mode.py
@@ -29,7 +29,7 @@ from datetime import datetime, timezone
from flask import Response, request, render_template, make_response, abort
from unidecode import unidecode
from werkzeug.http import parse_date, http_date
-from urllib.parse import quote
+from urllib.parse import quote, unquote
from .send_base_mode import SendBaseModeWeb
@@ -346,8 +346,17 @@ class ShareModeWeb(SendBaseModeWeb):
or self.common.platform == "Linux"
or self.common.platform == "BSD"
):
+ if self.web.settings.get("share", "log_filenames"):
+ # Decode and sanitize the path to remove newlines
+ decoded_path = unquote(path)
+ decoded_path = decoded_path.replace("\r", "").replace("\n", "")
+ filename_str = f"{decoded_path} - "
+ else:
+ filename_str = ""
+
sys.stdout.write(
- "\r{0:s}, {1:.2f}% ".format(
+ "\r{0}{1:s}, {2:.2f}% ".format(
+ filename_str,
self.common.human_readable_filesize(downloaded_bytes),
percent,
)
@@ -376,8 +385,7 @@ class ShareModeWeb(SendBaseModeWeb):
fp.close()
- if self.common.platform != "Darwin":
- sys.stdout.write("\n")
+ sys.stdout.write("\n")
# Download is finished
if self.web.settings.get("share", "autostop_sharing"):
diff --git a/cli/onionshare_cli/web/web.py b/cli/onionshare_cli/web/web.py
index 3a15fdc1..94c95964 100644
--- a/cli/onionshare_cli/web/web.py
+++ b/cli/onionshare_cli/web/web.py
@@ -176,11 +176,17 @@ class Web:
self.website_mode = WebsiteModeWeb(self.common, self)
elif self.mode == "chat":
if self.common.verbose:
- self.socketio = SocketIO(
- async_mode="gevent", logger=True, engineio_logger=True
- )
+ try:
+ self.socketio = SocketIO(
+ async_mode="gevent", logger=True, engineio_logger=True
+ )
+ except ValueError:
+ self.socketio = SocketIO(logger=True, engineio_logger=True)
else:
- self.socketio = SocketIO(async_mode="gevent")
+ try:
+ self.socketio = SocketIO(async_mode="gevent")
+ except ValueError:
+ self.socketio = SocketIO()
self.socketio.init_app(self.app)
self.chat_mode = ChatModeWeb(self.common, self)
diff --git a/cli/poetry.lock b/cli/poetry.lock
index 7fd9c4e2..c4cba87f 100644
--- a/cli/poetry.lock
+++ b/cli/poetry.lock
@@ -1,4 +1,4 @@
-# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand.
+# This file is automatically @generated by Poetry 2.0.1 and should not be changed by hand.
[[package]]
name = "bidict"
@@ -6,6 +6,7 @@ version = "0.22.1"
description = "The bidirectional mapping library for Python."
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
{file = "bidict-0.22.1-py3-none-any.whl", hash = "sha256:6ef212238eb884b664f28da76f33f1d28b260f665fc737b413b287d5487d1e7b"},
{file = "bidict-0.22.1.tar.gz", hash = "sha256:1e0f7f74e4860e6d0943a05d4134c63a2fad86f3d4732fb265bd79e4e856d81d"},
@@ -22,6 +23,7 @@ version = "1.7.0"
description = "Fast, simple object-to-object and broadcast signaling"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "blinker-1.7.0-py3-none-any.whl", hash = "sha256:c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9"},
{file = "blinker-1.7.0.tar.gz", hash = "sha256:e6820ff6fa4e4d1d8e2747c2283749c3f547e4fee112b98555cdcdae32996182"},
@@ -33,6 +35,8 @@ version = "1.1.0"
description = "Python bindings for the Brotli compression library"
optional = false
python-versions = "*"
+groups = ["main"]
+markers = "platform_python_implementation != \"PyPy\""
files = [
{file = "Brotli-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e1140c64812cb9b06c922e77f1c26a75ec5e3f0fb2bf92cc8c58720dec276752"},
{file = "Brotli-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c8fd5270e906eef71d4a8d19b7c6a43760c6abcfcc10c9101d14eb2357418de9"},
@@ -125,6 +129,8 @@ version = "1.1.0.0"
description = "Python CFFI bindings to the Brotli library"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
+markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "brotlicffi-1.1.0.0-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:9b7ae6bd1a3f0df532b6d67ff674099a96d22bc0948955cb338488c31bfb8851"},
{file = "brotlicffi-1.1.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19ffc919fa4fc6ace69286e0a23b3789b4219058313cf9b45625016bf7ff996b"},
@@ -160,13 +166,14 @@ cffi = ">=1.0.0"
[[package]]
name = "certifi"
-version = "2024.2.2"
+version = "2025.1.31"
description = "Python package for providing Mozilla's CA Bundle."
optional = false
python-versions = ">=3.6"
+groups = ["main"]
files = [
- {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"},
- {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"},
+ {file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"},
+ {file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"},
]
[[package]]
@@ -175,6 +182,7 @@ version = "1.16.0"
description = "Foreign Function Interface for Python calling C code."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"},
{file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"},
@@ -239,6 +247,7 @@ version = "3.3.2"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
optional = false
python-versions = ">=3.7.0"
+groups = ["main"]
files = [
{file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"},
{file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"},
@@ -338,6 +347,7 @@ version = "8.1.7"
description = "Composable command line interface toolkit"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
{file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"},
{file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"},
@@ -352,6 +362,7 @@ version = "0.4.6"
description = "Cross-platform colored terminal text."
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
+groups = ["main", "dev"]
files = [
{file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
{file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
@@ -363,6 +374,7 @@ version = "3.0.8"
description = "The Cython compiler for writing C extensions in the Python language."
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+groups = ["main"]
files = [
{file = "Cython-3.0.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a846e0a38e2b24e9a5c5dc74b0e54c6e29420d88d1dafabc99e0fc0f3e338636"},
{file = "Cython-3.0.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45523fdc2b78d79b32834cc1cc12dc2ca8967af87e22a3ee1bff20e77c7f5520"},
@@ -426,33 +438,35 @@ files = [
[[package]]
name = "dnspython"
-version = "2.5.0"
+version = "2.7.0"
description = "DNS toolkit"
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
+groups = ["main"]
files = [
- {file = "dnspython-2.5.0-py3-none-any.whl", hash = "sha256:6facdf76b73c742ccf2d07add296f178e629da60be23ce4b0a9c927b1e02c3a6"},
- {file = "dnspython-2.5.0.tar.gz", hash = "sha256:a0034815a59ba9ae888946be7ccca8f7c157b286f8455b379c692efb51022a15"},
+ {file = "dnspython-2.7.0-py3-none-any.whl", hash = "sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86"},
+ {file = "dnspython-2.7.0.tar.gz", hash = "sha256:ce9c432eda0dc91cf618a5cedf1a4e142651196bbcd2c80e89ed5a907e5cfaf1"},
]
[package.extras]
-dev = ["black (>=23.1.0)", "coverage (>=7.0)", "flake8 (>=5.0.3)", "mypy (>=1.0.1)", "pylint (>=2.7)", "pytest (>=6.2.5)", "pytest-cov (>=3.0.0)", "sphinx (>=7.0.0)", "twine (>=4.0.0)", "wheel (>=0.41.0)"]
-dnssec = ["cryptography (>=41)"]
-doh = ["h2 (>=4.1.0)", "httpcore (>=0.17.3)", "httpx (>=0.25.1)"]
-doq = ["aioquic (>=0.9.20)"]
-idna = ["idna (>=2.1)"]
-trio = ["trio (>=0.14)"]
+dev = ["black (>=23.1.0)", "coverage (>=7.0)", "flake8 (>=7)", "hypercorn (>=0.16.0)", "mypy (>=1.8)", "pylint (>=3)", "pytest (>=7.4)", "pytest-cov (>=4.1.0)", "quart-trio (>=0.11.0)", "sphinx (>=7.2.0)", "sphinx-rtd-theme (>=2.0.0)", "twine (>=4.0.0)", "wheel (>=0.42.0)"]
+dnssec = ["cryptography (>=43)"]
+doh = ["h2 (>=4.1.0)", "httpcore (>=1.0.0)", "httpx (>=0.26.0)"]
+doq = ["aioquic (>=1.0.0)"]
+idna = ["idna (>=3.7)"]
+trio = ["trio (>=0.23)"]
wmi = ["wmi (>=1.5.1)"]
[[package]]
name = "eventlet"
-version = "0.35.1"
+version = "0.39.0"
description = "Highly concurrent networking library"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+groups = ["main"]
files = [
- {file = "eventlet-0.35.1-py3-none-any.whl", hash = "sha256:7ed9493b26e02f575f4804ef263190839e9651989523f6f8f9c2866a05c12c83"},
- {file = "eventlet-0.35.1.tar.gz", hash = "sha256:3b2eede94d64538cb894eec50302a881e056ed7e057f0e24fb45b28a19d6b2e8"},
+ {file = "eventlet-0.39.0-py3-none-any.whl", hash = "sha256:9522ca09ad4c1f874c238f06492a7e217ddb13bdeace4475d3b700dd0ba1f6be"},
+ {file = "eventlet-0.39.0.tar.gz", hash = "sha256:01ba0aa6ee2452690fc02b274a2409598a13b997c7b5af9dc66600fa42015a79"},
]
[package.dependencies]
@@ -468,6 +482,8 @@ version = "1.2.0"
description = "Backport of PEP 654 (exception groups)"
optional = false
python-versions = ">=3.7"
+groups = ["dev"]
+markers = "python_version < \"3.11\""
files = [
{file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"},
{file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"},
@@ -482,6 +498,7 @@ version = "2.3.2"
description = "A simple framework for building complex web applications."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "Flask-2.3.2-py3-none-any.whl", hash = "sha256:77fd4e1249d8c9923de34907236b747ced06e5467ecac1a7bb7115ae0e9670b0"},
{file = "Flask-2.3.2.tar.gz", hash = "sha256:8c2f9abd47a9e8df7f0c3f091ce9497d011dc3b31effcf4c85a6e2b50f4114ef"},
@@ -490,7 +507,6 @@ files = [
[package.dependencies]
blinker = ">=1.6.2"
click = ">=8.1.3"
-importlib-metadata = {version = ">=3.6.0", markers = "python_version < \"3.10\""}
itsdangerous = ">=2.1.2"
Jinja2 = ">=3.1.2"
Werkzeug = ">=2.3.3"
@@ -505,6 +521,7 @@ version = "1.14"
description = "Compress responses in your Flask app with gzip, deflate or brotli."
optional = false
python-versions = "*"
+groups = ["main"]
files = [
{file = "Flask-Compress-1.14.tar.gz", hash = "sha256:e46528f37b91857012be38e24e65db1a248662c3dc32ee7808b5986bf1d123ee"},
{file = "Flask_Compress-1.14-py3-none-any.whl", hash = "sha256:b86c9808f0f38ea2246c9730972cf978f2cdf6a9a1a69102ba81e07891e6b26c"},
@@ -521,6 +538,7 @@ version = "5.3.4"
description = "Socket.IO integration for Flask applications"
optional = false
python-versions = ">=3.6"
+groups = ["main"]
files = [
{file = "Flask-SocketIO-5.3.4.tar.gz", hash = "sha256:1cbd379c9bf68ac37bcc4750d01708922fa6365d13a5447d3f8893792879410c"},
{file = "Flask_SocketIO-5.3.4-py3-none-any.whl", hash = "sha256:564acfb24dcc9545cdae536cde0323653d9b547069a925f11eeb132338aa71c0"},
@@ -536,6 +554,7 @@ version = "23.9.1"
description = "Coroutine-based network library"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "gevent-23.9.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:a3c5e9b1f766a7a64833334a18539a362fb563f6c4682f9634dea72cbe24f771"},
{file = "gevent-23.9.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b101086f109168b23fa3586fccd1133494bdb97f86920a24dc0b23984dc30b69"},
@@ -601,6 +620,7 @@ version = "0.10.1"
description = "Websocket handler for the gevent pywsgi server, a Python network library"
optional = false
python-versions = "*"
+groups = ["main"]
files = [
{file = "gevent-websocket-0.10.1.tar.gz", hash = "sha256:7eaef32968290c9121f7c35b973e2cc302ffb076d018c9068d2f5ca8b2d85fb0"},
{file = "gevent_websocket-0.10.1-py3-none-any.whl", hash = "sha256:17b67d91282f8f4c973eba0551183fc84f56f1c90c8f6b6b30256f31f66f5242"},
@@ -615,6 +635,7 @@ version = "3.0.3"
description = "Lightweight in-process concurrent programming"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
{file = "greenlet-3.0.3-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:9da2bd29ed9e4f15955dd1595ad7bc9320308a3b766ef7f837e23ad4b4aac31a"},
{file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d353cadd6083fdb056bb46ed07e4340b0869c305c8ca54ef9da3421acbdf6881"},
@@ -686,6 +707,7 @@ version = "0.14.0"
description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
{file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"},
{file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"},
@@ -693,33 +715,18 @@ files = [
[[package]]
name = "idna"
-version = "3.6"
+version = "3.10"
description = "Internationalized Domain Names in Applications (IDNA)"
optional = false
-python-versions = ">=3.5"
+python-versions = ">=3.6"
+groups = ["main"]
files = [
- {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"},
- {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"},
+ {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"},
+ {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"},
]
-[[package]]
-name = "importlib-metadata"
-version = "7.0.1"
-description = "Read metadata from Python packages"
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "importlib_metadata-7.0.1-py3-none-any.whl", hash = "sha256:4805911c3a4ec7c3966410053e9ec6a1fecd629117df5adee56dfc9432a1081e"},
- {file = "importlib_metadata-7.0.1.tar.gz", hash = "sha256:f238736bb06590ae52ac1fab06a3a9ef1d8dce2b7a35b5ab329371d6c8f5d2cc"},
-]
-
-[package.dependencies]
-zipp = ">=0.5"
-
[package.extras]
-docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"]
-perf = ["ipython"]
-testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)", "pytest-ruff"]
+all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"]
[[package]]
name = "iniconfig"
@@ -727,6 +734,7 @@ version = "2.0.0"
description = "brain-dead simple config-ini parsing"
optional = false
python-versions = ">=3.7"
+groups = ["dev"]
files = [
{file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"},
{file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"},
@@ -738,6 +746,7 @@ version = "2.1.2"
description = "Safely pass data to untrusted environments and back."
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
{file = "itsdangerous-2.1.2-py3-none-any.whl", hash = "sha256:2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44"},
{file = "itsdangerous-2.1.2.tar.gz", hash = "sha256:5dbbc68b317e5e42f327f9021763545dc3fc3bfe22e6deb96aaf1fc38874156a"},
@@ -745,13 +754,14 @@ files = [
[[package]]
name = "jinja2"
-version = "3.1.3"
+version = "3.1.5"
description = "A very fast and expressive template engine."
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
- {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"},
- {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"},
+ {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"},
+ {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"},
]
[package.dependencies]
@@ -766,6 +776,7 @@ version = "2.1.5"
description = "Safely add untrusted strings to HTML/XML markup."
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
{file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"},
{file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"},
@@ -831,13 +842,14 @@ files = [
[[package]]
name = "packaging"
-version = "23.2"
+version = "24.2"
description = "Core utilities for Python packages"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+groups = ["main", "dev"]
files = [
- {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"},
- {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"},
+ {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"},
+ {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"},
]
[[package]]
@@ -846,6 +858,7 @@ version = "1.4.0"
description = "plugin and hook calling mechanisms for python"
optional = false
python-versions = ">=3.8"
+groups = ["dev"]
files = [
{file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"},
{file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"},
@@ -861,6 +874,7 @@ version = "5.9.8"
description = "Cross-platform lib for process and system monitoring in Python."
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
+groups = ["main"]
files = [
{file = "psutil-5.9.8-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8"},
{file = "psutil-5.9.8-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73"},
@@ -889,6 +903,7 @@ version = "2.21"
description = "C parser in Python"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+groups = ["main"]
files = [
{file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"},
{file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"},
@@ -900,6 +915,7 @@ version = "1.5.0"
description = "Python binding to the Networking and Cryptography (NaCl) library"
optional = false
python-versions = ">=3.6"
+groups = ["main"]
files = [
{file = "PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1"},
{file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92"},
@@ -926,6 +942,7 @@ version = "0.20220715.0"
description = "Pure Python library for saving and loading PNG images"
optional = false
python-versions = "*"
+groups = ["main"]
files = [
{file = "pypng-0.20220715.0-py3-none-any.whl", hash = "sha256:4a43e969b8f5aaafb2a415536c1a8ec7e341cd6a3f957fd5b5f32a4cfeed902c"},
{file = "pypng-0.20220715.0.tar.gz", hash = "sha256:739c433ba96f078315de54c0db975aee537cbc3e1d0ae4ed9aab0ca1e427e2c1"},
@@ -937,6 +954,7 @@ version = "1.7.1"
description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information."
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+groups = ["main"]
files = [
{file = "PySocks-1.7.1-py27-none-any.whl", hash = "sha256:08e69f092cc6dbe92a0fdd16eeb9b9ffbc13cadfe5ca4c7bd92ffb078b293299"},
{file = "PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5"},
@@ -949,6 +967,7 @@ version = "8.0.0"
description = "pytest: simple powerful testing with Python"
optional = false
python-versions = ">=3.8"
+groups = ["dev"]
files = [
{file = "pytest-8.0.0-py3-none-any.whl", hash = "sha256:50fb9cbe836c3f20f0dfa99c565201fb75dc54c8d76373cd1bde06b06657bdb6"},
{file = "pytest-8.0.0.tar.gz", hash = "sha256:249b1b0864530ba251b7438274c4d251c58d868edaaec8762893ad4a0d71c36c"},
@@ -971,6 +990,7 @@ version = "4.9.0"
description = "Engine.IO server and client for Python"
optional = false
python-versions = ">=3.6"
+groups = ["main"]
files = [
{file = "python-engineio-4.9.0.tar.gz", hash = "sha256:e87459c15638e567711fd156e6f9c4a402668871bed79523f0ecfec744729ec7"},
{file = "python_engineio-4.9.0-py3-none-any.whl", hash = "sha256:979859bff770725b75e60353d7ae53b397e8b517d05ba76733b404a3dcca3e4c"},
@@ -990,6 +1010,7 @@ version = "5.11.1"
description = "Socket.IO server and client for Python"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "python-socketio-5.11.1.tar.gz", hash = "sha256:bbcbd758ed8c183775cb2853ba001361e2fa018babf5cbe11a5b77e91c2ec2a2"},
{file = "python_socketio-5.11.1-py3-none-any.whl", hash = "sha256:f1a0228b8b1fbdbd93fbbedd821ebce0ef54b2b5bf6e98fcf710deaa7c574259"},
@@ -1010,6 +1031,7 @@ version = "7.4.2"
description = "QR Code image generator"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
{file = "qrcode-7.4.2-py3-none-any.whl", hash = "sha256:581dca7a029bcb2deef5d01068e39093e80ef00b4a61098a2182eac59d01643a"},
{file = "qrcode-7.4.2.tar.gz", hash = "sha256:9dd969454827e127dbd93696b20747239e6d540e082937c90f14ac95b30f5845"},
@@ -1029,13 +1051,14 @@ test = ["coverage", "pytest"]
[[package]]
name = "requests"
-version = "2.31.0"
+version = "2.32.3"
description = "Python HTTP for Humans."
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+groups = ["main"]
files = [
- {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"},
- {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"},
+ {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"},
+ {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"},
]
[package.dependencies]
@@ -1051,19 +1074,24 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
[[package]]
name = "setuptools"
-version = "69.1.0"
+version = "75.8.0"
description = "Easily download, build, install, upgrade, and uninstall Python packages"
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
+groups = ["main"]
files = [
- {file = "setuptools-69.1.0-py3-none-any.whl", hash = "sha256:c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6"},
- {file = "setuptools-69.1.0.tar.gz", hash = "sha256:850894c4195f09c4ed30dba56213bf7c3f21d86ed6bdaafb5df5972593bfc401"},
+ {file = "setuptools-75.8.0-py3-none-any.whl", hash = "sha256:e3982f444617239225d675215d51f6ba05f845d4eec313da4418fdbb56fb27e3"},
+ {file = "setuptools-75.8.0.tar.gz", hash = "sha256:c5afc8f407c626b8313a86e10311dd3f661c6cd9c09d4bf8c15c0e11f9f2b0e6"},
]
[package.extras]
-docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"]
-testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"]
-testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"]
+check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.8.0)"]
+core = ["importlib_metadata (>=6)", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"]
+cover = ["pytest-cov"]
+doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"]
+enabler = ["pytest-enabler (>=2.2)"]
+test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.7.2)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"]
+type = ["importlib_metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.14.*)", "pytest-mypy"]
[[package]]
name = "simple-websocket"
@@ -1071,6 +1099,7 @@ version = "1.0.0"
description = "Simple WebSocket server and client for Python"
optional = false
python-versions = ">=3.6"
+groups = ["main"]
files = [
{file = "simple-websocket-1.0.0.tar.gz", hash = "sha256:17d2c72f4a2bd85174a97e3e4c88b01c40c3f81b7b648b0cc3ce1305968928c8"},
{file = "simple_websocket-1.0.0-py3-none-any.whl", hash = "sha256:1d5bf585e415eaa2083e2bcf02a3ecf91f9712e7b3e6b9fa0b461ad04e0837bc"},
@@ -1088,6 +1117,7 @@ version = "1.8.1"
description = "Stem is a Python controller library that allows applications to interact with Tor (https://www.torproject.org/)."
optional = false
python-versions = "*"
+groups = ["main"]
files = [
{file = "stem-1.8.1.tar.gz", hash = "sha256:81d43a7c668ba9d7bc1103b2e7a911e9d148294b373d27a59ae8da79ef7a3e2f"},
]
@@ -1098,6 +1128,8 @@ version = "2.0.1"
description = "A lil' TOML parser"
optional = false
python-versions = ">=3.7"
+groups = ["dev"]
+markers = "python_version < \"3.11\""
files = [
{file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
{file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
@@ -1109,6 +1141,7 @@ version = "4.9.0"
description = "Backported and Experimental Type Hints for Python 3.8+"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "typing_extensions-4.9.0-py3-none-any.whl", hash = "sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd"},
{file = "typing_extensions-4.9.0.tar.gz", hash = "sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783"},
@@ -1120,6 +1153,7 @@ version = "1.3.8"
description = "ASCII transliterations of Unicode text"
optional = false
python-versions = ">=3.5"
+groups = ["main"]
files = [
{file = "Unidecode-1.3.8-py3-none-any.whl", hash = "sha256:d130a61ce6696f8148a3bd8fe779c99adeb4b870584eeb9526584e9aa091fd39"},
{file = "Unidecode-1.3.8.tar.gz", hash = "sha256:cfdb349d46ed3873ece4586b96aa75258726e2fa8ec21d6f00a591d98806c2f4"},
@@ -1127,13 +1161,14 @@ files = [
[[package]]
name = "urllib3"
-version = "2.2.0"
+version = "2.3.0"
description = "HTTP library with thread-safe connection pooling, file post, and more."
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
+groups = ["main"]
files = [
- {file = "urllib3-2.2.0-py3-none-any.whl", hash = "sha256:ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224"},
- {file = "urllib3-2.2.0.tar.gz", hash = "sha256:051d961ad0c62a94e50ecf1af379c3aba230c66c710493493560c0c223c49f20"},
+ {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"},
+ {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"},
]
[package.extras]
@@ -1144,28 +1179,30 @@ zstd = ["zstandard (>=0.18.0)"]
[[package]]
name = "waitress"
-version = "2.1.2"
+version = "3.0.2"
description = "Waitress WSGI server"
optional = false
-python-versions = ">=3.7.0"
+python-versions = ">=3.9.0"
+groups = ["main"]
files = [
- {file = "waitress-2.1.2-py3-none-any.whl", hash = "sha256:7500c9625927c8ec60f54377d590f67b30c8e70ef4b8894214ac6e4cad233d2a"},
- {file = "waitress-2.1.2.tar.gz", hash = "sha256:780a4082c5fbc0fde6a2fcfe5e26e6efc1e8f425730863c04085769781f51eba"},
+ {file = "waitress-3.0.2-py3-none-any.whl", hash = "sha256:c56d67fd6e87c2ee598b76abdd4e96cfad1f24cacdea5078d382b1f9d7b5ed2e"},
+ {file = "waitress-3.0.2.tar.gz", hash = "sha256:682aaaf2af0c44ada4abfb70ded36393f0e307f4ab9456a215ce0020baefc31f"},
]
[package.extras]
docs = ["Sphinx (>=1.8.1)", "docutils", "pylons-sphinx-themes (>=1.0.9)"]
-testing = ["coverage (>=5.0)", "pytest", "pytest-cover"]
+testing = ["coverage (>=7.6.0)", "pytest", "pytest-cov"]
[[package]]
name = "werkzeug"
-version = "3.0.1"
+version = "3.0.6"
description = "The comprehensive WSGI web application library."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
- {file = "werkzeug-3.0.1-py3-none-any.whl", hash = "sha256:90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10"},
- {file = "werkzeug-3.0.1.tar.gz", hash = "sha256:507e811ecea72b18a404947aded4b3390e1db8f826b494d76550ef45bb3b1dcc"},
+ {file = "werkzeug-3.0.6-py3-none-any.whl", hash = "sha256:1bc0c2310d2fbb07b1dd1105eba2f7af72f322e1e455f2f93c993bee8c8a5f17"},
+ {file = "werkzeug-3.0.6.tar.gz", hash = "sha256:a8dd59d4de28ca70471a34cba79bed5f7ef2e036a76b3ab0835474246eb41f8d"},
]
[package.dependencies]
@@ -1180,6 +1217,7 @@ version = "0.41.3"
description = "A built-package format for Python"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
{file = "wheel-0.41.3-py3-none-any.whl", hash = "sha256:488609bc63a29322326e05560731bf7bfea8e48ad646e1f5e40d366607de0942"},
{file = "wheel-0.41.3.tar.gz", hash = "sha256:4d4987ce51a49370ea65c0bfd2234e8ce80a12780820d9dc462597a6e60d0841"},
@@ -1194,6 +1232,7 @@ version = "1.2.0"
description = "WebSockets state-machine based protocol implementation"
optional = false
python-versions = ">=3.7.0"
+groups = ["main"]
files = [
{file = "wsproto-1.2.0-py3-none-any.whl", hash = "sha256:b9acddd652b585d75b20477888c56642fdade28bdfd3579aa24a4d2c037dd736"},
{file = "wsproto-1.2.0.tar.gz", hash = "sha256:ad565f26ecb92588a3e43bc3d96164de84cd9902482b130d0ddbaa9664a85065"},
@@ -1202,27 +1241,13 @@ files = [
[package.dependencies]
h11 = ">=0.9.0,<1"
-[[package]]
-name = "zipp"
-version = "3.17.0"
-description = "Backport of pathlib-compatible object wrapper for zip files"
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"},
- {file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"},
-]
-
-[package.extras]
-docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"]
-testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"]
-
[[package]]
name = "zope-event"
version = "5.0"
description = "Very basic event publishing system"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
{file = "zope.event-5.0-py3-none-any.whl", hash = "sha256:2832e95014f4db26c47a13fdaef84cef2f4df37e66b59d8f1f4a8f319a632c26"},
{file = "zope.event-5.0.tar.gz", hash = "sha256:bac440d8d9891b4068e2b5a2c5e2c9765a9df762944bda6955f96bb9b91e67cd"},
@@ -1241,6 +1266,7 @@ version = "6.1"
description = "Interfaces for Python"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
{file = "zope.interface-6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:43b576c34ef0c1f5a4981163b551a8781896f2a37f71b8655fd20b5af0386abb"},
{file = "zope.interface-6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:67be3ca75012c6e9b109860820a8b6c9a84bfb036fbd1076246b98e56951ca92"},
@@ -1289,6 +1315,6 @@ test = ["coverage (>=5.0.3)", "zope.event", "zope.testing"]
testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"]
[metadata]
-lock-version = "2.0"
-python-versions = ">=3.8,<3.12"
-content-hash = "3fd881193c3fa5149c4141ca0d85619b763225c312d4e35d46fdd5a317ec209f"
+lock-version = "2.1"
+python-versions = ">=3.10,<3.13"
+content-hash = "92dac9c4dbbdf94b9dc1f9bf5149be1e87be7d0c6b5a2773c6f10f54cb93e76d"
diff --git a/cli/pyproject.toml b/cli/pyproject.toml
index 5b8c3023..6ee7e64a 100644
--- a/cli/pyproject.toml
+++ b/cli/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "onionshare_cli"
-version = "2.6.2"
+version = "2.6.3"
description = "OnionShare lets you securely and anonymously send and receive files. It works by starting a web server, making it accessible as a Tor onion service, and generating an unguessable web address so others can download files from you, or upload files to you. It does _not_ require setting up a separate server or using a third party file-sharing service."
authors = ["Micah Lee "]
license = "GPLv3+"
@@ -16,7 +16,7 @@ classifiers = [
]
[tool.poetry.dependencies]
-python = ">=3.8,<3.12"
+python = ">=3.10,<3.13"
click = "*"
flask = "2.3.2"
flask-compress = "^1.13"
@@ -25,23 +25,23 @@ psutil = "*"
pysocks = "*"
requests = {extras = ["socks"], version = "*"}
unidecode = "*"
-urllib3 = "*"
+urllib3 = "^2.2.2"
eventlet = "*"
-setuptools = "*"
+setuptools = ">=70.0.0"
pynacl = "*"
colorama = "*"
gevent-websocket = "*"
stem = "1.8.1"
-waitress = "^2.1.2"
-werkzeug = ">=2.3.4"
-packaging = "^23.1"
+waitress = "^3.0.1"
+werkzeug = "3.0.6"
+packaging = ">=24"
gevent = "^23.9.1"
wheel = "^0.41.2"
cffi = "^1.15.1"
cython = "^3.0.2"
qrcode = "^7.4.2"
-[tool.poetry.dev-dependencies]
+[tool.poetry.group.dev.dependencies]
pytest = ">=7.2.0"
[tool.poetry.scripts]
diff --git a/cli/setup.py b/cli/setup.py
index 2db047e5..d401afec 100644
--- a/cli/setup.py
+++ b/cli/setup.py
@@ -27,7 +27,7 @@ with open(os.path.join("onionshare_cli", "resources", "version.txt")) as f:
setuptools.setup(
name="onionshare-cli",
version=version,
- description=(
+ long_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 "
diff --git a/desktop/onionshare/gui_common.py b/desktop/onionshare/gui_common.py
index fcbf47f7..6e04c9f0 100644
--- a/desktop/onionshare/gui_common.py
+++ b/desktop/onionshare/gui_common.py
@@ -18,9 +18,9 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see .
"""
+import importlib.resources as importlib_resources
import os
import shutil
-from pkg_resources import resource_filename
from PySide6 import QtCore, QtWidgets, QtGui
from . import strings
@@ -548,8 +548,10 @@ class GuiCommon:
Returns the absolute path of a resource
"""
try:
- return resource_filename("onionshare", os.path.join("resources", filename))
- except KeyError:
+ ref = importlib_resources.files("onionshare.resources") / filename
+ with importlib_resources.as_file(ref) as path:
+ return str(path)
+ except FileNotFoundError:
return None
@staticmethod
diff --git a/desktop/onionshare/main_window.py b/desktop/onionshare/main_window.py
index 986f8720..d6f0d914 100644
--- a/desktop/onionshare/main_window.py
+++ b/desktop/onionshare/main_window.py
@@ -81,13 +81,13 @@ class MainWindow(QtWidgets.QMainWindow):
# Server status indicator icons
self.status_bar.server_status_image_stopped = QtGui.QImage(
- GuiCommon.get_resource_path("images/server_stopped.png")
+ GuiCommon.get_resource_path(f"images/{self.common.gui.color_mode}_server_stopped.svg")
)
self.status_bar.server_status_image_working = QtGui.QImage(
- GuiCommon.get_resource_path("images/server_working.png")
+ GuiCommon.get_resource_path("images/server_working.svg")
)
self.status_bar.server_status_image_started = QtGui.QImage(
- GuiCommon.get_resource_path("images/server_started.png")
+ GuiCommon.get_resource_path("images/server_started.svg")
)
# Server status indicator on the status bar
diff --git a/desktop/onionshare/moat_dialog.py b/desktop/onionshare/moat_dialog.py
index 6e33a047..428b5c91 100644
--- a/desktop/onionshare/moat_dialog.py
+++ b/desktop/onionshare/moat_dialog.py
@@ -289,7 +289,7 @@ class MoatThread(QtCore.QThread):
self.bridgedb_error.emit()
return
if moat_res["data"][0]["type"] != "moat-challenge":
- self.common.log("MoatThread", "run", f"type != moat-challange")
+ self.common.log("MoatThread", "run", f"type != moat-challenge")
self.bridgedb_error.emit()
return
diff --git a/desktop/onionshare/resources/countries/ga.json b/desktop/onionshare/resources/countries/ga.json
new file mode 100644
index 00000000..1850091c
--- /dev/null
+++ b/desktop/onionshare/resources/countries/ga.json
@@ -0,0 +1 @@
+{"ET": "an Aet\u00f3ip", "AF": "an Afganast\u00e1in", "ZA": "an Afraic Theas", "DZ": "an Ailg\u00e9ir", "AR": "an Airgint\u00edn", "AM": "an Airm\u00e9in", "AL": "an Alb\u00e1in", "AQ": "an Antartaice", "SA": "an Araib Sh\u00e1dach", "AZ": "an Asarbaise\u00e1in", "AU": "an Astr\u00e1il", "BD": "an Bhanglaid\u00e9is", "BY": "an Bhealar\u00fais", "BE": "an Bheilg", "BZ": "an Bheil\u00eds", "BA": "an Bhoisnia agus an Heirseagaiv\u00e9in", "BO": "an Bholaiv", "BW": "an Bhotsu\u00e1in", "BR": "an Bhrasa\u00edl", "BG": "an Bhulg\u00e1ir", "BI": "an Bhur\u00fain", "BT": "an Bh\u00fat\u00e1in", "KH": "an Chamb\u00f3id", "KZ": "an Chasacst\u00e1in", "KE": "an Ch\u00e9inia", "CY": "an Chipir", "KG": "an Chirgeast\u00e1in", "KR": "an Ch\u00f3ir\u00e9 Theas", "KP": "an Ch\u00f3ir\u00e9 Thuaidh", "CO": "an Chol\u00f3im", "HR": "an Chr\u00f3it", "CG": "an Cong\u00f3", "CI": "an C\u00f3sta Eabhair", "DK": "an Danmhairg", "EE": "an East\u00f3in", "EG": "an \u00c9igipt", "CH": "an Eilv\u00e9is", "ER": "an Eiritr\u00e9", "FI": "an Fhionlainn", "FR": "an Fhrainc", "GA": "an Ghab\u00fain", "GM": "an Ghaimbia", "DE": "an Ghearm\u00e1in", "GL": "an Ghraonlainn", "GR": "an Ghr\u00e9ig", "GY": "an Ghu\u00e1in", "GN": "an Ghuine", "GQ": "an Ghuine Mhe\u00e1nchiorclach", "IQ": "an Iar\u00e1ic", "IR": "an Iar\u00e1in", "IN": "an India", "ID": "an Indin\u00e9is", "IT": "an Iod\u00e1il", "JO": "an Iord\u00e1in", "NO": "an Iorua", "IS": "an \u00cdoslainn", "NL": "an \u00cdsilt\u00edr", "BQ": "an \u00cdsilt\u00edr Chairibeach", "LV": "an Laitvia", "LR": "an Lib\u00e9ir", "LY": "an Libia", "LB": "an Liob\u00e1in", "LT": "an Liotu\u00e1in", "MK": "an Mhacad\u00f3in Thuaidh", "MY": "an Mhalaeisia", "MW": "an Mhal\u00e1iv", "MR": "an Mh\u00e1rat\u00e1in", "MD": "an Mhold\u00f3iv", "MN": "an Mhong\u00f3il", "NA": "an Namaib", "NG": "an Nig\u00e9ir", "NE": "an N\u00edgir", "NC": "an Nua-Chalad\u00f3in", "NZ": "an Nua-Sh\u00e9alainn", "AT": "an Ostair", "PK": "an Phacast\u00e1in", "DO": "an Phoblacht Dhoiminiceach", "PL": "an Pholainn", "PT": "an Phortaing\u00e9il", "GB": "an R\u00edocht Aontaithe", "RO": "an R\u00f3m\u00e1in", "RU": "an R\u00fais", "EH": "an Sah\u00e1ra Thiar", "ES": "an Sp\u00e1inn", "TJ": "an T\u00e1ids\u00edceast\u00e1in", "TZ": "an Tans\u00e1in", "TH": "an T\u00e9alainn", "TW": "an T\u00e9av\u00e1in", "ZM": "an tSaimbia", "SV": "an tSalvad\u00f3ir", "JP": "an tSeap\u00e1in", "CZ": "an tSeicia", "SN": "an tSeineag\u00e1il", "RS": "an tSeirbia", "GE": "an tSeoirsia", "GS": "an tSeoirsia Theas agus Oile\u00e1in Sandwich Theas", "CL": "an tSile", "CN": "an tS\u00edn", "ZW": "an tSiomb\u00e1ib", "SY": "an tSiria", "SI": "an tSl\u00f3iv\u00e9in", "SK": "an tSl\u00f3vaic", "SO": "an tSom\u00e1il", "SE": "an tSualainn", "SD": "an tS\u00fad\u00e1in", "SS": "an tS\u00fad\u00e1in Theas", "TN": "an T\u00fain\u00e9is", "TR": "an Tuirc", "TM": "an Tuircm\u00e9anast\u00e1in", "UA": "an \u00dacr\u00e1in", "UZ": "an \u00daisb\u00e9iceast\u00e1in", "HU": "an Ung\u00e1ir", "AD": "And\u00f3ra", "AI": "Anga\u00edle", "AO": "Ang\u00f3la", "AG": "Antigua agus Barb\u00fada", "AE": "Aontas na n\u00c9im\u00edr\u00edochta\u00ed Arabacha", "AW": "Ar\u00faba", "BH": "Bair\u00e9in", "BB": "Barbad\u00f3s", "BJ": "Beinin", "BM": "Beirmi\u00fada", "BN": "Br\u00fain\u00e9", "BF": "Buirc\u00edne Fas\u00f3", "CM": "Camar\u00fan", "QA": "Catar", "VA": "Cathair na Vatac\u00e1ine", "CA": "Ceanada", "KI": "Cireabait\u00ed", "CR": "C\u00f3sta R\u00edce", "IO": "Cr\u00edoch Aig\u00e9an Indiach na Breataine", "TF": "Cr\u00edocha Francacha Dheisceart an Domhain", "KW": "Cu\u00e1it", "CU": "C\u00faba", "CW": "Cura\u00e7ao", "DJ": "Djibouti", "DM": "Doiminice", "EC": "Eacuad\u00f3r", "YE": "\u00c9imin", "IE": "\u00c9ire", "SZ": "eSuait\u00edn\u00ed", "FJ": "Fids\u00ed", "GH": "G\u00e1na", "GG": "Geansa\u00ed", "GI": "Giobr\u00e1ltar", "GD": "Grean\u00e1da", "GP": "Guadal\u00faip", "GF": "Gu\u00e1in na Fraince", "GU": "Guam", "GT": "Guatamala", "GW": "Guine Bissau", "HT": "H\u00e1\u00edt\u00ed", "HN": "Hond\u00faras", "JM": "Iam\u00e1ice", "IL": "Iosrael", "LA": "Laos", "LS": "Leos\u00f3ta", "LI": "Lichtinst\u00e9in", "LU": "Lucsamburg", "MG": "Madagascar", "MM": "Maenmar (Burma)", "ML": "Mail\u00ed", "MT": "M\u00e1lta", "MA": "Marac\u00f3", "MQ": "Martinique", "YT": "Mayotte", "MX": "Meicsiceo", "MC": "Monac\u00f3", "ME": "Montain\u00e9agr\u00f3", "MS": "Montsarat", "MZ": "M\u00f3saimb\u00edc", "BS": "na Bah\u00e1ma\u00ed", "PH": "na hOile\u00e1in Fhilip\u00edneacha", "SC": "na S\u00e9is\u00e9il", "NR": "N\u00e1r\u00fa", "NP": "Neipeal", "NI": "Nicearagua", "NU": "Niue", "PG": "Nua-Ghuine Phapua", "AX": "Oile\u00e1in \u00c5land", "VG": "Oile\u00e1in Bhriotanacha na Maighdean", "KY": "Oile\u00e1in Cayman", "KM": "Oile\u00e1in Chom\u00f3ra", "CC": "Oile\u00e1in Cocos (Keeling)", "CK": "Oile\u00e1in Cook", "FK": "Oile\u00e1in Fh\u00e1clainne", "FO": "Oile\u00e1in Fhar\u00f3", "MV": "Oile\u00e1in Mhaild\u00edve", "VI": "Oile\u00e1in Mheirice\u00e1nacha na Maighdean", "TC": "Oile\u00e1in na dTurcach agus Caicos", "PW": "Oile\u00e1in Palau", "PN": "Oile\u00e1in Pitcairn", "SB": "Oile\u00e1in Sholom\u00f3n", "BV": "Oile\u00e1n Bouvet", "HM": "Oile\u00e1n Heard agus Oile\u00e1in McDonald", "IM": "Oile\u00e1n Mhanann", "MU": "Oile\u00e1n Mhuir\u00eds", "CX": "Oile\u00e1n na Nollag", "TT": "Oile\u00e1n na Tr\u00edon\u00f3ide agus Tob\u00e1ga", "NF": "Oile\u00e1n Norfolk", "OM": "\u00d3man", "PA": "Panama", "PY": "Paragua", "PE": "Peiri\u00fa", "CD": "Poblacht Dhaonlathach an Chong\u00f3", "CF": "Poblacht na hAfraice L\u00e1ir", "PF": "Polain\u00e9is na Fraince", "PR": "P\u00f3rt\u00f3 R\u00edce", "RE": "R\u00e9union", "CV": "Rinn Verde", "RW": "Ruanda", "HK": "S.R.R. na S\u00edne Hong Cong", "MO": "S.R.R. na S\u00edne Macao", "BL": "Saint Barth\u00e9lemy", "LC": "Saint Lucia", "MF": "Saint-Martin", "WS": "Sam\u00f3", "AS": "Sam\u00f3 Mheirice\u00e1", "KN": "San Cr\u00edost\u00f3ir-Nimheas", "SH": "San H\u00e9ilin", "SM": "San Mair\u00edne", "PM": "San Pierre agus Miquelon", "VC": "San Uinseann agus na Grean\u00e1id\u00edn\u00ed", "ST": "S\u00e3o Tom\u00e9 agus Pr\u00edncipe", "TD": "Sead", "SL": "Siarra Leon", "SG": "Singeap\u00f3r", "SX": "Sint Maarten", "LK": "Sr\u00ed Lanca", "US": "St\u00e1it Aontaithe Mheirice\u00e1", "SR": "Suranam", "SJ": "Svalbard agus Jan Mayen", "TL": "T\u00edom\u00f3r Thoir", "TK": "T\u00f3cal\u00e1", "TG": "T\u00f3ga", "TO": "Tonga", "UG": "Uganda", "UY": "Uragua", "WF": "Vail\u00eds agus Fut\u00fana", "VU": "Vanuat\u00fa", "VE": "Veinis\u00e9ala", "VN": "V\u00edtneam"}
\ No newline at end of file
diff --git a/desktop/onionshare/resources/countries/sk.json b/desktop/onionshare/resources/countries/sk.json
new file mode 100644
index 00000000..1ba570f7
--- /dev/null
+++ b/desktop/onionshare/resources/countries/sk.json
@@ -0,0 +1 @@
+{"AF": "Afganistan", "AX": "Alandy", "AL": "Alb\u00e1nsko", "DZ": "Al\u017e\u00edrsko", "AS": "Americk\u00e1 Samoa", "VI": "Americk\u00e9 Panensk\u00e9 ostrovy", "AD": "Andorra", "AO": "Angola", "AI": "Anguilla", "AQ": "Antarkt\u00edda", "AG": "Antigua a Barbuda", "AR": "Argent\u00edna", "AM": "Arm\u00e9nsko", "AW": "Aruba", "AU": "Austr\u00e1lia", "AZ": "Azerbajd\u017ean", "BS": "Bahamy", "BH": "Bahrajn", "BD": "Banglad\u00e9\u0161", "BB": "Barbados", "BE": "Belgicko", "BZ": "Belize", "BJ": "Benin", "BM": "Bermudy", "BT": "Bhut\u00e1n", "BY": "Bielorusko", "BO": "Bol\u00edvia", "BA": "Bosna a Hercegovina", "BW": "Botswana", "BV": "Bouvetov ostrov", "BR": "Braz\u00edlia", "IO": "Britsk\u00e9 indickooce\u00e1nske \u00fazemie", "VG": "Britsk\u00e9 Panensk\u00e9 ostrovy", "BN": "Brunej", "BG": "Bulharsko", "BF": "Burkina Faso", "BI": "Burundi", "CK": "Cookove ostrovy", "CW": "Cura\u00e7ao", "CY": "Cyprus", "TD": "\u010cad", "CZ": "\u010cesko", "ME": "\u010cierna Hora", "CL": "\u010cile", "CN": "\u010c\u00edna", "DK": "D\u00e1nsko", "DM": "Dominika", "DO": "Dominik\u00e1nska republika", "DJ": "D\u017eibutsko", "EG": "Egypt", "EC": "Ekv\u00e1dor", "ER": "Eritrea", "EE": "Est\u00f3nsko", "SZ": "Eswatini", "ET": "Eti\u00f3pia", "FO": "Faersk\u00e9 ostrovy", "FK": "Falklandy", "FJ": "Fid\u017ei", "PH": "Filip\u00edny", "FI": "F\u00ednsko", "GF": "Franc\u00fazska Guyana", "PF": "Franc\u00fazska Polyn\u00e9zia", "TF": "Franc\u00fazske ju\u017en\u00e9 a antarktick\u00e9 \u00fazemia", "FR": "Franc\u00fazsko", "GA": "Gabon", "GM": "Gambia", "GH": "Ghana", "GI": "Gibralt\u00e1r", "GR": "Gr\u00e9cko", "GD": "Grenada", "GL": "Gr\u00f3nsko", "GE": "Gruz\u00ednsko", "GP": "Guadeloupe", "GU": "Guam", "GT": "Guatemala", "GG": "Guernsey", "GN": "Guinea", "GW": "Guinea-Bissau", "GY": "Guyana", "HT": "Haiti", "HM": "Heardov ostrov a Macdonaldove ostrovy", "NL": "Holandsko", "HN": "Honduras", "HK": "Hongkong \u2013 OAO \u010c\u00edny", "HR": "Chorv\u00e1tsko", "IN": "India", "ID": "Indon\u00e9zia", "IQ": "Irak", "IR": "Ir\u00e1n", "IE": "\u00cdrsko", "IS": "Island", "IL": "Izrael", "JM": "Jamajka", "JP": "Japonsko", "YE": "Jemen", "JO": "Jord\u00e1nsko", "ZA": "Ju\u017en\u00e1 Afrika", "GS": "Ju\u017en\u00e1 Georgia a Ju\u017en\u00e9 Sandwichove ostrovy", "KR": "Ju\u017en\u00e1 K\u00f3rea", "SS": "Ju\u017en\u00fd Sud\u00e1n", "KY": "Kajmanie ostrovy", "KH": "Kambod\u017ea", "CM": "Kamerun", "CA": "Kanada", "CV": "Kapverdy", "BQ": "Karibsk\u00e9 Holandsko", "QA": "Katar", "KZ": "Kazachstan", "KE": "Ke\u0148a", "KG": "Kirgizsko", "KI": "Kiribati", "CC": "Kokosov\u00e9 ostrovy", "CO": "Kolumbia", "KM": "Komory", "CD": "Kon\u017esk\u00e1 demokratick\u00e1 republika", "CG": "Kon\u017esk\u00e1 republika", "CR": "Kostarika", "CU": "Kuba", "KW": "Kuvajt", "LA": "Laos", "LS": "Lesotho", "LB": "Libanon", "LR": "Lib\u00e9ria", "LY": "L\u00edbya", "LI": "Lichten\u0161tajnsko", "LT": "Litva", "LV": "Loty\u0161sko", "LU": "Luxembursko", "MO": "Macao \u2013 OAO \u010c\u00edny", "MG": "Madagaskar", "HU": "Ma\u010farsko", "MY": "Malajzia", "MW": "Malawi", "MV": "Maldivy", "ML": "Mali", "MT": "Malta", "MA": "Maroko", "MQ": "Martinik", "MU": "Maur\u00edcius", "MR": "Maurit\u00e1nia", "YT": "Mayotte", "MX": "Mexiko", "MM": "Mjanmarsko", "MD": "Moldavsko", "MC": "Monako", "MN": "Mongolsko", "MS": "Montserrat", "MZ": "Mozambik", "NA": "Nam\u00edbia", "NR": "Nauru", "DE": "Nemecko", "NP": "Nep\u00e1l", "NE": "Niger", "NG": "Nig\u00e9ria", "NI": "Nikaragua", "NU": "Niue", "NF": "Norfolk", "NO": "N\u00f3rsko", "NC": "Nov\u00e1 Kaled\u00f3nia", "NZ": "Nov\u00fd Z\u00e9land", "OM": "Om\u00e1n", "IM": "Ostrov Man", "PK": "Pakistan", "PW": "Palau", "PA": "Panama", "PG": "Papua-Nov\u00e1 Guinea", "PY": "Paraguaj", "PE": "Peru", "PN": "Pitcairnove ostrovy", "CI": "Pobre\u017eie Slonoviny", "PL": "Po\u013esko", "PR": "Portoriko", "PT": "Portugalsko", "AT": "Rak\u00fasko", "RE": "R\u00e9union", "GQ": "Rovn\u00edkov\u00e1 Guinea", "RO": "Rumunsko", "RU": "Rusko", "RW": "Rwanda", "PM": "Saint Pierre a Miquelon", "SV": "Salv\u00e1dor", "WS": "Samoa", "SM": "San Mar\u00edno", "SA": "Saudsk\u00e1 Ar\u00e1bia", "SN": "Senegal", "KP": "Severn\u00e1 K\u00f3rea", "MK": "Severn\u00e9 Maced\u00f3nsko", "SC": "Seychely", "SL": "Sierra Leone", "SG": "Singapur", "SK": "Slovensko", "SI": "Slovinsko", "SO": "Som\u00e1lsko", "AE": "Spojen\u00e9 arabsk\u00e9 emir\u00e1ty", "GB": "Spojen\u00e9 kr\u00e1\u013eovstvo", "US": "Spojen\u00e9 \u0161t\u00e1ty", "RS": "Srbsko", "LK": "Sr\u00ed Lanka", "CF": "Stredoafrick\u00e1 republika", "SD": "Sud\u00e1n", "SR": "Surinam", "SJ": "Svalbard a Jan Mayen", "SH": "Sv\u00e4t\u00e1 Helena", "LC": "Sv\u00e4t\u00e1 Lucia", "BL": "Sv\u00e4t\u00fd Bartolomej", "KN": "Sv\u00e4t\u00fd Kri\u0161tof a Nevis", "MF": "Sv\u00e4t\u00fd Martin (fr.)", "SX": "Sv\u00e4t\u00fd Martin (hol.)", "ST": "Sv\u00e4t\u00fd Tom\u00e1\u0161 a Princov ostrov", "VC": "Sv\u00e4t\u00fd Vincent a Grenad\u00edny", "SY": "S\u00fdria", "SB": "\u0160alam\u00fanove ostrovy", "ES": "\u0160panielsko", "CH": "\u0160vaj\u010diarsko", "SE": "\u0160v\u00e9dsko", "TJ": "Tad\u017eikistan", "TW": "Taiwan", "IT": "Taliansko", "TZ": "Tanz\u00e1nia", "TH": "Thajsko", "TG": "Togo", "TK": "Tokelau", "TO": "Tonga", "TT": "Trinidad a Tobago", "TN": "Tunisko", "TR": "Turecko", "TM": "Turkm\u00e9nsko", "TC": "Turks a Caicos", "UG": "Uganda", "UA": "Ukrajina", "UY": "Uruguaj", "UZ": "Uzbekistan", "VU": "Vanuatu", "VA": "Vatik\u00e1n", "VE": "Venezuela", "CX": "Viano\u010dn\u00fd ostrov", "VN": "Vietnam", "TL": "V\u00fdchodn\u00fd Timor", "WF": "Wallis a Futuna", "ZM": "Zambia", "EH": "Z\u00e1padn\u00e1 Sahara", "ZW": "Zimbabwe"}
\ No newline at end of file
diff --git a/desktop/onionshare/resources/countries/ta.json b/desktop/onionshare/resources/countries/ta.json
new file mode 100644
index 00000000..2277f4e5
--- /dev/null
+++ b/desktop/onionshare/resources/countries/ta.json
@@ -0,0 +1 @@
+{"AI": "\u0b85\u0b99\u0bcd\u0b95\u0bbf\u0baf\u0bc1\u0bb2\u0bbe", "AO": "\u0b85\u0b99\u0bcd\u0b95\u0bcb\u0bb2\u0bbe", "AZ": "\u0b85\u0b9a\u0bb0\u0bcd\u0baa\u0bc8\u0b9c\u0bbe\u0ba9\u0bcd", "AQ": "\u0b85\u0ba3\u0bcd\u0b9f\u0bbe\u0bb0\u0bcd\u0b9f\u0bbf\u0b95\u0bbe", "AS": "\u0b85\u0bae\u0bc6\u0bb0\u0bbf\u0b95\u0bcd\u0b95 \u0b9a\u0bae\u0bcb\u0bb5\u0bbe", "US": "\u0b85\u0bae\u0bc6\u0bb0\u0bbf\u0b95\u0bcd\u0b95\u0bbe", "IE": "\u0b85\u0baf\u0bb0\u0bcd\u0bb2\u0bbe\u0ba8\u0bcd\u0ba4\u0bc1", "AM": "\u0b85\u0bb0\u0bcd\u0bae\u0bc7\u0ba9\u0bbf\u0baf\u0bbe", "AR": "\u0b85\u0bb0\u0bcd\u0b9c\u0bc6\u0ba9\u0bcd\u0b9f\u0bbf\u0ba9\u0bbe", "AW": "\u0b85\u0bb0\u0bc2\u0baa\u0bbe", "AL": "\u0b85\u0bb2\u0bcd\u0baa\u0bc7\u0ba9\u0bbf\u0baf\u0bbe", "DZ": "\u0b85\u0bb2\u0bcd\u0b9c\u0bc0\u0bb0\u0bbf\u0baf\u0bbe", "AD": "\u0b85\u0ba9\u0bcd\u0b9f\u0bcb\u0bb0\u0bbe", "AF": "\u0b86\u0b83\u0baa\u0bcd\u0b95\u0bbe\u0ba9\u0bbf\u0bb8\u0bcd\u0ba4\u0bbe\u0ba9\u0bcd", "AG": "\u0b86\u0ba3\u0bcd\u0b9f\u0bbf\u0b95\u0bc1\u0bb5\u0bbe \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0baa\u0bbe\u0bb0\u0bcd\u0baa\u0bc1\u0b9f\u0bbe", "AX": "\u0b86\u0bb2\u0ba8\u0bcd\u0ba4\u0bc1 \u0ba4\u0bc0\u0bb5\u0bc1\u0b95\u0bb3\u0bcd", "AT": "\u0b86\u0bb8\u0bcd\u0ba4\u0bbf\u0bb0\u0bbf\u0baf\u0bbe", "AU": "\u0b86\u0bb8\u0bcd\u0ba4\u0bbf\u0bb0\u0bc7\u0bb2\u0bbf\u0baf\u0bbe", "IT": "\u0b87\u0ba4\u0bcd\u0ba4\u0bbe\u0bb2\u0bbf", "IN": "\u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf\u0bbe", "ID": "\u0b87\u0ba8\u0bcd\u0ba4\u0bcb\u0ba9\u0bc7\u0b9a\u0bbf\u0baf\u0bbe", "LK": "\u0b87\u0bb2\u0b99\u0bcd\u0b95\u0bc8", "IL": "\u0b87\u0bb8\u0bcd\u0bb0\u0bc7\u0bb2\u0bcd", "EC": "\u0b88\u0b95\u0bcd\u0bb5\u0b9f\u0bbe\u0bb0\u0bcd", "GQ": "\u0b88\u0b95\u0bcd\u0bb5\u0b9f\u0bcb\u0bb0\u0bbf\u0baf\u0bb2\u0bcd \u0b95\u0bbf\u0ba9\u0bbf\u0baf\u0bbe", "IQ": "\u0b88\u0bb0\u0bbe\u0b95\u0bcd", "IR": "\u0b88\u0bb0\u0bbe\u0ba9\u0bcd", "UA": "\u0b89\u0b95\u0bcd\u0bb0\u0bc8\u0ba9\u0bcd", "UG": "\u0b89\u0b95\u0bbe\u0ba3\u0bcd\u0b9f\u0bbe", "UY": "\u0b89\u0bb0\u0bc1\u0b95\u0bc1\u0bb5\u0bc7", "UZ": "\u0b89\u0bb8\u0bcd\u0baa\u0bc6\u0b95\u0bbf\u0bb8\u0bcd\u0ba4\u0bbe\u0ba9\u0bcd", "EG": "\u0b8e\u0b95\u0bbf\u0baa\u0bcd\u0ba4\u0bc1", "ET": "\u0b8e\u0ba4\u0bcd\u0ba4\u0bbf\u0baf\u0bcb\u0baa\u0bcd\u0baa\u0bbf\u0baf\u0bbe", "ER": "\u0b8e\u0bb0\u0bbf\u0b9f\u0bcd\u0bb0\u0bbf\u0baf\u0bbe", "SV": "\u0b8e\u0bb2\u0bcd \u0b9a\u0bbe\u0bb2\u0bcd\u0bb5\u0b9f\u0bbe\u0bb0\u0bcd", "EE": "\u0b8e\u0bb8\u0bcd\u0b9f\u0bcb\u0ba9\u0bbf\u0baf\u0bbe", "SZ": "\u0b8e\u0bb8\u0bcd\u0bb5\u0bbe\u0b9f\u0bcd\u0b9f\u0bc0\u0ba9\u0bbf", "YE": "\u0b8f\u0bae\u0ba9\u0bcd", "AE": "\u0b90\u0b95\u0bcd\u0b95\u0bbf\u0baf \u0b85\u0bb0\u0baa\u0bc1 \u0b8e\u0bae\u0bbf\u0bb0\u0bc7\u0b9f\u0bcd\u0bb8\u0bcd", "IM": "\u0b90\u0bb2\u0bcd \u0b86\u0b83\u0baa\u0bcd \u0bae\u0bc7\u0ba9\u0bcd", "IS": "\u0b90\u0bb8\u0bcd\u0bb2\u0bbe\u0ba8\u0bcd\u0ba4\u0bc1", "OM": "\u0b93\u0bae\u0ba9\u0bcd", "FK": "\u0b83\u0baa\u0bbe\u0b95\u0bcd\u0bb2\u0bbe\u0ba8\u0bcd\u0ba4\u0bc1 \u0ba4\u0bc0\u0bb5\u0bc1\u0b95\u0bb3\u0bcd", "FO": "\u0b83\u0baa\u0bbe\u0bb0\u0bcb \u0ba4\u0bc0\u0bb5\u0bc1\u0b95\u0bb3\u0bcd", "FJ": "\u0b83\u0baa\u0bbf\u0b9c\u0bbf", "GP": "\u0b95\u0bcd\u0bb5\u0bbe\u0ba4\u0bc7\u0bb2\u0bcb\u0baa\u0bcd", "QA": "\u0b95\u0ba4\u0bcd\u0ba4\u0bbe\u0bb0\u0bcd", "KH": "\u0b95\u0bae\u0bcd\u0baa\u0bcb\u0b9f\u0bbf\u0baf\u0bbe", "GY": "\u0b95\u0baf\u0bbe\u0ba9\u0bbe", "BQ": "\u0b95\u0bb0\u0bc0\u0baa\u0bbf\u0baf\u0ba9\u0bcd \u0ba8\u0bc6\u0ba4\u0bb0\u0bcd\u0bb2\u0bbe\u0ba8\u0bcd\u0ba4\u0bc1", "GT": "\u0b95\u0bb5\u0bc1\u0ba4\u0bae\u0bbe\u0bb2\u0bbe", "CA": "\u0b95\u0ba9\u0b9f\u0bbe", "KZ": "\u0b95\u0bb8\u0b95\u0bb8\u0bcd\u0ba4\u0bbe\u0ba9\u0bcd", "CD": "\u0b95\u0bbe\u0b99\u0bcd\u0b95\u0bcb - \u0b95\u0bbf\u0ba9\u0bcd\u0bb7\u0bbe\u0b9a\u0bbe", "CG": "\u0b95\u0bbe\u0b99\u0bcd\u0b95\u0bcb - \u0baa\u0bcd\u0bb0\u0bbe\u0bb8\u0bbe\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc7", "GM": "\u0b95\u0bbe\u0bae\u0bcd\u0baa\u0bbf\u0baf\u0bbe", "GH": "\u0b95\u0bbe\u0ba9\u0bbe", "CU": "\u0b95\u0bbf\u0baf\u0bc2\u0baa\u0bbe", "KG": "\u0b95\u0bbf\u0bb0\u0bcd\u0b95\u0bbf\u0bb8\u0bcd\u0ba4\u0bbe\u0ba9\u0bcd", "GD": "\u0b95\u0bbf\u0bb0\u0ba9\u0bc6\u0b9f\u0bbe", "KI": "\u0b95\u0bbf\u0bb0\u0bbf\u0baa\u0bbe\u0b9f\u0bcd\u0b9f\u0bbf", "GL": "\u0b95\u0bbf\u0bb0\u0bc0\u0ba9\u0bcd\u0bb2\u0bbe\u0ba8\u0bcd\u0ba4\u0bc1", "GR": "\u0b95\u0bbf\u0bb0\u0bc0\u0bb8\u0bcd", "CX": "\u0b95\u0bbf\u0bb1\u0bbf\u0bb8\u0bcd\u0ba4\u0bc1\u0bae\u0bb8\u0bcd \u0ba4\u0bc0\u0bb5\u0bc1", "GN": "\u0b95\u0bbf\u0ba9\u0bbf\u0baf\u0bbe", "GW": "\u0b95\u0bbf\u0ba9\u0bbf\u0baf\u0bbe-\u0baa\u0bbf\u0bb8\u0bcd\u0bb8\u0bbe\u0bb5\u0bcd", "CK": "\u0b95\u0bc1\u0b95\u0bcd \u0ba4\u0bc0\u0bb5\u0bc1\u0b95\u0bb3\u0bcd", "CW": "\u0b95\u0bc1\u0bb0\u0bbe\u0b95\u0bb5\u0bcd", "HR": "\u0b95\u0bc1\u0bb0\u0bcb\u0bb7\u0bbf\u0baf\u0bbe", "GU": "\u0b95\u0bc1\u0bb5\u0bbe\u0bae\u0bcd", "KW": "\u0b95\u0bc1\u0bb5\u0bc8\u0ba4\u0bcd", "KY": "\u0b95\u0bc6\u0baf\u0bcd\u0bae\u0bc6\u0ba9\u0bcd \u0ba4\u0bc0\u0bb5\u0bc1\u0b95\u0bb3\u0bcd", "GG": "\u0b95\u0bc6\u0bb0\u0bcd\u0ba9\u0bcd\u0b9a\u0bbf", "KE": "\u0b95\u0bc6\u0ba9\u0bcd\u0baf\u0bbe", "CV": "\u0b95\u0bc7\u0baa\u0bcd \u0bb5\u0bc6\u0bb0\u0bcd\u0b9f\u0bc7", "GA": "\u0b95\u0bc7\u0baa\u0bbe\u0ba9\u0bcd", "CM": "\u0b95\u0bc7\u0bae\u0bb0\u0bc2\u0ba9\u0bcd", "CO": "\u0b95\u0bca\u0bb2\u0bae\u0bcd\u0baa\u0bbf\u0baf\u0bbe", "CC": "\u0b95\u0bcb\u0b95\u0bcb\u0bb8\u0bcd (\u0b95\u0bc0\u0bb2\u0bbf\u0b99\u0bcd) \u0ba4\u0bc0\u0bb5\u0bc1\u0b95\u0bb3\u0bcd", "CI": "\u0b95\u0bcb\u0b9f\u0bcd \u0ba4\u0bbf\u2019\u0bb5\u0bbe\u0baf\u0bb0\u0bcd", "KM": "\u0b95\u0bcb\u0bae\u0bb0\u0bcb\u0bb8\u0bcd", "CR": "\u0b95\u0bcb\u0bb8\u0bcd\u0b9f\u0bbe\u0bb0\u0bbf\u0b95\u0bbe", "WS": "\u0b9a\u0bae\u0bcb\u0bb5\u0bbe", "SA": "\u0b9a\u0bb5\u0bc2\u0ba4\u0bbf \u0b85\u0bb0\u0bc7\u0baa\u0bbf\u0baf\u0bbe", "TD": "\u0b9a\u0bbe\u0b9f\u0bcd", "SB": "\u0b9a\u0bbe\u0bb2\u0bae\u0ba9\u0bcd \u0ba4\u0bc0\u0bb5\u0bc1\u0b95\u0bb3\u0bcd", "ST": "\u0b9a\u0bbe\u0bb5\u0bcd \u0ba4\u0bcb\u0bae\u0bcd & \u0baa\u0bcd\u0bb0\u0bbf\u0ba9\u0bcd\u0b9a\u0bbf\u0baa\u0bbf", "SM": "\u0b9a\u0bbe\u0ba9\u0bcd \u0bae\u0bb0\u0bbf\u0ba9\u0bcb", "SG": "\u0b9a\u0bbf\u0b99\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0bc2\u0bb0\u0bcd", "SL": "\u0b9a\u0bbf\u0baf\u0bbe\u0bb0\u0bbe \u0bb2\u0bbf\u0baf\u0bcb\u0ba9\u0bcd", "SY": "\u0b9a\u0bbf\u0bb0\u0bbf\u0baf\u0bbe", "CL": "\u0b9a\u0bbf\u0bb2\u0bbf", "SX": "\u0b9a\u0bbf\u0ba9\u0bcd\u0b9f\u0bcd \u0bae\u0bbe\u0bb0\u0bcd\u0b9f\u0bc6\u0ba9\u0bcd", "CN": "\u0b9a\u0bc0\u0ba9\u0bbe", "SC": "\u0b9a\u0bc0\u0bb7\u0bc6\u0bb2\u0bcd\u0bb8\u0bcd", "SR": "\u0b9a\u0bc1\u0bb0\u0bbf\u0ba9\u0bbe\u0bae\u0bcd", "SD": "\u0b9a\u0bc2\u0b9f\u0bbe\u0ba9\u0bcd", "CZ": "\u0b9a\u0bc6\u0b9a\u0bbf\u0baf\u0bbe", "KN": "\u0b9a\u0bc6\u0baf\u0bbf\u0ba9\u0bcd\u0b9f\u0bcd \u0b95\u0bbf\u0b9f\u0bcd\u0bb8\u0bcd & \u0ba8\u0bc6\u0bb5\u0bbf\u0bb8\u0bcd", "BL": "\u0b9a\u0bc6\u0baf\u0bbf\u0ba9\u0bcd\u0b9f\u0bcd \u0baa\u0bbe\u0bb0\u0bcd\u0ba4\u0bc7\u0bb2\u0bc6\u0bae\u0bbf", "PM": "\u0b9a\u0bc6\u0baf\u0bbf\u0ba9\u0bcd\u0b9f\u0bcd \u0baa\u0bbf\u0baf\u0bb0\u0bcd & \u0bae\u0bbf\u0b95\u0bcd\u0bb5\u0bc7\u0bb2\u0bbe\u0ba9\u0bcd", "MF": "\u0b9a\u0bc6\u0baf\u0bbf\u0ba9\u0bcd\u0b9f\u0bcd \u0bae\u0bbe\u0bb0\u0bcd\u0b9f\u0bcd\u0b9f\u0bc0\u0ba9\u0bcd", "LC": "\u0b9a\u0bc6\u0baf\u0bbf\u0ba9\u0bcd\u0b9f\u0bcd \u0bb2\u0bc2\u0b9a\u0bbf\u0baf\u0bbe", "VC": "\u0b9a\u0bc6\u0baf\u0bbf\u0ba9\u0bcd\u0b9f\u0bcd \u0bb5\u0bbf\u0ba9\u0bcd\u0b9a\u0bc6\u0ba9\u0bcd\u0b9f\u0bcd & \u0b95\u0bbf\u0bb0\u0bc6\u0ba9\u0b9f\u0bc8\u0ba9\u0bcd\u0bb8\u0bcd", "SH": "\u0b9a\u0bc6\u0baf\u0bbf\u0ba9\u0bcd\u0b9f\u0bcd \u0bb9\u0bc6\u0bb2\u0bc6\u0ba9\u0bbe", "RS": "\u0b9a\u0bc6\u0bb0\u0bcd\u0baa\u0bbf\u0baf\u0bbe", "SN": "\u0b9a\u0bc6\u0ba9\u0bc6\u0b95\u0bb2\u0bcd", "CY": "\u0b9a\u0bc8\u0baa\u0bcd\u0bb0\u0bb8\u0bcd", "SO": "\u0b9a\u0bcb\u0bae\u0bbe\u0bb2\u0bbf\u0baf\u0bbe", "TC": "\u0b9f\u0bb0\u0bcd\u0b95\u0bcd\u0bb8\u0bcd & \u0b95\u0bc8\u0b95\u0bcb\u0bb8\u0bcd \u0ba4\u0bc0\u0bb5\u0bc1\u0b95\u0bb3\u0bcd", "TT": "\u0b9f\u0bbf\u0bb0\u0bbf\u0ba9\u0bbf\u0b9f\u0bbe\u0b9f\u0bcd & \u0b9f\u0bca\u0baa\u0bbe\u0b95\u0bcb", "TN": "\u0b9f\u0bc1\u0ba9\u0bbf\u0b9a\u0bbf\u0baf\u0bbe", "DK": "\u0b9f\u0bc6\u0ba9\u0bcd\u0bae\u0bbe\u0bb0\u0bcd\u0b95\u0bcd", "DO": "\u0b9f\u0bca\u0bae\u0bbf\u0ba9\u0bbf\u0b95\u0ba9\u0bcd \u0b95\u0bc1\u0b9f\u0bbf\u0baf\u0bb0\u0b9a\u0bc1", "DM": "\u0b9f\u0bca\u0bae\u0bbf\u0ba9\u0bbf\u0b95\u0bbe", "TK": "\u0b9f\u0bcb\u0b95\u0bc7\u0bb2\u0bcb", "TG": "\u0b9f\u0bcb\u0b95\u0bcb", "TO": "\u0b9f\u0bcb\u0b99\u0bcd\u0b95\u0bbe", "TJ": "\u0ba4\u0b9c\u0bbf\u0b95\u0bbf\u0bb8\u0bcd\u0ba4\u0bbe\u0ba9\u0bcd", "TH": "\u0ba4\u0bbe\u0baf\u0bcd\u0bb2\u0bbe\u0ba8\u0bcd\u0ba4\u0bc1", "TZ": "\u0ba4\u0bbe\u0ba9\u0bcd\u0b9a\u0bbe\u0ba9\u0bbf\u0baf\u0bbe", "TL": "\u0ba4\u0bbf\u0bae\u0bcb\u0bb0\u0bcd-\u0bb2\u0bc6\u0bb8\u0bcd\u0ba4\u0bc7", "TM": "\u0ba4\u0bc1\u0bb0\u0bcd\u0b95\u0bcd\u0bae\u0bc6\u0ba9\u0bbf\u0bb8\u0bcd\u0ba4\u0bbe\u0ba9\u0bcd", "TR": "\u0ba4\u0bc1\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bbf", "SS": "\u0ba4\u0bc6\u0bb1\u0bcd\u0b95\u0bc1 \u0b9a\u0bc2\u0b9f\u0bbe\u0ba9\u0bcd", "GS": "\u0ba4\u0bc6\u0bb1\u0bcd\u0b95\u0bc1 \u0b9c\u0bbe\u0bb0\u0bcd\u0b9c\u0bbf\u0baf\u0bbe \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0ba4\u0bc6\u0bb1\u0bcd\u0b95\u0bc1 \u0b9a\u0bbe\u0ba3\u0bcd\u0b9f\u0bcd\u0bb5\u0bbf\u0b9a\u0bcd \u0ba4\u0bc0\u0bb5\u0bc1\u0b95\u0bb3\u0bcd", "ZA": "\u0ba4\u0bc6\u0ba9\u0bcd \u0b86\u0baa\u0bcd\u0baa\u0bbf\u0bb0\u0bbf\u0b95\u0bcd\u0b95\u0bbe", "KR": "\u0ba4\u0bc6\u0ba9\u0bcd \u0b95\u0bca\u0bb0\u0bbf\u0baf\u0bbe", "TW": "\u0ba4\u0bc8\u0bb5\u0bbe\u0ba9\u0bcd", "NA": "\u0ba8\u0bae\u0bc0\u0baa\u0bbf\u0baf\u0bbe", "NF": "\u0ba8\u0bbe\u0bb0\u0bcd\u0b83\u0baa\u0bcb\u0b95\u0bcd \u0ba4\u0bc0\u0bb5\u0bc1", "NO": "\u0ba8\u0bbe\u0bb0\u0bcd\u0bb5\u0bc7", "NI": "\u0ba8\u0bbf\u0b95\u0bb0\u0b95\u0bc1\u0bb5\u0bbe", "NU": "\u0ba8\u0bbf\u0baf\u0bc1\u0bb5\u0bc7", "NC": "\u0ba8\u0bbf\u0baf\u0bc2 \u0b95\u0bc7\u0bb2\u0bbf\u0b9f\u0bcb\u0ba9\u0bbf\u0baf\u0bbe", "NZ": "\u0ba8\u0bbf\u0baf\u0bc2\u0b9a\u0bbf\u0bb2\u0bbe\u0ba8\u0bcd\u0ba4\u0bc1", "NL": "\u0ba8\u0bc6\u0ba4\u0bb0\u0bcd\u0bb2\u0bbe\u0ba8\u0bcd\u0ba4\u0bc1", "NP": "\u0ba8\u0bc7\u0baa\u0bbe\u0bb3\u0bae\u0bcd", "NE": "\u0ba8\u0bc8\u0b9c\u0bb0\u0bcd", "NG": "\u0ba8\u0bc8\u0b9c\u0bc0\u0bb0\u0bbf\u0baf\u0bbe", "NR": "\u0ba8\u0bcc\u0bb0\u0bc1", "BD": "\u0baa\u0b99\u0bcd\u0b95\u0bb3\u0bbe\u0ba4\u0bc7\u0bb7\u0bcd", "PG": "\u0baa\u0baa\u0bcd\u0baa\u0bc1\u0bb5\u0bbe \u0ba8\u0bbf\u0baf\u0bc2 \u0b95\u0bbf\u0ba9\u0bbf\u0baf\u0bbe", "PY": "\u0baa\u0bb0\u0bbe\u0b95\u0bc1\u0bb5\u0bc7", "BG": "\u0baa\u0bb2\u0bcd\u0b95\u0bc7\u0bb0\u0bbf\u0baf\u0bbe", "PA": "\u0baa\u0ba9\u0bbe\u0bae\u0bbe", "BH": "\u0baa\u0bb9\u0bcd\u0bb0\u0bc8\u0ba9\u0bcd", "BS": "\u0baa\u0bb9\u0bbe\u0bae\u0bbe\u0bb8\u0bcd", "PK": "\u0baa\u0bbe\u0b95\u0bbf\u0bb8\u0bcd\u0ba4\u0bbe\u0ba9\u0bcd", "BB": "\u0baa\u0bbe\u0bb0\u0bcd\u0baa\u0b9f\u0bbe\u0bb8\u0bcd", "PW": "\u0baa\u0bbe\u0bb2\u0bcb", "PN": "\u0baa\u0bbf\u0b9f\u0bcd\u0b95\u0bc6\u0baf\u0bcd\u0bb0\u0bcd\u0ba9\u0bcd \u0ba4\u0bc0\u0bb5\u0bc1\u0b95\u0bb3\u0bcd", "PR": "\u0baa\u0bbf\u0baf\u0bc2\u0bb0\u0bcd\u0b9f\u0bcb \u0bb0\u0bbf\u0b95\u0bcb", "FR": "\u0baa\u0bbf\u0bb0\u0bbe\u0ba9\u0bcd\u0bb8\u0bcd", "IO": "\u0baa\u0bbf\u0bb0\u0bbf\u0b9f\u0bcd\u0b9f\u0bbf\u0bb7\u0bcd \u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf\u0baa\u0bcd \u0baa\u0bc6\u0bb0\u0bc1\u0b99\u0bcd\u0b95\u0b9f\u0bb2\u0bcd \u0baa\u0bbf\u0bb0\u0ba4\u0bc7\u0b9a\u0bae\u0bcd", "VG": "\u0baa\u0bbf\u0bb0\u0bbf\u0b9f\u0bcd\u0b9f\u0bc0\u0bb7\u0bcd \u0b95\u0ba9\u0bcd\u0ba9\u0bbf\u0ba4\u0bcd \u0ba4\u0bc0\u0bb5\u0bc1\u0b95\u0bb3\u0bcd", "GF": "\u0baa\u0bbf\u0bb0\u0bc6\u0b9e\u0bcd\u0b9a\u0bc1 \u0b95\u0baf\u0bbe\u0ba9\u0bbe", "TF": "\u0baa\u0bbf\u0bb0\u0bc6\u0b9e\u0bcd\u0b9a\u0bc1 \u0ba4\u0bc6\u0bb1\u0bcd\u0b95\u0bc1 \u0baa\u0bbf\u0bb0\u0ba4\u0bc7\u0b9a\u0b99\u0bcd\u0b95\u0bb3\u0bcd", "PF": "\u0baa\u0bbf\u0bb0\u0bc6\u0b9e\u0bcd\u0b9a\u0bc1 \u0baa\u0bbe\u0bb2\u0bbf\u0ba9\u0bc7\u0bb7\u0bbf\u0baf\u0bbe", "BR": "\u0baa\u0bbf\u0bb0\u0bc7\u0b9a\u0bbf\u0bb2\u0bcd", "PH": "\u0baa\u0bbf\u0bb2\u0bbf\u0baa\u0bcd\u0baa\u0bc8\u0ba9\u0bcd\u0bb8\u0bcd", "FI": "\u0baa\u0bbf\u0ba9\u0bcd\u0bb2\u0bbe\u0ba8\u0bcd\u0ba4\u0bc1", "BF": "\u0baa\u0bc1\u0bb0\u0bcd\u0b95\u0bbf\u0ba9\u0bbe \u0b83\u0baa\u0bbe\u0bb8\u0bcb", "BI": "\u0baa\u0bc1\u0bb0\u0bc1\u0ba3\u0bcd\u0b9f\u0bbf", "BN": "\u0baa\u0bc1\u0bb0\u0bc1\u0ba9\u0bc7", "BT": "\u0baa\u0bc2\u0b9f\u0bbe\u0ba9\u0bcd", "BM": "\u0baa\u0bc6\u0bb0\u0bcd\u0bae\u0bc1\u0b9f\u0bbe", "PE": "\u0baa\u0bc6\u0bb0\u0bc1", "BE": "\u0baa\u0bc6\u0bb2\u0bcd\u0b9c\u0bbf\u0baf\u0bae\u0bcd", "BY": "\u0baa\u0bc6\u0bb2\u0bbe\u0bb0\u0bb8\u0bcd", "BZ": "\u0baa\u0bc6\u0bb2\u0bbf\u0bb8\u0bcd", "BJ": "\u0baa\u0bc6\u0ba9\u0bbf\u0ba9\u0bcd", "BO": "\u0baa\u0bca\u0bb2\u0bbf\u0bb5\u0bbf\u0baf\u0bbe", "BV": "\u0baa\u0bca\u0bb5\u0bc7\u0b9f\u0bcd \u0ba4\u0bc0\u0bb5\u0bc1", "BW": "\u0baa\u0bcb\u0b9f\u0bcd\u0bb8\u0bcd\u0bb5\u0bbe\u0ba9\u0bbe", "PT": "\u0baa\u0bcb\u0bb0\u0bcd\u0b9a\u0bcd\u0b9a\u0bc1\u0b95\u0bcd\u0b95\u0bb2\u0bcd", "PL": "\u0baa\u0bcb\u0bb2\u0ba8\u0bcd\u0ba4\u0bc1", "BA": "\u0baa\u0bcb\u0bb8\u0bcd\u0ba9\u0bbf\u0baf\u0bbe & \u0bb9\u0bc6\u0bb0\u0bcd\u0bb8\u0b95\u0bcb\u0bb5\u0bbf\u0ba9\u0bbe", "MO": "\u0bae\u0b95\u0bbe\u0bb5\u0bcd \u0b8e\u0bb8\u0bcd\u0b8f\u0b86\u0bb0\u0bcd \u0b9a\u0bc0\u0ba9\u0bbe", "MN": "\u0bae\u0b99\u0bcd\u0b95\u0bcb\u0bb2\u0bbf\u0baf\u0bbe", "MG": "\u0bae\u0b9f\u0b95\u0bbe\u0bb8\u0bcd\u0b95\u0bb0\u0bcd", "CF": "\u0bae\u0ba4\u0bcd\u0ba4\u0bbf\u0baf \u0b86\u0baa\u0bcd\u0bb0\u0bbf\u0b95\u0bcd\u0b95\u0b95\u0bcd \u0b95\u0bc1\u0b9f\u0bbf\u0baf\u0bb0\u0b9a\u0bc1", "YT": "\u0bae\u0baf\u0bcb\u0b9f\u0bcd", "MW": "\u0bae\u0bb2\u0bbe\u0bb5\u0bbf", "MY": "\u0bae\u0bb2\u0bc7\u0b9a\u0bbf\u0baf\u0bbe", "MS": "\u0bae\u0bbe\u0ba3\u0bcd\u0b9f\u0bcd\u0b9a\u0bc6\u0bb0\u0bbe\u0b9f\u0bcd", "MQ": "\u0bae\u0bbe\u0bb0\u0bcd\u0b9f\u0bbf\u0ba9\u0bbf\u0b95\u0bcd", "MT": "\u0bae\u0bbe\u0bb2\u0bcd\u0b9f\u0bbe", "MD": "\u0bae\u0bbe\u0bb2\u0bcd\u0b9f\u0bcb\u0bb5\u0bbe", "MV": "\u0bae\u0bbe\u0bb2\u0ba4\u0bcd\u0ba4\u0bc0\u0bb5\u0bc1", "ML": "\u0bae\u0bbe\u0bb2\u0bbf", "ME": "\u0bae\u0bbe\u0ba9\u0bcd\u0b9f\u0bc7\u0ba9\u0bc6\u0b95\u0bcd\u0bb0\u0bcb", "MM": "\u0bae\u0bbf\u0baf\u0bbe\u0ba9\u0bcd\u0bae\u0bbe\u0bb0\u0bcd (\u0baa\u0bb0\u0bcd\u0bae\u0bbe)", "MX": "\u0bae\u0bc6\u0b95\u0bcd\u0b9a\u0bbf\u0b95\u0bcb", "EH": "\u0bae\u0bc7\u0bb1\u0bcd\u0b95\u0bc1 \u0b9a\u0bb9\u0bbe\u0bb0\u0bbe", "MZ": "\u0bae\u0bca\u0b9a\u0bbe\u0bae\u0bcd\u0baa\u0bbf\u0b95\u0bcd", "MA": "\u0bae\u0bca\u0bb0\u0bbe\u0b95\u0bcd\u0b95\u0bcb", "MU": "\u0bae\u0bca\u0bb0\u0bbf\u0b9a\u0bbf\u0baf\u0bb8\u0bcd", "MC": "\u0bae\u0bca\u0ba9\u0bbe\u0b95\u0bcd\u0b95\u0bcb", "MR": "\u0bae\u0bcc\u0bb0\u0bbf\u0b9f\u0bbe\u0ba9\u0bbf\u0baf\u0bbe", "GB": "\u0baf\u0bc1\u0ba9\u0bc8\u0b9f\u0bc6\u0b9f\u0bcd \u0b95\u0bbf\u0b99\u0bcd\u0b9f\u0bae\u0bcd", "VI": "\u0baf\u0bc2.\u0b8e\u0bb8\u0bcd. \u0b95\u0ba9\u0bcd\u0ba9\u0bbf\u0ba4\u0bcd \u0ba4\u0bc0\u0bb5\u0bc1\u0b95\u0bb3\u0bcd", "RU": "\u0bb0\u0bb7\u0bcd\u0baf\u0bbe", "RE": "\u0bb0\u0bc0\u0baf\u0bc2\u0ba9\u0bbf\u0baf\u0ba9\u0bcd", "RO": "\u0bb0\u0bc1\u0bae\u0bc7\u0ba9\u0bbf\u0baf\u0bbe", "RW": "\u0bb0\u0bc1\u0bb5\u0bbe\u0ba3\u0bcd\u0b9f\u0bbe", "LU": "\u0bb2\u0b95\u0bcd\u0bb8\u0bcd\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd\u0b95\u0bcd", "LV": "\u0bb2\u0bbe\u0b9f\u0bcd\u0bb5\u0bbf\u0baf\u0bbe", "LA": "\u0bb2\u0bbe\u0bb5\u0bcb\u0bb8\u0bcd", "LI": "\u0bb2\u0bbf\u0b9a\u0bcd\u0b9a\u0bc6\u0ba3\u0bcd\u0bb8\u0bcd\u0b9f\u0bc6\u0baf\u0bcd\u0ba9\u0bcd", "LT": "\u0bb2\u0bbf\u0ba4\u0bc1\u0bb5\u0bc7\u0ba9\u0bbf\u0baf\u0bbe", "LY": "\u0bb2\u0bbf\u0baa\u0bbf\u0baf\u0bbe", "LS": "\u0bb2\u0bc6\u0b9a\u0bcb\u0ba4\u0bcb", "LB": "\u0bb2\u0bc6\u0baa\u0ba9\u0bbe\u0ba9\u0bcd", "LR": "\u0bb2\u0bc8\u0baa\u0bc0\u0bb0\u0bbf\u0baf\u0bbe", "KP": "\u0bb5\u0b9f \u0b95\u0bca\u0bb0\u0bbf\u0baf\u0bbe", "MK": "\u0bb5\u0b9f\u0b95\u0bcd\u0b95\u0bc1 \u0bae\u0bbe\u0b9a\u0bbf\u0b9f\u0bcb\u0ba9\u0bbf\u0baf\u0bbe", "VU": "\u0bb5\u0ba9\u0bc1\u0bb5\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1", "VA": "\u0bb5\u0bbe\u0b9f\u0bbf\u0b95\u0ba9\u0bcd \u0ba8\u0b95\u0bb0\u0bae\u0bcd", "WF": "\u0bb5\u0bbe\u0bb2\u0bbf\u0bb8\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b83\u0baa\u0bc1\u0b9f\u0bc1\u0ba9\u0bbe", "VN": "\u0bb5\u0bbf\u0baf\u0b9f\u0bcd\u0ba8\u0bbe\u0bae\u0bcd", "VE": "\u0bb5\u0bc6\u0ba9\u0bbf\u0b9a\u0bc1\u0bb2\u0bbe", "JP": "\u0b9c\u0baa\u0bcd\u0baa\u0bbe\u0ba9\u0bcd", "JM": "\u0b9c\u0bae\u0bc8\u0b95\u0bbe", "ZM": "\u0b9c\u0bbe\u0bae\u0bcd\u0baa\u0bbf\u0baf\u0bbe", "GE": "\u0b9c\u0bbe\u0bb0\u0bcd\u0b9c\u0bbf\u0baf\u0bbe", "GI": "\u0b9c\u0bbf\u0baa\u0bcd\u0bb0\u0bbe\u0bb2\u0bcd\u0b9f\u0bb0\u0bcd", "DJ": "\u0b9c\u0bbf\u0baa\u0bcc\u0b9f\u0bcd\u0b9f\u0bbf", "ZW": "\u0b9c\u0bbf\u0bae\u0bcd\u0baa\u0bbe\u0baa\u0bcd\u0bb5\u0bc7", "DE": "\u0b9c\u0bc6\u0bb0\u0bcd\u0bae\u0ba9\u0bbf", "JO": "\u0b9c\u0bcb\u0bb0\u0bcd\u0b9f\u0bbe\u0ba9\u0bcd", "ES": "\u0bb8\u0bcd\u0baa\u0bc6\u0baf\u0bbf\u0ba9\u0bcd", "SK": "\u0bb8\u0bcd\u0bb2\u0bcb\u0bb5\u0bbe\u0b95\u0bbf\u0baf\u0bbe", "SI": "\u0bb8\u0bcd\u0bb2\u0bcb\u0bb5\u0bc7\u0ba9\u0bbf\u0baf\u0bbe", "SJ": "\u0bb8\u0bcd\u0bb5\u0bb2\u0bcd\u0baa\u0bbe\u0bb0\u0bcd\u0b9f\u0bc1 & \u0b9c\u0bbe\u0ba9\u0bcd \u0bae\u0bc7\u0baf\u0ba9\u0bcd", "CH": "\u0bb8\u0bcd\u0bb5\u0bbf\u0b9f\u0bcd\u0b9a\u0bb0\u0bcd\u0bb2\u0bbe\u0ba8\u0bcd\u0ba4\u0bc1", "SE": "\u0bb8\u0bcd\u0bb5\u0bc0\u0b9f\u0ba9\u0bcd", "HU": "\u0bb9\u0b99\u0bcd\u0b95\u0bc7\u0bb0\u0bbf", "HK": "\u0bb9\u0bbe\u0b99\u0bcd\u0b95\u0bbe\u0b99\u0bcd \u0b8e\u0bb8\u0bcd\u0b8f\u0b86\u0bb0\u0bcd \u0b9a\u0bc0\u0ba9\u0bbe", "HM": "\u0bb9\u0bc7\u0bb0\u0bcd\u0b9f\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0bae\u0bc6\u0b95\u0bcd\u0b9f\u0bca\u0ba9\u0bbe\u0bb2\u0bcd\u0b9f\u0bc1 \u0ba4\u0bc0\u0bb5\u0bc1\u0b95\u0bb3\u0bcd", "HT": "\u0bb9\u0bc8\u0b9f\u0bcd\u0b9f\u0bbf", "HN": "\u0bb9\u0bcb\u0ba3\u0bcd\u0b9f\u0bc2\u0bb0\u0bbe\u0bb8\u0bcd"}
\ No newline at end of file
diff --git a/desktop/onionshare/resources/images/close_tab.png b/desktop/onionshare/resources/images/close_tab.png
deleted file mode 100644
index a7984a6d..00000000
Binary files a/desktop/onionshare/resources/images/close_tab.png and /dev/null differ
diff --git a/desktop/onionshare/resources/images/dark_history_completed_none.svg b/desktop/onionshare/resources/images/dark_history_completed_none.svg
new file mode 100644
index 00000000..6a0a1435
--- /dev/null
+++ b/desktop/onionshare/resources/images/dark_history_completed_none.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/desktop/onionshare/resources/images/dark_history_icon_toggle.svg b/desktop/onionshare/resources/images/dark_history_icon_toggle.svg
new file mode 100644
index 00000000..9166e984
--- /dev/null
+++ b/desktop/onionshare/resources/images/dark_history_icon_toggle.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/desktop/onionshare/resources/images/dark_history_icon_toggle_selected.svg b/desktop/onionshare/resources/images/dark_history_icon_toggle_selected.svg
new file mode 100644
index 00000000..f5f6231a
--- /dev/null
+++ b/desktop/onionshare/resources/images/dark_history_icon_toggle_selected.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/desktop/onionshare/resources/images/dark_history_in_progress_none.svg b/desktop/onionshare/resources/images/dark_history_in_progress_none.svg
new file mode 100644
index 00000000..d72f4a6a
--- /dev/null
+++ b/desktop/onionshare/resources/images/dark_history_in_progress_none.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/desktop/onionshare/resources/images/dark_history_requests_none.svg b/desktop/onionshare/resources/images/dark_history_requests_none.svg
new file mode 100644
index 00000000..d5453b75
--- /dev/null
+++ b/desktop/onionshare/resources/images/dark_history_requests_none.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/desktop/onionshare/resources/images/dark_persistent_enabled.svg b/desktop/onionshare/resources/images/dark_persistent_enabled.svg
new file mode 100644
index 00000000..239d6431
--- /dev/null
+++ b/desktop/onionshare/resources/images/dark_persistent_enabled.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/desktop/onionshare/resources/images/dark_server_stopped.svg b/desktop/onionshare/resources/images/dark_server_stopped.svg
new file mode 100644
index 00000000..0f315177
--- /dev/null
+++ b/desktop/onionshare/resources/images/dark_server_stopped.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/desktop/onionshare/resources/images/history_completed.png b/desktop/onionshare/resources/images/history_completed.png
deleted file mode 100644
index e68fe5a2..00000000
Binary files a/desktop/onionshare/resources/images/history_completed.png and /dev/null differ
diff --git a/desktop/onionshare/resources/images/history_completed.svg b/desktop/onionshare/resources/images/history_completed.svg
new file mode 100644
index 00000000..b59e8f08
--- /dev/null
+++ b/desktop/onionshare/resources/images/history_completed.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/desktop/onionshare/resources/images/history_completed_none.png b/desktop/onionshare/resources/images/history_completed_none.png
deleted file mode 100644
index 8dbd6939..00000000
Binary files a/desktop/onionshare/resources/images/history_completed_none.png and /dev/null differ
diff --git a/desktop/onionshare/resources/images/history_in_progress.png b/desktop/onionshare/resources/images/history_in_progress.png
deleted file mode 100644
index 19694659..00000000
Binary files a/desktop/onionshare/resources/images/history_in_progress.png and /dev/null differ
diff --git a/desktop/onionshare/resources/images/history_in_progress.svg b/desktop/onionshare/resources/images/history_in_progress.svg
new file mode 100644
index 00000000..137e0533
--- /dev/null
+++ b/desktop/onionshare/resources/images/history_in_progress.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/desktop/onionshare/resources/images/history_in_progress_none.png b/desktop/onionshare/resources/images/history_in_progress_none.png
deleted file mode 100644
index 2d61dba4..00000000
Binary files a/desktop/onionshare/resources/images/history_in_progress_none.png and /dev/null differ
diff --git a/desktop/onionshare/resources/images/history_requests.png b/desktop/onionshare/resources/images/history_requests.png
deleted file mode 100644
index 4965744d..00000000
Binary files a/desktop/onionshare/resources/images/history_requests.png and /dev/null differ
diff --git a/desktop/onionshare/resources/images/history_requests.svg b/desktop/onionshare/resources/images/history_requests.svg
new file mode 100644
index 00000000..c19698a3
--- /dev/null
+++ b/desktop/onionshare/resources/images/history_requests.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/desktop/onionshare/resources/images/history_requests_none.png b/desktop/onionshare/resources/images/history_requests_none.png
deleted file mode 100644
index 93a71ef3..00000000
Binary files a/desktop/onionshare/resources/images/history_requests_none.png and /dev/null differ
diff --git a/desktop/onionshare/resources/images/light_history_completed_none.svg b/desktop/onionshare/resources/images/light_history_completed_none.svg
new file mode 100644
index 00000000..8ef9d629
--- /dev/null
+++ b/desktop/onionshare/resources/images/light_history_completed_none.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/desktop/onionshare/resources/images/light_history_icon_toggle.svg b/desktop/onionshare/resources/images/light_history_icon_toggle.svg
new file mode 100644
index 00000000..ecdb8bb8
--- /dev/null
+++ b/desktop/onionshare/resources/images/light_history_icon_toggle.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/desktop/onionshare/resources/images/light_history_icon_toggle_selected.svg b/desktop/onionshare/resources/images/light_history_icon_toggle_selected.svg
new file mode 100644
index 00000000..18d9db26
--- /dev/null
+++ b/desktop/onionshare/resources/images/light_history_icon_toggle_selected.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/desktop/onionshare/resources/images/light_history_in_progress_none.svg b/desktop/onionshare/resources/images/light_history_in_progress_none.svg
new file mode 100644
index 00000000..f489d5e7
--- /dev/null
+++ b/desktop/onionshare/resources/images/light_history_in_progress_none.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/desktop/onionshare/resources/images/light_history_requests_none.svg b/desktop/onionshare/resources/images/light_history_requests_none.svg
new file mode 100644
index 00000000..e89e77fa
--- /dev/null
+++ b/desktop/onionshare/resources/images/light_history_requests_none.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/desktop/onionshare/resources/images/light_persistent_enabled.svg b/desktop/onionshare/resources/images/light_persistent_enabled.svg
new file mode 100644
index 00000000..77fc5f48
--- /dev/null
+++ b/desktop/onionshare/resources/images/light_persistent_enabled.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/desktop/onionshare/resources/images/light_server_stopped.svg b/desktop/onionshare/resources/images/light_server_stopped.svg
new file mode 100644
index 00000000..8023ea72
--- /dev/null
+++ b/desktop/onionshare/resources/images/light_server_stopped.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/desktop/onionshare/resources/images/open_folder.png b/desktop/onionshare/resources/images/open_folder.png
deleted file mode 100644
index 0a734c41..00000000
Binary files a/desktop/onionshare/resources/images/open_folder.png and /dev/null differ
diff --git a/desktop/onionshare/resources/images/open_folder.svg b/desktop/onionshare/resources/images/open_folder.svg
new file mode 100644
index 00000000..5981597a
--- /dev/null
+++ b/desktop/onionshare/resources/images/open_folder.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/desktop/onionshare/resources/images/persistent_enabled.png b/desktop/onionshare/resources/images/persistent_enabled.png
deleted file mode 100644
index 6c295db5..00000000
Binary files a/desktop/onionshare/resources/images/persistent_enabled.png and /dev/null differ
diff --git a/desktop/onionshare/resources/images/server_started.png b/desktop/onionshare/resources/images/server_started.png
deleted file mode 100644
index 9c0c3176..00000000
Binary files a/desktop/onionshare/resources/images/server_started.png and /dev/null differ
diff --git a/desktop/onionshare/resources/images/server_started.svg b/desktop/onionshare/resources/images/server_started.svg
new file mode 100644
index 00000000..8358e726
--- /dev/null
+++ b/desktop/onionshare/resources/images/server_started.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/desktop/onionshare/resources/images/server_stopped.png b/desktop/onionshare/resources/images/server_stopped.png
deleted file mode 100644
index 5c5b2ec0..00000000
Binary files a/desktop/onionshare/resources/images/server_stopped.png and /dev/null differ
diff --git a/desktop/onionshare/resources/images/server_working.png b/desktop/onionshare/resources/images/server_working.png
deleted file mode 100644
index e5c8b318..00000000
Binary files a/desktop/onionshare/resources/images/server_working.png and /dev/null differ
diff --git a/desktop/onionshare/resources/images/server_working.svg b/desktop/onionshare/resources/images/server_working.svg
new file mode 100644
index 00000000..3717cbff
--- /dev/null
+++ b/desktop/onionshare/resources/images/server_working.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/desktop/onionshare/resources/locale/af.json b/desktop/onionshare/resources/locale/af.json
index 1e0e6821..dc607bf3 100644
--- a/desktop/onionshare/resources/locale/af.json
+++ b/desktop/onionshare/resources/locale/af.json
@@ -84,11 +84,11 @@
"gui_url_label_stay_open": "Hierdie deel sal nie self stop nie.",
"gui_url_label_onetime": "Hierdie deel sal stop na eerste voltooiing.",
"gui_url_label_onetime_and_persistent": "Hierdie deel sal nie self stop nie.
Elke opvolgende deel sal die adres hergebruik. (Deaktiveer “Gebruik ’n blywende adres” in die instellings om eenmalige adresse te gebruik.)",
- "gui_status_indicator_share_stopped": "Gereed om te deel",
+ "gui_status_indicator_share_stopped": "Gestop",
"gui_status_indicator_share_working": "Begin…",
"gui_status_indicator_share_scheduled": "Geskeduleer…",
"gui_status_indicator_share_started": "Deel tans",
- "gui_status_indicator_receive_stopped": "Gereed om te ontvang",
+ "gui_status_indicator_receive_stopped": "Gestop",
"gui_status_indicator_receive_working": "Begin…",
"gui_status_indicator_receive_scheduled": "Geskeduleer…",
"gui_status_indicator_receive_started": "Ontvang tans",
@@ -194,7 +194,7 @@
"gui_status_indicator_chat_scheduled": "Geskeduleer…",
"gui_url_instructions_public_mode": "Stuur die onderstaande OnionShare-adres:",
"gui_client_auth_instructions": "Stuur dan die privaat sleutel vir toegang tot u OnionShare-diens:",
- "gui_status_indicator_chat_stopped": "Gereed om te klets",
+ "gui_status_indicator_chat_stopped": "Gestop",
"gui_status_indicator_chat_working": "Begin…",
"gui_settings_theme_label": "Tema",
"gui_settings_theme_auto": "Outomaties",
diff --git a/desktop/onionshare/resources/locale/am.json b/desktop/onionshare/resources/locale/am.json
index cb47ff96..2514d858 100644
--- a/desktop/onionshare/resources/locale/am.json
+++ b/desktop/onionshare/resources/locale/am.json
@@ -20,5 +20,8 @@
"gui_settings_authenticate_password_option": "የመግቢያ ቃል",
"moat_captcha_submit": "Submit",
"gui_settings_theme_dark": "ጨለማ",
- "gui_settings_theme_light": "ብርሃን"
+ "gui_settings_theme_light": "ብርሃን",
+ "gui_status_indicator_receive_stopped": "ቆምዋል",
+ "gui_status_indicator_chat_stopped": "ቆምዋል",
+ "gui_status_indicator_share_stopped": "ቆምዋል"
}
diff --git a/desktop/onionshare/resources/locale/ar.json b/desktop/onionshare/resources/locale/ar.json
index 2814c902..05568180 100644
--- a/desktop/onionshare/resources/locale/ar.json
+++ b/desktop/onionshare/resources/locale/ar.json
@@ -72,14 +72,14 @@
"gui_server_autostop_timer_expired": "لقد بلغ مؤقت الإيقاف التلقائي أجله. يُرجى ضبطه للبدء بالمشاركة.",
"gui_share_url_description": "إن أي شخص لديه عنوان OnionShare هذا سيكون بوسعه تنزيل تلك الملفات باستخدام متصفح تور: ",
"gui_receive_url_description": "يمكن لأيّ شخص لديه عنوان OnionShare هذا رفع الملفات إلى حاسوبك باستعمال متصفح تور : ",
- "gui_url_label_persistent": "لن تتوقف هذه المشاركة تلقائيا.
كل مشاركة لاحقة ستعيد استخدام نفس العنوان. (لاستخدام عناوين ذات الاستعمال الوحيد، عطّل خيار ”استخدم عنوانا دائما“ في الإعدادات.",
+ "gui_url_label_persistent": "لن تتوقف هذه المشاركة تلقائيًا.
كل مشاركة لاحقة تعيد استخدام نفس العنوان. (لاستخدام عناوين ذات الاستعمال الوحيد، عطّل خيار ”افتح علامة التبويب هذه دائمًا عند بدء تشغيل OnionShare“ في الإعدادات.)",
"gui_url_label_stay_open": "لن تتوقف هذه المشاركة تلقائيا.",
"gui_url_label_onetime": "ستتوقف هذه المشاركة تلقائيا بعد إتمام أول تنزيل.",
- "gui_url_label_onetime_and_persistent": "هذه المشاركة لن تتوقف تلقائيا.
كل مشاركة لاحقة ستعيد استخدام نفس العنوان. (لاستخدام عناوين ذات الاستعمال الوحيد، عطّل خيار ”استخدم عنوانا دائما“ في الإعدادات.)",
- "gui_status_indicator_share_stopped": "جاهز للمشاركة",
+ "gui_url_label_onetime_and_persistent": "لن تتوقف هذه المشاركة تلقائيًا.
كل مشاركة لاحقة ستعيد استخدام نفس العنوان. (لاستخدام عناوين ذات الاستعمال الوحيد، عطّل خيار ”افتح علامة التبويب هذه دائمًا عند بدء تشغيل OnionShare“ في الإعدادات.)",
+ "gui_status_indicator_share_stopped": "متوقف",
"gui_status_indicator_share_working": "يبدأ…",
"gui_status_indicator_share_started": "تجري المشاركة",
- "gui_status_indicator_receive_stopped": "جاهز للاستلام",
+ "gui_status_indicator_receive_stopped": "متوقف",
"gui_status_indicator_receive_working": "يبدأ…",
"gui_status_indicator_receive_started": "يجري الاستلام",
"gui_file_info": "{} ملفات، {}",
@@ -148,7 +148,7 @@
"mode_settings_autostop_timer_checkbox": "إيقاف الخدمة البصلية في الميعاد المُجدوَل",
"mode_settings_autostart_timer_checkbox": "بدء الخدمة البصلية في الميعاد المُجدوَل",
"mode_settings_public_checkbox": "هذه هي خدمة OnionShare خاصة بالعامة (تُعطّل المفتاح الخاص)",
- "mode_settings_persistent_checkbox": "افتح علامة التبويب هذه دائما عند بدء تشغيل OnionShare",
+ "mode_settings_persistent_checkbox": "افتح علامة التبويب هذه دائمًا عند بدء تشغيل OnionShare (سيبقى عنوان البصل كما هو)",
"mode_settings_advanced_toggle_hide": "إخفاء الإعدادات المتقدمة",
"mode_settings_advanced_toggle_show": "عرض الإعدادات المتقدمة",
"gui_quit_warning_cancel": "ألغِ",
@@ -190,7 +190,7 @@
"gui_status_indicator_chat_started": "يكتب",
"gui_status_indicator_chat_scheduled": "مُجدوَل…",
"gui_status_indicator_chat_working": "يبدأ…",
- "gui_status_indicator_chat_stopped": "جاهز للمحادثة",
+ "gui_status_indicator_chat_stopped": "متوقف",
"gui_client_auth_instructions": "بعد ذلك، أرسل المفتاح الخاص للسماح بالوصول إلى خدمة OnionShare الخاصة بك:",
"gui_url_instructions_public_mode": "أرسل عنوان OnionShare أدناه:",
"gui_url_instructions": "أولا، أرسل عنوان OnionShare أدناه:",
@@ -254,5 +254,8 @@
"gui_settings_stop_active_tabs_label": "هناك خدمات تعمل في بعض علامات تبويبك.\nيجب عليك إيقاف جميع الخدمات لتغيير إعداداتك في تور.",
"mode_settings_website_custom_csp_checkbox": "أرسل ترويسة مخصصة لسياسة أمان المحتوى (Content-Security-Policy header)",
"gui_receive_url_public_description": "يمكن لأي شخص لديه عنوان OnionShare هذا رفع الملفات إلى حاسوبك باستخدام متصفح تور : ",
- "gui_chat_mode_explainer": "وضع المحادثة يتيح لك المحادثة بشكل تفاعلي مع الآخرين، في متصفح تور.
لا يتم تخزين سجل المحادثة في OnionShare. سوف يختفي سجل المحادثة عند إغلاق متصفح تور."
+ "gui_chat_mode_explainer": "وضع المحادثة يتيح لك المحادثة بشكل تفاعلي مع الآخرين، في متصفح تور.
لا يتم تخزين سجل المحادثة في OnionShare. سوف يختفي سجل المحادثة عند إغلاق متصفح تور.",
+ "mode_settings_persistent_autostart_on_launch_checkbox": "ابدأ خدمة البصل هذه تلقائيًا عند بدء تشغيل Onionshare",
+ "gui_settings_license_label": "تم ترخيص Onionshare بموجب GPL v3. يمكن الاطلاع على تراخيص الطرف الثالث هنا: https://github.com/onionshare/onionshare/tree/main/licenses",
+ "error_generic": "كان هناك خطأ غير متوقع مع OnionShare:\n{}"
}
diff --git a/desktop/onionshare/resources/locale/be.json b/desktop/onionshare/resources/locale/be.json
index f2f39404..ba21d945 100644
--- a/desktop/onionshare/resources/locale/be.json
+++ b/desktop/onionshare/resources/locale/be.json
@@ -131,15 +131,15 @@
"gui_url_instructions": "Спачатку дашліце паказаны ніжэй адрас OnionShare:",
"gui_url_instructions_public_mode": "Дашліце паказаны ніжэй адрас OnionShare:",
"gui_client_auth_instructions": "Затым адпраўце прыватны ключ, каб дазволіць доступ да сэрвісу OnionShare:",
- "gui_status_indicator_share_stopped": "Гатовы да адпраўкі",
+ "gui_status_indicator_share_stopped": "Спынена",
"gui_status_indicator_share_working": "Запуск…",
"gui_status_indicator_share_scheduled": "Плануецца…",
"gui_status_indicator_share_started": "Адпраўка",
- "gui_status_indicator_receive_stopped": "Гатова да атрымання",
+ "gui_status_indicator_receive_stopped": "Спынена",
"gui_status_indicator_receive_working": "Пачынаецца…",
"gui_status_indicator_receive_scheduled": "Запланавана…",
"gui_status_indicator_receive_started": "Атрыманне",
- "gui_status_indicator_chat_stopped": "Гатовы да зносін",
+ "gui_status_indicator_chat_stopped": "Спынена",
"gui_status_indicator_chat_working": "Запуск…",
"gui_status_indicator_chat_scheduled": "Запланавана…",
"gui_status_indicator_chat_started": "Зносіны",
diff --git a/desktop/onionshare/resources/locale/bg.json b/desktop/onionshare/resources/locale/bg.json
index 2c6d3e55..007a01b2 100644
--- a/desktop/onionshare/resources/locale/bg.json
+++ b/desktop/onionshare/resources/locale/bg.json
@@ -5,7 +5,7 @@
"closing_automatically": "Изтеглянето е завършено, услугата е спряна",
"large_filesize": "Предупреждение: изпращането са голям обем от данни може да отнеме часове",
"systray_menu_exit": "Изход",
- "gui_drag_and_drop": "Плъзнете и пуснете тук файловете и папките, които искате да споделяте",
+ "gui_drag_and_drop": "Плъзнете и пуснете тук файловете и папките, които искате да споделите",
"gui_add": "Добавяне",
"gui_choose_items": "Изберете",
"gui_share_start_server": "Споделяне",
@@ -32,7 +32,7 @@
"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_connection_type_test_button": "Проверка на връзката с Тор",
"gui_settings_control_port_label": "Порт за управление",
"gui_settings_socket_file_label": "Файл на сокет",
"gui_settings_socks_label": "Порт на SOCKS",
@@ -55,7 +55,7 @@
"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: {}.",
+ "settings_test_success": "Има връзка с контролер на Tor.\n\nИздание на Tor: {}\nПоддържа временни услуги на Onion: {}\nПоддържа удостоверяване на клиента: {}\nПоддържа следващо поколение адреси .onion: {}.",
"error_tor_protocol_error": "Възникнала е грешка в Тор: {}",
"connecting_to_tor": "Свързване към мрежата на Тор",
"update_available": "Има ново издание на OnionShare. За да го изтеглите щракнете тук.
Използвате {}, последно издание {}.",
@@ -72,14 +72,14 @@
"gui_server_autostop_timer_expired": "Изчакването за автоматично изключване е изтекло. Променете времето и споделете отново.",
"gui_share_url_description": "Всеки, имащ адреса на OnionShare и частния ключ може да изтегли файловете чрез Четеца Тор: ",
"gui_receive_url_description": "Всеки, имащ адреса на OnionShare и частния ключ може да изпрати файлове на това устройство чрез Четеца Тор: ",
- "gui_url_label_persistent": "Този дял няма да спре автоматично.
Всеки следващ дял ще използва повторно адреса. (За да използвате еднократни адреси, изключете \"Използвайте постоянен адрес\" в настройките)",
+ "gui_url_label_persistent": "Споделянето няма да спре автоматично.
Всяко следващо споделяне ще използва същия адрес. (За да използвате еднократни адреси, изключете „Отваряне на този раздел при стартиране на OnionShare“ в настройките)",
"gui_url_label_stay_open": "Услугата няма да спре автоматично.",
"gui_url_label_onetime": "Услугата ще спре автоматично след първото изтегляне.",
- "gui_url_label_onetime_and_persistent": "Този дял няма да спре автоматично.
Всеки следващ дял ще използва повторно адреса. (За да използвате еднократни адреси, изключете \"Използвайте постоянен адрес\" в настройките)",
- "gui_status_indicator_share_stopped": "В готовност за споделяне",
+ "gui_url_label_onetime_and_persistent": "Споделянето няма да спре автоматично.
Всяко следващо споделяне ще използва същия адрес. (За да използвате еднократни адреси, изключете „Отваряне на този раздел при стартиране на OnionShare“ в настройките)",
+ "gui_status_indicator_share_stopped": "Спряно",
"gui_status_indicator_share_working": "Включване…",
"gui_status_indicator_share_started": "Споделяне",
- "gui_status_indicator_receive_stopped": "В готовност за получаване",
+ "gui_status_indicator_receive_stopped": "Спряно",
"gui_status_indicator_receive_working": "Включване…",
"gui_status_indicator_receive_started": "Получаване",
"gui_file_info": "{} файла, {}",
@@ -125,7 +125,7 @@
"gui_dragdrop_sandbox_flatpak": "С цел сигурност, пясъчниците на Flatpack не поддържат влачене и пускане на файлове и папки. Вместо това използвайте бутоните.",
"gui_tab_name_share": "Споделяне",
"mode_settings_receive_data_dir_label": "Запазване на файловете",
- "mode_settings_receive_webhook_url_checkbox": "Използване на уеб кука за известия",
+ "mode_settings_receive_webhook_url_checkbox": "Отдалечено известяване",
"gui_autoconnect_start": "Свързване с Тор",
"gui_please_wait_no_button": "Включване…",
"gui_quit_warning_title": "Изход от OnionShare",
@@ -134,7 +134,7 @@
"gui_qr_label_url_title": "Адрес на OnionShare",
"gui_status_indicator_chat_working": "Включване…",
"gui_add_files": "Добавяне на файлове",
- "gui_waiting_to_start": "Ще бъде включен в {}. Щракнете за отменяне.",
+ "gui_waiting_to_start": "Включване след {}. Натиснете за отменяне.",
"gui_close_tab_warning_close": "Добре",
"gui_qr_code_dialog_title": "QR код на OnionShare",
"gui_show_qr_code": "Показване на QR код",
@@ -203,13 +203,13 @@
"systray_receive_started_title": "Започнато е получаване",
"mode_settings_advanced_toggle_hide": "Скриване на разширени настройки",
"gui_close_tab_warning_receive_description": "Затваряте раздел, който получава файлове!",
- "gui_status_indicator_chat_stopped": "В готовност за разговор",
+ "gui_status_indicator_chat_stopped": "Спряно",
"moat_solution_empty_error": "Въведете знаците от изображението",
"mode_settings_receive_disable_files_checkbox": "Без качване на файлове",
"gui_rendezvous_cleanup": "Изчакват се веригите на Tor да затворят, за да е сигурно, че файловете са прехвърлени.\n\nМоже да отнеме минута.",
"mode_settings_receive_data_dir_browse_button": "Избиране",
"systray_share_completed_message": "Край на изпращане на файловете",
- "mode_settings_persistent_checkbox": "Отваряне на този раздел при стартиране на OnionShare",
+ "mode_settings_persistent_checkbox": "Отваряне на този раздел при стартиране на OnionShare (адресът на onion ще остане същия)",
"systray_share_started_message": "Начало на изпращане на файлове към някого",
"waitress_web_server_error": "Грешка при стартиране на уеб сървъра",
"gui_all_modes_progress_starting": "{0:s}, %p% (изчисляват се)",
@@ -254,5 +254,8 @@
"systray_share_canceled_message": "Някой прекъсна изтеглянето на файловете",
"mode_settings_website_disable_csp_checkbox": "Без изпращане на подразбираната заглавка на Content Security Policy (за използване на странични ресурси)",
"history_receive_read_message_button": "Прочитане",
- "gui_chat_mode_explainer": "Режимът за бързи съобщения ви дава възможност да обменяте съобщения в реално време посредством четеца Тор.
Хронологията на разговора не се пази в OnionShare. Тя изчезва при затваряне на четеца."
+ "gui_chat_mode_explainer": "Режимът за бързи съобщения ви дава възможност да обменяте съобщения в реално време посредством четеца Тор.
Хронологията на разговора не се пази в OnionShare. Тя изчезва при затваряне на четеца.",
+ "mode_settings_persistent_autostart_on_launch_checkbox": "Стартиране на тази услуга на Onion при отваряне на OnionShare",
+ "gui_settings_license_label": "OnionShare се разпространява под GPL v3. Лицензите на трети страни могат да бъдат видяни тук: https://github.com/onionshare/onionshare/tree/main/licenses",
+ "error_generic": "Неочаквана грешка в OnionShare:\n{}"
}
diff --git a/desktop/onionshare/resources/locale/bn.json b/desktop/onionshare/resources/locale/bn.json
index fb1456af..9373e284 100644
--- a/desktop/onionshare/resources/locale/bn.json
+++ b/desktop/onionshare/resources/locale/bn.json
@@ -76,10 +76,10 @@
"gui_url_label_stay_open": "এই শেয়ারটি অটো-স্টপ হবে না ।",
"gui_url_label_onetime": "প্রথমবার ফাইল ডাউনলোড হওয়ার পরই এই শেয়ারটি বন্ধ হয়ে যাবে।",
"gui_url_label_onetime_and_persistent": "এই শেয়ার অটো-স্টপ হবে না ।
প্রতিটি শেয়ার এই একই স্থায়ী ঠিকানা ব্যবহার করে। (অস্থায়ী ঠিকানা ব্যবহার করতে, সেটিংস-এ ' অবিরাম ঠিকানা ব্যাবহার ' বন্ধ করুন।)",
- "gui_status_indicator_share_stopped": "শেয়ার করার জন্য প্রস্তুত",
+ "gui_status_indicator_share_stopped": "বন্ধ করা হয়েছে",
"gui_status_indicator_share_working": "আরম্ভ হচ্ছে…",
"gui_status_indicator_share_started": "শেয়ারিং",
- "gui_status_indicator_receive_stopped": "পাওয়ার জন্য প্রস্তুত",
+ "gui_status_indicator_receive_stopped": "বন্ধ করা হয়েছে",
"gui_status_indicator_receive_working": "শুরু…",
"gui_status_indicator_receive_started": "গ্রহণ",
"gui_file_info": "{} ফাইল, {}",
@@ -186,7 +186,7 @@
"gui_status_indicator_chat_started": "চ্যাট করছে",
"gui_status_indicator_chat_scheduled": "শিডিউল করা হয়েছে…",
"gui_status_indicator_chat_working": "শুরু…",
- "gui_status_indicator_chat_stopped": "চ্যাট করতে প্রস্তুত",
+ "gui_status_indicator_chat_stopped": "বন্ধ করা হয়েছে",
"gui_server_doesnt_support_stealth": "দুখিত, টোরের এই সংস্করণটি স্টেল্থ (ক্লায়েন্ট প্রমাণীকরণ) সমর্থন করে না। দয়া করে টোরের একটি নতুন সংস্করণ দিয়ে চেষ্টা করুন, অথবা ব্যক্তিগত হওয়ার প্রয়োজন না হলে 'পাবলিক' মোড ব্যবহার করুন।",
"gui_settings_theme_dark": "কাল",
"gui_settings_theme_light": "হালকা",
diff --git a/desktop/onionshare/resources/locale/ca.json b/desktop/onionshare/resources/locale/ca.json
index 3efe3fbd..e7f003ad 100644
--- a/desktop/onionshare/resources/locale/ca.json
+++ b/desktop/onionshare/resources/locale/ca.json
@@ -16,8 +16,8 @@
"gui_receive_stop_server_autostop_timer": "Atura el mode de recepció (queden {})",
"gui_copy_url": "Copia l'adreça",
"gui_canceled": "S'ha cancel·lat",
- "gui_copied_url_title": "S'ha copiat l'adreça OnionShare",
- "gui_copied_url": "S'ha copiat l'adreça OnionShare al porta-retalls",
+ "gui_copied_url_title": "S'ha copiat l'adreça d'OnionShare",
+ "gui_copied_url": "S'ha copiat l'adreça d'OnionShare al porta-retalls",
"gui_please_wait": "S'està iniciant… Feu clic per a cancel·lar.",
"gui_quit_warning_quit": "Surt",
"zip_progress_bar_format": "S'està comprimint: %p%",
@@ -27,11 +27,11 @@
"gui_settings_autoupdate_timestamp": "Última comprovació: {}",
"gui_settings_autoupdate_timestamp_never": "Mai",
"gui_settings_autoupdate_check_button": "Comprova si hi ha una versió més nova",
- "gui_settings_connection_type_label": "Com hauria de connectar-se l'OnionShare al Tor?",
+ "gui_settings_connection_type_label": "Com hauria de connectar-se l'OnionShare a Tor?",
"gui_settings_connection_type_bundled_option": "Fes servir la versió de Tor inclosa dins d'OnionShare",
- "gui_settings_connection_type_automatic_option": "Intenta la configuració automàtica amb el navegador Tor",
+ "gui_settings_connection_type_automatic_option": "Intenta la configuració automàtica amb el Navegador Tor",
"gui_settings_connection_type_control_port_option": "Connecta fent servir el port de control",
- "gui_settings_connection_type_socket_file_option": "Connecta fent servir un fitxer de socket",
+ "gui_settings_connection_type_socket_file_option": "Connecta fent servir un fitxer de sòcol",
"gui_settings_connection_type_test_button": "Comprova la connexió a Tor",
"gui_settings_control_port_label": "Port de control",
"gui_settings_socket_file_label": "Fitxer de sòcol",
@@ -39,22 +39,22 @@
"gui_settings_authenticate_no_auth_option": "Sense autenticació, o autenticació amb galetes",
"gui_settings_authenticate_password_option": "Contrasenya",
"gui_settings_password_label": "Contrasenya",
- "gui_settings_tor_bridges": "Voleu connectar mitjançant un pont del Tor?",
- "gui_settings_meek_lite_expensive_warning": "Compte: Utilitzar els ponts meek_lite suposa un cost molt gran per al Tor Project .
Feu-los servir només si no podeu connectar-vos al Tor directament, amb obfs4, o mitjançant ponts normals.",
+ "gui_settings_tor_bridges": "Voleu connectar mitjançant un pont de Tor?",
+ "gui_settings_meek_lite_expensive_warning": "Avís: els ponts meek-azure són molt costosos per al Projecte Tor.
Feu-los servir només si no us podeu connectar directament a Tor, mitjançant transports obfs4 o altres ponts normals.",
"gui_settings_tor_bridges_invalid": "Cap dels ponts que heu afegit funciona. Comproveu-los o proveu d'afegir-ne de nous.",
"gui_settings_button_save": "Desa",
"gui_settings_button_cancel": "Cancel·la",
"gui_settings_button_help": "Ajuda",
"settings_error_unknown": "No s'ha pogut connectar a Tor perquè la configuració és inconsistent.",
- "settings_error_automatic": "No s'ha pogut connectar al controlador de Tor. Heu iniciat el Tor Browser (disponible a torproject.org)?",
+ "settings_error_automatic": "No s'ha pogut connectar al controlador de Tor. Heu iniciat el Navegador Tor (disponible a torproject.org) en segon pla?",
"settings_error_socket_port": "No s'ha pogut establir la connexió al controlador de Tor a {}:{}.",
"settings_error_socket_file": "No s'ha pogut connectar al controlador de Tor fent servir el fitxer de socket {}.",
"settings_error_auth": "S'ha establert la connexió a {}:{} però ha fallat l'autenticació. Pot ser que no sigui un controlador de Tor?",
"settings_error_missing_password": "S'ha establer la connexió al controlador de Tor, però necessita una contrasenya d'autenticació.",
"settings_error_unreadable_cookie_file": "S'ha establert la connexió al controlador de Tor, però pot ser que la contrasenya sigui errònia o que faltin permisos de lectura en el fitxer de galetes.",
- "settings_error_bundled_tor_not_supported": "La versió de Tor inclosa a OnionShare no funciona en mode de desenvolupador a Windows ni MacOS.",
+ "settings_error_bundled_tor_not_supported": "La versió de Tor inclosa a l'OnionShare no funciona en mode de desenvolupador a Windows ni a macOS.",
"settings_error_bundled_tor_timeout": "La connexió està trigant molt. Podeu revisar que tingueu connexió a Internet i que el rellotge del sistema estigui en hora?",
- "settings_error_bundled_tor_broken": "OnionShare no s'ha pogut connectar a Tor:\n{}",
+ "settings_error_bundled_tor_broken": "L'OnionShare no s'ha pogut connectar a Tor:\n{}",
"settings_test_success": "S'ha connectat al controlador de Tor.\n\nVersió de Tor: {}\nCompatible amb serveis onion efímers: {}.\nCompatible amb autenticació del client: {}.\nCompatible amb adreces .onion de nova generació: {}.",
"error_tor_protocol_error": "Hi ha hagut un error amb Tor: {}",
"connecting_to_tor": "S'està connectant a la xarxa Tor",
@@ -65,21 +65,21 @@
"gui_tor_connection_ask": "Voleu anar a la configuració per a provar d'arreglar la connexió a Tor?",
"gui_tor_connection_ask_open_settings": "Sí",
"gui_tor_connection_ask_quit": "Surt",
- "gui_tor_connection_error_settings": "Proveu de canviar la configuració de com OnionShare es connecta a la xarxa Tor.",
+ "gui_tor_connection_error_settings": "Proveu de canviar la configuració de com l'OnionShare es connecta a la xarxa Tor.",
"gui_tor_connection_canceled": "No s'ha pogut establir la connexió amb la xarxa Tor.\n\nAssegureu-vos que teniu connexió a internet, torneu a obrir l'OnionShare i prepareu la connexió a Tor.",
"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.",
"gui_share_url_description": "Qualsevol persona amb aquesta adreça d'OnionShare pot baixar els vostres fitxers fent servir el Navegador Tor: ",
"gui_receive_url_description": "Qualsevol persona amb aquesta adreça d'OnionShare pot pujar fitxers al vostre ordinador fent servir el Navegador Tor: ",
- "gui_url_label_persistent": "Aquest recurs no es tancarà ell sol.
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.)",
- "gui_url_label_stay_open": "Aquest recurs no es tancarà ell sol.",
+ "gui_url_label_persistent": "Aquest recurs no es tancarà automàticament.
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.)",
+ "gui_url_label_stay_open": "Aquest recurs no es tancarà automàticament.",
"gui_url_label_onetime": "Aquest recurs deixarà de compartir-se després de la primera baixada.",
"gui_url_label_onetime_and_persistent": "Aquest recurs no es tancarà ell sol.
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».)",
- "gui_status_indicator_share_stopped": "A punt per a compartir",
+ "gui_status_indicator_share_stopped": "Aturat",
"gui_status_indicator_share_working": "S'està iniciant…",
"gui_status_indicator_share_started": "S'està compartint",
- "gui_status_indicator_receive_stopped": "A punt per a rebre",
+ "gui_status_indicator_receive_stopped": "Aturat",
"gui_status_indicator_receive_working": "S'està iniciant…",
"gui_status_indicator_receive_started": "S'està rebent",
"gui_file_info": "{} fitxers, {}",
@@ -88,8 +88,8 @@
"history_completed_tooltip": "{} completats",
"gui_receive_mode_warning": "El mode de rebuda permet a qualsevol pujar fitxers al vostre ordinador.
Alguns fitxers podrien guanyar el control de la vostra màquina si els obriu. Obriu només fitxers de persones de confiança, o si realment sabeu el que esteu fent.",
"systray_page_loaded_title": "S'ha carregat la pàgina",
- "gui_settings_language_label": "Llengua preferida",
- "gui_settings_language_changed_notice": "Reinicieu l'OnionShare perquè s'apliqui la llengua.",
+ "gui_settings_language_label": "Llengua",
+ "gui_settings_language_changed_notice": "Reinicieu l'OnionShare per canviar a la nova llengua.",
"gui_add_files": "Afegeix fitxers",
"gui_add_folder": "Afegeix una carpeta",
"error_cannot_create_data_dir": "No s'ha pogut crear la carpeta de dades d'OnionShare: {}",
@@ -131,16 +131,16 @@
"gui_website_mode_no_files": "Encara no s'han compartit llocs web",
"incorrect_password": "La contrasenya no és correcta",
"history_requests_tooltip": "{} peticions web",
- "gui_new_tab_share_button": "Comparteix arxius",
+ "gui_new_tab_share_button": "Compartir fitxers",
"gui_new_tab_tooltip": "Obre una pestanya nova",
"gui_new_tab": "Nova pestanya",
"mode_settings_website_disable_csp_checkbox": "Desactiva la capçalera de la política de seguretat de contingut (permet que el vostre lloc web usi recursos de tercers)",
"mode_settings_receive_data_dir_browse_button": "Navega",
"mode_settings_receive_data_dir_label": "Desa els fitxers a",
"mode_settings_share_autostop_sharing_checkbox": "Atura la compartició després que s'hagin enviat els fitxers (desmarqueu-ho per a permetre baixar fitxers individuals)",
- "mode_settings_autostop_timer_checkbox": "Atura el servei ceba a una hora programada",
- "mode_settings_autostart_timer_checkbox": "Inicia el servei ceba a una hora programada",
- "mode_settings_public_checkbox": "No usis cap contrasenya",
+ "mode_settings_autostop_timer_checkbox": "Atura el servei onion a una hora programada",
+ "mode_settings_autostart_timer_checkbox": "Inicia el servei onion a una hora programada",
+ "mode_settings_public_checkbox": "Aquest és un servei públic d'OnionShare (desactiva la clau privada)",
"mode_settings_persistent_checkbox": "Obre aquesta pestanya automàticament en iniciar l'OnionShare",
"mode_settings_advanced_toggle_hide": "Amaga la configuració avançada",
"mode_settings_advanced_toggle_show": "Mostra la configuració avançada",
@@ -154,7 +154,7 @@
"gui_close_tab_warning_share_description": "Voleu tancar la pestanya que envia els fitxers?",
"gui_close_tab_warning_persistent_description": "Voleu tancar la pestanya persistent i perdre l'adreça onion assignada?",
"gui_close_tab_warning_title": "Voleu tancar la pestanya?",
- "gui_new_tab_website_button": "Publicar un lloc web",
+ "gui_new_tab_website_button": "Allotjar un lloc web",
"gui_new_tab_receive_button": "Rebre fitxers",
"gui_qr_code_dialog_title": "Codi QR de l'OnionShare",
"gui_show_qr_code": "Mostra el codi QR",
@@ -163,88 +163,88 @@
"gui_chat_start_server": "Inicia el servidor de xat",
"gui_file_selection_remove_all": "Treu-ho tot",
"gui_remove": "Treu",
- "error_port_not_available": "El port OnionShare no és disponible",
+ "error_port_not_available": "El port d'OnionShare no està disponible",
"gui_tab_name_chat": "Xat",
"gui_tab_name_website": "Lloc web",
"gui_tab_name_receive": "Rep",
"gui_tab_name_share": "Comparteix",
"gui_main_page_chat_button": "Comença el xat",
- "gui_main_page_website_button": "Comença l'allotjatment",
+ "gui_main_page_website_button": "Comença l'allotjament",
"gui_main_page_receive_button": "Comença la recepció",
"gui_main_page_share_button": "Comença la compartició",
"gui_new_tab_chat_button": "Xat anònim",
"gui_open_folder_error": "No s'ha pogut obrir la carpeta amb xdg-open. El fitxer és aquí: {}",
- "gui_chat_url_description": "Qualsevol persona amb aquesta adreça OnionShare pot unir-se a aquesta sala de xat fent servir el navegador Tor: ",
+ "gui_chat_url_description": "Qualsevol persona amb aquesta adreça OnionShare pot unir-se a aquesta sala de xat fent servir el Navegador Tor: ",
"gui_qr_label_auth_string_title": "Clau privada",
"gui_settings_bridge_moat_button": "Demana un pont nou",
"gui_qr_label_url_title": "Adreça d'OnionShare",
"gui_settings_tor_bridges_label": "Els ponts us ajuden a connectar amb la xarxa Tor si aquesta és blocada. Depenent de la vostra ubicació, un pont pot funcionar millor que un altre.",
"gui_settings_stop_active_tabs_label": "Aquests serveis estan funcionant en alguna de les vostres pestanyes.\nAtureu tots els serveis abans de canviar les opcions del Tor.",
- "gui_rendezvous_cleanup": "S'està esperant que es tanquin els circuits del Tor per a assegurar que els vostres fitxers s'han transferit.\n\nAixò pot trigar una estona.",
+ "gui_rendezvous_cleanup": "S'està esperant que es tanquin els circuits de Tor per a assegurar que els vostres fitxers s'han transferit.\n\nAixò pot trigar una estona.",
"gui_status_indicator_chat_started": "En conversa",
"gui_dragdrop_sandbox_flatpak": "Perquè el sorral del Flatpak sigui més segur, no es permet arrossegar i deixar anar. Utilitzeu els botons «Afegeix fitxers» i «Afegeix una carpeta».",
"gui_copy_client_auth": "Copia la clau privada",
"gui_copied_client_auth_title": "S'ha copiat la clau privada",
"gui_copied_client_auth": "S'ha copiat la clau privada al porta-retalls",
- "gui_tor_settings_window_title": "Opcions del Tor",
- "gui_settings_controller_extras_label": "Configuracions del Tor",
+ "gui_tor_settings_window_title": "Paràmetres de Tor",
+ "gui_settings_controller_extras_label": "Paràmetres de Tor",
"gui_settings_bridge_use_checkbox": "Utilitza un pont",
"gui_settings_bridge_none_radio_option": "No utilitzis ponts",
- "gui_settings_bridge_moat_radio_option": "Demana un pont des de torproject.org",
+ "gui_settings_bridge_moat_radio_option": "Demana un pont a torproject.org",
"gui_settings_bridge_custom_placeholder": "Escriviu adreça:port (un per línia)",
"gui_settings_moat_bridges_invalid": "Encara no heu demanat cap pont des de torproject.org.",
- "gui_settings_bridge_custom_radio_option": "Indiqueu un pont provinent d'una font fiable que conegueu",
- "gui_settings_bridge_radio_builtin": "Seleccioneu un pont predefinit",
+ "gui_settings_bridge_custom_radio_option": "Proporcioneu un pont provinent d'una font de confiança",
+ "gui_settings_bridge_radio_builtin": "Selecciona un pont predefinit",
"gui_settings_version_label": "Esteu utilitzant l'OnionShare {}",
"gui_settings_help_label": "Necessiteu ajuda? Veieu docs.onionshare.org",
- "mode_settings_website_custom_csp_checkbox": "Envia una capçalera personalitzada de Política de seguretat del contingut",
+ "mode_settings_website_custom_csp_checkbox": "Envia una capçalera personalitzada de política de seguretat del contingut",
"moat_contact_label": "S'està contactant amb BridgeDB…",
"moat_captcha_label": "Resoleu el CAPTCHA per demanar un pont.",
"moat_captcha_placeholder": "Escriviu els caràcters de la imatge",
"moat_captcha_submit": "Envia",
"moat_captcha_reload": "Torna a carregar",
"moat_bridgedb_error": "No s'ha pogut contactar amb BridgeDB.",
- "moat_captcha_error": "La solució no és correcta. Torneu a provar.",
+ "moat_captcha_error": "La solució no és correcta. Torneu-ho a provar.",
"moat_solution_empty_error": "Introduïu els caràcters de la imatge",
"mode_tor_not_connected_label": "L'OnionShare no està connectat a la xarxa Tor",
"gui_please_wait_no_button": "S'està iniciant…",
"gui_hide": "Amaga",
"gui_reveal": "Mostra",
"gui_server_doesnt_support_stealth": "Aquesta versió del Tor no és compatible amb l'ofuscació (autenticació del client). Instal·leu la versió més recent del Tor o bé utilitzeu el mode «públic» si no us cal aquesta privadesa.",
- "gui_share_url_public_description": "Qualsevol que conegui aquesta adreça de l'OnionShare podrà baixar els vostres fitxers mitjançant el Tor Browser: ",
+ "gui_share_url_public_description": "Qualsevol que conegui aquesta adreça de l'OnionShare podrà baixar els vostres fitxers mitjançant el Navegador Tor: ",
"gui_website_url_public_description": "Qualsevol que conegui aquesta adreça de l'OnionShare podrà visitar el vostre web mitjançant el Tor Browser: ",
- "gui_receive_url_public_description": "Qualsevol que conegui aquesta adreça de l'OnionShare podrà enviar fitxers al vostre ordinador mitjançant el Tor Browser: ",
- "gui_chat_url_public_description": "Qualsevol que conegui aquesta adreça de l'OnionShare podrà unir-se al xat mitjançant el Tor Browser: ",
+ "gui_receive_url_public_description": "Qualsevol que conegui aquesta adreça de l'OnionShare podrà enviar fitxers al vostre ordinador mitjançant el Navegador Tor: ",
+ "gui_chat_url_public_description": "Qualsevol que conegui aquesta adreça de l'OnionShare podrà unir-se al xat mitjançant el Navegador Tor: ",
"gui_url_instructions": "Primer envieu aquesta adreça d'OnionShare:",
"gui_url_instructions_public_mode": "Envieu aquesta adreça d'OnionShare:",
"gui_client_auth_instructions": "A continuació, envieu la clau privada per accedir al vostre servei d'OnionShare:",
"gui_status_indicator_chat_working": "S'està iniciant…",
"gui_status_indicator_chat_scheduled": "Programat…",
- "gui_status_indicator_chat_stopped": "Disponible per xatejar",
+ "gui_status_indicator_chat_stopped": "Aturat",
"mode_settings_title_label": "Títol personalitzat",
"mode_settings_receive_disable_files_checkbox": "Inhabilita l'enviament de fitxers",
- "mode_settings_receive_webhook_url_checkbox": "Utilitza un punt d'ancoratge Web de notificació",
+ "mode_settings_receive_webhook_url_checkbox": "Utilitza un punt d'ancoratge web de notificació",
"mode_settings_receive_disable_text_checkbox": "Inhabilita l'enviament de text",
"history_receive_read_message_button": "Llegeix el missatge",
- "gui_rendezvous_cleanup_quit_early": "Tanca abans",
+ "gui_rendezvous_cleanup_quit_early": "Surt abans",
"gui_settings_theme_label": "Tema",
"gui_settings_theme_light": "Clar",
"gui_settings_theme_dark": "Fosc",
- "gui_color_mode_changed_notice": "Reinicieu l'OnionShare per a veure els colors nous.",
+ "gui_color_mode_changed_notice": "Reinicieu l'OnionShare per a veure els nous colors.",
"gui_settings_theme_auto": "Automàtic",
- "gui_autoconnect_circumventing_censorship_requesting_bridges": "S'estan sol·licitant ponts de l'API de circumval·lació de censura del Tor…",
- "gui_autoconnect_could_not_connect_to_tor_api": "No s'ha pogut connectar a l'API del Tor. Comproveu que teniu connexió a internet abans de provar de nou.",
- "gui_enable_autoconnect_checkbox": "Connecta automàticament al Tor",
- "gui_autoconnect_bridge_detect_automatic": "Determina el meu país per la meua adreça IP per a la configuració del pont",
- "gui_autoconnect_bridge_detect_manual": "Selecciona el meu país per a la configuració del pont de manera manual",
- "gui_autoconnect_circumventing_censorship_got_bridges": "S'ha establit el pont. S'està reconnectant al Tor…",
- "gui_autoconnect_description": "L'OnionShare es recolza en la xarxa operada per voluntaris Tor.",
- "gui_autoconnect_failed_to_connect_to_tor": "No s'ha pogut connectar al Tor",
- "gui_autoconnect_trying_to_connect_to_tor": "S'està connectant al Tor…",
+ "gui_autoconnect_circumventing_censorship_requesting_bridges": "S'estan sol·licitant ponts de l'API de circumval·lació de censura de Tor…",
+ "gui_autoconnect_could_not_connect_to_tor_api": "No s'ha pogut connectar a l'API del Tor. Comproveu que teniu connexió a internet abans de provar-ho de nou.",
+ "gui_enable_autoconnect_checkbox": "Connecta automàticament a Tor",
+ "gui_autoconnect_bridge_detect_automatic": "Determina el meu país a partir de la meva adreça IP per a la configuració del pont",
+ "gui_autoconnect_bridge_detect_manual": "Selecciona manualment el meu país per a la configuració del pont",
+ "gui_autoconnect_circumventing_censorship_got_bridges": "S'ha establit el pont. S'està reconnectant a Tor…",
+ "gui_autoconnect_description": "L'OnionShare es basa en la xarxa Tor, operada per voluntaris.",
+ "gui_autoconnect_failed_to_connect_to_tor": "No s'ha pogut connectar a Tor",
+ "gui_autoconnect_trying_to_connect_to_tor": "S'està connectant a Tor…",
"gui_autoconnect_connection_error_msg": "Comproveu que teniu connexió a internet.",
"gui_autoconnect_bridge_description": "Podríeu connectar-vos utilitzant un pont, si la vostra connexió a internet es troba sota censura.",
- "gui_autoconnect_bridge_setting_options": "Configuració del pont",
- "gui_autoconnect_start": "Connecta al Tor",
+ "gui_autoconnect_bridge_setting_options": "Paràmetres del pont",
+ "gui_autoconnect_start": "Connecta a Tor",
"gui_autoconnect_configure": "Configuració de la xarxa",
"gui_autoconnect_no_bridge": "Proveu de nou sense ponts",
"gui_autoconnect_try_again_without_a_bridge": "Proveu de nou sense ponts",
@@ -252,7 +252,7 @@
"gui_autoconnect_circumventing_censorship_starting_circumvention": "S'està circumval·lant la censura…",
"gui_autoconnect_circumventing_censorship_starting_meek": "S'està establint el pont meek per al domain-fronting…",
"gui_general_settings_window_title": "General",
- "gui_close_tab_warning_chat_description": "Voleu tancar la pestanya que hostatja un servidor de xat?",
+ "gui_close_tab_warning_chat_description": "Voleu tancar la pestanya que allotja un servidor de xat?",
"waitress_web_server_error": "Hi ha hagut un problema en iniciar el servidor web",
"gui_chat_mode_explainer": "El mode de xat us permet xatejar de manera interactiva amb altres persones al Navegador Tor.
L'historial de xat no s'emmagatzema a OnionShare. L'historial de xat desapareixerà quan tanqueu el Navegador Tor."
}
diff --git a/desktop/onionshare/resources/locale/ckb.json b/desktop/onionshare/resources/locale/ckb.json
index 15d65b53..2224eaf3 100644
--- a/desktop/onionshare/resources/locale/ckb.json
+++ b/desktop/onionshare/resources/locale/ckb.json
@@ -79,11 +79,11 @@
"gui_url_label_stay_open": "Ev weşan bi xwe ve naqede.",
"gui_url_label_onetime": "Ev weşan piştî temambûna yekemîn biqede.",
"gui_url_label_onetime_and_persistent": "Ev weşan otomatîk nasekine.
Her weşanê bi vê ve girêdayî wê heman malper bikar bîne.(Ji bo malperekî yekcar bikar bînî \"Malperê bêdawî bikar bîne\" di ayarê de vemirîne.)",
- "gui_status_indicator_share_stopped": "Ji bo weşanê amade",
+ "gui_status_indicator_share_stopped": "وەستێنراو",
"gui_status_indicator_share_working": "Destpê dike…",
"gui_status_indicator_share_scheduled": "Pilankirî…",
"gui_status_indicator_share_started": "Diweşîne",
- "gui_status_indicator_receive_stopped": "Amade ji bo wergirtin",
+ "gui_status_indicator_receive_stopped": "وەستێنراو",
"gui_status_indicator_receive_working": "Destpê dike…",
"gui_status_indicator_receive_scheduled": "Pilankirî…",
"gui_status_indicator_receive_started": "Werdigire",
@@ -191,5 +191,6 @@
"moat_captcha_submit": "پێشکەشکردن",
"gui_general_settings_window_title": "گشتی",
"gui_hide": "Hide",
- "moat_captcha_reload": "Reload"
+ "moat_captcha_reload": "Reload",
+ "gui_status_indicator_chat_stopped": "وەستێنراو"
}
diff --git a/desktop/onionshare/resources/locale/cs.json b/desktop/onionshare/resources/locale/cs.json
index 31b2e92b..0b63ecb8 100644
--- a/desktop/onionshare/resources/locale/cs.json
+++ b/desktop/onionshare/resources/locale/cs.json
@@ -109,7 +109,7 @@
"mode_tor_not_connected_label": "OnionShare není připojen k síti Tor",
"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",
+ "gui_status_indicator_chat_stopped": "Zastaven",
"gui_status_indicator_receive_working": "Spouštím…",
"gui_status_indicator_chat_scheduled": "Naplánováno…",
"gui_status_indicator_chat_working": "Spouštím…",
@@ -159,11 +159,11 @@
"history_requests_tooltip": "{} webových požadavků",
"history_completed_tooltip": "{} dokončeno",
"history_in_progress_tooltip": "{} v procesu",
- "gui_status_indicator_receive_stopped": "Připraveno k přijetí",
+ "gui_status_indicator_receive_stopped": "Zastaven",
"gui_status_indicator_share_started": "Sdílení",
"gui_status_indicator_share_working": "Startuje…",
"gui_status_indicator_share_scheduled": "Naplánováno…",
- "gui_status_indicator_share_stopped": "Připraveno ke sdílení",
+ "gui_status_indicator_share_stopped": "Zastaven",
"gui_website_url_description": "Kdokoliv s touto OnionShare adresou a soukromým klíčem může navštívit vaši stránku pomocí prohlížeče Tor Browser: ",
"gui_server_autostop_timer_expired": "Časovač automatického zastavení již vypršel. Nastavte jej, abyste mohli začít sdílet.",
"gui_tor_connection_lost": "Odpojeno od sítě Tor.",
diff --git a/desktop/onionshare/resources/locale/da.json b/desktop/onionshare/resources/locale/da.json
index 15fcd340..40290e00 100644
--- a/desktop/onionshare/resources/locale/da.json
+++ b/desktop/onionshare/resources/locale/da.json
@@ -75,10 +75,10 @@
"gui_receive_start_server": "Start modtagetilstand",
"gui_receive_stop_server": "Stop modtagetilstand",
"gui_receive_stop_server_autostop_timer": "Stop modtagetilstand ({} tilbage)",
- "gui_status_indicator_share_stopped": "Klar til at dele",
+ "gui_status_indicator_share_stopped": "Stoppet",
"gui_status_indicator_share_working": "Starter …",
"gui_status_indicator_share_started": "Deler",
- "gui_status_indicator_receive_stopped": "Klar til at modtage",
+ "gui_status_indicator_receive_stopped": "Stoppet",
"gui_status_indicator_receive_working": "Starter …",
"gui_status_indicator_receive_started": "Modtager",
"systray_page_loaded_title": "Side indlæst",
@@ -186,7 +186,7 @@
"gui_status_indicator_chat_started": "Chatter",
"gui_status_indicator_chat_scheduled": "Planlagt …",
"gui_status_indicator_chat_working": "Starter …",
- "gui_status_indicator_chat_stopped": "Klar til at chatte",
+ "gui_status_indicator_chat_stopped": "Stoppet",
"gui_settings_version_label": "Du bruger OnionShare {}",
"gui_autoconnect_failed_to_connect_to_tor": "Kunne ikke oprette forbindelse til Tor",
"gui_please_wait_no_button": "Starter …",
diff --git a/desktop/onionshare/resources/locale/de.json b/desktop/onionshare/resources/locale/de.json
index 57414f73..0209fc5b 100644
--- a/desktop/onionshare/resources/locale/de.json
+++ b/desktop/onionshare/resources/locale/de.json
@@ -35,7 +35,7 @@
"settings_error_missing_password": "Mit dem Tor-Controller verbunden, aber er benötigt ein Passwort zur Authentifizierung.",
"connecting_to_tor": "Verbinde mit dem Tor-Netzwerk",
"gui_tor_connection_ask_quit": "Beenden",
- "gui_tor_connection_lost": "Verbindung zu Tor getrennt.",
+ "gui_tor_connection_lost": "Verbindung mit Tor getrennt.",
"gui_receive_start_server": "Empfangsmodus starten",
"gui_receive_stop_server": "Empfangsmodus stoppen",
"gui_receive_stop_server_autostop_timer": "Empfangsmodus stoppen ({} verbleibend)",
@@ -44,15 +44,15 @@
"gui_settings_autoupdate_label": "Suche nach neuer Version",
"gui_settings_autoupdate_option": "Benachrichtige mich, wenn eine neue Version verfügbar ist",
"gui_settings_autoupdate_check_button": "Suche nach neuer Version",
- "gui_settings_connection_type_automatic_option": "Versuche automatische Konfiguration mittels Tor Browser",
- "gui_settings_connection_type_test_button": "Verbindung zu Tor testen",
+ "gui_settings_connection_type_automatic_option": "Versuche automatische Konfiguration mittels Tor-Browser",
+ "gui_settings_connection_type_test_button": "Verbindung mit Tor testen",
"gui_settings_tor_bridges": "Mittels einer Tor-Brücke verbinden?",
- "gui_settings_meek_lite_expensive_warning": "Achtung: Die „Meek-Azure“-Brücken sind für das Tor-Projekt sehr kostspielig.
Nutze sie nur, wenn du dich nicht direkt, per obfs4-Transport oder über andere, normale Brücken zum Tor-Netzwerk verbinden kannst.",
+ "gui_settings_meek_lite_expensive_warning": "Achtung: Die „Meek-Azure“-Brücken sind für das Tor-Projekt sehr kostspielig.
Nutze sie nur, wenn du dich nicht direkt, per obfs4-Transport oder über andere, normale Brücken mit dem Tor-Netzwerk verbinden kannst.",
"gui_settings_tor_bridges_invalid": "Keine der ausgewählten Brücken funktioniert. Überprüfe sie oder gib andere an.",
- "settings_error_unknown": "Kann nicht zum Tor-Controller verbinden, weil deine Einstellungen keinen Sinn ergeben.",
- "settings_error_automatic": "Kann nicht zum Tor-Controller verbinden. Läuft der Tor Browser (kann von https://www.torproject.org/ heruntergeladen werden) im Hintergrund?",
- "settings_error_socket_port": "Kann unter {}:{} nicht zum Tor-Controller verbinden.",
- "settings_error_unreadable_cookie_file": "Verbindung zum Tor-Controller hergestellt, aber dein Passwort ist falsch oder dein Nutzer darf die Cookie-Datei nicht lesen.",
+ "settings_error_unknown": "Kann nicht mit dem Tor-Controller verbinden, weil deine Einstellungen keinen Sinn ergeben.",
+ "settings_error_automatic": "Kann nicht mit dem Tor-Controller verbinden. Läuft der Tor-Browser (kann von https://www.torproject.org/ heruntergeladen werden) im Hintergrund?",
+ "settings_error_socket_port": "Kann unter {}:{} nicht mit dem Tor-Controller verbinden.",
+ "settings_error_unreadable_cookie_file": "Verbindung mit dem Tor-Controller hergestellt, aber dein Passwort ist falsch oder dein Nutzer darf die Cookie-Datei nicht lesen.",
"settings_error_bundled_tor_not_supported": "Im Entwicklermodus auf Windows oder macOS kannst du nicht die Tor-Version nutzen, die mit OnionShare geliefert wird.",
"settings_error_bundled_tor_timeout": "Die Verbindung zum Tor-Netzwerk braucht zu lang. Bist du vielleicht nicht mit dem Internet verbunden oder geht die Uhr auf deinem System falsch?",
"settings_error_bundled_tor_broken": "OnionShare konnte sich nicht mit Tor verbinden:\n{}",
@@ -65,15 +65,15 @@
"gui_tor_connection_ask": "Einstellungen öffnen, um die Verbindung zum Tor-Netzwerk zu reparieren?",
"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.",
- "gui_share_url_description": "Jeder kann mit dieser OnionShare-Adresse und dem privaten Schlüssel deine Dateien mit dem Tor Browserherunterladen: ",
- "gui_receive_url_description": "Jeder mit dieser OnionShare-Adresse und dem privaten Schlüssel kann mit dem Tor Browser Dateien auf deinen Computer hochladen: ",
+ "gui_tor_connection_canceled": "Konnte keine Verbindung mit Tor herstellen.\n\nStelle sicher, dass du mit dem Internet verbunden bist, öffne OnionShare erneut und richte die Verbindung mit Tor ein.",
+ "gui_share_url_description": "Jeder kann mit dieser OnionShare-Adresse und dem privaten Schlüssel deine Dateien mit dem Tor-Browserherunterladen: ",
+ "gui_receive_url_description": "Jeder mit dieser OnionShare-Adresse und dem privaten Schlüssel kann mit dem Tor-Browser Dateien auf deinen Computer hochladen: ",
"gui_url_label_persistent": "Diese Freigabe wird nicht automatisch beendet.
Jede folgende Freigabe wird die Adresse erneut nutzen. (Um Adressen nur einmal zu nutzen, schalte „Nutze beständige Adressen“ in den Einstellungen aus.)",
"gui_url_label_stay_open": "Diese Freigabe wird nicht automatisch beendet.",
"gui_url_label_onetime": "Diese Freigabe wird nach dem ersten vollständigen Download beendet.",
"gui_status_indicator_share_working": "Starte…",
"gui_status_indicator_share_started": "Teilen",
- "gui_status_indicator_receive_stopped": "Bereit zum Empfangen",
+ "gui_status_indicator_receive_stopped": "Angehalten",
"gui_status_indicator_receive_working": "Starte…",
"gui_status_indicator_receive_started": "Empfange",
"gui_file_info": "{} Dateien, {}",
@@ -85,8 +85,8 @@
"gui_settings_connection_type_bundled_option": "Die integrierte Tor-Version von OnionShare nutzen",
"settings_error_socket_file": "Kann nicht mittels des Tor-Controller-Socket {} verbinden.",
"gui_server_started_after_autostop_timer": "Der Autostop-Timer ist abgelaufen, bevor der Server gestartet werden konnte. Bitte starte das Teilen erneut.",
- "gui_server_autostop_timer_expired": "Der Autostop-Timer ist bereits abgelaufen. Bitte ändere diesen, um das Teilen zu starten.",
- "gui_status_indicator_share_stopped": "Bereit zum Teilen",
+ "gui_server_autostop_timer_expired": "Der Autostopp-Timer ist bereits abgelaufen. Bitte ändere diesen, um das Teilen zu starten.",
+ "gui_status_indicator_share_stopped": "Angehalten",
"history_in_progress_tooltip": "{} läuft",
"systray_page_loaded_title": "Seite geladen",
"gui_add_files": "Dateien hinzufügen",
@@ -127,7 +127,7 @@
"hours_first_letter": "h",
"minutes_first_letter": "m",
"seconds_first_letter": "s",
- "gui_website_url_description": "Jeder kann mit dieser OnionShare-Adresse und dem privaten Schlüssel deine Webseite mit dem Tor Browseransehen: ",
+ "gui_website_url_description": "Jeder kann mit dieser OnionShare-Adresse und dem privaten Schlüssel deine Webseite mit dem Tor-Browseransehen: ",
"gui_website_mode_no_files": "Noch keine Webseite freigegeben",
"incorrect_password": "Falsches Passwort",
"history_requests_tooltip": "{} Web-Anfragen",
@@ -173,7 +173,7 @@
"gui_main_page_share_button": "Freigabe starten",
"gui_open_folder_error": "Ordner konnte mit xdg-open nicht geöffnet werden. Die Datei befindet sich hier: {}",
"gui_receive_flatpak_data_dir": "Da OnionShare durch Flatpak installiert wurde, müssen Dateien im Verzeichnis ~/OnionShare gespeichert werden.",
- "gui_chat_url_description": "Jeder mit dieser OnionShare-Adresse und dem privaten Schlüssel kann diesem Chatroom beitreten, indem er den Tor Browser benutzt: ",
+ "gui_chat_url_description": "Jeder mit dieser OnionShare-Adresse und dem privaten Schlüssel kann diesem Chatroom beitreten, indem er den Tor-Browser benutzt: ",
"error_port_not_available": "OnionShare-Port nicht verfügbar",
"gui_rendezvous_cleanup": "Warte darauf, dass alle Tor-Verbindungen beendet wurden, um den Dateitransfer sicherzustellen.\n\nDies kann einige Minuten dauern.",
"gui_rendezvous_cleanup_quit_early": "Vorzeitig beenden",
@@ -186,7 +186,7 @@
"gui_status_indicator_chat_started": "Chatted",
"gui_status_indicator_chat_scheduled": "Geplant…",
"gui_status_indicator_chat_working": "Startet…",
- "gui_status_indicator_chat_stopped": "Bereit zum Chatten",
+ "gui_status_indicator_chat_stopped": "Angehalten",
"gui_settings_theme_dark": "Dunkel",
"gui_settings_theme_light": "Hell",
"gui_settings_theme_auto": "Automatisch",
@@ -194,11 +194,11 @@
"gui_client_auth_instructions": "Sende anschließend den privaten Schlüssel, um den Zugriff auf deinen OnionShare-Dienst zu ermöglichen:",
"gui_url_instructions_public_mode": "Sende die OnionShare-Adresse unten:",
"gui_url_instructions": "Sende zunächst die folgende OnionShare-Adresse:",
- "gui_chat_url_public_description": "Jeder mit dieser OnionShare-Adresse kann diesem Chatroom beitreten, indem er den Tor Browser benutzt: ",
+ "gui_chat_url_public_description": "Jeder mit dieser OnionShare-Adresse kann diesem Chatroom beitreten, indem er den Tor-Bowser benutzt: ",
"gui_receive_url_public_description": "Jeder mit dieser OnionShare-Adresse kann mit dem Tor-Browser Dateien auf deinen Computer hochladen: ",
- "gui_website_url_public_description": "Jeder mit dieser OnionShare-Adresse kann deine Webseite mit dem Tor Browseransehen: ",
- "gui_share_url_public_description": "Jeder mit dieser OnionShare-Adresse kann deine Dateien mit dem Tor Browserherunterladen: ",
- "gui_server_doesnt_support_stealth": "Sorry, diese Version von Tor unterstützt kein Stealth (Client-Authentifizierung). Bitte versuche es mit einer neueren Version von Tor oder benutze den \"öffentlichen\" Modus, wenn es nicht privat sein muss.",
+ "gui_website_url_public_description": "Jeder mit dieser OnionShare-Adresse kann deine Webseite mit dem Tor-Browseransehen: ",
+ "gui_share_url_public_description": "Jeder mit dieser OnionShare-Adresse kann deine Dateien mit dem Tor-Browserherunterladen: ",
+ "gui_server_doesnt_support_stealth": "Sorry, diese Version von Tor unterstützt kein Stealth (Client-Authentifizierung). Bitte versuche es mit einer neueren Version von Tor oder benutze den „öffentlichen“ Modus, wenn es nicht privat sein muss.",
"gui_please_wait_no_button": "Starte…",
"gui_hide": "Ausblenden",
"gui_reveal": "Zeigen",
@@ -209,17 +209,17 @@
"gui_copy_client_auth": "Privaten Schlüssel kopieren",
"gui_dragdrop_sandbox_flatpak": "Um die Flatpak Sandbox sicherer zu machen, wird Drag und Drop nicht unterstützt. Bitte nutze stattdessen die Buttons \"Dateien hinzufügen\" und \"Ordner hinzufügen\", um Dateien auszuwählen.",
"gui_tor_settings_window_title": "Tor Einstellungen",
- "gui_settings_controller_extras_label": "Tor Einstellungen",
+ "gui_settings_controller_extras_label": "Tor-Einstellungen",
"gui_settings_bridge_use_checkbox": "Benutze eine Brücke",
"gui_settings_bridge_radio_builtin": "Wähle eine eingebaute Brücke",
"gui_settings_bridge_none_radio_option": "Keine Brücken benutzen",
"gui_settings_bridge_moat_button": "Neue Brücke verwenden",
"gui_settings_bridge_custom_placeholder": "Schreibe im Format adresse:port (eine pro Zeile)",
"gui_settings_moat_bridges_invalid": "Du hast noch keine Brücke von torproject.org angefragt.",
- "gui_settings_stop_active_tabs_label": "Es laufen noch Services in deinen Tabs.\nDu musst alle Services beenden, bevor du die Tor Einstellungen ändern kannst.",
+ "gui_settings_stop_active_tabs_label": "Es laufen noch Dienste in deinen Tabs.\nDu musst alle Dienste beenden, bevor du die Tor-Einstellungen ändern kannst.",
"gui_settings_version_label": "Du verwendest OnionShare {}",
"gui_settings_help_label": "Du benötigst Hilfe? Gehe zu docs.onionshare.org",
- "mode_settings_website_custom_csp_checkbox": "Sende einen benutzerdefinierten Content Security Policy header",
+ "mode_settings_website_custom_csp_checkbox": "Sende einen benutzerdefinierten Content Security-Policy-Header",
"moat_contact_label": "Kontaktiere BridgeDB…",
"moat_captcha_label": "Löse Sie das CAPTCHA, um eine Brücke anzufordern.",
"moat_captcha_placeholder": "Gib die Zeichen auf dem Bild ein",
@@ -227,11 +227,11 @@
"moat_captcha_reload": "Neu laden",
"moat_bridgedb_error": "BridgeDB konnte nicht kontaktiert werden.",
"moat_captcha_error": "Falsche Lösung. Bitte versuche es erneut.",
- "mode_tor_not_connected_label": "OnionShare ist nicht mit dem Tor Netzwerk verbunden",
+ "mode_tor_not_connected_label": "OnionShare ist nicht mit dem Tor-Netzwerk verbunden",
"gui_settings_bridge_moat_radio_option": "Verwende eine Brücke von torproject.org",
"moat_solution_empty_error": "Gib die Zeichen aus dem Bild ein",
"gui_settings_bridge_custom_radio_option": "Stelle eine Brücke aus einer dir bekannten vertraulichen Quelle bereit",
- "gui_settings_tor_bridges_label": "Brücken helfen dir das Tor-Netzwerk an Orten zu verwenden, wo es blockiert wird. Je nachdem wo du bist, funktioniert eine Brücke besser als eine andere.",
+ "gui_settings_tor_bridges_label": "Brücken helfen dir, das Tor-Netzwerk an Orten zu verwenden, wo es blockiert wird. Je nachdem, wo du bist, funktioniert eine Brücke besser als eine andere.",
"gui_autoconnect_bridge_detect_manual": "Manuelles Auswählen meines Landes für die Brücken-Einstellungen",
"gui_autoconnect_description": "OnionShare stützt sich auf das Tor-Netzwerk, das von Tausenden von Freiwilligen auf der ganzen Welt betrieben wird.",
"gui_enable_autoconnect_checkbox": "Automatisch mit Tor verbinden",
diff --git a/desktop/onionshare/resources/locale/el.json b/desktop/onionshare/resources/locale/el.json
index b7060dff..0c1fe074 100644
--- a/desktop/onionshare/resources/locale/el.json
+++ b/desktop/onionshare/resources/locale/el.json
@@ -76,10 +76,10 @@
"gui_url_label_stay_open": "Αυτή η σελίδα διαμοιρασμού δεν θα πάψει να λειτουργεί αυτόματα.",
"gui_url_label_onetime": "Αυτός ο διαμοιρασμός θα σταματήσει μετά την πρώτη λήψη.",
"gui_url_label_onetime_and_persistent": "Αυτή η σελίδα διαμοιρασμού δεν θα πάψει να λειτουργεί αυτόματα.
Οποιοσδήποτε επακόλουθος διαμοιρασμός θα επαναχρησιμοποιήσει αυτή τη διεύθυνση. (Για να χρησιμοποιήσετε διευθύνσεις μιας χρήσης, απενεργοποιήστε τη λειτουργία \"Χρήση μόνιμης διεύθυνσης\" στις Ρυθμίσεις.)",
- "gui_status_indicator_share_stopped": "Έτοιμο για διαμοιρασμό",
+ "gui_status_indicator_share_stopped": "Σταμάτησε",
"gui_status_indicator_share_working": "Εκκίνηση…",
"gui_status_indicator_share_started": "Γίνεται αποστολή",
- "gui_status_indicator_receive_stopped": "Έτοιμο για λήψη",
+ "gui_status_indicator_receive_stopped": "Σταμάτησε",
"gui_status_indicator_receive_working": "Γίνεται εκκίνηση…",
"gui_status_indicator_receive_started": "Γίνεται λήψη",
"gui_file_info": "{} αρχεία, {}",
@@ -186,7 +186,7 @@
"gui_status_indicator_chat_started": "Σε συνομιλία",
"gui_status_indicator_chat_scheduled": "Δρομολόγηση…",
"gui_status_indicator_chat_working": "Εκκίνηση…",
- "gui_status_indicator_chat_stopped": "Έτοιμο για συνομιλία",
+ "gui_status_indicator_chat_stopped": "Σταμάτησε",
"gui_copied_client_auth_title": "Το ιδιωτικό κλειδί αντιγράφηκε",
"gui_qr_label_url_title": "Διεύθυνση OnionShare",
"gui_reveal": "Εμφάνιση",
diff --git a/desktop/onionshare/resources/locale/en.json b/desktop/onionshare/resources/locale/en.json
index 287f3b00..165995a6 100644
--- a/desktop/onionshare/resources/locale/en.json
+++ b/desktop/onionshare/resources/locale/en.json
@@ -99,6 +99,7 @@
"gui_settings_button_help": "Help",
"gui_settings_version_label": "You are using OnionShare {}",
"gui_settings_help_label": "Need help? See docs.onionshare.org",
+ "gui_settings_license_label": "OnionShare is licensed under the GPL v3. Third-party licenses can be viewed here: https://github.com/onionshare/onionshare/tree/main/licenses",
"settings_test_success": "Connected to the Tor controller.\n\nTor version: {}\nSupports ephemeral onion services: {}.\nSupports client authentication: {}.\nSupports next-gen .onion addresses: {}.",
"connecting_to_tor": "Connecting to the Tor network",
"update_available": "New OnionShare out. Click here to get it.
You are using {} and the latest is {}.",
@@ -124,22 +125,22 @@
"gui_receive_url_public_description": "Anyone with this OnionShare address can upload files to your computer using the Tor Browser: ",
"gui_chat_url_description": "Anyone with this OnionShare address and private key can join this chat room using the Tor Browser: ",
"gui_chat_url_public_description": "Anyone with this OnionShare address can join this chat room using the Tor Browser: ",
- "gui_url_label_persistent": "This share will not auto-stop.
Every subsequent share reuses the address. (To use one-time addresses, turn off \"Use persistent address\" in the settings.)",
+ "gui_url_label_persistent": "This share will not auto-stop.
Every subsequent share reuses the address. (To use one-time addresses, turn off \"Always open this tab when OnionShare is started\" in the settings.)",
"gui_url_label_stay_open": "This share will not auto-stop.",
"gui_url_label_onetime": "This share will stop after first completion.",
- "gui_url_label_onetime_and_persistent": "This share will not auto-stop.
Every subsequent share will reuse the address. (To use one-time addresses, turn off \"Use persistent address\" in the settings.)",
+ "gui_url_label_onetime_and_persistent": "This share will not auto-stop.
Every subsequent share will reuse the address. (To use one-time addresses, turn off \"Always open this tab when OnionShare is started\" in the settings.)",
"gui_url_instructions": "First, send the OnionShare address below:",
"gui_url_instructions_public_mode": "Send the OnionShare address below:",
"gui_client_auth_instructions": "Next, send the private key to allow access to your OnionShare service:",
- "gui_status_indicator_share_stopped": "Ready to share",
+ "gui_status_indicator_share_stopped": "Stopped",
"gui_status_indicator_share_working": "Starting…",
"gui_status_indicator_share_scheduled": "Scheduled…",
"gui_status_indicator_share_started": "Sharing",
- "gui_status_indicator_receive_stopped": "Ready to receive",
+ "gui_status_indicator_receive_stopped": "Stopped",
"gui_status_indicator_receive_working": "Starting…",
"gui_status_indicator_receive_scheduled": "Scheduled…",
"gui_status_indicator_receive_started": "Receiving",
- "gui_status_indicator_chat_stopped": "Ready to chat",
+ "gui_status_indicator_chat_stopped": "Stopped",
"gui_status_indicator_chat_working": "Starting…",
"gui_status_indicator_chat_scheduled": "Scheduled…",
"gui_status_indicator_chat_started": "Chatting",
@@ -214,7 +215,8 @@
"mode_settings_advanced_toggle_show": "Show advanced settings",
"mode_settings_advanced_toggle_hide": "Hide advanced settings",
"mode_settings_title_label": "Custom title",
- "mode_settings_persistent_checkbox": "Always open this tab when OnionShare is started",
+ "mode_settings_persistent_checkbox": "Always open this tab when OnionShare is started (the onion address will stay the same)",
+ "mode_settings_persistent_autostart_on_launch_checkbox": "Automatically start this onion service when OnionShare starts",
"mode_settings_public_checkbox": "This is a public OnionShare service (disables private key)",
"mode_settings_autostart_timer_checkbox": "Start onion service at scheduled time",
"mode_settings_autostop_timer_checkbox": "Stop onion service at scheduled time",
@@ -245,6 +247,7 @@
"error_port_not_available": "OnionShare port not available",
"history_receive_read_message_button": "Read Message",
"error_tor_protocol_error": "There was an error with Tor: {}",
+ "error_generic": "There was an unexpected error with OnionShare:\n{}",
"moat_contact_label": "Contacting BridgeDB…",
"moat_captcha_label": "Solve the CAPTCHA to request a bridge.",
"moat_captcha_placeholder": "Enter the characters from the image",
diff --git a/desktop/onionshare/resources/locale/eo.json b/desktop/onionshare/resources/locale/eo.json
index ed7413fe..4e9a9e64 100644
--- a/desktop/onionshare/resources/locale/eo.json
+++ b/desktop/onionshare/resources/locale/eo.json
@@ -50,5 +50,8 @@
"gui_tab_name_share": "Kunhavigi",
"gui_tab_name_receive": "Ricevi",
"gui_tab_name_website": "Retejo",
- "gui_tab_name_chat": "Babili"
+ "gui_tab_name_chat": "Babili",
+ "gui_status_indicator_share_stopped": "Haltita",
+ "gui_status_indicator_receive_stopped": "Haltita",
+ "gui_status_indicator_chat_stopped": "Haltita"
}
diff --git a/desktop/onionshare/resources/locale/es.json b/desktop/onionshare/resources/locale/es.json
index c9267ddf..0510117d 100644
--- a/desktop/onionshare/resources/locale/es.json
+++ b/desktop/onionshare/resources/locale/es.json
@@ -60,10 +60,10 @@
"gui_url_label_stay_open": "Este recurso compartido no se detendrá automáticamente.",
"gui_url_label_onetime": "Este recurso compartido se detendrá después de completar la primera descarga.",
"gui_url_label_onetime_and_persistent": "Este recurso compartido no se detendrá automáticamente.
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.)",
- "gui_status_indicator_share_stopped": "Listo para compartir",
+ "gui_status_indicator_share_stopped": "Detenido",
"gui_status_indicator_share_working": "Comenzando.…",
"gui_status_indicator_share_started": "Compartiendo",
- "gui_status_indicator_receive_stopped": "Listo para recibir",
+ "gui_status_indicator_receive_stopped": "Detenido",
"gui_status_indicator_receive_working": "Comenzando.…",
"gui_status_indicator_receive_started": "Recibiendo",
"gui_file_info": "{} archivos, {}",
@@ -186,7 +186,7 @@
"gui_status_indicator_chat_started": "Chateando",
"gui_status_indicator_chat_scheduled": "Programado…",
"gui_status_indicator_chat_working": "Iniciando…",
- "gui_status_indicator_chat_stopped": "Listo para chatear",
+ "gui_status_indicator_chat_stopped": "Detenido",
"gui_reveal": "Mostrar",
"gui_settings_theme_label": "Tema",
"gui_url_instructions": "Primero, envía la siguiente dirección de OnionShare:",
diff --git a/desktop/onionshare/resources/locale/fa.json b/desktop/onionshare/resources/locale/fa.json
index 3d83539d..330792fd 100644
--- a/desktop/onionshare/resources/locale/fa.json
+++ b/desktop/onionshare/resources/locale/fa.json
@@ -72,16 +72,16 @@
"gui_server_autostop_timer_expired": "زمانسنج توقف خودکار به پایان رسید. لطفا برای آغاز همرسانی آن را تنظیم کنید.",
"gui_share_url_description": "هر کس با این نشانی OnionShare و کلید خصوصی میتواند توسط مرورگر Tor فایلهای شما را بارگیری کند:",
"gui_receive_url_description": "هر کس با این نشانی OnionShare و کلید خصوصی میتواند توسط مرورگر Tor فایلهایی را بر روی رایانه شما بارگذاری کند:",
- "gui_url_label_persistent": "این همرسانی به صورت خودکار متوقف نمیشود.
همرسانیهای بعدی هم از همین نشانی استفاده میکنند. (برای استفاده از نشانیهای یکبارمصرف، گزینه «استفاده از آدرس پایا» را در تنظیمات غیرفعال کنید.)",
+ "gui_url_label_persistent": "این همرسانی به صورت خودکار متوقف نمیشود.
همرسانیهای بعدی هم از همین نشانی استفاده میکنند. (برای استفاده از نشانیهای یکبارمصرف، گزینهٔ «گشودن همیشگی این زبانه هنگام آغاز پیازرسان» را در تنظیمات غیرفعال کنید.)",
"gui_url_label_stay_open": "این همرسانی به صورت خودکار متوقف خواهد شد.",
"gui_url_label_onetime": "این همرسانی پس از اولین تکمیل متوقف خواهد شد.",
- "gui_url_label_onetime_and_persistent": "این همرسانی به صورت خودکار متوقّف نخواهد شد.
همرسانیهای بعدی نیز از همین نشانی استفاده خواهند کرد. (برای استفاده از نشانیهای یکبارمصرف گزینهٔ «استفاده از نشانی پایا» را در تنظیمات خاموش کنید.)",
- "gui_status_indicator_share_stopped": "آماده همرسانی",
+ "gui_url_label_onetime_and_persistent": "این همرسانی به صورت خودکار متوقّف نخواهد شد.
همرسانیهای بعدی نیز از همین نشانی استفاده خواهند کرد. (برای استفاده از نشانیهای یکبارمصرف گزینهٔ «گشودن همیشگی این زبانه هنگام آغاز پیازرسان» را در تنظیمات خاموش کنید.)",
+ "gui_status_indicator_share_stopped": "متوقّف",
"gui_status_indicator_share_working": "در حال شروع…",
"gui_status_indicator_share_started": "در حال همرسانی",
- "gui_status_indicator_receive_stopped": "آماده دریافت",
- "gui_status_indicator_receive_working": "در حال شروع…",
- "gui_status_indicator_receive_started": "درحال دریافت",
+ "gui_status_indicator_receive_stopped": "متوقّف",
+ "gui_status_indicator_receive_working": "آغاز کردن…",
+ "gui_status_indicator_receive_started": "گرفتن",
"gui_file_info": "{} پروندهها، {}",
"gui_file_info_single": "{} پرونده، {}",
"history_in_progress_tooltip": "{} در حال انجام",
@@ -122,7 +122,7 @@
"gui_server_autostart_timer_expired": "زمان برنامهریزی شده سپری شده است. لطفا برای شروع همرسانی، آن را تنظیم کنید.",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "زمان توقف خودکار نمیتوان مشابه با و یا زودتر از زمان شروع خودکار باشد. لطفا برای شروع همرسانی، آن را تنظیم کنید.",
"gui_status_indicator_share_scheduled": "زمانبندیشده…",
- "gui_status_indicator_receive_scheduled": "زمانبندیشده…",
+ "gui_status_indicator_receive_scheduled": "زمانبسته…",
"days_first_letter": "ر",
"hours_first_letter": "س",
"minutes_first_letter": "د",
@@ -156,10 +156,10 @@
"gui_copied_client_auth_title": "کلید خصوصی کپی شد",
"gui_hide": "مخفی کردن",
"gui_reveal": "آشکار کردن",
- "gui_status_indicator_chat_started": "در حال گفتگو",
+ "gui_status_indicator_chat_started": "گپ زدن",
"gui_url_instructions": "ابتدا، نشانی OnionShare را در زیر ارسال کنید:",
- "gui_status_indicator_chat_stopped": "آماده برای گفتگو",
- "gui_status_indicator_chat_working": "در حال شروع…",
+ "gui_status_indicator_chat_stopped": "متوقّف",
+ "gui_status_indicator_chat_working": "آغاز کردن…",
"gui_color_mode_changed_notice": "OnionShare را برای رنگهای جدید دوباره راهاندازی کنید.",
"gui_new_tab": "زبانه جدید",
"gui_new_tab_tooltip": "بازکردن زبانه جدید",
@@ -206,7 +206,7 @@
"gui_chat_url_public_description": "هر کس با این نشانی OnionShare میتواند توسط مرورگر Tor به این اتاق گفتگو بپیوندد:",
"mode_settings_public_checkbox": "این خدمت عمومی OnionShare است (کلید خصوصی را غیرفعال میکند)",
"mode_settings_receive_disable_files_checkbox": "غیرفعال سازی بارگذاری فایلها",
- "gui_status_indicator_chat_scheduled": "برنامهریزی شد…",
+ "gui_status_indicator_chat_scheduled": "زمانبسته…",
"gui_new_tab_website_button": "میزبانی یک وبسایت",
"gui_open_folder_error": "نمیتوان پوشه را با xdg-open باز کرد. فایل اینجاست:{}",
"gui_close_tab_warning_receive_description": "بستن زبانهای که در حال درسافت فایلها است؟",
@@ -220,7 +220,7 @@
"mode_settings_advanced_toggle_show": "نمایش تنظیمات پیشرفته",
"mode_settings_title_label": "عنوان سفارشی",
"gui_close_tab_warning_persistent_description": "بستن زبانه دائمی و از دست رفتن نشانی پیازی مورد استفاده آن؟",
- "mode_settings_persistent_checkbox": "همیشه موقع شروع OnionShare این زبانه باز شود",
+ "mode_settings_persistent_checkbox": "گشودن همیشگی این زبانه هنگام آغاز پیازرسان (نشانی پیازی یکسان خواهد ماند)",
"mode_settings_receive_webhook_url_checkbox": "استفاده از اعلان Webhook",
"mode_settings_website_disable_csp_checkbox": "سرتیتر پیش فرض سیاست امنیت محتوا (به وبسایت شما اجازه استفاده از منابع شخص ثالث را میدهد) را ارسال نکنید",
"mode_settings_website_custom_csp_checkbox": "ارسال سرتیتر سفارشی سیاست امنیت محتوا",
@@ -254,5 +254,6 @@
"gui_general_settings_window_title": "عمومی",
"gui_chat_mode_explainer": "حالت گپ میگذارد با دیگران به صورت تعاملی در مرورگر تور گپ بزنید.
تاریخچهٔ گپ در OnionShare ذخیره نشده و هنگام بستن مرورگر تور ناپدید خواهد شد.",
"waitress_web_server_error": "مشکلی با آغاز کارساز وب وجود دارد",
- "gui_close_tab_warning_chat_description": "بستن زبانهای که کارساز گپ را میزبانی میکند؟"
+ "gui_close_tab_warning_chat_description": "بستن زبانهای که کارساز گپ را میزبانی میکند؟",
+ "mode_settings_persistent_autostart_on_launch_checkbox": "آغاز خودکار این خدمت پیازی هنگام آغاز پیازرسان"
}
diff --git a/desktop/onionshare/resources/locale/fi.json b/desktop/onionshare/resources/locale/fi.json
index 2fc3bdef..10654f5b 100644
--- a/desktop/onionshare/resources/locale/fi.json
+++ b/desktop/onionshare/resources/locale/fi.json
@@ -77,10 +77,10 @@
"gui_url_label_stay_open": "Tämä jako ei pysähdy automaattisesti.",
"gui_url_label_onetime": "Tämä jako lopetetaan ensimmäisen valmistumisen jälkeen.",
"gui_url_label_onetime_and_persistent": "Tämä jako ei pysähdy automaattisesti.
Jokainen seuraava jako käyttää osoitetta uudelleen. (Jos haluat käyttää kertaluontoisia osoitteita, sammuta \"Käytä pysyvää osoitetta\" asetuksissa.)",
- "gui_status_indicator_share_stopped": "Valmis jakamaan",
+ "gui_status_indicator_share_stopped": "Pysäytetty",
"gui_status_indicator_share_working": "Aloitetaan…",
"gui_status_indicator_share_started": "Jakaminen",
- "gui_status_indicator_receive_stopped": "Valmis vastaanottamaan",
+ "gui_status_indicator_receive_stopped": "Pysäytetty",
"gui_status_indicator_receive_working": "Vastaanotetaan…",
"gui_status_indicator_receive_started": "Vastaanotetaan",
"gui_file_info": "{} tiedostoa, {}",
@@ -184,7 +184,7 @@
"gui_status_indicator_chat_started": "Keskustellaan",
"gui_status_indicator_chat_scheduled": "Ajastettu…",
"gui_status_indicator_chat_working": "Aloitetaan…",
- "gui_status_indicator_chat_stopped": "Valmiina keskustelemaan",
+ "gui_status_indicator_chat_stopped": "Pysäytetty",
"gui_chat_url_description": "Kuka tahansa tällä Onionshare-osoitteella voi liittyä tähän keskusteluryhmään käyttämällä Tor-selainta: ",
"gui_please_wait_no_button": "Aloitetaan…",
"gui_qr_code_dialog_title": "OnionSharen QR-koodi",
diff --git a/desktop/onionshare/resources/locale/fil.json b/desktop/onionshare/resources/locale/fil.json
index 19201cd1..88db97cd 100644
--- a/desktop/onionshare/resources/locale/fil.json
+++ b/desktop/onionshare/resources/locale/fil.json
@@ -38,5 +38,9 @@
"gui_status_indicator_receive_working": "Sinisimulan…",
"gui_status_indicator_chat_working": "Sinisimulan…",
"gui_all_modes_history": "History",
- "gui_canceled": "Kinansela"
+ "gui_canceled": "Kinansela",
+ "moat_captcha_reload": "I-restart ang laro",
+ "gui_status_indicator_share_stopped": "Inihinto",
+ "gui_status_indicator_receive_stopped": "Inihinto",
+ "gui_status_indicator_chat_stopped": "Inihinto"
}
diff --git a/desktop/onionshare/resources/locale/fr.json b/desktop/onionshare/resources/locale/fr.json
index ac65f1ec..aedb357d 100644
--- a/desktop/onionshare/resources/locale/fr.json
+++ b/desktop/onionshare/resources/locale/fr.json
@@ -1,6 +1,6 @@
{
"other_page_loaded": "L’adresse a été chargée",
- "closing_automatically": "Arrêté, car le transfert est achevé",
+ "closing_automatically": "Arrêté, car le transfert est terminé",
"systray_menu_exit": "Fermer",
"gui_drag_and_drop": "Glisser-déposer des fichiers et dossiers pour commencer le partage",
"gui_add": "Ajouter",
@@ -13,7 +13,7 @@
"gui_please_wait": "Démarrage… Cliquez pour annuler.",
"gui_quit_warning_quit": "Fermer",
"gui_settings_autoupdate_timestamp_never": "Jamais",
- "gui_settings_language_changed_notice": "Redémarrez OnionShare afin de changer vers la nouvelle langue.",
+ "gui_settings_language_changed_notice": "Redémarrez OnionShare afin d’appliquer la nouvelle langue.",
"not_a_readable_file": "{0:s} n’est pas un fichier lisible.",
"gui_settings_window_title": "Paramètres",
"gui_settings_autoupdate_timestamp": "Dernière vérification : {}",
@@ -60,14 +60,14 @@
"gui_tor_connection_lost": "Vous êtes déconnecté de Tor.",
"gui_share_url_description": "Quiconque disposant de cette adresse OnionShare et de cette clé privée peut télécharger vos fichiers en utilisant le Navigateur Tor : ",
"gui_receive_url_description": "Quiconque disposant de cette adresse OnionShare et de cette clé privée peut téléverser des fichiers vers votre ordinateur en utilisant le Navigateur Tor : ",
- "gui_url_label_persistent": "Ce partage ne s’arrêtera pas automatiquement.
Tout partage subséquent réutilisera l’adresse. (Pour des adresses qui ne peuvent être utilisées qu’une fois, désactivez « Utiliser une adresse persistante » dans les paramètres.)",
+ "gui_url_label_persistent": "Ce partage ne s’arrêtera pas automatiquement.
Tout partage subséquent réutilise l’adresse. (Pour des adresses qui ne peuvent être utilisées qu’une fois, désactivez « Toujours ouvrir cet onglet lors du démarrage d’OnionShare » dans les paramètres.)",
"gui_url_label_stay_open": "Ce partage ne s’arrêtera pas automatiquement.",
"gui_url_label_onetime": "Ce partage s’arrêtera une fois que le premier téléchargement sera terminé.",
- "gui_url_label_onetime_and_persistent": "Ce partage ne s’arrêtera pas automatiquement.
Tout partage subséquent réutilisera l’adresse. (Pour des adresses qui ne peuvent être utilisées qu’une fois, désactivez « Utiliser une adresse persistante » dans les paramètres.)",
- "gui_status_indicator_share_stopped": "Prêt à partager",
+ "gui_url_label_onetime_and_persistent": "Ce partage ne s’arrêtera pas automatiquement.
Tout partage subséquent réutilise l’adresse. (Pour des adresses qui ne peuvent être utilisées qu’une fois, désactivez « Toujours ouvrir cet onglet lors du démarrage d’OnionShare » dans les paramètres.)",
+ "gui_status_indicator_share_stopped": "Arrêté",
"gui_status_indicator_share_working": "Démarrage…",
"gui_status_indicator_share_started": "Partage en cours",
- "gui_status_indicator_receive_stopped": "Prêt à recevoir",
+ "gui_status_indicator_receive_stopped": "Arrêté",
"gui_status_indicator_receive_working": "Démarrage…",
"gui_status_indicator_receive_started": "Réception",
"gui_file_info": "{} fichiers, {}",
@@ -87,9 +87,9 @@
"gui_tor_connection_canceled": "Impossible de se connecter à Tor.\n\nAssurez-vous d’être connecté à Internet, puis rouvrez OnionShare et configurez sa connexion à Tor.",
"systray_page_loaded_title": "La page a été chargée",
"gui_settings_meek_lite_expensive_warning": "Avertissement : L’exploitation de ponts meek_azure demande beaucoup de ressources au Projet Tor.
Ne les utilisez que si vous ne pouvez pas vous connecter directement à Tor par les transports obfs4 ou autres ponts normaux.",
- "gui_server_started_after_autostop_timer": "La minuterie d’arrêt automatique est arrivée au bout de son délai avant le démarrage du serveur. Veuillez mettre en place un nouveau partage.",
- "gui_server_autostop_timer_expired": "La minuterie d’arrêt automatique est déjà arrivée au bout de son délai. Veuillez la modifier pour commencer le partage.",
- "close_on_autostop_timer": "Arrêté, car la minuterie d’arrêt automatique est épuisée",
+ "gui_server_started_after_autostop_timer": "La minuterie d’arrêt automatique est arrivée au bout de son délai avant le démarrage du serveur. Créez un nouveau partage.",
+ "gui_server_autostop_timer_expired": "La minuterie d’arrêt automatique est déjà arrivée au bout de son délai. Réglez-la pour commencer le partage.",
+ "close_on_autostop_timer": "Arrêté, car la minuterie d’arrêt automatique est arrivée au bout de son délai",
"gui_add_files": "Ajouter des fichiers",
"gui_add_folder": "Ajouter un dossier",
"error_cannot_create_data_dir": "Impossible de créer le dossier de données d’OnionShare : {}",
@@ -110,17 +110,17 @@
"gui_all_modes_progress_starting": "{0:s}, %p % (calcul en cours)",
"gui_all_modes_progress_eta": "{0:s}, fin prévue : {1:s}, %p %",
"gui_share_mode_no_files": "Aucun fichier n’a encore été envoyé",
- "gui_share_mode_autostop_timer_waiting": "Finition de l'envoi…",
+ "gui_share_mode_autostop_timer_waiting": "Fin de l’envoi…",
"gui_receive_mode_no_files": "Aucun fichier n’a encore été reçu",
- "gui_receive_mode_autostop_timer_waiting": "Finition de réception…",
+ "gui_receive_mode_autostop_timer_waiting": "Fin de la réception…",
"systray_share_completed_message": "L’envoi de fichiers est terminé",
"gui_all_modes_transfer_canceled": "Annulé le {}",
"gui_all_modes_transfer_canceled_range": "Annulé {} à {}",
"gui_stop_server_autostop_timer_tooltip": "La minuterie d’arrêt automatique se termine à {}",
"gui_start_server_autostart_timer_tooltip": "La minuterie de démarrage automatique se termine à {}",
"gui_waiting_to_start": "Programmé pour démarrer dans {}. Cliquez pour annuler.",
- "gui_server_autostart_timer_expired": "L’heure programmée est déjà passée. Veuillez la modifier pour démarrer le partage.",
- "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "La minuterie d’arrêt automatique ne peut pas être identique ou antérieure à l’heure de démarrage automatique. Veuillez la modifier pour démarrer le partage.",
+ "gui_server_autostart_timer_expired": "L’heure programmée est déjà passée. réglez-la pour démarrer le partage.",
+ "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "L’heure d’arrêt automatique ne peut pas être identique ou antérieur à l’heure de démarrage automatique. Réglez-la pour démarrer le partage.",
"gui_status_indicator_share_scheduled": "Programmé…",
"gui_status_indicator_receive_scheduled": "Programmé…",
"days_first_letter": "j",
@@ -131,13 +131,13 @@
"gui_website_mode_no_files": "Aucun site Web n’a encore été partagé",
"incorrect_password": "Le mot de passe est erroné",
"history_requests_tooltip": "{} requêtes Web",
- "gui_close_tab_warning_title": "Fermer l'onglet ?",
+ "gui_close_tab_warning_title": "Fermer l’onglet ?",
"gui_new_tab_website_button": "Héberger un site Web",
"gui_new_tab_receive_button": "Recevoir des fichiers",
"gui_new_tab_share_button": "Partager des fichiers",
"gui_new_tab_tooltip": "Ouvrir un nouvel onglet",
"gui_new_tab": "Nouvel onglet",
- "gui_close_tab_warning_persistent_description": "Fermer l'onglet persistant et perdre l'adresse onion qu'il utilise ?",
+ "gui_close_tab_warning_persistent_description": "Fermer l’onglet persistant et perdre l’adresse oignon qu’il utilise ?",
"mode_settings_autostop_timer_checkbox": "Arrêter un service oignon à une heure prédéterminée",
"mode_settings_autostart_timer_checkbox": "Démarrer un service oignon à une heure prédéterminée",
"mode_settings_website_disable_csp_checkbox": "Ne pas envoyer l’en-tête Politique de sécurité de contenu par défaut (permet à votre site Web d’utiliser des ressources tierces)",
@@ -145,23 +145,23 @@
"mode_settings_receive_data_dir_label": "Enregistrer les fichiers dans",
"mode_settings_share_autostop_sharing_checkbox": "Cesser le partage une fois que les fichiers ont été envoyés (décocher afin de permettre le téléchargement de fichiers individuels)",
"mode_settings_public_checkbox": "Ce service OnionShare est public (il désactive la clé privée)",
- "mode_settings_persistent_checkbox": "Toujours ouvrir cet onglet quand OnionShare est démarrer",
+ "mode_settings_persistent_checkbox": "Toujours ouvrir cet onglet lors du démarrage d’OnionShare (l’adresse oignon restera la même)",
"mode_settings_advanced_toggle_hide": "Cacher les paramètres avancés",
"mode_settings_advanced_toggle_show": "Afficher les paramètres avancés",
"gui_quit_warning_cancel": "Annuler",
- "gui_quit_warning_description": "Quitter et fermer tout les onglets, même si le partage est actifs pour certains d'entre eux ?",
- "gui_quit_warning_title": "Quitter OnionShare ?",
+ "gui_quit_warning_description": "Quitter et fermer tous les onglets, même si le partage est actif pour certains d’eux ?",
+ "gui_quit_warning_title": "Quitter OnionShare ?",
"gui_close_tab_warning_cancel": "Annuler",
"gui_close_tab_warning_close": "Valider",
- "gui_close_tab_warning_website_description": "Fermer l'onglet hébergeant un site web ?",
- "gui_close_tab_warning_receive_description": "Fermer l'onglet recevant des fichiers ?",
- "gui_close_tab_warning_share_description": "Fermer l'onglet envoyant des fichiers ?",
+ "gui_close_tab_warning_website_description": "Fermer l’onglet qui héberge un site Web ?",
+ "gui_close_tab_warning_receive_description": "Fermer l’onglet qui reçoit des fichiers ?",
+ "gui_close_tab_warning_share_description": "Fermer l’onglet qui envoie des fichiers ?",
"gui_tab_name_chat": "Dialogue en ligne",
"gui_tab_name_website": "Site Web",
"gui_tab_name_receive": "Recevoir",
"gui_tab_name_share": "Partager",
"gui_new_tab_chat_button": "Dialoguer anonymement",
- "gui_open_folder_error": "Impossible d'ouvrir le dossier avec xdg-open. Le fichier est ici : {}",
+ "gui_open_folder_error": "Impossible d’ouvrir le dossier avec xdg-open. Le fichier est ici : {}",
"gui_qr_code_dialog_title": "Code QR d’OnionShare",
"gui_show_qr_code": "Afficher le code QR",
"gui_receive_flatpak_data_dir": "Comme vous avez installé OnionShare grâce à Flatpak, vous devez enregistrer vos fichiers dans un sous-dossier de ~/OnionShare.",
@@ -176,8 +176,8 @@
"gui_chat_url_description": "Quiconque disposant de cette adresse OnionShare et de cette clé privée peut se joindre à ce salon de discussion avec le Navigateur Tor : ",
"error_port_not_available": "Le port OnionShare n’est pas accessible",
"gui_rendezvous_cleanup_quit_early": "Fermer avant",
- "gui_rendezvous_cleanup": "En attente de la fermeture des circuits Tor pour être certain que vos fichiers ont été transférés.\n\nCela pourrait prendre quelques minutes.",
- "gui_color_mode_changed_notice": "Redémarrez OnionShare pour voir la nouvelle couleur.",
+ "gui_rendezvous_cleanup": "En attente de la fermeture des circuits Tor pour garantir le transfert de vos fichiers.\n\nCela pourrait prendre quelques minutes.",
+ "gui_color_mode_changed_notice": "Redémarrez OnionShare pour appliquer les nouvelles couleurs.",
"history_receive_read_message_button": "Lire le message",
"mode_settings_receive_webhook_url_checkbox": "Utiliser un point d’ancrage Web de notification",
"mode_settings_receive_disable_files_checkbox": "Désactiver le téléversement de fichiers",
@@ -186,7 +186,7 @@
"gui_status_indicator_chat_started": "En conversation",
"gui_status_indicator_chat_scheduled": "Planifié…",
"gui_status_indicator_chat_working": "Démarrage…",
- "gui_status_indicator_chat_stopped": "Prêt à dialoguer",
+ "gui_status_indicator_chat_stopped": "Arrêté",
"gui_copied_client_auth_title": "La clé privée a été copiée",
"gui_please_wait_no_button": "Démarrage…",
"gui_copied_client_auth": "La clé privée a été copiée dans le presse-papiers",
@@ -204,16 +204,16 @@
"gui_settings_theme_auto": "Automatique",
"gui_settings_theme_dark": "Sombre",
"gui_website_url_public_description": "Quiconque disposant de cette adresse OnionShare peut visiter votre site Web en utilisant le Navigateur Tor : ",
- "gui_server_doesnt_support_stealth": "Désolé, cette version de Tor ne prend pas en charge l’authentification client secrète. Veuillez essayer avec une version plus récente de Tor ou utilisez le mode « public » si la confidentialité n’est pas nécessaire.",
+ "gui_server_doesnt_support_stealth": "Cette version de Tor ne prend pas en charge l’authentification client secrète. Essayez avec une version plus récente de Tor ou utilisez le mode « public » si la confidentialité n’est pas nécessaire.",
"gui_receive_url_public_description": "Quiconque disposant de cette adresse OnionShare peut téléverser des fichiers vers votre ordinateur en utilisant le Navigateur Tor : ",
"gui_client_auth_instructions": "Envoyez ensuite la clé privée pour accorder l’accès à votre service OnionShare :",
- "gui_dragdrop_sandbox_flatpak": "Afin de rendre le bac à sable Flatpak plus sécurisé, le glisser-déposer n’est pas pris en charge. Utilisez plutôt les boutons « Ajouter des fichiers » et « Ajouter des dossiers » pour sélectionner des fichiers.",
- "moat_solution_empty_error": "Saisir les caractères présentés par l’image",
+ "gui_dragdrop_sandbox_flatpak": "Afin d’accroitre la sécurité du bac à sable de Flatpak, le glisser-déposer n’est pas pris en charge. Utilisez plutôt les boutons « Ajouter des fichiers » et « Ajouter des dossiers ».",
+ "moat_solution_empty_error": "Saisissez les caractères présentés sur l’image",
"gui_settings_stop_active_tabs_label": "Des services sont en cours d’exécution dans certains de vos onglets.\nVous devez arrêter tous les services pour changer vos paramètres de Tor.",
"moat_captcha_label": "Résolvez le CAPTCHA pour demander un pont.",
"gui_tor_settings_window_title": "Paramètres de Tor",
"gui_settings_controller_extras_label": "Paramètres de Tor",
- "gui_settings_tor_bridges_label": "Les ponts vous aident à accéder au réseau Tor où Tor est bloqué. Selon l’endroit où vous vous connectez, un pont pourrait fonctionner mieux qu’un autre.",
+ "gui_settings_tor_bridges_label": "Les ponts vous aident à accéder au réseau Tor si l’accès à Tor est bloqué. Selon l’endroit d’où vous vous connectez, un pont pourrait fonctionner mieux qu’un autre.",
"gui_settings_bridge_use_checkbox": "Utiliser un pont",
"gui_settings_bridge_radio_builtin": "Choisir un pont intégré",
"gui_settings_bridge_none_radio_option": "Ne pas utiliser de ponts",
@@ -229,30 +229,33 @@
"moat_captcha_placeholder": "Saisissez les caractères de l’image",
"moat_captcha_submit": "Envoyer",
"moat_captcha_reload": "Recharger",
- "moat_bridgedb_error": "Impossible de contacter de BridgeDB.",
- "moat_captcha_error": "La solution est erronée. Veuillez réessayer.",
+ "moat_bridgedb_error": "Impossible de contacter BridgeDB.",
+ "moat_captcha_error": "La solution est erronée. Réessayez.",
"mode_tor_not_connected_label": "OnionShare n’est pas connecté au réseau Tor",
- "gui_autoconnect_description": "OnionShare repose sur le réseau Tor, exploité par des milliers de bénévoles dans le monde entier.",
- "gui_enable_autoconnect_checkbox": "Se connecter automatiquement à Tor",
+ "gui_autoconnect_description": "OnionShare repose sur le réseau Tor, exploité par des bénévoles.",
+ "gui_enable_autoconnect_checkbox": "Connexion automatiquement à Tor",
"gui_autoconnect_failed_to_connect_to_tor": "Échec de connexion à Tor",
- "gui_autoconnect_trying_to_connect_to_tor": "Tentative de connexion à Tor…",
- "gui_autoconnect_bridge_detect_automatic": "Pour les paramètres de pont, déterminer automatiquement mon pays à partir de mon adresse IP",
- "gui_autoconnect_connection_error_msg": "La connexion à Internet fonctionne-t-elle ?",
- "gui_autoconnect_bridge_description": "Il est aussi possible que votre Internet soit censuré. Vous pourrez peut-être contourner cette situation en utilisant un pont.",
- "gui_autoconnect_bridge_detect_manual": "Sélectionner mon pays pour paramètres de pont manuels",
- "gui_autoconnect_circumventing_censorship_starting_meek": "Établissement d'un pont simple pour utilisation de domaine-écran…",
- "gui_autoconnect_circumventing_censorship_starting_circumvention": "Contournement de censure…",
- "gui_autoconnect_no_bridge": "Essayez sans ponts",
- "gui_autoconnect_circumventing_censorship_requesting_bridges": "Sollicitation de ponts par l'interface de contournement de censure Tor…",
- "gui_autoconnect_try_again_without_a_bridge": "Essayez sans ponts",
- "gui_autoconnect_circumventing_censorship": "Résolution de problèmes de connexion…",
- "gui_autoconnect_circumventing_censorship_got_bridges": "Ponts établis. Reconnexion à Tor…",
- "gui_autoconnect_could_not_connect_to_tor_api": "Connexion à l'interface Tor échouée. Veuillez vérifier votre connexion Internet et réessayer.",
- "gui_autoconnect_bridge_setting_options": "Paramètres de pont",
- "gui_autoconnect_start": "Connexion à Tor",
- "gui_autoconnect_configure": "Connexion réseau",
+ "gui_autoconnect_trying_to_connect_to_tor": "Connexion à Tor…",
+ "gui_autoconnect_bridge_detect_automatic": "Pour les paramètres du pont, déterminer mon pays d’après mon adresse IP",
+ "gui_autoconnect_connection_error_msg": "Assurez-vous du fonctionnement de la connexion à Internet.",
+ "gui_autoconnect_bridge_description": "Si votre connexion à Internet est censurée, vous pourriez vous connecter en utilisant un pont.",
+ "gui_autoconnect_bridge_detect_manual": "Pour les paramètres du pont, choisir manuellement mon pays",
+ "gui_autoconnect_circumventing_censorship_starting_meek": "Établissement d'un pont Meek comme domaine-écran…",
+ "gui_autoconnect_circumventing_censorship_starting_circumvention": "Contournement de la censure…",
+ "gui_autoconnect_no_bridge": "Réessayez sans pont",
+ "gui_autoconnect_circumventing_censorship_requesting_bridges": "Demande de ponts à l’API Tor de contournement de la censure…",
+ "gui_autoconnect_try_again_without_a_bridge": "Réessayez sans pont",
+ "gui_autoconnect_circumventing_censorship": "Résolution des problèmes de connectivité…",
+ "gui_autoconnect_circumventing_censorship_got_bridges": "Les ponts sont établis. Reconnexion à Tor…",
+ "gui_autoconnect_could_not_connect_to_tor_api": "Échec de connexion à l’API Tor. Vérifiez la connexion à Internet et réessayez.",
+ "gui_autoconnect_bridge_setting_options": "Paramètres du pont",
+ "gui_autoconnect_start": "Se connecter à Tor",
+ "gui_autoconnect_configure": "Paramètres réseau",
"gui_general_settings_window_title": "Général",
- "waitress_web_server_error": "Il y a eu un problème au démarrage du serveur web",
+ "waitress_web_server_error": "Un problème est survenu lors du démarrage du serveur Web",
"gui_close_tab_warning_chat_description": "Fermer l’onglet qui héberge un serveur de dialogue en ligne ?",
- "gui_chat_mode_explainer": "Le mode conversation vous permet de discuter interactivement avec d’autres dans le Navigateur Tor.br> L’historique des conversations n’est pas enregistré dans OnionShare. L’historique des conversations disparaît en cas de fermeture du Navigateur Tor."
+ "gui_chat_mode_explainer": "Le mode conversation vous permet de discuter interactivement avec d’autres dans le Navigateur Tor.br> L’historique des conversations n’est pas enregistré dans OnionShare. L’historique des conversations disparaît en cas de fermeture du Navigateur Tor.",
+ "mode_settings_persistent_autostart_on_launch_checkbox": "Démarrer automatiquement ce service oignon lors du démarrage d’OnionShare",
+ "error_generic": "Une erreur inattendue est survenue dans OnionShare :\n{}",
+ "gui_settings_license_label": "OnionShare est sous licence GPL v3. Les licences des tiers peuvent être consultées ici : https://github.com/onionshare/onionshare/tree/main/licenses"
}
diff --git a/desktop/onionshare/resources/locale/ga.json b/desktop/onionshare/resources/locale/ga.json
index bbf3667a..64f0f0de 100644
--- a/desktop/onionshare/resources/locale/ga.json
+++ b/desktop/onionshare/resources/locale/ga.json
@@ -228,7 +228,7 @@
"gui_close_tab_warning_share_description": "Dún cluaisín atá ag seoladh comhaid?",
"gui_close_tab_warning_receive_description": "An bhfuil fonn ort cluaisín a dhúnadh a bhfuil comhaid á bhfáil agat?",
"mode_settings_advanced_toggle_hide": "Folaigh ardsocruithe",
- "mode_settings_persistent_checkbox": "Oscail an cluaisín seo i gcónaí nuair a thosaíonn OnionShare",
+ "mode_settings_persistent_checkbox": "Oscail an cluaisín seo i gcónaí nuair a thosaíonn OnionShare (fanfaidh an seoladh oinniúin mar a chéile)",
"mode_settings_autostop_timer_checkbox": "Cuir stop leis an tseirbhís oinniún ag an am sceidealta",
"mode_settings_website_disable_csp_checkbox": "Ná seol ceanntásc réamhshocraithe Beartas Slándála Inneachair (a ligeann do do shuíomh Gréasáin acmhainní tríú páirtí a úsáid)",
"gui_tor_settings_window_title": "Socruithe Tor",
@@ -254,5 +254,6 @@
"gui_autoconnect_could_not_connect_to_tor_api": "Níorbh fhéidir ceangal leis an API Tor. Cinntigh go bhfuil tú nasctha leis an Idirlíon sula ndéanfaidh tú iarracht eile.",
"waitress_web_server_error": "Tharla fadhb agus an freastalaí gréasáin á thosú",
"gui_website_url_public_description": "Is féidir le duine ar bith a bhfuil an seoladh OnionShare seo aige cuairt a thabhairt ar do shuíomh Gréasáin trí úsáid a bhaint as Brabhsálaí Tor: ",
- "gui_chat_mode_explainer": "Ligeann mód comhrá duit comhrá idirghníomhach a dhéanamh le daoine eile, i mBrabhsálaí Tor.
Ní stóráiltear stair comhrá in OnionShare. Imeoidh an stair chomhrá nuair a dhúnann tú Brabhsálaí Tor."
+ "gui_chat_mode_explainer": "Ligeann mód comhrá duit comhrá idirghníomhach a dhéanamh le daoine eile, i mBrabhsálaí Tor.
Ní stóráiltear stair comhrá in OnionShare. Imeoidh an stair chomhrá nuair a dhúnann tú Brabhsálaí Tor.",
+ "mode_settings_persistent_autostart_on_launch_checkbox": "Cuir tús leis an tseirbhís oinniúin seo go huathoibríoch nuair a thosaíonn OnionShare"
}
diff --git a/desktop/onionshare/resources/locale/gl.json b/desktop/onionshare/resources/locale/gl.json
index 8b284305..677caad6 100644
--- a/desktop/onionshare/resources/locale/gl.json
+++ b/desktop/onionshare/resources/locale/gl.json
@@ -80,11 +80,11 @@
"gui_url_label_stay_open": "Este enderezo non desaparecerá automáticamente.",
"gui_url_label_onetime": "Esta compartición deterase tras o primeiro completado.",
"gui_url_label_onetime_and_persistent": "Esta compartición non se deterá automáticamente.
Cada futura compartición reutilizará o enderezo. (Para usar enderezos dun só uso, desactiva nos axustes \"Usar enderezo persistente\".)",
- "gui_status_indicator_share_stopped": "Preparado para compartir",
+ "gui_status_indicator_share_stopped": "Detido",
"gui_status_indicator_share_working": "Comezando…",
"gui_status_indicator_share_scheduled": "Programado…",
"gui_status_indicator_share_started": "Compartindo",
- "gui_status_indicator_receive_stopped": "Preparado para recibir",
+ "gui_status_indicator_receive_stopped": "Detido",
"gui_status_indicator_receive_working": "Comezando…",
"gui_status_indicator_receive_scheduled": "Programado…",
"gui_status_indicator_receive_started": "Recibindo",
@@ -186,7 +186,7 @@
"gui_status_indicator_chat_started": "Conversando",
"gui_status_indicator_chat_scheduled": "Programado…",
"gui_status_indicator_chat_working": "Comezando…",
- "gui_status_indicator_chat_stopped": "Preparado para conversar",
+ "gui_status_indicator_chat_stopped": "Detido",
"gui_settings_theme_dark": "Escuro",
"gui_settings_theme_light": "Claro",
"gui_settings_theme_auto": "Auto",
diff --git a/desktop/onionshare/resources/locale/gu.json b/desktop/onionshare/resources/locale/gu.json
index 522fac20..1b85e129 100644
--- a/desktop/onionshare/resources/locale/gu.json
+++ b/desktop/onionshare/resources/locale/gu.json
@@ -36,5 +36,12 @@
"gui_quit_warning_cancel": "રદ કરો",
"gui_settings_theme_light": "પ્રકાશ",
"gui_settings_theme_dark": "અંધારિયું",
- "gui_hide": "છુપાવો"
+ "gui_hide": "છુપાવો",
+ "gui_autoconnect_start": "Connect to Tor",
+ "gui_status_indicator_share_working": "શરૂ થઈ રહ્યુ છે…",
+ "gui_status_indicator_chat_working": "શરૂ થઈ રહ્યુ છે…",
+ "gui_file_selection_remove_all": "Remove All",
+ "gui_status_indicator_receive_working": "શરૂ થઈ રહ્યુ છે…",
+ "gui_close_tab_warning_close": "ઠીક છે",
+ "gui_please_wait_no_button": "શરૂ થઈ રહ્યુ છે…"
}
diff --git a/desktop/onionshare/resources/locale/he.json b/desktop/onionshare/resources/locale/he.json
index 32202df8..30088080 100644
--- a/desktop/onionshare/resources/locale/he.json
+++ b/desktop/onionshare/resources/locale/he.json
@@ -56,5 +56,9 @@
"moat_captcha_reload": "טען מחדש",
"gui_general_settings_window_title": "כללי",
"gui_status_indicator_chat_working": "התחלה…",
- "mode_settings_title_label": "כותרת מותאמת אישית"
+ "mode_settings_title_label": "כותרת מותאמת אישית",
+ "gui_settings_bridge_use_checkbox": "להשתמש בגשר",
+ "gui_status_indicator_receive_stopped": "נעצר",
+ "gui_status_indicator_chat_stopped": "נעצר",
+ "gui_status_indicator_share_stopped": "נעצר"
}
diff --git a/desktop/onionshare/resources/locale/hi.json b/desktop/onionshare/resources/locale/hi.json
index e5fe5da1..0bb100f3 100644
--- a/desktop/onionshare/resources/locale/hi.json
+++ b/desktop/onionshare/resources/locale/hi.json
@@ -136,5 +136,8 @@
"moat_captcha_label": "पुल का अनुरोध करने के लिए कैप्चा को हल करें।",
"moat_solution_empty_error": "छवि से अक्षर दर्ज करें",
"gui_autoconnect_start": "टोर से कनेक्ट करें",
- "moat_captcha_reload": "Reload"
+ "moat_captcha_reload": "Reload",
+ "gui_status_indicator_share_stopped": "रुका हुआ",
+ "gui_status_indicator_receive_stopped": "रुका हुआ",
+ "gui_status_indicator_chat_stopped": "रुका हुआ"
}
diff --git a/desktop/onionshare/resources/locale/hr.json b/desktop/onionshare/resources/locale/hr.json
index a1e2e891..c9e194de 100644
--- a/desktop/onionshare/resources/locale/hr.json
+++ b/desktop/onionshare/resources/locale/hr.json
@@ -80,15 +80,15 @@
"gui_share_url_description": "Svatko s ovom OnionShare adresom i privatnim ključem može preuzeti tvoje datoteke koristeći Tor preglednik: ",
"gui_website_url_description": "Svatko s ovom OnionShare adresom i privatnim ključem može posjetiti tvoju web-stranicu koristeći Tor preglednik: ",
"gui_receive_url_description": "Svatko s ovom OnionShare adresom i privatnim ključem može prenijeti datoteke na tvoje računalo koristeći Tor preglednik: ",
- "gui_url_label_persistent": "Ovo se dijeljenje neće automatski prekinuti.
Svako naredno dijeljenje koristit će istu adresu. (Za korištenje jednokratne adrese, u postavkama isključi opciju „Koristi trajnu adresu”.)",
+ "gui_url_label_persistent": "Ovo se dijeljenje neće automatski prekinuti.
Svako naredno dijeljenje ponovo koristi istu adresu. (Za korištenje jednokratne adrese, u postavkama isključi opciju „Uvijek otvori ovu karticu kad se pokrene OnionShare”.)",
"gui_url_label_stay_open": "Ovo se dijeljenje neće automatski prekinuti.",
"gui_url_label_onetime": "Ovo će se dijeljenje prekinuti nakon prvog završavanja.",
- "gui_url_label_onetime_and_persistent": "Ovo se dijeljenje neće automatski prekinuti.
Svako naredno dijeljenje će koristit će istu adresu. (Za korištenje jednokratne adrese, u postavkama isključi opciju „Koristi trajnu adresu”.)",
- "gui_status_indicator_share_stopped": "Spremno za dijeljenje",
+ "gui_url_label_onetime_and_persistent": "Ovo se dijeljenje neće automatski prekinuti.
Svako naredno dijeljenje će ponovo koristiti istu adresu. (Za korištenje jednokratne adrese, u postavkama isključi opciju „Uvijek otvori ovu karticu kad se pokrene OnionShare”.)",
+ "gui_status_indicator_share_stopped": "Prekinuto",
"gui_status_indicator_share_working": "Pokretanje …",
"gui_status_indicator_share_scheduled": "Planirano …",
"gui_status_indicator_share_started": "Dijeljenje",
- "gui_status_indicator_receive_stopped": "Spremno za primanje",
+ "gui_status_indicator_receive_stopped": "Prekinuto",
"gui_status_indicator_receive_working": "Pokretanje …",
"gui_status_indicator_receive_scheduled": "Planirano …",
"gui_status_indicator_receive_started": "Primanje",
@@ -138,7 +138,7 @@
"mode_settings_autostop_timer_checkbox": "Prekini onion uslugu u planirano vrijeme",
"mode_settings_autostart_timer_checkbox": "Pokreni onion uslugu u planirano vrijeme",
"mode_settings_public_checkbox": "Ovo je javna OnionShare usluga (deaktivira privatni ključ)",
- "mode_settings_persistent_checkbox": "Uvijek otvori ovu karticu kad se pokrene OnionShare",
+ "mode_settings_persistent_checkbox": "Uvijek otvori ovu karticu kad se pokrene OnionShare (onion adresa će ostati ista)",
"mode_settings_advanced_toggle_hide": "Sakrij napredne postavke",
"mode_settings_advanced_toggle_show": "Prikaži napredne postavke",
"gui_quit_warning_cancel": "Odustani",
@@ -186,7 +186,7 @@
"gui_status_indicator_chat_working": "Pokretanje …",
"mode_settings_receive_webhook_url_checkbox": "Koristi automatsko obavještavanje",
"gui_status_indicator_chat_started": "Razgovor u tijeku",
- "gui_status_indicator_chat_stopped": "Spremno za razgovor",
+ "gui_status_indicator_chat_stopped": "Prekinuto",
"gui_server_doesnt_support_stealth": "Nažalost, ova Tor verzija ne podržava autentifikaciju klijenata. Pokušaj s novijom Tor verzijom ili koristi „javni” način rada ako ne mora biti privatni.",
"gui_settings_theme_dark": "Tamna",
"gui_settings_theme_light": "Svjetla",
@@ -254,5 +254,6 @@
"gui_autoconnect_circumventing_censorship_starting_meek": "Uspostavljanje meek mosta za domain-fronting …",
"gui_dragdrop_sandbox_flatpak": "Kako bi Flatpak sandbox bio sigurniji, funkcija povlačenja i ispuštanja nije podržana. Umjesto toga koristi gumbe „Dodaj datoteke” i „Dodaj mapu” za biranje datoteka.",
"gui_close_tab_warning_chat_description": "Zatvoriti karticu koja hostira server za razgovore?",
- "gui_chat_mode_explainer": "Modus razgovora omogućuje interaktivni razgovor s drugima u Tor pregledniku.
Povijest razgovora se ne sprema u OnionShareu. Povijest razgovora će nestati kada zatvoriš Tor preglednik."
+ "gui_chat_mode_explainer": "Modus razgovora omogućuje interaktivni razgovor s drugima u Tor pregledniku.
Povijest razgovora se ne sprema u OnionShareu. Povijest razgovora će nestati kada zatvoriš Tor preglednik.",
+ "mode_settings_persistent_autostart_on_launch_checkbox": "Automatski pokreni ovu onion uslugu kad se pokrene OnionShare"
}
diff --git a/desktop/onionshare/resources/locale/hu.json b/desktop/onionshare/resources/locale/hu.json
index c270e778..b9276d2d 100644
--- a/desktop/onionshare/resources/locale/hu.json
+++ b/desktop/onionshare/resources/locale/hu.json
@@ -139,7 +139,7 @@
"gui_settings_bridge_radio_builtin": "Válasszon beépített hidat",
"gui_autoconnect_configure": "Hálózati beállítások",
"gui_url_instructions": "Először küldje el az alábbi OnionShare címet:",
- "gui_status_indicator_receive_stopped": "Fogadásra készen",
+ "gui_status_indicator_receive_stopped": "Leállít",
"gui_status_indicator_chat_scheduled": "Ütemezett…",
"gui_file_info": "{} fájl, {}",
"gui_chat_start_server": "Csevegőszerver indítása",
@@ -160,8 +160,8 @@
"gui_chat_url_description": "Ezzel az OnionShare címmel és privát kulccsal bárkicsatlakozhat ehhez a csevegőszobához a Tor böngésző használatával: ",
"gui_tor_connection_ask": "Megnyissuk a beállításokat, hogy a Tor-hoz való kapcsolódást rendezze?",
"gui_status_indicator_share_scheduled": "Ütemezett…",
- "gui_status_indicator_share_stopped": "Megosztásra kész",
- "gui_status_indicator_chat_stopped": "Készen áll a csevegésre",
+ "gui_status_indicator_share_stopped": "Leállít",
+ "gui_status_indicator_chat_stopped": "Leállít",
"gui_enable_autoconnect_checkbox": "Automatikus csatlakozás a Torhoz",
"gui_tor_connection_lost": "Leválasztva a Torról.",
"gui_copied_client_auth": "A privát kulcs a vágólapra másolva",
diff --git a/desktop/onionshare/resources/locale/ia.json b/desktop/onionshare/resources/locale/ia.json
index 0967ef42..df1e1e15 100644
--- a/desktop/onionshare/resources/locale/ia.json
+++ b/desktop/onionshare/resources/locale/ia.json
@@ -1 +1,41 @@
-{}
+{
+ "gui_remove": "Remover",
+ "gui_hide": "Hide",
+ "gui_settings_window_title": "Configurationes",
+ "gui_settings_autoupdate_timestamp_never": "Never",
+ "gui_settings_language_label": "Lingua",
+ "gui_settings_theme_light": "Clar",
+ "gui_settings_theme_dark": "Obscur",
+ "systray_menu_exit": "Quitar",
+ "gui_tab_name_website": "Website",
+ "gui_tab_name_chat": "Chat",
+ "gui_close_tab_warning_cancel": "Cancellar",
+ "gui_quit_warning_quit": "Quitar",
+ "gui_quit_warning_cancel": "Cancellar",
+ "mode_settings_receive_data_dir_browse_button": "Navigar",
+ "moat_captcha_submit": "Submitter",
+ "moat_captcha_reload": "Reload",
+ "gui_add": "Add",
+ "gui_choose_items": "Eliger",
+ "gui_please_wait_no_button": "Initiante…",
+ "gui_general_settings_window_title": "General",
+ "gui_settings_authenticate_password_option": "Contrasigno",
+ "gui_settings_password_label": "Contrasigno",
+ "gui_settings_button_save": "Salveguardar",
+ "gui_settings_button_cancel": "Cancellar",
+ "gui_settings_button_help": "Adjuta",
+ "gui_tor_connection_ask_open_settings": "Si",
+ "gui_tor_connection_ask_quit": "Quitar",
+ "gui_status_indicator_share_working": "Initiante…",
+ "gui_status_indicator_receive_working": "Initiante…",
+ "gui_status_indicator_chat_working": "Initiante…",
+ "gui_settings_theme_label": "Thema",
+ "gui_all_modes_history": "Chronologia",
+ "gui_all_modes_clear_history": "Rader toto",
+ "gui_new_tab": "Nove scheda",
+ "gui_main_page_share_button": "Comenciar a compartir",
+ "gui_tab_name_share": "Compartir",
+ "gui_status_indicator_chat_stopped": "Stoppate",
+ "gui_status_indicator_share_stopped": "Stoppate",
+ "gui_status_indicator_receive_stopped": "Stoppate"
+}
diff --git a/desktop/onionshare/resources/locale/id.json b/desktop/onionshare/resources/locale/id.json
index 1a7dcfd2..ff57a49f 100644
--- a/desktop/onionshare/resources/locale/id.json
+++ b/desktop/onionshare/resources/locale/id.json
@@ -76,10 +76,10 @@
"gui_url_label_stay_open": "Pembagian ini tidak akan berhenti otomatis.",
"gui_url_label_onetime": "Pembagian ini akan berhenti setelah penyelesaian pertama.",
"gui_url_label_onetime_and_persistent": "Pembagian ini tidak akan berhenti otomatis.
Setiap pembagian selanjutnya akan menggunakan lagi alamat tersebut. (Untuk menggunakan alamat sekali pakai, matikan \"Gunakan alamat persisten\" di pengaturan.)",
- "gui_status_indicator_share_stopped": "Siap untuk berbagi",
+ "gui_status_indicator_share_stopped": "Terhenti",
"gui_status_indicator_share_working": "Memulai…",
"gui_status_indicator_share_started": "Berbagi",
- "gui_status_indicator_receive_stopped": "Siap untuk menerima",
+ "gui_status_indicator_receive_stopped": "Terhenti",
"gui_status_indicator_receive_working": "Memulai…",
"gui_status_indicator_receive_started": "Menerima",
"gui_file_info": "{} file, {}",
@@ -186,7 +186,7 @@
"gui_status_indicator_chat_started": "Mengobrol",
"gui_status_indicator_chat_scheduled": "Menjadwalkan…",
"gui_status_indicator_chat_working": "Memulai…",
- "gui_status_indicator_chat_stopped": "Siap untuk mengobrol",
+ "gui_status_indicator_chat_stopped": "Terhenti",
"gui_copied_client_auth_title": "Kunci Pribadi Disalin",
"gui_copy_client_auth": "Salin Kunci Pribadi",
"gui_hide": "Sembunyikan",
@@ -206,5 +206,6 @@
"moat_solution_empty_error": "Masukkan karakter-karakter dari gambar tesebut.",
"gui_autoconnect_trying_to_connect_to_tor": "Menghubungkan ke Tor…",
"gui_general_settings_window_title": "Umum",
- "gui_autoconnect_configure": "Pengaturan jaringan"
+ "gui_autoconnect_configure": "Pengaturan jaringan",
+ "gui_settings_bridge_use_checkbox": "Gunakan Jembatan"
}
diff --git a/desktop/onionshare/resources/locale/is.json b/desktop/onionshare/resources/locale/is.json
index 280c1578..c3666acf 100644
--- a/desktop/onionshare/resources/locale/is.json
+++ b/desktop/onionshare/resources/locale/is.json
@@ -71,14 +71,14 @@
"gui_server_autostop_timer_expired": "Sjálfvirkri niðurtalningu er þegar lokið. Lagaðu hana til að hefja deilingu.",
"gui_share_url_description": "Hver sem er með þetta OnionShare vistfang og þennan einkalykil getur sótt skrárnar þínar með því að nota Tor-vafrann: ",
"gui_receive_url_description": "Hver sem er með þetta OnionShare vistfang og einkalykil getur sent skrár inn á tölvuna þína með því að nota Tor-vafrann: ",
- "gui_url_label_persistent": "Deiling þessarar sameignar mun ekki stöðvast sjálfvirkt.
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.)",
+ "gui_url_label_persistent": "Deiling þessarar sameignar mun ekki stöðvast sjálfvirkt.
Allar deilingar sem á eftir koma munu endurnýta vistfangið. (Til að nota eins-skiptis vistföng skaltu slökkva á \"Alltaf opna þennan flipa þegar OnionShare fer í gang\" í stillingunum.)",
"gui_url_label_stay_open": "Deiling þessarar sameignar mun ekki stöðvast sjálfvirkt.",
"gui_url_label_onetime": "Deiling þessarar sameignar mun stöðvast eftir fyrstu klárun.",
- "gui_url_label_onetime_and_persistent": "Deiling þessarar sameignar mun ekki stöðvast sjálfvirkt.
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.)",
- "gui_status_indicator_share_stopped": "Tilbúið til að deila",
+ "gui_url_label_onetime_and_persistent": "Deiling þessarar sameignar mun ekki stöðvast sjálfvirkt.
Allar deilingar sem á eftir koma munu endurnýta vistfangið. (Til að nota eins-skiptis vistföng skaltu slökkva á \"Alltaf opna þennan flipa þegar OnionShare fer í gang\" í stillingunum.)",
+ "gui_status_indicator_share_stopped": "Stöðvað",
"gui_status_indicator_share_working": "Ræsi…",
"gui_status_indicator_share_started": "Deiling",
- "gui_status_indicator_receive_stopped": "Tilbúið til að taka við",
+ "gui_status_indicator_receive_stopped": "Stöðvað",
"gui_status_indicator_receive_working": "Ræsi…",
"gui_status_indicator_receive_started": "Tek á móti",
"gui_file_info": "{} skrár, {}",
@@ -131,7 +131,7 @@
"gui_website_mode_no_files": "Ennþá hefur engu vefsvæði verið deilt",
"incorrect_password": "Rangt lykilorð",
"history_requests_tooltip": "{} vefbeiðnir",
- "mode_settings_persistent_checkbox": "Alltaf opna þennan flipa þegar OnionShare fer í gang",
+ "mode_settings_persistent_checkbox": "Alltaf opna þennan flipa þegar OnionShare fer í gang (onion-vistfangið helst það sama)",
"gui_close_tab_warning_persistent_description": "Loka viðvarandi flipa og tapa onion-vistfanginu sem hann er að nota?",
"gui_quit_warning_description": "Hætta og loka öllum flipum, jafnvel þó deiling sé virk í sumum þeirra?",
"mode_settings_share_autostop_sharing_checkbox": "Hætta að deila eftir að skrár hafa verið sendar (taka merkið úr reitnum til að leyfa niðurhal á stökum skrám)",
@@ -153,7 +153,7 @@
"gui_close_tab_warning_title": "Loka flipa?",
"gui_new_tab_website_button": "Hýsa vefsvæði",
"gui_new_tab": "Nýr flipi",
- "gui_close_tab_warning_close": "Ókei",
+ "gui_close_tab_warning_close": "Í lagi",
"gui_close_tab_warning_cancel": "Hætta við",
"mode_settings_autostop_timer_checkbox": "Stöðva onion-þjónustu á áætluðum tíma",
"gui_receive_flatpak_data_dir": "Þar sem þú settir OnionShare upp með því að nota Flatpak, þá verður þú að vista skrár í möppu undir ~/OnionShare.",
@@ -186,7 +186,7 @@
"gui_status_indicator_chat_started": "Spjalla",
"gui_status_indicator_chat_scheduled": "Áætlað…",
"gui_status_indicator_chat_working": "Ræsi…",
- "gui_status_indicator_chat_stopped": "Tilbúið í spjall",
+ "gui_status_indicator_chat_stopped": "Stöðvað",
"gui_please_wait_no_button": "Ræsi…",
"gui_settings_theme_dark": "Dökkt",
"gui_settings_theme_light": "Ljóst",
@@ -254,5 +254,7 @@
"gui_general_settings_window_title": "Almennt",
"waitress_web_server_error": "Vandamál kom upp við að ræsa vefþjóninn",
"gui_close_tab_warning_chat_description": "Loka flipa sem hýsir spjallþjón?",
- "gui_chat_mode_explainer": "Spjallhamur gerir þér kleift að spjalla gagnvirkt við aðra í Tor-vafranum.
Spjallferillinn er ekki geymdur í OnionShare, hann mun hverfa þegar þú lokar Tor-vafranum."
+ "gui_chat_mode_explainer": "Spjallhamur gerir þér kleift að spjalla gagnvirkt við aðra í Tor-vafranum.
Spjallferillinn er ekki geymdur í OnionShare, hann mun hverfa þegar þú lokar Tor-vafranum.",
+ "mode_settings_persistent_autostart_on_launch_checkbox": "Ræsa sjálfkrafa þessa onion-þjónustu þegar OnionShare fer í gang",
+ "gui_settings_license_label": "OnionShare kemur með GPL v3 notkunarleyfi. Notkunarleyfi utanaðkomandi aðila má sjá hér: https://github.com/onionshare/onionshare/tree/main/licenses"
}
diff --git a/desktop/onionshare/resources/locale/it.json b/desktop/onionshare/resources/locale/it.json
index a4ab3cf3..f7a767df 100644
--- a/desktop/onionshare/resources/locale/it.json
+++ b/desktop/onionshare/resources/locale/it.json
@@ -80,10 +80,10 @@
"gui_url_label_stay_open": "Questa condivisione non si arresterà automaticamente.",
"gui_url_label_onetime": "Questa condivisione verrà interrotta dopo il primo completamento.",
"gui_url_label_onetime_and_persistent": "Questa condivisione non si arresterà automaticamente.
Ogni condivisione successiva riutilizzerà l'indirizzo. (Per utilizzare indirizzi monouso, disattivare \"Usa indirizzo persistente\" nelle impostazioni.)",
- "gui_status_indicator_share_stopped": "Pronto per condividere",
+ "gui_status_indicator_share_stopped": "Fermato",
"gui_status_indicator_share_working": "Iniziando…",
"gui_status_indicator_share_started": "Condividendo",
- "gui_status_indicator_receive_stopped": "Pronto per ricevere",
+ "gui_status_indicator_receive_stopped": "Fermato",
"gui_status_indicator_receive_working": "Iniziando…",
"gui_status_indicator_receive_started": "Ricevendo",
"gui_file_info": "{} file, {}",
@@ -165,7 +165,7 @@
"mode_settings_receive_data_dir_browse_button": "Naviga",
"mode_settings_autostop_timer_checkbox": "Interrompere il servizio onion all'ora pianificata",
"mode_settings_autostart_timer_checkbox": "Avviare il servizio onion all'ora pianificata",
- "mode_settings_persistent_checkbox": "Salva questa scheda e aprirla automaticamente quando apro OnionShare",
+ "mode_settings_persistent_checkbox": "Aprire sempre questa scheda quando si avvia OnionShare (l'indirizzo Onion rimarrà lo stesso)",
"gui_quit_warning_cancel": "Annulla",
"gui_close_tab_warning_cancel": "Annulla",
"gui_close_tab_warning_persistent_description": "Questa scheda è persistente. Se lo chiudi perderai l'indirizzo onion che sta usando. Sei sicuro di volerlo chiudere?",
@@ -239,7 +239,7 @@
"gui_url_instructions_public_mode": "Invia l'indirizzo OnionShare qua sotto:",
"gui_client_auth_instructions": "Successivamente, invia la chiave privata per consentire l'accesso al servizio OnionShare:",
"moat_bridgedb_error": "Impossibile contattare BridgeDB.",
- "gui_status_indicator_chat_stopped": "Pronto a chattare",
+ "gui_status_indicator_chat_stopped": "Fermato",
"gui_settings_stop_active_tabs_label": "Ci sono servizi in esecuzione in alcune delle tue schede.\nDevi arrestare tutti i servizi per modificare le impostazioni di Tor.",
"waitress_web_server_error": "\"Si è verificato un problema nell'avvio del server web\"",
"gui_autoconnect_circumventing_censorship_starting_circumvention": "Eludere la censura…",
@@ -254,5 +254,6 @@
"gui_status_indicator_chat_started": "\"In chat\"",
"mode_settings_receive_disable_text_checkbox": "\"Disabilita l'invio di testo\"",
"gui_server_doesnt_support_stealth": "Spiacenti, questa versione di Tor non supporta la modalità stealth (autenticazione del client). Prova con una versione più recente di Tor o utilizza la modalità 'pubblica' se non è necessario che sia privata.",
- "gui_chat_mode_explainer": "La modalità chat ti consente di chattare in modo interattivo con gli altri, in Tor Browser.
La cronologia chat non viene archiviata in OnionShare. La cronologia della chat scomparirà quando chiudi Tor Browser."
+ "gui_chat_mode_explainer": "La modalità chat ti consente di chattare in modo interattivo con gli altri, in Tor Browser.
Kiekvienas vėlesnis bendrinimas pakartotinai naudos adresą. (Norėdami naudoti vienkartinius adresus, nustatymuose išjunkite \"Naudoti nuolatinį adresą\".)",
- "gui_status_indicator_share_stopped": "Parengta dalintis",
+ "gui_status_indicator_share_stopped": "Persiuntimas sustabdytas",
"gui_status_indicator_share_working": "Pradedama…",
"gui_status_indicator_share_scheduled": "Suplanuota…",
"gui_status_indicator_share_started": "Dalijimasis",
- "gui_status_indicator_receive_stopped": "Parengta gauti",
+ "gui_status_indicator_receive_stopped": "Persiuntimas sustabdytas",
"gui_status_indicator_receive_working": "Pradedama…",
"gui_status_indicator_receive_scheduled": "Suplanuota…",
"gui_status_indicator_receive_started": "Gaunama",
@@ -179,7 +179,7 @@
"mode_settings_receive_webhook_url_checkbox": "Naudoti pranešimų webhook",
"gui_main_page_website_button": "Pradėti talpinimą",
"gui_status_indicator_chat_started": "Kalbamasi",
- "gui_status_indicator_chat_stopped": "Paruošta pokalbiui",
+ "gui_status_indicator_chat_stopped": "Persiuntimas sustabdytas",
"gui_color_mode_changed_notice": "Iš naujo paleiskite „OnionShare“, kad būtų pritaikytas naujas spalvų režimas.",
"mode_settings_receive_disable_files_checkbox": "Išjungti failų įkėlimą",
"mode_settings_receive_disable_text_checkbox": "Išjungti teksto pateikimą",
diff --git a/desktop/onionshare/resources/locale/mk.json b/desktop/onionshare/resources/locale/mk.json
index 7c6fc240..2ad97df7 100644
--- a/desktop/onionshare/resources/locale/mk.json
+++ b/desktop/onionshare/resources/locale/mk.json
@@ -38,5 +38,8 @@
"gui_settings_bridge_moat_radio_option": "Барање за мост од torproject.org",
"gui_settings_bridge_custom_placeholder": "внеси адреса:порта (по една во секој ред)",
"moat_captcha_label": "Решете ја ЗАДАЧАТА за да побарате мост.",
- "gui_settings_bridge_use_checkbox": "Користи мост"
+ "gui_settings_bridge_use_checkbox": "Користи мост",
+ "gui_status_indicator_chat_stopped": "Запрено",
+ "gui_status_indicator_receive_stopped": "Запрено",
+ "gui_status_indicator_share_stopped": "Запрено"
}
diff --git a/desktop/onionshare/resources/locale/ms.json b/desktop/onionshare/resources/locale/ms.json
index cfc33ce5..4fbee33a 100644
--- a/desktop/onionshare/resources/locale/ms.json
+++ b/desktop/onionshare/resources/locale/ms.json
@@ -38,5 +38,8 @@
"gui_settings_bridge_custom_placeholder": "taip alamat:port (satu per baris)",
"moat_captcha_label": "Selesaikan CAPTCHA untuk meminta satu titi.",
"moat_captcha_submit": "Serah",
- "moat_solution_empty_error": "Masukkan aksara yang tertera dari imej"
+ "moat_solution_empty_error": "Masukkan aksara yang tertera dari imej",
+ "gui_status_indicator_receive_stopped": "Terhenti",
+ "gui_status_indicator_share_stopped": "Terhenti",
+ "gui_status_indicator_chat_stopped": "Terhenti"
}
diff --git a/desktop/onionshare/resources/locale/nb_NO.json b/desktop/onionshare/resources/locale/nb_NO.json
index 0b1563a5..21145346 100644
--- a/desktop/onionshare/resources/locale/nb_NO.json
+++ b/desktop/onionshare/resources/locale/nb_NO.json
@@ -76,10 +76,10 @@
"gui_url_label_stay_open": "Denne delingen vil ikke stoppe automatisk.",
"gui_url_label_onetime": "Denne delingen vil stoppe etter første fullføring.",
"gui_url_label_onetime_and_persistent": "Delingen vil ikke stoppe automatisk.
Hver påfølgende deling vil gjenbruke adressen. (For å bruke engangsadresser, skru av \"Bruk vedvarende adresse\" i innstillingene.)",
- "gui_status_indicator_share_stopped": "Klar til å dele",
+ "gui_status_indicator_share_stopped": "Stoppet",
"gui_status_indicator_share_working": "Starter…",
"gui_status_indicator_share_started": "Deler",
- "gui_status_indicator_receive_stopped": "Klar til mottak",
+ "gui_status_indicator_receive_stopped": "Stoppet",
"gui_status_indicator_receive_working": "Starter…",
"gui_status_indicator_receive_started": "Mottar",
"gui_file_info": "{} filer, {}",
@@ -188,7 +188,7 @@
"gui_status_indicator_chat_started": "Sludrer",
"gui_status_indicator_chat_scheduled": "Planlagt …",
"gui_status_indicator_chat_working": "Starter …",
- "gui_status_indicator_chat_stopped": "Klar til å sludre",
+ "gui_status_indicator_chat_stopped": "Stoppet",
"gui_client_auth_instructions": "Så sender du den private nøkkelen for å innvilge tilgang til din OnionShare-tjeneste:",
"gui_url_instructions_public_mode": "Send OnionShare-adressen nedenfor:",
"gui_chat_url_public_description": "Alle med denne OnionShare-adressen kan ta del i dette sludrerommet med Tor-nettleseren: ",
diff --git a/desktop/onionshare/resources/locale/nl.json b/desktop/onionshare/resources/locale/nl.json
index cadbce51..344abce4 100644
--- a/desktop/onionshare/resources/locale/nl.json
+++ b/desktop/onionshare/resources/locale/nl.json
@@ -76,10 +76,10 @@
"gui_url_label_stay_open": "Deze share stopt niet automatisch.",
"gui_url_label_onetime": "Deze share stopt na de eerste voltooiïng.",
"gui_url_label_onetime_and_persistent": "Deze share stopt niet vanzelf.
Elke volgende share zal het adres hergebruiken. (Om eenmalige adressen te gebruiken, zet \"Gebruik vast adres\" uit in de settings.)",
- "gui_status_indicator_share_stopped": "Klaar om te delen",
+ "gui_status_indicator_share_stopped": "Gestopt",
"gui_status_indicator_share_working": "Starten…",
"gui_status_indicator_share_started": "Aan het delen",
- "gui_status_indicator_receive_stopped": "Klaar om te ontvangen",
+ "gui_status_indicator_receive_stopped": "Gestopt",
"gui_status_indicator_receive_working": "Starten…",
"gui_status_indicator_receive_started": "Ontvangen",
"gui_file_info": "{} bestanden, {}",
@@ -186,7 +186,7 @@
"gui_status_indicator_chat_started": "in gesprek",
"gui_status_indicator_chat_scheduled": "Ingepland…",
"gui_color_mode_changed_notice": "Herstart OnionShare om de nieuwe kleur toe te passen.",
- "gui_status_indicator_chat_stopped": "Klaar om te chatten",
+ "gui_status_indicator_chat_stopped": "Gestopt",
"gui_settings_theme_label": "Thema",
"gui_settings_theme_auto": "Automatisch",
"moat_captcha_label": "Los de CAPTCHA op om een bridge aan te vragen.",
diff --git a/desktop/onionshare/resources/locale/pl.json b/desktop/onionshare/resources/locale/pl.json
index 39e669b4..eec1634f 100644
--- a/desktop/onionshare/resources/locale/pl.json
+++ b/desktop/onionshare/resources/locale/pl.json
@@ -72,14 +72,14 @@
"gui_server_autostop_timer_expired": "Czas automatycznego zatrzymania już upłynął. Dostosuj go, aby rozpocząć udostępnianie.",
"gui_share_url_description": "Każdy z tym adresem OnionShare oraz kluczem prywatnym może pobrać Twoje pliki za pomocą przeglądarki Tor Browser: ",
"gui_receive_url_description": "Każdy z tym adresem OnionShare oraz kluczem prywatnym może przesyłać pliki na Twój komputer za pomocą przeglądarki Tor Browser: ",
- "gui_url_label_persistent": "Ten udział nie zatrzyma się automatycznie.
Każdy kolejny udział ponownie użyje tego adresu. (Aby użyć adresów jednorazowych, wyłącz w ustawieniach „Użyj stałego adresu”.)",
+ "gui_url_label_persistent": "Ten udział nie zatrzyma się automatycznie.
Każdy kolejny udział ponownie użyje tego adresu. (Aby używać adresów jednorazowych, wyłącz opcję „Zawsze otwieraj tę kartę po uruchomieniu OnionShare” w ustawieniach).",
"gui_url_label_stay_open": "Ten udział nie zostanie automatycznie zatrzymany.",
"gui_url_label_onetime": "Ten udział zatrzyma się po pierwszym zakończeniu.",
- "gui_url_label_onetime_and_persistent": "Ten udział nie zatrzyma się automatycznie.
Każdy kolejny udział ponownie wykorzysta adres. (Aby użyć adresów jednorazowych, wyłącz w ustawieniach „Użyj stałego adresu”.)",
- "gui_status_indicator_share_stopped": "Gotowy do udostępniania",
+ "gui_url_label_onetime_and_persistent": "Ten udział nie zatrzyma się automatycznie.
Każdy kolejny udział ponownie wykorzysta adres. (Aby używać adresów jednorazowych, wyłącz opcję „Zawsze otwieraj tę kartę po uruchomieniu OnionShare” w ustawieniach).",
+ "gui_status_indicator_share_stopped": "Zatrzymano",
"gui_status_indicator_share_working": "Rozpoczynanie…",
"gui_status_indicator_share_started": "Udostępnianie",
- "gui_status_indicator_receive_stopped": "Gotowy do odbioru",
+ "gui_status_indicator_receive_stopped": "Zatrzymano",
"gui_status_indicator_receive_working": "Rozpoczynanie…",
"gui_status_indicator_receive_started": "Odbieram",
"gui_file_info": "{} pliki/ów, {}",
@@ -164,7 +164,7 @@
"mode_settings_autostop_timer_checkbox": "Zatrzymaj usługę .onion w zaplanowanym czasie",
"mode_settings_autostart_timer_checkbox": "Uruchom usługę cebulową w zaplanowanym czasie",
"mode_settings_public_checkbox": "To jest publiczny serwis OnionShare (wyłącza klucz prywatny)",
- "mode_settings_persistent_checkbox": "Zawsze otwieraj tę kartę po uruchomieniu OnionShare",
+ "mode_settings_persistent_checkbox": "Zawsze otwieraj tę kartę po uruchomieniu OnionShare (adres onion pozostanie taki sam)",
"mode_settings_advanced_toggle_hide": "Ukryj ustawienia zaawansowane",
"mode_settings_advanced_toggle_show": "Pokaż ustawienia zaawansowane",
"gui_quit_warning_cancel": "Anuluj",
@@ -190,7 +190,7 @@
"gui_settings_theme_auto": "Automatyczny",
"gui_settings_theme_label": "Motyw",
"gui_status_indicator_chat_started": "Czatuje",
- "gui_status_indicator_chat_stopped": "Gotowy do rozmowy",
+ "gui_status_indicator_chat_stopped": "Zatrzymano",
"gui_client_auth_instructions": "Następnie wyślij klucz prywatny, by umożliwić dostęp do Twojego serwisu OnionShare:",
"gui_url_instructions_public_mode": "Wyślij poniższy adres OnionShare:",
"gui_url_instructions": "Najpierw wyślij poniższy adres OnionShare:",
@@ -254,5 +254,8 @@
"gui_general_settings_window_title": "Ogólne",
"waitress_web_server_error": "Wystąpił problem z uruchomieniem serwera WWW",
"gui_close_tab_warning_chat_description": "Zamknąć kartę hostującą serwer czatu?",
- "gui_chat_mode_explainer": "Tryb czatu umożliwia interaktywną rozmowę z innymi osobami w Tor Browser.
Historia czatów nie jest przechowywana w OnionShare. Historia czatów zniknie, gdy zamkniesz Tor Browser."
+ "gui_chat_mode_explainer": "Tryb czatu umożliwia interaktywną rozmowę z innymi osobami w Tor Browser.
Historia czatów nie jest przechowywana w OnionShare. Historia czatów zniknie, gdy zamkniesz Tor Browser.",
+ "mode_settings_persistent_autostart_on_launch_checkbox": "Automatycznie uruchom tę usługę onion podczas uruchamiania OnionShare",
+ "gui_settings_license_label": "OnionShare jest licencjonowany na podstawie licencji GPL v3. Licencje stron trzecich można przeglądać tutaj: https://github.com/onionshare/onionshare/tree/main/licenses",
+ "error_generic": "Wystąpił nieoczekiwany błąd w OnionShare:\n{}"
}
diff --git a/desktop/onionshare/resources/locale/pt_BR.json b/desktop/onionshare/resources/locale/pt_BR.json
index c4b9bdd4..e9969314 100644
--- a/desktop/onionshare/resources/locale/pt_BR.json
+++ b/desktop/onionshare/resources/locale/pt_BR.json
@@ -76,10 +76,10 @@
"gui_url_label_stay_open": "Este compartilhamento não será encerrado automaticamente.",
"gui_url_label_onetime": "Este compartilhamento será encerrado após completar uma vez.",
"gui_url_label_onetime_and_persistent": "Este compartilhamento não será encerrado automaticamente.
Todos os compartilhamentos posteriores reutilizarão este endereço. (Para usar endereços únicos a cada compartilhamento, desative a opção \"Usar o mesmo endereço\" nas configurações.)",
- "gui_status_indicator_share_stopped": "Pronto para compartilhar",
+ "gui_status_indicator_share_stopped": "Encerrado",
"gui_status_indicator_share_working": "Começando…",
"gui_status_indicator_share_started": "Compartilhando",
- "gui_status_indicator_receive_stopped": "Pronto para receber",
+ "gui_status_indicator_receive_stopped": "Encerrado",
"gui_status_indicator_receive_working": "Começando…",
"gui_status_indicator_receive_started": "Recebendo",
"gui_file_info": "{} arquivos, {}",
@@ -186,7 +186,7 @@
"gui_status_indicator_chat_started": "Conversando",
"gui_status_indicator_chat_scheduled": "Programando…",
"gui_status_indicator_chat_working": "Começando…",
- "gui_status_indicator_chat_stopped": "Pronto para conversar",
+ "gui_status_indicator_chat_stopped": "Encerrado",
"gui_share_url_public_description": "Qualquer pessoa com este endereço OnionShare pode baixar seus arquivos usando o Navegador Tor: ",
"gui_server_doesnt_support_stealth": "Desculpe, esta versão do Tor não suporta (autenticação de cliente) furtiva. Por favor, tente uma versão mais recente do Tor ou utilize o modo 'público' se não houver a necessidade de ter privacidade.",
"gui_please_wait_no_button": "Iniciando…",
diff --git a/desktop/onionshare/resources/locale/pt_PT.json b/desktop/onionshare/resources/locale/pt_PT.json
index 08470d0c..b5facc63 100644
--- a/desktop/onionshare/resources/locale/pt_PT.json
+++ b/desktop/onionshare/resources/locale/pt_PT.json
@@ -76,10 +76,10 @@
"gui_url_label_stay_open": "Esta partilha não irá parar automaticamente.",
"gui_url_label_onetime": "Esta partilha irá parar após ser descarregada uma vez com sucesso.",
"gui_url_label_onetime_and_persistent": "Esta partilha não vai ser encerrada automaticamente.
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.)",
- "gui_status_indicator_share_stopped": "Pronto para partilhar",
+ "gui_status_indicator_share_stopped": "Parado",
"gui_status_indicator_share_working": "A começar…",
"gui_status_indicator_share_started": "A partilhar",
- "gui_status_indicator_receive_stopped": "Pronto para receber",
+ "gui_status_indicator_receive_stopped": "Parado",
"gui_status_indicator_receive_working": "A começar…",
"gui_status_indicator_receive_started": "A receber",
"gui_file_info": "{} ficheiros, {}",
@@ -197,7 +197,7 @@
"gui_status_indicator_chat_started": "A conversar",
"gui_status_indicator_chat_scheduled": "Agendado…",
"gui_status_indicator_chat_working": "A iniciar…",
- "gui_status_indicator_chat_stopped": "Pronto para conversar",
+ "gui_status_indicator_chat_stopped": "Parado",
"gui_client_auth_instructions": "Em seguida, envie a chave privada para permitir o acesso ao seu serviço OnionShare:",
"gui_url_instructions_public_mode": "Envie o seguinte endereço OnionShare:",
"gui_url_instructions": "Primeiro, envie o seguinte endereço OnionShare:",
diff --git a/desktop/onionshare/resources/locale/ro.json b/desktop/onionshare/resources/locale/ro.json
index 383d43ba..d7494696 100644
--- a/desktop/onionshare/resources/locale/ro.json
+++ b/desktop/onionshare/resources/locale/ro.json
@@ -76,10 +76,10 @@
"gui_url_label_stay_open": "Această partajare nu se va opri automat.",
"gui_url_label_onetime": "Această partajare se va opri după prima finalizare.",
"gui_url_label_onetime_and_persistent": "Această partajare nu se va opri automat.
Fiecare acțiune ulterioară va reutiliza adresa. (Pentru a utiliza adrese unice, dezactivați „Utilizați adresa persistentă” din setări.)",
- "gui_status_indicator_share_stopped": "Pregătit pentru partajare",
+ "gui_status_indicator_share_stopped": "Oprit",
"gui_status_indicator_share_working": "Pornire…",
"gui_status_indicator_share_started": "Partajare",
- "gui_status_indicator_receive_stopped": "Pregătit pentru primire",
+ "gui_status_indicator_receive_stopped": "Oprit",
"gui_status_indicator_receive_working": "Pornire…",
"gui_status_indicator_receive_started": "Primire",
"gui_file_info": "{} fișiere, {}",
@@ -168,5 +168,6 @@
"moat_captcha_reload": "Reîncarcă",
"gui_autoconnect_start": "Conectare la Tor",
"gui_general_settings_window_title": "General",
- "gui_share_url_public_description": "Oricine are această adresă OnionShare poate descărca fișierele dvs. folosind Tor Browser: "
+ "gui_share_url_public_description": "Oricine are această adresă OnionShare poate descărca fișierele dvs. folosind Tor Browser: ",
+ "gui_status_indicator_chat_stopped": "Oprit"
}
diff --git a/desktop/onionshare/resources/locale/ru.json b/desktop/onionshare/resources/locale/ru.json
index d75df8d4..acbeb994 100644
--- a/desktop/onionshare/resources/locale/ru.json
+++ b/desktop/onionshare/resources/locale/ru.json
@@ -79,9 +79,9 @@
"gui_url_label_stay_open": "Эта отправка не будет остановлена автоматически.",
"gui_url_label_onetime": "Эта отправка будет завершена автоматически после первой загрузки.",
"gui_url_label_onetime_and_persistent": "Эта отправка не будет завершена автоматически.
Каждая последующая отправка будет повторно использовать этот адрес. (Чтобы использовать одноразовый адрес, отключите опцию \"Использовать устаревший адрес\" в настройках.)",
- "gui_status_indicator_share_stopped": "Данные готовы к отправке",
+ "gui_status_indicator_share_stopped": "Остановлено",
"gui_status_indicator_share_working": "Запуск…",
- "gui_status_indicator_receive_stopped": "Данные готовы к получению",
+ "gui_status_indicator_receive_stopped": "Остановлено",
"gui_status_indicator_receive_working": "Запуск…",
"gui_file_info": "{} файлы, {}",
"gui_file_info_single": "{} файл, {}",
@@ -186,7 +186,7 @@
"gui_status_indicator_chat_started": "Чат активен",
"gui_status_indicator_chat_scheduled": "По расписанию…",
"gui_status_indicator_chat_working": "Запуск…",
- "gui_status_indicator_chat_stopped": "Готов начать чат",
+ "gui_status_indicator_chat_stopped": "Остановлено",
"gui_settings_theme_dark": "Тёмная",
"gui_settings_theme_light": "Светлая",
"gui_settings_theme_auto": "Авто",
diff --git a/desktop/onionshare/resources/locale/si.json b/desktop/onionshare/resources/locale/si.json
index 1c0355a4..7efeb699 100644
--- a/desktop/onionshare/resources/locale/si.json
+++ b/desktop/onionshare/resources/locale/si.json
@@ -28,5 +28,8 @@
"gui_tab_name_website": "වෙබ් අඩවිය",
"gui_tab_name_chat": "කතාබහ",
"moat_captcha_submit": "Submit",
- "gui_close_tab_warning_close": "හරි"
+ "gui_close_tab_warning_close": "හරි",
+ "gui_status_indicator_receive_stopped": "නවත්වා ඇත",
+ "gui_status_indicator_chat_stopped": "නවත්වා ඇත",
+ "gui_status_indicator_share_stopped": "නවත්වා ඇත"
}
diff --git a/desktop/onionshare/resources/locale/sk.json b/desktop/onionshare/resources/locale/sk.json
index 33bcd27b..3a4d16b4 100644
--- a/desktop/onionshare/resources/locale/sk.json
+++ b/desktop/onionshare/resources/locale/sk.json
@@ -15,8 +15,8 @@
"gui_share_start_server": "Spustiť zdieľanie",
"gui_share_stop_server": "Zastaviť zdieľanie",
"gui_share_stop_server_autostop_timer": "Zastaviť zdieľanie ({})",
- "gui_chat_start_server": "Spustiť četový server",
- "gui_chat_stop_server": "Zastaviť četový server",
+ "gui_chat_start_server": "Spustiť diskusný server",
+ "gui_chat_stop_server": "Zastaviť diskusný server",
"gui_stop_server_autostop_timer_tooltip": "Časovač automatického zastavenia končí o {}",
"gui_start_server_autostart_timer_tooltip": "Časovač automatického spustenia končí o {}",
"gui_receive_start_server": "Spustiť režim prijímania",
@@ -25,7 +25,7 @@
"gui_receive_flatpak_data_dir": "Pretože ste nainštalovali OnionShare pomocou Flatpak, musíte uložiť súbory do priečinka v ~/OnionShare.",
"gui_copy_url": "Kopírovať adresu",
"gui_canceled": "Zrušené",
- "gui_copied_url_title": "Skopírovaná OnionShare adresa",
+ "gui_copied_url_title": "Adresa OnionShare skopírovaná",
"gui_copied_url": "OnionShare adresa bola skopírovaná do schránky",
"gui_show_qr_code": "Zobraziť QR kód",
"gui_qr_code_dialog_title": "OnionShare QR kód",
@@ -39,24 +39,24 @@
"gui_settings_autoupdate_timestamp_never": "Nikdy",
"gui_settings_autoupdate_check_button": "Skontrolovať novú verziu",
"gui_settings_connection_type_label": "Ako by sa mal OnionShare pripojiť k Tor?",
- "gui_settings_connection_type_bundled_option": "Použite verziu Tor zabudovanú do OnionShare",
+ "gui_settings_connection_type_bundled_option": "Použiť verziu Tor zabudovanú do OnionShare",
"gui_settings_connection_type_automatic_option": "Pokúsiť sa o automatickú konfiguráciu s prehliadačom Tor",
- "gui_settings_connection_type_control_port_option": "Pripojiť pomocou riadiaceho port",
+ "gui_settings_connection_type_control_port_option": "Pripojiť pomocou riadiaceho portu",
"gui_settings_connection_type_socket_file_option": "Pripojiť pomocou socket súboru",
"gui_settings_connection_type_test_button": "Test pripojenia k Tor",
"gui_settings_control_port_label": "Riadiaci port",
"gui_settings_socket_file_label": "Socket súbor",
"gui_settings_socks_label": "SOCKS port",
- "gui_settings_authenticate_no_auth_option": "Žiadna autentifikácia alebo autentifikácia pomocou cookies",
+ "gui_settings_authenticate_no_auth_option": "Žiadne overenie alebo overenie pomocou súborov cookie",
"gui_settings_authenticate_password_option": "Heslo",
"gui_settings_password_label": "Heslo",
- "gui_settings_tor_bridges": "Tor bridge podpora",
- "gui_settings_meek_lite_expensive_warning": "Varovanie: Mosty meek_lite sú pre Tor Projekt veľmi nákladné.
Používajte ich iba v prípade, že sa nemôžete pripojiť k Tor priamo, pomocou transportov obfs4 alebo iných bežných mostov.",
- "gui_settings_tor_bridges_invalid": "Žiadny z mostov, ktoré ste pridali, nefunguje.\nDvakrát ich skontrolujte alebo pridajte ďalšie.",
+ "gui_settings_tor_bridges": "Pripojiť sa pomocou premostenia Tor?",
+ "gui_settings_meek_lite_expensive_warning": "Upozornenie: Prevádzka premostení meek-azure je pre projekt Tor veľmi nákladná.
Používajte ich len vtedy, ak sa nemôžete pripojiť k Toru priamo, cez obfs4 transporty alebo iné cez bežné premostenia.",
+ "gui_settings_tor_bridges_invalid": "Ani jeden z premostení, ktoré ste pridali, nefunguje. Prekontrolujte ich alebo pridajte iné.",
"gui_settings_button_save": "Uložiť",
"gui_settings_button_cancel": "Zrušiť",
"gui_settings_button_help": "Pomoc",
- "settings_test_success": "Pripojený k ovládaču Tor.\n\nTor verzia : {}\nPodporuje pominuteľné onion služby: {}.\nPodporuje overenie klienta: {}.\nPodporuje adresy .onion ďalšej generácie: {}.",
+ "settings_test_success": "Pripojený k ovládaču Tor.\n\nTor verzia : {}\nPodporuje dočasné onion služby: {}.\nPodporuje overenie klienta: {}.\nPodporuje adresy .onion ďalšej generácie: {}.",
"connecting_to_tor": "Pripája sa k sieti Tor",
"update_available": "Nová verzia OnionShare. Kliknite sem aby ste ju stiahli.
Používate {} a najnovšia je {}.",
"update_error_invalid_latest_version": "Nepodarilo sa skontrolovať novú verziu: Web OnionShare hovorí, že najnovšia verzia je na nerozpoznateľná '{}'…",
@@ -79,24 +79,24 @@
"gui_url_label_stay_open": "Toto zdieľanie sa automaticky nezastaví.",
"gui_url_label_onetime": "Toto zdieľanie sa zastaví po prvom dokončení.",
"gui_url_label_onetime_and_persistent": "Toto zdieľanie sa automaticky nezastaví.
Každé ďalšie zdieľanie znova použije adresu. (Ak chcete použiť jednorazové adresy, vypnite v nastaveniach možnosť „Používať trvalú adresu“.)",
- "gui_status_indicator_share_stopped": "Pripravené na zdieľanie",
- "gui_status_indicator_share_working": "Začína…",
+ "gui_status_indicator_share_stopped": "Zastavený",
+ "gui_status_indicator_share_working": "Spúšťa sa…",
"gui_status_indicator_share_scheduled": "Naplánované…",
- "gui_status_indicator_share_started": "Zdieľanie",
- "gui_status_indicator_receive_stopped": "Pripravené na príjem",
- "gui_status_indicator_receive_working": "Začína…",
+ "gui_status_indicator_share_started": "Zdieľa sa",
+ "gui_status_indicator_receive_stopped": "Zastavený",
+ "gui_status_indicator_receive_working": "Spúšťa sa…",
"gui_status_indicator_receive_scheduled": "Naplánované…",
- "gui_status_indicator_receive_started": "Prijímanie",
+ "gui_status_indicator_receive_started": "Prijíma sa",
"gui_file_info": "{} súbory, {}",
"gui_file_info_single": "{} súbor, {}",
"history_in_progress_tooltip": "{} prebieha",
"history_completed_tooltip": "{} dokončené",
"history_requests_tooltip": "{} webové požiadavky",
"error_cannot_create_data_dir": "Nepodarilo sa vytvoriť dátový priečinok OnionShare: {}",
- "gui_receive_mode_warning": "Režim prijímania umožňuje ľuďom nahrávať súbory do počítača.
Niektoré súbory môžu potenciálne prevziať kontrolu nad počítačom, ak ich otvoríte. Otvárajte veci len od ľudí, ktorých dôverujete, alebo ak viete, čo robíte.",
+ "gui_receive_mode_warning": "Režim prijímania umožňuje ľuďom odosielať súbory do vášho počítača.
Niektoré súbory môžu potenciálne prevziať kontrolu nad vaším počítačom, ak ich otvoríte. Otvárajte iba súbory od ľudí, ktorým dôverujete, alebo ak viete, čo robíte.",
"gui_open_folder_error": "Nepodarilo sa otvoriť priečinok s xdg-open. Súbor je tu: {}",
- "gui_settings_language_label": "Preferovaný jazyk",
- "gui_settings_language_changed_notice": "Reštartujte OnionShare pre nový jazyk, ktorý sa má použiť.",
+ "gui_settings_language_label": "Jazyk",
+ "gui_settings_language_changed_notice": "Reštartujte OnionShare, aby sa zmenil na nový jazyk.",
"systray_menu_exit": "Ukončiť",
"systray_page_loaded_title": "Stránka bola načítaná",
"systray_page_loaded_message": "Adresa OnionShare načítaná",
@@ -115,10 +115,10 @@
"gui_all_modes_progress_starting": "{0:s}, %p% (výpočet)",
"gui_all_modes_progress_eta": "{0:s}, ETA: {1:s}, %p%",
"gui_share_mode_no_files": "Zatiaľ neboli odoslané žiadne súbory",
- "gui_share_mode_autostop_timer_waiting": "Čaká sa na dokončenie odosielania",
+ "gui_share_mode_autostop_timer_waiting": "Ukončovanie odosielania…",
"gui_website_mode_no_files": "Zatiaľ nie je zdieľaný žiadny web",
"gui_receive_mode_no_files": "Zatiaľ neboli prijaté žiadne súbory",
- "gui_receive_mode_autostop_timer_waiting": "Čakanie na dokončenie prijímania",
+ "gui_receive_mode_autostop_timer_waiting": "Ukončovanie prijímania…",
"days_first_letter": "d",
"hours_first_letter": "h",
"minutes_first_letter": "m",
@@ -128,33 +128,33 @@
"gui_new_tab_share_button": "Zdieľať súbory",
"gui_new_tab_receive_button": "Prijímanie súborov",
"gui_new_tab_website_button": "Hosťovanie webu",
- "gui_new_tab_chat_button": "Četujte anonymne",
+ "gui_new_tab_chat_button": "Diskutujte anonymne",
"gui_main_page_share_button": "Spustiť zdieľanie",
"gui_main_page_receive_button": "Spustiť prijímanie",
"gui_main_page_website_button": "Spustiť hosťovanie",
- "gui_main_page_chat_button": "Začať četovať",
+ "gui_main_page_chat_button": "Začať diskusiu",
"gui_tab_name_share": "Zdieľať",
- "gui_tab_name_receive": "Príjem",
- "gui_tab_name_website": "Web",
- "gui_tab_name_chat": "Čet",
- "gui_close_tab_warning_title": "Ste si istí?",
- "gui_close_tab_warning_persistent_description": "Táto karta je trvalá. Ak ju zatvoríte, prídete o onion adresu, ktorú používa. Naozaj ju chcete zavrieť?",
- "gui_close_tab_warning_share_description": "Ste v procese odosielania súborov. Naozaj chcete zavrieť túto kartu?",
- "gui_close_tab_warning_receive_description": "Ste v procese prijímania súborov. Naozaj chcete zavrieť túto kartu?",
- "gui_close_tab_warning_website_description": "Aktívne hosťujete webovú lokalitu. Naozaj chcete zavrieť túto kartu?",
+ "gui_tab_name_receive": "Prijať",
+ "gui_tab_name_website": "Webstránka",
+ "gui_tab_name_chat": "Diskusia",
+ "gui_close_tab_warning_title": "Zatvoriť kartu?",
+ "gui_close_tab_warning_persistent_description": "Zavrieť trvalú kartu a stratiť onion adresu, ktorú používa?",
+ "gui_close_tab_warning_share_description": "Zatvoriť kartu, ktorá odosiela súbory?",
+ "gui_close_tab_warning_receive_description": "Zatvoriť kartu, ktorá prijíma súbory?",
+ "gui_close_tab_warning_website_description": "Zatvoriť kartu, ktorá je hostiteľom webovej stránky?",
"gui_close_tab_warning_close": "OK",
"gui_close_tab_warning_cancel": "Zrušiť",
- "gui_quit_warning_title": "Ste si istí?",
- "gui_quit_warning_description": "Zdieľanie je aktívne na niektorých kartách. Ak skončíte, všetky karty sa zavrú. Naozaj chcete skončiť?",
+ "gui_quit_warning_title": "Ukončiť OnionShare?",
+ "gui_quit_warning_description": "Ukončiť a zatvoriť všetky karty, aj keď je zdieľanie v niektorých z nich aktívne?",
"gui_quit_warning_quit": "Ukončiť",
"gui_quit_warning_cancel": "Zrušiť",
"mode_settings_advanced_toggle_show": "Zobraziť rozšírené nastavenia",
"mode_settings_advanced_toggle_hide": "Skryť rozšírené nastavenia",
- "mode_settings_persistent_checkbox": "Uložiť túto kartu a automaticky ju otvoriť, keď otvorím OnionShare",
- "mode_settings_public_checkbox": "Nepoužiť heslo",
+ "mode_settings_persistent_checkbox": "Vždy otvoriť túto kartu pri spustení služby OnionShare (adresa onion zostane rovnaká)",
+ "mode_settings_public_checkbox": "Toto je verejná služba OnionShare ( vypne súkromný kľúč)",
"mode_settings_autostart_timer_checkbox": "Spustiť onion službu v plánovanom čase",
"mode_settings_autostop_timer_checkbox": "Zastaviť onion službu v plánovanom čase",
- "mode_settings_share_autostop_sharing_checkbox": "Po odoslaní súborov zastaviť zdieľanie (zrušením začiarknutia povolíte sťahovanie jednotlivých súborov)",
+ "mode_settings_share_autostop_sharing_checkbox": "Po odoslaní súborov zastaviť zdieľanie (zrušením označenia povolíte sťahovanie jednotlivých súborov)",
"mode_settings_receive_data_dir_label": "Uložiť súbory do",
"mode_settings_receive_data_dir_browse_button": "Prechádzať",
"mode_settings_website_disable_csp_checkbox": "Neposielať hlavičku politiky zabezpečenia obsahu (umožňuje vašej webovej lokalite používať zdroje tretích strán)",
@@ -164,40 +164,96 @@
"gui_all_modes_transfer_canceled": "Zrušené {}",
"error_port_not_available": "Port OnionShare nie je k dispozícii",
"gui_rendezvous_cleanup_quit_early": "Ukončiť predčasne",
- "gui_rendezvous_cleanup": "Čaká sa na zatvorenie obvodov Tor, aby ste sa uistili, že sa súbory úspešne preniesli.\n\nMôže to trvať niekoľko minút.",
+ "gui_rendezvous_cleanup": "Pre istotu sa čaká na uzavretie okruhov Tor, aby sa vaše súbory preniesli.\n\nTo môže trvať niekoľko minút.",
"settings_error_bundled_tor_broken": "OnionShare sa nemohol pripojiť k Tor:\n{}",
"settings_error_bundled_tor_timeout": "Pripojenie k Tor trvá príliš dlho. Možno nie ste pripojení na internet alebo máte nepresné systémové hodiny?",
"settings_error_bundled_tor_not_supported": "Použitie verzie Tor, ktorá je dodávaná s OnionShare nefunguje v režime vývojára v systéme Windows alebo macOS.",
"settings_error_unreadable_cookie_file": "Pripojené k ovládaču Tor, ale heslo môže byť nesprávne, alebo váš používateľ nemá povolenie na čítanie súboru cookie.",
- "settings_error_missing_password": "Pripojené k ovládaču Tor, ale je potrebné heslo na autentifikáciu.",
- "settings_error_auth": "Pripojené k {}:{}, ale nemôže sa autentifikovať. Možno to nie je ovládač Tor?",
+ "settings_error_missing_password": "Pripojené k ovládaču Tor, ale je potrebné heslo na overenie.",
+ "settings_error_auth": "Pripojené k {}:{}, ale nedá sa overiť. Možno to nie je ovládač Tor?",
"settings_error_socket_file": "Nedá sa pripojiť k ovládaču Tor pomocou socket súboru {}.",
"settings_error_socket_port": "Nedá sa pripojiť k ovládaču Tor na {}:{}.",
"settings_error_automatic": "Nepodarilo sa pripojiť k ovládaču Tor. Je prehliadač Tor (dostupný na torproject.org) spustený na pozadí?",
"settings_error_unknown": "Nemôžem sa pripojiť k ovládaču Tor, pretože vaše nastavenia nedávajú zmysel.",
- "gui_chat_url_description": "Ktokoľvek s touto adresou OnionShare sa môže pripojiť k tejto miestnosti chatu pomocou Tor prehliadača: ",
+ "gui_chat_url_description": "Ktokoľvek s touto adresou OnionShare sa môže pripojiť k tejto diskusnej miestnosti pomocou prehliadača Tor Browser: ",
"gui_settings_theme_label": "Téma",
- "gui_settings_theme_auto": "Auto",
- "gui_settings_theme_light": "Světlo",
- "gui_please_wait_no_button": "Začína…",
- "gui_share_url_public_description": "Ktokoľvek s touto adresou OnionShare si môže stiahnuť vaše súbory pomocou Tor Browser: ",
- "gui_website_url_public_description": "Ktokoľvek s touto adresou OnionShare môže navštíviť váš web pomocou Tor Browser: ",
+ "gui_settings_theme_auto": "Automatická",
+ "gui_settings_theme_light": "Svetlá",
+ "gui_please_wait_no_button": "Spúšťa sa…",
+ "gui_share_url_public_description": "Ktokoľvek s touto adresou OnionShare si môže stiahnuť vaše súbory pomocou prehliadačaTor Browser: ",
+ "gui_website_url_public_description": "Ktokoľvek s touto adresou OnionShare môže navštíviť vašu webstránku pomocou prehliadača Tor Browser: ",
"gui_settings_bridge_custom_placeholder": "napíšte adresu:port (jedna na riadok)",
- "moat_captcha_label": "Vyrieš CAPTCHA na vyžiadanie premostenia.",
+ "moat_captcha_label": "Vyriešte CAPTCHA a požiadajte o premostenie.",
"moat_captcha_submit": "Odoslať",
- "gui_general_settings_window_title": "Obecné",
+ "gui_general_settings_window_title": "Všeobecné",
"gui_status_indicator_chat_scheduled": "Naplánované…",
- "moat_captcha_placeholder": "Zadajte znaky z obrázka...",
+ "moat_captcha_placeholder": "Zadajte znaky z obrázka",
"moat_captcha_reload": "Znovu načítať",
- "gui_autoconnect_start": "Pripojiť k Tor",
- "moat_solution_empty_error": "Zadajte znaky z obrázka...",
- "gui_receive_url_public_description": "Ktokoľvek s touto adresou OnionShare môže nahrať súbory do vášho počítača pomocou Tor Browser: ",
- "gui_chat_url_public_description": "Ktokoľvek s touto adresou OnionShare sa môže pripojiť k tejto miestnosti chatu pomocou Tor prehliadača: ",
- "gui_reveal": "Odkryť",
+ "gui_autoconnect_start": "Pripojiť sa k Tor",
+ "moat_solution_empty_error": "Zadajte znaky z obrázka",
+ "gui_receive_url_public_description": "Ktokoľvek s touto adresou OnionShare môže nahrať súbory do vášho počítača pomocou prehliadača Tor Browser: ",
+ "gui_chat_url_public_description": "Ktokoľvek s touto adresou OnionShare sa môže pripojiť k tejto diskusnej miestnosti pomocou prehliadača Tor Browser: ",
+ "gui_reveal": "Odhaliť",
"gui_settings_theme_dark": "Tmavá",
"gui_hide": "Skryť",
- "gui_settings_bridge_none_radio_option": "Nepoužívať Tor bridge",
+ "gui_settings_bridge_none_radio_option": "Nepoužívať premostenia",
"gui_settings_bridge_moat_radio_option": "Vyžiadať premostenie od torproject.org",
- "gui_status_indicator_chat_working": "Začína…",
- "gui_settings_bridge_use_checkbox": "Použiť most"
+ "gui_status_indicator_chat_working": "Spúšťa sa…",
+ "gui_settings_bridge_use_checkbox": "Použiť premostenie",
+ "gui_autoconnect_failed_to_connect_to_tor": "Nepodarilo sa pripojiť k sieti Tor",
+ "gui_copy_client_auth": "Kopírovať súkromný kľúč",
+ "gui_copied_client_auth_title": "Súkromný kľúč skopírovaný",
+ "gui_qr_label_auth_string_title": "Súkromný kľúč",
+ "gui_qr_label_url_title": "Adresa OnionShare",
+ "gui_autoconnect_configure": "Nastavenia siete",
+ "gui_autoconnect_trying_to_connect_to_tor": "Pripájanie k sieti Tor…",
+ "gui_autoconnect_connection_error_msg": "Uistite sa, že ste pripojení na internet.",
+ "gui_copied_client_auth": "Súkromný kľúč bol skopírovaný do schránky",
+ "gui_tor_settings_window_title": "Nastavenia Tor",
+ "gui_enable_autoconnect_checkbox": "Automaticky sa pripájať k sieti Tor",
+ "gui_status_indicator_chat_started": "Prebieha rozhovor",
+ "mode_settings_receive_webhook_url_checkbox": "Použiť webový háčik s upozornením",
+ "gui_autoconnect_bridge_detect_automatic": "Určiť moju krajinu z mojej IP adresy pre nastavenia premostenia",
+ "gui_autoconnect_circumventing_censorship_requesting_bridges": "Žiadosť o premostenie z API rozhrania Tor na obchádzanie cenzúry…",
+ "gui_autoconnect_could_not_connect_to_tor_api": "Nepodarilo sa pripojiť k rozhraniu Tor API. Pred ďalším pokusom sa uistite, že ste pripojení k internetu.",
+ "gui_status_indicator_chat_stopped": "Zastavený",
+ "gui_chat_mode_explainer": "Režim diskusie umožňuje interaktívny rozhovor s ostatnými v prehliadači Tor.
História diskusie sa v službe OnionShare neukladá. História diskusie zmizne po zatvorení prehliadača Tor Browser.",
+ "mode_settings_receive_disable_files_checkbox": "Zakázať nahrávanie súborov",
+ "waitress_web_server_error": "Nastal problém so spustením webového servera",
+ "moat_captcha_error": "Nesprávne riešenie. Skúste to prosím znova.",
+ "gui_autoconnect_bridge_detect_manual": "Manuálne vybrať moju krajinu pre nastavenia premostenia",
+ "gui_settings_bridge_radio_builtin": "Vybrať zabudované premostenie",
+ "gui_settings_controller_extras_label": "Nastavenia Tor",
+ "gui_settings_version_label": "Používate službu OnionShare {}",
+ "gui_autoconnect_circumventing_censorship_starting_meek": "Vytváranie premostenia meek pre službu domain-fronting…",
+ "gui_autoconnect_description": "OnionShare sa spolieha na sieť Tor prevádzkovanú dobrovoľníkmi.",
+ "gui_color_mode_changed_notice": "Reštartujte OnionShare, aby ste videli nové farby.",
+ "gui_url_instructions_public_mode": "Pošlite adresu OnionShare uvedenú nižšie:",
+ "gui_autoconnect_bridge_setting_options": "Nastavenie premostenia",
+ "gui_settings_tor_bridges_label": "Premostenia pomáhajú vašej dátovej prevádzke vstúpiť do siete Tor, ak je prístup k sieti Tor zablokovaný. V závislosti od toho, odkiaľ sa pripájate, môže jedno premostenie fungovať lepšie ako iné.",
+ "mode_settings_title_label": "Vlastný názov",
+ "mode_settings_receive_disable_text_checkbox": "Zakázať odosielanie textu",
+ "history_receive_read_message_button": "Prečítať správu",
+ "error_tor_protocol_error": "V systéme Tor došlo k chybe: {}",
+ "gui_server_doesnt_support_stealth": "Je nám ľúto, ale táto verzia Tor nepodporuje funkciu ukrytia (overovanie klienta). Skúste to, prosím, s novšou verziou Toru alebo použite \"verejný\" režim, ak nemusí byť súkromný.",
+ "gui_url_instructions": "Najprv pošlite adresu OnionShare uvedenú nižšie:",
+ "gui_dragdrop_sandbox_flatpak": "Aby bolo pieskovisko Flatpak bezpečnejšie, nie je podporovaná funkcia drag and drop. Na výber súborov namiesto toho použite tlačidlá „Pridať súbory“ a „Pridať priečinok“.",
+ "gui_client_auth_instructions": "Potom odošlite súkromný kľúč, ktorý umožní prístup k vašej službe OnionShare:",
+ "gui_settings_bridge_moat_button": "Požiadať o nové premostenie",
+ "gui_settings_bridge_custom_radio_option": "Poskytnite premostenie, o ktorom ste sa dozvedeli z dôveryhodného zdroja",
+ "gui_settings_moat_bridges_invalid": "Zatiaľ ste si nevyžiadali premostenie z torproject.org.",
+ "gui_settings_stop_active_tabs_label": "Na niektorých kartách sú spustené služby.\nAk chcete zmeniť nastavenia Tor, musíte zastaviť všetky služby.",
+ "gui_settings_help_label": "Potrebujete pomoc? Pozrite si stránku docs.onionshare.org",
+ "mode_settings_website_custom_csp_checkbox": "Odoslať vlastné záhlavie zásad zabezpečenia obsahu",
+ "moat_contact_label": "Kontaktovanie BridgeDB…",
+ "gui_autoconnect_bridge_description": "Ak je vaše internetové pripojenie cenzurované, možno sa budete môcť pripojiť pomocou premostenia.",
+ "gui_autoconnect_no_bridge": "Skúste to znova bez premostenia",
+ "gui_autoconnect_try_again_without_a_bridge": "Skúste to znova bez premostenia",
+ "gui_autoconnect_circumventing_censorship": "Odstraňovanie problémov s pripojením…",
+ "gui_autoconnect_circumventing_censorship_starting_circumvention": "Obchádzanie cenzúry…",
+ "gui_autoconnect_circumventing_censorship_got_bridges": "Premostenie vytvorené. Opätovné pripájanie k Tor…",
+ "gui_close_tab_warning_chat_description": "Zatvoriť kartu, ktorá je hostiteľom diskusného servera?",
+ "moat_bridgedb_error": "Nepodarilo sa kontaktovať BridgeDB.",
+ "mode_tor_not_connected_label": "Služba OnionShare nie je pripojená k sieti Tor",
+ "mode_settings_persistent_autostart_on_launch_checkbox": "Automaticky spustiť túto službu Onion pri spustení služby OnionShare"
}
diff --git a/desktop/onionshare/resources/locale/sl.json b/desktop/onionshare/resources/locale/sl.json
index 7cc7586e..fbbd063d 100644
--- a/desktop/onionshare/resources/locale/sl.json
+++ b/desktop/onionshare/resources/locale/sl.json
@@ -58,5 +58,8 @@
"moat_captcha_reload": "Ponovno naloži",
"gui_status_indicator_share_started": "Deljenje",
"gui_status_indicator_receive_working": "Začetek …",
- "gui_status_indicator_chat_working": "Začetek …"
+ "gui_status_indicator_chat_working": "Začetek …",
+ "gui_status_indicator_receive_stopped": "Ustavljeno",
+ "gui_status_indicator_share_stopped": "Ustavljeno",
+ "gui_status_indicator_chat_stopped": "Ustavljeno"
}
diff --git a/desktop/onionshare/resources/locale/sq.json b/desktop/onionshare/resources/locale/sq.json
index 995e09df..105f08f7 100644
--- a/desktop/onionshare/resources/locale/sq.json
+++ b/desktop/onionshare/resources/locale/sq.json
@@ -124,22 +124,22 @@
"gui_receive_url_public_description": "Cilido me këtë adresë OnionShare mundet të ngarkojë kartela në kompjuterin tuaj duke përdorur Shfletuesin Tor: ",
"gui_chat_url_description": "Cilido me këtë adresë OnionShare dhe kyç privat mundet të hyjë në këtë dhomë fjalosjesh duke përdorur Shfletuesin Tor: ",
"gui_chat_url_public_description": "Cilido me këtë adresë OnionShare mundet të hyjë në këtë dhomë fjalosjesh duke përdorur Shfletuesin Tor: ",
- "gui_url_label_persistent": "Kjo ndarje me të tjerë s’do të vetë-ndalet.
Çdo ndarje pasuese ripërdor adresën. (Që të përdoren adresa vetëm për një herë, çaktivizoni “Përdor adresë të qëndrueshme”, te rregullimet.)",
+ "gui_url_label_persistent": "Kjo ndarje me të tjerë s’do të vetë-ndalet.
Çdo ndarje pasuese ripërdor adresën. (Që të përdoren adresa vetëm për një herë, çaktivizoni “Hap përherë këtë skedë, kur niset OnionShare-i”, te rregullimet.)",
"gui_url_label_stay_open": "Kjo ndarje me të tjerë s’do të vetë-ndalet.",
"gui_url_label_onetime": "Kjo ndarje me të tjerë do të ndalet pas plotësimit të vet të parë.",
- "gui_url_label_onetime_and_persistent": "Kjo ndarje me të tjerë s’do të vetë-ndalet.
Çdo ndarje pasuese do të ripërdorë adresën. (Që të përdoren adresa vetëm për një herë, çaktivizoni “Përdor adresë të qëndrueshme”, te rregullimet.)",
+ "gui_url_label_onetime_and_persistent": "Kjo ndarje me të tjerë s’do të vetë-ndalet.
Çdo ndarje pasuese do të ripërdorë adresën. (Që të përdoren adresa vetëm për një herë, çaktivizoni “Hap përherë këtë skedë, kur niset OnionShare-i”, te rregullimet.)",
"gui_url_instructions": "Së pari, dërgoni adresën OnionShare më poshtë:",
"gui_url_instructions_public_mode": "Dërgo adresën OnionShare më poshtë:",
"gui_client_auth_instructions": "Më pas, dërgoni kyçin privat që të lejoni hyrje te shërbimi juaj OnionShare:",
- "gui_status_indicator_share_stopped": "Gati për ndarje me të tjerë",
+ "gui_status_indicator_share_stopped": "U ndal",
"gui_status_indicator_share_working": "Po niset…",
"gui_status_indicator_share_scheduled": "Vënë në plan…",
"gui_status_indicator_share_started": "Ndarje me të tjerë",
- "gui_status_indicator_receive_stopped": "Gati për të marrë",
+ "gui_status_indicator_receive_stopped": "U ndal",
"gui_status_indicator_receive_working": "Po niset…",
"gui_status_indicator_receive_scheduled": "Vënë në plan…",
"gui_status_indicator_receive_started": "Po merret",
- "gui_status_indicator_chat_stopped": "Gati për fjalosje",
+ "gui_status_indicator_chat_stopped": "U ndal",
"gui_status_indicator_chat_working": "Po niset…",
"gui_status_indicator_chat_scheduled": "Vënë në plan…",
"gui_status_indicator_chat_started": "Po fjaloset",
@@ -212,7 +212,7 @@
"mode_settings_advanced_toggle_show": "Shfaq rregullime të mëtejshme",
"mode_settings_advanced_toggle_hide": "Fshihi rregullimet e mëtejshme",
"mode_settings_title_label": "Titull vetjak",
- "mode_settings_persistent_checkbox": "Hape përherë këtë skedë, kur niset OnionShare",
+ "mode_settings_persistent_checkbox": "Hape përherë këtë skedë, kur niset OnionShare (adresa Onion do të mbetet po ajo)",
"mode_settings_public_checkbox": "Ky është një shërbim OnionShare publik (çaktivizon kyç publik)",
"mode_settings_autostart_timer_checkbox": "Nise shërbimin Onion në kohën e planifikuar",
"mode_settings_autostop_timer_checkbox": "Ndale shërbimin Onion në kohën e planifikuar",
@@ -254,5 +254,7 @@
"mode_tor_not_connected_label": "OnionShare s’është i lidhur me rrjetin Tor",
"waitress_web_server_error": "Pati një problem me nisjen e shërbyesit",
"gui_close_tab_warning_chat_description": "Të mbyllet skeda që strehon një shërbyes fjalosjeje?",
- "gui_chat_mode_explainer": "Mënyra fjalosje ju lejon të bisedoni në mënyrë ndërvepruese me të tjerë, në Shfletuesin Tor.
Historiku i fjalosjes nuk depozitohet në OnionShare. Historiku i fjalosjes do të zhduket, kur të mbyllni Shfletuesin Tor."
+ "gui_chat_mode_explainer": "Mënyra fjalosje ju lejon të bisedoni në mënyrë ndërvepruese me të tjerë, në Shfletuesin Tor.
Historiku i fjalosjes nuk depozitohet në OnionShare. Historiku i fjalosjes do të zhduket, kur të mbyllni Shfletuesin Tor.",
+ "mode_settings_persistent_autostart_on_launch_checkbox": "Nise automatikisht këtë shërbim Onion, kur niset OnionShare",
+ "gui_settings_license_label": "OnionShare licencohet sipas GPL v3. Licenca palësh të treta mund të shihen këtu: https://github.com/onionshare/onionshare/tree/main/licenses"
}
diff --git a/desktop/onionshare/resources/locale/sv.json b/desktop/onionshare/resources/locale/sv.json
index d6d1e25c..6f429dda 100644
--- a/desktop/onionshare/resources/locale/sv.json
+++ b/desktop/onionshare/resources/locale/sv.json
@@ -76,10 +76,10 @@
"gui_url_label_stay_open": "Denna delning kommer inte automatiskt att avslutas.",
"gui_url_label_onetime": "Denna delning kommer att sluta efter första slutförandet.",
"gui_url_label_onetime_and_persistent": "Denna delning kommer inte automatiskt att avslutas. < br>Varje efterföljande delning kommer att återanvända adressen. (För att använda engångsadresser, stäng av \"Använd beständig adress\" i inställningarna.)",
- "gui_status_indicator_share_stopped": "Redo att dela",
+ "gui_status_indicator_share_stopped": "Stoppad",
"gui_status_indicator_share_working": "Startar…",
"gui_status_indicator_share_started": "Delar",
- "gui_status_indicator_receive_stopped": "Redo att ta emot",
+ "gui_status_indicator_receive_stopped": "Stoppad",
"gui_status_indicator_receive_working": "Startar…",
"gui_status_indicator_receive_started": "Tar emot",
"gui_file_info": "{} filer, {}",
@@ -177,7 +177,7 @@
"gui_new_tab_chat_button": "Chatta anonymt",
"gui_open_folder_error": "Det gick inte att öppna mappen med xdg-open. Filen finns här: {}",
"gui_chat_url_description": "Vem som helst med denna OnionShare-adress och privata nyckel kan gå med i detta chattrum med hjälp av Tor Browser: ",
- "gui_status_indicator_chat_stopped": "Redo att chatta",
+ "gui_status_indicator_chat_stopped": "Stoppad",
"gui_status_indicator_chat_scheduled": "Schemalagd…",
"history_receive_read_message_button": "Läs meddelandet",
"mode_settings_receive_webhook_url_checkbox": "Använd aviseringswebhook",
diff --git a/desktop/onionshare/resources/locale/ta.json b/desktop/onionshare/resources/locale/ta.json
index d7e1a959..46928fe3 100644
--- a/desktop/onionshare/resources/locale/ta.json
+++ b/desktop/onionshare/resources/locale/ta.json
@@ -9,7 +9,7 @@
"gui_all_modes_clear_history": "அனைத்தையும் தீர்த்துவை",
"gui_tab_name_share": "பகிர்",
"gui_tab_name_receive": "பெறு",
- "gui_tab_name_chat": "Chat",
+ "gui_tab_name_chat": "அரட்டை",
"gui_close_tab_warning_cancel": "நிராகரி",
"moat_captcha_placeholder": "படத்திலிருக்கும் எழுத்துகளை உள்ளிடுங்கள்",
"moat_solution_empty_error": "படத்திலிருக்கும் எழுத்துகளை உள்ளிடுங்கள்",
@@ -46,5 +46,213 @@
"gui_all_modes_history": "வரலாறு",
"gui_quit_warning_quit": "வெளியேறு",
"gui_status_indicator_share_working": "தொடங்குகிறது…",
- "gui_autoconnect_configure": "பிணைய அமைப்புகள்"
+ "gui_autoconnect_configure": "பிணைய அமைப்புகள்",
+ "gui_share_stop_server_autostop_timer": "பகிர்வை நிறுத்துங்கள் ({})",
+ "gui_stop_server_autostop_timer_tooltip": "ஆட்டோ-ச்டாப் நேரங்குறிகருவி {} இல் முடிகிறது",
+ "gui_start_server_autostart_timer_tooltip": "ஆட்டோ-ச்டார்ட் நேரங்குறிகருவி {} இல் முடிகிறது",
+ "gui_receive_start_server": "பயன்முறையைப் பெறத் தொடங்குங்கள்",
+ "gui_receive_stop_server": "பயன்முறையைப் பெறுவதை நிறுத்து",
+ "gui_receive_stop_server_autostop_timer": "பெறும் பயன்முறையை நிறுத்துங்கள் ({} மீதமுள்ள)",
+ "gui_settings_connection_type_socket_file_option": "சாக்கெட் கோப்பைப் பயன்படுத்தி இணைக்கவும்",
+ "gui_settings_connection_type_automatic_option": "டோர் உலாவியுடன் தானாக கட்டமைப்பை முயற்சிக்கவும்",
+ "gui_settings_controller_extras_label": "TOR அமைப்புகள்",
+ "gui_settings_authenticate_no_auth_option": "ஏற்பு இல்லை, அல்லது குக்கீ ஏற்பு இல்லை",
+ "gui_tor_settings_window_title": "TOR அமைப்புகள்",
+ "gui_enable_autoconnect_checkbox": "TOR உடன் தானாக இணைக்கவும்",
+ "gui_autoconnect_failed_to_connect_to_tor": "டோருடன் இணைக்க முடியவில்லை",
+ "gui_settings_socket_file_label": "சாக்கெட் கோப்பு",
+ "gui_settings_socks_label": "சாக்ச் துறைமுகம்",
+ "gui_settings_tor_bridges": "டோர் பாலத்தைப் பயன்படுத்தி இணைக்கவா?",
+ "gui_close_tab_warning_receive_description": "கோப்புகளைப் பெறும் தாவலை மூடு?",
+ "gui_close_tab_warning_website_description": "வலைத்தளத்தை புரவலன் செய்யும் தாவலை மூடு?",
+ "gui_close_tab_warning_share_description": "கோப்புகளை அனுப்பும் தாவலை மூடு?",
+ "systray_page_loaded_message": "வெங்காய முகவரி ஏற்றப்பட்டது",
+ "gui_status_indicator_receive_stopped": "நிறுத்தப்பட்டது",
+ "gui_all_modes_progress_eta": "{0: с}, இது: {1: с}, %n %",
+ "hours_first_letter": "ம",
+ "gui_autoconnect_circumventing_censorship": "இணைப்பு சிக்கல்களைத் தீர்ப்பது…",
+ "mode_settings_advanced_toggle_show": "மேம்பட்ட அமைப்புகளைக் காட்டு",
+ "update_error_invalid_latest_version": "புதிய பதிப்பைச் சரிபார்க்க முடியவில்லை: வெங்காயர் வலைத்தளம் அண்மைக் கால பதிப்பு அடையாளம் காண முடியாத '{}' என்று கூறுகிறது…",
+ "gui_settings_moat_bridges_invalid": "Torproject.org இலிருந்து ஒரு பாலத்தை நீங்கள் இன்னும் கோரவில்லை.",
+ "gui_main_page_share_button": "பகிர்வைத் தொடங்குங்கள்",
+ "gui_receive_mode_no_files": "இதுவரை கோப்புகள் எதுவும் பெறப்படவில்லை",
+ "gui_url_label_onetime_and_persistent": "இந்த பங்கு தானாக நிறுத்தப்படாது.
ஒவ்வொரு அடுத்தடுத்த பங்கும் முகவரியை மீண்டும் பயன்படுத்தும். (ஒரு முறை முகவரிகளைப் பயன்படுத்த, அமைப்புகளில் \"தொடர்ச்சியான முகவரியைப் பயன்படுத்தவும்\" அணைக்கவும்.)",
+ "gui_autoconnect_connection_error_msg": "நீங்கள் இணையத்துடன் இணைக்கப்பட்டுள்ளீர்கள் என்பதை உறுதிப்படுத்திக் கொள்ளுங்கள்.",
+ "gui_settings_bridge_radio_builtin": "உள்ளமைக்கப்பட்ட பாலத்தைத் தேர்ந்தெடுக்கவும்",
+ "days_first_letter": "டி",
+ "gui_new_tab_chat_button": "அநாமதேயமாக அரட்டையடிக்கவும்",
+ "gui_new_tab_share_button": "கோப்புகளைப் பகிரவும்",
+ "gui_settings_connection_type_control_port_option": "கட்டுப்பாட்டு துறைமுகத்தைப் பயன்படுத்தி இணைக்கவும்",
+ "mode_tor_not_connected_label": "வெங்காயம் டோர் நெட்வொர்க்குடன் இணைக்கப்படவில்லை",
+ "gui_autoconnect_could_not_connect_to_tor_api": "TOR பநிஇ உடன் இணைக்க முடியவில்லை. மீண்டும் முயற்சிக்கும் முன் நீங்கள் இணையத்துடன் இணைக்கப்பட்டுள்ளீர்கள் என்பதை உறுதிப்படுத்திக் கொள்ளுங்கள்.",
+ "gui_close_tab_warning_title": "தாவலை மூடு?",
+ "gui_autoconnect_no_bridge": "பாலங்கள் இல்லாமல் மீண்டும் முயற்சிக்கவும்",
+ "gui_share_url_public_description": " யாராவது இந்த வெங்காய முகவரியுடன் பதிவிறக்கம் டோர் உலாவியைப் பயன்படுத்தி உங்கள் கோப்புகள் : ",
+ "gui_new_tab_website_button": "ஒரு வலைத்தளத்தை புரவலன் செய்யுங்கள்",
+ "gui_close_tab_warning_persistent_description": "தொடர்ச்சியான தாவலை மூடி, அது பயன்படுத்தும் வெங்காய முகவரியை இழக்கிறீர்களா?",
+ "history_in_progress_tooltip": "{} செயலில் உள்ளது",
+ "gui_show_qr_code": "QR குறியீட்டைக் காட்டு",
+ "gui_add_files": "கோப்புகளைச் சேர்",
+ "gui_chat_start_server": "அரட்டை சேவையகத்தைத் தொடங்கவும்",
+ "gui_chat_stop_server": "அரட்டை சேவையகத்தை நிறுத்துங்கள்",
+ "gui_autoconnect_try_again_without_a_bridge": "பாலங்கள் இல்லாமல் மீண்டும் முயற்சிக்கவும்",
+ "gui_autoconnect_circumventing_censorship_starting_circumvention": "தணிக்கை மீறுதல்…",
+ "gui_autoconnect_circumventing_censorship_starting_meek": "டொமைன்-கைவினைக்கு சாந்தகுணத்தை நிறுவுதல்…",
+ "gui_autoconnect_circumventing_censorship_requesting_bridges": "TOR தணிக்கை சுற்றறிக்கை பநிஇ இலிருந்து பாலங்களை கோருகிறது…",
+ "gui_settings_connection_type_test_button": "TOR க்கு சோதனை இணைப்பு",
+ "gui_settings_control_port_label": "கட்டுப்பாட்டு துறை",
+ "gui_settings_bridge_moat_button": "புதிய பாலம் கோருங்கள்",
+ "gui_settings_bridge_custom_radio_option": "நம்பகமான மூலத்திலிருந்து நீங்கள் கற்றுக்கொண்ட ஒரு பாலத்தை வழங்கவும்",
+ "gui_url_instructions_public_mode": "வெங்காய முகவரியை கீழே அனுப்பவும்:",
+ "gui_all_modes_transfer_started": "தொடங்கியது {}",
+ "gui_all_modes_progress_complete": "%p%, {0:s} கழிந்தது.",
+ "gui_all_modes_progress_starting": "{0:s}, % p % (கணக்கிடுதல்)",
+ "gui_share_mode_no_files": "கோப்புகள் இதுவரை அனுப்பப்படவில்லை",
+ "gui_share_mode_autostop_timer_waiting": "அனுப்புதல் அனுப்புதல்…",
+ "mode_settings_share_autostop_sharing_checkbox": "கோப்புகள் அனுப்பப்பட்ட பிறகு பகிர்வதை நிறுத்துங்கள் (தனிப்பட்ட கோப்புகளைப் பதிவிறக்க அனுமதிக்க தேர்வு செய்யவும்)",
+ "mode_settings_receive_data_dir_label": "கோப்புகளை சேமிக்கவும்",
+ "mode_settings_website_disable_csp_checkbox": "இயல்புநிலை உள்ளடக்க பாதுகாப்பு கொள்கை தலைப்பை அனுப்ப வேண்டாம் (மூன்றாம் தரப்பு ஆதாரங்களைப் பயன்படுத்த உங்கள் வலைத்தளத்தை அனுமதிக்கிறது)",
+ "settings_error_bundled_tor_broken": "வெங்காயர் டோர் உடன் இணைக்க முடியவில்லை:\n {}",
+ "gui_rendezvous_cleanup_quit_early": "ஆரம்பத்தில் விலகுங்கள்",
+ "error_port_not_available": "வெங்காயர் துறைமுகம் கிடைக்கவில்லை",
+ "history_receive_read_message_button": "செய்தியைப் படியுங்கள்",
+ "error_tor_protocol_error": "TOR உடன் பிழை இருந்தது: {}",
+ "moat_bridgedb_error": "பிரிட்செட் பி தொடர்பு கொள்ள முடியவில்லை.",
+ "gui_website_url_public_description": " யாராவது இந்த வெங்காய முகவரியுடன் ஐப் பார்வையிடலாம் டோர் உலாவியைப் பயன்படுத்தி உங்கள் வலைத்தளம் : ",
+ "gui_please_wait": "தொடங்குகிறது… ரத்து செய்ய சொடுக்கு செய்க.",
+ "gui_receive_url_public_description": " யாராவது இந்த வெங்காய முகவரியுடன் பதிவேற்றலாம் டோர் உலாவி ஐப் பயன்படுத்தி உங்கள் கணினியில் கோப்புகள்: ",
+ "gui_share_url_description": " எவரும் இந்த வெங்காய முகவரி மற்றும் தனிப்பட்ட விசையுடன் பதிவிறக்கம் டோர் உலாவி ஐப் பயன்படுத்தி உங்கள் கோப்புகள்: ",
+ "gui_close_tab_warning_chat_description": "அரட்டை சேவையகத்தை புரவலன் செய்யும் தாவலை மூடு?",
+ "gui_settings_help_label": "உதவி தேவையா? docs.onionshare.org ஐப் பார்க்கவும்",
+ "gui_qr_label_url_title": "வெங்காய முகவரி",
+ "gui_settings_meek_lite_expensive_warning": "எச்சரிக்கை: டோர் திட்டம் இயங்குவதற்கு சாந்தகுணமுள்ள ஏழ்நிலை பாலங்கள் மிகவும் விலை உயர்ந்தவை.",
+ "update_available": "புதிய வெங்காயம் அவுட். அதைப் பெற இங்கே சொடுக்கு செய்க .
நீங்கள் {feigh ஐப் பயன்படுத்துகிறீர்கள், மேலும் சமீபத்தியது {}.",
+ "update_not_available": "நீங்கள் அண்மைக் கால வெங்காயத்தை இயக்குகிறீர்கள்.",
+ "gui_tor_connection_lost": "TOR இலிருந்து துண்டிக்கப்பட்டது.",
+ "gui_chat_url_description": " எவரும் இந்த வெங்காய முகவரி மற்றும் தனியார் விசையுடன் இந்த அரட்டை அறையில் சேரலாம் டோர் உலாவி ஐப் பயன்படுத்தி: ",
+ "gui_open_folder_error": "XDG-OPEN உடன் கோப்புறையைத் திறக்க முடியவில்லை. கோப்பு இங்கே உள்ளது: {}",
+ "gui_settings_language_changed_notice": "புதிய மொழிக்கு மாற்ற வெங்காயத்தை மறுதொடக்கம் செய்யுங்கள்.",
+ "gui_color_mode_changed_notice": "புதிய வண்ணங்களைக் காண வெங்காயத்தை மறுதொடக்கம் செய்யுங்கள்.",
+ "systray_page_loaded_title": "பக்கம் ஏற்றப்பட்டது",
+ "systray_share_started_title": "பகிர்வு தொடங்கியது",
+ "systray_share_canceled_title": "பகிர்வு ரத்து செய்யப்பட்டது",
+ "systray_share_canceled_message": "உங்கள் கோப்புகளைப் பெறுவதை யாரோ ரத்து செய்தனர்",
+ "systray_receive_started_title": "பெறுதல் தொடங்கியது",
+ "gui_website_mode_no_files": "இதுவரை எந்த வலைத்தளமும் பகிரப்படவில்லை",
+ "gui_receive_mode_autostop_timer_waiting": "பெறுவதை முடித்தல்…",
+ "minutes_first_letter": "மீ",
+ "seconds_first_letter": "கள்",
+ "gui_new_tab_tooltip": "புதிய தாவலைத் திறக்கவும்",
+ "gui_new_tab_receive_button": "கோப்புகளைப் பெறுக",
+ "gui_website_url_description": " யாராவது இந்த வெங்காய முகவரி மற்றும் தனிப்பட்ட விசையுடன் பார்வையிடலாம் டோர் உலாவி ஐப் பயன்படுத்தி உங்கள் வலைத்தளம்: ",
+ "gui_url_label_onetime": "இந்த பங்கு முதலில் முடிந்ததும் நின்றுவிடும்.",
+ "gui_status_indicator_chat_started": "அரட்டை",
+ "not_a_readable_file": "{0:s} என்பது படிக்கக்கூடிய கோப்பு அல்ல.",
+ "other_page_loaded": "முகவரி ஏற்றப்பட்டது",
+ "incorrect_password": "தவறான கடவுச்சொல்",
+ "close_on_autostop_timer": "ஆட்டோ-ச்டாப் நேரங்குறிகருவி முடிந்ததால் நிறுத்தப்பட்டது",
+ "closing_automatically": "பரிமாற்றம் முடிந்ததால் நிறுத்தப்பட்டது",
+ "large_filesize": "எச்சரிக்கை: பெரிய பங்கை அனுப்புவதற்கு மணிநேரம் ஆகலாம்",
+ "gui_drag_and_drop": "பகிர்வைத் தொடங்க கோப்புகள் மற்றும் கோப்புறைகளை இழுத்து விடுங்கள்",
+ "gui_add_folder": "கோப்புறையைச் சேர்",
+ "gui_dragdrop_sandbox_flatpak": "பிளாட்பாக் சாண்ட்பாக்சை மிகவும் பாதுகாப்பாக மாற்ற, இழுத்து துளி ஆதரிக்கப்படவில்லை. அதற்கு பதிலாக கோப்புகளைத் தேர்ந்தெடுக்க \"கோப்புகளைச் சேர்\" மற்றும் \"கோப்புறையைச் சேர்\" பொத்தான்களைப் பயன்படுத்தவும்.",
+ "gui_share_start_server": "பகிர்வைத் தொடங்குங்கள்",
+ "gui_share_stop_server": "பகிர்வை நிறுத்துங்கள்",
+ "gui_receive_flatpak_data_dir": "பிளாட்பேக்கைப் பயன்படுத்தி வெங்காயத்தை நிறுவியதால், ~/வெங்காயத்தில் உள்ள கோப்புறையில் கோப்புகளை சேமிக்க வேண்டும்.",
+ "gui_copy_url": "முகவரி நகல்",
+ "gui_copy_client_auth": "தனிப்பட்ட விசையை நகலெடுக்கவும்",
+ "gui_copied_url_title": "வெங்காய முகவரி நகலெடுக்கப்பட்டது",
+ "gui_copied_url": "கிளிப்போர்டுக்கு நகலெடுக்கப்பட்ட வெங்காயம்",
+ "gui_copied_client_auth_title": "தனியார் விசை நகலெடுக்கப்பட்டது",
+ "gui_copied_client_auth": "தனியார் விசை கிளிப்போர்டுக்கு நகலெடுக்கப்பட்டது",
+ "gui_qr_code_dialog_title": "வெங்காயம் QR குறியீடு",
+ "gui_qr_label_auth_string_title": "தனிப்பட்ட விசை",
+ "gui_reveal": "வெளிப்படுத்துங்கள்",
+ "gui_waiting_to_start": "{} இல் தொடங்க திட்டமிடப்பட்டுள்ளது. ரத்து செய்யச் சொடுக்கு செய்க.",
+ "zip_progress_bar_format": "சுருக்க: %p%",
+ "gui_autoconnect_description": "வெங்காயர் தன்னார்வலத்தால் இயக்கப்படும் டோர் நெட்வொர்க்கை நம்பியுள்ளது.",
+ "gui_autoconnect_trying_to_connect_to_tor": "TOR உடன் இணைத்தல்…",
+ "gui_autoconnect_bridge_description": "உங்கள் இணைய இணைப்பு தணிக்கை செய்யப்பட்டால் நீங்கள் ஒரு பாலத்தைப் பயன்படுத்தி இணைக்க முடியும்.",
+ "gui_autoconnect_bridge_detect_automatic": "பாலம் அமைப்புகளுக்கான எனது ஐபி முகவரியிலிருந்து எனது நாட்டைத் தீர்மானிக்கவும்",
+ "gui_autoconnect_bridge_detect_manual": "பாலம் அமைப்புகளுக்கு கைமுறையாக எனது நாட்டைத் தேர்ந்தெடுக்கவும்",
+ "gui_autoconnect_bridge_setting_options": "பாலம் அமைப்புகள்",
+ "gui_autoconnect_circumventing_censorship_got_bridges": "பாலங்கள் நிறுவப்பட்டன. TOR உடன் மீண்டும் இணைகிறது…",
+ "gui_settings_autoupdate_option": "புதிய பதிப்பு கிடைக்கும்போது எனக்கு அறிவிக்கவும்",
+ "gui_settings_autoupdate_timestamp": "கடைசியாக சரிபார்க்கப்பட்டது: {}",
+ "gui_settings_autoupdate_check_button": "புதிய பதிப்பை சரிபார்க்கவும்",
+ "gui_settings_connection_type_label": "வெங்காயம் எவ்வாறு TOR உடன் இணைக்க வேண்டும்?",
+ "gui_settings_connection_type_bundled_option": "வெங்காயத்தில் கட்டப்பட்ட TOR பதிப்பைப் பயன்படுத்தவும்",
+ "gui_settings_tor_bridges_label": "டோர் அணுகல் தடுக்கப்பட்டால் உங்கள் போக்குவரத்து TOR நெட்வொர்க்கை உள்ளிட பாலங்கள் உதவுகின்றன. நீங்கள் எங்கிருந்து இணைக்கிறீர்கள் என்பதைப் பொறுத்து, ஒரு பாலம் மற்றொன்றை விட சிறப்பாக செயல்படக்கூடும்.",
+ "gui_settings_bridge_use_checkbox": "ஒரு பாலத்தைப் பயன்படுத்தவும்",
+ "gui_settings_bridge_none_radio_option": "பாலங்களைப் பயன்படுத்த வேண்டாம்",
+ "gui_settings_tor_bridges_invalid": "நீங்கள் வேலையைச் சேர்த்த பாலங்கள் எதுவும் இல்லை. அவற்றை இருமுறை சரிபார்க்கவும் அல்லது மற்றவர்களைச் சேர்க்கவும்.",
+ "gui_settings_stop_active_tabs_label": "உங்கள் சில தாவல்களில் சேவைகள் உள்ளன.\n உங்கள் TOR அமைப்புகளை மாற்ற அனைத்து சேவைகளையும் நீங்கள் நிறுத்த வேண்டும்.",
+ "gui_settings_version_label": "நீங்கள் வெங்காயத்தைப் பயன்படுத்துகிறீர்கள் {}",
+ "settings_test_success": "TOR கட்டுப்படுத்தியுடன் இணைக்கப்பட்டுள்ளது.\n\n TOR பதிப்பு: {}\n இடைக்கால வெங்காய சேவைகளை ஆதரிக்கிறது: {}.\n கிளையன்ட் அங்கீகாரத்தை ஆதரிக்கிறது: {}.\n நெக்ச்ட்-செனரலை ஆதரிக்கிறது .ஒனியன் முகவரிகள்: {}.",
+ "connecting_to_tor": "TOR நெட்வொர்க்குடன் இணைக்கிறது",
+ "update_error_check_error": "புதிய பதிப்பைச் சரிபார்க்க முடியவில்லை: ஒருவேளை நீங்கள் டோருடன் இணைக்கப்படவில்லை, அல்லது வெங்காய வலைத்தளம் குறைந்துவிட்டதா?",
+ "gui_tor_connection_ask": "TOR உடனான இணைப்பை வரிசைப்படுத்த அமைப்புகளைத் திறக்கவா?",
+ "gui_tor_connection_error_settings": "அமைப்புகளில் டோர் நெட்வொர்க்குடன் வெங்காயம்சேர் எவ்வாறு இணைகிறது என்பதை மாற்ற முயற்சிக்கவும்.",
+ "gui_tor_connection_canceled": "டோருடன் இணைக்க முடியவில்லை.\n\n நீங்கள் இணையத்துடன் இணைக்கப்பட்டுள்ளீர்கள் என்பதை உறுதிப்படுத்திக் கொள்ளுங்கள், பின்னர் வெங்காயத்தை மீண்டும் திறந்து அதன் இணைப்பை TOR உடன் அமைக்கவும்.",
+ "gui_server_started_after_autostop_timer": "சேவையகம் தொடங்குவதற்கு முன்பு ஆட்டோ-ச்டாப் நேரங்குறிகருவி வெளியேறியது. தயவுசெய்து ஒரு புதிய பங்கை உருவாக்குங்கள்.",
+ "gui_server_autostop_timer_expired": "ஆட்டோ-ச்டாப் நேரங்குறிகருவி ஏற்கனவே முடிந்துவிட்டது. பகிர்வைத் தொடங்க அதை சரிசெய்யவும்.",
+ "gui_server_autostart_timer_expired": "திட்டமிடப்பட்ட நேரம் ஏற்கனவே கடந்துவிட்டது. பகிர்வைத் தொடங்க அதை சரிசெய்யவும்.",
+ "gui_autostop_timer_cant_be_earlier_than_autostart_timer": "ஆட்டோ-ச்டாப் நேரம் ஆட்டோ-ச்டார்ட் நேரத்தை விட ஒரே மாதிரியாகவோ அல்லது முந்தையதாகவோ இருக்க முடியாது. பகிர்வைத் தொடங்க அதை சரிசெய்யவும்.",
+ "gui_server_doesnt_support_stealth": "மன்னிக்கவும், TOR இன் இந்த பதிப்பு திருட்டுத்தனத்தை ஆதரிக்காது (கிளையன்ட் அங்கீகாரம்). TOR இன் புதிய பதிப்பில் முயற்சிக்கவும், அல்லது தனிப்பட்டதாக இருக்க தேவையில்லை என்றால் 'பொது' பயன்முறையைப் பயன்படுத்தவும்.",
+ "gui_receive_url_description": " எவரும் இந்த வெங்காய முகவரி மற்றும் தனிப்பட்ட விசையுடன் பதிவேற்றலாம் டோர் உலாவி ஐப் பயன்படுத்தி உங்கள் கணினியில் கோப்புகள்: ",
+ "gui_chat_url_public_description": " எவரும் இந்த வெங்காய முகவரியுடன் இந்த அரட்டை அறையில் சேரலாம் டோர் உலாவியைப் பயன்படுத்தி : ",
+ "gui_url_label_persistent": "இந்த பங்கு தானாக நிறுத்தப்படாது.
ஒவ்வொரு அடுத்தடுத்த பங்கும் முகவரியை மீண்டும் பயன்படுத்துகின்றன. (ஒரு முறை முகவரிகளைப் பயன்படுத்த, அமைப்புகளில் \"தொடர்ச்சியான முகவரியைப் பயன்படுத்தவும்\" அணைக்கவும்.)",
+ "gui_url_label_stay_open": "இந்த பங்கு தானாக நிறுத்தப்படாது.",
+ "gui_url_instructions": "முதலில், வெங்காய முகவரியை கீழே அனுப்பவும்:",
+ "gui_client_auth_instructions": "அடுத்து, உங்கள் வெங்காய சேவைக்கு அணுகலை அனுமதிக்க தனிப்பட்ட விசையை அனுப்பவும்:",
+ "gui_status_indicator_share_stopped": "நிறுத்தப்பட்டது",
+ "gui_status_indicator_share_scheduled": "திட்டமிடப்பட்டுள்ளது…",
+ "gui_status_indicator_share_started": "பகிர்வு",
+ "gui_status_indicator_receive_scheduled": "திட்டமிடப்பட்டுள்ளது…",
+ "gui_status_indicator_chat_stopped": "நிறுத்தப்பட்டது",
+ "gui_status_indicator_chat_scheduled": "திட்டமிடப்பட்டுள்ளது…",
+ "gui_file_info": "{} கோப்புகள், {}",
+ "gui_file_info_single": "{} கோப்பு, {}",
+ "history_completed_tooltip": "{} நிறைவு",
+ "history_requests_tooltip": "{} வலை கோரிக்கைகள்",
+ "error_cannot_create_data_dir": "வெங்காய தரவு கோப்புறையை உருவாக்க முடியவில்லை: {}",
+ "gui_receive_mode_warning": "பயன்முறையைப் பெறுங்கள் உங்கள் கணினியில் கோப்புகளை பதிவேற்ற மக்களை அனுமதிக்கிறது.
சில கோப்புகள் உங்கள் கணினியைத் திறந்தால் அவற்றைக் கட்டுப்படுத்தக்கூடும். நீங்கள் நம்பும் நபர்களிடமிருந்து மட்டுமே விசயங்களைத் திறக்கவும், அல்லது நீங்கள் என்ன செய்கிறீர்கள் என்பது உங்களுக்குத் தெரிந்தால். ",
+ "gui_chat_mode_explainer": "டோர் உலாவியில், மற்றவர்களுடன் ஊடாடும் வகையில் அரட்டையடிக்க அரட்டை பயன்முறை உங்களை அனுமதிக்கிறது.
அரட்டை வரலாறு வெங்காயத்தில் சேமிக்கப்படவில்லை. நீங்கள் டோர் உலாவியை மூடும்போது அரட்டை வரலாறு மறைந்துவிடும். ",
+ "systray_share_started_message": "ஒருவருக்கு கோப்புகளை அனுப்பத் தொடங்குகிறது",
+ "systray_share_completed_title": "பகிர்வு முழுமையானது",
+ "systray_share_completed_message": "கோப்புகளை அனுப்பியது",
+ "systray_receive_started_message": "யாரோ உங்களுக்கு கோப்புகளை அனுப்புகிறார்கள்",
+ "gui_main_page_receive_button": "பெறத் தொடங்குங்கள்",
+ "gui_main_page_website_button": "ஓச்டிங் தொடங்கவும்",
+ "gui_main_page_chat_button": "அரட்டையடிக்கத் தொடங்குங்கள்",
+ "gui_quit_warning_title": "வெங்காயத்தை விட்டு வெளியேறவா?",
+ "gui_quit_warning_description": "அவற்றில் சிலவற்றில் பகிர்வு செயலில் இருந்தாலும், எல்லா தாவல்களையும் விட்டுவிட்டு மூடுங்கள்?",
+ "mode_settings_advanced_toggle_hide": "மேம்பட்ட அமைப்புகளை மறைக்கவும்",
+ "mode_settings_title_label": "தனிப்பயன் தலைப்பு",
+ "mode_settings_persistent_checkbox": "வெங்காயவைத் தொடங்கும்போது எப்போதும் இந்த தாவலைத் திறக்கவும்",
+ "mode_settings_public_checkbox": "இது ஒரு பொது வெங்காய பணி (தனியார் விசையை முடக்குகிறது)",
+ "mode_settings_autostart_timer_checkbox": "திட்டமிடப்பட்ட நேரத்தில் வெங்காய சேவையைத் தொடங்கவும்",
+ "mode_settings_autostop_timer_checkbox": "திட்டமிடப்பட்ட நேரத்தில் வெங்காய சேவையை நிறுத்துங்கள்",
+ "mode_settings_receive_disable_text_checkbox": "சமர்ப்பிக்கும் உரையை முடக்கு",
+ "mode_settings_receive_disable_files_checkbox": "பதிவேற்றும் கோப்புகளை முடக்கு",
+ "mode_settings_receive_webhook_url_checkbox": "அறிவிப்பு வெப்ஊக் பயன்படுத்தவும்",
+ "mode_settings_website_custom_csp_checkbox": "தனிப்பயன் உள்ளடக்க பாதுகாப்பு கொள்கை தலைப்பை அனுப்பவும்",
+ "gui_all_modes_transfer_finished_range": "மாற்றப்பட்டது {} - {}",
+ "gui_all_modes_transfer_finished": "மாற்றப்பட்டது {}",
+ "gui_all_modes_transfer_canceled_range": "ரத்துசெய்யப்பட்டது {} - {}",
+ "gui_all_modes_transfer_canceled": "ரத்துசெய்யப்பட்டது {}",
+ "settings_error_unknown": "உங்கள் அமைப்புகள் அர்த்தமல்ல என்பதால் டோர் கன்ட்ரோலருடன் இணைக்க முடியாது.",
+ "settings_error_automatic": "TOR கட்டுப்படுத்தியுடன் இணைக்க முடியவில்லை. டோர் உலாவி (Torproject.org இலிருந்து கிடைக்கிறது) பின்னணியில் இயங்குகிறதா?",
+ "settings_error_socket_port": "{}:{} இல் டோர் கட்டுப்படுத்தியுடன் இணைக்க முடியாது.",
+ "settings_error_socket_file": "{} சாக்கெட் கோப்பைப் பயன்படுத்தி டோர் கட்டுப்படுத்தியுடன் இணைக்க முடியாது.",
+ "settings_error_auth": "{}: {With உடன் இணைக்கப்பட்டுள்ளது, ஆனால் அங்கீகரிக்க முடியாது. ஒருவேளை இது ஒரு டோர் கட்டுப்படுத்தி அல்லவா?",
+ "settings_error_missing_password": "டோர் கன்ட்ரோலருடன் இணைக்கப்பட்டுள்ளது, ஆனால் அங்கீகரிக்க கடவுச்சொல் தேவைப்படுகிறது.",
+ "settings_error_unreadable_cookie_file": "TOR கட்டுப்படுத்தியுடன் இணைக்கப்பட்டுள்ளது, ஆனால் கடவுச்சொல் தவறாக இருக்கலாம், அல்லது உங்கள் பயனருக்கு குக்கீ கோப்பைப் படிக்க அனுமதிக்கப்படவில்லை.",
+ "settings_error_bundled_tor_not_supported": "வெங்காயவாதியுடன் வரும் TOR பதிப்பைப் பயன்படுத்துவது சாளரங்கள் அல்லது மேகோசில் உருவாக்குபவர் பயன்முறையில் வேலை செய்யாது.",
+ "settings_error_bundled_tor_timeout": "TOR உடன் இணைக்க அதிக நேரம் எடுத்துக்கொள்வது. ஒருவேளை நீங்கள் இணையத்துடன் இணைக்கப்படவில்லை, அல்லது தவறான கணினி கடிகாரத்தைக் கொண்டிருக்கலாமா?",
+ "gui_rendezvous_cleanup": "உங்கள் கோப்புகள் மாற்றப்பட்டுள்ளன என்பதை உறுதிப்படுத்த டோர் சுற்றுகள் மூடப்படுவதற்கு காத்திருக்கிறது.\n\n இதற்கு சில நிமிடங்கள் ஆகலாம்.",
+ "moat_contact_label": "பிரிட்ச்ட்பி தொடர்பு கொள்ளுங்கள்…",
+ "moat_captcha_label": "ஒரு பாலம் கோர கேப்ட்சாவை தீர்க்கவும்.",
+ "moat_captcha_error": "தவறான தீர்வு. மீண்டும் முயற்சிக்கவும்.",
+ "waitress_web_server_error": "வலை சேவையகத்தைத் தொடங்குவதில் சிக்கல் இருந்தது"
}
diff --git a/desktop/onionshare/resources/locale/te.json b/desktop/onionshare/resources/locale/te.json
index 3d3941df..0c10aae6 100644
--- a/desktop/onionshare/resources/locale/te.json
+++ b/desktop/onionshare/resources/locale/te.json
@@ -79,11 +79,11 @@
"gui_url_label_stay_open": "ఈ పంచుకొనబడిన అంశం స్వయంచాలితంగా ఆపబడదు.",
"gui_url_label_onetime": "ఒకసారి పూర్తయిన తరువాత ఈ పంచుకొనబడిన అంశం ఆపబడుతుంది.",
"gui_url_label_onetime_and_persistent": "ఈ పంచుకొనబడిన అంశం స్వయంచాలితంగా ఆపబడదు.
తదుపరి పంచుకోబడిన ప్రతి అంశం ఈ చిరునామాను మరల వాడుకుంటుంది. (ఒక్కసారికి మాత్రం వాడగలిగే చిరునామాలను వాడాలనుకుంటే, అమరికలలో \"నిరంతర చిరునామాను వాడు\"ని అచేతనం చేయండి.)",
- "gui_status_indicator_share_stopped": "పంచుకోవడానికి సిద్ధం",
+ "gui_status_indicator_share_stopped": "ఆగిపోయినవి",
"gui_status_indicator_share_working": "మొదలుపెడుతుంది…",
"gui_status_indicator_share_scheduled": "షెడ్యూల్…",
"gui_status_indicator_share_started": "పంచుకొంటుంది",
- "gui_status_indicator_receive_stopped": "స్వీకరణకు సిద్ధం",
+ "gui_status_indicator_receive_stopped": "ఆగిపోయినవి",
"gui_status_indicator_receive_working": "మొదలుపెడుతుంది…",
"gui_status_indicator_receive_scheduled": "షెడ్యూల్…",
"gui_status_indicator_receive_started": "స్వీకరిస్తుంది",
@@ -155,5 +155,6 @@
"moat_captcha_reload": "Reload",
"gui_settings_theme_light": "Light",
"gui_stop_server_autostop_timer_tooltip": "స్వీయ నియంత్రణ సమయం అయిపోయినది",
- "gui_start_server_autostart_timer_tooltip": "స్వీయ నియంత్రణ సమయం అయిపోయినది"
+ "gui_start_server_autostart_timer_tooltip": "స్వీయ నియంత్రణ సమయం అయిపోయినది",
+ "gui_status_indicator_chat_stopped": "ఆగిపోయినవి"
}
diff --git a/desktop/onionshare/resources/locale/tl.json b/desktop/onionshare/resources/locale/tl.json
index 9a02d7f6..2b9dc55a 100644
--- a/desktop/onionshare/resources/locale/tl.json
+++ b/desktop/onionshare/resources/locale/tl.json
@@ -23,5 +23,8 @@
"gui_settings_theme_light": "Maliwanag na tema",
"gui_tab_name_website": "Pook-sapot",
"gui_tor_connection_ask_open_settings": "Oo",
- "moat_captcha_reload": "Reload"
+ "moat_captcha_reload": "Reload",
+ "gui_status_indicator_receive_stopped": "Natigil",
+ "gui_status_indicator_share_stopped": "Natigil",
+ "gui_status_indicator_chat_stopped": "Natigil"
}
diff --git a/desktop/onionshare/resources/locale/tr.json b/desktop/onionshare/resources/locale/tr.json
index 2f3ee943..87dd0330 100644
--- a/desktop/onionshare/resources/locale/tr.json
+++ b/desktop/onionshare/resources/locale/tr.json
@@ -77,10 +77,10 @@
"gui_url_label_stay_open": "Bu paylaşım otomatik olarak durdurulmayacak.",
"gui_url_label_onetime": "Bu paylaşım bir kez tamamlandıktan sonra durdurulacak.",
"gui_url_label_onetime_and_persistent": "Bu paylaşım otomatik olarak durdurulmayacak.
Sonraki her paylaşım adresi yeniden kullanır (bir kerelik adresleri kullanmak için, ayarlardan \"Kalıcı adres kullanılsın\" seçeneğini kapatın.)",
- "gui_status_indicator_share_stopped": "Paylaşıma hazır",
+ "gui_status_indicator_share_stopped": "Durduruldu",
"gui_status_indicator_share_working": "Başlatılıyor…",
"gui_status_indicator_share_started": "Paylaşılıyor",
- "gui_status_indicator_receive_stopped": "Almaya hazır",
+ "gui_status_indicator_receive_stopped": "Durduruldu",
"gui_status_indicator_receive_working": "Başlatılıyor…",
"gui_status_indicator_receive_started": "Alınıyor",
"gui_file_info": "{} dosya, {}",
@@ -186,7 +186,7 @@
"gui_status_indicator_chat_started": "Sohbet ediliyor",
"gui_status_indicator_chat_scheduled": "Zamanlandı…",
"gui_status_indicator_chat_working": "Başlatılıyor…",
- "gui_status_indicator_chat_stopped": "Sohbet etmeye hazır",
+ "gui_status_indicator_chat_stopped": "Durduruldu",
"gui_settings_theme_dark": "Koyu",
"gui_settings_theme_light": "Açık",
"gui_settings_theme_auto": "Otomatik",
diff --git a/desktop/onionshare/resources/locale/ug.json b/desktop/onionshare/resources/locale/ug.json
index 63b392a3..a770b4b3 100644
--- a/desktop/onionshare/resources/locale/ug.json
+++ b/desktop/onionshare/resources/locale/ug.json
@@ -19,5 +19,9 @@
"gui_close_tab_warning_cancel": "ۋاز كەچ",
"gui_quit_warning_cancel": "ۋاز كەچ",
"mode_settings_receive_data_dir_browse_button": "كۆرۈش",
- "gui_status_indicator_share_started": "ئورتاقلىشىش"
+ "gui_status_indicator_share_started": "ئورتاقلىشىش",
+ "gui_settings_button_help": "ياردەم",
+ "gui_status_indicator_share_stopped": "توختىدى",
+ "gui_status_indicator_receive_stopped": "توختىدى",
+ "gui_status_indicator_chat_stopped": "توختىدى"
}
diff --git a/desktop/onionshare/resources/locale/uk.json b/desktop/onionshare/resources/locale/uk.json
index e9be41e1..30f64572 100644
--- a/desktop/onionshare/resources/locale/uk.json
+++ b/desktop/onionshare/resources/locale/uk.json
@@ -78,15 +78,15 @@
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Час автостопу не може бути однаковим або ранішим за час автозапуску. Налаштуйте його, щоб почати надсилання.",
"gui_share_url_description": "Будь-хто, за допомогою цієї адреси та приватного ключа, може завантажити ваші файли, через Tor Browser: ",
"gui_receive_url_description": "Будь-хто, за допомогою цієї адреси та приватного ключа, може вивантажити файли на ваш комп'ютер через Tor Browser: ",
- "gui_url_label_persistent": "Це надсилання не припинятиметься автоматично.
Кожне наступне надсилання використовує ту ж адресу. (Для використання одноразової адреси, вимкніть «Використовувати постійну адресу» в налаштуваннях.)",
+ "gui_url_label_persistent": "Це надсилання не припинятиметься автоматично.
Кожне наступне надсилання використовує ту ж адресу. (Щоб використовувати одноразову адресу, вимкніть «Завжди відкривати цю вкладку під час запуску OnionShare» в налаштуваннях.)",
"gui_url_label_stay_open": "Це надсилання не припинятиметься автоматично.",
"gui_url_label_onetime": "Це надсилання не припинятиметься після першого виконання.",
- "gui_url_label_onetime_and_persistent": "Це надсилання не припинятиметься автоматично.
Кожне наступне надсилання використовує ту ж адресу. (Для використання одноразової адреси, вимкніть \"Використовувати постійну адресу\" в параметрах.)",
- "gui_status_indicator_share_stopped": "Готово до надсилання",
+ "gui_url_label_onetime_and_persistent": "Це надсилання не припинятиметься автоматично.
Кожне наступне надсилання використовує ту ж адресу. (Щоб використовувати одноразову адресу, вимкніть \"Завжди відкривати цю вкладку під час запуску OnionShare\" в налаштуваннях.)",
+ "gui_status_indicator_share_stopped": "Зупинено",
"gui_status_indicator_share_working": "Запуск…",
"gui_status_indicator_share_scheduled": "Заплановано…",
"gui_status_indicator_share_started": "Надсилання",
- "gui_status_indicator_receive_stopped": "Готово до отримання",
+ "gui_status_indicator_receive_stopped": "Зупинено",
"gui_status_indicator_receive_working": "Початок…",
"gui_status_indicator_receive_scheduled": "Заплановано…",
"gui_status_indicator_receive_started": "Отримання",
@@ -140,7 +140,7 @@
"mode_settings_autostop_timer_checkbox": "Зупинити службу onion у запланований час",
"mode_settings_autostart_timer_checkbox": "Запускати службу onion у запланований час",
"mode_settings_public_checkbox": "Це загальнодоступна служба OnionShare (вимикає приватний ключ)",
- "mode_settings_persistent_checkbox": "Завжди відкривати цю вкладку під час запуску OnionShare",
+ "mode_settings_persistent_checkbox": "Завжди відкривати цю вкладку під час запуску OnionShare (onion-адреса залишиться та ж сама)",
"mode_settings_advanced_toggle_hide": "Сховати розширені налаштування",
"mode_settings_advanced_toggle_show": "Показати розширені налаштування",
"gui_quit_warning_description": "Вийти та закрити всі вкладки, навіть якщо спільний доступ активний на деяких з них?",
@@ -186,7 +186,7 @@
"gui_status_indicator_chat_scheduled": "Заплановано…",
"gui_status_indicator_chat_started": "Спілкування",
"gui_status_indicator_chat_working": "Запуск…",
- "gui_status_indicator_chat_stopped": "Готовий до спілкування",
+ "gui_status_indicator_chat_stopped": "Зупинено",
"gui_settings_theme_dark": "Темна",
"gui_settings_theme_light": "Світла",
"gui_settings_theme_auto": "Автоматична",
@@ -254,5 +254,8 @@
"gui_autoconnect_no_bridge": "Спробувати ще раз без мосту",
"waitress_web_server_error": "Під час запуску вебсервера сталася помилка",
"gui_close_tab_warning_chat_description": "Закрити вкладку, на якій розміщено чат-сервер?",
- "gui_chat_mode_explainer": "Режим бесіди дозволяє вам інтерактивно спілкуватися з іншими користувачами в Браузері Tor.
Історія бесід не зберігається в OnionShare. Історія бесід зникне, коли ви закриєте Браузер Tor."
+ "gui_chat_mode_explainer": "Режим бесіди дозволяє вам інтерактивно спілкуватися з іншими користувачами в Браузері Tor.
Історія бесід не зберігається в OnionShare. Історія бесід зникне, коли ви закриєте Браузер Tor.",
+ "mode_settings_persistent_autostart_on_launch_checkbox": "Автоматично запускати цю onion-службу під час запуску OnionShare",
+ "error_generic": "В OnionShare сталася непередбачувана помилка:\n{}",
+ "gui_settings_license_label": "OnionShare має ліцензію GPL v3. Ліцензії третіх сторін можна переглянути тут: https://github.com/onionshare/onionshare/tree/main/licenses"
}
diff --git a/desktop/onionshare/resources/locale/vi.json b/desktop/onionshare/resources/locale/vi.json
index 67b1140b..5ae178d1 100644
--- a/desktop/onionshare/resources/locale/vi.json
+++ b/desktop/onionshare/resources/locale/vi.json
@@ -131,15 +131,15 @@
"gui_url_instructions": "Đầu tiên, hãy gửi địa chỉ OnionShare bên dưới:",
"gui_url_instructions_public_mode": "Gửi địa chỉ OnionShare bên dưới:",
"gui_client_auth_instructions": "Tiếp theo, gửi khóa key riêng tư để cho phép truy cập vào dịch vụ OnionShare của bạn:",
- "gui_status_indicator_share_stopped": "Sẵn sàng chia sẻ",
+ "gui_status_indicator_share_stopped": "Đã dừng",
"gui_status_indicator_share_working": "Đang bắt đầu…",
"gui_status_indicator_share_scheduled": "Lên kế hoạch…",
"gui_status_indicator_share_started": "Chia sẻ",
- "gui_status_indicator_receive_stopped": "Sẵn sàng nhận",
+ "gui_status_indicator_receive_stopped": "Đã dừng",
"gui_status_indicator_receive_working": "Đang bắt đầu…",
"gui_status_indicator_receive_scheduled": "Lên kế hoạch…",
"gui_status_indicator_receive_started": "Đang nhận",
- "gui_status_indicator_chat_stopped": "Sẵn sàng chat",
+ "gui_status_indicator_chat_stopped": "Đã dừng",
"gui_status_indicator_chat_working": "Đang bắt đầu…",
"gui_status_indicator_chat_scheduled": "Lên kế hoạch…",
"gui_status_indicator_chat_started": "Chat hội thoại",
diff --git a/desktop/onionshare/resources/locale/zh_Hans.json b/desktop/onionshare/resources/locale/zh_Hans.json
index 484020b7..cd045609 100644
--- a/desktop/onionshare/resources/locale/zh_Hans.json
+++ b/desktop/onionshare/resources/locale/zh_Hans.json
@@ -72,14 +72,14 @@
"gui_server_autostop_timer_expired": "自动停止定时器计时已到。请对其调整以开始共享。",
"gui_share_url_description": "任何人只要有这个 OnionShare 地址和私钥,都可以用 Tor Browser 来下载你的文件:",
"gui_receive_url_description": "任何人只要有 OnionShare 地址和私钥,都可以用 Tor 浏览器上传文件到你的计算机:",
- "gui_url_label_persistent": "这个共享不会自动停止。
隨後的所有分享序列將會繼續使用相同的地址。(如要使用一次性地址,請在設定裡關掉\"使用永久地址\"的選項。)",
- "gui_status_indicator_share_stopped": "準備就緒",
+ "gui_status_indicator_share_stopped": "已停止",
"gui_status_indicator_share_working": "啟動中…",
"gui_status_indicator_share_started": "分享中",
- "gui_status_indicator_receive_stopped": "準備就緒",
+ "gui_status_indicator_receive_stopped": "已停止",
"gui_status_indicator_receive_working": "啟動中…",
"gui_status_indicator_receive_started": "接收中",
"gui_file_info": "{}個檔案, {}",
@@ -237,7 +237,7 @@
"gui_receive_url_public_description": "任何人取得此 OnionShare 地址後,就可以透過 Tor 瀏覽器上載 檔案到您的電腦: ",
"gui_status_indicator_chat_working": "啟動…",
"gui_status_indicator_chat_scheduled": "已排程…",
- "gui_status_indicator_chat_stopped": "準備聊天",
+ "gui_status_indicator_chat_stopped": "已停止",
"gui_client_auth_instructions": "接著發送私鑰以便存取 OnionShare 服務:",
"gui_settings_theme_dark": "深色",
"mode_settings_receive_disable_text_checkbox": "關閉提交文字",
diff --git a/desktop/onionshare/settings_tab.py b/desktop/onionshare/settings_tab.py
index ad911412..16bf873e 100644
--- a/desktop/onionshare/settings_tab.py
+++ b/desktop/onionshare/settings_tab.py
@@ -126,6 +126,11 @@ class SettingsTab(QtWidgets.QWidget):
help_label.setTextInteractionFlags(QtCore.Qt.TextBrowserInteraction)
help_label.setOpenExternalLinks(True)
+ license_label = QtWidgets.QLabel(strings._("gui_settings_license_label"))
+ license_label.setAlignment(QtCore.Qt.AlignHCenter)
+ license_label.setTextInteractionFlags(QtCore.Qt.TextBrowserInteraction)
+ license_label.setOpenExternalLinks(True)
+
# Buttons
self.save_button = QtWidgets.QPushButton(strings._("gui_settings_button_save"))
self.save_button.clicked.connect(self.save_clicked)
@@ -146,6 +151,8 @@ class SettingsTab(QtWidgets.QWidget):
layout.addWidget(version_label)
layout.addWidget(help_label)
layout.addSpacing(20)
+ layout.addWidget(license_label)
+ layout.addSpacing(20)
layout.addLayout(buttons_layout)
layout.addStretch()
diff --git a/desktop/onionshare/tab/mode/__init__.py b/desktop/onionshare/tab/mode/__init__.py
index 34d78cbd..0b7412cf 100644
--- a/desktop/onionshare/tab/mode/__init__.py
+++ b/desktop/onionshare/tab/mode/__init__.py
@@ -568,6 +568,8 @@ class Mode(QtWidgets.QWidget):
self.primary_action.show()
if not self.tab.timer.isActive():
self.tab.timer.start(500)
+ if self.settings.get("persistent", "enabled") and self.settings.get("persistent", "autostart_on_launch"):
+ self.server_status.start_server()
def tor_connection_stopped(self):
"""
diff --git a/desktop/onionshare/tab/mode/history.py b/desktop/onionshare/tab/mode/history.py
index ad8af099..5e4b0304 100644
--- a/desktop/onionshare/tab/mode/history.py
+++ b/desktop/onionshare/tab/mode/history.py
@@ -201,9 +201,9 @@ class ReceiveHistoryItemFile(QtWidgets.QWidget):
self.filesize_label.hide()
# Folder button
- folder_pixmap = QtGui.QPixmap.fromImage(
- QtGui.QImage(GuiCommon.get_resource_path("images/open_folder.png"))
- )
+ image = QtGui.QImage(GuiCommon.get_resource_path("images/open_folder.svg"))
+ scaled_image = image.scaledToHeight(15, QtCore.Qt.SmoothTransformation)
+ folder_pixmap = QtGui.QPixmap.fromImage(scaled_image)
folder_icon = QtGui.QIcon(folder_pixmap)
self.folder_button = QtWidgets.QPushButton()
self.folder_button.clicked.connect(self.open_folder)
@@ -788,10 +788,10 @@ class History(QtWidgets.QWidget):
Update the 'completed' widget.
"""
if self.completed_count == 0:
- image = GuiCommon.get_resource_path("images/history_completed_none.png")
+ image = GuiCommon.get_resource_path(f"images/{self.common.gui.color_mode}_history_completed_none.svg")
else:
- image = GuiCommon.get_resource_path("images/history_completed.png")
- self.completed_label.setText(f' {self.completed_count}')
+ image = GuiCommon.get_resource_path("images/history_completed.svg")
+ self.completed_label.setText(f' {self.completed_count}')
self.completed_label.setToolTip(
strings._("history_completed_tooltip").format(self.completed_count)
)
@@ -801,12 +801,12 @@ class History(QtWidgets.QWidget):
Update the 'in progress' widget.
"""
if self.in_progress_count == 0:
- image = GuiCommon.get_resource_path("images/history_in_progress_none.png")
+ image = GuiCommon.get_resource_path(f"images/{self.common.gui.color_mode}_history_in_progress_none.svg")
else:
- image = GuiCommon.get_resource_path("images/history_in_progress.png")
+ image = GuiCommon.get_resource_path("images/history_in_progress.svg")
self.in_progress_label.setText(
- f' {self.in_progress_count}'
+ f' {self.in_progress_count}'
)
self.in_progress_label.setToolTip(
strings._("history_in_progress_tooltip").format(self.in_progress_count)
@@ -817,11 +817,11 @@ class History(QtWidgets.QWidget):
Update the 'web requests' widget.
"""
if self.requests_count == 0:
- image = GuiCommon.get_resource_path("images/history_requests_none.png")
+ image = GuiCommon.get_resource_path(f"images/{self.common.gui.color_mode}_history_requests_none.svg")
else:
- image = GuiCommon.get_resource_path("images/history_requests.png")
+ image = GuiCommon.get_resource_path("images/history_requests.svg")
- self.requests_label.setText(f' {self.requests_count}')
+ self.requests_label.setText(f' {self.requests_count}')
self.requests_label.setToolTip(
strings._("history_requests_tooltip").format(self.requests_count)
)
diff --git a/desktop/onionshare/tab/mode/mode_settings_widget.py b/desktop/onionshare/tab/mode/mode_settings_widget.py
index 9a8cd441..ccaebcca 100644
--- a/desktop/onionshare/tab/mode/mode_settings_widget.py
+++ b/desktop/onionshare/tab/mode/mode_settings_widget.py
@@ -39,14 +39,24 @@ class ModeSettingsWidget(QtWidgets.QScrollArea):
# Downstream Mode need to fill in this layout with its settings
self.mode_specific_layout = QtWidgets.QVBoxLayout()
+ self.persistent_autostart_on_launch_checkbox = QtWidgets.QCheckBox()
+ self.persistent_autostart_on_launch_checkbox.clicked.connect(self.persistent_autostart_on_launch_checkbox_clicked)
+ self.persistent_autostart_on_launch_checkbox.setText(strings._("mode_settings_persistent_autostart_on_launch_checkbox"))
+ if self.settings.get("persistent", "autostart_on_launch"):
+ self.persistent_autostart_on_launch_checkbox.setCheckState(QtCore.Qt.Checked)
+ else:
+ self.persistent_autostart_on_launch_checkbox.setCheckState(QtCore.Qt.Unchecked)
+
# Persistent
self.persistent_checkbox = QtWidgets.QCheckBox()
self.persistent_checkbox.clicked.connect(self.persistent_checkbox_clicked)
self.persistent_checkbox.setText(strings._("mode_settings_persistent_checkbox"))
if self.settings.get("persistent", "enabled"):
self.persistent_checkbox.setCheckState(QtCore.Qt.Checked)
+ self.persistent_autostart_on_launch_checkbox.show()
else:
self.persistent_checkbox.setCheckState(QtCore.Qt.Unchecked)
+ self.persistent_autostart_on_launch_checkbox.hide()
# Public
self.public_checkbox = QtWidgets.QCheckBox()
@@ -150,6 +160,7 @@ class ModeSettingsWidget(QtWidgets.QScrollArea):
layout = QtWidgets.QVBoxLayout()
layout.addLayout(self.mode_specific_layout)
layout.addWidget(self.persistent_checkbox)
+ layout.addWidget(self.persistent_autostart_on_launch_checkbox)
layout.addWidget(self.public_checkbox)
layout.addWidget(self.advanced_widget)
layout.addWidget(self.toggle_advanced_button)
@@ -206,6 +217,7 @@ class ModeSettingsWidget(QtWidgets.QScrollArea):
def persistent_checkbox_clicked(self):
self.settings.set("persistent", "enabled", self.persistent_checkbox.isChecked())
self.settings.set("persistent", "mode", self.tab.mode)
+ self.settings.set("persistent", "autostart_on_launch", self.persistent_autostart_on_launch_checkbox.isChecked())
self.change_persistent.emit(
self.tab.tab_id, self.persistent_checkbox.isChecked()
)
@@ -213,6 +225,12 @@ class ModeSettingsWidget(QtWidgets.QScrollArea):
# If disabling persistence, delete the file from disk
if not self.persistent_checkbox.isChecked():
self.settings.delete()
+ self.persistent_autostart_on_launch_checkbox.hide()
+ else:
+ self.persistent_autostart_on_launch_checkbox.show()
+
+ def persistent_autostart_on_launch_checkbox_clicked(self):
+ self.settings.set("persistent", "autostart_on_launch", self.persistent_autostart_on_launch_checkbox.isChecked())
def public_checkbox_clicked(self):
self.settings.set("general", "public", self.public_checkbox.isChecked())
diff --git a/desktop/onionshare/tab/mode/receive_mode/__init__.py b/desktop/onionshare/tab/mode/receive_mode/__init__.py
index bfa85459..45b20c70 100644
--- a/desktop/onionshare/tab/mode/receive_mode/__init__.py
+++ b/desktop/onionshare/tab/mode/receive_mode/__init__.py
@@ -160,9 +160,9 @@ class ReceiveMode(Mode):
self.common,
self,
self.history,
- QtGui.QIcon(GuiCommon.get_resource_path("images/receive_icon_toggle.png")),
+ QtGui.QIcon(GuiCommon.get_resource_path(f"images/{self.common.gui.color_mode}_history_icon_toggle.svg")),
QtGui.QIcon(
- GuiCommon.get_resource_path("images/receive_icon_toggle_selected.png")
+ GuiCommon.get_resource_path(f"images/{self.common.gui.color_mode}_history_icon_toggle_selected.svg")
),
)
diff --git a/desktop/onionshare/tab/mode/share_mode/__init__.py b/desktop/onionshare/tab/mode/share_mode/__init__.py
index daa35a4d..d8a515dd 100644
--- a/desktop/onionshare/tab/mode/share_mode/__init__.py
+++ b/desktop/onionshare/tab/mode/share_mode/__init__.py
@@ -135,9 +135,9 @@ class ShareMode(Mode):
self.common,
self,
self.history,
- QtGui.QIcon(GuiCommon.get_resource_path("images/share_icon_toggle.png")),
+ QtGui.QIcon(GuiCommon.get_resource_path(f"images/{self.common.gui.color_mode}_history_icon_toggle.svg")),
QtGui.QIcon(
- GuiCommon.get_resource_path("images/share_icon_toggle_selected.png")
+ GuiCommon.get_resource_path(f"images/{self.common.gui.color_mode}_history_icon_toggle_selected.svg")
),
)
diff --git a/desktop/onionshare/tab/mode/website_mode/__init__.py b/desktop/onionshare/tab/mode/website_mode/__init__.py
index 47614cae..3faab913 100644
--- a/desktop/onionshare/tab/mode/website_mode/__init__.py
+++ b/desktop/onionshare/tab/mode/website_mode/__init__.py
@@ -157,9 +157,9 @@ class WebsiteMode(Mode):
self.common,
self,
self.history,
- QtGui.QIcon(GuiCommon.get_resource_path("images/share_icon_toggle.png")),
+ QtGui.QIcon(GuiCommon.get_resource_path(f"images/{self.common.gui.color_mode}_history_icon_toggle.svg")),
QtGui.QIcon(
- GuiCommon.get_resource_path("images/share_icon_toggle_selected.png")
+ GuiCommon.get_resource_path(f"images/{self.common.gui.color_mode}_history_icon_toggle_selected.svg")
),
)
diff --git a/desktop/onionshare/tab/tab.py b/desktop/onionshare/tab/tab.py
index ab6cc3e5..9e5dda20 100644
--- a/desktop/onionshare/tab/tab.py
+++ b/desktop/onionshare/tab/tab.py
@@ -217,14 +217,13 @@ class Tab(QtWidgets.QWidget):
# Persistent image
self.persistent_image_label = QtWidgets.QLabel()
- self.persistent_image_label.setPixmap(
- QtGui.QPixmap.fromImage(
- QtGui.QImage(
- GuiCommon.get_resource_path("images/persistent_enabled.png")
- )
+ image = QtGui.QImage(
+ GuiCommon.get_resource_path(
+ f"images/{self.common.gui.color_mode}_persistent_enabled.svg"
)
)
- self.persistent_image_label.setFixedSize(20, 20)
+ scaled_image = image.scaledToHeight(15, QtCore.Qt.SmoothTransformation)
+ self.persistent_image_label.setPixmap(QtGui.QPixmap.fromImage(scaled_image))
# Create the close warning dialog -- the dialog widget needs to be in the constructor
# in order to test it
@@ -480,23 +479,31 @@ class Tab(QtWidgets.QWidget):
)
def set_server_status_indicator_stopped(self, label_text):
- self.change_icon.emit(self.tab_id, "images/server_stopped.png")
+ self.change_icon.emit(
+ self.tab_id, f"images/{self.common.gui.color_mode}_server_stopped.svg"
+ )
+ image = self.status_bar.server_status_image_stopped
+ scaled_image = image.scaledToHeight(15, QtCore.Qt.SmoothTransformation)
self.status_bar.server_status_image_label.setPixmap(
- QtGui.QPixmap.fromImage(self.status_bar.server_status_image_stopped)
+ QtGui.QPixmap.fromImage(scaled_image)
)
self.status_bar.server_status_label.setText(label_text)
def set_server_status_indicator_working(self, label_text):
- self.change_icon.emit(self.tab_id, "images/server_working.png")
+ self.change_icon.emit(self.tab_id, "images/server_working.svg")
+ image = self.status_bar.server_status_image_working
+ scaled_image = image.scaledToHeight(15, QtCore.Qt.SmoothTransformation)
self.status_bar.server_status_image_label.setPixmap(
- QtGui.QPixmap.fromImage(self.status_bar.server_status_image_working)
+ QtGui.QPixmap.fromImage(scaled_image)
)
self.status_bar.server_status_label.setText(label_text)
def set_server_status_indicator_started(self, label_text):
- self.change_icon.emit(self.tab_id, "images/server_started.png")
+ self.change_icon.emit(self.tab_id, "images/server_started.svg")
+ image = self.status_bar.server_status_image_started
+ scaled_image = image.scaledToHeight(15, QtCore.Qt.SmoothTransformation)
self.status_bar.server_status_image_label.setPixmap(
- QtGui.QPixmap.fromImage(self.status_bar.server_status_image_started)
+ QtGui.QPixmap.fromImage(scaled_image)
)
self.status_bar.server_status_label.setText(label_text)
diff --git a/desktop/onionshare/threads.py b/desktop/onionshare/threads.py
index 6eeeb97f..227ec923 100644
--- a/desktop/onionshare/threads.py
+++ b/desktop/onionshare/threads.py
@@ -106,6 +106,11 @@ class OnionThread(QtCore.QThread):
message = self.mode.common.gui.get_translated_tor_error(e)
self.error.emit(message)
return
+ except Exception as e:
+ # Handle any other error that wasn't in the list above
+ message = strings._("error_generic").format(e.args[0])
+ self.error.emit(message)
+ return
class WebThread(QtCore.QThread):
diff --git a/desktop/onionshare/tor_connection.py b/desktop/onionshare/tor_connection.py
index f87967ef..ceb8eace 100644
--- a/desktop/onionshare/tor_connection.py
+++ b/desktop/onionshare/tor_connection.py
@@ -210,6 +210,12 @@ class TorConnectionThread(QtCore.QThread):
)
self.error_connecting_to_tor.emit(message)
+ except Exception as e:
+ # Handle any other error that wasn't in the list above
+ message = strings._("error_generic").format(e.args[0])
+ self.error_connecting_to_tor.emit(message)
+ return
+
def _tor_status_update(self, progress, summary):
self.tor_status_update.emit(progress, summary)
diff --git a/desktop/onionshare/update_checker.py b/desktop/onionshare/update_checker.py
index 6d0662a1..e40a8c77 100644
--- a/desktop/onionshare/update_checker.py
+++ b/desktop/onionshare/update_checker.py
@@ -22,7 +22,7 @@ from PySide6 import QtCore
import datetime
import re
import socks
-from distutils.version import LooseVersion as Version
+from packaging.version import Version
from onionshare_cli.settings import Settings
@@ -106,7 +106,8 @@ class UpdateChecker(QtCore.QObject):
if force:
path += "?force=1"
- if Version(self.onion.tor_version) >= Version("0.3.2.9"):
+ cleaned_tor_version = re.sub(r"\s*\(.*\)", "", self.onion.tor_version)
+ if Version(cleaned_tor_version) >= Version("0.3.2.9"):
onion_domain = (
"lldan5gahapx5k7iafb3s4ikijc4ni7gx5iywdflkba5y2ezyg6sjgyd.onion"
)
diff --git a/desktop/org.onionshare.OnionShare.appdata.xml b/desktop/org.onionshare.OnionShare.appdata.xml
index bff830db..2b528cb6 100644
--- a/desktop/org.onionshare.OnionShare.appdata.xml
+++ b/desktop/org.onionshare.OnionShare.appdata.xml
@@ -24,6 +24,6 @@
micah@micahflee.com
-
+
diff --git a/desktop/poetry.lock b/desktop/poetry.lock
index 5deffc58..d53b6eeb 100644
--- a/desktop/poetry.lock
+++ b/desktop/poetry.lock
@@ -1,4 +1,4 @@
-# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand.
+# This file is automatically @generated by Poetry 2.0.1 and should not be changed by hand.
[[package]]
name = "bidict"
@@ -6,6 +6,8 @@ version = "0.22.1"
description = "The bidirectional mapping library for Python."
optional = false
python-versions = ">=3.7"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "bidict-0.22.1-py3-none-any.whl", hash = "sha256:6ef212238eb884b664f28da76f33f1d28b260f665fc737b413b287d5487d1e7b"},
{file = "bidict-0.22.1.tar.gz", hash = "sha256:1e0f7f74e4860e6d0943a05d4134c63a2fad86f3d4732fb265bd79e4e856d81d"},
@@ -18,33 +20,35 @@ test = ["hypothesis", "pytest", "pytest-benchmark[histogram]", "pytest-cov", "py
[[package]]
name = "black"
-version = "24.1.1"
+version = "25.1.0"
description = "The uncompromising code formatter."
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
+groups = ["dev"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
- {file = "black-24.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2588021038bd5ada078de606f2a804cadd0a3cc6a79cb3e9bb3a8bf581325a4c"},
- {file = "black-24.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1a95915c98d6e32ca43809d46d932e2abc5f1f7d582ffbe65a5b4d1588af7445"},
- {file = "black-24.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fa6a0e965779c8f2afb286f9ef798df770ba2b6cee063c650b96adec22c056a"},
- {file = "black-24.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:5242ecd9e990aeb995b6d03dc3b2d112d4a78f2083e5a8e86d566340ae80fec4"},
- {file = "black-24.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fc1ec9aa6f4d98d022101e015261c056ddebe3da6a8ccfc2c792cbe0349d48b7"},
- {file = "black-24.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0269dfdea12442022e88043d2910429bed717b2d04523867a85dacce535916b8"},
- {file = "black-24.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3d64db762eae4a5ce04b6e3dd745dcca0fb9560eb931a5be97472e38652a161"},
- {file = "black-24.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:5d7b06ea8816cbd4becfe5f70accae953c53c0e53aa98730ceccb0395520ee5d"},
- {file = "black-24.1.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e2c8dfa14677f90d976f68e0c923947ae68fa3961d61ee30976c388adc0b02c8"},
- {file = "black-24.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a21725862d0e855ae05da1dd25e3825ed712eaaccef6b03017fe0853a01aa45e"},
- {file = "black-24.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07204d078e25327aad9ed2c64790d681238686bce254c910de640c7cc4fc3aa6"},
- {file = "black-24.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:a83fe522d9698d8f9a101b860b1ee154c1d25f8a82ceb807d319f085b2627c5b"},
- {file = "black-24.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:08b34e85170d368c37ca7bf81cf67ac863c9d1963b2c1780c39102187ec8dd62"},
- {file = "black-24.1.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7258c27115c1e3b5de9ac6c4f9957e3ee2c02c0b39222a24dc7aa03ba0e986f5"},
- {file = "black-24.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40657e1b78212d582a0edecafef133cf1dd02e6677f539b669db4746150d38f6"},
- {file = "black-24.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e298d588744efda02379521a19639ebcd314fba7a49be22136204d7ed1782717"},
- {file = "black-24.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:34afe9da5056aa123b8bfda1664bfe6fb4e9c6f311d8e4a6eb089da9a9173bf9"},
- {file = "black-24.1.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:854c06fb86fd854140f37fb24dbf10621f5dab9e3b0c29a690ba595e3d543024"},
- {file = "black-24.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3897ae5a21ca132efa219c029cce5e6bfc9c3d34ed7e892113d199c0b1b444a2"},
- {file = "black-24.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:ecba2a15dfb2d97105be74bbfe5128bc5e9fa8477d8c46766505c1dda5883aac"},
- {file = "black-24.1.1-py3-none-any.whl", hash = "sha256:5cdc2e2195212208fbcae579b931407c1fa9997584f0a415421748aeafff1168"},
- {file = "black-24.1.1.tar.gz", hash = "sha256:48b5760dcbfe5cf97fd4fba23946681f3a81514c6ab8a45b50da67ac8fbc6c7b"},
+ {file = "black-25.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:759e7ec1e050a15f89b770cefbf91ebee8917aac5c20483bc2d80a6c3a04df32"},
+ {file = "black-25.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e519ecf93120f34243e6b0054db49c00a35f84f195d5bce7e9f5cfc578fc2da"},
+ {file = "black-25.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:055e59b198df7ac0b7efca5ad7ff2516bca343276c466be72eb04a3bcc1f82d7"},
+ {file = "black-25.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:db8ea9917d6f8fc62abd90d944920d95e73c83a5ee3383493e35d271aca872e9"},
+ {file = "black-25.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a39337598244de4bae26475f77dda852ea00a93bd4c728e09eacd827ec929df0"},
+ {file = "black-25.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96c1c7cd856bba8e20094e36e0f948718dc688dba4a9d78c3adde52b9e6c2299"},
+ {file = "black-25.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bce2e264d59c91e52d8000d507eb20a9aca4a778731a08cfff7e5ac4a4bb7096"},
+ {file = "black-25.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:172b1dbff09f86ce6f4eb8edf9dede08b1fce58ba194c87d7a4f1a5aa2f5b3c2"},
+ {file = "black-25.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b"},
+ {file = "black-25.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc"},
+ {file = "black-25.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f"},
+ {file = "black-25.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba"},
+ {file = "black-25.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8f0b18a02996a836cc9c9c78e5babec10930862827b1b724ddfe98ccf2f2fe4f"},
+ {file = "black-25.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:afebb7098bfbc70037a053b91ae8437c3857482d3a690fefc03e9ff7aa9a5fd3"},
+ {file = "black-25.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:030b9759066a4ee5e5aca28c3c77f9c64789cdd4de8ac1df642c40b708be6171"},
+ {file = "black-25.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:a22f402b410566e2d1c950708c77ebf5ebd5d0d88a6a2e87c86d9fb48afa0d18"},
+ {file = "black-25.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a1ee0a0c330f7b5130ce0caed9936a904793576ef4d2b98c40835d6a65afa6a0"},
+ {file = "black-25.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3df5f1bf91d36002b0a75389ca8663510cf0531cca8aa5c1ef695b46d98655f"},
+ {file = "black-25.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d9e6827d563a2c820772b32ce8a42828dc6790f095f441beef18f96aa6f8294e"},
+ {file = "black-25.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:bacabb307dca5ebaf9c118d2d2f6903da0d62c9faa82bd21a33eecc319559355"},
+ {file = "black-25.1.0-py3-none-any.whl", hash = "sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717"},
+ {file = "black-25.1.0.tar.gz", hash = "sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666"},
]
[package.dependencies]
@@ -58,7 +62,7 @@ typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""}
[package.extras]
colorama = ["colorama (>=0.4.3)"]
-d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"]
+d = ["aiohttp (>=3.10)"]
jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"]
uvloop = ["uvloop (>=0.15.2)"]
@@ -68,6 +72,8 @@ version = "1.7.0"
description = "Fast, simple object-to-object and broadcast signaling"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "blinker-1.7.0-py3-none-any.whl", hash = "sha256:c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9"},
{file = "blinker-1.7.0.tar.gz", hash = "sha256:e6820ff6fa4e4d1d8e2747c2283749c3f547e4fee112b98555cdcdae32996182"},
@@ -79,6 +85,8 @@ version = "1.1.0"
description = "Python bindings for the Brotli compression library"
optional = false
python-versions = "*"
+groups = ["main"]
+markers = "platform_python_implementation != \"PyPy\" and (platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\")"
files = [
{file = "Brotli-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e1140c64812cb9b06c922e77f1c26a75ec5e3f0fb2bf92cc8c58720dec276752"},
{file = "Brotli-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c8fd5270e906eef71d4a8d19b7c6a43760c6abcfcc10c9101d14eb2357418de9"},
@@ -171,6 +179,8 @@ version = "1.1.0.0"
description = "Python CFFI bindings to the Brotli library"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
+markers = "platform_python_implementation == \"PyPy\" and (platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\")"
files = [
{file = "brotlicffi-1.1.0.0-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:9b7ae6bd1a3f0df532b6d67ff674099a96d22bc0948955cb338488c31bfb8851"},
{file = "brotlicffi-1.1.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19ffc919fa4fc6ace69286e0a23b3789b4219058313cf9b45625016bf7ff996b"},
@@ -206,13 +216,15 @@ cffi = ">=1.0.0"
[[package]]
name = "certifi"
-version = "2024.2.2"
+version = "2025.1.31"
description = "Python package for providing Mozilla's CA Bundle."
optional = false
python-versions = ">=3.6"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
- {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"},
- {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"},
+ {file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"},
+ {file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"},
]
[[package]]
@@ -221,6 +233,8 @@ version = "1.16.0"
description = "Foreign Function Interface for Python calling C code."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"},
{file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"},
@@ -285,6 +299,8 @@ version = "3.3.2"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
optional = false
python-versions = ">=3.7.0"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"},
{file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"},
@@ -384,6 +400,8 @@ version = "8.1.7"
description = "Composable command line interface toolkit"
optional = false
python-versions = ">=3.7"
+groups = ["main", "dev"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"},
{file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"},
@@ -398,71 +416,71 @@ version = "0.4.6"
description = "Cross-platform colored terminal text."
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
+groups = ["main", "dev"]
files = [
{file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
{file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
]
+markers = {main = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\"", dev = "(platform_system == \"Windows\" or sys_platform == \"win32\") and (platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\")"}
[[package]]
name = "cx-freeze"
-version = "6.15.15"
+version = "7.2.9"
description = "Create standalone executables from Python scripts"
optional = false
-python-versions = ">=3.7.4"
+python-versions = ">=3.8"
+groups = ["dev"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
- {file = "cx_Freeze-6.15.15-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8b139e0848e565e2213d3c68d817ce2750d23f484f7e298c1db762adf7dc319e"},
- {file = "cx_Freeze-6.15.15-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5a7716ee48ded3380c5377d4716c9745aadd3c667ad4fa7f6a1d095203f95fed"},
- {file = "cx_Freeze-6.15.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c9bd56a88335eab0c0319b75248c2a03b946fbd6ca92a4846b66346785ac4b2"},
- {file = "cx_Freeze-6.15.15-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:74edcdc5331dcb94dfd5f3453bbd31fc23887503c0ba6b9841811071be78f105"},
- {file = "cx_Freeze-6.15.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:650b6553cd8180b8cfa7d482e0c5440cb267b1013ea230d601d3afb2895b9df2"},
- {file = "cx_Freeze-6.15.15-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a912e0cef4c778fe2a2b44c2bdf95185230776e7d7bfc45479d915f0229522c9"},
- {file = "cx_Freeze-6.15.15-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:a302eb715a813b362935f346af34dddfda1952855696bf8d4da8d668b1f369dc"},
- {file = "cx_Freeze-6.15.15-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4301929905f421aee23837c5cc6276791c408f19fc7c8af754eb5c428a81ffcb"},
- {file = "cx_Freeze-6.15.15-cp310-cp310-win32.whl", hash = "sha256:623fb8af7ed6760ee525f1ba9acc811cfb788f20a680ef939bbce8d40e64cb07"},
- {file = "cx_Freeze-6.15.15-cp310-cp310-win_amd64.whl", hash = "sha256:61c3e5827b6465577f3994dba7d4c67a8e46f7b0ac9622167bf7ebba8c901796"},
- {file = "cx_Freeze-6.15.15-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:57230a64d7dead4f347822a58e8b021783b848232f5937ffc7f66bee653f5090"},
- {file = "cx_Freeze-6.15.15-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fee01124a6fa92e02a241821dde689aa94bb6b58707cae7b7a85985126bd3f8c"},
- {file = "cx_Freeze-6.15.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c04b99c297b0588085a3b1a579850f70c5fdb985289bdc3343477b5eccf6560e"},
- {file = "cx_Freeze-6.15.15-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ed01eebffd42b182966f2436bd976bf1ea4502d5c07d92944a719f09bc1d1ea7"},
- {file = "cx_Freeze-6.15.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4985589fab1c118e43ed9cab20bbff264528e67624b6eccc0f5a9db1ed1c4d64"},
- {file = "cx_Freeze-6.15.15-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c40104a0e409b70d50f4e14478cac33354ecef0373cceb834d6bf03558ba035f"},
- {file = "cx_Freeze-6.15.15-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:ec1c52b0fe7bcd344049dff2efd7c38cbc03c80423a9eecb51a5d85fb932b63a"},
- {file = "cx_Freeze-6.15.15-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:823ab6875efe6b2f797ad2c7fbf02a9b43edb34d341d279c4b34bc5b1156379b"},
- {file = "cx_Freeze-6.15.15-cp311-cp311-win32.whl", hash = "sha256:ff75513d82dae431f72f27a10e2327985f59c10ebbc7895d3f4bb16e1d861bf0"},
- {file = "cx_Freeze-6.15.15-cp311-cp311-win_amd64.whl", hash = "sha256:224febd5096fb1bda52693cd3a65b3cbace634288c92960092f3c61911abaaed"},
- {file = "cx_Freeze-6.15.15-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:943ac82c8948b2a1eb083e11229f14751f4b07bb5bc190a961e75b8d5aeb17c4"},
- {file = "cx_Freeze-6.15.15-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61dad741eaf759ad51d1bb2510ccb44c458a810cad2082516beb5eebaf7bf602"},
- {file = "cx_Freeze-6.15.15-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6f1eb5aa58aef1ed4ab3e51c1aed0f2188630efe129ab487fc5192086cbdb003"},
- {file = "cx_Freeze-6.15.15-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:425c24e9f80d099f343db07a65ae0ee0cefe6383f61762fbefde86e91b3bf3e0"},
- {file = "cx_Freeze-6.15.15-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b8111907fb4c86547be7a12e7b74ed4b7d0333f22544d418df57b20c6ab04788"},
- {file = "cx_Freeze-6.15.15-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:575bd917d59d5f6d1cfab370fb9d93be694b9ad8b3b1e9e816597169da8b36e1"},
- {file = "cx_Freeze-6.15.15-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ab9e1e3d65827d549cb6848ef5aedd6823b740d8a6a44a3253bd5573894b02cb"},
- {file = "cx_Freeze-6.15.15-cp37-cp37m-win32.whl", hash = "sha256:0aa2491e384a6e878d95bd6622df06635fa857052bc0caaf4b1399b4858cb21c"},
- {file = "cx_Freeze-6.15.15-cp37-cp37m-win_amd64.whl", hash = "sha256:fc4c90fb8c146cc3b29c39c832d0dcc57e12943126f9eb465fd8735ad0438832"},
- {file = "cx_Freeze-6.15.15-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d8445b2478123a29d0278fda712b7b68ce08d45e1599c7db743e8d3615649edc"},
- {file = "cx_Freeze-6.15.15-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab94ad11674636ddec78dfc6b8993c2ac096965f3b2ec347c0e669c67f7c81f8"},
- {file = "cx_Freeze-6.15.15-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a459322b1f09a4a7e4343453b0714ff276d6e01fa33a2ea41fe58ffceeb6716e"},
- {file = "cx_Freeze-6.15.15-cp38-cp38-win32.whl", hash = "sha256:09bf15a94f059a4299aeddfc9943a4c57731f666b5bab3f9a234d6a15f35f2e7"},
- {file = "cx_Freeze-6.15.15-cp38-cp38-win_amd64.whl", hash = "sha256:fcf028c192079f29e7314647832555c43eeff9abec0a284535c7aaa1da32af23"},
- {file = "cx_Freeze-6.15.15-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4aab9867822ae3db4c2daaaa4090d10f9f0790b4fa21d66e2722fd263e0073bc"},
- {file = "cx_Freeze-6.15.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:55644a731019d623a72626393904f30c5004b51b77a7bdcd3085f76ecc7bed43"},
- {file = "cx_Freeze-6.15.15-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:dccf47854e41fcddc8791fed5dd59342aec2e97b154ba29031054ca54dca350a"},
- {file = "cx_Freeze-6.15.15-cp39-cp39-win32.whl", hash = "sha256:58a24bd63a538eb0fa336263376389398daf96dd5d603963989c61853248c118"},
- {file = "cx_Freeze-6.15.15-cp39-cp39-win_amd64.whl", hash = "sha256:d48640626c9569caba20240c70778a91eccafde2d6d66f11c155422337b59cae"},
- {file = "cx_Freeze-6.15.15.tar.gz", hash = "sha256:74c0abe6e95a0415cb4fbf55c625bc2501269783fac2dd2d71eb4d78e93f2219"},
+ {file = "cx_Freeze-7.2.9-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91bc7f06dac24a9b3df8878bdee94385c727a3a03d0dc8e64b6857010df36be5"},
+ {file = "cx_Freeze-7.2.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:43f9b47c83ecade2a89f30bb0f7a612079054ebfbd9e11bc387755a2064a282b"},
+ {file = "cx_Freeze-7.2.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ee7394e7f50a36dea5040d89c1c63e1f74fe85a6362afa90d255f6efda5f3e2"},
+ {file = "cx_Freeze-7.2.9-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:da4a53eb03e31762aa7778986242ddcb05dfa68baedd623cf081fcdff6c5686a"},
+ {file = "cx_Freeze-7.2.9-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:9d31bba1d455b2f44847e53c32261636186e09713eaa8c4657f69ffc759cb014"},
+ {file = "cx_Freeze-7.2.9-cp310-cp310-win32.whl", hash = "sha256:fcea89dd94b4c029b8a214c65e38be4ac76c023f4a2d93b35072d46baf46e732"},
+ {file = "cx_Freeze-7.2.9-cp310-cp310-win_amd64.whl", hash = "sha256:c3abd755870855c664c213af6e116d2672bb688d687b85c68347cb2090c7a3fc"},
+ {file = "cx_Freeze-7.2.9-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:92bdd6db2f6239ccc57380d09e33a7b6132018c52a825e5b04a23e5c9c5b5b88"},
+ {file = "cx_Freeze-7.2.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dcd714dfadb2dcb34e7eb65323af6f16191bbf20dc6ab45f20a8c49438ace6c"},
+ {file = "cx_Freeze-7.2.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad95edf673f1bfdfa89c8fcee8919388456a049ba497016cba9af8bf6a832756"},
+ {file = "cx_Freeze-7.2.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0f8e77135782f389432428bee9320fc24357fc88fc70580a4764a08218660ae0"},
+ {file = "cx_Freeze-7.2.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3d61680bc7ff133235e31851858e5ca5c52a5e6389c879563c34d38213fb63c9"},
+ {file = "cx_Freeze-7.2.9-cp311-cp311-win32.whl", hash = "sha256:7c479d5946ceb41f3de4c99442eb515b9632fe5bd48e187f4a3822513577f3b0"},
+ {file = "cx_Freeze-7.2.9-cp311-cp311-win_amd64.whl", hash = "sha256:84b1fb01d9342aa831fa36ac68f258e829bc1d57fdb8e920e01ac71db8b7498d"},
+ {file = "cx_Freeze-7.2.9-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:62301b2ecfd1619e67250e4fb6befb1d39a5d4cea48489397123e17e258ad131"},
+ {file = "cx_Freeze-7.2.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e791282c84059b2057c7193af36438b4cba414e0c18570cfbaed0a8cfc91eb05"},
+ {file = "cx_Freeze-7.2.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b5628cdc94e6689454fc3f37cc059b629551ea77059420ab986d8f3cbb60abf8"},
+ {file = "cx_Freeze-7.2.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7276364aa4403436f04f2874575e862e8f4bcf3097b468626b91d8d69ee07cb2"},
+ {file = "cx_Freeze-7.2.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:334f6f2aeae0182d39cb91ba83709d3ffbbb4d11b2977723c328696c0f027f25"},
+ {file = "cx_Freeze-7.2.9-cp312-cp312-win32.whl", hash = "sha256:d4775c32f902f9d6bf81f8206782ab8a45ed7ce0384fcdaa5fb4fb62750ce282"},
+ {file = "cx_Freeze-7.2.9-cp312-cp312-win_amd64.whl", hash = "sha256:5febd7b5cfa5b9c8f146b36cc7692c16f6e3b0894d3963d4ed1d6d942f14b458"},
+ {file = "cx_Freeze-7.2.9-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7811dab75ac91614b326b3b27f23a7d175dc22cabeff70b081c74eeb48534a51"},
+ {file = "cx_Freeze-7.2.9-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08f419be71b24a0f42cb012e6925fdc349db4ba09f8fb4918af4baa97a3b3b5e"},
+ {file = "cx_Freeze-7.2.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22c926ac81b692b03d20c558a81ff803082941a99688992ac320b6a846685e61"},
+ {file = "cx_Freeze-7.2.9-cp38-cp38-win32.whl", hash = "sha256:ec1d9b85654f8c65cec372057774d00be443107b9cb8cb7612d0cf96b9f1beb3"},
+ {file = "cx_Freeze-7.2.9-cp38-cp38-win_amd64.whl", hash = "sha256:c0fb3dc7a049f2860193cf4725c945ddf5597ec34d04b4c4d0666f52ed33dc72"},
+ {file = "cx_Freeze-7.2.9-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9de0775c73d1221732015e9b1920f12f0abdc3a74a092167b0d5744ef3000575"},
+ {file = "cx_Freeze-7.2.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:affba29d80da62b7da6817ff4e5a29a46f8621b7b5d1de6abffa0e356351170d"},
+ {file = "cx_Freeze-7.2.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5c3981910dbbd8930014210dcbc544e4573ad7e4968213318984148a159247b"},
+ {file = "cx_Freeze-7.2.9-cp39-cp39-win32.whl", hash = "sha256:1a83e9007758d66d2f0f6cca74e046445a13b3e45acd03888e224df85def42d4"},
+ {file = "cx_Freeze-7.2.9-cp39-cp39-win_amd64.whl", hash = "sha256:cb502e8599a3e1d06bdcbbb367edc9ada8b99decf3e55ccd2b67a09ea0aab9dd"},
+ {file = "cx_freeze-7.2.9.tar.gz", hash = "sha256:5aae3089b62d6863c0661d1c3117505ab0ae0f8962e1feca137329a175c9979d"},
]
[package.dependencies]
-cx-Logging = {version = ">=3.1", markers = "sys_platform == \"win32\""}
-lief = {version = ">=0.12.0,<=0.14.0", markers = "sys_platform == \"win32\""}
-patchelf = {version = ">=0.14", markers = "sys_platform == \"linux\" and (platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"i686\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or platform_machine == \"x86_64\")"}
-setuptools = ">=62.6,<70"
-wheel = ">=0.38.4"
+cx_Logging = {version = ">=3.1", markers = "sys_platform == \"win32\""}
+dmgbuild = {version = ">=1.6.1", markers = "sys_platform == \"darwin\""}
+filelock = {version = ">=3.12.3", markers = "sys_platform == \"linux\""}
+importlib_metadata = {version = ">=6", markers = "python_full_version < \"3.10.2\""}
+lief = {version = ">=0.13.2,<=0.16.2", markers = "sys_platform == \"win32\""}
+packaging = ">=24"
+patchelf = {version = ">=0.14", markers = "sys_platform == \"linux\" and (platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\")"}
+setuptools = ">=65.6.3,<76"
+tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""}
[package.extras]
-dev = ["bump-my-version (==0.11.0)", "cibuildwheel (>=2.13.1)", "pre-commit (>=2.21.0)", "pylint (>=2.17.6)"]
-doc = ["furo (==2023.9.10)", "sphinx (>=7.1.2,<=7.2.6)", "sphinx-new-tab-link (==0.2.1)", "sphinx-tabs (==3.4.5)"]
-test = ["pytest (>=7.4.0)", "pytest-cov (>=4.1.0)", "pytest-datafiles (>=3.0.0)", "pytest-mock (>=3.11.1)", "pytest-timeout (>=2.1.0)", "pytest-xdist[psutil] (>=3.3.1)"]
+dev = ["bump-my-version (==0.29.0)", "cibuildwheel (==2.22.0)", "pre-commit (>=3.5.0,<=3.8.0)"]
+doc = ["furo (==2024.8.6)", "myst-parser (>=3.0.1,<=4.0.0)", "sphinx (>=7.1.2,<8)", "sphinx-new-tab-link (>=0.6.0)", "sphinx-tabs (==3.4.7)"]
+tests = ["coverage (>=7.6.1)", "pluggy (==1.5.0)", "pytest (==8.3.4)", "pytest-cov (==5.0.0)", "pytest-datafiles (==3.0.0)", "pytest-mock (==3.14.0)", "pytest-timeout (==2.3.1)", "pytest-xdist (==3.6.1)"]
[[package]]
name = "cx-logging"
@@ -470,6 +488,8 @@ version = "3.1.0"
description = "Python and C interfaces for logging"
optional = false
python-versions = ">=3.7"
+groups = ["dev"]
+markers = "sys_platform == \"win32\""
files = [
{file = "cx_Logging-3.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d6aee2d91d4abeafa8ae1a5cacdcc363031ab6e69a3c5b221b294f5b94b0830"},
{file = "cx_Logging-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7f2d686ca7347e14d248e4f57279b9340b305f86888806313111ab7964835f4"},
@@ -500,6 +520,8 @@ version = "3.0.8"
description = "The Cython compiler for writing C extensions in the Python language."
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "Cython-3.0.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a846e0a38e2b24e9a5c5dc74b0e54c6e29420d88d1dafabc99e0fc0f3e338636"},
{file = "Cython-3.0.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45523fdc2b78d79b32834cc1cc12dc2ca8967af87e22a3ee1bff20e77c7f5520"},
@@ -561,35 +583,81 @@ files = [
{file = "Cython-3.0.8.tar.gz", hash = "sha256:8333423d8fd5765e7cceea3a9985dd1e0a5dfeb2734629e1a2ed2d6233d39de6"},
]
+[[package]]
+name = "dmgbuild"
+version = "1.6.4"
+description = "macOS command line utility to build disk images"
+optional = false
+python-versions = ">=3.9"
+groups = ["dev"]
+markers = "sys_platform == \"darwin\""
+files = [
+ {file = "dmgbuild-1.6.4-py3-none-any.whl", hash = "sha256:53a2f0a9e65111314fce7ecfb6637d08bc3186fa99e719abc9a5af2b484a7d65"},
+ {file = "dmgbuild-1.6.4.tar.gz", hash = "sha256:adacada75ee517398d014e3fb250b004a2225f01e54832df52d38b9cd1530b74"},
+]
+
+[package.dependencies]
+ds_store = ">=1.1.0"
+mac_alias = ">=2.0.1"
+
+[package.extras]
+dev = ["coverage (==7.6.10)", "pre-commit (==4.0.1)", "pytest (==8.3.4)", "tox (==4.23.2)"]
+docs = ["furo (==2024.8.6)", "sphinx (==8.1.3)", "sphinx-autobuild (==2024.10.3)"]
+
[[package]]
name = "dnspython"
-version = "2.5.0"
+version = "2.7.0"
description = "DNS toolkit"
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
- {file = "dnspython-2.5.0-py3-none-any.whl", hash = "sha256:6facdf76b73c742ccf2d07add296f178e629da60be23ce4b0a9c927b1e02c3a6"},
- {file = "dnspython-2.5.0.tar.gz", hash = "sha256:a0034815a59ba9ae888946be7ccca8f7c157b286f8455b379c692efb51022a15"},
+ {file = "dnspython-2.7.0-py3-none-any.whl", hash = "sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86"},
+ {file = "dnspython-2.7.0.tar.gz", hash = "sha256:ce9c432eda0dc91cf618a5cedf1a4e142651196bbcd2c80e89ed5a907e5cfaf1"},
]
[package.extras]
-dev = ["black (>=23.1.0)", "coverage (>=7.0)", "flake8 (>=5.0.3)", "mypy (>=1.0.1)", "pylint (>=2.7)", "pytest (>=6.2.5)", "pytest-cov (>=3.0.0)", "sphinx (>=7.0.0)", "twine (>=4.0.0)", "wheel (>=0.41.0)"]
-dnssec = ["cryptography (>=41)"]
-doh = ["h2 (>=4.1.0)", "httpcore (>=0.17.3)", "httpx (>=0.25.1)"]
-doq = ["aioquic (>=0.9.20)"]
-idna = ["idna (>=2.1)"]
-trio = ["trio (>=0.14)"]
+dev = ["black (>=23.1.0)", "coverage (>=7.0)", "flake8 (>=7)", "hypercorn (>=0.16.0)", "mypy (>=1.8)", "pylint (>=3)", "pytest (>=7.4)", "pytest-cov (>=4.1.0)", "quart-trio (>=0.11.0)", "sphinx (>=7.2.0)", "sphinx-rtd-theme (>=2.0.0)", "twine (>=4.0.0)", "wheel (>=0.42.0)"]
+dnssec = ["cryptography (>=43)"]
+doh = ["h2 (>=4.1.0)", "httpcore (>=1.0.0)", "httpx (>=0.26.0)"]
+doq = ["aioquic (>=1.0.0)"]
+idna = ["idna (>=3.7)"]
+trio = ["trio (>=0.23)"]
wmi = ["wmi (>=1.5.1)"]
[[package]]
-name = "eventlet"
-version = "0.35.1"
-description = "Highly concurrent networking library"
+name = "ds-store"
+version = "1.3.1"
+description = "Manipulate Finder .DS_Store files from Python"
optional = false
python-versions = ">=3.7"
+groups = ["dev"]
+markers = "sys_platform == \"darwin\""
files = [
- {file = "eventlet-0.35.1-py3-none-any.whl", hash = "sha256:7ed9493b26e02f575f4804ef263190839e9651989523f6f8f9c2866a05c12c83"},
- {file = "eventlet-0.35.1.tar.gz", hash = "sha256:3b2eede94d64538cb894eec50302a881e056ed7e057f0e24fb45b28a19d6b2e8"},
+ {file = "ds_store-1.3.1-py3-none-any.whl", hash = "sha256:fbacbb0bd5193ab3e66e5a47fff63619f15e374ffbec8ae29744251a6c8f05b5"},
+ {file = "ds_store-1.3.1.tar.gz", hash = "sha256:c27d413caf13c19acb85d75da4752673f1f38267f9eb6ba81b3b5aa99c2d207c"},
+]
+
+[package.dependencies]
+mac-alias = ">=2.0.1"
+
+[package.extras]
+dev = ["pre-commit", "tox"]
+docs = ["sphinx", "sphinx-autobuild", "sphinx-rtd-theme"]
+test = ["pytest", "pytest-cov", "pytest-tldr"]
+
+[[package]]
+name = "eventlet"
+version = "0.39.0"
+description = "Highly concurrent networking library"
+optional = false
+python-versions = ">=3.8"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
+files = [
+ {file = "eventlet-0.39.0-py3-none-any.whl", hash = "sha256:9522ca09ad4c1f874c238f06492a7e217ddb13bdeace4475d3b700dd0ba1f6be"},
+ {file = "eventlet-0.39.0.tar.gz", hash = "sha256:01ba0aa6ee2452690fc02b274a2409598a13b997c7b5af9dc66600fa42015a79"},
]
[package.dependencies]
@@ -605,6 +673,8 @@ version = "1.2.0"
description = "Backport of PEP 654 (exception groups)"
optional = false
python-versions = ">=3.7"
+groups = ["dev"]
+markers = "python_version < \"3.11\" and (platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\")"
files = [
{file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"},
{file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"},
@@ -613,12 +683,32 @@ files = [
[package.extras]
test = ["pytest (>=6)"]
+[[package]]
+name = "filelock"
+version = "3.17.0"
+description = "A platform independent file lock."
+optional = false
+python-versions = ">=3.9"
+groups = ["dev"]
+markers = "sys_platform == \"linux\" and (platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\")"
+files = [
+ {file = "filelock-3.17.0-py3-none-any.whl", hash = "sha256:533dc2f7ba78dc2f0f531fc6c4940addf7b70a481e269a5a3b93be94ffbe8338"},
+ {file = "filelock-3.17.0.tar.gz", hash = "sha256:ee4e77401ef576ebb38cd7f13b9b28893194acc20a8e68e18730ba9c0e54660e"},
+]
+
+[package.extras]
+docs = ["furo (>=2024.8.6)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"]
+testing = ["covdefaults (>=2.3)", "coverage (>=7.6.10)", "diff-cover (>=9.2.1)", "pytest (>=8.3.4)", "pytest-asyncio (>=0.25.2)", "pytest-cov (>=6)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.28.1)"]
+typing = ["typing-extensions (>=4.12.2)"]
+
[[package]]
name = "flask"
version = "2.3.2"
description = "A simple framework for building complex web applications."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "Flask-2.3.2-py3-none-any.whl", hash = "sha256:77fd4e1249d8c9923de34907236b747ced06e5467ecac1a7bb7115ae0e9670b0"},
{file = "Flask-2.3.2.tar.gz", hash = "sha256:8c2f9abd47a9e8df7f0c3f091ce9497d011dc3b31effcf4c85a6e2b50f4114ef"},
@@ -627,7 +717,6 @@ files = [
[package.dependencies]
blinker = ">=1.6.2"
click = ">=8.1.3"
-importlib-metadata = {version = ">=3.6.0", markers = "python_version < \"3.10\""}
itsdangerous = ">=2.1.2"
Jinja2 = ">=3.1.2"
Werkzeug = ">=2.3.3"
@@ -642,6 +731,8 @@ version = "1.14"
description = "Compress responses in your Flask app with gzip, deflate or brotli."
optional = false
python-versions = "*"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "Flask-Compress-1.14.tar.gz", hash = "sha256:e46528f37b91857012be38e24e65db1a248662c3dc32ee7808b5986bf1d123ee"},
{file = "Flask_Compress-1.14-py3-none-any.whl", hash = "sha256:b86c9808f0f38ea2246c9730972cf978f2cdf6a9a1a69102ba81e07891e6b26c"},
@@ -658,6 +749,8 @@ version = "5.3.4"
description = "Socket.IO integration for Flask applications"
optional = false
python-versions = ">=3.6"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "Flask-SocketIO-5.3.4.tar.gz", hash = "sha256:1cbd379c9bf68ac37bcc4750d01708922fa6365d13a5447d3f8893792879410c"},
{file = "Flask_SocketIO-5.3.4-py3-none-any.whl", hash = "sha256:564acfb24dcc9545cdae536cde0323653d9b547069a925f11eeb132338aa71c0"},
@@ -673,6 +766,8 @@ version = "23.9.1"
description = "Coroutine-based network library"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "gevent-23.9.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:a3c5e9b1f766a7a64833334a18539a362fb563f6c4682f9634dea72cbe24f771"},
{file = "gevent-23.9.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b101086f109168b23fa3586fccd1133494bdb97f86920a24dc0b23984dc30b69"},
@@ -738,6 +833,8 @@ version = "0.10.1"
description = "Websocket handler for the gevent pywsgi server, a Python network library"
optional = false
python-versions = "*"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "gevent-websocket-0.10.1.tar.gz", hash = "sha256:7eaef32968290c9121f7c35b973e2cc302ffb076d018c9068d2f5ca8b2d85fb0"},
{file = "gevent_websocket-0.10.1-py3-none-any.whl", hash = "sha256:17b67d91282f8f4c973eba0551183fc84f56f1c90c8f6b6b30256f31f66f5242"},
@@ -752,6 +849,8 @@ version = "3.0.3"
description = "Lightweight in-process concurrent programming"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "greenlet-3.0.3-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:9da2bd29ed9e4f15955dd1595ad7bc9320308a3b766ef7f837e23ad4b4aac31a"},
{file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d353cadd6083fdb056bb46ed07e4340b0869c305c8ca54ef9da3421acbdf6881"},
@@ -823,6 +922,8 @@ version = "0.14.0"
description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"},
{file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"},
@@ -830,21 +931,28 @@ files = [
[[package]]
name = "idna"
-version = "3.6"
+version = "3.10"
description = "Internationalized Domain Names in Applications (IDNA)"
optional = false
-python-versions = ">=3.5"
+python-versions = ">=3.6"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
- {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"},
- {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"},
+ {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"},
+ {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"},
]
+[package.extras]
+all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"]
+
[[package]]
name = "importlib-metadata"
version = "7.0.1"
description = "Read metadata from Python packages"
optional = false
python-versions = ">=3.8"
+groups = ["dev"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "importlib_metadata-7.0.1-py3-none-any.whl", hash = "sha256:4805911c3a4ec7c3966410053e9ec6a1fecd629117df5adee56dfc9432a1081e"},
{file = "importlib_metadata-7.0.1.tar.gz", hash = "sha256:f238736bb06590ae52ac1fab06a3a9ef1d8dce2b7a35b5ab329371d6c8f5d2cc"},
@@ -864,6 +972,8 @@ version = "2.0.0"
description = "brain-dead simple config-ini parsing"
optional = false
python-versions = ">=3.7"
+groups = ["dev"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"},
{file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"},
@@ -875,6 +985,8 @@ version = "2.1.2"
description = "Safely pass data to untrusted environments and back."
optional = false
python-versions = ">=3.7"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "itsdangerous-2.1.2-py3-none-any.whl", hash = "sha256:2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44"},
{file = "itsdangerous-2.1.2.tar.gz", hash = "sha256:5dbbc68b317e5e42f327f9021763545dc3fc3bfe22e6deb96aaf1fc38874156a"},
@@ -882,13 +994,15 @@ files = [
[[package]]
name = "jinja2"
-version = "3.1.3"
+version = "3.1.5"
description = "A very fast and expressive template engine."
optional = false
python-versions = ">=3.7"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
- {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"},
- {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"},
+ {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"},
+ {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"},
]
[package.dependencies]
@@ -899,49 +1013,83 @@ i18n = ["Babel (>=2.7)"]
[[package]]
name = "lief"
-version = "0.14.0"
+version = "0.16.2"
description = "Library to instrument executable formats"
optional = false
python-versions = ">=3.8"
+groups = ["dev"]
+markers = "sys_platform == \"win32\""
files = [
- {file = "lief-0.14.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b1e9af189e0dcbd6ce9ce67266135ef288c9b8f9a5efe2a47d0d0266288713cf"},
- {file = "lief-0.14.0-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:60be24af0b913a79922a9730302df5f380954a1d7b1c0c7de91b8918e36f0756"},
- {file = "lief-0.14.0-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:1d949c53f95132ef0d218e88c3c982610c54426249c95f99b736e5c15bb1b75b"},
- {file = "lief-0.14.0-cp310-cp310-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl", hash = "sha256:51e7adfe1cc574a035b47a280cb5902cec6deb2d78ef0b47c536bdd75dfa6956"},
- {file = "lief-0.14.0-cp310-cp310-win32.whl", hash = "sha256:b34708c002c119f43998af3c4f219d06de6b66a34aceb298fd8bba8247e57572"},
- {file = "lief-0.14.0-cp310-cp310-win_amd64.whl", hash = "sha256:684c1500fddab8aaf5a4f74cd092ea190c4c837d31c5d087c68a9f175775c2db"},
- {file = "lief-0.14.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:737bd6fab74e222968936794e09b2bf399417c38a3bc13d6ad70836793e78586"},
- {file = "lief-0.14.0-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:ff42aa1f12d3dc8bc5641eb1991269fb92e43bae386559ad576c97ffa09639f2"},
- {file = "lief-0.14.0-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:69df631cd0573388fa6891277d006f8da2fa42a5bbe3acc440b66a7352f6bef3"},
- {file = "lief-0.14.0-cp311-cp311-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl", hash = "sha256:b850f38b62ca8a92c7f9803ceac0e79369b732a75e627cba3c2b8f1fa729f643"},
- {file = "lief-0.14.0-cp311-cp311-win32.whl", hash = "sha256:ba29aabd72e92334d54883d58b108f80465973edaec3e27cb422abbc657bfe17"},
- {file = "lief-0.14.0-cp311-cp311-win_amd64.whl", hash = "sha256:33f2afdf9f00a8a208d5f32135834fc5f02bd12e8b14f0857cf14d4475ad03bb"},
- {file = "lief-0.14.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:70b53498390e8b95d878598c95bd068f5c86cab415c3869538fbce4cee36a9cc"},
- {file = "lief-0.14.0-cp312-cp312-macosx_11_0_x86_64.whl", hash = "sha256:c49d34c9140a4b77046137ceeeb872f26262447f514ccbf0cc985a91e59e7f69"},
- {file = "lief-0.14.0-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:46808f2ec6903d8a4a4a4975d664e70c64ca11691bacb391a51029a8cb941e92"},
- {file = "lief-0.14.0-cp312-cp312-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl", hash = "sha256:4e6ca44bc9d0d314ac73148c64e4f9182c950a2f2024ab9d3d7100635d46261a"},
- {file = "lief-0.14.0-cp312-cp312-win32.whl", hash = "sha256:17e2809fa52e377d1a5045dbbbdea8bebbaad7f672d6c133287388e7e9942b64"},
- {file = "lief-0.14.0-cp312-cp312-win_amd64.whl", hash = "sha256:5713e27ba7bbe7c8c503354f3555a33e69d5236a02dd34d162156cc85a9b88b5"},
- {file = "lief-0.14.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9998bd60d332b50f72fb71d22316b227f9fdbb301c953e8aa003822a80a6ed0a"},
- {file = "lief-0.14.0-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:fe783a180d63aa3ae19c5f58dc76afc179f40249c4c77d9f70bc557255b4051b"},
- {file = "lief-0.14.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:28e847e8410b9101f49af0ae9d06e7cb2d0db64c47442ac4c79abf1b15b2c108"},
- {file = "lief-0.14.0-cp38-cp38-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl", hash = "sha256:4a44d5bd2462c9db68227ed9193243c412ce6153fe6a8e53782ff4210e4606ab"},
- {file = "lief-0.14.0-cp38-cp38-win32.whl", hash = "sha256:0a0754079d595c9e3ceffed9e32d309ed139b1433fad9ad37aaa35e6a8e67d70"},
- {file = "lief-0.14.0-cp38-cp38-win_amd64.whl", hash = "sha256:bc8647f050728c09645666765de6dcbc681df7b0b6bdcfb4cdbbb96a523d2eaa"},
- {file = "lief-0.14.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7f89b8e3cc6aa01f50a8ed58d5aea89f6d767df7951fd050659e9617c1b4eb45"},
- {file = "lief-0.14.0-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:110705c186f2ddc13fc2fad0dc9d501742d785b934103fdf56e86a86bcbcac1d"},
- {file = "lief-0.14.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:0ba07f12c00950554d29495c3aef3740c44243d1c0d80a3f8dadf64c456a32e7"},
- {file = "lief-0.14.0-cp39-cp39-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl", hash = "sha256:f237042467f41bf0e64b051e780865f9aef958ddec1a358317cc259da2ec2a16"},
- {file = "lief-0.14.0-cp39-cp39-win32.whl", hash = "sha256:75c7daefe56ba91ad4fc0a5e6573ca3c79dea2e938787b285b31ac0c25c5e5c3"},
- {file = "lief-0.14.0-cp39-cp39-win_amd64.whl", hash = "sha256:583d37400c85dc80299db873d380c0901995ae03606f7de50fd3d0538e7a7860"},
+ {file = "lief-0.16.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:485934b69ecc0b4caf0224f270b05870f5e3db9d5978d75fab39982e01d81080"},
+ {file = "lief-0.16.2-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:c60a0c497de2369c5c10dc8388085c1a6ad2ac03036cf79295c79cd94392ed47"},
+ {file = "lief-0.16.2-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:1ede4cf71ff9b25750340877ba016bb96a0f5bfb860c410774129e9d52fe3580"},
+ {file = "lief-0.16.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:94434ebbffd26828643fa2a5e59755cd8632c9c90fff859929e8dc58057110e6"},
+ {file = "lief-0.16.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1a70b4eda4508cc353f962c83cf3615f3435d3681a986c45d0e8aa0c347b7c26"},
+ {file = "lief-0.16.2-cp310-cp310-win32.whl", hash = "sha256:0b12a10bdac32b9111e2fc2ca2a38257250c9d134a360d3294d8a0e79c878654"},
+ {file = "lief-0.16.2-cp310-cp310-win_amd64.whl", hash = "sha256:0602df0b41fa468896c4d0a455e06f0aef6224be76cf7b7c4a3e349f5a1a4a3d"},
+ {file = "lief-0.16.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:41b8c2f64d74ee85ca96af67347cbdd92c5562b5500b9be9882988f0c4134335"},
+ {file = "lief-0.16.2-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:f2284379d84d414150c7e935e70ef06d72298a28f9fda025daaf0698fcea4dcd"},
+ {file = "lief-0.16.2-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:ed3e8122c6d3f845ba4f8a3135dc53fd796156de14d8dbdc3ba310ebbeae6b69"},
+ {file = "lief-0.16.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:3b11d0f59bbea089872a433993e8b4078d8138939e9bd1f294ca0238b1d3fb47"},
+ {file = "lief-0.16.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0c2d766481bd0dbdaa6c4c0a20e5da8d44ad163b5120c9db91ecea92661fda01"},
+ {file = "lief-0.16.2-cp311-cp311-win32.whl", hash = "sha256:9b977e0709beb658898025b6a21dc5f59ce484340473fa0b69ce9659400d3ac3"},
+ {file = "lief-0.16.2-cp311-cp311-win_amd64.whl", hash = "sha256:ea1ebaa74bc021f7881aa8e67875e3736526f039c7811f92aa1fe8a4520224d8"},
+ {file = "lief-0.16.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8e9499516d469ef5a62afeb0ab404ba7c30c05ec197a1775ddb9cdcbbfddd2e6"},
+ {file = "lief-0.16.2-cp312-cp312-macosx_11_0_x86_64.whl", hash = "sha256:b96a5e4656ca2f929b4d7aa631661de47de683eb2c623d039105b5727811fdff"},
+ {file = "lief-0.16.2-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:220ff69e5c0bae8bc114120c7a49485962c58e932a26bb0e9746a17ebfda552d"},
+ {file = "lief-0.16.2-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:0b7e4e55ded9897867930a15a553dd29e633b4fbf4b5db15ee1a4e0b8b35f469"},
+ {file = "lief-0.16.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4dbc93b5781c9265f682345c07fa817e46a3d89893a597e4b10c4411a8d3f5a5"},
+ {file = "lief-0.16.2-cp312-cp312-win32.whl", hash = "sha256:2d0352eb57cf9876e37ff84e805cf015455bcae5d4da3c1ba310970a6929ecd6"},
+ {file = "lief-0.16.2-cp312-cp312-win_amd64.whl", hash = "sha256:5d57f763429f6c2ce1a8e6928035809b7ffc29d794928d22f41a157a78a51c72"},
+ {file = "lief-0.16.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5a32212a9ff4e20a1dcd091ca136e871cccd8a37932df2415e9d3c9debe9908a"},
+ {file = "lief-0.16.2-cp313-cp313-macosx_11_0_x86_64.whl", hash = "sha256:bb6bb1284b27e0f013b5cad1163ea87433b338ea3ecec37f7981dc756d77f703"},
+ {file = "lief-0.16.2-cp313-cp313-manylinux2014_aarch64.whl", hash = "sha256:6f41849881fff72fa26f360353d052cd8d1787b6b05e39f35f78d43520b51435"},
+ {file = "lief-0.16.2-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:df6c91a1a9d7f3ae53a075ad0165bdefe30d041114cb26baca287e663d76b32a"},
+ {file = "lief-0.16.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2b16db951aeff911d092655ad741d3d4fefca387f3c5ee903255663e15a695ad"},
+ {file = "lief-0.16.2-cp313-cp313-win32.whl", hash = "sha256:d9daf7742cc95f6e22d06c140014bee46b942ee4e7cb3c8ecff95d736233073c"},
+ {file = "lief-0.16.2-cp313-cp313-win_amd64.whl", hash = "sha256:f040368d927ca494309de8742b0b7d1d80e234989f36cffc4587530a073a543e"},
+ {file = "lief-0.16.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:662ab75cd84253990c169e3df04ed3ef9f00e62c1b75f7e13311d26b97e792ed"},
+ {file = "lief-0.16.2-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:ed96b36e3079f3952367b3ca94e981a9072b4d0b50e137d5943360458c972e93"},
+ {file = "lief-0.16.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:2250a9f88705d9fec1d06f152e2394122f3213d7f44ef098fd9d2412d1e7550a"},
+ {file = "lief-0.16.2-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:21854699c49f29dc4c6e055f6a960e358b63300dd3ae08e01a8698897a7d59f1"},
+ {file = "lief-0.16.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:1196109cd92765df3ef4407c0dc31c7fc52b7ff684e4fa127f97dcff06217399"},
+ {file = "lief-0.16.2-cp38-cp38-win32.whl", hash = "sha256:ce9f16268dc0576980aba1a6c6bfb00257633668090d172b455b52ca65f2bb26"},
+ {file = "lief-0.16.2-cp38-cp38-win_amd64.whl", hash = "sha256:2d82fb194458dd89c240f32840b65a1a5c76d584d58e7cff932cdcb7f9504a0c"},
+ {file = "lief-0.16.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:229c7ce3d605519d9305a4e704018669a0cc731fcb501c95e01a9a7b79291999"},
+ {file = "lief-0.16.2-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:a96e862554ca25fd7083dc0df8b8617fa71426027922f4a2e2073a0104d18aae"},
+ {file = "lief-0.16.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:80d43bc271ef5873bb826d8a71815085f0873870ed1050ddb870222062116e2e"},
+ {file = "lief-0.16.2-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:9aaf695df03f06c89c2a617279d7043168457465bc14ce1a273a798858881106"},
+ {file = "lief-0.16.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ce762fb0c22d70a150ab79351f4eb4c14e24e61cc26c5c5ead9be47059e3a41c"},
+ {file = "lief-0.16.2-cp39-cp39-win32.whl", hash = "sha256:e6cb2933f5758f1af199622f11449c8dcdff4f59cd16c1634a01410895b37fb0"},
+ {file = "lief-0.16.2-cp39-cp39-win_amd64.whl", hash = "sha256:7954494d03264da1e76174d98f0a8f233bb272c44165d0302aa6f6014030d9c0"},
]
+[[package]]
+name = "mac-alias"
+version = "2.2.2"
+description = "Generate/parse Mac OS Alias records from Python"
+optional = false
+python-versions = ">=3.7"
+groups = ["dev"]
+markers = "sys_platform == \"darwin\""
+files = [
+ {file = "mac_alias-2.2.2-py3-none-any.whl", hash = "sha256:504ab8ac546f35bbd75ad014d6ad977c426660aa721f2cd3acf3dc2f664141bd"},
+ {file = "mac_alias-2.2.2.tar.gz", hash = "sha256:c99c728eb512e955c11f1a6203a0ffa8883b26549e8afe68804031aa5da856b7"},
+]
+
+[package.extras]
+dev = ["pre-commit", "tox"]
+docs = ["sphinx", "sphinx-autobuild", "sphinx-rtd-theme"]
+test = ["pytest", "pytest-cov", "pytest-tldr"]
+
[[package]]
name = "markupsafe"
version = "2.1.5"
description = "Safely add untrusted strings to HTML/XML markup."
optional = false
python-versions = ">=3.7"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"},
{file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"},
@@ -1011,6 +1159,8 @@ version = "1.0.0"
description = "Type system extensions for programs checked with the mypy type checker."
optional = false
python-versions = ">=3.5"
+groups = ["dev"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"},
{file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"},
@@ -1018,10 +1168,12 @@ files = [
[[package]]
name = "onionshare-cli"
-version = "2.6.2"
+version = "2.6.3"
description = "OnionShare lets you securely and anonymously send and receive files. It works by starting a web server, making it accessible as a Tor onion service, and generating an unguessable web address so others can download files from you, or upload files to you. It does _not_ require setting up a separate server or using a third party file-sharing service."
optional = false
-python-versions = ">=3.8,<3.12"
+python-versions = ">=3.9,<3.13"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = []
develop = true
@@ -1036,18 +1188,18 @@ flask-compress = "^1.13"
flask-socketio = "5.3.4"
gevent = "^23.9.1"
gevent-websocket = "*"
-packaging = "^23.1"
+packaging = ">=24"
psutil = "*"
pynacl = "*"
pysocks = "*"
qrcode = "^7.4.2"
requests = {version = "*", extras = ["socks"]}
-setuptools = "*"
+setuptools = ">=70.0.0"
stem = "1.8.1"
unidecode = "*"
-urllib3 = "*"
-waitress = "^2.1.2"
-werkzeug = ">=2.3.4"
+urllib3 = "^2.2.2"
+waitress = "^3.0.1"
+werkzeug = "3.0.6"
wheel = "^0.41.2"
[package.source]
@@ -1056,13 +1208,15 @@ url = "../cli"
[[package]]
name = "packaging"
-version = "23.2"
+version = "24.2"
description = "Core utilities for Python packages"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+groups = ["main", "dev"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
- {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"},
- {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"},
+ {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"},
+ {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"},
]
[[package]]
@@ -1071,6 +1225,8 @@ version = "0.17.2.1"
description = "A small utility to modify the dynamic linker and RPATH of ELF executables."
optional = false
python-versions = "*"
+groups = ["dev"]
+markers = "sys_platform == \"linux\" and (platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\")"
files = [
{file = "patchelf-0.17.2.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:fc329da0e8f628bd836dfb8eaf523547e342351fa8f739bf2b3fe4a6db5a297c"},
{file = "patchelf-0.17.2.1-py2.py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.musllinux_1_1_armv7l.whl", hash = "sha256:ccb266a94edf016efe80151172c26cff8c2ec120a57a1665d257b0442784195d"},
@@ -1090,6 +1246,8 @@ version = "0.12.1"
description = "Utility library for gitignore style pattern matching of file paths."
optional = false
python-versions = ">=3.8"
+groups = ["dev"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"},
{file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"},
@@ -1101,6 +1259,8 @@ version = "4.2.0"
description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
optional = false
python-versions = ">=3.8"
+groups = ["dev"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"},
{file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"},
@@ -1116,6 +1276,8 @@ version = "1.4.0"
description = "plugin and hook calling mechanisms for python"
optional = false
python-versions = ">=3.8"
+groups = ["dev"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"},
{file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"},
@@ -1131,6 +1293,8 @@ version = "5.9.8"
description = "Cross-platform lib for process and system monitoring in Python."
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "psutil-5.9.8-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8"},
{file = "psutil-5.9.8-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73"},
@@ -1159,6 +1323,8 @@ version = "2.21"
description = "C parser in Python"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"},
{file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"},
@@ -1170,6 +1336,8 @@ version = "1.5.0"
description = "Python binding to the Networking and Cryptography (NaCl) library"
optional = false
python-versions = ">=3.6"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1"},
{file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92"},
@@ -1196,6 +1364,8 @@ version = "0.20220715.0"
description = "Pure Python library for saving and loading PNG images"
optional = false
python-versions = "*"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "pypng-0.20220715.0-py3-none-any.whl", hash = "sha256:4a43e969b8f5aaafb2a415536c1a8ec7e341cd6a3f957fd5b5f32a4cfeed902c"},
{file = "pypng-0.20220715.0.tar.gz", hash = "sha256:739c433ba96f078315de54c0db975aee537cbc3e1d0ae4ed9aab0ca1e427e2c1"},
@@ -1203,60 +1373,60 @@ files = [
[[package]]
name = "pyside6"
-version = "6.5.2"
+version = "6.8.2.1"
description = "Python bindings for the Qt cross-platform application and UI framework"
optional = false
-python-versions = "<3.12,>=3.7"
+python-versions = "<3.14,>=3.9"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
- {file = "PySide6-6.5.2-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:b509e4d3ffde4a594d70000f881452643c9aaed800bad2959882075c01f72428"},
- {file = "PySide6-6.5.2-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:e6d879ca0f8827a7866856fbedd08857e4bd8f9a858dc998dea10d1913e97938"},
- {file = "PySide6-6.5.2-cp37-abi3-win_amd64.whl", hash = "sha256:0356dc73c138c25b980d716e425801a61d4aa1d9f7811cf8a825499edfd4d1ae"},
- {file = "PySide6-6.5.2-pp39-pypy39_pp73-macosx_10_9_universal2.whl", hash = "sha256:f0944cb0da34dc3b0bb62c7a20b6618667760eccdaa4262a90ba7f64b19fb783"},
- {file = "PySide6-6.5.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:ca259b4377eb74e4c9cb74a2afb18c37658f0c83dc18229d1f325974739f6df2"},
- {file = "PySide6-6.5.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ad82cb12f805c5bec7693d6f1c0d6e4ae4b9462eb368a81bc0d3091de8fae76e"},
+ {file = "PySide6-6.8.2.1-cp39-abi3-macosx_12_0_universal2.whl", hash = "sha256:3fcb551729f235475b2abe7d919027de54a65d850e744f60716f890202273720"},
+ {file = "PySide6-6.8.2.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:23d2a1a77b25459a049c4276b4e0bbfb375b73d3921061b1a16bcfa64e1fe517"},
+ {file = "PySide6-6.8.2.1-cp39-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:bfefa80a93db06dc64c0e7beef0377c9b8ca51e007cfc34575defe065af893b6"},
+ {file = "PySide6-6.8.2.1-cp39-abi3-win_amd64.whl", hash = "sha256:92361e41727910e3560ea5ba494fabecc76cd20892c9fcb2ced07619081c4e65"},
]
[package.dependencies]
-PySide6-Addons = "6.5.2"
-PySide6-Essentials = "6.5.2"
-shiboken6 = "6.5.2"
+PySide6-Addons = "6.8.2.1"
+PySide6-Essentials = "6.8.2.1"
+shiboken6 = "6.8.2.1"
[[package]]
name = "pyside6-addons"
-version = "6.5.2"
+version = "6.8.2.1"
description = "Python bindings for the Qt cross-platform application and UI framework (Addons)"
optional = false
-python-versions = "<3.12,>=3.7"
+python-versions = "<3.14,>=3.9"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
- {file = "PySide6_Addons-6.5.2-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:a31cb7eca2e8cd80332e131124ed9ad197610a2a80eac4f2bd58e9124e38060a"},
- {file = "PySide6_Addons-6.5.2-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:bea98d823179b814109dcf3ac6c8a0eddf886570aa9ef8ef09b6bae37bc227ca"},
- {file = "PySide6_Addons-6.5.2-cp37-abi3-win_amd64.whl", hash = "sha256:c77e06fd511cc8b9292c01724504d6806c33c1f5904bc59f5a8c560a74c15438"},
- {file = "PySide6_Addons-6.5.2-pp39-pypy39_pp73-macosx_10_9_universal2.whl", hash = "sha256:15bf592e54b3409853c3db23bdb20fb14725b84d50feee862e8b2a3a8a3a0627"},
- {file = "PySide6_Addons-6.5.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:26b55a658fed94a0b3c09927b408663860aca530bf6e83040dcb8fdcc221877d"},
- {file = "PySide6_Addons-6.5.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:793a53b7db32f7780fa9571a14f0bce3700604247127cdb2125b380c577a92eb"},
+ {file = "PySide6_Addons-6.8.2.1-cp39-abi3-macosx_12_0_universal2.whl", hash = "sha256:5558816018042fecd0d782111ced529585a23ea9a010b518f8495764f578a01f"},
+ {file = "PySide6_Addons-6.8.2.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f3d85e676851ada8238bc76ebfacbee738fc0b35b3bc15c9765dd107b8ee6ec4"},
+ {file = "PySide6_Addons-6.8.2.1-cp39-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:d904179f16deeca4ba440b4ef78e8d54df2b994b46784ad9d53b741082f3b2a7"},
+ {file = "PySide6_Addons-6.8.2.1-cp39-abi3-win_amd64.whl", hash = "sha256:c761cc45022aa79d8419e671e7fb34a4a3e5b3826f1e68fcb819bd6e3a387fbb"},
]
[package.dependencies]
-PySide6-Essentials = "6.5.2"
-shiboken6 = "6.5.2"
+PySide6-Essentials = "6.8.2.1"
+shiboken6 = "6.8.2.1"
[[package]]
name = "pyside6-essentials"
-version = "6.5.2"
+version = "6.8.2.1"
description = "Python bindings for the Qt cross-platform application and UI framework (Essentials)"
optional = false
-python-versions = "<3.12,>=3.7"
+python-versions = "<3.14,>=3.9"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
- {file = "PySide6_Essentials-6.5.2-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:c9606de7afaee57f2c0861cc4b973bd630556dd38ec0d1542560cba81c27ab81"},
- {file = "PySide6_Essentials-6.5.2-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1620e82b38714a1570b142c01694d0415a25526517b24620ff9b00c9f76cfca9"},
- {file = "PySide6_Essentials-6.5.2-cp37-abi3-win_amd64.whl", hash = "sha256:e67b10f96f0ac5ed24d7e3c4985d37c70550a9dee6f38b127faf5e5341151665"},
- {file = "PySide6_Essentials-6.5.2-pp39-pypy39_pp73-macosx_10_9_universal2.whl", hash = "sha256:149f1db77d82f35c6a88a403f5297645ebe737df28e163ac4dc402dfa0b961ee"},
- {file = "PySide6_Essentials-6.5.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4be6ed964cb863823f2788717b9a6ba8f1d94eb3fa2bf1584f4621ab5e021e27"},
- {file = "PySide6_Essentials-6.5.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:6b21cf78b33554f793d409d79b828d9578d34200c86f813ef1b8dac756589b71"},
+ {file = "PySide6_Essentials-6.8.2.1-cp39-abi3-macosx_12_0_universal2.whl", hash = "sha256:ae5cc48f7e9a08e73e3ec2387ce245c8150e620b8d5a87548ebd4b8e3aeae49b"},
+ {file = "PySide6_Essentials-6.8.2.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:5ab31e5395a4724102edd6e8ff980fa3f7cde2aa79050763a1dcc30bb914195a"},
+ {file = "PySide6_Essentials-6.8.2.1-cp39-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:7aed46f91d44399b4c713cf7387f5fb6f0114413fbcdbde493a528fb8e19f6ed"},
+ {file = "PySide6_Essentials-6.8.2.1-cp39-abi3-win_amd64.whl", hash = "sha256:18de224f09108998d194e60f2fb8a1e86367dd525dd8a6192598e80e6ada649e"},
]
[package.dependencies]
-shiboken6 = "6.5.2"
+shiboken6 = "6.8.2.1"
[[package]]
name = "pysocks"
@@ -1264,6 +1434,8 @@ version = "1.7.1"
description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information."
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "PySocks-1.7.1-py27-none-any.whl", hash = "sha256:08e69f092cc6dbe92a0fdd16eeb9b9ffbc13cadfe5ca4c7bd92ffb078b293299"},
{file = "PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5"},
@@ -1276,6 +1448,8 @@ version = "8.0.0"
description = "pytest: simple powerful testing with Python"
optional = false
python-versions = ">=3.8"
+groups = ["dev"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "pytest-8.0.0-py3-none-any.whl", hash = "sha256:50fb9cbe836c3f20f0dfa99c565201fb75dc54c8d76373cd1bde06b06657bdb6"},
{file = "pytest-8.0.0.tar.gz", hash = "sha256:249b1b0864530ba251b7438274c4d251c58d868edaaec8762893ad4a0d71c36c"},
@@ -1298,6 +1472,8 @@ version = "2.0.1"
description = "py.test plugin that activates the fault handler module for tests (dummy package)"
optional = false
python-versions = "*"
+groups = ["dev"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "pytest-faulthandler-2.0.1.tar.gz", hash = "sha256:ed72bbce87ac344da81eb7d882196a457d4a1026a3da4a57154dacd85cd71ae5"},
{file = "pytest_faulthandler-2.0.1-py2.py3-none-any.whl", hash = "sha256:236430ba962fd1c910d670922be55fe5b25ea9bc3fc6561a0cafbb8759e7504d"},
@@ -1312,6 +1488,8 @@ version = "4.4.0"
description = "pytest support for PyQt and PySide applications"
optional = false
python-versions = ">=3.8"
+groups = ["dev"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "pytest-qt-4.4.0.tar.gz", hash = "sha256:76896142a940a4285339008d6928a36d4be74afec7e634577e842c9cc5c56844"},
{file = "pytest_qt-4.4.0-py3-none-any.whl", hash = "sha256:001ed2f8641764b394cf286dc8a4203e40eaf9fff75bf0bfe5103f7f8d0c591d"},
@@ -1331,6 +1509,8 @@ version = "4.9.0"
description = "Engine.IO server and client for Python"
optional = false
python-versions = ">=3.6"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "python-engineio-4.9.0.tar.gz", hash = "sha256:e87459c15638e567711fd156e6f9c4a402668871bed79523f0ecfec744729ec7"},
{file = "python_engineio-4.9.0-py3-none-any.whl", hash = "sha256:979859bff770725b75e60353d7ae53b397e8b517d05ba76733b404a3dcca3e4c"},
@@ -1350,6 +1530,8 @@ version = "0.5.2"
description = "A wrapper for the Gnu Privacy Guard (GPG or GnuPG)"
optional = false
python-versions = "*"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "python-gnupg-0.5.2.tar.gz", hash = "sha256:01d8013931c9fa3f45824bbea7054c03d6e11f258a72e7e086e168dbcb91854c"},
{file = "python_gnupg-0.5.2-py2.py3-none-any.whl", hash = "sha256:72ce142af6da7f07e433fef148b445fb3e07854acd2f88739008838745c0e9f5"},
@@ -1361,6 +1543,8 @@ version = "5.11.1"
description = "Socket.IO server and client for Python"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "python-socketio-5.11.1.tar.gz", hash = "sha256:bbcbd758ed8c183775cb2853ba001361e2fa018babf5cbe11a5b77e91c2ec2a2"},
{file = "python_socketio-5.11.1-py3-none-any.whl", hash = "sha256:f1a0228b8b1fbdbd93fbbedd821ebce0ef54b2b5bf6e98fcf710deaa7c574259"},
@@ -1381,6 +1565,8 @@ version = "7.4.2"
description = "QR Code image generator"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "qrcode-7.4.2-py3-none-any.whl", hash = "sha256:581dca7a029bcb2deef5d01068e39093e80ef00b4a61098a2182eac59d01643a"},
{file = "qrcode-7.4.2.tar.gz", hash = "sha256:9dd969454827e127dbd93696b20747239e6d540e082937c90f14ac95b30f5845"},
@@ -1400,13 +1586,15 @@ test = ["coverage", "pytest"]
[[package]]
name = "requests"
-version = "2.31.0"
+version = "2.32.3"
description = "Python HTTP for Humans."
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
- {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"},
- {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"},
+ {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"},
+ {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"},
]
[package.dependencies]
@@ -1422,33 +1610,39 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
[[package]]
name = "setuptools"
-version = "69.1.0"
+version = "75.8.0"
description = "Easily download, build, install, upgrade, and uninstall Python packages"
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
+groups = ["main", "dev"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
- {file = "setuptools-69.1.0-py3-none-any.whl", hash = "sha256:c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6"},
- {file = "setuptools-69.1.0.tar.gz", hash = "sha256:850894c4195f09c4ed30dba56213bf7c3f21d86ed6bdaafb5df5972593bfc401"},
+ {file = "setuptools-75.8.0-py3-none-any.whl", hash = "sha256:e3982f444617239225d675215d51f6ba05f845d4eec313da4418fdbb56fb27e3"},
+ {file = "setuptools-75.8.0.tar.gz", hash = "sha256:c5afc8f407c626b8313a86e10311dd3f661c6cd9c09d4bf8c15c0e11f9f2b0e6"},
]
[package.extras]
-docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"]
-testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"]
-testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"]
+check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.8.0)"]
+core = ["importlib_metadata (>=6)", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"]
+cover = ["pytest-cov"]
+doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"]
+enabler = ["pytest-enabler (>=2.2)"]
+test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.7.2)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"]
+type = ["importlib_metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.14.*)", "pytest-mypy"]
[[package]]
name = "shiboken6"
-version = "6.5.2"
+version = "6.8.2.1"
description = "Python/C++ bindings helper module"
optional = false
-python-versions = "<3.12,>=3.7"
+python-versions = "<3.14,>=3.9"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
- {file = "shiboken6-6.5.2-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:ba7af130d34ea03e329baebd80982d2635aee7e58dbb07a07085509a501ed03f"},
- {file = "shiboken6-6.5.2-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3fbc35ff3c19e7d39433671bfc1be3d7fa9d071bfdd0ffe1c2a4d27acd6cf6a5"},
- {file = "shiboken6-6.5.2-cp37-abi3-win_amd64.whl", hash = "sha256:558bdb3b0ccc8aac5f9029eabfd6ad8d41f93a87cd7f54395e07732fce39280d"},
- {file = "shiboken6-6.5.2-pp39-pypy39_pp73-macosx_10_9_universal2.whl", hash = "sha256:4e073b40734a7f9cc6ac289c735362967bb45c34f591f7c0fab7cef1d62e6a66"},
- {file = "shiboken6-6.5.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:cc89759aabafce49b629b189ed7c81986fedaac695714a4eed1aaeb16783c6a9"},
- {file = "shiboken6-6.5.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e60d8dd3292e3f87662b9e37ae5c558c519f8250da627c473b68bd8d24ed3243"},
+ {file = "shiboken6-6.8.2.1-cp39-abi3-macosx_12_0_universal2.whl", hash = "sha256:d3dedeb3732ecfc920c9f97da769c0022a1c3bda99346a9eba56fbf093deaa75"},
+ {file = "shiboken6-6.8.2.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c83e90056f13d0872cc4d2b7bf60b6d6e3b1b172f1f91910c0ba5b641af01758"},
+ {file = "shiboken6-6.8.2.1-cp39-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:8592401423acc693f51dbbfae5e7493cc3ed6738be79daaf90afa07f4da5bb25"},
+ {file = "shiboken6-6.8.2.1-cp39-abi3-win_amd64.whl", hash = "sha256:1b751d47b759762b7ca31bad278d52eca4105d3028880d93979261ebbfba810c"},
]
[[package]]
@@ -1457,6 +1651,8 @@ version = "1.0.0"
description = "Simple WebSocket server and client for Python"
optional = false
python-versions = ">=3.6"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "simple-websocket-1.0.0.tar.gz", hash = "sha256:17d2c72f4a2bd85174a97e3e4c88b01c40c3f81b7b648b0cc3ce1305968928c8"},
{file = "simple_websocket-1.0.0-py3-none-any.whl", hash = "sha256:1d5bf585e415eaa2083e2bcf02a3ecf91f9712e7b3e6b9fa0b461ad04e0837bc"},
@@ -1474,6 +1670,8 @@ version = "1.8.1"
description = "Stem is a Python controller library that allows applications to interact with Tor (https://www.torproject.org/)."
optional = false
python-versions = "*"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "stem-1.8.1.tar.gz", hash = "sha256:81d43a7c668ba9d7bc1103b2e7a911e9d148294b373d27a59ae8da79ef7a3e2f"},
]
@@ -1484,6 +1682,8 @@ version = "2.0.1"
description = "A lil' TOML parser"
optional = false
python-versions = ">=3.7"
+groups = ["dev"]
+markers = "python_version < \"3.11\" and (platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\")"
files = [
{file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
{file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
@@ -1495,10 +1695,12 @@ version = "4.9.0"
description = "Backported and Experimental Type Hints for Python 3.8+"
optional = false
python-versions = ">=3.8"
+groups = ["main", "dev"]
files = [
{file = "typing_extensions-4.9.0-py3-none-any.whl", hash = "sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd"},
{file = "typing_extensions-4.9.0.tar.gz", hash = "sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783"},
]
+markers = {main = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\"", dev = "python_version < \"3.11\" and (platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\")"}
[[package]]
name = "unidecode"
@@ -1506,6 +1708,8 @@ version = "1.3.8"
description = "ASCII transliterations of Unicode text"
optional = false
python-versions = ">=3.5"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "Unidecode-1.3.8-py3-none-any.whl", hash = "sha256:d130a61ce6696f8148a3bd8fe779c99adeb4b870584eeb9526584e9aa091fd39"},
{file = "Unidecode-1.3.8.tar.gz", hash = "sha256:cfdb349d46ed3873ece4586b96aa75258726e2fa8ec21d6f00a591d98806c2f4"},
@@ -1513,13 +1717,15 @@ files = [
[[package]]
name = "urllib3"
-version = "2.2.0"
+version = "2.3.0"
description = "HTTP library with thread-safe connection pooling, file post, and more."
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
- {file = "urllib3-2.2.0-py3-none-any.whl", hash = "sha256:ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224"},
- {file = "urllib3-2.2.0.tar.gz", hash = "sha256:051d961ad0c62a94e50ecf1af379c3aba230c66c710493493560c0c223c49f20"},
+ {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"},
+ {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"},
]
[package.extras]
@@ -1530,28 +1736,32 @@ zstd = ["zstandard (>=0.18.0)"]
[[package]]
name = "waitress"
-version = "2.1.2"
+version = "3.0.2"
description = "Waitress WSGI server"
optional = false
-python-versions = ">=3.7.0"
+python-versions = ">=3.9.0"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
- {file = "waitress-2.1.2-py3-none-any.whl", hash = "sha256:7500c9625927c8ec60f54377d590f67b30c8e70ef4b8894214ac6e4cad233d2a"},
- {file = "waitress-2.1.2.tar.gz", hash = "sha256:780a4082c5fbc0fde6a2fcfe5e26e6efc1e8f425730863c04085769781f51eba"},
+ {file = "waitress-3.0.2-py3-none-any.whl", hash = "sha256:c56d67fd6e87c2ee598b76abdd4e96cfad1f24cacdea5078d382b1f9d7b5ed2e"},
+ {file = "waitress-3.0.2.tar.gz", hash = "sha256:682aaaf2af0c44ada4abfb70ded36393f0e307f4ab9456a215ce0020baefc31f"},
]
[package.extras]
docs = ["Sphinx (>=1.8.1)", "docutils", "pylons-sphinx-themes (>=1.0.9)"]
-testing = ["coverage (>=5.0)", "pytest", "pytest-cover"]
+testing = ["coverage (>=7.6.0)", "pytest", "pytest-cov"]
[[package]]
name = "werkzeug"
-version = "3.0.1"
+version = "3.0.6"
description = "The comprehensive WSGI web application library."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
- {file = "werkzeug-3.0.1-py3-none-any.whl", hash = "sha256:90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10"},
- {file = "werkzeug-3.0.1.tar.gz", hash = "sha256:507e811ecea72b18a404947aded4b3390e1db8f826b494d76550ef45bb3b1dcc"},
+ {file = "werkzeug-3.0.6-py3-none-any.whl", hash = "sha256:1bc0c2310d2fbb07b1dd1105eba2f7af72f322e1e455f2f93c993bee8c8a5f17"},
+ {file = "werkzeug-3.0.6.tar.gz", hash = "sha256:a8dd59d4de28ca70471a34cba79bed5f7ef2e036a76b3ab0835474246eb41f8d"},
]
[package.dependencies]
@@ -1566,6 +1776,8 @@ version = "0.41.3"
description = "A built-package format for Python"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "wheel-0.41.3-py3-none-any.whl", hash = "sha256:488609bc63a29322326e05560731bf7bfea8e48ad646e1f5e40d366607de0942"},
{file = "wheel-0.41.3.tar.gz", hash = "sha256:4d4987ce51a49370ea65c0bfd2234e8ce80a12780820d9dc462597a6e60d0841"},
@@ -1580,6 +1792,8 @@ version = "1.2.0"
description = "WebSockets state-machine based protocol implementation"
optional = false
python-versions = ">=3.7.0"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "wsproto-1.2.0-py3-none-any.whl", hash = "sha256:b9acddd652b585d75b20477888c56642fdade28bdfd3579aa24a4d2c037dd736"},
{file = "wsproto-1.2.0.tar.gz", hash = "sha256:ad565f26ecb92588a3e43bc3d96164de84cd9902482b130d0ddbaa9664a85065"},
@@ -1590,18 +1804,24 @@ h11 = ">=0.9.0,<1"
[[package]]
name = "zipp"
-version = "3.17.0"
+version = "3.21.0"
description = "Backport of pathlib-compatible object wrapper for zip files"
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
+groups = ["dev"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
- {file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"},
- {file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"},
+ {file = "zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931"},
+ {file = "zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4"},
]
[package.extras]
-docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"]
-testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"]
+check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"]
+cover = ["pytest-cov"]
+doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
+enabler = ["pytest-enabler (>=2.2)"]
+test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"]
+type = ["pytest-mypy"]
[[package]]
name = "zope-event"
@@ -1609,6 +1829,8 @@ version = "5.0"
description = "Very basic event publishing system"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "zope.event-5.0-py3-none-any.whl", hash = "sha256:2832e95014f4db26c47a13fdaef84cef2f4df37e66b59d8f1f4a8f319a632c26"},
{file = "zope.event-5.0.tar.gz", hash = "sha256:bac440d8d9891b4068e2b5a2c5e2c9765a9df762944bda6955f96bb9b91e67cd"},
@@ -1627,6 +1849,8 @@ version = "6.1"
description = "Interfaces for Python"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
+markers = "platform_machine == \"x86_64\" or platform_machine == \"i686\" or platform_machine == \"aarch64\" or platform_machine == \"armv7l\" or platform_machine == \"ppc64le\" or platform_machine == \"s390x\" or sys_platform != \"linux\" or platform_machine != \"x86_64\" and platform_machine != \"i686\" and platform_machine != \"aarch64\" and platform_machine != \"armv7l\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
files = [
{file = "zope.interface-6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:43b576c34ef0c1f5a4981163b551a8781896f2a37f71b8655fd20b5af0386abb"},
{file = "zope.interface-6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:67be3ca75012c6e9b109860820a8b6c9a84bfb036fbd1076246b98e56951ca92"},
@@ -1675,6 +1899,6 @@ test = ["coverage (>=5.0.3)", "zope.event", "zope.testing"]
testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"]
[metadata]
-lock-version = "2.0"
-python-versions = ">=3.8,<3.12"
-content-hash = "503cfec4f92c7f09b325690f1b5de8bf04532a7b93a5a76e77548bcce269396e"
+lock-version = "2.1"
+python-versions = ">=3.10,<3.13"
+content-hash = "e865f8da9ccb334206618c4c1eb2bf1b78d5038119b54d65f372a5f44b3cc63e"
diff --git a/desktop/pyproject.toml b/desktop/pyproject.toml
index 85a0c7dc..595c15af 100644
--- a/desktop/pyproject.toml
+++ b/desktop/pyproject.toml
@@ -1,25 +1,25 @@
[tool.poetry]
name = "onionshare"
-version = "2.6.2"
+version = "2.6.3"
description = "OnionShare lets you securely and anonymously send and receive files. It works by starting a web server, making it accessible as a Tor onion service, and generating an unguessable web address so others can download files from you, or upload files to you. It does _not_ require setting up a separate server or using a third party file-sharing service."
authors = ["Micah Lee "]
license = "GPLv3+"
[tool.poetry.dependencies]
-python = ">=3.8,<3.12"
+python = ">=3.10,<3.13"
onionshare_cli = {path = "../cli", develop = true}
-PySide6 = "6.5.2"
+PySide6 = "6.8.2.1"
qrcode = "*"
-werkzeug = "*"
+werkzeug = "3.0.6"
python-gnupg = "*"
-[tool.poetry.dev-dependencies]
+[tool.poetry.group.dev.dependencies]
click = "*"
black = "*"
pytest = "*"
pytest-faulthandler = "*"
pytest-qt = "*"
-cx_freeze = "*"
+cx_freeze = "7.2.9"
importlib-metadata = "*"
[build-system]
diff --git a/desktop/scripts/build-macos.py b/desktop/scripts/build-macos.py
index 0d09ac72..7c709e08 100644
--- a/desktop/scripts/build-macos.py
+++ b/desktop/scripts/build-macos.py
@@ -2,6 +2,7 @@
import os
import inspect
import click
+import platform
import subprocess
import shutil
import glob
@@ -16,7 +17,7 @@ root = os.path.dirname(
)
desktop_dir = os.path.join(root, "desktop")
-identity_name_application = "Developer ID Application: Micah Lee (N9B95FDWH4)"
+identity_name_application = "Developer ID Application: Science & Design, Inc. (7WLJ4UBL5L)"
entitlements_plist_path = f"{desktop_dir}/package/Entitlements.plist"
@@ -122,7 +123,6 @@ def cleanup_build():
"QtQuickShapes",
"QtQuickTest",
"QtNetwork",
- "QtSvg",
"QtDesignerComponents",
"QtMultimediaWidgets",
"QtQmlModels",
@@ -228,6 +228,18 @@ def cleanup_build():
else:
print(f"Cannot delete, filename not found: {filename}")
+ # Set a symlink for Qt's platforms and imageformats plugins, which seems to be necessary only on arm
+ if platform.system() == "Darwin" and platform.processor() == "arm":
+ platforms_target_path = os.path.join("..", "Resources", "lib", "PySide6", "Qt", "plugins", "platforms")
+ platforms_symlink_path = os.path.join(app_path, "Contents", "MacOS", "platforms")
+
+ os.symlink(platforms_target_path, platforms_symlink_path)
+
+ imageformats_target_path = os.path.join("..", "Resources", "lib", "PySide6", "Qt", "plugins", "imageformats")
+ imageformats_symlink_path = os.path.join(app_path, "Contents", "MacOS", "imageformats")
+ os.symlink(imageformats_target_path, imageformats_symlink_path)
+
+
after_size = get_size(f"{app_path}")
freed_bytes = before_size - after_size
freed_mb = int(freed_bytes / 1024 / 1024)
diff --git a/desktop/scripts/build-pt-snowflake.ps1 b/desktop/scripts/build-pt-snowflake.ps1
index 7891f6ae..c97af8db 100644
--- a/desktop/scripts/build-pt-snowflake.ps1
+++ b/desktop/scripts/build-pt-snowflake.ps1
@@ -1,4 +1,4 @@
-$env:SNOWFLAKE_TAG = 'v2.8.1'
+$env:SNOWFLAKE_TAG = 'v2.10.1'
New-Item -ItemType Directory -Force -Path .\build\snowflake
cd .\build\snowflake
diff --git a/desktop/scripts/build-pt-snowflake.sh b/desktop/scripts/build-pt-snowflake.sh
index eafe13ca..4be497bd 100755
--- a/desktop/scripts/build-pt-snowflake.sh
+++ b/desktop/scripts/build-pt-snowflake.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-SNOWFLAKE_TAG=v2.8.1
+SNOWFLAKE_TAG=v2.10.1
OS=$(uname -s)
diff --git a/desktop/scripts/build-windows.py b/desktop/scripts/build-windows.py
index 9579b81d..9b699918 100644
--- a/desktop/scripts/build-windows.py
+++ b/desktop/scripts/build-windows.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
-from distutils.command.build import build
+from setuptools.command.build import build
import sys
import os
import inspect
@@ -324,7 +324,7 @@ def main():
@main.command()
def cleanup_build():
"""Delete unused PySide6 stuff to save space"""
- build_path = os.path.join(desktop_dir, "build", "exe.win-amd64-3.11")
+ build_path = os.path.join(desktop_dir, "build", "exe.win-amd64-3.12")
before_size = get_size(build_path)
for dirname in ["qml"]:
diff --git a/desktop/scripts/get-tor.py b/desktop/scripts/get-tor.py
index 48236124..08a8669d 100644
--- a/desktop/scripts/get-tor.py
+++ b/desktop/scripts/get-tor.py
@@ -120,6 +120,9 @@ def get_tor_macos(gpg, torkey, macos_url, macos_filename, expected_macos_sig):
dist_path = os.path.join(root_path, "onionshare", "resources", "tor")
if not os.path.exists(dist_path):
os.makedirs(dist_path, exist_ok=True)
+ tor_lib_dir = os.path.join(root_path, "onionshare", "resources", "tor", "lib")
+ if not os.path.exists(tor_lib_dir):
+ os.makedirs(tor_lib_dir, exist_ok=True)
# Make sure the working folder exists
if not os.path.exists(working_path):
@@ -163,10 +166,17 @@ def get_tor_macos(gpg, torkey, macos_url, macos_filename, expected_macos_sig):
os.path.join(dist_path, "tor"),
)
os.chmod(os.path.join(dist_path, "tor"), 0o755)
+ # This is necessary for cx_freeze itself to work...
shutil.copyfile(
os.path.join(dmg_tor_path, "MacOS", "Tor", "libevent-2.1.7.dylib"),
os.path.join(dist_path, "libevent-2.1.7.dylib"),
)
+ # ...but the libevent-2.1.7.dylib now seems to also need to be in a 'lib'
+ # subfolder of the tor/ folder to work on MacOS, so copy it there too.
+ shutil.copyfile(
+ os.path.join(dmg_tor_path, "MacOS", "Tor", "libevent-2.1.7.dylib"),
+ os.path.join(tor_lib_dir, "libevent-2.1.7.dylib"),
+ )
# Eject dmg
subprocess.call(["diskutil", "eject", "/Volumes/Tor Browser"])
diff --git a/desktop/scripts/tor-browser-devs.gpg b/desktop/scripts/tor-browser-devs.gpg
index 24770ddb..50434c7f 100644
Binary files a/desktop/scripts/tor-browser-devs.gpg and b/desktop/scripts/tor-browser-devs.gpg differ
diff --git a/desktop/setup-freeze.py b/desktop/setup-freeze.py
index d311a942..3f9059b5 100644
--- a/desktop/setup-freeze.py
+++ b/desktop/setup-freeze.py
@@ -35,7 +35,12 @@ with open(os.path.join("..", "cli", "onionshare_cli", "resources", "version.txt"
version = version[0:-5]
# Build
-include_files = [(os.path.join("..", "LICENSE.txt"), "LICENSE.txt")]
+include_files = [
+ (os.path.join("..", "LICENSE.txt"), "LICENSE.txt"),
+ (os.path.join("..", "licenses", "license-obfs4.txt"), "license-obfs4.txt"),
+ (os.path.join("..", "licenses", "license-snowflake.txt"), "license-snowflake.txt"),
+ (os.path.join("..", "licenses", "license-tor.txt"), "license-tor.txt")
+]
if platform.system() == "Windows":
include_msvcr = True
@@ -72,6 +77,7 @@ build_exe_options = {
"shiboken6",
"PySide6.QtCore",
"PySide6.QtGui",
+ "PySide6.QtSvg",
"PySide6.QtWidgets",
],
"excludes": [
@@ -134,6 +140,7 @@ if platform.system() == "Darwin" and platform.processor() == "arm":
"shiboken6",
"PySide6.QtCore",
"PySide6.QtGui",
+ "PySide6.QtSvg",
"PySide6.QtWidgets",
]
diff --git a/desktop/setup.py b/desktop/setup.py
index 24ed05a0..825b000c 100644
--- a/desktop/setup.py
+++ b/desktop/setup.py
@@ -3,12 +3,12 @@
import setuptools
# The version must be hard-coded because Snapcraft won't have access to ../cli
-version = "2.6.2"
+version = "2.6.3"
setuptools.setup(
name="onionshare",
version=version,
- description="Securely and anonymously share files, host websites, and chat with friends using the Tor network",
+ long_description="Securely and anonymously share files, host websites, and chat with friends using the Tor network",
author="Micah Lee",
author_email="micah@micahflee.com",
maintainer="Micah Lee",
diff --git a/desktop/tests/test_gui_share.py b/desktop/tests/test_gui_share.py
index f0c460f2..aed2add1 100644
--- a/desktop/tests/test_gui_share.py
+++ b/desktop/tests/test_gui_share.py
@@ -568,3 +568,38 @@ class TestShare(GuiBaseTest):
self.web_server_is_stopped(tab)
self.server_status_indicator_says_closed(tab)
self.close_all_tabs()
+
+
+ def test_persistent_mode_and_autostart_can_be_set(self):
+ """
+ Test the persistent autostart on launch button can be clicked,
+ and that it is not visible when persistent mode is turned off
+ """
+ tab = self.new_share_tab()
+ tab.get_mode().server_status.file_selection.file_list.add_file(self.tmpfiles[0])
+
+ # Persistent is now visible
+ self.assertTrue(tab.get_mode().mode_settings_widget.persistent_checkbox.isVisible())
+
+ # Autostart on launch is not visible
+ self.assertFalse(tab.get_mode().mode_settings_widget.persistent_autostart_on_launch_checkbox.isVisible())
+
+ # Click on persistence
+ tab.get_mode().mode_settings_widget.persistent_checkbox.click()
+
+ # Autostart on launch is now visible
+ self.assertTrue(tab.get_mode().mode_settings_widget.persistent_autostart_on_launch_checkbox.isVisible())
+
+ # Click off persistence
+ tab.get_mode().mode_settings_widget.persistent_checkbox.click()
+
+ # Autostart on launch is not visible
+ self.assertFalse(tab.get_mode().mode_settings_widget.persistent_autostart_on_launch_checkbox.isVisible())
+
+ self.run_all_common_setup_tests()
+ self.run_all_share_mode_setup_tests(tab)
+ self.run_all_share_mode_started_tests(tab)
+ self.download_share(tab)
+ self.web_server_is_stopped(tab)
+ self.server_status_indicator_says_closed(tab)
+ self.close_all_tabs()
diff --git a/desktop/tests/test_gui_tabs.py b/desktop/tests/test_gui_tabs.py
index b0e24666..72cadca5 100644
--- a/desktop/tests/test_gui_tabs.py
+++ b/desktop/tests/test_gui_tabs.py
@@ -132,7 +132,7 @@ class TestTabs(GuiBaseTest):
self.assertFalse(self.gui.tabs.widget(1).new_tab.isVisible())
self.assertTrue(self.gui.tabs.widget(1).share_mode.isVisible())
self.assertEqual(
- self.gui.status_bar.server_status_label.text(), "Ready to share"
+ self.gui.status_bar.server_status_label.text(), "Stopped"
)
# New tab, receive files
@@ -141,7 +141,7 @@ class TestTabs(GuiBaseTest):
self.assertFalse(self.gui.tabs.widget(2).new_tab.isVisible())
self.assertTrue(self.gui.tabs.widget(2).receive_mode.isVisible())
self.assertEqual(
- self.gui.status_bar.server_status_label.text(), "Ready to receive"
+ self.gui.status_bar.server_status_label.text(), "Stopped"
)
# New tab, publish website
@@ -150,7 +150,7 @@ class TestTabs(GuiBaseTest):
self.assertFalse(self.gui.tabs.widget(3).new_tab.isVisible())
self.assertTrue(self.gui.tabs.widget(3).website_mode.isVisible())
self.assertEqual(
- self.gui.status_bar.server_status_label.text(), "Ready to share"
+ self.gui.status_bar.server_status_label.text(), "Stopped"
)
# New tab, chat mode
@@ -159,7 +159,7 @@ class TestTabs(GuiBaseTest):
self.assertFalse(self.gui.tabs.widget(4).new_tab.isVisible())
self.assertTrue(self.gui.tabs.widget(4).chat_mode.isVisible())
self.assertEqual(
- self.gui.status_bar.server_status_label.text(), "Ready to chat"
+ self.gui.status_bar.server_status_label.text(), "Stopped"
)
# Close tabs
diff --git a/docs/build.sh b/docs/build.sh
index 3c52d283..9019c60e 100755
--- a/docs/build.sh
+++ b/docs/build.sh
@@ -3,7 +3,7 @@
VERSION=$(cat ../cli/onionshare_cli/resources/version.txt)
# Supported locales
-LOCALES="en fr de el ja pl ru es tr uk vi"
+LOCALES="en sq bg zh_CN de el ga ja pl ru es tr uk"
# Generate English .po files
make gettext
diff --git a/docs/gettext/.doctrees/advanced.doctree b/docs/gettext/.doctrees/advanced.doctree
index c6ffad87..3e8c8b94 100644
Binary files a/docs/gettext/.doctrees/advanced.doctree and b/docs/gettext/.doctrees/advanced.doctree differ
diff --git a/docs/gettext/.doctrees/develop.doctree b/docs/gettext/.doctrees/develop.doctree
index 2fd41962..61c24c91 100644
Binary files a/docs/gettext/.doctrees/develop.doctree and b/docs/gettext/.doctrees/develop.doctree differ
diff --git a/docs/gettext/.doctrees/environment.pickle b/docs/gettext/.doctrees/environment.pickle
index 3156576b..506018bf 100644
Binary files a/docs/gettext/.doctrees/environment.pickle and b/docs/gettext/.doctrees/environment.pickle differ
diff --git a/docs/gettext/.doctrees/features.doctree b/docs/gettext/.doctrees/features.doctree
index 4a92c6d8..fef7e33d 100644
Binary files a/docs/gettext/.doctrees/features.doctree and b/docs/gettext/.doctrees/features.doctree differ
diff --git a/docs/gettext/.doctrees/help.doctree b/docs/gettext/.doctrees/help.doctree
index 56cd051d..2bfcc275 100644
Binary files a/docs/gettext/.doctrees/help.doctree and b/docs/gettext/.doctrees/help.doctree differ
diff --git a/docs/gettext/.doctrees/index.doctree b/docs/gettext/.doctrees/index.doctree
index 7049e246..3e69d871 100644
Binary files a/docs/gettext/.doctrees/index.doctree and b/docs/gettext/.doctrees/index.doctree differ
diff --git a/docs/gettext/.doctrees/install.doctree b/docs/gettext/.doctrees/install.doctree
index a35e19c4..4ffb92be 100644
Binary files a/docs/gettext/.doctrees/install.doctree and b/docs/gettext/.doctrees/install.doctree differ
diff --git a/docs/gettext/.doctrees/security.doctree b/docs/gettext/.doctrees/security.doctree
index aba60ace..a0f8f2e9 100644
Binary files a/docs/gettext/.doctrees/security.doctree and b/docs/gettext/.doctrees/security.doctree differ
diff --git a/docs/gettext/.doctrees/tor.doctree b/docs/gettext/.doctrees/tor.doctree
index 5d119013..aed2b263 100644
Binary files a/docs/gettext/.doctrees/tor.doctree and b/docs/gettext/.doctrees/tor.doctree differ
diff --git a/docs/gettext/advanced.pot b/docs/gettext/advanced.pot
index 9d86d530..d7015829 100644
--- a/docs/gettext/advanced.pot
+++ b/docs/gettext/advanced.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: OnionShare 2.6.2\n"
+"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -49,7 +49,7 @@ msgid "By default, all OnionShare services are protected with a private key, whi
msgstr ""
#: ../../source/advanced.rst:28
-msgid "The Tor Browser will ask you to enter your private key when you load an OnionShare service. If you want allow the public to use your service, it's better to disable the private key altogether."
+msgid "The Tor Browser will ask you to enter your private key when you load an OnionShare service. If you want to allow the public to use your service, it's better to disable the private key altogether."
msgstr ""
#: ../../source/advanced.rst:31
@@ -77,7 +77,7 @@ msgid "OnionShare supports scheduling exactly when a service should start and st
msgstr ""
#: ../../source/advanced.rst:51
-msgid "Services scheduled to start in the future display a countdown timer when when the \"Start sharing\" button is clicked. Services scheduled to stop in the future display a countdown timer when started."
+msgid "Services scheduled to start in the future display a countdown timer when the \"Start sharing\" button is clicked. Services scheduled to stop in the future display a countdown timer when started."
msgstr ""
#: ../../source/advanced.rst:54
@@ -96,42 +96,634 @@ msgstr ""
msgid "In addition to its graphical interface, OnionShare has a command-line interface."
msgstr ""
-#: ../../source/advanced.rst:72
-msgid "You can install just the command-line version of OnionShare using ``pip3``::"
+#: ../../source/advanced.rst:73
+msgid "Installing the CLI version"
msgstr ""
-#: ../../source/advanced.rst:76
+#: ../../source/advanced.rst:75
+msgid "If you have installed the Snap, macOS or Windows package, you already have the CLI version installed."
+msgstr ""
+
+#: ../../source/advanced.rst:77
+msgid "Alternatively, you can install just the command-line version of OnionShare using ``pip3``::"
+msgstr ""
+
+#: ../../source/advanced.rst:81
msgid "Note that you will also need the ``tor`` package installed. In macOS, install it with: ``brew install tor``"
msgstr ""
-#: ../../source/advanced.rst:78
+#: ../../source/advanced.rst:83
msgid "Then run it like this::"
msgstr ""
-#: ../../source/advanced.rst:82
+#: ../../source/advanced.rst:87
msgid "Info about installing it on different operating systems can be found in the `CLI README file `_ in the Git repository."
msgstr ""
-#: ../../source/advanced.rst:84
-msgid "If you installed OnionShare using the Snap package, you can also just run ``onionshare.cli`` to access the command-line interface version."
+#: ../../source/advanced.rst:90
+msgid "Running the CLI from Snap"
msgstr ""
-#: ../../source/advanced.rst:87
+#: ../../source/advanced.rst:92
+msgid "If you installed OnionShare using the Snap package, you can run ``onionshare.cli`` to access the command-line interface version."
+msgstr ""
+
+#: ../../source/advanced.rst:95
+msgid "Running the CLI from macOS"
+msgstr ""
+
+#: ../../source/advanced.rst:97
+msgid "From Terminal, you can run ``/Applications/OnionShare.app/Contents/MacOS/onionshare-cli --help``"
+msgstr ""
+
+#: ../../source/advanced.rst:100
+msgid "Running the CLI from Windows"
+msgstr ""
+
+#: ../../source/advanced.rst:102
+msgid "In the Windows installation, the executable ``onionshare-cli.exe`` is available."
+msgstr ""
+
+#: ../../source/advanced.rst:105
msgid "Usage"
msgstr ""
-#: ../../source/advanced.rst:89
+#: ../../source/advanced.rst:107
msgid "Browse the command-line documentation by running ``onionshare --help``::"
msgstr ""
-#: ../../source/advanced.rst:151
+#: ../../source/advanced.rst:170
+msgid "Running the CLI as a systemd unit file"
+msgstr ""
+
+#: ../../source/advanced.rst:172
+msgid "It is possible to automatically start OnionShare from the CLI using a systemd unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:174
+msgid "You may find this particularly useful if you are operating in 'persistent' mode, and want to start the same onion service every time your machine starts."
+msgstr ""
+
+#: ../../source/advanced.rst:176
+msgid "To do this, you need to prepare some OnionShare json config first."
+msgstr ""
+
+#: ../../source/advanced.rst:178
+msgid "Here is the main OnionShare config. In this example, it's stored in ``/home/user/.config/onionshare/onionshare.json``. You may need to adjust some of the settings, but if you already have OnionShare installed, it probably looks much like this already::"
+msgstr ""
+
+#: ../../source/advanced.rst:207
+msgid "Notice the 'persistent_tabs' section. We will now create a file at ``/home/user/.config/onionshare/persistent/my-persistent-onion.json``, that looks like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:247
+msgid "**Don't actually use this private key, service_id or client_auth keys! They are shown only as an example. Never share the private_key with anyone.**"
+msgstr ""
+
+#: ../../source/advanced.rst:249
+msgid "The easiest way to generate the onion address and private key is to first create a 'pinned' OnionShare tab in the desktop app and started the share for the first time. This will then have saved the persistent settings to your ``.config/onionshare/persistent/`` folder with a random name. You can unpin that tab once you've generated it the first time. Or, you can leave it where it is, and use that persistent file in your systemd unit file below."
+msgstr ""
+
+#: ../../source/advanced.rst:251
+msgid "Now you can create a systemd unit file in ``/etc/systemd/system/onionshare-cli.service``. Be sure to adjust the User and Group to your own user/group, as well as changes to any paths to the onionshare-cli binary or the paths to your JSON configs and shares."
+msgstr ""
+
+#: ../../source/advanced.rst:253
+msgid "The systemd unit file should look like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:268
+msgid "Note that although ``/home/user/my-shared-file.txt`` was defined in the ``filenames`` section of the ``my-persistent-onion.json`` file, it's still necessary to specify it as the argument to the onionshare-cli command."
+msgstr ""
+
+#: ../../source/advanced.rst:270
+msgid "Be sure to run ``sudo systemctl daemon-reload`` after creating the unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:272
+msgid "Now you can run ``sudo systemctl start onionshare-cli.service``. If you have ``journalctl`` installed, you can run ``sudo journalctl -f -t onionshare-cli``, and you should see some output of your service starting::"
+msgstr ""
+
+#: ../../source/advanced.rst:282
+msgid "If you don't want your users to use a Private Key, set ``public`` to be ``true`` in the ``general`` settings of the my-persistent-onion.json file."
+msgstr ""
+
+#: ../../source/advanced.rst:286
msgid "Keyboard Shortcuts"
msgstr ""
-#: ../../source/advanced.rst:153
+#: ../../source/advanced.rst:288
msgid "The OnionShare desktop application contains some keyboard shortcuts, for convenience and accessibility::"
msgstr ""
-#: ../../source/advanced.rst:158
+#: ../../source/advanced.rst:293
msgid "And from the main mode chooser screen::"
msgstr ""
+
+#: ../../source/advanced.rst:303
+msgid "Migrating your OnionShare data to another computer"
+msgstr ""
+
+#: ../../source/advanced.rst:305
+msgid "You may want to migrate your OnionShare data when switching to another computer. This is especially true if you had a 'persistent' onion address and you want to preserve it."
+msgstr ""
+
+#: ../../source/advanced.rst:307
+msgid "OnionShare stores all such data in a specific folder. Copy the relevant folder for your operating system below, to your new computer:"
+msgstr ""
+
+#: ../../source/advanced.rst:309
+msgid "Linux: ``~/.config/onionshare``"
+msgstr ""
+
+#: ../../source/advanced.rst:310
+msgid "macOS: ``~/Library/Application Support/OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:311
+msgid "Windows: ``%APPDATA%\\OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:315
+msgid "Configuration file parameters"
+msgstr ""
+
+#: ../../source/advanced.rst:317
+msgid "OnionShare stores its settings in a JSON file. Both the CLI and the Desktop versions use this configuration file. The CLI also lets you specify a path to a custom configuration file with ``--config``."
+msgstr ""
+
+#: ../../source/advanced.rst:319
+msgid "Below are the configuration file parameters and what they mean. If your configuration file has other parameters not listed here, they may be obsolete from older OnionShare versions."
+msgstr ""
+
+#: ../../source/advanced.rst:322
+#: ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413
+#: ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439
+#: ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Parameter"
+msgstr ""
+
+#: ../../source/advanced.rst:322
+#: ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413
+#: ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439
+#: ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Type"
+msgstr ""
+
+#: ../../source/advanced.rst:322
+#: ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413
+#: ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439
+#: ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Explanation"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid "version"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+#: ../../source/advanced.rst:325
+#: ../../source/advanced.rst:326
+#: ../../source/advanced.rst:328
+#: ../../source/advanced.rst:330
+#: ../../source/advanced.rst:331
+#: ../../source/advanced.rst:332
+#: ../../source/advanced.rst:337
+#: ../../source/advanced.rst:338
+#: ../../source/advanced.rst:339
+#: ../../source/advanced.rst:340
+#: ../../source/advanced.rst:343
+#: ../../source/advanced.rst:404
+#: ../../source/advanced.rst:405
+#: ../../source/advanced.rst:406
+#: ../../source/advanced.rst:415
+#: ../../source/advanced.rst:426
+#: ../../source/advanced.rst:430
+#: ../../source/advanced.rst:452
+#: ../../source/advanced.rst:453
+#: ../../source/advanced.rst:465
+msgid "``string``"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid "The version of OnionShare. You should not ever need to change this value."
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid "connection_type"
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid "The way in which OnionShare connects to Tor. Valid options are 'bundled', 'automatic' (use Tor Browser's Tor connection), 'control_port' or 'socket_file'. Default: 'bundled'"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid "control_port_address"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid "The IP address of Tor's Control port, if ``connection_type`` is set to 'control_port'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid "control_port_port"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+#: ../../source/advanced.rst:329
+#: ../../source/advanced.rst:335
+msgid "``integer``"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid "The port number of Tor's Control port, if ``connection_type`` is set to 'control_port'. Default: '9051'"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid "socks_address"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid "The IP address of Tor's SOCKS proxy, if ``connection_type`` is set to 'control_port' or 'socket_file'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid "socks_port"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid "The port number of Tor's SOCKS proxy, if ``connection_type`` is set to 'control_port' or 'socket_file'. Default: ''9050'"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid "socket_file_path"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid "The path to Tor's socket file, if ``connection_type`` is set to 'socket_file'. Default: '/var/run/tor/control'"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid "auth_type"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid "If access to Tor's control port requires a password, this can be set to 'password', otherwise 'no_auth'. Default: 'no_auth'"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid "auth_password"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid "If access to Tor's control port requires a password, and ``auth_type`` is set to 'password', specify the password here. Default: ''"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid "auto_connect"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+#: ../../source/advanced.rst:334
+#: ../../source/advanced.rst:336
+#: ../../source/advanced.rst:344
+#: ../../source/advanced.rst:416
+#: ../../source/advanced.rst:417
+#: ../../source/advanced.rst:427
+#: ../../source/advanced.rst:428
+#: ../../source/advanced.rst:429
+#: ../../source/advanced.rst:441
+#: ../../source/advanced.rst:443
+#: ../../source/advanced.rst:454
+#: ../../source/advanced.rst:455
+#: ../../source/advanced.rst:464
+#: ../../source/advanced.rst:466
+msgid "``boolean``"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid "Whether OnionShare should automatically connect to Tor when it starts. Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid "use_autoupdate"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid "Whether OnionShare should automatically check for updates (over Tor). This setting is only valid for MacOS or Windows installations. Default: True."
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "autoupdate_timestamp"
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "The last time OnionShare checked for updates. Default: None"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "bridges_enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "Whether to connect to Tor using bridges. Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid "bridges_type"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid "When ``bridges_enabled`` is True, where to load bridges from. Options are \"built-in\" (bridges shipped with OnionShare and which may get updated from Tor), \"moat\" (request bridges from Tor's Moat API), or \"custom\" (user-supplied bridges). Default: \"built-in\""
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid "bridges_builtin_pt"
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid "When ``bridges_type`` is set to \"built-in\", this specifies which type of bridge protocol to use. Options are \"obfs4\", \"meek-azure\" or \"snowflake\". Default: \"obfs4\""
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid "bridges_moat"
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid "When ``bridges_type`` is set to \"moat\", the bridges returned from Tor's Moat API are stored here. Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid "bridges_custom"
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid "When ``bridges_type`` is set to \"custom\", the bridges specified by the user are stored here. Separate each bridge line in the string with '\\n'. Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "bridges_builtin"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "``dict``"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "When ``bridges_type`` is set to \"built-in\", OnionShare obtains the latest built-in bridges recommended by Tor and stores them here. Default: {}"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid "persistent_tabs"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+#: ../../source/advanced.rst:442
+#: ../../source/advanced.rst:467
+msgid "``list``"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid "If the user has defined any tabs as 'saved' (meaning that they are persistent each time OnionShare starts, and their onion address doesn't change), these are given a random identifier which gets listed here. The persistent onion is stored as a JSON file with the same name as this identifier, in a subfolder of the OnionShare configuration folder called 'persistent'. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid "locale"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid "The locale used in OnionShare. Default: None (which is the same as 'en'). For valid locale codes, see 'available_locales' in https://github.com/onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid "theme"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid "The theme for the OnionShare desktop app. Valid options are 0 (automatically detect the user's computer's light or dark theme), 1 (light) or 2 (dark)."
+msgstr ""
+
+#: ../../source/advanced.rst:349
+msgid "Configuration file parameters for persistent onions"
+msgstr ""
+
+#: ../../source/advanced.rst:351
+msgid "As described above, each 'persistent' onion has parameters of its own which are stored in its own JSON file. The path to this file can be specified for the CLI tool with ``--persistent``."
+msgstr ""
+
+#: ../../source/advanced.rst:353
+msgid "Here is an example persistent JSON configuration::"
+msgstr ""
+
+#: ../../source/advanced.rst:396
+msgid "Below are the configuration file parameters for a persistent onion and what they mean, for each section in the JSON"
+msgstr ""
+
+#: ../../source/advanced.rst:399
+msgid "onion"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "private_key"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "Base64-encoded private key of the onion service"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid "client_auth_priv_key"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid "The private key when using Client Authentication. Send this to the user."
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid "client_auth_pub_key"
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid "The public key when using Client Authentication. Used on OnionShare's side."
+msgstr ""
+
+#: ../../source/advanced.rst:410
+msgid "persistent"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid "mode"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid "The mode used by this persistent onion. Options are \"share\", \"receive\", \"website\" or \"chat\"."
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid "enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid "Whether persistence is enabled for this onion. When the persistent option is unchecked in the desktop, this entire JSON file is deleted. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid "autostart_on_launch"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid "Whether to automatically start this persistent onion when OnionShare starts and once Tor is connected. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:421
+msgid "general"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid "title"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid "An optional custom title for displaying on the onion service. Default: null (\"OnionShare\" will be shown instead)"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid "public"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid "Whether the onion service can be accessed with or without a Private Key (Client Authentication). If true, no Private Key is required."
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid "autostart_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid "Whether the onion service is configured to start at a specific time. The time can be set in the desktop app or specified in seconds with ``--auto-start-timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid "autostop_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid "Whether the onion service is configured to stop at a specific time. The time can be set in the desktop app or specified in seconds with ``--auto-stop-timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid "service_id"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid "The 32-character onion service URL, without the scheme and without the '.onion' suffix."
+msgstr ""
+
+#: ../../source/advanced.rst:433
+msgid "The below are settings specific to the 'mode' specified in the ``persistent`` section above."
+msgstr ""
+
+#: ../../source/advanced.rst:436
+msgid "share"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid "autostop_sharing"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid "Whether to automatically stop the share once files are downloaded the first time. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:442
+#: ../../source/advanced.rst:467
+msgid "filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:442
+#: ../../source/advanced.rst:467
+msgid "A list of files to share. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:443
+#: ../../source/advanced.rst:466
+msgid "log_filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:443
+#: ../../source/advanced.rst:466
+msgid "Whether to log URL requests to stdout when using the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:447
+msgid "receive"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid "data_dir"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid "The path where received files or text messages will be stored. Default: the 'OnionShare' folder of the user's home directory."
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid "webhook_url"
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid "A webhook URL that OnionShare will POST to when it receives files or text messages. Default: null"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "disable_text"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "Whether to disable receiving text messages. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "disable_files"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "Whether to disable receiving files. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:459
+msgid "website"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid "disable_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid "If set to ``true``, OnionShare won't set its default Content Security Policy header for the website. Default: ``false``"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "custom_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "A custom Content Security Policy header to send instead of the default."
+msgstr ""
+
+#: ../../source/advanced.rst:471
+msgid "chat"
+msgstr ""
+
+#: ../../source/advanced.rst:473
+msgid "There are currently no configurable settings for the Chat mode."
+msgstr ""
diff --git a/docs/gettext/develop.pot b/docs/gettext/develop.pot
index 8725132c..b37a7dea 100644
--- a/docs/gettext/develop.pot
+++ b/docs/gettext/develop.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: OnionShare 2.6.2\n"
+"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/gettext/features.pot b/docs/gettext/features.pot
index 7a0df4ed..e53a9cac 100644
--- a/docs/gettext/features.pot
+++ b/docs/gettext/features.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: OnionShare 2.6.2\n"
+"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -61,7 +61,7 @@ msgid "You can use OnionShare to send files and folders to people securely and a
msgstr ""
#: ../../source/features.rst:35
-#: ../../source/features.rst:112
+#: ../../source/features.rst:117
msgid "After you add files, you'll see some settings. Make sure you choose the setting you're interested in before you start sharing."
msgstr ""
@@ -154,105 +154,113 @@ msgid "If you intend to put the OnionShare address on your website or social med
msgstr ""
#: ../../source/features.rst:102
-msgid "Host a Website"
+msgid "Other caveats to be aware of in Receive Mode"
msgstr ""
#: ../../source/features.rst:104
+msgid "There are reports that OnionBrowser on iOS devices are unable to upload files to an OnionShare in Receive Mode, when operating in 'Silver' security mode. Try Bronze or Gold to see if you are able to upload a message or a file."
+msgstr ""
+
+#: ../../source/features.rst:107
+msgid "Host a Website"
+msgstr ""
+
+#: ../../source/features.rst:109
msgid "To host a static HTML website with OnionShare, open a website tab, drag the files and folders that make up the static content there, and click \"Start sharing\" when you are ready."
msgstr ""
-#: ../../source/features.rst:108
+#: ../../source/features.rst:113
msgid "If you add an ``index.html`` file, it will render when someone loads your website. You should also include any other HTML files, CSS files, JavaScript files, and images that make up the website. (Note that OnionShare only supports hosting *static* websites. It can't host websites that execute code or use databases. So you can't for example use WordPress.)"
msgstr ""
-#: ../../source/features.rst:110
+#: ../../source/features.rst:115
msgid "If you don't have an ``index.html`` file, it will show a directory listing instead, and people loading it can look through the files and download them."
msgstr ""
-#: ../../source/features.rst:117
+#: ../../source/features.rst:122
msgid "Content Security Policy"
msgstr ""
-#: ../../source/features.rst:119
+#: ../../source/features.rst:124
msgid "By default OnionShare helps secure your website by setting a strict `Content Security Policy `_ header. However, this prevents third-party content from loading inside the web page."
msgstr ""
-#: ../../source/features.rst:121
+#: ../../source/features.rst:126
msgid "If you want to load content from third-party websites, like assets or JavaScript libraries from CDNs, you have two options:"
msgstr ""
-#: ../../source/features.rst:123
+#: ../../source/features.rst:128
msgid "You can disable sending a Content Security Policy header by checking the \"Don't send Content Security Policy header (allows your website to use third-party resources)\" box before starting the service."
msgstr ""
-#: ../../source/features.rst:124
+#: ../../source/features.rst:129
msgid "You can send a custom Content Security Policy header."
msgstr ""
-#: ../../source/features.rst:127
+#: ../../source/features.rst:132
msgid "Tips for running a website service"
msgstr ""
-#: ../../source/features.rst:129
+#: ../../source/features.rst:134
msgid "If you want to host a long-term website using OnionShare (meaning not just to quickly show someone something), it's recommended you do it on a separate, dedicated computer that is always powered on and connected to the internet, and not on the one you use on a regular basis. Save the tab (see :ref:`save_tabs`) so you can resume the website with the same address if you close OnionShare and re-open it later."
msgstr ""
-#: ../../source/features.rst:132
+#: ../../source/features.rst:137
msgid "If your website is intended for the public, you should run it as a public service (see :ref:`turn_off_private_key`)."
msgstr ""
-#: ../../source/features.rst:135
+#: ../../source/features.rst:140
msgid "Chat Anonymously"
msgstr ""
-#: ../../source/features.rst:137
+#: ../../source/features.rst:142
msgid "You can use OnionShare to set up a private, secure chat room that doesn't log anything. Just open a chat tab and click \"Start chat server\"."
msgstr ""
-#: ../../source/features.rst:141
+#: ../../source/features.rst:146
msgid "After you start the server, copy the OnionShare address and private key and send them to the people you want in the anonymous chat room. If it's important to limit exactly who can join, use an encrypted messaging app to send out the OnionShare address and private key."
msgstr ""
-#: ../../source/features.rst:146
+#: ../../source/features.rst:151
msgid "People can join the chat room by loading its OnionShare address in Tor Browser. The chat room requires JavasScript, so everyone who wants to participate must have their Tor Browser security level set to \"Standard\" or \"Safer\", instead of \"Safest\"."
msgstr ""
-#: ../../source/features.rst:149
+#: ../../source/features.rst:154
msgid "When someone joins the chat room they get assigned a random name. They can change their name by typing a new name in the box in the left panel and pressing ↵. Since the chat history isn't saved anywhere, it doesn't get displayed at all, even if others were already chatting in the room."
msgstr ""
-#: ../../source/features.rst:155
+#: ../../source/features.rst:160
msgid "In an OnionShare chat room, everyone is anonymous. Anyone can change their name to anything, and there is no way to confirm anyone's identity."
msgstr ""
-#: ../../source/features.rst:158
+#: ../../source/features.rst:163
msgid "However, if you create an OnionShare chat room and securely send the address only to a small group of trusted friends using encrypted messages, you can be reasonably confident the people joining the chat room are your friends."
msgstr ""
-#: ../../source/features.rst:161
+#: ../../source/features.rst:166
msgid "How is this useful?"
msgstr ""
-#: ../../source/features.rst:163
+#: ../../source/features.rst:168
msgid "If you need to already be using an encrypted messaging app, what's the point of an OnionShare chat room to begin with? It leaves less traces."
msgstr ""
-#: ../../source/features.rst:165
+#: ../../source/features.rst:170
msgid "If you for example send a message to a Signal group, a copy of your message ends up on each device (the smartphones, and computers if they set up Signal Desktop) of each member of the group. Even if disappearing messages is turned on, it's hard to confirm all copies of the messages are actually deleted from all devices, and from any other places (like notifications databases) they may have been saved to. OnionShare chat rooms don't store any messages anywhere, so the problem is reduced to a minimum."
msgstr ""
-#: ../../source/features.rst:168
+#: ../../source/features.rst:173
msgid "OnionShare chat rooms can also be useful for people wanting to chat anonymously and securely with someone without needing to create any accounts. For example, a source can send an OnionShare address to a journalist using a disposable email address, and then wait for the journalist to join the chat room, all without compromosing their anonymity."
msgstr ""
-#: ../../source/features.rst:172
+#: ../../source/features.rst:177
msgid "How does the encryption work?"
msgstr ""
-#: ../../source/features.rst:174
+#: ../../source/features.rst:179
msgid "Because OnionShare relies on Tor onion services, connections between the Tor Browser and OnionShare are all end-to-end encrypted (E2EE). When someone posts a message to an OnionShare chat room, they send it to the server through the E2EE onion connection, which then sends it to all other members of the chat room using WebSockets, through their E2EE onion connections."
msgstr ""
-#: ../../source/features.rst:176
+#: ../../source/features.rst:181
msgid "OnionShare doesn't implement any chat encryption on its own. It relies on the Tor onion service's encryption instead."
msgstr ""
diff --git a/docs/gettext/help.pot b/docs/gettext/help.pot
index 65389b1b..0013e782 100644
--- a/docs/gettext/help.pot
+++ b/docs/gettext/help.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: OnionShare 2.6.2\n"
+"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/gettext/index.pot b/docs/gettext/index.pot
index 9b5443cd..aaaf900e 100644
--- a/docs/gettext/index.pot
+++ b/docs/gettext/index.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: OnionShare 2.6.2\n"
+"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/gettext/install.pot b/docs/gettext/install.pot
index 9fa7488c..6e0faabc 100644
--- a/docs/gettext/install.pot
+++ b/docs/gettext/install.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: OnionShare 2.6.2\n"
+"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -36,7 +36,7 @@ msgstr ""
msgid "You can download OnionShare for Mobile from the follow links"
msgstr ""
-#: ../../source/install.rst:18
+#: ../../source/install.rst:16
msgid "Android"
msgstr ""
@@ -48,7 +48,7 @@ msgstr ""
msgid "F-Droid: https://github.com/onionshare/onionshare-android-nightly"
msgstr ""
-#: ../../source/install.rst:24
+#: ../../source/install.rst:20
msgid "iOS"
msgstr ""
@@ -221,10 +221,10 @@ msgid "Signing key"
msgstr ""
#: ../../source/install.rst:117
-msgid "Packages are signed by the core developer who is responsible for the particular release. Following are the informations of the core developers of OnionShare:"
+msgid "Packages are signed by the core developer who is responsible for the particular release. Here is the GPG key information for each of the core developers of OnionShare:"
msgstr ""
-#: ../../source/install.rst:122
+#: ../../source/install.rst:120
msgid "Micah Lee:"
msgstr ""
@@ -236,7 +236,7 @@ msgstr ""
msgid "You can download Micah's key `from the keys.openpgp.org keyserver `_."
msgstr ""
-#: ../../source/install.rst:126
+#: ../../source/install.rst:124
msgid "Saptak Sengupta:"
msgstr ""
@@ -249,53 +249,65 @@ msgid "You can download Saptak's key `from the keys.openpgp.org keyserver `_."
+msgstr ""
+
+#: ../../source/install.rst:132
msgid "You must have GnuPG installed to verify signatures. For macOS you probably want `GPGTools `_, and for Windows you probably want `Gpg4win `_."
msgstr ""
-#: ../../source/install.rst:131
+#: ../../source/install.rst:135
msgid "Signatures"
msgstr ""
-#: ../../source/install.rst:133
+#: ../../source/install.rst:137
msgid "You can find the signatures (as ``.asc`` files), as well as Windows, macOS, Flatpak, Snap, and source packages, at https://onionshare.org/dist/ in the folders named for each version of OnionShare. You can also find them on the `GitHub Releases page `_."
msgstr ""
-#: ../../source/install.rst:137
+#: ../../source/install.rst:141
msgid "Verifying"
msgstr ""
-#: ../../source/install.rst:139
+#: ../../source/install.rst:143
msgid "Once you have imported the core developers public keys into your GnuPG keychain, downloaded the binary and ``.asc`` signature, you can verify the binary in a terminal like this:"
msgstr ""
-#: ../../source/install.rst:141
+#: ../../source/install.rst:145
msgid "For Windows::"
msgstr ""
-#: ../../source/install.rst:145
+#: ../../source/install.rst:149
msgid "For macOS::"
msgstr ""
-#: ../../source/install.rst:149
+#: ../../source/install.rst:153
msgid "For Linux::"
msgstr ""
-#: ../../source/install.rst:155
+#: ../../source/install.rst:159
msgid "and for the source file::"
msgstr ""
-#: ../../source/install.rst:159
+#: ../../source/install.rst:163
msgid "The expected output looks like this::"
msgstr ""
-#: ../../source/install.rst:169
+#: ../../source/install.rst:173
msgid "If you don't see ``Good signature from``, there might be a problem with the integrity of the file (malicious or otherwise), and you should not install the package."
msgstr ""
-#: ../../source/install.rst:171
+#: ../../source/install.rst:175
msgid "The ``WARNING:`` shown above, is not a problem with the package, it only means you haven't defined a level of \"trust\" of Micah's (the core developer) PGP key."
msgstr ""
-#: ../../source/install.rst:173
+#: ../../source/install.rst:177
msgid "If you want to learn more about verifying PGP signatures, the guides for `Qubes OS `_ and the `Tor Project `_ may be useful."
msgstr ""
diff --git a/docs/gettext/security.pot b/docs/gettext/security.pot
index ea2d593e..c68ec40b 100644
--- a/docs/gettext/security.pot
+++ b/docs/gettext/security.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: OnionShare 2.6.2\n"
+"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/gettext/sphinx.pot b/docs/gettext/sphinx.pot
index c23fe941..07d6005e 100644
--- a/docs/gettext/sphinx.pot
+++ b/docs/gettext/sphinx.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: OnionShare 2.6.2\n"
+"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/gettext/tor.pot b/docs/gettext/tor.pot
index 91bac64f..49c0b3ca 100644
--- a/docs/gettext/tor.pot
+++ b/docs/gettext/tor.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: OnionShare 2.6.2\n"
+"Project-Id-Version: OnionShare 2.6.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/poetry.lock b/docs/poetry.lock
index 948b5f7e..93cd17dc 100644
--- a/docs/poetry.lock
+++ b/docs/poetry.lock
@@ -1,4 +1,4 @@
-# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand.
+# This file is automatically @generated by Poetry 2.0.1 and should not be changed by hand.
[[package]]
name = "alabaster"
@@ -6,6 +6,7 @@ version = "0.7.16"
description = "A light, configurable Sphinx theme"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
{file = "alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92"},
{file = "alabaster-0.7.16.tar.gz", hash = "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65"},
@@ -13,159 +14,166 @@ files = [
[[package]]
name = "anyio"
-version = "4.2.0"
+version = "4.8.0"
description = "High level compatibility layer for multiple asynchronous event loop implementations"
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
+groups = ["main"]
files = [
- {file = "anyio-4.2.0-py3-none-any.whl", hash = "sha256:745843b39e829e108e518c489b31dc757de7d2131d53fac32bd8df268227bfee"},
- {file = "anyio-4.2.0.tar.gz", hash = "sha256:e1875bb4b4e2de1669f4bc7869b6d3f54231cdced71605e6e64c9be77e3be50f"},
+ {file = "anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a"},
+ {file = "anyio-4.8.0.tar.gz", hash = "sha256:1d9fe889df5212298c0c0723fa20479d1b94883a2df44bd3897aa91083316f7a"},
]
[package.dependencies]
exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""}
idna = ">=2.8"
sniffio = ">=1.1"
-typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""}
+typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""}
[package.extras]
-doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"]
-test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"]
-trio = ["trio (>=0.23)"]
+doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"]
+test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21)"]
+trio = ["trio (>=0.26.1)"]
[[package]]
name = "babel"
-version = "2.14.0"
+version = "2.17.0"
description = "Internationalization utilities"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+groups = ["main"]
files = [
- {file = "Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287"},
- {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"},
+ {file = "babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2"},
+ {file = "babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d"},
]
[package.extras]
-dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"]
+dev = ["backports.zoneinfo", "freezegun (>=1.0,<2.0)", "jinja2 (>=3.0)", "pytest (>=6.0)", "pytest-cov", "pytz", "setuptools", "tzdata"]
[[package]]
name = "certifi"
-version = "2024.2.2"
+version = "2025.1.31"
description = "Python package for providing Mozilla's CA Bundle."
optional = false
python-versions = ">=3.6"
+groups = ["main"]
files = [
- {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"},
- {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"},
+ {file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"},
+ {file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"},
]
[[package]]
name = "charset-normalizer"
-version = "3.3.2"
+version = "3.4.1"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
optional = false
-python-versions = ">=3.7.0"
+python-versions = ">=3.7"
+groups = ["main"]
files = [
- {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"},
- {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"},
- {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"},
- {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"},
- {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"},
- {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"},
- {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"},
- {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"},
+ {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"},
+ {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"},
+ {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"},
+ {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"},
+ {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"},
+ {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"},
+ {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"},
+ {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"},
+ {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"},
+ {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"},
+ {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"},
+ {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"},
+ {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"},
+ {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"},
+ {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"},
+ {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"},
+ {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"},
+ {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"},
+ {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"},
+ {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"},
+ {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"},
+ {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"},
+ {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"},
+ {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"},
+ {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"},
+ {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"},
+ {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"},
+ {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"},
+ {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"},
+ {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"},
+ {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"},
+ {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"},
+ {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"},
+ {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"},
+ {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"},
+ {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"},
+ {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"},
+ {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"},
+ {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"},
+ {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"},
+ {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"},
+ {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"},
+ {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"},
+ {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"},
+ {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"},
+ {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"},
+ {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"},
+ {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"},
+ {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"},
+ {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"},
+ {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"},
+ {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"},
+ {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089"},
+ {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d"},
+ {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf"},
+ {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e"},
+ {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a"},
+ {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd"},
+ {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534"},
+ {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e"},
+ {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e"},
+ {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa"},
+ {file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487"},
+ {file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d"},
+ {file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c"},
+ {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9"},
+ {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8"},
+ {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6"},
+ {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c"},
+ {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a"},
+ {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd"},
+ {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd"},
+ {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824"},
+ {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca"},
+ {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b"},
+ {file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl", hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e"},
+ {file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4"},
+ {file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41"},
+ {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f"},
+ {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2"},
+ {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770"},
+ {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4"},
+ {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537"},
+ {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496"},
+ {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78"},
+ {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7"},
+ {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6"},
+ {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294"},
+ {file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5"},
+ {file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765"},
+ {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"},
+ {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"},
]
[[package]]
name = "click"
-version = "8.1.7"
+version = "8.1.8"
description = "Composable command line interface toolkit"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
- {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"},
- {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"},
+ {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"},
+ {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"},
]
[package.dependencies]
@@ -177,6 +185,8 @@ version = "0.4.6"
description = "Cross-platform colored terminal text."
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
+groups = ["main"]
+markers = "sys_platform == \"win32\" or platform_system == \"Windows\""
files = [
{file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
{file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
@@ -184,24 +194,27 @@ files = [
[[package]]
name = "docutils"
-version = "0.20.1"
+version = "0.21.2"
description = "Docutils -- Python Documentation Utilities"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.9"
+groups = ["main"]
files = [
- {file = "docutils-0.20.1-py3-none-any.whl", hash = "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6"},
- {file = "docutils-0.20.1.tar.gz", hash = "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b"},
+ {file = "docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"},
+ {file = "docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f"},
]
[[package]]
name = "exceptiongroup"
-version = "1.2.0"
+version = "1.2.2"
description = "Backport of PEP 654 (exception groups)"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
+markers = "python_version < \"3.11\""
files = [
- {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"},
- {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"},
+ {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"},
+ {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"},
]
[package.extras]
@@ -213,6 +226,7 @@ version = "0.14.0"
description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
{file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"},
{file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"},
@@ -220,13 +234,14 @@ files = [
[[package]]
name = "httpcore"
-version = "1.0.2"
+version = "1.0.7"
description = "A minimal low-level HTTP client."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
- {file = "httpcore-1.0.2-py3-none-any.whl", hash = "sha256:096cc05bca73b8e459a1fc3dcf585148f63e534eae4339559c9b8a8d6399acc7"},
- {file = "httpcore-1.0.2.tar.gz", hash = "sha256:9fc092e4799b26174648e54b74ed5f683132a464e95643b226e00c2ed2fa6535"},
+ {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"},
+ {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"},
]
[package.dependencies]
@@ -237,17 +252,18 @@ h11 = ">=0.13,<0.15"
asyncio = ["anyio (>=4.0,<5.0)"]
http2 = ["h2 (>=3,<5)"]
socks = ["socksio (==1.*)"]
-trio = ["trio (>=0.22.0,<0.23.0)"]
+trio = ["trio (>=0.22.0,<1.0)"]
[[package]]
name = "httpx"
-version = "0.26.0"
+version = "0.28.1"
description = "The next generation HTTP client."
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
- {file = "httpx-0.26.0-py3-none-any.whl", hash = "sha256:8915f5a3627c4d47b73e8202457cb28f1266982d1159bd5779d86a80c0eab1cd"},
- {file = "httpx-0.26.0.tar.gz", hash = "sha256:451b55c30d5185ea6b23c2c793abf9bb237d2a7dfb901ced6ff69ad37ec1dfaf"},
+ {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"},
+ {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"},
]
[package.dependencies]
@@ -255,31 +271,36 @@ anyio = "*"
certifi = "*"
httpcore = "==1.*"
idna = "*"
-sniffio = "*"
[package.extras]
brotli = ["brotli", "brotlicffi"]
cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"]
http2 = ["h2 (>=3,<5)"]
socks = ["socksio (==1.*)"]
+zstd = ["zstandard (>=0.18.0)"]
[[package]]
name = "idna"
-version = "3.6"
+version = "3.10"
description = "Internationalized Domain Names in Applications (IDNA)"
optional = false
-python-versions = ">=3.5"
+python-versions = ">=3.6"
+groups = ["main"]
files = [
- {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"},
- {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"},
+ {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"},
+ {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"},
]
+[package.extras]
+all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"]
+
[[package]]
name = "imagesize"
version = "1.4.1"
description = "Getting image size from png/jpeg/jpeg2000/gif file"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+groups = ["main"]
files = [
{file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"},
{file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"},
@@ -287,32 +308,39 @@ files = [
[[package]]
name = "importlib-metadata"
-version = "7.0.1"
+version = "8.6.1"
description = "Read metadata from Python packages"
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
+groups = ["main"]
+markers = "python_version < \"3.10\""
files = [
- {file = "importlib_metadata-7.0.1-py3-none-any.whl", hash = "sha256:4805911c3a4ec7c3966410053e9ec6a1fecd629117df5adee56dfc9432a1081e"},
- {file = "importlib_metadata-7.0.1.tar.gz", hash = "sha256:f238736bb06590ae52ac1fab06a3a9ef1d8dce2b7a35b5ab329371d6c8f5d2cc"},
+ {file = "importlib_metadata-8.6.1-py3-none-any.whl", hash = "sha256:02a89390c1e15fdfdc0d7c6b25cb3e62650d0494005c97d6f148bf5b9787525e"},
+ {file = "importlib_metadata-8.6.1.tar.gz", hash = "sha256:310b41d755445d74569f993ccfc22838295d9fe005425094fad953d7f15c8580"},
]
[package.dependencies]
-zipp = ">=0.5"
+zipp = ">=3.20"
[package.extras]
-docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"]
+check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"]
+cover = ["pytest-cov"]
+doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
+enabler = ["pytest-enabler (>=2.2)"]
perf = ["ipython"]
-testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)", "pytest-ruff"]
+test = ["flufl.flake8", "importlib_resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"]
+type = ["pytest-mypy"]
[[package]]
name = "jinja2"
-version = "3.1.3"
+version = "3.1.5"
description = "A very fast and expressive template engine."
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
- {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"},
- {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"},
+ {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"},
+ {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"},
]
[package.dependencies]
@@ -323,108 +351,112 @@ i18n = ["Babel (>=2.7)"]
[[package]]
name = "markupsafe"
-version = "2.1.5"
+version = "3.0.2"
description = "Safely add untrusted strings to HTML/XML markup."
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.9"
+groups = ["main"]
files = [
- {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"},
- {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"},
- {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"},
- {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"},
- {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"},
- {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"},
- {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"},
- {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"},
- {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"},
- {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"},
- {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"},
- {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"},
- {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"},
- {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"},
- {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"},
- {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"},
- {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"},
- {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"},
- {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"},
- {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"},
- {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"},
- {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"},
- {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"},
- {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"},
- {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"},
- {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"},
- {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"},
- {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"},
- {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"},
- {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"},
- {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"},
- {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"},
- {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"},
- {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"},
- {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"},
- {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"},
- {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"},
- {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"},
- {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"},
- {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"},
- {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"},
- {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"},
- {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"},
- {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"},
- {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"},
- {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"},
- {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"},
- {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"},
- {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"},
- {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"},
- {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"},
- {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"},
- {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"},
- {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"},
- {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"},
- {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"},
- {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"},
- {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"},
- {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"},
- {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"},
+ {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"},
+ {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"},
+ {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"},
+ {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"},
+ {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"},
+ {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"},
+ {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"},
+ {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"},
+ {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"},
+ {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"},
+ {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"},
+ {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"},
+ {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"},
+ {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"},
+ {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"},
+ {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"},
+ {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"},
+ {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"},
+ {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"},
+ {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"},
+ {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"},
+ {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"},
+ {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"},
+ {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"},
+ {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"},
+ {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"},
+ {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"},
+ {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"},
+ {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"},
+ {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"},
+ {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"},
+ {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"},
+ {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"},
+ {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"},
+ {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"},
+ {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"},
+ {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"},
+ {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"},
+ {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"},
+ {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"},
+ {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"},
+ {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"},
]
[[package]]
name = "packaging"
-version = "23.2"
+version = "24.2"
description = "Core utilities for Python packages"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+groups = ["main"]
files = [
- {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"},
- {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"},
+ {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"},
+ {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"},
]
[[package]]
name = "pygments"
-version = "2.17.2"
+version = "2.19.1"
description = "Pygments is a syntax highlighting package written in Python."
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+groups = ["main"]
files = [
- {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"},
- {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"},
+ {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"},
+ {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"},
]
[package.extras]
-plugins = ["importlib-metadata"]
windows-terminal = ["colorama (>=0.4.6)"]
[[package]]
name = "requests"
-version = "2.31.0"
+version = "2.32.3"
description = "Python HTTP for Humans."
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.8"
+groups = ["main"]
files = [
- {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"},
- {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"},
+ {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"},
+ {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"},
]
[package.dependencies]
@@ -439,29 +471,35 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
[[package]]
name = "setuptools"
-version = "69.1.0"
+version = "75.8.0"
description = "Easily download, build, install, upgrade, and uninstall Python packages"
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
+groups = ["main"]
files = [
- {file = "setuptools-69.1.0-py3-none-any.whl", hash = "sha256:c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6"},
- {file = "setuptools-69.1.0.tar.gz", hash = "sha256:850894c4195f09c4ed30dba56213bf7c3f21d86ed6bdaafb5df5972593bfc401"},
+ {file = "setuptools-75.8.0-py3-none-any.whl", hash = "sha256:e3982f444617239225d675215d51f6ba05f845d4eec313da4418fdbb56fb27e3"},
+ {file = "setuptools-75.8.0.tar.gz", hash = "sha256:c5afc8f407c626b8313a86e10311dd3f661c6cd9c09d4bf8c15c0e11f9f2b0e6"},
]
[package.extras]
-docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"]
-testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"]
-testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"]
+check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.8.0)"]
+core = ["importlib_metadata (>=6)", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"]
+cover = ["pytest-cov"]
+doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"]
+enabler = ["pytest-enabler (>=2.2)"]
+test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.7.2)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"]
+type = ["importlib_metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.14.*)", "pytest-mypy"]
[[package]]
name = "sniffio"
-version = "1.3.0"
+version = "1.3.1"
description = "Sniff out which async library your code is running under"
optional = false
python-versions = ">=3.7"
+groups = ["main"]
files = [
- {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"},
- {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"},
+ {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"},
+ {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"},
]
[[package]]
@@ -470,6 +508,7 @@ version = "2.2.0"
description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms."
optional = false
python-versions = "*"
+groups = ["main"]
files = [
{file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"},
{file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"},
@@ -477,48 +516,51 @@ files = [
[[package]]
name = "sphinx"
-version = "7.2.6"
+version = "7.4.7"
description = "Python documentation generator"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
- {file = "sphinx-7.2.6-py3-none-any.whl", hash = "sha256:1e09160a40b956dc623c910118fa636da93bd3ca0b9876a7b3df90f07d691560"},
- {file = "sphinx-7.2.6.tar.gz", hash = "sha256:9a5160e1ea90688d5963ba09a2dcd8bdd526620edbb65c328728f1b2228d5ab5"},
+ {file = "sphinx-7.4.7-py3-none-any.whl", hash = "sha256:c2419e2135d11f1951cd994d6eb18a1835bd8fdd8429f9ca375dc1f3281bd239"},
+ {file = "sphinx-7.4.7.tar.gz", hash = "sha256:242f92a7ea7e6c5b406fdc2615413890ba9f699114a9c09192d7dfead2ee9cfe"},
]
[package.dependencies]
-alabaster = ">=0.7,<0.8"
-babel = ">=2.9"
-colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""}
-docutils = ">=0.18.1,<0.21"
+alabaster = ">=0.7.14,<0.8.0"
+babel = ">=2.13"
+colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""}
+docutils = ">=0.20,<0.22"
imagesize = ">=1.3"
-importlib-metadata = {version = ">=4.8", markers = "python_version < \"3.10\""}
-Jinja2 = ">=3.0"
-packaging = ">=21.0"
-Pygments = ">=2.14"
-requests = ">=2.25.0"
-snowballstemmer = ">=2.0"
+importlib-metadata = {version = ">=6.0", markers = "python_version < \"3.10\""}
+Jinja2 = ">=3.1"
+packaging = ">=23.0"
+Pygments = ">=2.17"
+requests = ">=2.30.0"
+snowballstemmer = ">=2.2"
sphinxcontrib-applehelp = "*"
sphinxcontrib-devhelp = "*"
sphinxcontrib-htmlhelp = ">=2.0.0"
sphinxcontrib-jsmath = "*"
sphinxcontrib-qthelp = "*"
sphinxcontrib-serializinghtml = ">=1.1.9"
+tomli = {version = ">=2", markers = "python_version < \"3.11\""}
[package.extras]
docs = ["sphinxcontrib-websupport"]
-lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-simplify", "isort", "mypy (>=0.990)", "ruff", "sphinx-lint", "types-requests"]
-test = ["cython (>=3.0)", "filelock", "html5lib", "pytest (>=4.6)", "setuptools (>=67.0)"]
+lint = ["flake8 (>=6.0)", "importlib-metadata (>=6.0)", "mypy (==1.10.1)", "pytest (>=6.0)", "ruff (==0.5.2)", "sphinx-lint (>=0.9)", "tomli (>=2)", "types-docutils (==0.21.0.20240711)", "types-requests (>=2.30.0)"]
+test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=8.0)", "setuptools (>=70.0)", "typing_extensions (>=4.9)"]
[[package]]
name = "sphinx-intl"
-version = "2.1.0"
+version = "2.3.1"
description = "Sphinx utility that make it easy to translate and to apply translation."
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.9"
+groups = ["main"]
files = [
- {file = "sphinx-intl-2.1.0.tar.gz", hash = "sha256:9d9849ae42515b39786824e99f1e30db0404c377b01bb022690fc932b0221c02"},
- {file = "sphinx_intl-2.1.0-py3-none-any.whl", hash = "sha256:9798946b995989de691387651d70c3fc191275b587e2e519655541edfd7bbd68"},
+ {file = "sphinx_intl-2.3.1-py3-none-any.whl", hash = "sha256:e3f4be80743e0e4c778fbc07e72b062c13c88c50645a69b62557a3f57a24b7fc"},
+ {file = "sphinx_intl-2.3.1.tar.gz", hash = "sha256:e2d04b907f57a029d46b4da344fd791e660d935eab6ced8a274fc65446389af1"},
]
[package.dependencies]
@@ -528,72 +570,76 @@ setuptools = "*"
sphinx = "*"
[package.extras]
-test = ["mock", "pytest", "six"]
+test = ["pytest"]
[[package]]
name = "sphinx-rtd-theme"
-version = "2.0.0"
+version = "3.0.2"
description = "Read the Docs theme for Sphinx"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.8"
+groups = ["main"]
files = [
- {file = "sphinx_rtd_theme-2.0.0-py2.py3-none-any.whl", hash = "sha256:ec93d0856dc280cf3aee9a4c9807c60e027c7f7b461b77aeffed682e68f0e586"},
- {file = "sphinx_rtd_theme-2.0.0.tar.gz", hash = "sha256:bd5d7b80622406762073a04ef8fadc5f9151261563d47027de09910ce03afe6b"},
+ {file = "sphinx_rtd_theme-3.0.2-py2.py3-none-any.whl", hash = "sha256:422ccc750c3a3a311de4ae327e82affdaf59eb695ba4936538552f3b00f4ee13"},
+ {file = "sphinx_rtd_theme-3.0.2.tar.gz", hash = "sha256:b7457bc25dda723b20b086a670b9953c859eab60a2a03ee8eb2bb23e176e5f85"},
]
[package.dependencies]
-docutils = "<0.21"
-sphinx = ">=5,<8"
+docutils = ">0.18,<0.22"
+sphinx = ">=6,<9"
sphinxcontrib-jquery = ">=4,<5"
[package.extras]
-dev = ["bump2version", "sphinxcontrib-httpdomain", "transifex-client", "wheel"]
+dev = ["bump2version", "transifex-client", "twine", "wheel"]
[[package]]
name = "sphinxcontrib-applehelp"
-version = "1.0.8"
+version = "2.0.0"
description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
- {file = "sphinxcontrib_applehelp-1.0.8-py3-none-any.whl", hash = "sha256:cb61eb0ec1b61f349e5cc36b2028e9e7ca765be05e49641c97241274753067b4"},
- {file = "sphinxcontrib_applehelp-1.0.8.tar.gz", hash = "sha256:c40a4f96f3776c4393d933412053962fac2b84f4c99a7982ba42e09576a70619"},
+ {file = "sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5"},
+ {file = "sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1"},
]
[package.extras]
-lint = ["docutils-stubs", "flake8", "mypy"]
+lint = ["mypy", "ruff (==0.5.5)", "types-docutils"]
standalone = ["Sphinx (>=5)"]
test = ["pytest"]
[[package]]
name = "sphinxcontrib-devhelp"
-version = "1.0.6"
+version = "2.0.0"
description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
- {file = "sphinxcontrib_devhelp-1.0.6-py3-none-any.whl", hash = "sha256:6485d09629944511c893fa11355bda18b742b83a2b181f9a009f7e500595c90f"},
- {file = "sphinxcontrib_devhelp-1.0.6.tar.gz", hash = "sha256:9893fd3f90506bc4b97bdb977ceb8fbd823989f4316b28c3841ec128544372d3"},
+ {file = "sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2"},
+ {file = "sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad"},
]
[package.extras]
-lint = ["docutils-stubs", "flake8", "mypy"]
+lint = ["mypy", "ruff (==0.5.5)", "types-docutils"]
standalone = ["Sphinx (>=5)"]
test = ["pytest"]
[[package]]
name = "sphinxcontrib-htmlhelp"
-version = "2.0.5"
+version = "2.1.0"
description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
- {file = "sphinxcontrib_htmlhelp-2.0.5-py3-none-any.whl", hash = "sha256:393f04f112b4d2f53d93448d4bce35842f62b307ccdc549ec1585e950bc35e04"},
- {file = "sphinxcontrib_htmlhelp-2.0.5.tar.gz", hash = "sha256:0dc87637d5de53dd5eec3a6a01753b1ccf99494bd756aafecd74b4fa9e729015"},
+ {file = "sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8"},
+ {file = "sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9"},
]
[package.extras]
-lint = ["docutils-stubs", "flake8", "mypy"]
+lint = ["mypy", "ruff (==0.5.5)", "types-docutils"]
standalone = ["Sphinx (>=5)"]
test = ["html5lib", "pytest"]
@@ -603,6 +649,7 @@ version = "4.1"
description = "Extension to include jQuery on newer Sphinx releases"
optional = false
python-versions = ">=2.7"
+groups = ["main"]
files = [
{file = "sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a"},
{file = "sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae"},
@@ -617,6 +664,7 @@ version = "1.0.1"
description = "A sphinx extension which renders display math in HTML via JavaScript"
optional = false
python-versions = ">=3.5"
+groups = ["main"]
files = [
{file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"},
{file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"},
@@ -627,56 +675,104 @@ test = ["flake8", "mypy", "pytest"]
[[package]]
name = "sphinxcontrib-qthelp"
-version = "1.0.7"
+version = "2.0.0"
description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
- {file = "sphinxcontrib_qthelp-1.0.7-py3-none-any.whl", hash = "sha256:e2ae3b5c492d58fcbd73281fbd27e34b8393ec34a073c792642cd8e529288182"},
- {file = "sphinxcontrib_qthelp-1.0.7.tar.gz", hash = "sha256:053dedc38823a80a7209a80860b16b722e9e0209e32fea98c90e4e6624588ed6"},
+ {file = "sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb"},
+ {file = "sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab"},
]
[package.extras]
-lint = ["docutils-stubs", "flake8", "mypy"]
+lint = ["mypy", "ruff (==0.5.5)", "types-docutils"]
standalone = ["Sphinx (>=5)"]
-test = ["pytest"]
+test = ["defusedxml (>=0.7.1)", "pytest"]
[[package]]
name = "sphinxcontrib-serializinghtml"
-version = "1.1.10"
+version = "2.0.0"
description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
- {file = "sphinxcontrib_serializinghtml-1.1.10-py3-none-any.whl", hash = "sha256:326369b8df80a7d2d8d7f99aa5ac577f51ea51556ed974e7716cfd4fca3f6cb7"},
- {file = "sphinxcontrib_serializinghtml-1.1.10.tar.gz", hash = "sha256:93f3f5dc458b91b192fe10c397e324f262cf163d79f3282c158e8436a2c4511f"},
+ {file = "sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331"},
+ {file = "sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d"},
]
[package.extras]
-lint = ["docutils-stubs", "flake8", "mypy"]
+lint = ["mypy", "ruff (==0.5.5)", "types-docutils"]
standalone = ["Sphinx (>=5)"]
test = ["pytest"]
+[[package]]
+name = "tomli"
+version = "2.2.1"
+description = "A lil' TOML parser"
+optional = false
+python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version < \"3.11\""
+files = [
+ {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"},
+ {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"},
+ {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"},
+ {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"},
+ {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"},
+ {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"},
+ {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"},
+ {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"},
+ {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"},
+ {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"},
+ {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"},
+ {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"},
+ {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"},
+ {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"},
+ {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"},
+ {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"},
+ {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"},
+ {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"},
+ {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"},
+ {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"},
+ {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"},
+ {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"},
+ {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"},
+ {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"},
+ {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"},
+ {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"},
+ {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"},
+ {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"},
+ {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"},
+ {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"},
+ {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"},
+ {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"},
+]
+
[[package]]
name = "typing-extensions"
-version = "4.9.0"
+version = "4.12.2"
description = "Backported and Experimental Type Hints for Python 3.8+"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
+markers = "python_version < \"3.13\""
files = [
- {file = "typing_extensions-4.9.0-py3-none-any.whl", hash = "sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd"},
- {file = "typing_extensions-4.9.0.tar.gz", hash = "sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783"},
+ {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"},
+ {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"},
]
[[package]]
name = "urllib3"
-version = "2.2.0"
+version = "2.3.0"
description = "HTTP library with thread-safe connection pooling, file post, and more."
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
+groups = ["main"]
files = [
- {file = "urllib3-2.2.0-py3-none-any.whl", hash = "sha256:ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224"},
- {file = "urllib3-2.2.0.tar.gz", hash = "sha256:051d961ad0c62a94e50ecf1af379c3aba230c66c710493493560c0c223c49f20"},
+ {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"},
+ {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"},
]
[package.extras]
@@ -687,20 +783,26 @@ zstd = ["zstandard (>=0.18.0)"]
[[package]]
name = "zipp"
-version = "3.17.0"
+version = "3.21.0"
description = "Backport of pathlib-compatible object wrapper for zip files"
optional = false
-python-versions = ">=3.8"
+python-versions = ">=3.9"
+groups = ["main"]
+markers = "python_version < \"3.10\""
files = [
- {file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"},
- {file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"},
+ {file = "zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931"},
+ {file = "zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4"},
]
[package.extras]
-docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"]
-testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"]
+check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"]
+cover = ["pytest-cov"]
+doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
+enabler = ["pytest-enabler (>=2.2)"]
+test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"]
+type = ["pytest-mypy"]
[metadata]
-lock-version = "2.0"
+lock-version = "2.1"
python-versions = "^3.9"
content-hash = "b1f876a934295fce7c47e20a6e3e22f0d7d656f0b3b4a30e2eec50a3d643978e"
diff --git a/docs/pyproject.toml b/docs/pyproject.toml
index a4cfb868..d77f8613 100644
--- a/docs/pyproject.toml
+++ b/docs/pyproject.toml
@@ -3,6 +3,7 @@ name = "onionshare-docs"
version = "0.1.0"
description = ""
authors = ["Micah Lee "]
+package-mode = false
[tool.poetry.dependencies]
python = "^3.9"
diff --git a/docs/source/advanced.rst b/docs/source/advanced.rst
index ea7482c2..c2f5e666 100644
--- a/docs/source/advanced.rst
+++ b/docs/source/advanced.rst
@@ -26,7 +26,7 @@ Turn Off Private Key
By default, all OnionShare services are protected with a private key, which Tor calls "client authentication".
The Tor Browser will ask you to enter your private key when you load an OnionShare service.
-If you want allow the public to use your service, it's better to disable the private key altogether.
+If you want to allow the public to use your service, it's better to disable the private key altogether.
To turn off the private key for any tab, check the "This is a public OnionShare service (disables private key)" box before starting the server.
Then the server will be public and a private key is not needed to load it in the Tor Browser.
@@ -48,7 +48,7 @@ OnionShare supports scheduling exactly when a service should start and stop.
Before starting a server, click "Show advanced settings" in its tab and then check the boxes next to either
"Start onion service at scheduled time", "Stop onion service at scheduled time", or both, and set the respective desired dates and times.
-Services scheduled to start in the future display a countdown timer when when the "Start sharing" button is clicked.
+Services scheduled to start in the future display a countdown timer when the "Start sharing" button is clicked.
Services scheduled to stop in the future display a countdown timer when started.
**Scheduling an OnionShare service to automatically start can be used as a dead man's switch**.
@@ -69,7 +69,12 @@ Command-line Interface
In addition to its graphical interface, OnionShare has a command-line interface.
-You can install just the command-line version of OnionShare using ``pip3``::
+Installing the CLI version
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If you have installed the Snap, macOS or Windows package, you already have the CLI version installed.
+
+Alternatively, you can install just the command-line version of OnionShare using ``pip3``::
pip3 install --user onionshare-cli
@@ -81,7 +86,20 @@ Then run it like this::
Info about installing it on different operating systems can be found in the `CLI README file `_ in the Git repository.
-If you installed OnionShare using the Snap package, you can also just run ``onionshare.cli`` to access the command-line interface version.
+Running the CLI from Snap
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If you installed OnionShare using the Snap package, you can run ``onionshare.cli`` to access the command-line interface version.
+
+Running the CLI from macOS
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+From Terminal, you can run ``/Applications/OnionShare.app/Contents/MacOS/onionshare-cli --help``
+
+Running the CLI from Windows
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+In the Windows installation, the executable ``onionshare-cli.exe`` is available.
Usage
^^^^^
@@ -112,7 +130,7 @@ Browse the command-line documentation by running ``onionshare --help``::
╰───────────────────────────────────────────╯
usage: onionshare-cli [-h] [--receive] [--website] [--chat] [--local-only] [--connect-timeout SECONDS] [--config FILENAME] [--persistent FILENAME] [--title TITLE] [--public]
- [--auto-start-timer SECONDS] [--auto-stop-timer SECONDS] [--no-autostop-sharing] [--data-dir data_dir] [--webhook-url webhook_url] [--disable-text]
+ [--auto-start-timer SECONDS] [--auto-stop-timer SECONDS] [--no-autostop-sharing] [--log-filenames] [--qr] [--data-dir data_dir] [--webhook-url webhook_url] [--disable-text]
[--disable-files] [--disable_csp] [--custom_csp custom_csp] [-v]
[filename ...]
@@ -136,6 +154,8 @@ Browse the command-line documentation by running ``onionshare --help``::
--auto-stop-timer SECONDS
Stop onion service at scheduled time (N seconds from now)
--no-autostop-sharing Share files: Continue sharing after files have been sent (the default is to stop sharing)
+ --log-filenames Log file download activity to stdout
+ --qr Display a QR code in the terminal for share links
--data-dir data_dir Receive files: Save files received to this directory
--webhook-url webhook_url
Receive files: URL to receive webhook notifications
@@ -146,6 +166,121 @@ Browse the command-line documentation by running ``onionshare --help``::
-v, --verbose Log OnionShare errors to stdout, and web errors to disk
+Running the CLI as a systemd unit file
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+It is possible to automatically start OnionShare from the CLI using a systemd unit file.
+
+You may find this particularly useful if you are operating in 'persistent' mode, and want to start the same onion service every time your machine starts.
+
+To do this, you need to prepare some OnionShare json config first.
+
+Here is the main OnionShare config. In this example, it's stored in ``/home/user/.config/onionshare/onionshare.json``. You may need to adjust some of the settings, but if you already have OnionShare installed, it probably looks much like this already::
+
+ {
+ "version": "2.6.2",
+ "connection_type": "bundled",
+ "control_port_address": "127.0.0.1",
+ "control_port_port": 9051,
+ "socks_address": "127.0.0.1",
+ "socks_port": 9050,
+ "socket_file_path": "/var/run/tor/control",
+ "auth_type": "no_auth",
+ "auth_password": "",
+ "auto_connect": true,
+ "use_autoupdate": true,
+ "autoupdate_timestamp": null,
+ "bridges_enabled": false,
+ "bridges_type": "built-in",
+ "bridges_builtin_pt": "obfs4",
+ "bridges_moat": "",
+ "bridges_custom": "",
+ "bridges_builtin": {},
+ "persistent_tabs": [
+ "my-persistent-onion"
+ ],
+ "locale": "en",
+ "theme": 0
+ }
+
+
+Notice the 'persistent_tabs' section. We will now create a file at ``/home/user/.config/onionshare/persistent/my-persistent-onion.json``, that looks like this::
+
+ {
+ "onion": {
+ "private_key": "UDIaZD8QgoXRP8JnAJ+pnlogQazfZ0wrfWJk5zPBGUBqg6+lozzjUJKTYWxwrxR33pDgJdTFtCUN1CX1FE22UQ==",
+ "client_auth_priv_key": "RHJSN4VI3NKGDSIWK45CCWTLYOJHA6DQQRQXUID3FXMAILYXWVUQ",
+ "client_auth_pub_key": "J4YLYAHS25UU3TZTE27H32RN3MCRGLR345U52XS2JNQ76CCHCRSQ"
+ },
+ "persistent": {
+ "mode": "share",
+ "enabled": true
+ },
+ "general": {
+ "title": null,
+ "public": false,
+ "autostart_timer": 0,
+ "autostop_timer": 0,
+ "service_id": "niktadkcp6z7rym3r5o3j2hnmis53mno5ughvur357xo7jkjvmqrchid",
+ "qr": false
+ },
+ "share": {
+ "autostop_sharing": true,
+ "filenames": [
+ "/home/user/my-shared-file.txt"
+ ]
+ },
+ "receive": {
+ "data_dir": "/home/user/OnionShare",
+ "webhook_url": null,
+ "disable_text": false,
+ "disable_files": false
+ },
+ "website": {
+ "disable_csp": false,
+ "custom_csp": null,
+ "filenames": []
+ },
+ "chat": {}
+ }
+
+**Don't actually use this private key, service_id or client_auth keys! They are shown only as an example. Never share the private_key with anyone.**
+
+The easiest way to generate the onion address and private key is to first create a 'pinned' OnionShare tab in the desktop app and started the share for the first time. This will then have saved the persistent settings to your ``.config/onionshare/persistent/`` folder with a random name. You can unpin that tab once you've generated it the first time. Or, you can leave it where it is, and use that persistent file in your systemd unit file below.
+
+Now you can create a systemd unit file in ``/etc/systemd/system/onionshare-cli.service``. Be sure to adjust the User and Group to your own user/group, as well as changes to any paths to the onionshare-cli binary or the paths to your JSON configs and shares.
+
+The systemd unit file should look like this::
+
+ [Unit]
+ Description=OnionShare CLI
+ After=network.target
+
+ [Service]
+ ExecStart=/home/user/.local/bin/onionshare-cli --persistent /home/user/.config/onionshare/persistent/my-persistent-onion.json /home/user/my-shared-file.txt
+ Restart=on-failure
+ User=user
+ Group=user
+
+ [Install]
+ WantedBy=multi-user.target
+
+Note that although ``/home/user/my-shared-file.txt`` was defined in the ``filenames`` section of the ``my-persistent-onion.json`` file, it's still necessary to specify it as the argument to the onionshare-cli command.
+
+Be sure to run ``sudo systemctl daemon-reload`` after creating the unit file.
+
+Now you can run ``sudo systemctl start onionshare-cli.service``. If you have ``journalctl`` installed, you can run ``sudo journalctl -f -t onionshare-cli``, and you should see some output of your service starting::
+
+ [...]
+ Feb 09 10:14:09 onionshare onionshare-cli[18852]: [6.5K blob data]
+ Feb 09 10:14:18 onionshare onionshare-cli[18852]: Compressing files.
+ Feb 09 10:14:18 onionshare onionshare-cli[18852]: Give this address and private key to the recipient:
+ Feb 09 10:14:18 onionshare onionshare-cli[18852]: http://niktadkcp6z7rym3r5o3j2hnmis53mno5ughvur357xo7jkjvmqrchid.onion
+ Feb 09 10:14:18 onionshare onionshare-cli[18852]: Private key: RHJSN4VI3NKGDSIWK45CCWTLYOJHA6DQQRQXUID3FXMAILYXWVUQ
+ Feb 09 10:14:18 onionshare onionshare-cli[18852]: Press Ctrl+C to stop the server
+
+If you don't want your users to use a Private Key, set ``public`` to be ``true`` in the ``general`` settings of the my-persistent-onion.json file.
+
Keyboard Shortcuts
------------------
@@ -162,3 +297,177 @@ And from the main mode chooser screen::
Ctrl W - Website mode
Ctrl C - Chat mode
Ctrl H - Settings tab
+
+
+Migrating your OnionShare data to another computer
+--------------------------------------------------
+
+You may want to migrate your OnionShare data when switching to another computer. This is especially true if you had a 'persistent' onion address and you want to preserve it.
+
+OnionShare stores all such data in a specific folder. Copy the relevant folder for your operating system below, to your new computer:
+
+ * Linux: ``~/.config/onionshare``
+ * macOS: ``~/Library/Application Support/OnionShare``
+ * Windows: ``%APPDATA%\OnionShare``
+
+
+Configuration file parameters
+-----------------------------
+
+OnionShare stores its settings in a JSON file. Both the CLI and the Desktop versions use this configuration file. The CLI also lets you specify a path to a custom configuration file with ``--config``.
+
+Below are the configuration file parameters and what they mean. If your configuration file has other parameters not listed here, they may be obsolete from older OnionShare versions.
+
+==================== =========== ===========
+Parameter Type Explanation
+==================== =========== ===========
+version ``string`` The version of OnionShare. You should not ever need to change this value.
+connection_type ``string`` The way in which OnionShare connects to Tor. Valid options are 'bundled', 'automatic' (use Tor Browser's Tor connection), 'control_port' or 'socket_file'. Default: 'bundled'
+control_port_address ``string`` The IP address of Tor's Control port, if ``connection_type`` is set to 'control_port'. Default: '127.0.0.1'
+control_port_port ``integer`` The port number of Tor's Control port, if ``connection_type`` is set to 'control_port'. Default: '9051'
+socks_address ``string`` The IP address of Tor's SOCKS proxy, if ``connection_type`` is set to 'control_port' or 'socket_file'. Default: '127.0.0.1'
+socks_port ``integer`` The port number of Tor's SOCKS proxy, if ``connection_type`` is set to 'control_port' or 'socket_file'. Default: ''9050'
+socket_file_path ``string`` The path to Tor's socket file, if ``connection_type`` is set to 'socket_file'. Default: '/var/run/tor/control'
+auth_type ``string`` If access to Tor's control port requires a password, this can be set to 'password', otherwise 'no_auth'. Default: 'no_auth'
+auth_password ``string`` If access to Tor's control port requires a password, and ``auth_type`` is set to 'password', specify the password here. Default: ''
+auto_connect ``boolean`` Whether OnionShare should automatically connect to Tor when it starts. Default: False
+use_autoupdate ``boolean`` Whether OnionShare should automatically check for updates (over Tor). This setting is only valid for MacOS or Windows installations. Default: True.
+autoupdate_timestamp ``integer`` The last time OnionShare checked for updates. Default: None
+bridges_enabled ``boolean`` Whether to connect to Tor using bridges. Default: False
+bridges_type ``string`` When ``bridges_enabled`` is True, where to load bridges from. Options are "built-in" (bridges shipped with OnionShare and which may get updated from Tor), "moat" (request bridges from Tor's Moat API), or "custom" (user-supplied bridges). Default: "built-in"
+bridges_builtin_pt ``string`` When ``bridges_type`` is set to "built-in", this specifies which type of bridge protocol to use. Options are "obfs4", "meek-azure" or "snowflake". Default: "obfs4"
+bridges_moat ``string`` When ``bridges_type`` is set to "moat", the bridges returned from Tor's Moat API are stored here. Default: ""
+bridges_custom ``string`` When ``bridges_type`` is set to "custom", the bridges specified by the user are stored here. Separate each bridge line in the string with '\n'. Default: ""
+bridges_builtin ``dict`` When ``bridges_type`` is set to "built-in", OnionShare obtains the latest built-in bridges recommended by Tor and stores them here. Default: {}
+persistent_tabs ``list`` If the user has defined any tabs as 'saved' (meaning that they are persistent each time OnionShare starts, and their onion address doesn't change), these are given a random identifier which gets listed here. The persistent onion is stored as a JSON file with the same name as this identifier, in a subfolder of the OnionShare configuration folder called 'persistent'. Default: []
+locale ``string`` The locale used in OnionShare. Default: None (which is the same as 'en'). For valid locale codes, see 'available_locales' in https://github.com/onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py
+theme ``boolean`` The theme for the OnionShare desktop app. Valid options are 0 (automatically detect the user's computer's light or dark theme), 1 (light) or 2 (dark).
+==================== =========== ===========
+
+
+Configuration file parameters for persistent onions
+---------------------------------------------------
+
+As described above, each 'persistent' onion has parameters of its own which are stored in its own JSON file. The path to this file can be specified for the CLI tool with ``--persistent``.
+
+Here is an example persistent JSON configuration::
+
+ {
+ "onion": {
+ "private_key": "0HGxILDDwYhxAB2Zq8mM3Wu3MirBgK7Fw2/tVrTw1XraElH7MWbVn3lzKbcJEapVWz2TFjaoCAVN48hGqraiRg==",
+ "client_auth_priv_key": "UT55HDBA5VSRWOUERMGOHEIBKZCMOOGZAFFNI54GDQFZ6CMCUGIQ",
+ "client_auth_pub_key": "TPQCMCV26UEDMCWGZCWAWM4FOJSQKZZTVPC5TC3CAGMDWKV255OA"
+ },
+ "persistent": {
+ "mode": "share",
+ "enabled": true,
+ "autostart_on_launch": false
+ },
+ "general": {
+ "title": null,
+ "public": false,
+ "autostart_timer": false,
+ "autostop_timer": false,
+ "service_id": "hvsufvk2anyadehahfqiacy4wbrjt2atpnagk4itlkh4mdfsg6vhd5ad"
+ },
+ "share": {
+ "autostop_sharing": true,
+ "filenames": [
+ "/home/user/git/onionshare/desktop/org.onionshare.OnionShare.svg"
+ ],
+ "log_filenames": false
+ },
+ "receive": {
+ "data_dir": "/home/user/OnionShare",
+ "webhook_url": null,
+ "disable_text": false,
+ "disable_files": false
+ },
+ "website": {
+ "disable_csp": false,
+ "custom_csp": null,
+ "log_filenames": false,
+ "filenames": []
+ },
+ "chat": {}
+ }
+
+
+Below are the configuration file parameters for a persistent onion and what they mean, for each section in the JSON
+
+onion
+^^^^^
+
+==================== ========== ===========
+Parameter Type Explanation
+==================== ========== ===========
+private_key ``string`` Base64-encoded private key of the onion service
+client_auth_priv_key ``string`` The private key when using Client Authentication. Send this to the user.
+client_auth_pub_key ``string`` The public key when using Client Authentication. Used on OnionShare's side.
+==================== ========== ===========
+
+persistent
+^^^^^^^^^^
+
+=================== =========== ===========
+Parameter Type Explanation
+=================== =========== ===========
+mode ``string`` The mode used by this persistent onion. Options are "share", "receive", "website" or "chat".
+enabled ``boolean`` Whether persistence is enabled for this onion. When the persistent option is unchecked in the desktop, this entire JSON file is deleted. Default: true
+autostart_on_launch ``boolean`` Whether to automatically start this persistent onion when OnionShare starts and once Tor is connected. Default: false
+=================== =========== ===========
+
+general
+^^^^^^^
+
+=============== =========== ===========
+Parameter Type Explanation
+=============== =========== ===========
+title ``string`` An optional custom title for displaying on the onion service. Default: null ("OnionShare" will be shown instead)
+public ``boolean`` Whether the onion service can be accessed with or without a Private Key (Client Authentication). If true, no Private Key is required.
+autostart_timer ``boolean`` Whether the onion service is configured to start at a specific time. The time can be set in the desktop app or specified in seconds with ``--auto-start-timer`` with the CLI tool. Default: false
+autostop_timer ``boolean`` Whether the onion service is configured to stop at a specific time. The time can be set in the desktop app or specified in seconds with ``--auto-stop-timer`` with the CLI tool. Default: false
+service_id ``string`` The 32-character onion service URL, without the scheme and without the '.onion' suffix.
+=============== =========== ===========
+
+The below are settings specific to the 'mode' specified in the ``persistent`` section above.
+
+share
+^^^^^
+
+================ =========== ===========
+Parameter Type Explanation
+================ =========== ===========
+autostop_sharing ``boolean`` Whether to automatically stop the share once files are downloaded the first time. Default: true
+filenames ``list`` A list of files to share. Default: []
+log_filenames ``boolean`` Whether to log URL requests to stdout when using the CLI tool. Default: false
+================ =========== ===========
+
+receive
+^^^^^^^
+
+============= =========== ===========
+Parameter Type Explanation
+============= =========== ===========
+data_dir ``string`` The path where received files or text messages will be stored. Default: the 'OnionShare' folder of the user's home directory.
+webhook_url ``string`` A webhook URL that OnionShare will POST to when it receives files or text messages. Default: null
+disable_text ``boolean`` Whether to disable receiving text messages. Default: false
+disable_files ``boolean`` Whether to disable receiving files. Default: false
+============= =========== ===========
+
+website
+^^^^^^^
+
+============= =========== ===========
+Parameter Type Explanation
+============= =========== ===========
+disable_csp ``boolean`` If set to ``true``, OnionShare won't set its default Content Security Policy header for the website. Default: ``false``
+custom_csp ``string`` A custom Content Security Policy header to send instead of the default.
+log_filenames ``boolean`` Whether to log URL requests to stdout when using the CLI tool. Default: false
+filenames ``list`` A list of files to share. Default: []
+============= =========== ===========
+
+chat
+^^^^
+
+There are currently no configurable settings for the Chat mode.
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 3336ebc4..18e06fa2 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -1,6 +1,6 @@
project = "OnionShare"
author = copyright = "Micah Lee, et al."
-version = release = "2.6.2"
+version = release = "2.6.3"
extensions = ["sphinx_rtd_theme"]
templates_path = ["_templates"]
@@ -8,24 +8,21 @@ exclude_patterns = []
languages = [
("English", "en"), # English
- ("Français", "fr"), # French
+ ("Shqip", "sq"), # Albanian
+ ("Български", "bg"), #Bulgarian
+ ("中文 (简体)", "zh_CN"), # Simplified Chinese
("Deutsch", "de"), # German
("Ελληνικά", "el"), # Greek
- # ("Italiano", "it"), # Italian
+ ("Gaeilge", "ga"), # Irish
("日本語", "ja"), # Japanese
- # ("ភាសាខ្មែរ", "km"), # Khmer (Central)
- # ("Norsk Bokmål", "nb_NO"), # Norwegian Bokmål
("Polish", "pl"), # Polish
- # ("Portuguese (Brazil)", "pt_BR"), # Portuguese (Brazil))
("Русский", "ru"), # Russian
("Español", "es"), # Spanish
- # ("Svenska", "sv"), # Swedish
("Türkçe", "tr"), # Turkish
("Українська", "uk"), # Ukrainian
- ("Tiếng Việt", "vi"), # Vietnamese
]
-versions = ["2.3", "2.3.1", "2.3.2", "2.3.3", "2.4", "2.5", "2.6", "2.6.1", "2.6.2"]
+versions = ["2.3", "2.3.1", "2.3.2", "2.3.3", "2.4", "2.5", "2.6", "2.6.1", "2.6.2", "2.6.3"]
html_theme = "sphinx_rtd_theme"
html_logo = "_static/logo.png"
diff --git a/docs/source/features.rst b/docs/source/features.rst
index 3cb89ed7..10f66f4d 100644
--- a/docs/source/features.rst
+++ b/docs/source/features.rst
@@ -98,6 +98,11 @@ If you want to host your own anonymous dropbox using OnionShare, it's recommende
If you intend to put the OnionShare address on your website or social media profiles, save the tab (see :ref:`save_tabs`) and run it as a public service (see :ref:`turn_off_private_key`). It's also a good idea to give it a custom title (see :ref:`custom_titles`).
+Other caveats to be aware of in Receive Mode
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+There are reports that OnionBrowser on iOS devices are unable to upload files to an OnionShare in Receive Mode, when operating in 'Silver' security mode. Try Bronze or Gold to see if you are able to upload a message or a file.
+
Host a Website
--------------
diff --git a/docs/source/install.rst b/docs/source/install.rst
index 3e04817f..cc1d9a53 100644
--- a/docs/source/install.rst
+++ b/docs/source/install.rst
@@ -114,8 +114,8 @@ For Windows and macOS, this step is optional and provides defense in depth: the
Signing key
^^^^^^^^^^^
-Packages are signed by the core developer who is responsible for the particular release. Following are the
-informations of the core developers of OnionShare:
+Packages are signed by the core developer who is responsible for the particular release. Here is the GPG
+key information for each of the core developers of OnionShare:
* Micah Lee:
* PGP public key fingerprint ``927F419D7EC82C2F149C1BD1403C2657CD994F73``.
@@ -125,6 +125,10 @@ informations of the core developers of OnionShare:
* PGP public key fingerprint ``2AE3D40A6905C8E4E8ED95ECE46A2B977C14666B``.
* You can download Saptak's key `from the keys.openpgp.org keyserver `_.
+* Miguel Jacq:
+ * PGP public key fingerprint ``00AE817C24A10C2540461A9C1D7CDE0234DB458D``.
+ * You can download Miguel's key `from the keys.openpgp.org keyserver `_.
+
You must have GnuPG installed to verify signatures. For macOS you probably want `GPGTools `_, and for Windows you probably want `Gpg4win `_.
Signatures
diff --git a/docs/source/locale/af/LC_MESSAGES/advanced.po b/docs/source/locale/af/LC_MESSAGES/advanced.po
index 976caa7c..efb77d76 100644
--- a/docs/source/locale/af/LC_MESSAGES/advanced.po
+++ b/docs/source/locale/af/LC_MESSAGES/advanced.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2022-11-06 19:08+0000\n"
"Last-Translator: Gideon Wentink \n"
"Language-Team: none\n"
@@ -67,8 +67,8 @@ msgstr ""
#: ../../source/advanced.rst:28
msgid ""
"The Tor Browser will ask you to enter your private key when you load an "
-"OnionShare service. If you want allow the public to use your service, it's "
-"better to disable the private key altogether."
+"OnionShare service. If you want to allow the public to use your service, "
+"it's better to disable the private key altogether."
msgstr ""
#: ../../source/advanced.rst:31
@@ -116,9 +116,9 @@ msgstr ""
#: ../../source/advanced.rst:51
msgid ""
-"Services scheduled to start in the future display a countdown timer when "
-"when the \"Start sharing\" button is clicked. Services scheduled to stop in "
-"the future display a countdown timer when started."
+"Services scheduled to start in the future display a countdown timer when the "
+"\"Start sharing\" button is clicked. Services scheduled to stop in the "
+"future display a countdown timer when started."
msgstr ""
#: ../../source/advanced.rst:54
@@ -147,13 +147,28 @@ msgid ""
msgstr ""
"Buiten die grafiese koppelvlak het OnionShare ook ’n bevellynkoppelvlak."
-#: ../../source/advanced.rst:72
+#: ../../source/advanced.rst:73
+msgid "Installing the CLI version"
+msgstr ""
+
+#: ../../source/advanced.rst:75
msgid ""
-"You can install just the command-line version of OnionShare using ``pip3``::"
+"If you have installed the Snap, macOS or Windows package, you already have "
+"the CLI version installed."
+msgstr ""
+
+#: ../../source/advanced.rst:77
+#, fuzzy
+#| msgid ""
+#| "You can install just the command-line version of OnionShare using "
+#| "``pip3``::"
+msgid ""
+"Alternatively, you can install just the command-line version of OnionShare "
+"using ``pip3``::"
msgstr ""
"U kan slegs die bevellyn-weergawe van OnionShare installeer d.m.v. ``pip3``::"
-#: ../../source/advanced.rst:76
+#: ../../source/advanced.rst:81
msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``"
@@ -161,42 +176,725 @@ msgstr ""
"Let op dat die ``tor``-pakket ook geïnstalleer moet wees. In macOS kan u dit "
"installeer met: ``brew install tor``"
-#: ../../source/advanced.rst:78
+#: ../../source/advanced.rst:83
msgid "Then run it like this::"
msgstr "Loop dit dan soos volg::"
-#: ../../source/advanced.rst:82
+#: ../../source/advanced.rst:87
msgid ""
"Info about installing it on different operating systems can be found in the "
"`CLI README file `_ in the Git repository."
msgstr ""
-#: ../../source/advanced.rst:84
-msgid ""
-"If you installed OnionShare using the Snap package, you can also just run "
-"``onionshare.cli`` to access the command-line interface version."
+#: ../../source/advanced.rst:90
+msgid "Running the CLI from Snap"
msgstr ""
-#: ../../source/advanced.rst:87
+#: ../../source/advanced.rst:92
+msgid ""
+"If you installed OnionShare using the Snap package, you can run ``onionshare."
+"cli`` to access the command-line interface version."
+msgstr ""
+
+#: ../../source/advanced.rst:95
+msgid "Running the CLI from macOS"
+msgstr ""
+
+#: ../../source/advanced.rst:97
+msgid ""
+"From Terminal, you can run ``/Applications/OnionShare.app/Contents/MacOS/"
+"onionshare-cli --help``"
+msgstr ""
+
+#: ../../source/advanced.rst:100
+msgid "Running the CLI from Windows"
+msgstr ""
+
+#: ../../source/advanced.rst:102
+msgid ""
+"In the Windows installation, the executable ``onionshare-cli.exe`` is "
+"available."
+msgstr ""
+
+#: ../../source/advanced.rst:105
msgid "Usage"
msgstr "Gebruik"
-#: ../../source/advanced.rst:89
+#: ../../source/advanced.rst:107
msgid ""
"Browse the command-line documentation by running ``onionshare --help``::"
msgstr ""
-#: ../../source/advanced.rst:151
+#: ../../source/advanced.rst:170
+msgid "Running the CLI as a systemd unit file"
+msgstr ""
+
+#: ../../source/advanced.rst:172
+msgid ""
+"It is possible to automatically start OnionShare from the CLI using a "
+"systemd unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:174
+msgid ""
+"You may find this particularly useful if you are operating in 'persistent' "
+"mode, and want to start the same onion service every time your machine "
+"starts."
+msgstr ""
+
+#: ../../source/advanced.rst:176
+msgid "To do this, you need to prepare some OnionShare json config first."
+msgstr ""
+
+#: ../../source/advanced.rst:178
+msgid ""
+"Here is the main OnionShare config. In this example, it's stored in ``/home/"
+"user/.config/onionshare/onionshare.json``. You may need to adjust some of "
+"the settings, but if you already have OnionShare installed, it probably "
+"looks much like this already::"
+msgstr ""
+
+#: ../../source/advanced.rst:207
+msgid ""
+"Notice the 'persistent_tabs' section. We will now create a file at ``/home/"
+"user/.config/onionshare/persistent/my-persistent-onion.json``, that looks "
+"like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:247
+msgid ""
+"**Don't actually use this private key, service_id or client_auth keys! They "
+"are shown only as an example. Never share the private_key with anyone.**"
+msgstr ""
+
+#: ../../source/advanced.rst:249
+msgid ""
+"The easiest way to generate the onion address and private key is to first "
+"create a 'pinned' OnionShare tab in the desktop app and started the share "
+"for the first time. This will then have saved the persistent settings to "
+"your ``.config/onionshare/persistent/`` folder with a random name. You can "
+"unpin that tab once you've generated it the first time. Or, you can leave it "
+"where it is, and use that persistent file in your systemd unit file below."
+msgstr ""
+
+#: ../../source/advanced.rst:251
+msgid ""
+"Now you can create a systemd unit file in ``/etc/systemd/system/onionshare-"
+"cli.service``. Be sure to adjust the User and Group to your own user/group, "
+"as well as changes to any paths to the onionshare-cli binary or the paths to "
+"your JSON configs and shares."
+msgstr ""
+
+#: ../../source/advanced.rst:253
+msgid "The systemd unit file should look like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:268
+msgid ""
+"Note that although ``/home/user/my-shared-file.txt`` was defined in the "
+"``filenames`` section of the ``my-persistent-onion.json`` file, it's still "
+"necessary to specify it as the argument to the onionshare-cli command."
+msgstr ""
+
+#: ../../source/advanced.rst:270
+msgid ""
+"Be sure to run ``sudo systemctl daemon-reload`` after creating the unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:272
+msgid ""
+"Now you can run ``sudo systemctl start onionshare-cli.service``. If you have "
+"``journalctl`` installed, you can run ``sudo journalctl -f -t onionshare-"
+"cli``, and you should see some output of your service starting::"
+msgstr ""
+
+#: ../../source/advanced.rst:282
+msgid ""
+"If you don't want your users to use a Private Key, set ``public`` to be "
+"``true`` in the ``general`` settings of the my-persistent-onion.json file."
+msgstr ""
+
+#: ../../source/advanced.rst:286
msgid "Keyboard Shortcuts"
msgstr ""
-#: ../../source/advanced.rst:153
+#: ../../source/advanced.rst:288
msgid ""
"The OnionShare desktop application contains some keyboard shortcuts, for "
"convenience and accessibility::"
msgstr ""
-#: ../../source/advanced.rst:158
+#: ../../source/advanced.rst:293
msgid "And from the main mode chooser screen::"
msgstr ""
+
+#: ../../source/advanced.rst:303
+msgid "Migrating your OnionShare data to another computer"
+msgstr ""
+
+#: ../../source/advanced.rst:305
+msgid ""
+"You may want to migrate your OnionShare data when switching to another "
+"computer. This is especially true if you had a 'persistent' onion address "
+"and you want to preserve it."
+msgstr ""
+
+#: ../../source/advanced.rst:307
+msgid ""
+"OnionShare stores all such data in a specific folder. Copy the relevant "
+"folder for your operating system below, to your new computer:"
+msgstr ""
+
+#: ../../source/advanced.rst:309
+msgid "Linux: ``~/.config/onionshare``"
+msgstr ""
+
+#: ../../source/advanced.rst:310
+msgid "macOS: ``~/Library/Application Support/OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:311
+msgid "Windows: ``%APPDATA%\\OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:315
+msgid "Configuration file parameters"
+msgstr ""
+
+#: ../../source/advanced.rst:317
+msgid ""
+"OnionShare stores its settings in a JSON file. Both the CLI and the Desktop "
+"versions use this configuration file. The CLI also lets you specify a path "
+"to a custom configuration file with ``--config``."
+msgstr ""
+
+#: ../../source/advanced.rst:319
+msgid ""
+"Below are the configuration file parameters and what they mean. If your "
+"configuration file has other parameters not listed here, they may be "
+"obsolete from older OnionShare versions."
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Parameter"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Type"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Explanation"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid "version"
+msgstr ""
+
+#: ../../source/advanced.rst:324 ../../source/advanced.rst:325
+#: ../../source/advanced.rst:326 ../../source/advanced.rst:328
+#: ../../source/advanced.rst:330 ../../source/advanced.rst:331
+#: ../../source/advanced.rst:332 ../../source/advanced.rst:337
+#: ../../source/advanced.rst:338 ../../source/advanced.rst:339
+#: ../../source/advanced.rst:340 ../../source/advanced.rst:343
+#: ../../source/advanced.rst:404 ../../source/advanced.rst:405
+#: ../../source/advanced.rst:406 ../../source/advanced.rst:415
+#: ../../source/advanced.rst:426 ../../source/advanced.rst:430
+#: ../../source/advanced.rst:452 ../../source/advanced.rst:453
+#: ../../source/advanced.rst:465
+msgid "``string``"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid ""
+"The version of OnionShare. You should not ever need to change this value."
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid "connection_type"
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid ""
+"The way in which OnionShare connects to Tor. Valid options are 'bundled', "
+"'automatic' (use Tor Browser's Tor connection), 'control_port' or "
+"'socket_file'. Default: 'bundled'"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid "control_port_address"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid ""
+"The IP address of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid "control_port_port"
+msgstr ""
+
+#: ../../source/advanced.rst:327 ../../source/advanced.rst:329
+#: ../../source/advanced.rst:335
+msgid "``integer``"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid ""
+"The port number of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '9051'"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid "socks_address"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid ""
+"The IP address of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid "socks_port"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid ""
+"The port number of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: ''9050'"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid "socket_file_path"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid ""
+"The path to Tor's socket file, if ``connection_type`` is set to "
+"'socket_file'. Default: '/var/run/tor/control'"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid "auth_type"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid ""
+"If access to Tor's control port requires a password, this can be set to "
+"'password', otherwise 'no_auth'. Default: 'no_auth'"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid "auth_password"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid ""
+"If access to Tor's control port requires a password, and ``auth_type`` is "
+"set to 'password', specify the password here. Default: ''"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid "auto_connect"
+msgstr ""
+
+#: ../../source/advanced.rst:333 ../../source/advanced.rst:334
+#: ../../source/advanced.rst:336 ../../source/advanced.rst:344
+#: ../../source/advanced.rst:416 ../../source/advanced.rst:417
+#: ../../source/advanced.rst:427 ../../source/advanced.rst:428
+#: ../../source/advanced.rst:429 ../../source/advanced.rst:441
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:454
+#: ../../source/advanced.rst:455 ../../source/advanced.rst:464
+#: ../../source/advanced.rst:466
+msgid "``boolean``"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid ""
+"Whether OnionShare should automatically connect to Tor when it starts. "
+"Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid "use_autoupdate"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid ""
+"Whether OnionShare should automatically check for updates (over Tor). This "
+"setting is only valid for MacOS or Windows installations. Default: True."
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "autoupdate_timestamp"
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "The last time OnionShare checked for updates. Default: None"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "bridges_enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "Whether to connect to Tor using bridges. Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid "bridges_type"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid ""
+"When ``bridges_enabled`` is True, where to load bridges from. Options are "
+"\"built-in\" (bridges shipped with OnionShare and which may get updated from "
+"Tor), \"moat\" (request bridges from Tor's Moat API), or \"custom\" (user-"
+"supplied bridges). Default: \"built-in\""
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid "bridges_builtin_pt"
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", this specifies which type of "
+"bridge protocol to use. Options are \"obfs4\", \"meek-azure\" or "
+"\"snowflake\". Default: \"obfs4\""
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid "bridges_moat"
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid ""
+"When ``bridges_type`` is set to \"moat\", the bridges returned from Tor's "
+"Moat API are stored here. Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid "bridges_custom"
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid ""
+"When ``bridges_type`` is set to \"custom\", the bridges specified by the "
+"user are stored here. Separate each bridge line in the string with '\\n'. "
+"Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "bridges_builtin"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "``dict``"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", OnionShare obtains the latest "
+"built-in bridges recommended by Tor and stores them here. Default: {}"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid "persistent_tabs"
+msgstr ""
+
+#: ../../source/advanced.rst:342 ../../source/advanced.rst:442
+#: ../../source/advanced.rst:467
+msgid "``list``"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid ""
+"If the user has defined any tabs as 'saved' (meaning that they are "
+"persistent each time OnionShare starts, and their onion address doesn't "
+"change), these are given a random identifier which gets listed here. The "
+"persistent onion is stored as a JSON file with the same name as this "
+"identifier, in a subfolder of the OnionShare configuration folder called "
+"'persistent'. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid "locale"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid ""
+"The locale used in OnionShare. Default: None (which is the same as 'en'). "
+"For valid locale codes, see 'available_locales' in https://github.com/"
+"onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid "theme"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid ""
+"The theme for the OnionShare desktop app. Valid options are 0 (automatically "
+"detect the user's computer's light or dark theme), 1 (light) or 2 (dark)."
+msgstr ""
+
+#: ../../source/advanced.rst:349
+msgid "Configuration file parameters for persistent onions"
+msgstr ""
+
+#: ../../source/advanced.rst:351
+msgid ""
+"As described above, each 'persistent' onion has parameters of its own which "
+"are stored in its own JSON file. The path to this file can be specified for "
+"the CLI tool with ``--persistent``."
+msgstr ""
+
+#: ../../source/advanced.rst:353
+msgid "Here is an example persistent JSON configuration::"
+msgstr ""
+
+#: ../../source/advanced.rst:396
+msgid ""
+"Below are the configuration file parameters for a persistent onion and what "
+"they mean, for each section in the JSON"
+msgstr ""
+
+#: ../../source/advanced.rst:399
+msgid "onion"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "private_key"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "Base64-encoded private key of the onion service"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid "client_auth_priv_key"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid ""
+"The private key when using Client Authentication. Send this to the user."
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid "client_auth_pub_key"
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid ""
+"The public key when using Client Authentication. Used on OnionShare's side."
+msgstr ""
+
+#: ../../source/advanced.rst:410
+msgid "persistent"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid "mode"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid ""
+"The mode used by this persistent onion. Options are \"share\", \"receive\", "
+"\"website\" or \"chat\"."
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid "enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid ""
+"Whether persistence is enabled for this onion. When the persistent option is "
+"unchecked in the desktop, this entire JSON file is deleted. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid "autostart_on_launch"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid ""
+"Whether to automatically start this persistent onion when OnionShare starts "
+"and once Tor is connected. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:421
+msgid "general"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid "title"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid ""
+"An optional custom title for displaying on the onion service. Default: null "
+"(\"OnionShare\" will be shown instead)"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid "public"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid ""
+"Whether the onion service can be accessed with or without a Private Key "
+"(Client Authentication). If true, no Private Key is required."
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid "autostart_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid ""
+"Whether the onion service is configured to start at a specific time. The "
+"time can be set in the desktop app or specified in seconds with ``--auto-"
+"start-timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid "autostop_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid ""
+"Whether the onion service is configured to stop at a specific time. The time "
+"can be set in the desktop app or specified in seconds with ``--auto-stop-"
+"timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid "service_id"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid ""
+"The 32-character onion service URL, without the scheme and without the '."
+"onion' suffix."
+msgstr ""
+
+#: ../../source/advanced.rst:433
+msgid ""
+"The below are settings specific to the 'mode' specified in the "
+"``persistent`` section above."
+msgstr ""
+
+#: ../../source/advanced.rst:436
+msgid "share"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid "autostop_sharing"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid ""
+"Whether to automatically stop the share once files are downloaded the first "
+"time. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "A list of files to share. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid "log_filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid ""
+"Whether to log URL requests to stdout when using the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:447
+msgid "receive"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid "data_dir"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid ""
+"The path where received files or text messages will be stored. Default: the "
+"'OnionShare' folder of the user's home directory."
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid "webhook_url"
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid ""
+"A webhook URL that OnionShare will POST to when it receives files or text "
+"messages. Default: null"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "disable_text"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "Whether to disable receiving text messages. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "disable_files"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "Whether to disable receiving files. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:459
+msgid "website"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid "disable_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid ""
+"If set to ``true``, OnionShare won't set its default Content Security Policy "
+"header for the website. Default: ``false``"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "custom_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "A custom Content Security Policy header to send instead of the default."
+msgstr ""
+
+#: ../../source/advanced.rst:471
+msgid "chat"
+msgstr ""
+
+#: ../../source/advanced.rst:473
+msgid "There are currently no configurable settings for the Chat mode."
+msgstr ""
diff --git a/docs/source/locale/af/LC_MESSAGES/develop.po b/docs/source/locale/af/LC_MESSAGES/develop.po
index 42666e5e..29f2037f 100644
--- a/docs/source/locale/af/LC_MESSAGES/develop.po
+++ b/docs/source/locale/af/LC_MESSAGES/develop.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2022-11-16 07:48+0000\n"
"Last-Translator: Gideon Wentink \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/af/LC_MESSAGES/features.po b/docs/source/locale/af/LC_MESSAGES/features.po
index ee1f5f7e..845d9722 100644
--- a/docs/source/locale/af/LC_MESSAGES/features.po
+++ b/docs/source/locale/af/LC_MESSAGES/features.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2022-11-01 10:03+0000\n"
"Last-Translator: Gideon Wentink \n"
"Language-Team: none\n"
@@ -109,7 +109,7 @@ msgstr ""
"stuur. Open ’n deeloortjie, sleep die lêers in die vouers wat u wil deel en "
"klik “Begin deel”."
-#: ../../source/features.rst:35 ../../source/features.rst:112
+#: ../../source/features.rst:35 ../../source/features.rst:117
msgid ""
"After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing."
@@ -343,10 +343,22 @@ msgstr ""
"daarvoor te gee (see :ref:`custom_titles`)."
#: ../../source/features.rst:102
+msgid "Other caveats to be aware of in Receive Mode"
+msgstr ""
+
+#: ../../source/features.rst:104
+msgid ""
+"There are reports that OnionBrowser on iOS devices are unable to upload "
+"files to an OnionShare in Receive Mode, when operating in 'Silver' security "
+"mode. Try Bronze or Gold to see if you are able to upload a message or a "
+"file."
+msgstr ""
+
+#: ../../source/features.rst:107
msgid "Host a Website"
msgstr "Huisves ’n webwerf"
-#: ../../source/features.rst:104
+#: ../../source/features.rst:109
msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag the "
"files and folders that make up the static content there, and click \"Start "
@@ -356,7 +368,7 @@ msgstr ""
"webwerfoortjie open, die lêers en vouers wat die statiese inhoud uitmaak "
"daarin sleep, en op “Begin deel” wanneer u gereed is."
-#: ../../source/features.rst:108
+#: ../../source/features.rst:113
msgid ""
"If you add an ``index.html`` file, it will render when someone loads your "
"website. You should also include any other HTML files, CSS files, JavaScript "
@@ -371,7 +383,7 @@ msgstr ""
"huisves wat kode uitvoer of databasisse gebruik nie. U kan dus nie iets soos "
"WordPress gebruik nie."
-#: ../../source/features.rst:110
+#: ../../source/features.rst:115
msgid ""
"If you don't have an ``index.html`` file, it will show a directory listing "
"instead, and people loading it can look through the files and download them."
@@ -379,11 +391,11 @@ msgstr ""
"Indien u nie ’n ``index.html``-lêer het nie, sal dit ’n gidslys vertoon, en "
"mense wat dit laai kan deur die lêers kyk en dit aflaai."
-#: ../../source/features.rst:117
+#: ../../source/features.rst:122
msgid "Content Security Policy"
msgstr "Inhoudveiligheidsbeleid"
-#: ../../source/features.rst:119
+#: ../../source/features.rst:124
msgid ""
"By default OnionShare helps secure your website by setting a strict `Content "
"Security Policy `_ "
@@ -395,7 +407,7 @@ msgstr ""
"Content_Security_Policy>`_-kop daar te stel. Dit verhoed egter "
"derdepartyinhoud om in die webwerf te laai."
-#: ../../source/features.rst:121
+#: ../../source/features.rst:126
msgid ""
"If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, you have two options:"
@@ -403,7 +415,7 @@ msgstr ""
"Indien u inhoud van derdepartywebwerwe wil laai, soos bates of JavaScript-"
"biblioteke van CDN’e, het u twee opsies:"
-#: ../../source/features.rst:123
+#: ../../source/features.rst:128
msgid ""
"You can disable sending a Content Security Policy header by checking the "
"\"Don't send Content Security Policy header (allows your website to use "
@@ -413,15 +425,15 @@ msgstr ""
"“Moenie inhoudveiligheidsbeleid-kop stuur nie (laat webwerwe toe om "
"derdepartybronne te gebruik)” voor u die diens begin."
-#: ../../source/features.rst:124
+#: ../../source/features.rst:129
msgid "You can send a custom Content Security Policy header."
msgstr "U kan ’n pasgemaakte inhoudveiligheidsbeleid-kop stuur."
-#: ../../source/features.rst:127
+#: ../../source/features.rst:132
msgid "Tips for running a website service"
msgstr "Wenke om ’n webwerfdiens te huisves"
-#: ../../source/features.rst:129
+#: ../../source/features.rst:134
msgid ""
"If you want to host a long-term website using OnionShare (meaning not just "
"to quickly show someone something), it's recommended you do it on a "
@@ -437,7 +449,7 @@ msgstr ""
"ref:`save_tabs`) sodat u die webwerf kan voortsit met dieselfde adres indien "
"u OnionShare afsluit en later weer open."
-#: ../../source/features.rst:132
+#: ../../source/features.rst:137
msgid ""
"If your website is intended for the public, you should run it as a public "
"service (see :ref:`turn_off_private_key`)."
@@ -445,11 +457,11 @@ msgstr ""
"Indien u webwerf bedoel is vir die publiek, moet u dit as ’n publieke diens "
"loop (sien :ref:`turn_off_private_key`)."
-#: ../../source/features.rst:135
+#: ../../source/features.rst:140
msgid "Chat Anonymously"
msgstr "Klets anoniem"
-#: ../../source/features.rst:137
+#: ../../source/features.rst:142
msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't "
"log anything. Just open a chat tab and click \"Start chat server\"."
@@ -457,7 +469,7 @@ msgstr ""
"U kan OnionShare gebruik om ’n privaat, beveiligde kletskamer op te stel wat "
"niks byhou nie. Open bloot ’n kletsoortjie en klik “Begin kletsbediener”."
-#: ../../source/features.rst:141
+#: ../../source/features.rst:146
msgid ""
"After you start the server, copy the OnionShare address and private key and "
"send them to the people you want in the anonymous chat room. If it's "
@@ -470,7 +482,7 @@ msgstr ""
"geënkripteerde boodskaptoep om die OnionShare-adres en privaat sleutel te "
"stuur."
-#: ../../source/features.rst:146
+#: ../../source/features.rst:151
msgid ""
"People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to "
@@ -482,7 +494,7 @@ msgstr ""
"deelneem hul Tor Blaaier se sekuriteitsvlak stel na “Standaard” of "
"“Veiliger” eerder as “Veiligste”."
-#: ../../source/features.rst:149
+#: ../../source/features.rst:154
msgid ""
"When someone joins the chat room they get assigned a random name. They can "
"change their name by typing a new name in the box in the left panel and "
@@ -495,7 +507,7 @@ msgstr ""
"bewaar word nie, word dit glar nie vertoon nie, selfs indien ander reeds in "
"die kletskamer was."
-#: ../../source/features.rst:155
+#: ../../source/features.rst:160
msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change their "
"name to anything, and there is no way to confirm anyone's identity."
@@ -504,7 +516,7 @@ msgstr ""
"enigiets verander, en daar is geen manier om iemand se identiteit te "
"bevestig nie."
-#: ../../source/features.rst:158
+#: ../../source/features.rst:163
msgid ""
"However, if you create an OnionShare chat room and securely send the address "
"only to a small group of trusted friends using encrypted messages, you can "
@@ -515,11 +527,11 @@ msgstr ""
"redelik seker wees dat die mense wat by die kletskamer aansluit, u vriende "
"is."
-#: ../../source/features.rst:161
+#: ../../source/features.rst:166
msgid "How is this useful?"
msgstr "Hoe is dit nutig?"
-#: ../../source/features.rst:163
+#: ../../source/features.rst:168
msgid ""
"If you need to already be using an encrypted messaging app, what's the point "
"of an OnionShare chat room to begin with? It leaves less traces."
@@ -527,7 +539,7 @@ msgstr ""
"Indien u reeds ’n geënkripteerdeboodskaptoep moet gebruik, wat is dit punt "
"van ’n OnionShare-kletskamer dan nou? Dit laat minder spore agter."
-#: ../../source/features.rst:165
+#: ../../source/features.rst:170
msgid ""
"If you for example send a message to a Signal group, a copy of your message "
"ends up on each device (the smartphones, and computers if they set up Signal "
@@ -546,7 +558,7 @@ msgstr ""
"bewaar nêrens enige boodskappenie, daarom is die probleem tot ’n minimum "
"beperk."
-#: ../../source/features.rst:168
+#: ../../source/features.rst:173
msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any "
@@ -560,11 +572,11 @@ msgstr ""
"dan vir die joernalis wag om bt die kletskamer aan te sluit, alles sonder om "
"hul anonimiteit prys te gee."
-#: ../../source/features.rst:172
+#: ../../source/features.rst:177
msgid "How does the encryption work?"
msgstr "Hoe werk die enkripsie?"
-#: ../../source/features.rst:174
+#: ../../source/features.rst:179
msgid ""
"Because OnionShare relies on Tor onion services, connections between the Tor "
"Browser and OnionShare are all end-to-end encrypted (E2EE). When someone "
@@ -578,7 +590,7 @@ msgstr ""
"bediener deur die E2EE-onionverbinding, wat dit dan d.m.v. WebSokke na alle "
"ander lede van die kletskamer stuur, deur hulle E2EE-onionverbindings."
-#: ../../source/features.rst:176
+#: ../../source/features.rst:181
msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on "
"the Tor onion service's encryption instead."
diff --git a/docs/source/locale/af/LC_MESSAGES/help.po b/docs/source/locale/af/LC_MESSAGES/help.po
index a540178f..7ffcfb5e 100644
--- a/docs/source/locale/af/LC_MESSAGES/help.po
+++ b/docs/source/locale/af/LC_MESSAGES/help.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2022-10-21 15:07+0000\n"
"Last-Translator: Gideon Wentink \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/af/LC_MESSAGES/index.po b/docs/source/locale/af/LC_MESSAGES/index.po
index 93086a80..2de6d24f 100644
--- a/docs/source/locale/af/LC_MESSAGES/index.po
+++ b/docs/source/locale/af/LC_MESSAGES/index.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2022-10-19 10:07+0000\n"
"Last-Translator: Gideon Wentink \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/af/LC_MESSAGES/install.po b/docs/source/locale/af/LC_MESSAGES/install.po
index 60dc61b0..4072c6c2 100644
--- a/docs/source/locale/af/LC_MESSAGES/install.po
+++ b/docs/source/locale/af/LC_MESSAGES/install.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2024-02-10 08:02+0000\n"
"Last-Translator: Gideon Wentink \n"
"Language-Team: none\n"
@@ -42,7 +42,7 @@ msgstr ""
msgid "You can download OnionShare for Mobile from the follow links"
msgstr ""
-#: ../../source/install.rst:18
+#: ../../source/install.rst:16
msgid "Android"
msgstr ""
@@ -56,7 +56,7 @@ msgstr ""
msgid "F-Droid: https://github.com/onionshare/onionshare-android-nightly"
msgstr ""
-#: ../../source/install.rst:24
+#: ../../source/install.rst:20
msgid "iOS"
msgstr ""
@@ -357,11 +357,11 @@ msgstr "Ondertekeningsleutel"
#: ../../source/install.rst:117
msgid ""
"Packages are signed by the core developer who is responsible for the "
-"particular release. Following are the informations of the core developers of "
-"OnionShare:"
+"particular release. Here is the GPG key information for each of the core "
+"developers of OnionShare:"
msgstr ""
-#: ../../source/install.rst:122
+#: ../../source/install.rst:120
msgid "Micah Lee:"
msgstr ""
@@ -383,7 +383,7 @@ msgstr ""
"sleutelbediener `_."
-#: ../../source/install.rst:126
+#: ../../source/install.rst:124
msgid "Saptak Sengupta:"
msgstr ""
@@ -400,6 +400,28 @@ msgid ""
msgstr ""
#: ../../source/install.rst:128
+msgid "Miguel Jacq:"
+msgstr ""
+
+#: ../../source/install.rst:129
+msgid ""
+"PGP public key fingerprint ``00AE817C24A10C2540461A9C1D7CDE0234DB458D``."
+msgstr ""
+
+#: ../../source/install.rst:130
+#, fuzzy
+msgid ""
+"You can download Miguel's key `from the keys.openpgp.org keyserver `_."
+msgstr ""
+"Pakkette word deur Micah Lee, die kernontwikkelaar, met sy PGP- publieke "
+"sleutel met vingerafdruk ``927F419D7EC82C2F149C1BD1403C2657CD994F73`` "
+"onderteken. U kan Micah se sleutel aflaai `by die keys.openpgp.org "
+"sleutelbediener `_."
+
+#: ../../source/install.rst:132
msgid ""
"You must have GnuPG installed to verify signatures. For macOS you probably "
"want `GPGTools `_, and for Windows you probably want "
@@ -409,11 +431,11 @@ msgstr ""
"waarskynlik `GPGTools `_ hê en vir Windows wil u "
"waarskynlik `Gpg4win `_ hê."
-#: ../../source/install.rst:131
+#: ../../source/install.rst:135
msgid "Signatures"
msgstr "Handtekeninge"
-#: ../../source/install.rst:133
+#: ../../source/install.rst:137
#, fuzzy
msgid ""
"You can find the signatures (as ``.asc`` files), as well as Windows, macOS, "
@@ -426,11 +448,11 @@ msgstr ""
"die naam van elke weergawe van OnionShare. U kan dit ook op die `GitHub-"
"vrystellingsblad `_ kry."
-#: ../../source/install.rst:137
+#: ../../source/install.rst:141
msgid "Verifying"
msgstr "Bevestig tans"
-#: ../../source/install.rst:139
+#: ../../source/install.rst:143
#, fuzzy
msgid ""
"Once you have imported the core developers public keys into your GnuPG "
@@ -441,28 +463,28 @@ msgstr ""
"die binêr en ``.asc``-handtekening afgelaai het, kan u die binêr vir macOS "
"soos volg in ’n terminaal bevestig::"
-#: ../../source/install.rst:141
+#: ../../source/install.rst:145
msgid "For Windows::"
msgstr ""
-#: ../../source/install.rst:145
+#: ../../source/install.rst:149
msgid "For macOS::"
msgstr ""
-#: ../../source/install.rst:149
+#: ../../source/install.rst:153
#, fuzzy
msgid "For Linux::"
msgstr "Linux"
-#: ../../source/install.rst:155
+#: ../../source/install.rst:159
msgid "and for the source file::"
msgstr ""
-#: ../../source/install.rst:159
+#: ../../source/install.rst:163
msgid "The expected output looks like this::"
msgstr "Die verwagte afvoer lyk soos volg::"
-#: ../../source/install.rst:169
+#: ../../source/install.rst:173
#, fuzzy
msgid ""
"If you don't see ``Good signature from``, there might be a problem with the "
@@ -475,7 +497,7 @@ msgstr ""
"die pakket nie, dit beteken slegs dat u nie ’n vlak van “vertroue” van Micah "
"(die kernontwikkelaar) se PGP-sleutel gedefinieer het nie.)"
-#: ../../source/install.rst:171
+#: ../../source/install.rst:175
#, fuzzy
msgid ""
"The ``WARNING:`` shown above, is not a problem with the package, it only "
@@ -488,7 +510,7 @@ msgstr ""
"die pakket nie, dit beteken slegs dat u nie ’n vlak van “vertroue” van Micah "
"(die kernontwikkelaar) se PGP-sleutel gedefinieer het nie.)"
-#: ../../source/install.rst:173
+#: ../../source/install.rst:177
msgid ""
"If you want to learn more about verifying PGP signatures, the guides for "
"`Qubes OS `_ and "
diff --git a/docs/source/locale/af/LC_MESSAGES/security.po b/docs/source/locale/af/LC_MESSAGES/security.po
index 9edf09e9..78d21b95 100644
--- a/docs/source/locale/af/LC_MESSAGES/security.po
+++ b/docs/source/locale/af/LC_MESSAGES/security.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-07-04 03:02+0000\n"
"Last-Translator: Gideon Wentink \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/af/LC_MESSAGES/sphinx.po b/docs/source/locale/af/LC_MESSAGES/sphinx.po
index 21ad2f0f..97041bfd 100644
--- a/docs/source/locale/af/LC_MESSAGES/sphinx.po
+++ b/docs/source/locale/af/LC_MESSAGES/sphinx.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2022-10-19 10:07+0000\n"
"Last-Translator: Gideon Wentink \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/af/LC_MESSAGES/tor.po b/docs/source/locale/af/LC_MESSAGES/tor.po
index 7a89286d..0e1e1899 100644
--- a/docs/source/locale/af/LC_MESSAGES/tor.po
+++ b/docs/source/locale/af/LC_MESSAGES/tor.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-07-05 12:52+0000\n"
"Last-Translator: Gideon Wentink \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/am/LC_MESSAGES/advanced.po b/docs/source/locale/am/LC_MESSAGES/advanced.po
index 3b7a9337..b9a41907 100644
--- a/docs/source/locale/am/LC_MESSAGES/advanced.po
+++ b/docs/source/locale/am/LC_MESSAGES/advanced.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -63,8 +63,8 @@ msgstr ""
#: ../../source/advanced.rst:28
msgid ""
"The Tor Browser will ask you to enter your private key when you load an "
-"OnionShare service. If you want allow the public to use your service, it's "
-"better to disable the private key altogether."
+"OnionShare service. If you want to allow the public to use your service, "
+"it's better to disable the private key altogether."
msgstr ""
#: ../../source/advanced.rst:31
@@ -107,9 +107,9 @@ msgstr ""
#: ../../source/advanced.rst:51
msgid ""
-"Services scheduled to start in the future display a countdown timer when "
-"when the \"Start sharing\" button is clicked. Services scheduled to stop in "
-"the future display a countdown timer when started."
+"Services scheduled to start in the future display a countdown timer when the "
+"\"Start sharing\" button is clicked. Services scheduled to stop in the "
+"future display a countdown timer when started."
msgstr ""
#: ../../source/advanced.rst:54
@@ -137,53 +137,747 @@ msgid ""
"interface."
msgstr ""
-#: ../../source/advanced.rst:72
-msgid ""
-"You can install just the command-line version of OnionShare using ``pip3``::"
+#: ../../source/advanced.rst:73
+msgid "Installing the CLI version"
msgstr ""
-#: ../../source/advanced.rst:76
+#: ../../source/advanced.rst:75
+msgid ""
+"If you have installed the Snap, macOS or Windows package, you already have "
+"the CLI version installed."
+msgstr ""
+
+#: ../../source/advanced.rst:77
+msgid ""
+"Alternatively, you can install just the command-line version of OnionShare "
+"using ``pip3``::"
+msgstr ""
+
+#: ../../source/advanced.rst:81
msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``"
msgstr ""
-#: ../../source/advanced.rst:78
+#: ../../source/advanced.rst:83
msgid "Then run it like this::"
msgstr ""
-#: ../../source/advanced.rst:82
+#: ../../source/advanced.rst:87
msgid ""
"Info about installing it on different operating systems can be found in the "
"`CLI README file `_ in the Git repository."
msgstr ""
-#: ../../source/advanced.rst:84
-msgid ""
-"If you installed OnionShare using the Snap package, you can also just run "
-"``onionshare.cli`` to access the command-line interface version."
+#: ../../source/advanced.rst:90
+msgid "Running the CLI from Snap"
msgstr ""
-#: ../../source/advanced.rst:87
+#: ../../source/advanced.rst:92
+msgid ""
+"If you installed OnionShare using the Snap package, you can run ``onionshare."
+"cli`` to access the command-line interface version."
+msgstr ""
+
+#: ../../source/advanced.rst:95
+msgid "Running the CLI from macOS"
+msgstr ""
+
+#: ../../source/advanced.rst:97
+msgid ""
+"From Terminal, you can run ``/Applications/OnionShare.app/Contents/MacOS/"
+"onionshare-cli --help``"
+msgstr ""
+
+#: ../../source/advanced.rst:100
+msgid "Running the CLI from Windows"
+msgstr ""
+
+#: ../../source/advanced.rst:102
+msgid ""
+"In the Windows installation, the executable ``onionshare-cli.exe`` is "
+"available."
+msgstr ""
+
+#: ../../source/advanced.rst:105
msgid "Usage"
msgstr ""
-#: ../../source/advanced.rst:89
+#: ../../source/advanced.rst:107
msgid ""
"Browse the command-line documentation by running ``onionshare --help``::"
msgstr ""
-#: ../../source/advanced.rst:151
+#: ../../source/advanced.rst:170
+msgid "Running the CLI as a systemd unit file"
+msgstr ""
+
+#: ../../source/advanced.rst:172
+msgid ""
+"It is possible to automatically start OnionShare from the CLI using a "
+"systemd unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:174
+msgid ""
+"You may find this particularly useful if you are operating in 'persistent' "
+"mode, and want to start the same onion service every time your machine "
+"starts."
+msgstr ""
+
+#: ../../source/advanced.rst:176
+msgid "To do this, you need to prepare some OnionShare json config first."
+msgstr ""
+
+#: ../../source/advanced.rst:178
+msgid ""
+"Here is the main OnionShare config. In this example, it's stored in ``/home/"
+"user/.config/onionshare/onionshare.json``. You may need to adjust some of "
+"the settings, but if you already have OnionShare installed, it probably "
+"looks much like this already::"
+msgstr ""
+
+#: ../../source/advanced.rst:207
+msgid ""
+"Notice the 'persistent_tabs' section. We will now create a file at ``/home/"
+"user/.config/onionshare/persistent/my-persistent-onion.json``, that looks "
+"like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:247
+msgid ""
+"**Don't actually use this private key, service_id or client_auth keys! They "
+"are shown only as an example. Never share the private_key with anyone.**"
+msgstr ""
+
+#: ../../source/advanced.rst:249
+msgid ""
+"The easiest way to generate the onion address and private key is to first "
+"create a 'pinned' OnionShare tab in the desktop app and started the share "
+"for the first time. This will then have saved the persistent settings to "
+"your ``.config/onionshare/persistent/`` folder with a random name. You can "
+"unpin that tab once you've generated it the first time. Or, you can leave it "
+"where it is, and use that persistent file in your systemd unit file below."
+msgstr ""
+
+#: ../../source/advanced.rst:251
+msgid ""
+"Now you can create a systemd unit file in ``/etc/systemd/system/onionshare-"
+"cli.service``. Be sure to adjust the User and Group to your own user/group, "
+"as well as changes to any paths to the onionshare-cli binary or the paths to "
+"your JSON configs and shares."
+msgstr ""
+
+#: ../../source/advanced.rst:253
+msgid "The systemd unit file should look like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:268
+msgid ""
+"Note that although ``/home/user/my-shared-file.txt`` was defined in the "
+"``filenames`` section of the ``my-persistent-onion.json`` file, it's still "
+"necessary to specify it as the argument to the onionshare-cli command."
+msgstr ""
+
+#: ../../source/advanced.rst:270
+msgid ""
+"Be sure to run ``sudo systemctl daemon-reload`` after creating the unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:272
+msgid ""
+"Now you can run ``sudo systemctl start onionshare-cli.service``. If you have "
+"``journalctl`` installed, you can run ``sudo journalctl -f -t onionshare-"
+"cli``, and you should see some output of your service starting::"
+msgstr ""
+
+#: ../../source/advanced.rst:282
+msgid ""
+"If you don't want your users to use a Private Key, set ``public`` to be "
+"``true`` in the ``general`` settings of the my-persistent-onion.json file."
+msgstr ""
+
+#: ../../source/advanced.rst:286
msgid "Keyboard Shortcuts"
msgstr ""
-#: ../../source/advanced.rst:153
+#: ../../source/advanced.rst:288
msgid ""
"The OnionShare desktop application contains some keyboard shortcuts, for "
"convenience and accessibility::"
msgstr ""
-#: ../../source/advanced.rst:158
+#: ../../source/advanced.rst:293
msgid "And from the main mode chooser screen::"
msgstr ""
+
+#: ../../source/advanced.rst:303
+msgid "Migrating your OnionShare data to another computer"
+msgstr ""
+
+#: ../../source/advanced.rst:305
+msgid ""
+"You may want to migrate your OnionShare data when switching to another "
+"computer. This is especially true if you had a 'persistent' onion address "
+"and you want to preserve it."
+msgstr ""
+
+#: ../../source/advanced.rst:307
+msgid ""
+"OnionShare stores all such data in a specific folder. Copy the relevant "
+"folder for your operating system below, to your new computer:"
+msgstr ""
+
+#: ../../source/advanced.rst:309
+msgid "Linux: ``~/.config/onionshare``"
+msgstr ""
+
+#: ../../source/advanced.rst:310
+msgid "macOS: ``~/Library/Application Support/OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:311
+msgid "Windows: ``%APPDATA%\\OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:315
+msgid "Configuration file parameters"
+msgstr ""
+
+#: ../../source/advanced.rst:317
+msgid ""
+"OnionShare stores its settings in a JSON file. Both the CLI and the Desktop "
+"versions use this configuration file. The CLI also lets you specify a path "
+"to a custom configuration file with ``--config``."
+msgstr ""
+
+#: ../../source/advanced.rst:319
+msgid ""
+"Below are the configuration file parameters and what they mean. If your "
+"configuration file has other parameters not listed here, they may be "
+"obsolete from older OnionShare versions."
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Parameter"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Type"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Explanation"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid "version"
+msgstr ""
+
+#: ../../source/advanced.rst:324 ../../source/advanced.rst:325
+#: ../../source/advanced.rst:326 ../../source/advanced.rst:328
+#: ../../source/advanced.rst:330 ../../source/advanced.rst:331
+#: ../../source/advanced.rst:332 ../../source/advanced.rst:337
+#: ../../source/advanced.rst:338 ../../source/advanced.rst:339
+#: ../../source/advanced.rst:340 ../../source/advanced.rst:343
+#: ../../source/advanced.rst:404 ../../source/advanced.rst:405
+#: ../../source/advanced.rst:406 ../../source/advanced.rst:415
+#: ../../source/advanced.rst:426 ../../source/advanced.rst:430
+#: ../../source/advanced.rst:452 ../../source/advanced.rst:453
+#: ../../source/advanced.rst:465
+msgid "``string``"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid ""
+"The version of OnionShare. You should not ever need to change this value."
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid "connection_type"
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid ""
+"The way in which OnionShare connects to Tor. Valid options are 'bundled', "
+"'automatic' (use Tor Browser's Tor connection), 'control_port' or "
+"'socket_file'. Default: 'bundled'"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid "control_port_address"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid ""
+"The IP address of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid "control_port_port"
+msgstr ""
+
+#: ../../source/advanced.rst:327 ../../source/advanced.rst:329
+#: ../../source/advanced.rst:335
+msgid "``integer``"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid ""
+"The port number of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '9051'"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid "socks_address"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid ""
+"The IP address of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid "socks_port"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid ""
+"The port number of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: ''9050'"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid "socket_file_path"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid ""
+"The path to Tor's socket file, if ``connection_type`` is set to "
+"'socket_file'. Default: '/var/run/tor/control'"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid "auth_type"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid ""
+"If access to Tor's control port requires a password, this can be set to "
+"'password', otherwise 'no_auth'. Default: 'no_auth'"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid "auth_password"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid ""
+"If access to Tor's control port requires a password, and ``auth_type`` is "
+"set to 'password', specify the password here. Default: ''"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid "auto_connect"
+msgstr ""
+
+#: ../../source/advanced.rst:333 ../../source/advanced.rst:334
+#: ../../source/advanced.rst:336 ../../source/advanced.rst:344
+#: ../../source/advanced.rst:416 ../../source/advanced.rst:417
+#: ../../source/advanced.rst:427 ../../source/advanced.rst:428
+#: ../../source/advanced.rst:429 ../../source/advanced.rst:441
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:454
+#: ../../source/advanced.rst:455 ../../source/advanced.rst:464
+#: ../../source/advanced.rst:466
+msgid "``boolean``"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid ""
+"Whether OnionShare should automatically connect to Tor when it starts. "
+"Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid "use_autoupdate"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid ""
+"Whether OnionShare should automatically check for updates (over Tor). This "
+"setting is only valid for MacOS or Windows installations. Default: True."
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "autoupdate_timestamp"
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "The last time OnionShare checked for updates. Default: None"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "bridges_enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "Whether to connect to Tor using bridges. Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid "bridges_type"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid ""
+"When ``bridges_enabled`` is True, where to load bridges from. Options are "
+"\"built-in\" (bridges shipped with OnionShare and which may get updated from "
+"Tor), \"moat\" (request bridges from Tor's Moat API), or \"custom\" (user-"
+"supplied bridges). Default: \"built-in\""
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid "bridges_builtin_pt"
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", this specifies which type of "
+"bridge protocol to use. Options are \"obfs4\", \"meek-azure\" or "
+"\"snowflake\". Default: \"obfs4\""
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid "bridges_moat"
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid ""
+"When ``bridges_type`` is set to \"moat\", the bridges returned from Tor's "
+"Moat API are stored here. Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid "bridges_custom"
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid ""
+"When ``bridges_type`` is set to \"custom\", the bridges specified by the "
+"user are stored here. Separate each bridge line in the string with '\\n'. "
+"Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "bridges_builtin"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "``dict``"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", OnionShare obtains the latest "
+"built-in bridges recommended by Tor and stores them here. Default: {}"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid "persistent_tabs"
+msgstr ""
+
+#: ../../source/advanced.rst:342 ../../source/advanced.rst:442
+#: ../../source/advanced.rst:467
+msgid "``list``"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid ""
+"If the user has defined any tabs as 'saved' (meaning that they are "
+"persistent each time OnionShare starts, and their onion address doesn't "
+"change), these are given a random identifier which gets listed here. The "
+"persistent onion is stored as a JSON file with the same name as this "
+"identifier, in a subfolder of the OnionShare configuration folder called "
+"'persistent'. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid "locale"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid ""
+"The locale used in OnionShare. Default: None (which is the same as 'en'). "
+"For valid locale codes, see 'available_locales' in https://github.com/"
+"onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid "theme"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid ""
+"The theme for the OnionShare desktop app. Valid options are 0 (automatically "
+"detect the user's computer's light or dark theme), 1 (light) or 2 (dark)."
+msgstr ""
+
+#: ../../source/advanced.rst:349
+msgid "Configuration file parameters for persistent onions"
+msgstr ""
+
+#: ../../source/advanced.rst:351
+msgid ""
+"As described above, each 'persistent' onion has parameters of its own which "
+"are stored in its own JSON file. The path to this file can be specified for "
+"the CLI tool with ``--persistent``."
+msgstr ""
+
+#: ../../source/advanced.rst:353
+msgid "Here is an example persistent JSON configuration::"
+msgstr ""
+
+#: ../../source/advanced.rst:396
+msgid ""
+"Below are the configuration file parameters for a persistent onion and what "
+"they mean, for each section in the JSON"
+msgstr ""
+
+#: ../../source/advanced.rst:399
+msgid "onion"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "private_key"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "Base64-encoded private key of the onion service"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid "client_auth_priv_key"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid ""
+"The private key when using Client Authentication. Send this to the user."
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid "client_auth_pub_key"
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid ""
+"The public key when using Client Authentication. Used on OnionShare's side."
+msgstr ""
+
+#: ../../source/advanced.rst:410
+msgid "persistent"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid "mode"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid ""
+"The mode used by this persistent onion. Options are \"share\", \"receive\", "
+"\"website\" or \"chat\"."
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid "enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid ""
+"Whether persistence is enabled for this onion. When the persistent option is "
+"unchecked in the desktop, this entire JSON file is deleted. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid "autostart_on_launch"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid ""
+"Whether to automatically start this persistent onion when OnionShare starts "
+"and once Tor is connected. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:421
+msgid "general"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid "title"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid ""
+"An optional custom title for displaying on the onion service. Default: null "
+"(\"OnionShare\" will be shown instead)"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid "public"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid ""
+"Whether the onion service can be accessed with or without a Private Key "
+"(Client Authentication). If true, no Private Key is required."
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid "autostart_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid ""
+"Whether the onion service is configured to start at a specific time. The "
+"time can be set in the desktop app or specified in seconds with ``--auto-"
+"start-timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid "autostop_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid ""
+"Whether the onion service is configured to stop at a specific time. The time "
+"can be set in the desktop app or specified in seconds with ``--auto-stop-"
+"timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid "service_id"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid ""
+"The 32-character onion service URL, without the scheme and without the '."
+"onion' suffix."
+msgstr ""
+
+#: ../../source/advanced.rst:433
+msgid ""
+"The below are settings specific to the 'mode' specified in the "
+"``persistent`` section above."
+msgstr ""
+
+#: ../../source/advanced.rst:436
+msgid "share"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid "autostop_sharing"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid ""
+"Whether to automatically stop the share once files are downloaded the first "
+"time. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "A list of files to share. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid "log_filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid ""
+"Whether to log URL requests to stdout when using the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:447
+msgid "receive"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid "data_dir"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid ""
+"The path where received files or text messages will be stored. Default: the "
+"'OnionShare' folder of the user's home directory."
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid "webhook_url"
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid ""
+"A webhook URL that OnionShare will POST to when it receives files or text "
+"messages. Default: null"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "disable_text"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "Whether to disable receiving text messages. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "disable_files"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "Whether to disable receiving files. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:459
+msgid "website"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid "disable_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid ""
+"If set to ``true``, OnionShare won't set its default Content Security Policy "
+"header for the website. Default: ``false``"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "custom_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "A custom Content Security Policy header to send instead of the default."
+msgstr ""
+
+#: ../../source/advanced.rst:471
+msgid "chat"
+msgstr ""
+
+#: ../../source/advanced.rst:473
+msgid "There are currently no configurable settings for the Chat mode."
+msgstr ""
diff --git a/docs/source/locale/am/LC_MESSAGES/develop.po b/docs/source/locale/am/LC_MESSAGES/develop.po
index b94ecbcd..0e89fe94 100644
--- a/docs/source/locale/am/LC_MESSAGES/develop.po
+++ b/docs/source/locale/am/LC_MESSAGES/develop.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
diff --git a/docs/source/locale/am/LC_MESSAGES/features.po b/docs/source/locale/am/LC_MESSAGES/features.po
index 1a18c801..daeebeba 100644
--- a/docs/source/locale/am/LC_MESSAGES/features.po
+++ b/docs/source/locale/am/LC_MESSAGES/features.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -83,7 +83,7 @@ msgid ""
"share, and click \"Start sharing\"."
msgstr ""
-#: ../../source/features.rst:35 ../../source/features.rst:112
+#: ../../source/features.rst:35 ../../source/features.rst:117
msgid ""
"After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing."
@@ -245,17 +245,29 @@ msgid ""
msgstr ""
#: ../../source/features.rst:102
-msgid "Host a Website"
+msgid "Other caveats to be aware of in Receive Mode"
msgstr ""
#: ../../source/features.rst:104
msgid ""
+"There are reports that OnionBrowser on iOS devices are unable to upload "
+"files to an OnionShare in Receive Mode, when operating in 'Silver' security "
+"mode. Try Bronze or Gold to see if you are able to upload a message or a "
+"file."
+msgstr ""
+
+#: ../../source/features.rst:107
+msgid "Host a Website"
+msgstr ""
+
+#: ../../source/features.rst:109
+msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag the "
"files and folders that make up the static content there, and click \"Start "
"sharing\" when you are ready."
msgstr ""
-#: ../../source/features.rst:108
+#: ../../source/features.rst:113
msgid ""
"If you add an ``index.html`` file, it will render when someone loads your "
"website. You should also include any other HTML files, CSS files, JavaScript "
@@ -264,17 +276,17 @@ msgid ""
"or use databases. So you can't for example use WordPress.)"
msgstr ""
-#: ../../source/features.rst:110
+#: ../../source/features.rst:115
msgid ""
"If you don't have an ``index.html`` file, it will show a directory listing "
"instead, and people loading it can look through the files and download them."
msgstr ""
-#: ../../source/features.rst:117
+#: ../../source/features.rst:122
msgid "Content Security Policy"
msgstr ""
-#: ../../source/features.rst:119
+#: ../../source/features.rst:124
msgid ""
"By default OnionShare helps secure your website by setting a strict `Content "
"Security Policy `_ "
@@ -282,28 +294,28 @@ msgid ""
"web page."
msgstr ""
-#: ../../source/features.rst:121
+#: ../../source/features.rst:126
msgid ""
"If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, you have two options:"
msgstr ""
-#: ../../source/features.rst:123
+#: ../../source/features.rst:128
msgid ""
"You can disable sending a Content Security Policy header by checking the "
"\"Don't send Content Security Policy header (allows your website to use "
"third-party resources)\" box before starting the service."
msgstr ""
-#: ../../source/features.rst:124
+#: ../../source/features.rst:129
msgid "You can send a custom Content Security Policy header."
msgstr ""
-#: ../../source/features.rst:127
+#: ../../source/features.rst:132
msgid "Tips for running a website service"
msgstr ""
-#: ../../source/features.rst:129
+#: ../../source/features.rst:134
msgid ""
"If you want to host a long-term website using OnionShare (meaning not just "
"to quickly show someone something), it's recommended you do it on a "
@@ -313,23 +325,23 @@ msgid ""
"close OnionShare and re-open it later."
msgstr ""
-#: ../../source/features.rst:132
+#: ../../source/features.rst:137
msgid ""
"If your website is intended for the public, you should run it as a public "
"service (see :ref:`turn_off_private_key`)."
msgstr ""
-#: ../../source/features.rst:135
+#: ../../source/features.rst:140
msgid "Chat Anonymously"
msgstr ""
-#: ../../source/features.rst:137
+#: ../../source/features.rst:142
msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't "
"log anything. Just open a chat tab and click \"Start chat server\"."
msgstr ""
-#: ../../source/features.rst:141
+#: ../../source/features.rst:146
msgid ""
"After you start the server, copy the OnionShare address and private key and "
"send them to the people you want in the anonymous chat room. If it's "
@@ -337,7 +349,7 @@ msgid ""
"send out the OnionShare address and private key."
msgstr ""
-#: ../../source/features.rst:146
+#: ../../source/features.rst:151
msgid ""
"People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to "
@@ -345,7 +357,7 @@ msgid ""
"or \"Safer\", instead of \"Safest\"."
msgstr ""
-#: ../../source/features.rst:149
+#: ../../source/features.rst:154
msgid ""
"When someone joins the chat room they get assigned a random name. They can "
"change their name by typing a new name in the box in the left panel and "
@@ -353,30 +365,30 @@ msgid ""
"displayed at all, even if others were already chatting in the room."
msgstr ""
-#: ../../source/features.rst:155
+#: ../../source/features.rst:160
msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change their "
"name to anything, and there is no way to confirm anyone's identity."
msgstr ""
-#: ../../source/features.rst:158
+#: ../../source/features.rst:163
msgid ""
"However, if you create an OnionShare chat room and securely send the address "
"only to a small group of trusted friends using encrypted messages, you can "
"be reasonably confident the people joining the chat room are your friends."
msgstr ""
-#: ../../source/features.rst:161
+#: ../../source/features.rst:166
msgid "How is this useful?"
msgstr ""
-#: ../../source/features.rst:163
+#: ../../source/features.rst:168
msgid ""
"If you need to already be using an encrypted messaging app, what's the point "
"of an OnionShare chat room to begin with? It leaves less traces."
msgstr ""
-#: ../../source/features.rst:165
+#: ../../source/features.rst:170
msgid ""
"If you for example send a message to a Signal group, a copy of your message "
"ends up on each device (the smartphones, and computers if they set up Signal "
@@ -387,7 +399,7 @@ msgid ""
"any messages anywhere, so the problem is reduced to a minimum."
msgstr ""
-#: ../../source/features.rst:168
+#: ../../source/features.rst:173
msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any "
@@ -396,11 +408,11 @@ msgid ""
"journalist to join the chat room, all without compromosing their anonymity."
msgstr ""
-#: ../../source/features.rst:172
+#: ../../source/features.rst:177
msgid "How does the encryption work?"
msgstr ""
-#: ../../source/features.rst:174
+#: ../../source/features.rst:179
msgid ""
"Because OnionShare relies on Tor onion services, connections between the Tor "
"Browser and OnionShare are all end-to-end encrypted (E2EE). When someone "
@@ -409,7 +421,7 @@ msgid ""
"of the chat room using WebSockets, through their E2EE onion connections."
msgstr ""
-#: ../../source/features.rst:176
+#: ../../source/features.rst:181
msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on "
"the Tor onion service's encryption instead."
diff --git a/docs/source/locale/am/LC_MESSAGES/help.po b/docs/source/locale/am/LC_MESSAGES/help.po
index 947fb490..c3ddca7c 100644
--- a/docs/source/locale/am/LC_MESSAGES/help.po
+++ b/docs/source/locale/am/LC_MESSAGES/help.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
diff --git a/docs/source/locale/am/LC_MESSAGES/index.po b/docs/source/locale/am/LC_MESSAGES/index.po
index 529505e3..98abc298 100644
--- a/docs/source/locale/am/LC_MESSAGES/index.po
+++ b/docs/source/locale/am/LC_MESSAGES/index.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
diff --git a/docs/source/locale/am/LC_MESSAGES/install.po b/docs/source/locale/am/LC_MESSAGES/install.po
index 9dc13ce7..e92e302b 100644
--- a/docs/source/locale/am/LC_MESSAGES/install.po
+++ b/docs/source/locale/am/LC_MESSAGES/install.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -38,7 +38,7 @@ msgstr ""
msgid "You can download OnionShare for Mobile from the follow links"
msgstr ""
-#: ../../source/install.rst:18
+#: ../../source/install.rst:16
msgid "Android"
msgstr ""
@@ -52,7 +52,7 @@ msgstr ""
msgid "F-Droid: https://github.com/onionshare/onionshare-android-nightly"
msgstr ""
-#: ../../source/install.rst:24
+#: ../../source/install.rst:20
msgid "iOS"
msgstr ""
@@ -303,11 +303,11 @@ msgstr ""
#: ../../source/install.rst:117
msgid ""
"Packages are signed by the core developer who is responsible for the "
-"particular release. Following are the informations of the core developers of "
-"OnionShare:"
+"particular release. Here is the GPG key information for each of the core "
+"developers of OnionShare:"
msgstr ""
-#: ../../source/install.rst:122
+#: ../../source/install.rst:120
msgid "Micah Lee:"
msgstr ""
@@ -323,7 +323,7 @@ msgid ""
"fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
msgstr ""
-#: ../../source/install.rst:126
+#: ../../source/install.rst:124
msgid "Saptak Sengupta:"
msgstr ""
@@ -340,17 +340,33 @@ msgid ""
msgstr ""
#: ../../source/install.rst:128
+msgid "Miguel Jacq:"
+msgstr ""
+
+#: ../../source/install.rst:129
+msgid ""
+"PGP public key fingerprint ``00AE817C24A10C2540461A9C1D7CDE0234DB458D``."
+msgstr ""
+
+#: ../../source/install.rst:130
+msgid ""
+"You can download Miguel's key `from the keys.openpgp.org keyserver `_."
+msgstr ""
+
+#: ../../source/install.rst:132
msgid ""
"You must have GnuPG installed to verify signatures. For macOS you probably "
"want `GPGTools `_, and for Windows you probably want "
"`Gpg4win `_."
msgstr ""
-#: ../../source/install.rst:131
+#: ../../source/install.rst:135
msgid "Signatures"
msgstr ""
-#: ../../source/install.rst:133
+#: ../../source/install.rst:137
msgid ""
"You can find the signatures (as ``.asc`` files), as well as Windows, macOS, "
"Flatpak, Snap, and source packages, at https://onionshare.org/dist/ in the "
@@ -358,52 +374,52 @@ msgid ""
"`GitHub Releases page `_."
msgstr ""
-#: ../../source/install.rst:137
+#: ../../source/install.rst:141
msgid "Verifying"
msgstr ""
-#: ../../source/install.rst:139
+#: ../../source/install.rst:143
msgid ""
"Once you have imported the core developers public keys into your GnuPG "
"keychain, downloaded the binary and ``.asc`` signature, you can verify the "
"binary in a terminal like this:"
msgstr ""
-#: ../../source/install.rst:141
+#: ../../source/install.rst:145
msgid "For Windows::"
msgstr ""
-#: ../../source/install.rst:145
+#: ../../source/install.rst:149
msgid "For macOS::"
msgstr ""
-#: ../../source/install.rst:149
+#: ../../source/install.rst:153
msgid "For Linux::"
msgstr ""
-#: ../../source/install.rst:155
+#: ../../source/install.rst:159
msgid "and for the source file::"
msgstr ""
-#: ../../source/install.rst:159
+#: ../../source/install.rst:163
msgid "The expected output looks like this::"
msgstr ""
-#: ../../source/install.rst:169
+#: ../../source/install.rst:173
msgid ""
"If you don't see ``Good signature from``, there might be a problem with the "
"integrity of the file (malicious or otherwise), and you should not install "
"the package."
msgstr ""
-#: ../../source/install.rst:171
+#: ../../source/install.rst:175
msgid ""
"The ``WARNING:`` shown above, is not a problem with the package, it only "
"means you haven't defined a level of \"trust\" of Micah's (the core "
"developer) PGP key."
msgstr ""
-#: ../../source/install.rst:173
+#: ../../source/install.rst:177
msgid ""
"If you want to learn more about verifying PGP signatures, the guides for "
"`Qubes OS `_ and "
diff --git a/docs/source/locale/am/LC_MESSAGES/security.po b/docs/source/locale/am/LC_MESSAGES/security.po
index 34b025c2..0b4f9aa0 100644
--- a/docs/source/locale/am/LC_MESSAGES/security.po
+++ b/docs/source/locale/am/LC_MESSAGES/security.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
diff --git a/docs/source/locale/am/LC_MESSAGES/sphinx.po b/docs/source/locale/am/LC_MESSAGES/sphinx.po
index 4e4e71cd..06efeb4a 100644
--- a/docs/source/locale/am/LC_MESSAGES/sphinx.po
+++ b/docs/source/locale/am/LC_MESSAGES/sphinx.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
diff --git a/docs/source/locale/am/LC_MESSAGES/tor.po b/docs/source/locale/am/LC_MESSAGES/tor.po
index 9cb73d31..0fdb2ce4 100644
--- a/docs/source/locale/am/LC_MESSAGES/tor.po
+++ b/docs/source/locale/am/LC_MESSAGES/tor.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
diff --git a/docs/source/locale/ar/LC_MESSAGES/advanced.po b/docs/source/locale/ar/LC_MESSAGES/advanced.po
index 57f93ad1..45c1a0bf 100644
--- a/docs/source/locale/ar/LC_MESSAGES/advanced.po
+++ b/docs/source/locale/ar/LC_MESSAGES/advanced.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2024-02-05 09:03+0000\n"
"Last-Translator: ButterflyOfFire \n"
"Language-Team: LANGUAGE \n"
@@ -67,8 +67,8 @@ msgstr ""
#: ../../source/advanced.rst:28
msgid ""
"The Tor Browser will ask you to enter your private key when you load an "
-"OnionShare service. If you want allow the public to use your service, it's "
-"better to disable the private key altogether."
+"OnionShare service. If you want to allow the public to use your service, "
+"it's better to disable the private key altogether."
msgstr ""
#: ../../source/advanced.rst:31
@@ -111,9 +111,9 @@ msgstr ""
#: ../../source/advanced.rst:51
msgid ""
-"Services scheduled to start in the future display a countdown timer when "
-"when the \"Start sharing\" button is clicked. Services scheduled to stop in "
-"the future display a countdown timer when started."
+"Services scheduled to start in the future display a countdown timer when the "
+"\"Start sharing\" button is clicked. Services scheduled to stop in the "
+"future display a countdown timer when started."
msgstr ""
#: ../../source/advanced.rst:54
@@ -141,53 +141,747 @@ msgid ""
"interface."
msgstr ""
-#: ../../source/advanced.rst:72
-msgid ""
-"You can install just the command-line version of OnionShare using ``pip3``::"
+#: ../../source/advanced.rst:73
+msgid "Installing the CLI version"
msgstr ""
-#: ../../source/advanced.rst:76
+#: ../../source/advanced.rst:75
+msgid ""
+"If you have installed the Snap, macOS or Windows package, you already have "
+"the CLI version installed."
+msgstr ""
+
+#: ../../source/advanced.rst:77
+msgid ""
+"Alternatively, you can install just the command-line version of OnionShare "
+"using ``pip3``::"
+msgstr ""
+
+#: ../../source/advanced.rst:81
msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``"
msgstr ""
-#: ../../source/advanced.rst:78
+#: ../../source/advanced.rst:83
msgid "Then run it like this::"
msgstr ""
-#: ../../source/advanced.rst:82
+#: ../../source/advanced.rst:87
msgid ""
"Info about installing it on different operating systems can be found in the "
"`CLI README file `_ in the Git repository."
msgstr ""
-#: ../../source/advanced.rst:84
-msgid ""
-"If you installed OnionShare using the Snap package, you can also just run "
-"``onionshare.cli`` to access the command-line interface version."
+#: ../../source/advanced.rst:90
+msgid "Running the CLI from Snap"
msgstr ""
-#: ../../source/advanced.rst:87
+#: ../../source/advanced.rst:92
+msgid ""
+"If you installed OnionShare using the Snap package, you can run ``onionshare."
+"cli`` to access the command-line interface version."
+msgstr ""
+
+#: ../../source/advanced.rst:95
+msgid "Running the CLI from macOS"
+msgstr ""
+
+#: ../../source/advanced.rst:97
+msgid ""
+"From Terminal, you can run ``/Applications/OnionShare.app/Contents/MacOS/"
+"onionshare-cli --help``"
+msgstr ""
+
+#: ../../source/advanced.rst:100
+msgid "Running the CLI from Windows"
+msgstr ""
+
+#: ../../source/advanced.rst:102
+msgid ""
+"In the Windows installation, the executable ``onionshare-cli.exe`` is "
+"available."
+msgstr ""
+
+#: ../../source/advanced.rst:105
msgid "Usage"
msgstr "الإستخدام"
-#: ../../source/advanced.rst:89
+#: ../../source/advanced.rst:107
msgid ""
"Browse the command-line documentation by running ``onionshare --help``::"
msgstr ""
-#: ../../source/advanced.rst:151
+#: ../../source/advanced.rst:170
+msgid "Running the CLI as a systemd unit file"
+msgstr ""
+
+#: ../../source/advanced.rst:172
+msgid ""
+"It is possible to automatically start OnionShare from the CLI using a "
+"systemd unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:174
+msgid ""
+"You may find this particularly useful if you are operating in 'persistent' "
+"mode, and want to start the same onion service every time your machine "
+"starts."
+msgstr ""
+
+#: ../../source/advanced.rst:176
+msgid "To do this, you need to prepare some OnionShare json config first."
+msgstr ""
+
+#: ../../source/advanced.rst:178
+msgid ""
+"Here is the main OnionShare config. In this example, it's stored in ``/home/"
+"user/.config/onionshare/onionshare.json``. You may need to adjust some of "
+"the settings, but if you already have OnionShare installed, it probably "
+"looks much like this already::"
+msgstr ""
+
+#: ../../source/advanced.rst:207
+msgid ""
+"Notice the 'persistent_tabs' section. We will now create a file at ``/home/"
+"user/.config/onionshare/persistent/my-persistent-onion.json``, that looks "
+"like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:247
+msgid ""
+"**Don't actually use this private key, service_id or client_auth keys! They "
+"are shown only as an example. Never share the private_key with anyone.**"
+msgstr ""
+
+#: ../../source/advanced.rst:249
+msgid ""
+"The easiest way to generate the onion address and private key is to first "
+"create a 'pinned' OnionShare tab in the desktop app and started the share "
+"for the first time. This will then have saved the persistent settings to "
+"your ``.config/onionshare/persistent/`` folder with a random name. You can "
+"unpin that tab once you've generated it the first time. Or, you can leave it "
+"where it is, and use that persistent file in your systemd unit file below."
+msgstr ""
+
+#: ../../source/advanced.rst:251
+msgid ""
+"Now you can create a systemd unit file in ``/etc/systemd/system/onionshare-"
+"cli.service``. Be sure to adjust the User and Group to your own user/group, "
+"as well as changes to any paths to the onionshare-cli binary or the paths to "
+"your JSON configs and shares."
+msgstr ""
+
+#: ../../source/advanced.rst:253
+msgid "The systemd unit file should look like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:268
+msgid ""
+"Note that although ``/home/user/my-shared-file.txt`` was defined in the "
+"``filenames`` section of the ``my-persistent-onion.json`` file, it's still "
+"necessary to specify it as the argument to the onionshare-cli command."
+msgstr ""
+
+#: ../../source/advanced.rst:270
+msgid ""
+"Be sure to run ``sudo systemctl daemon-reload`` after creating the unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:272
+msgid ""
+"Now you can run ``sudo systemctl start onionshare-cli.service``. If you have "
+"``journalctl`` installed, you can run ``sudo journalctl -f -t onionshare-"
+"cli``, and you should see some output of your service starting::"
+msgstr ""
+
+#: ../../source/advanced.rst:282
+msgid ""
+"If you don't want your users to use a Private Key, set ``public`` to be "
+"``true`` in the ``general`` settings of the my-persistent-onion.json file."
+msgstr ""
+
+#: ../../source/advanced.rst:286
msgid "Keyboard Shortcuts"
msgstr "اختصارات لوحة المفاتيح"
-#: ../../source/advanced.rst:153
+#: ../../source/advanced.rst:288
msgid ""
"The OnionShare desktop application contains some keyboard shortcuts, for "
"convenience and accessibility::"
msgstr ""
-#: ../../source/advanced.rst:158
+#: ../../source/advanced.rst:293
msgid "And from the main mode chooser screen::"
msgstr ""
+
+#: ../../source/advanced.rst:303
+msgid "Migrating your OnionShare data to another computer"
+msgstr ""
+
+#: ../../source/advanced.rst:305
+msgid ""
+"You may want to migrate your OnionShare data when switching to another "
+"computer. This is especially true if you had a 'persistent' onion address "
+"and you want to preserve it."
+msgstr ""
+
+#: ../../source/advanced.rst:307
+msgid ""
+"OnionShare stores all such data in a specific folder. Copy the relevant "
+"folder for your operating system below, to your new computer:"
+msgstr ""
+
+#: ../../source/advanced.rst:309
+msgid "Linux: ``~/.config/onionshare``"
+msgstr ""
+
+#: ../../source/advanced.rst:310
+msgid "macOS: ``~/Library/Application Support/OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:311
+msgid "Windows: ``%APPDATA%\\OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:315
+msgid "Configuration file parameters"
+msgstr ""
+
+#: ../../source/advanced.rst:317
+msgid ""
+"OnionShare stores its settings in a JSON file. Both the CLI and the Desktop "
+"versions use this configuration file. The CLI also lets you specify a path "
+"to a custom configuration file with ``--config``."
+msgstr ""
+
+#: ../../source/advanced.rst:319
+msgid ""
+"Below are the configuration file parameters and what they mean. If your "
+"configuration file has other parameters not listed here, they may be "
+"obsolete from older OnionShare versions."
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Parameter"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Type"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Explanation"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid "version"
+msgstr ""
+
+#: ../../source/advanced.rst:324 ../../source/advanced.rst:325
+#: ../../source/advanced.rst:326 ../../source/advanced.rst:328
+#: ../../source/advanced.rst:330 ../../source/advanced.rst:331
+#: ../../source/advanced.rst:332 ../../source/advanced.rst:337
+#: ../../source/advanced.rst:338 ../../source/advanced.rst:339
+#: ../../source/advanced.rst:340 ../../source/advanced.rst:343
+#: ../../source/advanced.rst:404 ../../source/advanced.rst:405
+#: ../../source/advanced.rst:406 ../../source/advanced.rst:415
+#: ../../source/advanced.rst:426 ../../source/advanced.rst:430
+#: ../../source/advanced.rst:452 ../../source/advanced.rst:453
+#: ../../source/advanced.rst:465
+msgid "``string``"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid ""
+"The version of OnionShare. You should not ever need to change this value."
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid "connection_type"
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid ""
+"The way in which OnionShare connects to Tor. Valid options are 'bundled', "
+"'automatic' (use Tor Browser's Tor connection), 'control_port' or "
+"'socket_file'. Default: 'bundled'"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid "control_port_address"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid ""
+"The IP address of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid "control_port_port"
+msgstr ""
+
+#: ../../source/advanced.rst:327 ../../source/advanced.rst:329
+#: ../../source/advanced.rst:335
+msgid "``integer``"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid ""
+"The port number of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '9051'"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid "socks_address"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid ""
+"The IP address of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid "socks_port"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid ""
+"The port number of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: ''9050'"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid "socket_file_path"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid ""
+"The path to Tor's socket file, if ``connection_type`` is set to "
+"'socket_file'. Default: '/var/run/tor/control'"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid "auth_type"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid ""
+"If access to Tor's control port requires a password, this can be set to "
+"'password', otherwise 'no_auth'. Default: 'no_auth'"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid "auth_password"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid ""
+"If access to Tor's control port requires a password, and ``auth_type`` is "
+"set to 'password', specify the password here. Default: ''"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid "auto_connect"
+msgstr ""
+
+#: ../../source/advanced.rst:333 ../../source/advanced.rst:334
+#: ../../source/advanced.rst:336 ../../source/advanced.rst:344
+#: ../../source/advanced.rst:416 ../../source/advanced.rst:417
+#: ../../source/advanced.rst:427 ../../source/advanced.rst:428
+#: ../../source/advanced.rst:429 ../../source/advanced.rst:441
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:454
+#: ../../source/advanced.rst:455 ../../source/advanced.rst:464
+#: ../../source/advanced.rst:466
+msgid "``boolean``"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid ""
+"Whether OnionShare should automatically connect to Tor when it starts. "
+"Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid "use_autoupdate"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid ""
+"Whether OnionShare should automatically check for updates (over Tor). This "
+"setting is only valid for MacOS or Windows installations. Default: True."
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "autoupdate_timestamp"
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "The last time OnionShare checked for updates. Default: None"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "bridges_enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "Whether to connect to Tor using bridges. Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid "bridges_type"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid ""
+"When ``bridges_enabled`` is True, where to load bridges from. Options are "
+"\"built-in\" (bridges shipped with OnionShare and which may get updated from "
+"Tor), \"moat\" (request bridges from Tor's Moat API), or \"custom\" (user-"
+"supplied bridges). Default: \"built-in\""
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid "bridges_builtin_pt"
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", this specifies which type of "
+"bridge protocol to use. Options are \"obfs4\", \"meek-azure\" or "
+"\"snowflake\". Default: \"obfs4\""
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid "bridges_moat"
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid ""
+"When ``bridges_type`` is set to \"moat\", the bridges returned from Tor's "
+"Moat API are stored here. Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid "bridges_custom"
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid ""
+"When ``bridges_type`` is set to \"custom\", the bridges specified by the "
+"user are stored here. Separate each bridge line in the string with '\\n'. "
+"Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "bridges_builtin"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "``dict``"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", OnionShare obtains the latest "
+"built-in bridges recommended by Tor and stores them here. Default: {}"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid "persistent_tabs"
+msgstr ""
+
+#: ../../source/advanced.rst:342 ../../source/advanced.rst:442
+#: ../../source/advanced.rst:467
+msgid "``list``"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid ""
+"If the user has defined any tabs as 'saved' (meaning that they are "
+"persistent each time OnionShare starts, and their onion address doesn't "
+"change), these are given a random identifier which gets listed here. The "
+"persistent onion is stored as a JSON file with the same name as this "
+"identifier, in a subfolder of the OnionShare configuration folder called "
+"'persistent'. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid "locale"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid ""
+"The locale used in OnionShare. Default: None (which is the same as 'en'). "
+"For valid locale codes, see 'available_locales' in https://github.com/"
+"onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid "theme"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid ""
+"The theme for the OnionShare desktop app. Valid options are 0 (automatically "
+"detect the user's computer's light or dark theme), 1 (light) or 2 (dark)."
+msgstr ""
+
+#: ../../source/advanced.rst:349
+msgid "Configuration file parameters for persistent onions"
+msgstr ""
+
+#: ../../source/advanced.rst:351
+msgid ""
+"As described above, each 'persistent' onion has parameters of its own which "
+"are stored in its own JSON file. The path to this file can be specified for "
+"the CLI tool with ``--persistent``."
+msgstr ""
+
+#: ../../source/advanced.rst:353
+msgid "Here is an example persistent JSON configuration::"
+msgstr ""
+
+#: ../../source/advanced.rst:396
+msgid ""
+"Below are the configuration file parameters for a persistent onion and what "
+"they mean, for each section in the JSON"
+msgstr ""
+
+#: ../../source/advanced.rst:399
+msgid "onion"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "private_key"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "Base64-encoded private key of the onion service"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid "client_auth_priv_key"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid ""
+"The private key when using Client Authentication. Send this to the user."
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid "client_auth_pub_key"
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid ""
+"The public key when using Client Authentication. Used on OnionShare's side."
+msgstr ""
+
+#: ../../source/advanced.rst:410
+msgid "persistent"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid "mode"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid ""
+"The mode used by this persistent onion. Options are \"share\", \"receive\", "
+"\"website\" or \"chat\"."
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid "enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid ""
+"Whether persistence is enabled for this onion. When the persistent option is "
+"unchecked in the desktop, this entire JSON file is deleted. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid "autostart_on_launch"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid ""
+"Whether to automatically start this persistent onion when OnionShare starts "
+"and once Tor is connected. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:421
+msgid "general"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid "title"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid ""
+"An optional custom title for displaying on the onion service. Default: null "
+"(\"OnionShare\" will be shown instead)"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid "public"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid ""
+"Whether the onion service can be accessed with or without a Private Key "
+"(Client Authentication). If true, no Private Key is required."
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid "autostart_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid ""
+"Whether the onion service is configured to start at a specific time. The "
+"time can be set in the desktop app or specified in seconds with ``--auto-"
+"start-timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid "autostop_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid ""
+"Whether the onion service is configured to stop at a specific time. The time "
+"can be set in the desktop app or specified in seconds with ``--auto-stop-"
+"timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid "service_id"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid ""
+"The 32-character onion service URL, without the scheme and without the '."
+"onion' suffix."
+msgstr ""
+
+#: ../../source/advanced.rst:433
+msgid ""
+"The below are settings specific to the 'mode' specified in the "
+"``persistent`` section above."
+msgstr ""
+
+#: ../../source/advanced.rst:436
+msgid "share"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid "autostop_sharing"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid ""
+"Whether to automatically stop the share once files are downloaded the first "
+"time. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "A list of files to share. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid "log_filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid ""
+"Whether to log URL requests to stdout when using the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:447
+msgid "receive"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid "data_dir"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid ""
+"The path where received files or text messages will be stored. Default: the "
+"'OnionShare' folder of the user's home directory."
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid "webhook_url"
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid ""
+"A webhook URL that OnionShare will POST to when it receives files or text "
+"messages. Default: null"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "disable_text"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "Whether to disable receiving text messages. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "disable_files"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "Whether to disable receiving files. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:459
+msgid "website"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid "disable_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid ""
+"If set to ``true``, OnionShare won't set its default Content Security Policy "
+"header for the website. Default: ``false``"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "custom_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "A custom Content Security Policy header to send instead of the default."
+msgstr ""
+
+#: ../../source/advanced.rst:471
+msgid "chat"
+msgstr ""
+
+#: ../../source/advanced.rst:473
+msgid "There are currently no configurable settings for the Chat mode."
+msgstr ""
diff --git a/docs/source/locale/ar/LC_MESSAGES/develop.po b/docs/source/locale/ar/LC_MESSAGES/develop.po
index 49317029..756cb12e 100644
--- a/docs/source/locale/ar/LC_MESSAGES/develop.po
+++ b/docs/source/locale/ar/LC_MESSAGES/develop.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/source/locale/ar/LC_MESSAGES/features.po b/docs/source/locale/ar/LC_MESSAGES/features.po
index 8e24c422..6eab35cc 100644
--- a/docs/source/locale/ar/LC_MESSAGES/features.po
+++ b/docs/source/locale/ar/LC_MESSAGES/features.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2021-09-18 20:19+0000\n"
"Last-Translator: ButterflyOfFire \n"
"Language-Team: LANGUAGE \n"
@@ -87,7 +87,7 @@ msgid ""
"share, and click \"Start sharing\"."
msgstr ""
-#: ../../source/features.rst:35 ../../source/features.rst:112
+#: ../../source/features.rst:35 ../../source/features.rst:117
msgid ""
"After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing."
@@ -249,17 +249,29 @@ msgid ""
msgstr ""
#: ../../source/features.rst:102
+msgid "Other caveats to be aware of in Receive Mode"
+msgstr ""
+
+#: ../../source/features.rst:104
+msgid ""
+"There are reports that OnionBrowser on iOS devices are unable to upload "
+"files to an OnionShare in Receive Mode, when operating in 'Silver' security "
+"mode. Try Bronze or Gold to see if you are able to upload a message or a "
+"file."
+msgstr ""
+
+#: ../../source/features.rst:107
msgid "Host a Website"
msgstr "استضافة موقع ويب"
-#: ../../source/features.rst:104
+#: ../../source/features.rst:109
msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag the "
"files and folders that make up the static content there, and click \"Start "
"sharing\" when you are ready."
msgstr ""
-#: ../../source/features.rst:108
+#: ../../source/features.rst:113
msgid ""
"If you add an ``index.html`` file, it will render when someone loads your "
"website. You should also include any other HTML files, CSS files, JavaScript "
@@ -268,17 +280,17 @@ msgid ""
"or use databases. So you can't for example use WordPress.)"
msgstr ""
-#: ../../source/features.rst:110
+#: ../../source/features.rst:115
msgid ""
"If you don't have an ``index.html`` file, it will show a directory listing "
"instead, and people loading it can look through the files and download them."
msgstr ""
-#: ../../source/features.rst:117
+#: ../../source/features.rst:122
msgid "Content Security Policy"
msgstr "سياسة أمان المحتوى"
-#: ../../source/features.rst:119
+#: ../../source/features.rst:124
msgid ""
"By default OnionShare helps secure your website by setting a strict `Content "
"Security Policy `_ "
@@ -286,29 +298,29 @@ msgid ""
"web page."
msgstr ""
-#: ../../source/features.rst:121
+#: ../../source/features.rst:126
msgid ""
"If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, you have two options:"
msgstr ""
-#: ../../source/features.rst:123
+#: ../../source/features.rst:128
msgid ""
"You can disable sending a Content Security Policy header by checking the "
"\"Don't send Content Security Policy header (allows your website to use "
"third-party resources)\" box before starting the service."
msgstr ""
-#: ../../source/features.rst:124
+#: ../../source/features.rst:129
#, fuzzy
msgid "You can send a custom Content Security Policy header."
msgstr "سياسة أمان المحتوى"
-#: ../../source/features.rst:127
+#: ../../source/features.rst:132
msgid "Tips for running a website service"
msgstr "نصائح لتشغيل خدمة موقع ويب"
-#: ../../source/features.rst:129
+#: ../../source/features.rst:134
msgid ""
"If you want to host a long-term website using OnionShare (meaning not just "
"to quickly show someone something), it's recommended you do it on a "
@@ -318,23 +330,23 @@ msgid ""
"close OnionShare and re-open it later."
msgstr ""
-#: ../../source/features.rst:132
+#: ../../source/features.rst:137
msgid ""
"If your website is intended for the public, you should run it as a public "
"service (see :ref:`turn_off_private_key`)."
msgstr ""
-#: ../../source/features.rst:135
+#: ../../source/features.rst:140
msgid "Chat Anonymously"
msgstr "دردشة مجهولة"
-#: ../../source/features.rst:137
+#: ../../source/features.rst:142
msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't "
"log anything. Just open a chat tab and click \"Start chat server\"."
msgstr ""
-#: ../../source/features.rst:141
+#: ../../source/features.rst:146
msgid ""
"After you start the server, copy the OnionShare address and private key and "
"send them to the people you want in the anonymous chat room. If it's "
@@ -342,7 +354,7 @@ msgid ""
"send out the OnionShare address and private key."
msgstr ""
-#: ../../source/features.rst:146
+#: ../../source/features.rst:151
msgid ""
"People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to "
@@ -350,7 +362,7 @@ msgid ""
"or \"Safer\", instead of \"Safest\"."
msgstr ""
-#: ../../source/features.rst:149
+#: ../../source/features.rst:154
msgid ""
"When someone joins the chat room they get assigned a random name. They can "
"change their name by typing a new name in the box in the left panel and "
@@ -358,30 +370,30 @@ msgid ""
"displayed at all, even if others were already chatting in the room."
msgstr ""
-#: ../../source/features.rst:155
+#: ../../source/features.rst:160
msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change their "
"name to anything, and there is no way to confirm anyone's identity."
msgstr ""
-#: ../../source/features.rst:158
+#: ../../source/features.rst:163
msgid ""
"However, if you create an OnionShare chat room and securely send the address "
"only to a small group of trusted friends using encrypted messages, you can "
"be reasonably confident the people joining the chat room are your friends."
msgstr ""
-#: ../../source/features.rst:161
+#: ../../source/features.rst:166
msgid "How is this useful?"
msgstr ""
-#: ../../source/features.rst:163
+#: ../../source/features.rst:168
msgid ""
"If you need to already be using an encrypted messaging app, what's the point "
"of an OnionShare chat room to begin with? It leaves less traces."
msgstr ""
-#: ../../source/features.rst:165
+#: ../../source/features.rst:170
msgid ""
"If you for example send a message to a Signal group, a copy of your message "
"ends up on each device (the smartphones, and computers if they set up Signal "
@@ -392,7 +404,7 @@ msgid ""
"any messages anywhere, so the problem is reduced to a minimum."
msgstr ""
-#: ../../source/features.rst:168
+#: ../../source/features.rst:173
msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any "
@@ -401,11 +413,11 @@ msgid ""
"journalist to join the chat room, all without compromosing their anonymity."
msgstr ""
-#: ../../source/features.rst:172
+#: ../../source/features.rst:177
msgid "How does the encryption work?"
msgstr "كيف تعمل التعمية؟"
-#: ../../source/features.rst:174
+#: ../../source/features.rst:179
msgid ""
"Because OnionShare relies on Tor onion services, connections between the Tor "
"Browser and OnionShare are all end-to-end encrypted (E2EE). When someone "
@@ -414,7 +426,7 @@ msgid ""
"of the chat room using WebSockets, through their E2EE onion connections."
msgstr ""
-#: ../../source/features.rst:176
+#: ../../source/features.rst:181
msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on "
"the Tor onion service's encryption instead."
diff --git a/docs/source/locale/ar/LC_MESSAGES/help.po b/docs/source/locale/ar/LC_MESSAGES/help.po
index c7e1c209..33a9dda8 100644
--- a/docs/source/locale/ar/LC_MESSAGES/help.po
+++ b/docs/source/locale/ar/LC_MESSAGES/help.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-06-29 13:53+0000\n"
"Last-Translator: jonnysemon \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/source/locale/ar/LC_MESSAGES/index.po b/docs/source/locale/ar/LC_MESSAGES/index.po
index 3649c1aa..22687bf3 100644
--- a/docs/source/locale/ar/LC_MESSAGES/index.po
+++ b/docs/source/locale/ar/LC_MESSAGES/index.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2021-02-19 21:35+0000\n"
"Last-Translator: Mohamed Elghdban \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/source/locale/ar/LC_MESSAGES/install.po b/docs/source/locale/ar/LC_MESSAGES/install.po
index 8ae08854..dabe37d4 100644
--- a/docs/source/locale/ar/LC_MESSAGES/install.po
+++ b/docs/source/locale/ar/LC_MESSAGES/install.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-07-31 22:05+0000\n"
"Last-Translator: jonnysemon \n"
"Language-Team: LANGUAGE \n"
@@ -44,7 +44,7 @@ msgstr ""
msgid "You can download OnionShare for Mobile from the follow links"
msgstr ""
-#: ../../source/install.rst:18
+#: ../../source/install.rst:16
msgid "Android"
msgstr ""
@@ -58,7 +58,7 @@ msgstr ""
msgid "F-Droid: https://github.com/onionshare/onionshare-android-nightly"
msgstr ""
-#: ../../source/install.rst:24
+#: ../../source/install.rst:20
msgid "iOS"
msgstr ""
@@ -341,11 +341,11 @@ msgstr ""
#: ../../source/install.rst:117
msgid ""
"Packages are signed by the core developer who is responsible for the "
-"particular release. Following are the informations of the core developers of "
-"OnionShare:"
+"particular release. Here is the GPG key information for each of the core "
+"developers of OnionShare:"
msgstr ""
-#: ../../source/install.rst:122
+#: ../../source/install.rst:120
msgid "Micah Lee:"
msgstr ""
@@ -361,7 +361,7 @@ msgid ""
"fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
msgstr ""
-#: ../../source/install.rst:126
+#: ../../source/install.rst:124
msgid "Saptak Sengupta:"
msgstr ""
@@ -378,17 +378,33 @@ msgid ""
msgstr ""
#: ../../source/install.rst:128
+msgid "Miguel Jacq:"
+msgstr ""
+
+#: ../../source/install.rst:129
+msgid ""
+"PGP public key fingerprint ``00AE817C24A10C2540461A9C1D7CDE0234DB458D``."
+msgstr ""
+
+#: ../../source/install.rst:130
+msgid ""
+"You can download Miguel's key `from the keys.openpgp.org keyserver `_."
+msgstr ""
+
+#: ../../source/install.rst:132
msgid ""
"You must have GnuPG installed to verify signatures. For macOS you probably "
"want `GPGTools `_, and for Windows you probably want "
"`Gpg4win `_."
msgstr ""
-#: ../../source/install.rst:131
+#: ../../source/install.rst:135
msgid "Signatures"
msgstr ""
-#: ../../source/install.rst:133
+#: ../../source/install.rst:137
msgid ""
"You can find the signatures (as ``.asc`` files), as well as Windows, macOS, "
"Flatpak, Snap, and source packages, at https://onionshare.org/dist/ in the "
@@ -396,53 +412,53 @@ msgid ""
"`GitHub Releases page `_."
msgstr ""
-#: ../../source/install.rst:137
+#: ../../source/install.rst:141
msgid "Verifying"
msgstr ""
-#: ../../source/install.rst:139
+#: ../../source/install.rst:143
msgid ""
"Once you have imported the core developers public keys into your GnuPG "
"keychain, downloaded the binary and ``.asc`` signature, you can verify the "
"binary in a terminal like this:"
msgstr ""
-#: ../../source/install.rst:141
+#: ../../source/install.rst:145
msgid "For Windows::"
msgstr ""
-#: ../../source/install.rst:145
+#: ../../source/install.rst:149
msgid "For macOS::"
msgstr ""
-#: ../../source/install.rst:149
+#: ../../source/install.rst:153
#, fuzzy
msgid "For Linux::"
msgstr "Linux"
-#: ../../source/install.rst:155
+#: ../../source/install.rst:159
msgid "and for the source file::"
msgstr ""
-#: ../../source/install.rst:159
+#: ../../source/install.rst:163
msgid "The expected output looks like this::"
msgstr ""
-#: ../../source/install.rst:169
+#: ../../source/install.rst:173
msgid ""
"If you don't see ``Good signature from``, there might be a problem with the "
"integrity of the file (malicious or otherwise), and you should not install "
"the package."
msgstr ""
-#: ../../source/install.rst:171
+#: ../../source/install.rst:175
msgid ""
"The ``WARNING:`` shown above, is not a problem with the package, it only "
"means you haven't defined a level of \"trust\" of Micah's (the core "
"developer) PGP key."
msgstr ""
-#: ../../source/install.rst:173
+#: ../../source/install.rst:177
msgid ""
"If you want to learn more about verifying PGP signatures, the guides for "
"`Qubes OS `_ and "
diff --git a/docs/source/locale/ar/LC_MESSAGES/security.po b/docs/source/locale/ar/LC_MESSAGES/security.po
index a5d94be9..77940a38 100644
--- a/docs/source/locale/ar/LC_MESSAGES/security.po
+++ b/docs/source/locale/ar/LC_MESSAGES/security.po
@@ -6,8 +6,8 @@
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
-"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2024-08-02 19:00+0000\n"
"Last-Translator: jonnysemon \n"
"Language-Team: LANGUAGE \n"
@@ -115,8 +115,8 @@ msgid ""
"using OnionShare for something that isn't secret."
msgstr ""
"**قد لا يكون توصيل عنوان OnionShare والمفتاح الخاص آمنًا.** إن توصيل عنوان "
-"OnionShare للأشخاص هو مسؤولية مستخدم OnionShare. إذا تم إرساله بشكل غير آمن ("
-"مثل من خلال رسالة بريد إلكتروني يراقبها مهاجم)، فيمكن للمتنصت أن يخبر أن "
+"OnionShare للأشخاص هو مسؤولية مستخدم OnionShare. إذا تم إرساله بشكل غير آمن "
+"(مثل من خلال رسالة بريد إلكتروني يراقبها مهاجم)، فيمكن للمتنصت أن يخبر أن "
"OnionShare قيد الاستخدام. يمكن للمتنصتين الوصول إلى الخدمات التي لا تزال قيد "
"التشغيل من خلال تحميل عناوينهم و/أو المفتاح المفقود في متصفح تور. تجنب هذا "
"من خلال توصيل العنوان بشكل آمن، عبر رسالة نصية مُعمَّاة (ربما مع تمكين الرسائل "
diff --git a/docs/source/locale/ar/LC_MESSAGES/sphinx.po b/docs/source/locale/ar/LC_MESSAGES/sphinx.po
index 8900e088..9015d1c5 100644
--- a/docs/source/locale/ar/LC_MESSAGES/sphinx.po
+++ b/docs/source/locale/ar/LC_MESSAGES/sphinx.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2021-02-19 21:35+0000\n"
"Last-Translator: Mohamed Elghdban \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/source/locale/ar/LC_MESSAGES/tor.po b/docs/source/locale/ar/LC_MESSAGES/tor.po
index 521cea81..b8e9cff7 100644
--- a/docs/source/locale/ar/LC_MESSAGES/tor.po
+++ b/docs/source/locale/ar/LC_MESSAGES/tor.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2024-02-12 17:11+0000\n"
"Last-Translator: ButterflyOfFire \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/source/locale/ay/LC_MESSAGES/advanced.po b/docs/source/locale/ay/LC_MESSAGES/advanced.po
index 722cba4a..87b253d4 100644
--- a/docs/source/locale/ay/LC_MESSAGES/advanced.po
+++ b/docs/source/locale/ay/LC_MESSAGES/advanced.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -63,8 +63,8 @@ msgstr ""
#: ../../source/advanced.rst:28
msgid ""
"The Tor Browser will ask you to enter your private key when you load an "
-"OnionShare service. If you want allow the public to use your service, it's "
-"better to disable the private key altogether."
+"OnionShare service. If you want to allow the public to use your service, "
+"it's better to disable the private key altogether."
msgstr ""
#: ../../source/advanced.rst:31
@@ -107,9 +107,9 @@ msgstr ""
#: ../../source/advanced.rst:51
msgid ""
-"Services scheduled to start in the future display a countdown timer when "
-"when the \"Start sharing\" button is clicked. Services scheduled to stop in "
-"the future display a countdown timer when started."
+"Services scheduled to start in the future display a countdown timer when the "
+"\"Start sharing\" button is clicked. Services scheduled to stop in the "
+"future display a countdown timer when started."
msgstr ""
#: ../../source/advanced.rst:54
@@ -137,53 +137,747 @@ msgid ""
"interface."
msgstr ""
-#: ../../source/advanced.rst:72
-msgid ""
-"You can install just the command-line version of OnionShare using ``pip3``::"
+#: ../../source/advanced.rst:73
+msgid "Installing the CLI version"
msgstr ""
-#: ../../source/advanced.rst:76
+#: ../../source/advanced.rst:75
+msgid ""
+"If you have installed the Snap, macOS or Windows package, you already have "
+"the CLI version installed."
+msgstr ""
+
+#: ../../source/advanced.rst:77
+msgid ""
+"Alternatively, you can install just the command-line version of OnionShare "
+"using ``pip3``::"
+msgstr ""
+
+#: ../../source/advanced.rst:81
msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``"
msgstr ""
-#: ../../source/advanced.rst:78
+#: ../../source/advanced.rst:83
msgid "Then run it like this::"
msgstr ""
-#: ../../source/advanced.rst:82
+#: ../../source/advanced.rst:87
msgid ""
"Info about installing it on different operating systems can be found in the "
"`CLI README file `_ in the Git repository."
msgstr ""
-#: ../../source/advanced.rst:84
-msgid ""
-"If you installed OnionShare using the Snap package, you can also just run "
-"``onionshare.cli`` to access the command-line interface version."
+#: ../../source/advanced.rst:90
+msgid "Running the CLI from Snap"
msgstr ""
-#: ../../source/advanced.rst:87
+#: ../../source/advanced.rst:92
+msgid ""
+"If you installed OnionShare using the Snap package, you can run ``onionshare."
+"cli`` to access the command-line interface version."
+msgstr ""
+
+#: ../../source/advanced.rst:95
+msgid "Running the CLI from macOS"
+msgstr ""
+
+#: ../../source/advanced.rst:97
+msgid ""
+"From Terminal, you can run ``/Applications/OnionShare.app/Contents/MacOS/"
+"onionshare-cli --help``"
+msgstr ""
+
+#: ../../source/advanced.rst:100
+msgid "Running the CLI from Windows"
+msgstr ""
+
+#: ../../source/advanced.rst:102
+msgid ""
+"In the Windows installation, the executable ``onionshare-cli.exe`` is "
+"available."
+msgstr ""
+
+#: ../../source/advanced.rst:105
msgid "Usage"
msgstr ""
-#: ../../source/advanced.rst:89
+#: ../../source/advanced.rst:107
msgid ""
"Browse the command-line documentation by running ``onionshare --help``::"
msgstr ""
-#: ../../source/advanced.rst:151
+#: ../../source/advanced.rst:170
+msgid "Running the CLI as a systemd unit file"
+msgstr ""
+
+#: ../../source/advanced.rst:172
+msgid ""
+"It is possible to automatically start OnionShare from the CLI using a "
+"systemd unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:174
+msgid ""
+"You may find this particularly useful if you are operating in 'persistent' "
+"mode, and want to start the same onion service every time your machine "
+"starts."
+msgstr ""
+
+#: ../../source/advanced.rst:176
+msgid "To do this, you need to prepare some OnionShare json config first."
+msgstr ""
+
+#: ../../source/advanced.rst:178
+msgid ""
+"Here is the main OnionShare config. In this example, it's stored in ``/home/"
+"user/.config/onionshare/onionshare.json``. You may need to adjust some of "
+"the settings, but if you already have OnionShare installed, it probably "
+"looks much like this already::"
+msgstr ""
+
+#: ../../source/advanced.rst:207
+msgid ""
+"Notice the 'persistent_tabs' section. We will now create a file at ``/home/"
+"user/.config/onionshare/persistent/my-persistent-onion.json``, that looks "
+"like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:247
+msgid ""
+"**Don't actually use this private key, service_id or client_auth keys! They "
+"are shown only as an example. Never share the private_key with anyone.**"
+msgstr ""
+
+#: ../../source/advanced.rst:249
+msgid ""
+"The easiest way to generate the onion address and private key is to first "
+"create a 'pinned' OnionShare tab in the desktop app and started the share "
+"for the first time. This will then have saved the persistent settings to "
+"your ``.config/onionshare/persistent/`` folder with a random name. You can "
+"unpin that tab once you've generated it the first time. Or, you can leave it "
+"where it is, and use that persistent file in your systemd unit file below."
+msgstr ""
+
+#: ../../source/advanced.rst:251
+msgid ""
+"Now you can create a systemd unit file in ``/etc/systemd/system/onionshare-"
+"cli.service``. Be sure to adjust the User and Group to your own user/group, "
+"as well as changes to any paths to the onionshare-cli binary or the paths to "
+"your JSON configs and shares."
+msgstr ""
+
+#: ../../source/advanced.rst:253
+msgid "The systemd unit file should look like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:268
+msgid ""
+"Note that although ``/home/user/my-shared-file.txt`` was defined in the "
+"``filenames`` section of the ``my-persistent-onion.json`` file, it's still "
+"necessary to specify it as the argument to the onionshare-cli command."
+msgstr ""
+
+#: ../../source/advanced.rst:270
+msgid ""
+"Be sure to run ``sudo systemctl daemon-reload`` after creating the unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:272
+msgid ""
+"Now you can run ``sudo systemctl start onionshare-cli.service``. If you have "
+"``journalctl`` installed, you can run ``sudo journalctl -f -t onionshare-"
+"cli``, and you should see some output of your service starting::"
+msgstr ""
+
+#: ../../source/advanced.rst:282
+msgid ""
+"If you don't want your users to use a Private Key, set ``public`` to be "
+"``true`` in the ``general`` settings of the my-persistent-onion.json file."
+msgstr ""
+
+#: ../../source/advanced.rst:286
msgid "Keyboard Shortcuts"
msgstr ""
-#: ../../source/advanced.rst:153
+#: ../../source/advanced.rst:288
msgid ""
"The OnionShare desktop application contains some keyboard shortcuts, for "
"convenience and accessibility::"
msgstr ""
-#: ../../source/advanced.rst:158
+#: ../../source/advanced.rst:293
msgid "And from the main mode chooser screen::"
msgstr ""
+
+#: ../../source/advanced.rst:303
+msgid "Migrating your OnionShare data to another computer"
+msgstr ""
+
+#: ../../source/advanced.rst:305
+msgid ""
+"You may want to migrate your OnionShare data when switching to another "
+"computer. This is especially true if you had a 'persistent' onion address "
+"and you want to preserve it."
+msgstr ""
+
+#: ../../source/advanced.rst:307
+msgid ""
+"OnionShare stores all such data in a specific folder. Copy the relevant "
+"folder for your operating system below, to your new computer:"
+msgstr ""
+
+#: ../../source/advanced.rst:309
+msgid "Linux: ``~/.config/onionshare``"
+msgstr ""
+
+#: ../../source/advanced.rst:310
+msgid "macOS: ``~/Library/Application Support/OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:311
+msgid "Windows: ``%APPDATA%\\OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:315
+msgid "Configuration file parameters"
+msgstr ""
+
+#: ../../source/advanced.rst:317
+msgid ""
+"OnionShare stores its settings in a JSON file. Both the CLI and the Desktop "
+"versions use this configuration file. The CLI also lets you specify a path "
+"to a custom configuration file with ``--config``."
+msgstr ""
+
+#: ../../source/advanced.rst:319
+msgid ""
+"Below are the configuration file parameters and what they mean. If your "
+"configuration file has other parameters not listed here, they may be "
+"obsolete from older OnionShare versions."
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Parameter"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Type"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Explanation"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid "version"
+msgstr ""
+
+#: ../../source/advanced.rst:324 ../../source/advanced.rst:325
+#: ../../source/advanced.rst:326 ../../source/advanced.rst:328
+#: ../../source/advanced.rst:330 ../../source/advanced.rst:331
+#: ../../source/advanced.rst:332 ../../source/advanced.rst:337
+#: ../../source/advanced.rst:338 ../../source/advanced.rst:339
+#: ../../source/advanced.rst:340 ../../source/advanced.rst:343
+#: ../../source/advanced.rst:404 ../../source/advanced.rst:405
+#: ../../source/advanced.rst:406 ../../source/advanced.rst:415
+#: ../../source/advanced.rst:426 ../../source/advanced.rst:430
+#: ../../source/advanced.rst:452 ../../source/advanced.rst:453
+#: ../../source/advanced.rst:465
+msgid "``string``"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid ""
+"The version of OnionShare. You should not ever need to change this value."
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid "connection_type"
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid ""
+"The way in which OnionShare connects to Tor. Valid options are 'bundled', "
+"'automatic' (use Tor Browser's Tor connection), 'control_port' or "
+"'socket_file'. Default: 'bundled'"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid "control_port_address"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid ""
+"The IP address of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid "control_port_port"
+msgstr ""
+
+#: ../../source/advanced.rst:327 ../../source/advanced.rst:329
+#: ../../source/advanced.rst:335
+msgid "``integer``"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid ""
+"The port number of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '9051'"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid "socks_address"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid ""
+"The IP address of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid "socks_port"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid ""
+"The port number of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: ''9050'"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid "socket_file_path"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid ""
+"The path to Tor's socket file, if ``connection_type`` is set to "
+"'socket_file'. Default: '/var/run/tor/control'"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid "auth_type"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid ""
+"If access to Tor's control port requires a password, this can be set to "
+"'password', otherwise 'no_auth'. Default: 'no_auth'"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid "auth_password"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid ""
+"If access to Tor's control port requires a password, and ``auth_type`` is "
+"set to 'password', specify the password here. Default: ''"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid "auto_connect"
+msgstr ""
+
+#: ../../source/advanced.rst:333 ../../source/advanced.rst:334
+#: ../../source/advanced.rst:336 ../../source/advanced.rst:344
+#: ../../source/advanced.rst:416 ../../source/advanced.rst:417
+#: ../../source/advanced.rst:427 ../../source/advanced.rst:428
+#: ../../source/advanced.rst:429 ../../source/advanced.rst:441
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:454
+#: ../../source/advanced.rst:455 ../../source/advanced.rst:464
+#: ../../source/advanced.rst:466
+msgid "``boolean``"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid ""
+"Whether OnionShare should automatically connect to Tor when it starts. "
+"Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid "use_autoupdate"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid ""
+"Whether OnionShare should automatically check for updates (over Tor). This "
+"setting is only valid for MacOS or Windows installations. Default: True."
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "autoupdate_timestamp"
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "The last time OnionShare checked for updates. Default: None"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "bridges_enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "Whether to connect to Tor using bridges. Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid "bridges_type"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid ""
+"When ``bridges_enabled`` is True, where to load bridges from. Options are "
+"\"built-in\" (bridges shipped with OnionShare and which may get updated from "
+"Tor), \"moat\" (request bridges from Tor's Moat API), or \"custom\" (user-"
+"supplied bridges). Default: \"built-in\""
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid "bridges_builtin_pt"
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", this specifies which type of "
+"bridge protocol to use. Options are \"obfs4\", \"meek-azure\" or "
+"\"snowflake\". Default: \"obfs4\""
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid "bridges_moat"
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid ""
+"When ``bridges_type`` is set to \"moat\", the bridges returned from Tor's "
+"Moat API are stored here. Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid "bridges_custom"
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid ""
+"When ``bridges_type`` is set to \"custom\", the bridges specified by the "
+"user are stored here. Separate each bridge line in the string with '\\n'. "
+"Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "bridges_builtin"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "``dict``"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", OnionShare obtains the latest "
+"built-in bridges recommended by Tor and stores them here. Default: {}"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid "persistent_tabs"
+msgstr ""
+
+#: ../../source/advanced.rst:342 ../../source/advanced.rst:442
+#: ../../source/advanced.rst:467
+msgid "``list``"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid ""
+"If the user has defined any tabs as 'saved' (meaning that they are "
+"persistent each time OnionShare starts, and their onion address doesn't "
+"change), these are given a random identifier which gets listed here. The "
+"persistent onion is stored as a JSON file with the same name as this "
+"identifier, in a subfolder of the OnionShare configuration folder called "
+"'persistent'. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid "locale"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid ""
+"The locale used in OnionShare. Default: None (which is the same as 'en'). "
+"For valid locale codes, see 'available_locales' in https://github.com/"
+"onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid "theme"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid ""
+"The theme for the OnionShare desktop app. Valid options are 0 (automatically "
+"detect the user's computer's light or dark theme), 1 (light) or 2 (dark)."
+msgstr ""
+
+#: ../../source/advanced.rst:349
+msgid "Configuration file parameters for persistent onions"
+msgstr ""
+
+#: ../../source/advanced.rst:351
+msgid ""
+"As described above, each 'persistent' onion has parameters of its own which "
+"are stored in its own JSON file. The path to this file can be specified for "
+"the CLI tool with ``--persistent``."
+msgstr ""
+
+#: ../../source/advanced.rst:353
+msgid "Here is an example persistent JSON configuration::"
+msgstr ""
+
+#: ../../source/advanced.rst:396
+msgid ""
+"Below are the configuration file parameters for a persistent onion and what "
+"they mean, for each section in the JSON"
+msgstr ""
+
+#: ../../source/advanced.rst:399
+msgid "onion"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "private_key"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "Base64-encoded private key of the onion service"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid "client_auth_priv_key"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid ""
+"The private key when using Client Authentication. Send this to the user."
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid "client_auth_pub_key"
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid ""
+"The public key when using Client Authentication. Used on OnionShare's side."
+msgstr ""
+
+#: ../../source/advanced.rst:410
+msgid "persistent"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid "mode"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid ""
+"The mode used by this persistent onion. Options are \"share\", \"receive\", "
+"\"website\" or \"chat\"."
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid "enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid ""
+"Whether persistence is enabled for this onion. When the persistent option is "
+"unchecked in the desktop, this entire JSON file is deleted. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid "autostart_on_launch"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid ""
+"Whether to automatically start this persistent onion when OnionShare starts "
+"and once Tor is connected. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:421
+msgid "general"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid "title"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid ""
+"An optional custom title for displaying on the onion service. Default: null "
+"(\"OnionShare\" will be shown instead)"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid "public"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid ""
+"Whether the onion service can be accessed with or without a Private Key "
+"(Client Authentication). If true, no Private Key is required."
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid "autostart_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid ""
+"Whether the onion service is configured to start at a specific time. The "
+"time can be set in the desktop app or specified in seconds with ``--auto-"
+"start-timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid "autostop_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid ""
+"Whether the onion service is configured to stop at a specific time. The time "
+"can be set in the desktop app or specified in seconds with ``--auto-stop-"
+"timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid "service_id"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid ""
+"The 32-character onion service URL, without the scheme and without the '."
+"onion' suffix."
+msgstr ""
+
+#: ../../source/advanced.rst:433
+msgid ""
+"The below are settings specific to the 'mode' specified in the "
+"``persistent`` section above."
+msgstr ""
+
+#: ../../source/advanced.rst:436
+msgid "share"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid "autostop_sharing"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid ""
+"Whether to automatically stop the share once files are downloaded the first "
+"time. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "A list of files to share. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid "log_filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid ""
+"Whether to log URL requests to stdout when using the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:447
+msgid "receive"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid "data_dir"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid ""
+"The path where received files or text messages will be stored. Default: the "
+"'OnionShare' folder of the user's home directory."
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid "webhook_url"
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid ""
+"A webhook URL that OnionShare will POST to when it receives files or text "
+"messages. Default: null"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "disable_text"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "Whether to disable receiving text messages. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "disable_files"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "Whether to disable receiving files. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:459
+msgid "website"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid "disable_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid ""
+"If set to ``true``, OnionShare won't set its default Content Security Policy "
+"header for the website. Default: ``false``"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "custom_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "A custom Content Security Policy header to send instead of the default."
+msgstr ""
+
+#: ../../source/advanced.rst:471
+msgid "chat"
+msgstr ""
+
+#: ../../source/advanced.rst:473
+msgid "There are currently no configurable settings for the Chat mode."
+msgstr ""
diff --git a/docs/source/locale/ay/LC_MESSAGES/develop.po b/docs/source/locale/ay/LC_MESSAGES/develop.po
index 9b0de474..416cc1fd 100644
--- a/docs/source/locale/ay/LC_MESSAGES/develop.po
+++ b/docs/source/locale/ay/LC_MESSAGES/develop.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
diff --git a/docs/source/locale/ay/LC_MESSAGES/features.po b/docs/source/locale/ay/LC_MESSAGES/features.po
index b6c2cab4..99365b74 100644
--- a/docs/source/locale/ay/LC_MESSAGES/features.po
+++ b/docs/source/locale/ay/LC_MESSAGES/features.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -83,7 +83,7 @@ msgid ""
"share, and click \"Start sharing\"."
msgstr ""
-#: ../../source/features.rst:35 ../../source/features.rst:112
+#: ../../source/features.rst:35 ../../source/features.rst:117
msgid ""
"After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing."
@@ -245,17 +245,29 @@ msgid ""
msgstr ""
#: ../../source/features.rst:102
-msgid "Host a Website"
+msgid "Other caveats to be aware of in Receive Mode"
msgstr ""
#: ../../source/features.rst:104
msgid ""
+"There are reports that OnionBrowser on iOS devices are unable to upload "
+"files to an OnionShare in Receive Mode, when operating in 'Silver' security "
+"mode. Try Bronze or Gold to see if you are able to upload a message or a "
+"file."
+msgstr ""
+
+#: ../../source/features.rst:107
+msgid "Host a Website"
+msgstr ""
+
+#: ../../source/features.rst:109
+msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag the "
"files and folders that make up the static content there, and click \"Start "
"sharing\" when you are ready."
msgstr ""
-#: ../../source/features.rst:108
+#: ../../source/features.rst:113
msgid ""
"If you add an ``index.html`` file, it will render when someone loads your "
"website. You should also include any other HTML files, CSS files, JavaScript "
@@ -264,17 +276,17 @@ msgid ""
"or use databases. So you can't for example use WordPress.)"
msgstr ""
-#: ../../source/features.rst:110
+#: ../../source/features.rst:115
msgid ""
"If you don't have an ``index.html`` file, it will show a directory listing "
"instead, and people loading it can look through the files and download them."
msgstr ""
-#: ../../source/features.rst:117
+#: ../../source/features.rst:122
msgid "Content Security Policy"
msgstr ""
-#: ../../source/features.rst:119
+#: ../../source/features.rst:124
msgid ""
"By default OnionShare helps secure your website by setting a strict `Content "
"Security Policy `_ "
@@ -282,28 +294,28 @@ msgid ""
"web page."
msgstr ""
-#: ../../source/features.rst:121
+#: ../../source/features.rst:126
msgid ""
"If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, you have two options:"
msgstr ""
-#: ../../source/features.rst:123
+#: ../../source/features.rst:128
msgid ""
"You can disable sending a Content Security Policy header by checking the "
"\"Don't send Content Security Policy header (allows your website to use "
"third-party resources)\" box before starting the service."
msgstr ""
-#: ../../source/features.rst:124
+#: ../../source/features.rst:129
msgid "You can send a custom Content Security Policy header."
msgstr ""
-#: ../../source/features.rst:127
+#: ../../source/features.rst:132
msgid "Tips for running a website service"
msgstr ""
-#: ../../source/features.rst:129
+#: ../../source/features.rst:134
msgid ""
"If you want to host a long-term website using OnionShare (meaning not just "
"to quickly show someone something), it's recommended you do it on a "
@@ -313,23 +325,23 @@ msgid ""
"close OnionShare and re-open it later."
msgstr ""
-#: ../../source/features.rst:132
+#: ../../source/features.rst:137
msgid ""
"If your website is intended for the public, you should run it as a public "
"service (see :ref:`turn_off_private_key`)."
msgstr ""
-#: ../../source/features.rst:135
+#: ../../source/features.rst:140
msgid "Chat Anonymously"
msgstr ""
-#: ../../source/features.rst:137
+#: ../../source/features.rst:142
msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't "
"log anything. Just open a chat tab and click \"Start chat server\"."
msgstr ""
-#: ../../source/features.rst:141
+#: ../../source/features.rst:146
msgid ""
"After you start the server, copy the OnionShare address and private key and "
"send them to the people you want in the anonymous chat room. If it's "
@@ -337,7 +349,7 @@ msgid ""
"send out the OnionShare address and private key."
msgstr ""
-#: ../../source/features.rst:146
+#: ../../source/features.rst:151
msgid ""
"People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to "
@@ -345,7 +357,7 @@ msgid ""
"or \"Safer\", instead of \"Safest\"."
msgstr ""
-#: ../../source/features.rst:149
+#: ../../source/features.rst:154
msgid ""
"When someone joins the chat room they get assigned a random name. They can "
"change their name by typing a new name in the box in the left panel and "
@@ -353,30 +365,30 @@ msgid ""
"displayed at all, even if others were already chatting in the room."
msgstr ""
-#: ../../source/features.rst:155
+#: ../../source/features.rst:160
msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change their "
"name to anything, and there is no way to confirm anyone's identity."
msgstr ""
-#: ../../source/features.rst:158
+#: ../../source/features.rst:163
msgid ""
"However, if you create an OnionShare chat room and securely send the address "
"only to a small group of trusted friends using encrypted messages, you can "
"be reasonably confident the people joining the chat room are your friends."
msgstr ""
-#: ../../source/features.rst:161
+#: ../../source/features.rst:166
msgid "How is this useful?"
msgstr ""
-#: ../../source/features.rst:163
+#: ../../source/features.rst:168
msgid ""
"If you need to already be using an encrypted messaging app, what's the point "
"of an OnionShare chat room to begin with? It leaves less traces."
msgstr ""
-#: ../../source/features.rst:165
+#: ../../source/features.rst:170
msgid ""
"If you for example send a message to a Signal group, a copy of your message "
"ends up on each device (the smartphones, and computers if they set up Signal "
@@ -387,7 +399,7 @@ msgid ""
"any messages anywhere, so the problem is reduced to a minimum."
msgstr ""
-#: ../../source/features.rst:168
+#: ../../source/features.rst:173
msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any "
@@ -396,11 +408,11 @@ msgid ""
"journalist to join the chat room, all without compromosing their anonymity."
msgstr ""
-#: ../../source/features.rst:172
+#: ../../source/features.rst:177
msgid "How does the encryption work?"
msgstr ""
-#: ../../source/features.rst:174
+#: ../../source/features.rst:179
msgid ""
"Because OnionShare relies on Tor onion services, connections between the Tor "
"Browser and OnionShare are all end-to-end encrypted (E2EE). When someone "
@@ -409,7 +421,7 @@ msgid ""
"of the chat room using WebSockets, through their E2EE onion connections."
msgstr ""
-#: ../../source/features.rst:176
+#: ../../source/features.rst:181
msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on "
"the Tor onion service's encryption instead."
diff --git a/docs/source/locale/ay/LC_MESSAGES/help.po b/docs/source/locale/ay/LC_MESSAGES/help.po
index 80a0b904..efeb041a 100644
--- a/docs/source/locale/ay/LC_MESSAGES/help.po
+++ b/docs/source/locale/ay/LC_MESSAGES/help.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
diff --git a/docs/source/locale/ay/LC_MESSAGES/index.po b/docs/source/locale/ay/LC_MESSAGES/index.po
index 0432ea21..f0f2d341 100644
--- a/docs/source/locale/ay/LC_MESSAGES/index.po
+++ b/docs/source/locale/ay/LC_MESSAGES/index.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
diff --git a/docs/source/locale/ay/LC_MESSAGES/install.po b/docs/source/locale/ay/LC_MESSAGES/install.po
index d7d4c47a..21982d13 100644
--- a/docs/source/locale/ay/LC_MESSAGES/install.po
+++ b/docs/source/locale/ay/LC_MESSAGES/install.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -38,7 +38,7 @@ msgstr ""
msgid "You can download OnionShare for Mobile from the follow links"
msgstr ""
-#: ../../source/install.rst:18
+#: ../../source/install.rst:16
msgid "Android"
msgstr ""
@@ -52,7 +52,7 @@ msgstr ""
msgid "F-Droid: https://github.com/onionshare/onionshare-android-nightly"
msgstr ""
-#: ../../source/install.rst:24
+#: ../../source/install.rst:20
msgid "iOS"
msgstr ""
@@ -303,11 +303,11 @@ msgstr ""
#: ../../source/install.rst:117
msgid ""
"Packages are signed by the core developer who is responsible for the "
-"particular release. Following are the informations of the core developers of "
-"OnionShare:"
+"particular release. Here is the GPG key information for each of the core "
+"developers of OnionShare:"
msgstr ""
-#: ../../source/install.rst:122
+#: ../../source/install.rst:120
msgid "Micah Lee:"
msgstr ""
@@ -323,7 +323,7 @@ msgid ""
"fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
msgstr ""
-#: ../../source/install.rst:126
+#: ../../source/install.rst:124
msgid "Saptak Sengupta:"
msgstr ""
@@ -340,17 +340,33 @@ msgid ""
msgstr ""
#: ../../source/install.rst:128
+msgid "Miguel Jacq:"
+msgstr ""
+
+#: ../../source/install.rst:129
+msgid ""
+"PGP public key fingerprint ``00AE817C24A10C2540461A9C1D7CDE0234DB458D``."
+msgstr ""
+
+#: ../../source/install.rst:130
+msgid ""
+"You can download Miguel's key `from the keys.openpgp.org keyserver `_."
+msgstr ""
+
+#: ../../source/install.rst:132
msgid ""
"You must have GnuPG installed to verify signatures. For macOS you probably "
"want `GPGTools `_, and for Windows you probably want "
"`Gpg4win `_."
msgstr ""
-#: ../../source/install.rst:131
+#: ../../source/install.rst:135
msgid "Signatures"
msgstr ""
-#: ../../source/install.rst:133
+#: ../../source/install.rst:137
msgid ""
"You can find the signatures (as ``.asc`` files), as well as Windows, macOS, "
"Flatpak, Snap, and source packages, at https://onionshare.org/dist/ in the "
@@ -358,52 +374,52 @@ msgid ""
"`GitHub Releases page `_."
msgstr ""
-#: ../../source/install.rst:137
+#: ../../source/install.rst:141
msgid "Verifying"
msgstr ""
-#: ../../source/install.rst:139
+#: ../../source/install.rst:143
msgid ""
"Once you have imported the core developers public keys into your GnuPG "
"keychain, downloaded the binary and ``.asc`` signature, you can verify the "
"binary in a terminal like this:"
msgstr ""
-#: ../../source/install.rst:141
+#: ../../source/install.rst:145
msgid "For Windows::"
msgstr ""
-#: ../../source/install.rst:145
+#: ../../source/install.rst:149
msgid "For macOS::"
msgstr ""
-#: ../../source/install.rst:149
+#: ../../source/install.rst:153
msgid "For Linux::"
msgstr ""
-#: ../../source/install.rst:155
+#: ../../source/install.rst:159
msgid "and for the source file::"
msgstr ""
-#: ../../source/install.rst:159
+#: ../../source/install.rst:163
msgid "The expected output looks like this::"
msgstr ""
-#: ../../source/install.rst:169
+#: ../../source/install.rst:173
msgid ""
"If you don't see ``Good signature from``, there might be a problem with the "
"integrity of the file (malicious or otherwise), and you should not install "
"the package."
msgstr ""
-#: ../../source/install.rst:171
+#: ../../source/install.rst:175
msgid ""
"The ``WARNING:`` shown above, is not a problem with the package, it only "
"means you haven't defined a level of \"trust\" of Micah's (the core "
"developer) PGP key."
msgstr ""
-#: ../../source/install.rst:173
+#: ../../source/install.rst:177
msgid ""
"If you want to learn more about verifying PGP signatures, the guides for "
"`Qubes OS `_ and "
diff --git a/docs/source/locale/ay/LC_MESSAGES/security.po b/docs/source/locale/ay/LC_MESSAGES/security.po
index ba764c4b..bc300107 100644
--- a/docs/source/locale/ay/LC_MESSAGES/security.po
+++ b/docs/source/locale/ay/LC_MESSAGES/security.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
diff --git a/docs/source/locale/ay/LC_MESSAGES/tor.po b/docs/source/locale/ay/LC_MESSAGES/tor.po
index f47911ce..26948ae9 100644
--- a/docs/source/locale/ay/LC_MESSAGES/tor.po
+++ b/docs/source/locale/ay/LC_MESSAGES/tor.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
diff --git a/docs/source/locale/be/LC_MESSAGES/advanced.po b/docs/source/locale/be/LC_MESSAGES/advanced.po
index c3ec631c..39a0b597 100644
--- a/docs/source/locale/be/LC_MESSAGES/advanced.po
+++ b/docs/source/locale/be/LC_MESSAGES/advanced.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -63,8 +63,8 @@ msgstr ""
#: ../../source/advanced.rst:28
msgid ""
"The Tor Browser will ask you to enter your private key when you load an "
-"OnionShare service. If you want allow the public to use your service, it's "
-"better to disable the private key altogether."
+"OnionShare service. If you want to allow the public to use your service, "
+"it's better to disable the private key altogether."
msgstr ""
#: ../../source/advanced.rst:31
@@ -107,9 +107,9 @@ msgstr ""
#: ../../source/advanced.rst:51
msgid ""
-"Services scheduled to start in the future display a countdown timer when "
-"when the \"Start sharing\" button is clicked. Services scheduled to stop in "
-"the future display a countdown timer when started."
+"Services scheduled to start in the future display a countdown timer when the "
+"\"Start sharing\" button is clicked. Services scheduled to stop in the "
+"future display a countdown timer when started."
msgstr ""
#: ../../source/advanced.rst:54
@@ -137,53 +137,747 @@ msgid ""
"interface."
msgstr ""
-#: ../../source/advanced.rst:72
-msgid ""
-"You can install just the command-line version of OnionShare using ``pip3``::"
+#: ../../source/advanced.rst:73
+msgid "Installing the CLI version"
msgstr ""
-#: ../../source/advanced.rst:76
+#: ../../source/advanced.rst:75
+msgid ""
+"If you have installed the Snap, macOS or Windows package, you already have "
+"the CLI version installed."
+msgstr ""
+
+#: ../../source/advanced.rst:77
+msgid ""
+"Alternatively, you can install just the command-line version of OnionShare "
+"using ``pip3``::"
+msgstr ""
+
+#: ../../source/advanced.rst:81
msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``"
msgstr ""
-#: ../../source/advanced.rst:78
+#: ../../source/advanced.rst:83
msgid "Then run it like this::"
msgstr ""
-#: ../../source/advanced.rst:82
+#: ../../source/advanced.rst:87
msgid ""
"Info about installing it on different operating systems can be found in the "
"`CLI README file `_ in the Git repository."
msgstr ""
-#: ../../source/advanced.rst:84
-msgid ""
-"If you installed OnionShare using the Snap package, you can also just run "
-"``onionshare.cli`` to access the command-line interface version."
+#: ../../source/advanced.rst:90
+msgid "Running the CLI from Snap"
msgstr ""
-#: ../../source/advanced.rst:87
+#: ../../source/advanced.rst:92
+msgid ""
+"If you installed OnionShare using the Snap package, you can run ``onionshare."
+"cli`` to access the command-line interface version."
+msgstr ""
+
+#: ../../source/advanced.rst:95
+msgid "Running the CLI from macOS"
+msgstr ""
+
+#: ../../source/advanced.rst:97
+msgid ""
+"From Terminal, you can run ``/Applications/OnionShare.app/Contents/MacOS/"
+"onionshare-cli --help``"
+msgstr ""
+
+#: ../../source/advanced.rst:100
+msgid "Running the CLI from Windows"
+msgstr ""
+
+#: ../../source/advanced.rst:102
+msgid ""
+"In the Windows installation, the executable ``onionshare-cli.exe`` is "
+"available."
+msgstr ""
+
+#: ../../source/advanced.rst:105
msgid "Usage"
msgstr ""
-#: ../../source/advanced.rst:89
+#: ../../source/advanced.rst:107
msgid ""
"Browse the command-line documentation by running ``onionshare --help``::"
msgstr ""
-#: ../../source/advanced.rst:151
+#: ../../source/advanced.rst:170
+msgid "Running the CLI as a systemd unit file"
+msgstr ""
+
+#: ../../source/advanced.rst:172
+msgid ""
+"It is possible to automatically start OnionShare from the CLI using a "
+"systemd unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:174
+msgid ""
+"You may find this particularly useful if you are operating in 'persistent' "
+"mode, and want to start the same onion service every time your machine "
+"starts."
+msgstr ""
+
+#: ../../source/advanced.rst:176
+msgid "To do this, you need to prepare some OnionShare json config first."
+msgstr ""
+
+#: ../../source/advanced.rst:178
+msgid ""
+"Here is the main OnionShare config. In this example, it's stored in ``/home/"
+"user/.config/onionshare/onionshare.json``. You may need to adjust some of "
+"the settings, but if you already have OnionShare installed, it probably "
+"looks much like this already::"
+msgstr ""
+
+#: ../../source/advanced.rst:207
+msgid ""
+"Notice the 'persistent_tabs' section. We will now create a file at ``/home/"
+"user/.config/onionshare/persistent/my-persistent-onion.json``, that looks "
+"like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:247
+msgid ""
+"**Don't actually use this private key, service_id or client_auth keys! They "
+"are shown only as an example. Never share the private_key with anyone.**"
+msgstr ""
+
+#: ../../source/advanced.rst:249
+msgid ""
+"The easiest way to generate the onion address and private key is to first "
+"create a 'pinned' OnionShare tab in the desktop app and started the share "
+"for the first time. This will then have saved the persistent settings to "
+"your ``.config/onionshare/persistent/`` folder with a random name. You can "
+"unpin that tab once you've generated it the first time. Or, you can leave it "
+"where it is, and use that persistent file in your systemd unit file below."
+msgstr ""
+
+#: ../../source/advanced.rst:251
+msgid ""
+"Now you can create a systemd unit file in ``/etc/systemd/system/onionshare-"
+"cli.service``. Be sure to adjust the User and Group to your own user/group, "
+"as well as changes to any paths to the onionshare-cli binary or the paths to "
+"your JSON configs and shares."
+msgstr ""
+
+#: ../../source/advanced.rst:253
+msgid "The systemd unit file should look like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:268
+msgid ""
+"Note that although ``/home/user/my-shared-file.txt`` was defined in the "
+"``filenames`` section of the ``my-persistent-onion.json`` file, it's still "
+"necessary to specify it as the argument to the onionshare-cli command."
+msgstr ""
+
+#: ../../source/advanced.rst:270
+msgid ""
+"Be sure to run ``sudo systemctl daemon-reload`` after creating the unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:272
+msgid ""
+"Now you can run ``sudo systemctl start onionshare-cli.service``. If you have "
+"``journalctl`` installed, you can run ``sudo journalctl -f -t onionshare-"
+"cli``, and you should see some output of your service starting::"
+msgstr ""
+
+#: ../../source/advanced.rst:282
+msgid ""
+"If you don't want your users to use a Private Key, set ``public`` to be "
+"``true`` in the ``general`` settings of the my-persistent-onion.json file."
+msgstr ""
+
+#: ../../source/advanced.rst:286
msgid "Keyboard Shortcuts"
msgstr ""
-#: ../../source/advanced.rst:153
+#: ../../source/advanced.rst:288
msgid ""
"The OnionShare desktop application contains some keyboard shortcuts, for "
"convenience and accessibility::"
msgstr ""
-#: ../../source/advanced.rst:158
+#: ../../source/advanced.rst:293
msgid "And from the main mode chooser screen::"
msgstr ""
+
+#: ../../source/advanced.rst:303
+msgid "Migrating your OnionShare data to another computer"
+msgstr ""
+
+#: ../../source/advanced.rst:305
+msgid ""
+"You may want to migrate your OnionShare data when switching to another "
+"computer. This is especially true if you had a 'persistent' onion address "
+"and you want to preserve it."
+msgstr ""
+
+#: ../../source/advanced.rst:307
+msgid ""
+"OnionShare stores all such data in a specific folder. Copy the relevant "
+"folder for your operating system below, to your new computer:"
+msgstr ""
+
+#: ../../source/advanced.rst:309
+msgid "Linux: ``~/.config/onionshare``"
+msgstr ""
+
+#: ../../source/advanced.rst:310
+msgid "macOS: ``~/Library/Application Support/OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:311
+msgid "Windows: ``%APPDATA%\\OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:315
+msgid "Configuration file parameters"
+msgstr ""
+
+#: ../../source/advanced.rst:317
+msgid ""
+"OnionShare stores its settings in a JSON file. Both the CLI and the Desktop "
+"versions use this configuration file. The CLI also lets you specify a path "
+"to a custom configuration file with ``--config``."
+msgstr ""
+
+#: ../../source/advanced.rst:319
+msgid ""
+"Below are the configuration file parameters and what they mean. If your "
+"configuration file has other parameters not listed here, they may be "
+"obsolete from older OnionShare versions."
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Parameter"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Type"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Explanation"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid "version"
+msgstr ""
+
+#: ../../source/advanced.rst:324 ../../source/advanced.rst:325
+#: ../../source/advanced.rst:326 ../../source/advanced.rst:328
+#: ../../source/advanced.rst:330 ../../source/advanced.rst:331
+#: ../../source/advanced.rst:332 ../../source/advanced.rst:337
+#: ../../source/advanced.rst:338 ../../source/advanced.rst:339
+#: ../../source/advanced.rst:340 ../../source/advanced.rst:343
+#: ../../source/advanced.rst:404 ../../source/advanced.rst:405
+#: ../../source/advanced.rst:406 ../../source/advanced.rst:415
+#: ../../source/advanced.rst:426 ../../source/advanced.rst:430
+#: ../../source/advanced.rst:452 ../../source/advanced.rst:453
+#: ../../source/advanced.rst:465
+msgid "``string``"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid ""
+"The version of OnionShare. You should not ever need to change this value."
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid "connection_type"
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid ""
+"The way in which OnionShare connects to Tor. Valid options are 'bundled', "
+"'automatic' (use Tor Browser's Tor connection), 'control_port' or "
+"'socket_file'. Default: 'bundled'"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid "control_port_address"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid ""
+"The IP address of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid "control_port_port"
+msgstr ""
+
+#: ../../source/advanced.rst:327 ../../source/advanced.rst:329
+#: ../../source/advanced.rst:335
+msgid "``integer``"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid ""
+"The port number of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '9051'"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid "socks_address"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid ""
+"The IP address of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid "socks_port"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid ""
+"The port number of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: ''9050'"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid "socket_file_path"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid ""
+"The path to Tor's socket file, if ``connection_type`` is set to "
+"'socket_file'. Default: '/var/run/tor/control'"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid "auth_type"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid ""
+"If access to Tor's control port requires a password, this can be set to "
+"'password', otherwise 'no_auth'. Default: 'no_auth'"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid "auth_password"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid ""
+"If access to Tor's control port requires a password, and ``auth_type`` is "
+"set to 'password', specify the password here. Default: ''"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid "auto_connect"
+msgstr ""
+
+#: ../../source/advanced.rst:333 ../../source/advanced.rst:334
+#: ../../source/advanced.rst:336 ../../source/advanced.rst:344
+#: ../../source/advanced.rst:416 ../../source/advanced.rst:417
+#: ../../source/advanced.rst:427 ../../source/advanced.rst:428
+#: ../../source/advanced.rst:429 ../../source/advanced.rst:441
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:454
+#: ../../source/advanced.rst:455 ../../source/advanced.rst:464
+#: ../../source/advanced.rst:466
+msgid "``boolean``"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid ""
+"Whether OnionShare should automatically connect to Tor when it starts. "
+"Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid "use_autoupdate"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid ""
+"Whether OnionShare should automatically check for updates (over Tor). This "
+"setting is only valid for MacOS or Windows installations. Default: True."
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "autoupdate_timestamp"
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "The last time OnionShare checked for updates. Default: None"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "bridges_enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "Whether to connect to Tor using bridges. Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid "bridges_type"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid ""
+"When ``bridges_enabled`` is True, where to load bridges from. Options are "
+"\"built-in\" (bridges shipped with OnionShare and which may get updated from "
+"Tor), \"moat\" (request bridges from Tor's Moat API), or \"custom\" (user-"
+"supplied bridges). Default: \"built-in\""
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid "bridges_builtin_pt"
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", this specifies which type of "
+"bridge protocol to use. Options are \"obfs4\", \"meek-azure\" or "
+"\"snowflake\". Default: \"obfs4\""
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid "bridges_moat"
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid ""
+"When ``bridges_type`` is set to \"moat\", the bridges returned from Tor's "
+"Moat API are stored here. Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid "bridges_custom"
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid ""
+"When ``bridges_type`` is set to \"custom\", the bridges specified by the "
+"user are stored here. Separate each bridge line in the string with '\\n'. "
+"Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "bridges_builtin"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "``dict``"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", OnionShare obtains the latest "
+"built-in bridges recommended by Tor and stores them here. Default: {}"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid "persistent_tabs"
+msgstr ""
+
+#: ../../source/advanced.rst:342 ../../source/advanced.rst:442
+#: ../../source/advanced.rst:467
+msgid "``list``"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid ""
+"If the user has defined any tabs as 'saved' (meaning that they are "
+"persistent each time OnionShare starts, and their onion address doesn't "
+"change), these are given a random identifier which gets listed here. The "
+"persistent onion is stored as a JSON file with the same name as this "
+"identifier, in a subfolder of the OnionShare configuration folder called "
+"'persistent'. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid "locale"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid ""
+"The locale used in OnionShare. Default: None (which is the same as 'en'). "
+"For valid locale codes, see 'available_locales' in https://github.com/"
+"onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid "theme"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid ""
+"The theme for the OnionShare desktop app. Valid options are 0 (automatically "
+"detect the user's computer's light or dark theme), 1 (light) or 2 (dark)."
+msgstr ""
+
+#: ../../source/advanced.rst:349
+msgid "Configuration file parameters for persistent onions"
+msgstr ""
+
+#: ../../source/advanced.rst:351
+msgid ""
+"As described above, each 'persistent' onion has parameters of its own which "
+"are stored in its own JSON file. The path to this file can be specified for "
+"the CLI tool with ``--persistent``."
+msgstr ""
+
+#: ../../source/advanced.rst:353
+msgid "Here is an example persistent JSON configuration::"
+msgstr ""
+
+#: ../../source/advanced.rst:396
+msgid ""
+"Below are the configuration file parameters for a persistent onion and what "
+"they mean, for each section in the JSON"
+msgstr ""
+
+#: ../../source/advanced.rst:399
+msgid "onion"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "private_key"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "Base64-encoded private key of the onion service"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid "client_auth_priv_key"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid ""
+"The private key when using Client Authentication. Send this to the user."
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid "client_auth_pub_key"
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid ""
+"The public key when using Client Authentication. Used on OnionShare's side."
+msgstr ""
+
+#: ../../source/advanced.rst:410
+msgid "persistent"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid "mode"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid ""
+"The mode used by this persistent onion. Options are \"share\", \"receive\", "
+"\"website\" or \"chat\"."
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid "enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid ""
+"Whether persistence is enabled for this onion. When the persistent option is "
+"unchecked in the desktop, this entire JSON file is deleted. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid "autostart_on_launch"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid ""
+"Whether to automatically start this persistent onion when OnionShare starts "
+"and once Tor is connected. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:421
+msgid "general"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid "title"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid ""
+"An optional custom title for displaying on the onion service. Default: null "
+"(\"OnionShare\" will be shown instead)"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid "public"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid ""
+"Whether the onion service can be accessed with or without a Private Key "
+"(Client Authentication). If true, no Private Key is required."
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid "autostart_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid ""
+"Whether the onion service is configured to start at a specific time. The "
+"time can be set in the desktop app or specified in seconds with ``--auto-"
+"start-timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid "autostop_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid ""
+"Whether the onion service is configured to stop at a specific time. The time "
+"can be set in the desktop app or specified in seconds with ``--auto-stop-"
+"timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid "service_id"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid ""
+"The 32-character onion service URL, without the scheme and without the '."
+"onion' suffix."
+msgstr ""
+
+#: ../../source/advanced.rst:433
+msgid ""
+"The below are settings specific to the 'mode' specified in the "
+"``persistent`` section above."
+msgstr ""
+
+#: ../../source/advanced.rst:436
+msgid "share"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid "autostop_sharing"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid ""
+"Whether to automatically stop the share once files are downloaded the first "
+"time. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "A list of files to share. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid "log_filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid ""
+"Whether to log URL requests to stdout when using the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:447
+msgid "receive"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid "data_dir"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid ""
+"The path where received files or text messages will be stored. Default: the "
+"'OnionShare' folder of the user's home directory."
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid "webhook_url"
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid ""
+"A webhook URL that OnionShare will POST to when it receives files or text "
+"messages. Default: null"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "disable_text"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "Whether to disable receiving text messages. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "disable_files"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "Whether to disable receiving files. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:459
+msgid "website"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid "disable_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid ""
+"If set to ``true``, OnionShare won't set its default Content Security Policy "
+"header for the website. Default: ``false``"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "custom_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "A custom Content Security Policy header to send instead of the default."
+msgstr ""
+
+#: ../../source/advanced.rst:471
+msgid "chat"
+msgstr ""
+
+#: ../../source/advanced.rst:473
+msgid "There are currently no configurable settings for the Chat mode."
+msgstr ""
diff --git a/docs/source/locale/be/LC_MESSAGES/develop.po b/docs/source/locale/be/LC_MESSAGES/develop.po
index f501f069..0b8876a4 100644
--- a/docs/source/locale/be/LC_MESSAGES/develop.po
+++ b/docs/source/locale/be/LC_MESSAGES/develop.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
diff --git a/docs/source/locale/be/LC_MESSAGES/features.po b/docs/source/locale/be/LC_MESSAGES/features.po
index eced425c..c8eb848b 100644
--- a/docs/source/locale/be/LC_MESSAGES/features.po
+++ b/docs/source/locale/be/LC_MESSAGES/features.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -83,7 +83,7 @@ msgid ""
"share, and click \"Start sharing\"."
msgstr ""
-#: ../../source/features.rst:35 ../../source/features.rst:112
+#: ../../source/features.rst:35 ../../source/features.rst:117
msgid ""
"After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing."
@@ -245,17 +245,29 @@ msgid ""
msgstr ""
#: ../../source/features.rst:102
-msgid "Host a Website"
+msgid "Other caveats to be aware of in Receive Mode"
msgstr ""
#: ../../source/features.rst:104
msgid ""
+"There are reports that OnionBrowser on iOS devices are unable to upload "
+"files to an OnionShare in Receive Mode, when operating in 'Silver' security "
+"mode. Try Bronze or Gold to see if you are able to upload a message or a "
+"file."
+msgstr ""
+
+#: ../../source/features.rst:107
+msgid "Host a Website"
+msgstr ""
+
+#: ../../source/features.rst:109
+msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag the "
"files and folders that make up the static content there, and click \"Start "
"sharing\" when you are ready."
msgstr ""
-#: ../../source/features.rst:108
+#: ../../source/features.rst:113
msgid ""
"If you add an ``index.html`` file, it will render when someone loads your "
"website. You should also include any other HTML files, CSS files, JavaScript "
@@ -264,17 +276,17 @@ msgid ""
"or use databases. So you can't for example use WordPress.)"
msgstr ""
-#: ../../source/features.rst:110
+#: ../../source/features.rst:115
msgid ""
"If you don't have an ``index.html`` file, it will show a directory listing "
"instead, and people loading it can look through the files and download them."
msgstr ""
-#: ../../source/features.rst:117
+#: ../../source/features.rst:122
msgid "Content Security Policy"
msgstr ""
-#: ../../source/features.rst:119
+#: ../../source/features.rst:124
msgid ""
"By default OnionShare helps secure your website by setting a strict `Content "
"Security Policy `_ "
@@ -282,28 +294,28 @@ msgid ""
"web page."
msgstr ""
-#: ../../source/features.rst:121
+#: ../../source/features.rst:126
msgid ""
"If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, you have two options:"
msgstr ""
-#: ../../source/features.rst:123
+#: ../../source/features.rst:128
msgid ""
"You can disable sending a Content Security Policy header by checking the "
"\"Don't send Content Security Policy header (allows your website to use "
"third-party resources)\" box before starting the service."
msgstr ""
-#: ../../source/features.rst:124
+#: ../../source/features.rst:129
msgid "You can send a custom Content Security Policy header."
msgstr ""
-#: ../../source/features.rst:127
+#: ../../source/features.rst:132
msgid "Tips for running a website service"
msgstr ""
-#: ../../source/features.rst:129
+#: ../../source/features.rst:134
msgid ""
"If you want to host a long-term website using OnionShare (meaning not just "
"to quickly show someone something), it's recommended you do it on a "
@@ -313,23 +325,23 @@ msgid ""
"close OnionShare and re-open it later."
msgstr ""
-#: ../../source/features.rst:132
+#: ../../source/features.rst:137
msgid ""
"If your website is intended for the public, you should run it as a public "
"service (see :ref:`turn_off_private_key`)."
msgstr ""
-#: ../../source/features.rst:135
+#: ../../source/features.rst:140
msgid "Chat Anonymously"
msgstr ""
-#: ../../source/features.rst:137
+#: ../../source/features.rst:142
msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't "
"log anything. Just open a chat tab and click \"Start chat server\"."
msgstr ""
-#: ../../source/features.rst:141
+#: ../../source/features.rst:146
msgid ""
"After you start the server, copy the OnionShare address and private key and "
"send them to the people you want in the anonymous chat room. If it's "
@@ -337,7 +349,7 @@ msgid ""
"send out the OnionShare address and private key."
msgstr ""
-#: ../../source/features.rst:146
+#: ../../source/features.rst:151
msgid ""
"People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to "
@@ -345,7 +357,7 @@ msgid ""
"or \"Safer\", instead of \"Safest\"."
msgstr ""
-#: ../../source/features.rst:149
+#: ../../source/features.rst:154
msgid ""
"When someone joins the chat room they get assigned a random name. They can "
"change their name by typing a new name in the box in the left panel and "
@@ -353,30 +365,30 @@ msgid ""
"displayed at all, even if others were already chatting in the room."
msgstr ""
-#: ../../source/features.rst:155
+#: ../../source/features.rst:160
msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change their "
"name to anything, and there is no way to confirm anyone's identity."
msgstr ""
-#: ../../source/features.rst:158
+#: ../../source/features.rst:163
msgid ""
"However, if you create an OnionShare chat room and securely send the address "
"only to a small group of trusted friends using encrypted messages, you can "
"be reasonably confident the people joining the chat room are your friends."
msgstr ""
-#: ../../source/features.rst:161
+#: ../../source/features.rst:166
msgid "How is this useful?"
msgstr ""
-#: ../../source/features.rst:163
+#: ../../source/features.rst:168
msgid ""
"If you need to already be using an encrypted messaging app, what's the point "
"of an OnionShare chat room to begin with? It leaves less traces."
msgstr ""
-#: ../../source/features.rst:165
+#: ../../source/features.rst:170
msgid ""
"If you for example send a message to a Signal group, a copy of your message "
"ends up on each device (the smartphones, and computers if they set up Signal "
@@ -387,7 +399,7 @@ msgid ""
"any messages anywhere, so the problem is reduced to a minimum."
msgstr ""
-#: ../../source/features.rst:168
+#: ../../source/features.rst:173
msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any "
@@ -396,11 +408,11 @@ msgid ""
"journalist to join the chat room, all without compromosing their anonymity."
msgstr ""
-#: ../../source/features.rst:172
+#: ../../source/features.rst:177
msgid "How does the encryption work?"
msgstr ""
-#: ../../source/features.rst:174
+#: ../../source/features.rst:179
msgid ""
"Because OnionShare relies on Tor onion services, connections between the Tor "
"Browser and OnionShare are all end-to-end encrypted (E2EE). When someone "
@@ -409,7 +421,7 @@ msgid ""
"of the chat room using WebSockets, through their E2EE onion connections."
msgstr ""
-#: ../../source/features.rst:176
+#: ../../source/features.rst:181
msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on "
"the Tor onion service's encryption instead."
diff --git a/docs/source/locale/be/LC_MESSAGES/help.po b/docs/source/locale/be/LC_MESSAGES/help.po
index 04f5d36f..25073fb5 100644
--- a/docs/source/locale/be/LC_MESSAGES/help.po
+++ b/docs/source/locale/be/LC_MESSAGES/help.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-06-20 18:52+0000\n"
"Last-Translator: Maksim \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/be/LC_MESSAGES/index.po b/docs/source/locale/be/LC_MESSAGES/index.po
index 19e2de80..9b626e79 100644
--- a/docs/source/locale/be/LC_MESSAGES/index.po
+++ b/docs/source/locale/be/LC_MESSAGES/index.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-11-20 16:03+0000\n"
"Last-Translator: kopatych \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/be/LC_MESSAGES/install.po b/docs/source/locale/be/LC_MESSAGES/install.po
index 39b3253d..528eda4c 100644
--- a/docs/source/locale/be/LC_MESSAGES/install.po
+++ b/docs/source/locale/be/LC_MESSAGES/install.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-11-20 16:03+0000\n"
"Last-Translator: kopatych \n"
"Language-Team: none\n"
@@ -43,7 +43,7 @@ msgstr ""
msgid "You can download OnionShare for Mobile from the follow links"
msgstr ""
-#: ../../source/install.rst:18
+#: ../../source/install.rst:16
msgid "Android"
msgstr ""
@@ -57,7 +57,7 @@ msgstr ""
msgid "F-Droid: https://github.com/onionshare/onionshare-android-nightly"
msgstr ""
-#: ../../source/install.rst:24
+#: ../../source/install.rst:20
msgid "iOS"
msgstr ""
@@ -363,11 +363,11 @@ msgstr "Ключ подпісу"
#: ../../source/install.rst:117
msgid ""
"Packages are signed by the core developer who is responsible for the "
-"particular release. Following are the informations of the core developers of "
-"OnionShare:"
+"particular release. Here is the GPG key information for each of the core "
+"developers of OnionShare:"
msgstr ""
-#: ../../source/install.rst:122
+#: ../../source/install.rst:120
msgid "Micah Lee:"
msgstr ""
@@ -389,7 +389,7 @@ msgstr ""
"openpgp.org/vks/v1/by-"
"fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
-#: ../../source/install.rst:126
+#: ../../source/install.rst:124
msgid "Saptak Sengupta:"
msgstr ""
@@ -406,6 +406,28 @@ msgid ""
msgstr ""
#: ../../source/install.rst:128
+msgid "Miguel Jacq:"
+msgstr ""
+
+#: ../../source/install.rst:129
+msgid ""
+"PGP public key fingerprint ``00AE817C24A10C2540461A9C1D7CDE0234DB458D``."
+msgstr ""
+
+#: ../../source/install.rst:130
+#, fuzzy
+msgid ""
+"You can download Miguel's key `from the keys.openpgp.org keyserver `_."
+msgstr ""
+"Пакеты падпісваюцца асноўным распрацоўшчыкам Micah Lee яго адкрытым ключом "
+"PGP з лічбавым подпісам ``927F419D7EC82C2F149C1BD1403C2657CD994F73``. Ключ "
+"Micah можна загрузіць `з сервера ключоў keys.openpgp.org `_."
+
+#: ../../source/install.rst:132
msgid ""
"You must have GnuPG installed to verify signatures. For macOS you probably "
"want `GPGTools `_, and for Windows you probably want "
@@ -415,11 +437,11 @@ msgstr ""
"спатрэбіцца `GPGTools `_, а для Windows вам, "
"верагодна, спатрэбіцца `Gpg4win `_."
-#: ../../source/install.rst:131
+#: ../../source/install.rst:135
msgid "Signatures"
msgstr "Подпісы"
-#: ../../source/install.rst:133
+#: ../../source/install.rst:137
#, fuzzy
msgid ""
"You can find the signatures (as ``.asc`` files), as well as Windows, macOS, "
@@ -433,11 +455,11 @@ msgstr ""
"`старонцы выпускаў GitHub `_."
-#: ../../source/install.rst:137
+#: ../../source/install.rst:141
msgid "Verifying"
msgstr "Праверка"
-#: ../../source/install.rst:139
+#: ../../source/install.rst:143
#, fuzzy
msgid ""
"Once you have imported the core developers public keys into your GnuPG "
@@ -448,27 +470,27 @@ msgstr ""
"GnuPG, двайковы файл загружаны і подпіс ``.asc`` загружаны, вы можаце "
"праверыць двайковы файл macOS у тэрмінале наступным чынам::"
-#: ../../source/install.rst:141
+#: ../../source/install.rst:145
msgid "For Windows::"
msgstr ""
-#: ../../source/install.rst:145
+#: ../../source/install.rst:149
msgid "For macOS::"
msgstr ""
-#: ../../source/install.rst:149
+#: ../../source/install.rst:153
msgid "For Linux::"
msgstr ""
-#: ../../source/install.rst:155
+#: ../../source/install.rst:159
msgid "and for the source file::"
msgstr ""
-#: ../../source/install.rst:159
+#: ../../source/install.rst:163
msgid "The expected output looks like this::"
msgstr "Чаканы вынік выглядае наступным чынам::"
-#: ../../source/install.rst:169
+#: ../../source/install.rst:173
#, fuzzy
msgid ""
"If you don't see ``Good signature from``, there might be a problem with the "
@@ -481,7 +503,7 @@ msgstr ""
"пакетам, яно толькі азначае, што вы не вызначылі ўзровень \"даверу\" да PGP-"
"ключу Micah (асноўнага распрацоўніка).)"
-#: ../../source/install.rst:171
+#: ../../source/install.rst:175
#, fuzzy
msgid ""
"The ``WARNING:`` shown above, is not a problem with the package, it only "
@@ -494,7 +516,7 @@ msgstr ""
"пакетам, яно толькі азначае, што вы не вызначылі ўзровень \"даверу\" да PGP-"
"ключу Micah (асноўнага распрацоўніка).)"
-#: ../../source/install.rst:173
+#: ../../source/install.rst:177
msgid ""
"If you want to learn more about verifying PGP signatures, the guides for "
"`Qubes OS `_ and "
diff --git a/docs/source/locale/be/LC_MESSAGES/security.po b/docs/source/locale/be/LC_MESSAGES/security.po
index 91bc8673..5d49db6a 100644
--- a/docs/source/locale/be/LC_MESSAGES/security.po
+++ b/docs/source/locale/be/LC_MESSAGES/security.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-06-20 18:52+0000\n"
"Last-Translator: Maksim \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/be/LC_MESSAGES/sphinx.po b/docs/source/locale/be/LC_MESSAGES/sphinx.po
index 2a734204..536418ef 100644
--- a/docs/source/locale/be/LC_MESSAGES/sphinx.po
+++ b/docs/source/locale/be/LC_MESSAGES/sphinx.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-05-24 07:49+0000\n"
"Last-Translator: Maksim \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/be/LC_MESSAGES/tor.po b/docs/source/locale/be/LC_MESSAGES/tor.po
index 3dca79fa..35dbbd28 100644
--- a/docs/source/locale/be/LC_MESSAGES/tor.po
+++ b/docs/source/locale/be/LC_MESSAGES/tor.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-11-29 17:05+0000\n"
"Last-Translator: kopatych \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/bg/LC_MESSAGES/advanced.po b/docs/source/locale/bg/LC_MESSAGES/advanced.po
index ce6ff58e..5f673fc9 100644
--- a/docs/source/locale/bg/LC_MESSAGES/advanced.po
+++ b/docs/source/locale/bg/LC_MESSAGES/advanced.po
@@ -7,22 +7,25 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Automatically generated\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
+"PO-Revision-Date: 2025-02-14 00:02+0000\n"
+"Last-Translator: 109247019824 <109247019824@users.noreply.hosted.weblate."
+"org>\n"
"Language-Team: none\n"
"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 5.10-rc\n"
#: ../../source/advanced.rst:2
msgid "Advanced Usage"
-msgstr ""
+msgstr "Разширени възможности"
#: ../../source/advanced.rst:7
msgid "Save Tabs"
-msgstr ""
+msgstr "Запазване на раздели"
#: ../../source/advanced.rst:9
msgid ""
@@ -30,12 +33,18 @@ msgid ""
"Persistently hosted websites are available on the same address even if the "
"computer they are shared from is rebooted."
msgstr ""
+"Затварянето на разделите на OnionShare, в които има настроени услуги, ги "
+"унищожава, като предотвратява повторното им използване. Постоянните страници "
+"са достъпни на същия адрес, дори ако компютърът, от който са споделени, е "
+"рестартиран."
#: ../../source/advanced.rst:12
msgid ""
"Make any tab persistent by checking the \"Always open this tab when "
"OnionShare is started\" box before starting your server."
msgstr ""
+"За да направите даден раздел постоянен отметнете „Отваряне на този раздел "
+"при стартиране на OnionShare“ преди да включите услугата."
#: ../../source/advanced.rst:16
msgid ""
@@ -43,29 +52,39 @@ msgid ""
"opened. Each service then can be started manually, and will be available on "
"the same OnionShare address and be protected by the same private key."
msgstr ""
+"Когато отворите OnionShare, запазените раздели ще бъдат отворени. След това "
+"всяка услуга ще може да бъде ръчно включена, като ще бъде достъпна на същия "
+"адрес на OnionShare и ще бъде защитена със същия частен ключ."
#: ../../source/advanced.rst:19
msgid ""
"If you save a tab, a copy of its onion service secret key is stored on your "
"computer."
msgstr ""
+"Когато запазите даден раздел, на компютъра се запазва и копие на тайния ключ "
+"на услугата на onion."
#: ../../source/advanced.rst:24
msgid "Turn Off Private Key"
-msgstr ""
+msgstr "Изключване на тайния ключ"
#: ../../source/advanced.rst:26
msgid ""
"By default, all OnionShare services are protected with a private key, which "
"Tor calls \"client authentication\"."
msgstr ""
+"По подразбиране услугите на OnionShare са защитени с таен ключ, който Tor "
+"нарича „удостоверяване на клиента“."
#: ../../source/advanced.rst:28
msgid ""
"The Tor Browser will ask you to enter your private key when you load an "
-"OnionShare service. If you want allow the public to use your service, it's "
-"better to disable the private key altogether."
+"OnionShare service. If you want to allow the public to use your service, "
+"it's better to disable the private key altogether."
msgstr ""
+"Когато отворите услуга на OnionShare Tor Browser ще поиска да въведете "
+"тайния ключ. Ако искате да разрешите публично използване на услугата, по-"
+"добре е да изключите използването на таен ключ."
#: ../../source/advanced.rst:31
msgid ""
@@ -74,10 +93,14 @@ msgid ""
"Then the server will be public and a private key is not needed to load it in "
"the Tor Browser."
msgstr ""
+"За да изключите частния ключ за някой раздел, отметнете „Общодостъпна услуга "
+"на OnionShare (без частен ключ)“, преди да включите услугата. Тогава "
+"сървърът ще бъде публичен и за зареждането му в Tor Browser няма да е "
+"необходим частен ключ."
#: ../../source/advanced.rst:37
msgid "Custom Titles"
-msgstr ""
+msgstr "Задаване на заглавия"
#: ../../source/advanced.rst:39
msgid ""
@@ -85,16 +108,21 @@ msgid ""
"title for each type of service. For example, the default title for chat "
"services is \"OnionShare Chat\"."
msgstr ""
+"Когато хората отварят услугите на OnionShare в Tor Browser, те виждат "
+"подразбираното заглавие за всеки вид услуга. Например заглавието по "
+"подразбиране за услугите за разговор е „Разговор“."
#: ../../source/advanced.rst:42
msgid ""
"If you edit the \"Custom title\" setting before starting a server you can "
"change it."
msgstr ""
+"Ако промените настройката „Заглавие на раздела“ преди да включите услугата "
+"можете да го промемите."
#: ../../source/advanced.rst:45
msgid "Scheduled Times"
-msgstr ""
+msgstr "График на включване и изключване"
#: ../../source/advanced.rst:47
msgid ""
@@ -104,13 +132,21 @@ msgid ""
"time\", \"Stop onion service at scheduled time\", or both, and set the "
"respective desired dates and times."
msgstr ""
+"OnionShare поддържа точно планиране на времето, в което дадена услуга да "
+"бъде включена или изключена. Преди да включите сървъра, натиснете „Разширени "
+"настройки“ в същия раздел и след това отметнете „Включване на услугата в "
+"определен час“, „Изключване на услугата в определен час“ или и двете и "
+"задайте съответните дати и часове."
#: ../../source/advanced.rst:51
msgid ""
-"Services scheduled to start in the future display a countdown timer when "
-"when the \"Start sharing\" button is clicked. Services scheduled to stop in "
-"the future display a countdown timer when started."
+"Services scheduled to start in the future display a countdown timer when the "
+"\"Start sharing\" button is clicked. Services scheduled to stop in the "
+"future display a countdown timer when started."
msgstr ""
+"Услугите, планирани да бъдат включени в бъдеще, показват часовник с обратно "
+"броене при натискане на бутона „Споделяне“. Услугите, планирани да бъдат "
+"спрени в бъдеще, показват часовник с обратно броене при включване."
#: ../../source/advanced.rst:54
msgid ""
@@ -119,6 +155,11 @@ msgid ""
"in the future if you are not there to prevent it. If nothing happens to you, "
"you can cancel the service before it's scheduled to start."
msgstr ""
+"**Насрочването на автоматично включване на услуга на OnionShare може да бъде "
+"използвано като сигнал за нередност**. Това означава, че услугата ще стане "
+"публична в даден момент в бъдещето, ако вие не сте там, за да предотвратите "
+"това. Ако нищо не се случи с вас, можете да отмените включването на "
+"услугата, преди планираното ѝ включване."
#: ../../source/advanced.rst:60
msgid ""
@@ -126,64 +167,793 @@ msgid ""
"exposure**. If you want to share secret info or something that will be "
"outdated, you can do so for selected limited time."
msgstr ""
+"**Насрочването на автоматично спиране на услугата OnionShare ограничава "
+"излагането ѝ на риск**. Ако искате да споделите тайна информация или нещо, "
+"което ще бъде остаряло, можете да го направите за избрано ограничено време."
#: ../../source/advanced.rst:68
msgid "Command-line Interface"
-msgstr ""
+msgstr "Интетфейс за команден ред"
#: ../../source/advanced.rst:70
msgid ""
"In addition to its graphical interface, OnionShare has a command-line "
"interface."
msgstr ""
+"В допълнение към графичния интерфейс OnionShare има и интерфейс за команден "
+"ред."
-#: ../../source/advanced.rst:72
+#: ../../source/advanced.rst:73
+msgid "Installing the CLI version"
+msgstr "Инсталиране на версията за команден ред"
+
+#: ../../source/advanced.rst:75
msgid ""
-"You can install just the command-line version of OnionShare using ``pip3``::"
+"If you have installed the Snap, macOS or Windows package, you already have "
+"the CLI version installed."
msgstr ""
+"Ако сте инсталирали пакета от Snap, за macOS или Windows вече разполагате с "
+"версията за команден ред."
-#: ../../source/advanced.rst:76
+#: ../../source/advanced.rst:77
+msgid ""
+"Alternatively, you can install just the command-line version of OnionShare "
+"using ``pip3``::"
+msgstr ""
+"Можете да инсталирате само версията за команден ред на OnionShare, като "
+"използвате ``pip3``::"
+
+#: ../../source/advanced.rst:81
msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``"
msgstr ""
+"Обърнете внимание, че е необходимо да имате инсталиран и пакета ``tor``. В "
+"macOS го инсталирайте с: ``brew install tor``"
-#: ../../source/advanced.rst:78
+#: ../../source/advanced.rst:83
msgid "Then run it like this::"
-msgstr ""
+msgstr "След това го извикайте по следния начин::"
-#: ../../source/advanced.rst:82
+#: ../../source/advanced.rst:87
msgid ""
"Info about installing it on different operating systems can be found in the "
"`CLI README file `_ in the Git repository."
msgstr ""
+"Информация за инсталирането му на различни операционни системи можете да "
+"намерите във файла `CLI README `_ в хранилището на Git."
-#: ../../source/advanced.rst:84
+#: ../../source/advanced.rst:90
+msgid "Running the CLI from Snap"
+msgstr "Работа с команден ред от Snap"
+
+#: ../../source/advanced.rst:92
msgid ""
-"If you installed OnionShare using the Snap package, you can also just run "
-"``onionshare.cli`` to access the command-line interface version."
+"If you installed OnionShare using the Snap package, you can run ``onionshare."
+"cli`` to access the command-line interface version."
msgstr ""
+"Ако сте инсталирали OnionShare с помощта на пакет от Snap, можете да "
+"изпълните ``onionshare.cli``, за да получите достъп до интерфейса за "
+"команднден ред."
-#: ../../source/advanced.rst:87
+#: ../../source/advanced.rst:95
+msgid "Running the CLI from macOS"
+msgstr "Работа с команден ред в macOS"
+
+#: ../../source/advanced.rst:97
+msgid ""
+"From Terminal, you can run ``/Applications/OnionShare.app/Contents/MacOS/"
+"onionshare-cli --help``"
+msgstr ""
+"От терминала изпълнете ``/Applications/OnionShare.app/Contents/MacOS/"
+"onionshare-cli --help``"
+
+#: ../../source/advanced.rst:100
+msgid "Running the CLI from Windows"
+msgstr "Работа с команден ред в Windows"
+
+#: ../../source/advanced.rst:102
+msgid ""
+"In the Windows installation, the executable ``onionshare-cli.exe`` is "
+"available."
+msgstr ""
+"В инсталацията за Windows е достъпен изпълнимият файл ``onionshare-cli.exe``."
+
+#: ../../source/advanced.rst:105
msgid "Usage"
-msgstr ""
+msgstr "Използване"
-#: ../../source/advanced.rst:89
+#: ../../source/advanced.rst:107
msgid ""
"Browse the command-line documentation by running ``onionshare --help``::"
msgstr ""
+"Прегледайте документацията за команден ред, като изпълните ``onionshare --"
+"help``::"
-#: ../../source/advanced.rst:151
-msgid "Keyboard Shortcuts"
+#: ../../source/advanced.rst:170
+msgid "Running the CLI as a systemd unit file"
+msgstr "Работа с команден ред като файл на systemd"
+
+#: ../../source/advanced.rst:172
+msgid ""
+"It is possible to automatically start OnionShare from the CLI using a "
+"systemd unit file."
+msgstr ""
+"Възможно е OnionShare автоматично да бъде стартиран като файл на systemd."
+
+#: ../../source/advanced.rst:174
+msgid ""
+"You may find this particularly useful if you are operating in 'persistent' "
+"mode, and want to start the same onion service every time your machine "
+"starts."
+msgstr ""
+"Тази възможност е удачна ако целта ви е всеки път при стартиране на машината "
+"да зареждат едни и същи услуги на Onion."
+
+#: ../../source/advanced.rst:176
+msgid "To do this, you need to prepare some OnionShare json config first."
+msgstr ""
+"За целта първо трябва да подготвите някои настройки на OnionShare в JSON."
+
+#: ../../source/advanced.rst:178
+msgid ""
+"Here is the main OnionShare config. In this example, it's stored in ``/home/"
+"user/.config/onionshare/onionshare.json``. You may need to adjust some of "
+"the settings, but if you already have OnionShare installed, it probably "
+"looks much like this already::"
+msgstr ""
+"Това е файлът с основните настройки на OnionShare. В този пример се намира в "
+"``/home/user/.config/onionshare/onionshare.json``. Може да се наложи да "
+"промените някои от настройките, но ако вече имате инсталирано приложението "
+"OnionShare, вероятно файлът много прилича на този::"
+
+#: ../../source/advanced.rst:207
+msgid ""
+"Notice the 'persistent_tabs' section. We will now create a file at ``/home/"
+"user/.config/onionshare/persistent/my-persistent-onion.json``, that looks "
+"like this::"
+msgstr ""
+"Забележете секцията „persistent_tabs“. Ще създадем файла ``/home/user/."
+"config/onionshare/persistent/my-persistent-onion.json`` със следното "
+"съдържание::"
+
+#: ../../source/advanced.rst:247
+msgid ""
+"**Don't actually use this private key, service_id or client_auth keys! They "
+"are shown only as an example. Never share the private_key with anyone.**"
msgstr ""
-#: ../../source/advanced.rst:153
+#: ../../source/advanced.rst:249
+msgid ""
+"The easiest way to generate the onion address and private key is to first "
+"create a 'pinned' OnionShare tab in the desktop app and started the share "
+"for the first time. This will then have saved the persistent settings to "
+"your ``.config/onionshare/persistent/`` folder with a random name. You can "
+"unpin that tab once you've generated it the first time. Or, you can leave it "
+"where it is, and use that persistent file in your systemd unit file below."
+msgstr ""
+
+#: ../../source/advanced.rst:251
+msgid ""
+"Now you can create a systemd unit file in ``/etc/systemd/system/onionshare-"
+"cli.service``. Be sure to adjust the User and Group to your own user/group, "
+"as well as changes to any paths to the onionshare-cli binary or the paths to "
+"your JSON configs and shares."
+msgstr ""
+
+#: ../../source/advanced.rst:253
+msgid "The systemd unit file should look like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:268
+msgid ""
+"Note that although ``/home/user/my-shared-file.txt`` was defined in the "
+"``filenames`` section of the ``my-persistent-onion.json`` file, it's still "
+"necessary to specify it as the argument to the onionshare-cli command."
+msgstr ""
+
+#: ../../source/advanced.rst:270
+msgid ""
+"Be sure to run ``sudo systemctl daemon-reload`` after creating the unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:272
+msgid ""
+"Now you can run ``sudo systemctl start onionshare-cli.service``. If you have "
+"``journalctl`` installed, you can run ``sudo journalctl -f -t onionshare-"
+"cli``, and you should see some output of your service starting::"
+msgstr ""
+
+#: ../../source/advanced.rst:282
+msgid ""
+"If you don't want your users to use a Private Key, set ``public`` to be "
+"``true`` in the ``general`` settings of the my-persistent-onion.json file."
+msgstr ""
+
+#: ../../source/advanced.rst:286
+msgid "Keyboard Shortcuts"
+msgstr "Клавиши конбинации"
+
+#: ../../source/advanced.rst:288
msgid ""
"The OnionShare desktop application contains some keyboard shortcuts, for "
"convenience and accessibility::"
msgstr ""
+"Десктоп приложението OnionShare използва някои клавишни комбинации за "
+"удобство и достъпност::"
-#: ../../source/advanced.rst:158
+#: ../../source/advanced.rst:293
msgid "And from the main mode chooser screen::"
+msgstr "И на основния екран за избор на режим::"
+
+#: ../../source/advanced.rst:303
+msgid "Migrating your OnionShare data to another computer"
+msgstr ""
+
+#: ../../source/advanced.rst:305
+msgid ""
+"You may want to migrate your OnionShare data when switching to another "
+"computer. This is especially true if you had a 'persistent' onion address "
+"and you want to preserve it."
+msgstr ""
+
+#: ../../source/advanced.rst:307
+msgid ""
+"OnionShare stores all such data in a specific folder. Copy the relevant "
+"folder for your operating system below, to your new computer:"
+msgstr ""
+
+#: ../../source/advanced.rst:309
+msgid "Linux: ``~/.config/onionshare``"
+msgstr ""
+
+#: ../../source/advanced.rst:310
+msgid "macOS: ``~/Library/Application Support/OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:311
+msgid "Windows: ``%APPDATA%\\OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:315
+msgid "Configuration file parameters"
+msgstr ""
+
+#: ../../source/advanced.rst:317
+msgid ""
+"OnionShare stores its settings in a JSON file. Both the CLI and the Desktop "
+"versions use this configuration file. The CLI also lets you specify a path "
+"to a custom configuration file with ``--config``."
+msgstr ""
+
+#: ../../source/advanced.rst:319
+msgid ""
+"Below are the configuration file parameters and what they mean. If your "
+"configuration file has other parameters not listed here, they may be "
+"obsolete from older OnionShare versions."
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Parameter"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Type"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Explanation"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid "version"
+msgstr ""
+
+#: ../../source/advanced.rst:324 ../../source/advanced.rst:325
+#: ../../source/advanced.rst:326 ../../source/advanced.rst:328
+#: ../../source/advanced.rst:330 ../../source/advanced.rst:331
+#: ../../source/advanced.rst:332 ../../source/advanced.rst:337
+#: ../../source/advanced.rst:338 ../../source/advanced.rst:339
+#: ../../source/advanced.rst:340 ../../source/advanced.rst:343
+#: ../../source/advanced.rst:404 ../../source/advanced.rst:405
+#: ../../source/advanced.rst:406 ../../source/advanced.rst:415
+#: ../../source/advanced.rst:426 ../../source/advanced.rst:430
+#: ../../source/advanced.rst:452 ../../source/advanced.rst:453
+#: ../../source/advanced.rst:465
+msgid "``string``"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid ""
+"The version of OnionShare. You should not ever need to change this value."
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid "connection_type"
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid ""
+"The way in which OnionShare connects to Tor. Valid options are 'bundled', "
+"'automatic' (use Tor Browser's Tor connection), 'control_port' or "
+"'socket_file'. Default: 'bundled'"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid "control_port_address"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid ""
+"The IP address of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid "control_port_port"
+msgstr ""
+
+#: ../../source/advanced.rst:327 ../../source/advanced.rst:329
+#: ../../source/advanced.rst:335
+msgid "``integer``"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid ""
+"The port number of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '9051'"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid "socks_address"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid ""
+"The IP address of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid "socks_port"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid ""
+"The port number of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: ''9050'"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid "socket_file_path"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid ""
+"The path to Tor's socket file, if ``connection_type`` is set to "
+"'socket_file'. Default: '/var/run/tor/control'"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid "auth_type"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid ""
+"If access to Tor's control port requires a password, this can be set to "
+"'password', otherwise 'no_auth'. Default: 'no_auth'"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid "auth_password"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid ""
+"If access to Tor's control port requires a password, and ``auth_type`` is "
+"set to 'password', specify the password here. Default: ''"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid "auto_connect"
+msgstr ""
+
+#: ../../source/advanced.rst:333 ../../source/advanced.rst:334
+#: ../../source/advanced.rst:336 ../../source/advanced.rst:344
+#: ../../source/advanced.rst:416 ../../source/advanced.rst:417
+#: ../../source/advanced.rst:427 ../../source/advanced.rst:428
+#: ../../source/advanced.rst:429 ../../source/advanced.rst:441
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:454
+#: ../../source/advanced.rst:455 ../../source/advanced.rst:464
+#: ../../source/advanced.rst:466
+msgid "``boolean``"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid ""
+"Whether OnionShare should automatically connect to Tor when it starts. "
+"Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid "use_autoupdate"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid ""
+"Whether OnionShare should automatically check for updates (over Tor). This "
+"setting is only valid for MacOS or Windows installations. Default: True."
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "autoupdate_timestamp"
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "The last time OnionShare checked for updates. Default: None"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "bridges_enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "Whether to connect to Tor using bridges. Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid "bridges_type"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid ""
+"When ``bridges_enabled`` is True, where to load bridges from. Options are "
+"\"built-in\" (bridges shipped with OnionShare and which may get updated from "
+"Tor), \"moat\" (request bridges from Tor's Moat API), or \"custom\" (user-"
+"supplied bridges). Default: \"built-in\""
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid "bridges_builtin_pt"
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", this specifies which type of "
+"bridge protocol to use. Options are \"obfs4\", \"meek-azure\" or "
+"\"snowflake\". Default: \"obfs4\""
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid "bridges_moat"
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid ""
+"When ``bridges_type`` is set to \"moat\", the bridges returned from Tor's "
+"Moat API are stored here. Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid "bridges_custom"
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid ""
+"When ``bridges_type`` is set to \"custom\", the bridges specified by the "
+"user are stored here. Separate each bridge line in the string with '\\n'. "
+"Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "bridges_builtin"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "``dict``"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", OnionShare obtains the latest "
+"built-in bridges recommended by Tor and stores them here. Default: {}"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid "persistent_tabs"
+msgstr ""
+
+#: ../../source/advanced.rst:342 ../../source/advanced.rst:442
+#: ../../source/advanced.rst:467
+msgid "``list``"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid ""
+"If the user has defined any tabs as 'saved' (meaning that they are "
+"persistent each time OnionShare starts, and their onion address doesn't "
+"change), these are given a random identifier which gets listed here. The "
+"persistent onion is stored as a JSON file with the same name as this "
+"identifier, in a subfolder of the OnionShare configuration folder called "
+"'persistent'. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid "locale"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid ""
+"The locale used in OnionShare. Default: None (which is the same as 'en'). "
+"For valid locale codes, see 'available_locales' in https://github.com/"
+"onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid "theme"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid ""
+"The theme for the OnionShare desktop app. Valid options are 0 (automatically "
+"detect the user's computer's light or dark theme), 1 (light) or 2 (dark)."
+msgstr ""
+
+#: ../../source/advanced.rst:349
+msgid "Configuration file parameters for persistent onions"
+msgstr ""
+
+#: ../../source/advanced.rst:351
+msgid ""
+"As described above, each 'persistent' onion has parameters of its own which "
+"are stored in its own JSON file. The path to this file can be specified for "
+"the CLI tool with ``--persistent``."
+msgstr ""
+
+#: ../../source/advanced.rst:353
+msgid "Here is an example persistent JSON configuration::"
+msgstr ""
+
+#: ../../source/advanced.rst:396
+msgid ""
+"Below are the configuration file parameters for a persistent onion and what "
+"they mean, for each section in the JSON"
+msgstr ""
+
+#: ../../source/advanced.rst:399
+msgid "onion"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "private_key"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "Base64-encoded private key of the onion service"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid "client_auth_priv_key"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid ""
+"The private key when using Client Authentication. Send this to the user."
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid "client_auth_pub_key"
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid ""
+"The public key when using Client Authentication. Used on OnionShare's side."
+msgstr ""
+
+#: ../../source/advanced.rst:410
+msgid "persistent"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid "mode"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid ""
+"The mode used by this persistent onion. Options are \"share\", \"receive\", "
+"\"website\" or \"chat\"."
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid "enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid ""
+"Whether persistence is enabled for this onion. When the persistent option is "
+"unchecked in the desktop, this entire JSON file is deleted. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid "autostart_on_launch"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid ""
+"Whether to automatically start this persistent onion when OnionShare starts "
+"and once Tor is connected. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:421
+msgid "general"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid "title"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid ""
+"An optional custom title for displaying on the onion service. Default: null "
+"(\"OnionShare\" will be shown instead)"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid "public"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid ""
+"Whether the onion service can be accessed with or without a Private Key "
+"(Client Authentication). If true, no Private Key is required."
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid "autostart_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid ""
+"Whether the onion service is configured to start at a specific time. The "
+"time can be set in the desktop app or specified in seconds with ``--auto-"
+"start-timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid "autostop_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid ""
+"Whether the onion service is configured to stop at a specific time. The time "
+"can be set in the desktop app or specified in seconds with ``--auto-stop-"
+"timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid "service_id"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid ""
+"The 32-character onion service URL, without the scheme and without the '."
+"onion' suffix."
+msgstr ""
+
+#: ../../source/advanced.rst:433
+msgid ""
+"The below are settings specific to the 'mode' specified in the "
+"``persistent`` section above."
+msgstr ""
+
+#: ../../source/advanced.rst:436
+msgid "share"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid "autostop_sharing"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid ""
+"Whether to automatically stop the share once files are downloaded the first "
+"time. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "A list of files to share. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid "log_filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid ""
+"Whether to log URL requests to stdout when using the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:447
+msgid "receive"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid "data_dir"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid ""
+"The path where received files or text messages will be stored. Default: the "
+"'OnionShare' folder of the user's home directory."
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid "webhook_url"
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid ""
+"A webhook URL that OnionShare will POST to when it receives files or text "
+"messages. Default: null"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "disable_text"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "Whether to disable receiving text messages. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "disable_files"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "Whether to disable receiving files. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:459
+msgid "website"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid "disable_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid ""
+"If set to ``true``, OnionShare won't set its default Content Security Policy "
+"header for the website. Default: ``false``"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "custom_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "A custom Content Security Policy header to send instead of the default."
+msgstr ""
+
+#: ../../source/advanced.rst:471
+msgid "chat"
+msgstr ""
+
+#: ../../source/advanced.rst:473
+msgid "There are currently no configurable settings for the Chat mode."
msgstr ""
diff --git a/docs/source/locale/bg/LC_MESSAGES/develop.po b/docs/source/locale/bg/LC_MESSAGES/develop.po
index 17aced82..6f6a49c4 100644
--- a/docs/source/locale/bg/LC_MESSAGES/develop.po
+++ b/docs/source/locale/bg/LC_MESSAGES/develop.po
@@ -6,8 +6,8 @@
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.4.1\n"
-"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2024-07-24 11:09+0000\n"
"Last-Translator: 109247019824 \n"
"Language-Team: none\n"
@@ -41,9 +41,9 @@ msgstr ""
"така е лесен начин за изпращане на шифровани директни съобщения до други "
"членове на общността на OnionShare, като адреси на услуги на OnionShare. За "
"да използвате Keybase, изтеглете `приложението Keybase `_, създайте профил и `се присъединете към този екип "
-"`_. В приложението отворете „Teams“, "
-"докоснете „Join a Team“ и въведете „onionshare“."
+"download>`_, създайте профил и `се присъединете към този екип `_. В приложението отворете „Teams“, докоснете "
+"„Join a Team“ и въведете „onionshare“."
#: ../../source/develop.rst:12
msgid ""
@@ -103,9 +103,9 @@ msgstr ""
"OnionShare се разработва на Python. За да започнете клонирайте хранилището "
"на Git от https://github.com/onionshare/onionshare/. Последвайте стъпките от "
"файла ``cli/README.md``, за да настроите обкръжението на средата за "
-"разработка на конзолния вариант на приложението, а във файла ``desktop/README"
-".md`` ще откриете стъпките за настройка на обкръжението за разработка на "
-"графичната версия."
+"разработка на конзолния вариант на приложението, а във файла ``desktop/"
+"README.md`` ще откриете стъпките за настройка на обкръжението за разработка "
+"на графичната версия."
#: ../../source/develop.rst:32
msgid ""
diff --git a/docs/source/locale/bg/LC_MESSAGES/features.po b/docs/source/locale/bg/LC_MESSAGES/features.po
index 2009c17e..dc6212a3 100644
--- a/docs/source/locale/bg/LC_MESSAGES/features.po
+++ b/docs/source/locale/bg/LC_MESSAGES/features.po
@@ -7,16 +7,17 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
-"PO-Revision-Date: 2023-09-17 21:00+0000\n"
-"Last-Translator: 109247019824 \n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
+"PO-Revision-Date: 2025-02-12 22:02+0000\n"
+"Last-Translator: 109247019824 <109247019824@users.noreply.hosted.weblate."
+"org>\n"
"Language-Team: none\n"
"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.0.2\n"
+"X-Generator: Weblate 5.10-dev\n"
#: ../../source/features.rst:4
msgid "How OnionShare Works"
@@ -28,18 +29,21 @@ msgid ""
"other people as `Tor `_ `onion services "
"`_."
msgstr ""
+"Услугите работят на вашето устройство и стават достъпни за други хора като "
+"`услуги на onion `_ през "
+"`Tor `_."
#: ../../source/features.rst:8
msgid "By default, OnionShare web addresses are protected with a private key."
-msgstr ""
+msgstr "По подразбиране адресите на OnionShare са защитени с частен ключ."
#: ../../source/features.rst:10
msgid "OnionShare addresses look something like this::"
-msgstr ""
+msgstr "Адресите на OnionShare изглеждат подобно на::"
#: ../../source/features.rst:14
msgid "And private keys might look something like this::"
-msgstr ""
+msgstr "А частните ключове изглеждат подобно на::"
#: ../../source/features.rst:18
msgid ""
@@ -48,6 +52,11 @@ msgid ""
"using something less secure like unencrypted email, depending on your "
"`threat model `_."
msgstr ""
+"Вие самите носите отговорността за сигурното споделяне на адреса и частния "
+"ключ, използвайки канал за връзка по ваш избор, например чрез шифрован чат, "
+"или чрез нещо по-малко сигурно, като нешифровано електронно писмо, в "
+"зависимост от `модела на заплахата ви `_."
#: ../../source/features.rst:20
msgid ""
@@ -56,6 +65,10 @@ msgid ""
"Tor Browser will then prompt for the private key, which the people can also "
"then copy and paste in."
msgstr ""
+"Хората, на които изпращате адреса, го копират и поставят в `Tor Browser "
+"`_, за да получат достъп до услугата на "
+"OnionShare. След това Tor Browser ще поиска частния ключ, който хората да "
+"копират и поставят."
#: ../../source/features.rst:24
msgid ""
@@ -64,6 +77,11 @@ msgid ""
"laptop is unsuspended and on the internet again. OnionShare works best when "
"working with people in real-time."
msgstr ""
+"Ако отворите OnionShare на лаптопа си и изпращате файлове на някого, след "
+"това спрете лаптопа, но преди файловете да бъдат изпратени, услугата няма да "
+"бъде достъпна, докато лаптопът ви не бъде отново включен и с додтъп до "
+"интернет. OnionShare работи най-добре, когато работите с хората в реално "
+"време."
#: ../../source/features.rst:26
msgid ""
@@ -73,10 +91,16 @@ msgid ""
"services too, it also protects your anonymity. See the :doc:`security design "
"` for more info."
msgstr ""
+"Тъй като сървърът е вашият собствен компютър, *никакви трети лица нямат "
+"достъп до вътрешните процеси в OnionShare*, дори и разработчиците на "
+"OnionShare. Приложението е напълно поверително. И тъй като OnionShare "
+"използва услугите на onion през Tor, той също допълнително защитава "
+"анонимността ви. За повече информация вижте :doc:`модела на сигурност "
+"security>`."
#: ../../source/features.rst:29
msgid "Share Files"
-msgstr ""
+msgstr "Споделяне на файлове"
#: ../../source/features.rst:31
msgid ""
@@ -84,12 +108,18 @@ msgid ""
"anonymously. Open a share tab, drag in the files and folders you wish to "
"share, and click \"Start sharing\"."
msgstr ""
+"Можете да използвате OnionShare за сигурно и анонимно изпращане файлове и "
+"папки. Отворете раздела за споделяне, плъзнете и пуснете файловете и "
+"папките, които искате да споделите, и натиснете бутона „Споделяне“."
-#: ../../source/features.rst:35 ../../source/features.rst:112
+#: ../../source/features.rst:35 ../../source/features.rst:117
msgid ""
"After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing."
msgstr ""
+"След като добавите файлове към OnionShare, ще се появят някои настройки. "
+"Уверете се, че използвате само настройките, които ви интересуват, преди да "
+"започнете да споделяте."
#: ../../source/features.rst:39
msgid ""
@@ -98,6 +128,11 @@ msgid ""
"allow multiple people to download them, uncheck the \"Stop sharing after "
"files have been sent (uncheck to allow downloading individual files)\" box."
msgstr ""
+"Веднага щом някой приключи с изтеглянето на файловете, OnionShare "
+"автоматично ще спре сървъра и ще премахне достъпа през интернет. За да "
+"позволите на няколко души да ги изтеглят, махнете отметката от „Изключване "
+"на услугата след изпращане на файловете (за изтегляне на отделни файлове "
+"махнете отметката)“."
#: ../../source/features.rst:42
msgid ""
@@ -105,6 +140,8 @@ msgid ""
"individual files you share rather than a single compressed version of all "
"the files."
msgstr ""
+"Също така, ако отметката е махната, хората ще могат да изтеглят отделни "
+"споделени файлове, вместо един голям архив."
#: ../../source/features.rst:44
msgid ""
@@ -113,6 +150,10 @@ msgid ""
"website down. You can also click the \"↑\" icon in the top-right corner to "
"show the history and progress of people downloading files from you."
msgstr ""
+"Когато сте готови, натиснете бутона „Споделяне“. Ако се налага винаги межете "
+"да натиснете „Изключване на споделянето“ или да излезете от OnionShare, "
+"което незабавно ще спре достъпа. За преглед на историята и напредъка на "
+"споделените файлове, натиснете пиктограната „↑“ в горния десен ъгъл."
#: ../../source/features.rst:48
msgid ""
@@ -121,6 +162,10 @@ msgid ""
"stay secure, or the person is otherwise exposed to danger, use an encrypted "
"messaging app."
msgstr ""
+"След като вече разполагате с адреса на услугата на OnionShare, той трябва да "
+"бъде копиран и изпратен на получателя на файловете. Ако те трябва да останат "
+"защитени или получателят по някакъв начин е застрашен, за да изпратите "
+"адреса използвайте приложение за шифровани съобщения."
#: ../../source/features.rst:50
msgid ""
@@ -128,10 +173,14 @@ msgid ""
"the private key, the files can be downloaded directly from your computer by "
"clicking the \"Download Files\" link in the corner."
msgstr ""
+"Така полученият адрес трябва да бъде въведен в адресната лента на Tor "
+"Browser. След удостоверяване с частния ключ, получателят ще може да изтегли "
+"файловете, директно от вашето устройство като натисне препратката „Изтегляне "
+"на файлове“."
#: ../../source/features.rst:55
msgid "Receive Files and Messages"
-msgstr ""
+msgstr "Получаване на файлове и съобщения"
#: ../../source/features.rst:57
msgid ""
@@ -139,11 +188,17 @@ msgid ""
"directly to your computer, essentially turning it into an anonymous dropbox. "
"Open a receive tab and choose the settings that you want."
msgstr ""
+"Можете да използвате OnionShare, за да дадете на хората възможност анонимно "
+"да изпращат файлове и съобщения, директно на устройство ви, като по същество "
+"го превърнете в анонимна пощенска кутия. Отворете раздела за получаване и "
+"задайте желаните настройки."
#: ../../source/features.rst:62
msgid ""
"You can browse for a folder to save messages and files that get submitted."
msgstr ""
+"Можете да посочите папката, в която ще се запазват получените съобщения и "
+"файлове."
#: ../../source/features.rst:64
msgid ""
@@ -151,6 +206,10 @@ msgid ""
"uploads, and you can check \"Disable uploading files\" if you want to only "
"allow submitting text messages, like for an anonymous contact form."
msgstr ""
+"Можете да отметнете полето „Без изпращане на съобщения“, ако желаете да "
+"разрешите само качването на файлове, и можете да поставите отметка пред „Без "
+"качване на файлове, ако искате да разрешите само изпращането на "
+"текстовисъобщения, например за анонимна форма за контакт."
#: ../../source/features.rst:66
msgid ""
@@ -166,6 +225,17 @@ msgid ""
"service, @webhookbot will send you a message on Keybase letting you know as "
"soon as it happens."
msgstr ""
+"Може да отметнете „Отдалечено известяване“ и след това да изберете адрес, "
+"ако искате да бъдете уведомявани, когато някой изпрати файлове или съобщения "
+"към вашата услуга на OnionShare. Ако отметнете тази настройка, OnionShare ще "
+"направи HTTP POST заявка към този адрес, когато някой изпрати файлове или "
+"съобщения. Например, ако искате да получите шифровано текстово съобщение в "
+"приложението за съобщения `Keybase `_, можете да "
+"започнете разговор с `@webhookbot `_, да "
+"въведете ``!webhook create onionshare-alerts`` и той ще отговори с адрес. "
+"Използвайте го като адрес за отдалечено известяване. Когато някой качи файл, "
+"@webhookbot ще ви изпрати съобщение в Keybase, с което ще ви уведоми, че "
+"това се е случило."
#: ../../source/features.rst:71
msgid ""
@@ -173,16 +243,21 @@ msgid ""
"service. Anyone loading this address in their Tor Browser will be able to "
"submit files and messages which get uploaded to your computer."
msgstr ""
+"Когато сте готови, натиснете „Включване на режим получаване“, за да стартира "
+"услугата OnionShare. Всеки, който зареди този адрес в своя Tor Browser, ще "
+"може да изпраща файлове и съобщения, които се получават от вашия компютър."
#: ../../source/features.rst:75
msgid ""
"You can also click the down \"↓\" icon in the top-right corner to show the "
"history and progress of people sending files to you."
msgstr ""
+"За да видите историята и напредъка на изпращаните файлове, можете да "
+"натиснете пиктограмата стрелка надолу „↓“ в горния десен ъгъл."
#: ../../source/features.rst:77
msgid "Here is what it looks like for someone sending you files and messages."
-msgstr ""
+msgstr "Това вижда, някой който ви изпраща файлове и съобщения."
#: ../../source/features.rst:81
msgid ""
@@ -191,6 +266,10 @@ msgid ""
"computer, automatically organized into separate subfolders based on the time "
"that the files get uploaded."
msgstr ""
+"Когато някой изпрати файлове или съобщения в услугата за получаване, по "
+"подразбиране те се записват в папка, наречена ``OnionShare``, в домшната "
+"папка на компютъра, като автоматично се организират в отделни папки в "
+"зависимост от времето на получаване на файловете."
#: ../../source/features.rst:83
msgid ""
@@ -200,10 +279,15 @@ msgid ""
"quite as secure version of `SecureDrop `_, the "
"whistleblower submission system."
msgstr ""
+"Създаването на услуга за получаване на OnionShare е полезно за журналисти и "
+"други лица, които трябва по сигурен начин да получават документи от анонимни "
+"източници. Когато се използва по този начин, OnionShare е нещо като "
+"олекотена, по-проста и не толкова сигурна версия на `SecureDrop `_, системата за подаване на сигнали за нередности."
#: ../../source/features.rst:86
msgid "Use at your own risk"
-msgstr ""
+msgstr "Използвайте на своя отговорност"
#: ../../source/features.rst:88
msgid ""
@@ -212,6 +296,10 @@ msgid ""
"service. OnionShare does not add any safety mechanisms to protect your "
"system from malicious files."
msgstr ""
+"Подобно на зловредните прикачени файлове към електронната поща, е възможно "
+"някой да се опита да атакува компютъра ви, като изпрати зловреден файл в "
+"услугата OnionShare. OnionShare не добавя никакви механизми за безопасност, "
+"за да защити системата ви от зловредни файлове."
#: ../../source/features.rst:90
msgid ""
@@ -221,15 +309,23 @@ msgid ""
"untrusted documents by opening them in `Tails `_ or "
"in a `Qubes `_ disposableVM."
msgstr ""
+"Ако получите документ от Office или PDF чрез OnionShare, можете да "
+"преобразувате тези документи в PDF файлове, които са безопасни за отваряне, "
+"като използвате `Dangerzone `_. Можете също така "
+"да се защитите при отваряне на ненадеждни документи, като ги отворите в "
+"`Tails `_ или във виртуална машина за еднократна "
+"употреба на `Qubes `_."
#: ../../source/features.rst:92
msgid ""
"However, it is always safe to open text messages sent through OnionShare."
msgstr ""
+"Въпреки това във всички случаи е безопасно да отваряте текстови съобщения, "
+"изпратени чрез OnionShare."
#: ../../source/features.rst:95
msgid "Tips for running a receive service"
-msgstr ""
+msgstr "Съвети за използване на услугата за получаване на файлове"
#: ../../source/features.rst:97
msgid ""
@@ -237,6 +333,10 @@ msgid ""
"recommended you do so on a separate, dedicated computer always powered on "
"and connected to the internet, and not on the one you use on a regular basis."
msgstr ""
+"Ако искате да направите своя собствена анонимна пощенска кутия като "
+"използвате OnionShare, ви препоръчваме да го направите на отделен компютър, "
+"който винаги е включен и свързан с интернет, а не на този, който използвате "
+"редовно."
#: ../../source/features.rst:99
msgid ""
@@ -245,19 +345,44 @@ msgid ""
"(see :ref:`turn_off_private_key`). It's also a good idea to give it a custom "
"title (see :ref:`custom_titles`)."
msgstr ""
+"Ако възнамерявате да поставите адреса на OnionShare на своята страница или в "
+"профилите си в социалните мрежи, запазете раздела (вж. :ref:`save_tabs`) и "
+"го стартирайте като публична услуга (вж. :ref:`turn_off_private_key`). Добра "
+"идея е също така да му зададете някакво заглавие (вижте :ref:"
+"`custom_titles`)."
#: ../../source/features.rst:102
-msgid "Host a Website"
+msgid "Other caveats to be aware of in Receive Mode"
msgstr ""
+"Други ограничения, които трябва да се имат предвид в режим на получаване"
#: ../../source/features.rst:104
msgid ""
+"There are reports that OnionBrowser on iOS devices are unable to upload "
+"files to an OnionShare in Receive Mode, when operating in 'Silver' security "
+"mode. Try Bronze or Gold to see if you are able to upload a message or a "
+"file."
+msgstr ""
+"Има съобщения, че OnionBrowser на устройства с iOS не може да изпраща "
+"файлове до OnionShare в режим на полупаване, когато работи в режим на "
+"сигурност Сребърен. Използвайте Бронзов или Златен ако не можете да "
+"изпратите съобщение или файл."
+
+#: ../../source/features.rst:107
+msgid "Host a Website"
+msgstr "Поддържане на уеб страница"
+
+#: ../../source/features.rst:109
+msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag the "
"files and folders that make up the static content there, and click \"Start "
"sharing\" when you are ready."
msgstr ""
+"За да поддържате статична страница на HTML с OnionShare, отворете раздел за "
+"уеб страница, завлачете папките и файловете със статичното съдържание в него "
+"и когато сте готови натиснете бутона „Споделяне“."
-#: ../../source/features.rst:108
+#: ../../source/features.rst:113
msgid ""
"If you add an ``index.html`` file, it will render when someone loads your "
"website. You should also include any other HTML files, CSS files, JavaScript "
@@ -265,47 +390,66 @@ msgid ""
"supports hosting *static* websites. It can't host websites that execute code "
"or use databases. So you can't for example use WordPress.)"
msgstr ""
+"Ако добавите файл ``index.html``, той ще се показва когато някой отвори "
+"страницата. Трябва да добавите и всички други HTML файлове, CSS файлове, "
+"JavaScript файлове и изображения, които се използват в страницата. (Имайте "
+"предвид, че OnionShare поддържа само *статични* страници. Не се поддържат "
+"страници, които изпълняват код или използват бази от данни. Така че не "
+"можете да използвате да речем WordPress.)"
-#: ../../source/features.rst:110
+#: ../../source/features.rst:115
msgid ""
"If you don't have an ``index.html`` file, it will show a directory listing "
"instead, and people loading it can look through the files and download them."
msgstr ""
+"Ако не разполагате с файл на име ``index.html``, то при отваряне на "
+"страницата ще бъде показан списък с файловете и хората ще могат да ги "
+"разгледат или изтеглят."
-#: ../../source/features.rst:117
+#: ../../source/features.rst:122
msgid "Content Security Policy"
-msgstr ""
+msgstr "Политика за защита на съдържанието"
-#: ../../source/features.rst:119
+#: ../../source/features.rst:124
msgid ""
"By default OnionShare helps secure your website by setting a strict `Content "
"Security Policy `_ "
"header. However, this prevents third-party content from loading inside the "
"web page."
msgstr ""
+"По подразбиране OnionShare защитава страницата като задава заглавката "
+"`Content Security Policy `_. Но тя предотвратява възможността за зареждане на "
+"странични ресурси."
-#: ../../source/features.rst:121
+#: ../../source/features.rst:126
msgid ""
"If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, you have two options:"
msgstr ""
+"Ако желаете да зареждате съдържание от трети страни, като библиотеки на "
+"JavaScript от мрежи за доставка на съдържание, имате две възможности:"
-#: ../../source/features.rst:123
+#: ../../source/features.rst:128
msgid ""
"You can disable sending a Content Security Policy header by checking the "
"\"Don't send Content Security Policy header (allows your website to use "
"third-party resources)\" box before starting the service."
msgstr ""
-
-#: ../../source/features.rst:124
-msgid "You can send a custom Content Security Policy header."
-msgstr ""
-
-#: ../../source/features.rst:127
-msgid "Tips for running a website service"
-msgstr ""
+"Можете да изключите изпращането на заглавката „Content Security Policy “, "
+"като отметнете „Без изпращане на подразбираната заглавка на Content Security "
+"Policy (за използване на странични ресурси)“, преди да стартирате услугата."
#: ../../source/features.rst:129
+msgid "You can send a custom Content Security Policy header."
+msgstr ""
+"Можете да изпращате заглавка „Content Security Policy“ по ваше усмотрение."
+
+#: ../../source/features.rst:132
+msgid "Tips for running a website service"
+msgstr "Съвети за използване на услугата за страница в интернет"
+
+#: ../../source/features.rst:134
msgid ""
"If you want to host a long-term website using OnionShare (meaning not just "
"to quickly show someone something), it's recommended you do it on a "
@@ -314,71 +458,104 @@ msgid ""
"ref:`save_tabs`) so you can resume the website with the same address if you "
"close OnionShare and re-open it later."
msgstr ""
+"Ако искате дългосрочно да поддържате страница в интернет (не само набързо да "
+"покажете нещо на някого), ви препоръчваме да го направите на отделен "
+"компютър, който винаги е включен и свързан с интернет, а не на този, който "
+"използвате редовно. Запазете раздела (вж. ref:`save_tabs`), така че да "
+"можете да възстановите същия адрес ако се наложи да спрете OnionShare и по-"
+"късно да го пуснете отново."
-#: ../../source/features.rst:132
+#: ../../source/features.rst:137
msgid ""
"If your website is intended for the public, you should run it as a public "
"service (see :ref:`turn_off_private_key`)."
msgstr ""
+"Ако страницата е предназначена за широката публика ви препоръчваме да "
+"изключите тайния ключ (вж. ref:`turn_off_private_key`)."
-#: ../../source/features.rst:135
+#: ../../source/features.rst:140
msgid "Chat Anonymously"
-msgstr ""
+msgstr "Анонимен разговор"
-#: ../../source/features.rst:137
+#: ../../source/features.rst:142
msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't "
"log anything. Just open a chat tab and click \"Start chat server\"."
msgstr ""
+"Посредством OnionShare можете да създадете защитена стая за разговори, за "
+"която не се пази дневник. Просто отворете раздел за разговори и натиснете "
+"„Включване на сървър за съобщения“."
-#: ../../source/features.rst:141
+#: ../../source/features.rst:146
msgid ""
"After you start the server, copy the OnionShare address and private key and "
"send them to the people you want in the anonymous chat room. If it's "
"important to limit exactly who can join, use an encrypted messaging app to "
"send out the OnionShare address and private key."
msgstr ""
+"След като стартирате сървъра, копирайте адреса и тайния ключ на OnionShare и "
+"ги изпратете на хората, които искате да участват в анонимната стая. Ако е "
+"важно да ограничите кръга на хората, които могат да се присъединят, "
+"използвайте приложение за шифровани съобщения, за да изпратите адреса и "
+"тайния ключ на OnionShare."
-#: ../../source/features.rst:146
+#: ../../source/features.rst:151
msgid ""
"People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to "
"participate must have their Tor Browser security level set to \"Standard\" "
"or \"Safer\", instead of \"Safest\"."
msgstr ""
+"Вашите кореспондрнти могат да се присъединят към стаята за разговори, като "
+"отворят адреса от OnionShare в Tor Browser. Стаята изисква JavasScript, така "
+"че всеки, който иска да вземе участие, трябва да настрои нивото на сигурност "
+"на Tor Browser на „Стандарто“ или „По-игурно“, вместо „Най-сигурно“."
-#: ../../source/features.rst:149
+#: ../../source/features.rst:154
msgid ""
"When someone joins the chat room they get assigned a random name. They can "
"change their name by typing a new name in the box in the left panel and "
"pressing ↵. Since the chat history isn't saved anywhere, it doesn't get "
"displayed at all, even if others were already chatting in the room."
msgstr ""
+"Когато нов участник се присъедини към стаята, получава произволно име. Това "
+"име може да бъде променено в панела в ляво, като въведете новото име и "
+"натиснете ↵. Тъй като не се запазва история на разговорите, това име не се "
+"появява никъде, дори ако в стаята вече е имало участници."
-#: ../../source/features.rst:155
+#: ../../source/features.rst:160
msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change their "
"name to anything, and there is no way to confirm anyone's identity."
msgstr ""
+"В стаята за разговори на OnionShare всички са анонимни. Всеки може да "
+"промени името си на каквото пожелае и няма начин да бъде потвърдена "
+"самоличността на никого от участниците."
-#: ../../source/features.rst:158
+#: ../../source/features.rst:163
msgid ""
"However, if you create an OnionShare chat room and securely send the address "
"only to a small group of trusted friends using encrypted messages, you can "
"be reasonably confident the people joining the chat room are your friends."
msgstr ""
+"Въпреки това, ако създадете стая за разговори в OnionShare и изпратите "
+"адреса по сигурен начин до малка група доверени приятели, чрез шифровани "
+"съобщения, можете да бъдете достатъчно сигурни, че участниците, които се "
+"присъединяват към стаята за разговори, са ваши приятели."
-#: ../../source/features.rst:161
+#: ../../source/features.rst:166
msgid "How is this useful?"
-msgstr ""
+msgstr "Каква е ползата?"
-#: ../../source/features.rst:163
+#: ../../source/features.rst:168
msgid ""
"If you need to already be using an encrypted messaging app, what's the point "
"of an OnionShare chat room to begin with? It leaves less traces."
msgstr ""
+"Има ли смисъл от стаята за разговори на OnionShare, щом трябва да използвам "
+"приложение за шифровани съобщения? OnionShare оставя по-малко следи."
-#: ../../source/features.rst:165
+#: ../../source/features.rst:170
msgid ""
"If you for example send a message to a Signal group, a copy of your message "
"ends up on each device (the smartphones, and computers if they set up Signal "
@@ -388,8 +565,16 @@ msgid ""
"databases) they may have been saved to. OnionShare chat rooms don't store "
"any messages anywhere, so the problem is reduced to a minimum."
msgstr ""
+"Например, ако изпратите съобщение до група в Signal, копие от съобщението ще "
+"се попадне на всяко устройство (телефони и компютри, ако някои използва "
+"Signal Desktop) на всеки от членовете в групата. Дори ако са включени т.нар "
+"„изчезващи съобщения“, е трудно да сте сигурни, че всички копия на "
+"съобщенията са действително премахнати от всички устройства и от всички "
+"други места (напр. от известията), на които може да са били запазени. Стаята "
+"за разговори на OnionShare не пази никъде никакви съобщения, така че "
+"проблемът е сведен до минимум."
-#: ../../source/features.rst:168
+#: ../../source/features.rst:173
msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any "
@@ -397,12 +582,18 @@ msgid ""
"journalist using a disposable email address, and then wait for the "
"journalist to join the chat room, all without compromosing their anonymity."
msgstr ""
+"Стаите за разговори на OnionShare могат да бъдат полезни и за хора, които "
+"искат да разговарят анонимно и сигурно с някого, без да е необходимо да "
+"създават профили. Например източникът може да изпрати адрес на OnionShare до "
+"журналист, като използва адрес на ел. поща за еднократна употреба, и след "
+"това да изчака журналистът да се присъедини към стаята, всичко това без да "
+"разкрива самоличността си."
-#: ../../source/features.rst:172
+#: ../../source/features.rst:177
msgid "How does the encryption work?"
-msgstr ""
+msgstr "Как работи шифроването?"
-#: ../../source/features.rst:174
+#: ../../source/features.rst:179
msgid ""
"Because OnionShare relies on Tor onion services, connections between the Tor "
"Browser and OnionShare are all end-to-end encrypted (E2EE). When someone "
@@ -410,9 +601,17 @@ msgid ""
"through the E2EE onion connection, which then sends it to all other members "
"of the chat room using WebSockets, through their E2EE onion connections."
msgstr ""
+"OnionShare разчита на услугите на Tor onion и всички връзки между Tor "
+"Browser и OnionShare са шифровани от край до край (E2EE). Когато някой "
+"изпраща съобщение в стаята за разговори на OnionShare, то се предава към "
+"сървъра чрез E2EE връзка. След това сървърът го разпраща до всички участници "
+"в стаята с помощта на WebSockets, също използвайки шифрованите от край до "
+"край връзки на всеки участник."
-#: ../../source/features.rst:176
+#: ../../source/features.rst:181
msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on "
"the Tor onion service's encryption instead."
msgstr ""
+"OnionShare не шифрова съдържанието на разовора. То се осигурява от услуги на "
+"onion от мрежата на Tor."
diff --git a/docs/source/locale/bg/LC_MESSAGES/help.po b/docs/source/locale/bg/LC_MESSAGES/help.po
index 6f35a215..4121e14d 100644
--- a/docs/source/locale/bg/LC_MESSAGES/help.po
+++ b/docs/source/locale/bg/LC_MESSAGES/help.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-09-17 21:00+0000\n"
"Last-Translator: 109247019824 \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/bg/LC_MESSAGES/index.po b/docs/source/locale/bg/LC_MESSAGES/index.po
index 7c000538..8b88c2f2 100644
--- a/docs/source/locale/bg/LC_MESSAGES/index.po
+++ b/docs/source/locale/bg/LC_MESSAGES/index.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-08-05 22:50+0000\n"
"Last-Translator: Salif Mehmed \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/bg/LC_MESSAGES/install.po b/docs/source/locale/bg/LC_MESSAGES/install.po
index 5c594dfa..6c4b9d88 100644
--- a/docs/source/locale/bg/LC_MESSAGES/install.po
+++ b/docs/source/locale/bg/LC_MESSAGES/install.po
@@ -6,17 +6,18 @@
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
-"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
-"PO-Revision-Date: 2024-08-15 05:09+0000\n"
-"Last-Translator: 109247019824 \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
+"PO-Revision-Date: 2025-02-11 21:35+0000\n"
+"Last-Translator: 109247019824 <109247019824@users.noreply.hosted.weblate."
+"org>\n"
"Language-Team: none\n"
"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.7-dev\n"
+"X-Generator: Weblate 5.10-dev\n"
#: ../../source/install.rst:2
msgid "Installation"
@@ -42,7 +43,7 @@ msgstr "Мобилно"
msgid "You can download OnionShare for Mobile from the follow links"
msgstr "Можете да изтеглите OnionShare за мобилни платформи от следните места"
-#: ../../source/install.rst:18
+#: ../../source/install.rst:16
msgid "Android"
msgstr "Андроид"
@@ -58,7 +59,7 @@ msgstr ""
msgid "F-Droid: https://github.com/onionshare/onionshare-android-nightly"
msgstr "F-Droid: https://github.com/onionshare/onionshare-android-nightly"
-#: ../../source/install.rst:24
+#: ../../source/install.rst:20
msgid "iOS"
msgstr "iOS"
@@ -206,8 +207,8 @@ msgid ""
"Install Snapcraft by following the instructions at https://snapcraft.io/docs/"
"installing-snapd."
msgstr ""
-"Инсталирайте пакета на Snapcraft, следвайки инструкциите на https://snapcraft"
-".io/docs/installing-snapd."
+"Инсталирайте пакета на Snapcraft, следвайки инструкциите на https://"
+"snapcraft.io/docs/installing-snapd."
#: ../../source/install.rst:59
msgid ""
@@ -222,8 +223,8 @@ msgid ""
"Verify the PGP signature of the ``.snap`` file. See :ref:`verifying_sigs` "
"for more info."
msgstr ""
-"Проверете подписа с PGP на файла ``.snap``. За повече информация прочетете "
-":ref:`verifying_sigs`."
+"Проверете подписа с PGP на файла ``.snap``. За повече информация прочетете :"
+"ref:`verifying_sigs`."
#: ../../source/install.rst:61
msgid ""
@@ -321,8 +322,8 @@ msgid ""
"want to install that version."
msgstr ""
"Съществува и версия на OnionShare **само за команден ред**, налична като "
-"предварително подготвен пакет. Заменете ``py39-onionshare`` с ``py39"
-"-onionshare-cli``, ако искате да инсталирате тази версия."
+"предварително подготвен пакет. Заменете ``py39-onionshare`` с ``py39-"
+"onionshare-cli``, ако искате да инсталирате тази версия."
#: ../../source/install.rst:93
msgid ""
@@ -331,8 +332,8 @@ msgid ""
"freebsd.org/en/books/handbook/ports/#pkgng-intro>`_."
msgstr ""
"За допълнителна информация и подробности относно предварително подготвените "
-"пакети за FreeBSD, вижте `секция в официалното Ръководство за pkg "
-"`_."
+"пакети за FreeBSD, вижте `секция в официалното Ръководство за pkg `_."
#: ../../source/install.rst:96
msgid "Manual port Installation"
@@ -344,8 +345,8 @@ msgid ""
"`_ you must have checked out before and run the "
"following::"
msgstr ""
-"За да инсталирате порта за FreeBSD, преминете към директорията на `"
-"колекцията от портове `_, която сте извлекли "
+"За да инсталирате порта за FreeBSD, преминете към директорията на "
+"`колекцията от портове `_, която сте извлекли "
"предварително, и изпълнете следното::"
#: ../../source/install.rst:102
@@ -393,13 +394,14 @@ msgstr "Ключ за подписи"
#: ../../source/install.rst:117
msgid ""
"Packages are signed by the core developer who is responsible for the "
-"particular release. Following are the informations of the core developers of "
-"OnionShare:"
+"particular release. Here is the GPG key information for each of the core "
+"developers of OnionShare:"
msgstr ""
"Покетите са подписани от основния разработчик, който отговаря за конкретното "
-"издание. По-долу е дадена информация за основните разработчици на OnionShare:"
+"издание. По-долу е дадена информация за ключовете на GPG на всеки от "
+"основните разработчици на OnionShare:"
-#: ../../source/install.rst:122
+#: ../../source/install.rst:120
msgid "Micah Lee:"
msgstr "Майка Лий:"
@@ -416,11 +418,11 @@ msgid ""
"keys.openpgp.org/vks/v1/by-"
"fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
msgstr ""
-"Можете да изтеглите ключа на Майка `от сървъра за ключове на "
-"keys.openpgp.org `_."
+"Можете да изтеглите ключа на Майка `от сървъра за ключове на keys.openpgp."
+"org `_."
-#: ../../source/install.rst:126
+#: ../../source/install.rst:124
msgid "Saptak Sengupta:"
msgstr "Саптак Сенгупта:"
@@ -437,11 +439,32 @@ msgid ""
"keys.openpgp.org/vks/v1/by-"
"fingerprint/2AE3D40A6905C8E4E8ED95ECE46A2B977C14666B>`_."
msgstr ""
-"Можете да изтеглите ключа на Саптак `от сървъра за ключове на "
-"keys.openpgp.org `_."
+"Можете да изтеглите ключа на Саптак `от сървъра за ключове на keys.openpgp."
+"org `_."
#: ../../source/install.rst:128
+msgid "Miguel Jacq:"
+msgstr "Мигел Жак:"
+
+#: ../../source/install.rst:129
+msgid ""
+"PGP public key fingerprint ``00AE817C24A10C2540461A9C1D7CDE0234DB458D``."
+msgstr ""
+"Отпечатък от публичния ключ на PGP "
+"``00AE817C24A10C2540461A9C1D7CDE0234DB458D``."
+
+#: ../../source/install.rst:130
+msgid ""
+"You can download Miguel's key `from the keys.openpgp.org keyserver `_."
+msgstr ""
+"Можете да изтеглите ключа на Мигел `от сървъра за ключове на keys.openpgp."
+"org `_."
+
+#: ../../source/install.rst:132
msgid ""
"You must have GnuPG installed to verify signatures. For macOS you probably "
"want `GPGTools `_, and for Windows you probably want "
@@ -451,11 +474,11 @@ msgstr ""
"GnuPG. За macOS е препоръчително `GPGTools `_, а за "
"Windows – `Gpg4win `_."
-#: ../../source/install.rst:131
+#: ../../source/install.rst:135
msgid "Signatures"
msgstr "Подписи"
-#: ../../source/install.rst:133
+#: ../../source/install.rst:137
msgid ""
"You can find the signatures (as ``.asc`` files), as well as Windows, macOS, "
"Flatpak, Snap, and source packages, at https://onionshare.org/dist/ in the "
@@ -463,46 +486,47 @@ msgid ""
"`GitHub Releases page `_."
msgstr ""
"Можете да намерите подписите (като файлове с разширение ``.asc``), както и "
-"пакети за Windows, macOS, Flatpak, Snap и изходен код на адрес "
-"https://onionshare.org/dist/ в папки, именувани за всяко издание на "
-"OnionShare. Можете също така да ги намерите на страницата с ` издания в "
-"GitHub `_."
+"пакети за Windows, macOS, Flatpak, Snap и изходен код на адрес https://"
+"onionshare.org/dist/ в папки, именувани за всяко издание на OnionShare. "
+"Можете също така да ги намерите на страницата с ` издания в GitHub `_."
-#: ../../source/install.rst:137
+#: ../../source/install.rst:141
msgid "Verifying"
msgstr "Проверяване"
-#: ../../source/install.rst:139
+#: ../../source/install.rst:143
msgid ""
"Once you have imported the core developers public keys into your GnuPG "
"keychain, downloaded the binary and ``.asc`` signature, you can verify the "
"binary in a terminal like this:"
msgstr ""
"След като сте внесли публичните ключове на основните разработчици в "
-"хранилището за ключове на GnuPG, изтеглили сте двоичния файл и подписа във ``"
-".asc`` формат, можете да проверите двоичния файл в терминал по следния начин:"
+"хранилището за ключове на GnuPG, изтеглили сте двоичния файл и подписа във "
+"``.asc`` формат, можете да проверите двоичния файл в терминал по следния "
+"начин:"
-#: ../../source/install.rst:141
+#: ../../source/install.rst:145
msgid "For Windows::"
msgstr "За Windows::"
-#: ../../source/install.rst:145
+#: ../../source/install.rst:149
msgid "For macOS::"
msgstr "За macOS::"
-#: ../../source/install.rst:149
+#: ../../source/install.rst:153
msgid "For Linux::"
msgstr "За Linux::"
-#: ../../source/install.rst:155
+#: ../../source/install.rst:159
msgid "and for the source file::"
msgstr "и за файла с изходен код::"
-#: ../../source/install.rst:159
+#: ../../source/install.rst:163
msgid "The expected output looks like this::"
msgstr "Изведеното в резултат от командата би трябвало да изглежда така::"
-#: ../../source/install.rst:169
+#: ../../source/install.rst:173
msgid ""
"If you don't see ``Good signature from``, there might be a problem with the "
"integrity of the file (malicious or otherwise), and you should not install "
@@ -511,7 +535,7 @@ msgstr ""
"Ако не виждате ``Good signature from``, може да има проблем с целостта на "
"файла (зловреден или друг), и не трябва да инсталирате пакета."
-#: ../../source/install.rst:171
+#: ../../source/install.rst:175
msgid ""
"The ``WARNING:`` shown above, is not a problem with the package, it only "
"means you haven't defined a level of \"trust\" of Micah's (the core "
@@ -520,7 +544,7 @@ msgstr ""
"Предупреждението ``WARNING:`` по-горе не е проблем с пакета; то означава, че "
"не сте задали ниво на „доверие“ към ключа на Майка (основния разработчик)."
-#: ../../source/install.rst:173
+#: ../../source/install.rst:177
msgid ""
"If you want to learn more about verifying PGP signatures, the guides for "
"`Qubes OS `_ and "
@@ -528,6 +552,6 @@ msgid ""
">`_ may be useful."
msgstr ""
"Ако искате да научите повече за проверката на подписи с PGP, ръководствата "
-"за `Qubes OS `_ и `"
-"Tor Project `_ "
+"за `Qubes OS `_ и "
+"`Tor Project `_ "
"могат да ви бъдат полезни."
diff --git a/docs/source/locale/bg/LC_MESSAGES/security.po b/docs/source/locale/bg/LC_MESSAGES/security.po
index 054f391c..103fe138 100644
--- a/docs/source/locale/bg/LC_MESSAGES/security.po
+++ b/docs/source/locale/bg/LC_MESSAGES/security.po
@@ -6,8 +6,8 @@
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
-"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2024-07-15 14:06+0000\n"
"Last-Translator: 109247019824 \n"
"Language-Team: none\n"
@@ -98,8 +98,8 @@ msgstr ""
"позволиха на нападателите да открият тайни адреси ``.onion``. За да се "
"достъпи услуга на OnionShare от нейния адрес, трябва да се отгатне частният "
"ключ, използван за удостоверяване на клиента (освен ако услугата вече не е "
-"направена публична чрез изключване на таен ключ - виж "
-":ref:`turn_off_private_key`)."
+"направена публична чрез изключване на таен ключ - виж :ref:"
+"`turn_off_private_key`)."
#: ../../source/security.rst:33
msgid "What OnionShare doesn't protect against"
diff --git a/docs/source/locale/bg/LC_MESSAGES/sphinx.po b/docs/source/locale/bg/LC_MESSAGES/sphinx.po
index d264bb1d..45418770 100644
--- a/docs/source/locale/bg/LC_MESSAGES/sphinx.po
+++ b/docs/source/locale/bg/LC_MESSAGES/sphinx.po
@@ -6,8 +6,8 @@
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
-"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2024-07-16 14:09+0000\n"
"Last-Translator: 109247019824 \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/bg/LC_MESSAGES/tor.po b/docs/source/locale/bg/LC_MESSAGES/tor.po
index 2b0e10f1..a792b497 100644
--- a/docs/source/locale/bg/LC_MESSAGES/tor.po
+++ b/docs/source/locale/bg/LC_MESSAGES/tor.po
@@ -6,9 +6,9 @@
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
-"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
-"PO-Revision-Date: 2024-08-15 05:09+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
+"PO-Revision-Date: 2024-10-20 20:15+0000\n"
"Last-Translator: 109247019824 \n"
"Language-Team: none\n"
"Language: bg\n"
@@ -16,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.7-dev\n"
+"X-Generator: Weblate 5.8-rc\n"
#: ../../source/tor.rst:2
msgid "Connecting to Tor"
@@ -39,6 +39,12 @@ msgid ""
"connection fails, you can still try bridges or reconfigure Tor via the "
"\"Network Settings\" button."
msgstr ""
+"Можете да отметнете „Автоматично свързване с Tor“, преди да изберете "
+"„Свързване с Tor“. Това означава, че при следващото стартиране OnionShare ще "
+"се свърже автоматично с настройките за връзка с Tor от последния сеанс, "
+"вместо да ви представя диалог за свързване. Ако връзка не бъде установена "
+"можете да опитате мостове или да промените настройките на Tor чрез бутона "
+"„Настройки на мрежата“."
#: ../../source/tor.rst:11
msgid ""
@@ -46,26 +52,34 @@ msgid ""
"are no problems with your network, including any attempts to block your "
"access to the Tor network, this should hopefully work the first time."
msgstr ""
+"Изберете „Свързване с Tor“, за да започне процеса на свързване. Ако няма "
+"проблеми с мрежата, включително блокиране достъп до мрежата Tor, надяваме "
+"се, че това ще се случи от първия път."
#: ../../source/tor.rst:13
msgid ""
"Or, if you want to manually configure Bridges or other Tor settings before "
"you connect, you can click \"Network Settings\"."
msgstr ""
+"Ако, преди да се свържете, искате ръчно да настроите мостове или други "
+"аспекти на Tor, можете да изберете „Настройки на мрежата“."
#: ../../source/tor.rst:16
msgid "Automatic censorship circumvention"
-msgstr ""
+msgstr "Автоматично заобикаляне на цензура"
#: ../../source/tor.rst:18
msgid ""
"When you click \"Connect to Tor\", if OnionShare fails to connect, it might "
"be because Tor is censored in your country or on your local network."
msgstr ""
+"Когато щракнете върху „Свързване с Tor“, ако OnionShare не успее да се "
+"свърже, това може да се дължи на факта, че Tor е цензуриран във вашата "
+"държава или местна мрежа."
#: ../../source/tor.rst:20
msgid "If this occurs, you will have these choices:"
-msgstr ""
+msgstr "Ако това се случи, имате следните възможности:"
#: ../../source/tor.rst:22
msgid "Try again without a bridge"
@@ -75,16 +89,19 @@ msgstr "Повторен опит без мост"
msgid ""
"Automatically determine my country from my IP address for bridge settings"
msgstr ""
+"Автоматично определяне на държавата от IP адреса за настройване на мост"
#: ../../source/tor.rst:24
msgid "Manually select my country for bridge settings"
-msgstr ""
+msgstr "Ръчно избиране на държавата за настройване на мост"
#: ../../source/tor.rst:28
msgid ""
"If you choose the \"Try again without a bridge\" option, OnionShare will "
"retry connecting to Tor like normal, without attempting to bypass censorship."
msgstr ""
+"Ако изберете „Повторен опит без мост“, OnionShare ще опита да се свърже с "
+"Tor както обикновено, без да заобикаля цензурата."
#: ../../source/tor.rst:30
msgid ""
@@ -99,6 +116,17 @@ msgid ""
"Censorship Circumvention API. The Meek proxy hides the fact that you are "
"trying to find a way to connect to Tor."
msgstr ""
+"Другите две настройки ще се опитат автоматично да заобиколят цензурата с "
+"помощта на мостове на Tor. Ако доставчикът ви възпрепятства достъпа до "
+"мрежата на Tor, се надяваме, че все пак можете да се свържете с мост на Tor, "
+"който ще ви свърже с мрежата на Tor, заобикаляйки цензурата. И двете "
+"възможности използват API за заобикаляне на цензурата на проекта Tor, за да "
+"ви предоставят настройки на мостовете, които би трябвало да работят. "
+"OnionShare временно ще използва прокси сървъра с домейн `Meek `_, за да осъществи "
+"връзка извън мрежата на Tor от компютъра към API за заобикаляне на цензурата "
+"на Tor. Прокси сървърът Meek скрива факта, че се опитвате да намерите начин "
+"да се свържете с Tor."
#: ../../source/tor.rst:36
msgid ""
@@ -108,6 +136,11 @@ msgid ""
"reside in. Based on the country information, the API will try to "
"automatically find bridges that suit your location."
msgstr ""
+"Ако изберете „Автоматично определяне на държавата от IP адреса за "
+"настройване на мост“, API за заобикаляне на цензурата ще вземе предвид вашия "
+"IP адрес (да, истинския ви IP адрес), за да определи в коя държава сте. Въз "
+"основа на тази информацията API ще се опита автоматично да намери мостове, "
+"които отговарят на вашето местоположение."
#: ../../source/tor.rst:41
msgid ""
@@ -115,10 +148,13 @@ msgid ""
"Censorship API will find the bridges that suit the country that you "
"specified."
msgstr ""
+"Ако изберете „Ръчно избиране на държавата за настройване на мост“, "
+"Censorship API ще намери мостовете, които отговарят на посочената от вас "
+"държава."
#: ../../source/tor.rst:46
msgid "How automatic censorship circumvention works"
-msgstr ""
+msgstr "Как работи автоматичното заобикаляне на цензурата"
#: ../../source/tor.rst:48
msgid ""
@@ -127,6 +163,10 @@ msgid ""
"does not find any bridges for your location, OnionShare will ask the API for "
"\"fallback\" options, and then try to reconnect using those."
msgstr ""
+"Ако API за заобикаляне на цензурата открие подходящи мостове, OnionShare ще "
+"се опита да се свърже отново с Tor, като ги използва. Ако API не открие "
+"мостове за вашето местоположение, OnionShare ще поиска от API резервни "
+"варианти и ще се опита да възстанови връзката, като използва тях."
#: ../../source/tor.rst:50
msgid ""
@@ -134,6 +174,9 @@ msgid ""
"or if the API returns an error message, OnionShare will attempt to use the "
"obfs4 built-in bridges."
msgstr ""
+"Ако по някаква причина OnionShare не успее да се свърже със самия API за "
+"заобикаляне на цензурата или ако API върне съобщение за грешка, OnionShare "
+"ще се опита да използва вградените мостове на obfs4."
#: ../../source/tor.rst:52
msgid ""
@@ -141,6 +184,9 @@ msgid ""
"do not go over the Tor network (because if you could connect to Tor already, "
"you wouldn't need to connect to the API)."
msgstr ""
+"Важно е да се отбележи, че заявките към API за заобикаляне на цензурата не "
+"преминават през мрежата Tor (ако можехте да се свържете с Tor, нямаше да е "
+"необходимо да се свързвате с API)."
#: ../../source/tor.rst:54
msgid ""
@@ -150,6 +196,12 @@ msgid ""
"to making one or two requests to the Censorship Circumvention API. Then Meek "
"is stopped, and all further network requests happen over the Tor network."
msgstr ""
+"Въпреки че за противника е трудно да открие къде отива заявката на Meek, "
+"това може да бъде рисковано за някои потребители. Поради това тази настройка "
+"е по избор. Използването на Meek и мрежови заявки извън мрежата на Tor е "
+"ограничено само до извършването на една или две заявки към API за "
+"заобикаляне на цензурата. След това Meek спира и всички по-нататъшни заявки "
+"се извършват през мрежата Tor."
#: ../../source/tor.rst:56
msgid ""
@@ -159,10 +211,15 @@ msgid ""
"appears), and manually configure bridges. After you save any bridge "
"settings, OnionShare will try to reconnect using those bridges."
msgstr ""
+"Ако не желаете да правите заявкаи извън мрежата Tor, можете да щракнете "
+"върху „Настройки на мрежата“ (или върху „Настройки“ в долния десен ъгъл, "
+"последвана от раздела „Настройки на Tor“ в появилия се екран) и ръчно да "
+"настроите мостове. След като запазите настройките на мостовете, OnionShare "
+"ще се опита да се свърже отново, като използва тези настройки."
#: ../../source/tor.rst:59
msgid "Manually configure Tor settings"
-msgstr ""
+msgstr "Ръчна настройка на Tor"
#: ../../source/tor.rst:61
msgid ""
@@ -171,11 +228,17 @@ msgid ""
"the application, and then switch to the Tor Settings tab in the screen that "
"appears."
msgstr ""
+"Можете да стигнете до настройките на Tor, като щракнете върху „Настройки на "
+"мрежата“ на началния екран или пиктограмата „⚙“ в долния десен ъгъл на "
+"приложението, след което отворите раздела „Настройки на Tor“ в появилия се "
+"екран."
#: ../../source/tor.rst:65
msgid ""
"Here are the different ways you can configure OnionShare to connect to Tor:"
msgstr ""
+"Ето различните начини, по които можете да настроите OnionShare да се свързва "
+"с Tor:"
#: ../../source/tor.rst:68
msgid "Use the Tor version built into OnionShare"
@@ -186,6 +249,9 @@ msgid ""
"This is the default, simplest and most reliable way that OnionShare connects "
"to Tor. For this reason, it's recommended for most users."
msgstr ""
+"Това е стандартният, най-простият и надежден начин за свързване на "
+"OnionShare с Tor. Поради тази причина той се препоръчва за повечето "
+"потребители."
#: ../../source/tor.rst:73
msgid ""
@@ -194,22 +260,29 @@ msgid ""
"``tor`` processes on your computer, so you can use the Tor Browser or the "
"system ``tor`` on their own."
msgstr ""
+"При отваряне OnionShare стартира настроен процес на ``tor`` във фонов режим. "
+"Тези процес не пречи на останалите процеси на ``tor`` на устройството, така "
+"че Tor Browser или системният ``tor`` могат да бъдат използвани едновременно."
#: ../../source/tor.rst:76
msgid "**Using bridges**"
-msgstr ""
+msgstr "**Използване на мостове**"
#: ../../source/tor.rst:78
msgid ""
"To use a bridge, you must select \"Use the Tor version built into "
"OnionShare\" and check the \"Use a bridge\" checkbox."
msgstr ""
+"За да използвате мост, трябва да изберете „Използване на вграденото в "
+"OnionShare издание на Тор“ и да изберете настройката „Използване на мост“."
#: ../../source/tor.rst:80
msgid ""
"Try using a built-in bridge first. Using `obfs4` or `snowflake` bridges is "
"recommended over using `meek-azure`."
msgstr ""
+"Опитайте първо да използвате вграден мост. Препоръчва се използването на "
+"мостове `obfs4` или `snowflake` пред използването на `meek-azure`."
#: ../../source/tor.rst:84
msgid ""
@@ -218,12 +291,17 @@ msgid ""
"bridge. (This makes it more difficult for governments or ISPs to block "
"access to Tor bridges.)"
msgstr ""
+"Ако използването на вграден мост не работи, можете да поискате мост от "
+"torproject.org. Ще трябва да решите CAPTCHA, за да поискате мост. (Това "
+"затруднява правителства или интернет доставчици да блокират достъпа до "
+"мостовете на Tor.)"
#: ../../source/tor.rst:88
msgid ""
"You also have the option of using a bridge that you learned about from a "
"trusted source."
msgstr ""
+"Също така можете да използвате мост, за който знаете от надежден източник."
#: ../../source/tor.rst:91
msgid "Attempt auto-configuration with Tor Browser"
@@ -236,16 +314,22 @@ msgid ""
"from the Tor Browser. Keep in mind you need to keep Tor Browser open in the "
"background while you're using OnionShare for this to work."
msgstr ""
+"Ако сте `изтеглили Tor Browser `_ и не искате да "
+"имате два процеса на ``tor``, можете да използвате процеса ``tor`` от Tor "
+"Browser. Имайте предвид, че в такъв случай трябва да държите Tor Browser "
+"отворен на заден план, докато използвате OnionShare."
#: ../../source/tor.rst:97
msgid "Using a system ``tor`` in Windows"
-msgstr ""
+msgstr "Използване на системния процес на ``tor`` под Windows"
#: ../../source/tor.rst:99
msgid ""
"This is fairly advanced. You'll need to know how edit plaintext files and do "
"stuff as an administrator."
msgstr ""
+"Настройката изисква сравнително напреднали умения, като например редактиране "
+"на файлове с настройки и управление на операционната система."
#: ../../source/tor.rst:101
msgid ""
@@ -254,6 +338,11 @@ msgid ""
"extracted folder to ``C:\\Program Files (x86)\\`` Rename the extracted "
"folder with ``Data`` and ``Tor`` in it to ``tor-win32``."
msgstr ""
+"Изтеглете пакета Tor Windows Expert Bundle `от страницата на Tor `_. Разархивирайте компресирания файл и "
+"копирайте получената папка в ``C:\\Program Files (x86)\\``. Преименувайте "
+"разархивираната папка, която съдържа папките ``data`` и ``tor`` на ``tor-"
+"win32``."
#: ../../source/tor.rst:105
msgid ""
@@ -263,6 +352,11 @@ msgid ""
"administrator, and use ``tor.exe --hash-password`` to generate a hash of "
"your password. For example::"
msgstr ""
+"Измислете парола за порта за управление. (Препоръчително е да използвате "
+"последователност на 7 думи, напр., ``comprised stumble rummage work avenging "
+"construct volatile``, е добра идея за парола.) След това отворете команден "
+"ред (``cmd``) като администратор и изпълнете командата ``tor.exe --hash-"
+"password``, за да създадете отпечатък на паролата. Например::"
#: ../../source/tor.rst:112
msgid ""
@@ -270,6 +364,9 @@ msgid ""
"ignore). In the case of the above example, it is "
"``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``."
msgstr ""
+"Отпечатъкът от паролата е изведен след няколко предупреждения, които можете "
+"да пренебрегнете. В примера, показан по-горе, отпечатъкът е "
+"``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``."
#: ../../source/tor.rst:114
msgid ""
@@ -277,6 +374,9 @@ msgid ""
"and put your hashed password output in it, replacing the "
"``HashedControlPassword`` with the one you just generated::"
msgstr ""
+"След това създайте нов текстов файл ``C:\\Program Files (x86)\\tor-"
+"win32\\torrc`` и поставете отпечатъка от парола след "
+"``HashedControlPassword``::"
#: ../../source/tor.rst:119
msgid ""
@@ -284,10 +384,14 @@ msgid ""
"appropriate ``torrc`` file you just created (as described in ``_). Like this::"
msgstr ""
+"В командния ред с администраторски права инсталирайте ``tor`` като услуга "
+"(както е описано в ``_), използвайки файла ``torrc``, който току-що създадохте. Ето "
+"така::"
#: ../../source/tor.rst:123
msgid "You are now running a system ``tor`` process in Windows!"
-msgstr ""
+msgstr "Сега вече ``tor`` работи като услуга в Windows!"
#: ../../source/tor.rst:125
msgid ""
@@ -299,24 +403,34 @@ msgid ""
"Connection to Tor\" button. If all goes well, you should see \"Connected to "
"the Tor controller\"."
msgstr ""
+"Отворете OnionShare, щракнете върху пиктограмата „⚙“ и отворете раздела "
+"„Настройки на Tor“. Под \"Как OnionShare да се свързва с мрежата на Tor?\" "
+"изберете „Свързване, чрез порт за управление“ и за полето „Порт за "
+"управление“ задайте стойността ``127.0.0.1`` и ``9051`` за – „Порт“. Махнете "
+"отметката на „Без удостоверяване, нито с бисквитка“ и в полето „Парола“ "
+"въведете изпраната по-рано парола. Щракнете върху бутона „Проверка на "
+"връзката с Тор“. Ако всичко е наред, трябва да видите „Има връзка с "
+"контролер на Tor“."
#: ../../source/tor.rst:134
msgid "Using a system ``tor`` in macOS"
-msgstr ""
+msgstr "Използване на системния процес на ``tor`` в macOS"
#: ../../source/tor.rst:136
msgid ""
"First, install `Homebrew `_ if you don't already have it, "
"and then install Tor::"
msgstr ""
+"Първо инсталирайте `Homebrew `_, и след това инсталирайте "
+"Tor::"
#: ../../source/tor.rst:140
msgid "Now configure Tor to allow connections from OnionShare::"
-msgstr ""
+msgstr "След това настройте Tor, за да може OnionShare да го използва::"
#: ../../source/tor.rst:147
msgid "And start the system Tor service::"
-msgstr ""
+msgstr "Добавете и стартирайте услугата на Tor::"
#: ../../source/tor.rst:151
msgid ""
@@ -327,14 +441,20 @@ msgid ""
"authentication, or cookie authentication\". Click the \"Test Connection to "
"Tor\" button."
msgstr ""
+"Отворете OnionShare, щракнете върху пиктограмата „⚙“ и отворете раздела "
+"„Настройки на Tor“. Под \"Как OnionShare да се свързва с мрежата на Tor?\" "
+"изберете „Свързване, чрез файл на сокет“ и за файла на сокет задайте ``/usr/"
+"local/var/run/tor/control.socket``. Махнете отметката на „Без "
+"удостоверяване, нито с бисквитка“ и в полето „Парола“ въведете изпраната по-"
+"рано парола. Щракнете върху бутона „Проверка на връзката с Тор“."
#: ../../source/tor.rst:157 ../../source/tor.rst:177
msgid "If all goes well, you should see \"Connected to the Tor controller\"."
-msgstr ""
+msgstr "Ако всичко е наред, трябва да видите „Има връзка с контролер на Tor“."
#: ../../source/tor.rst:160
msgid "Using a system ``tor`` in Linux"
-msgstr ""
+msgstr "Използване на системния процес на ``tor`` в Линукс"
#: ../../source/tor.rst:162
msgid ""
@@ -342,6 +462,9 @@ msgid ""
"similar Linux distro, It is recommended to use the Tor Project's `official "
"repository `_."
msgstr ""
+"Първа инсталирайте пакета ``tor``. Ако използвате Debian, Ubuntu или подобна "
+"дистрибуция на Линукс, е препоръчително да използвате `официалното хранилище "
+"на Tor Project `_."
#: ../../source/tor.rst:164
msgid ""
@@ -349,12 +472,17 @@ msgid ""
"of Debian and Ubuntu, ``debian-tor``) and configure OnionShare to connect to "
"your system ``tor``'s control socket file."
msgstr ""
+"След това добавете потребителя си в групата, която управлява процеса ``tor`` "
+"(в случая на Debian и Ubuntu, ``debian-tor``), и настройте OnionShare да се "
+"свързва с файла на контролния сокет на ``tor``."
#: ../../source/tor.rst:166
msgid ""
"Add your user to the ``debian-tor`` group by running this command (replace "
"``username`` with your actual username)::"
msgstr ""
+"Добавете потребителя си в групата ``debian-tor``, като изпълните тази "
+"команда (заменете ``username`` с потребителското си име)::"
#: ../../source/tor.rst:170
msgid ""
@@ -365,3 +493,10 @@ msgid ""
"settings\" choose \"No authentication, or cookie authentication\". Click the "
"\"Test Connection to Tor\" button."
msgstr ""
+"Рестартирайте устройството. След това, отворете отново OnionShare, щракнете "
+"върху пиктограмата „⚙“ и отворете раздела „Настройки на Tor“. Под \"Как "
+"OnionShare да се свързва с мрежата на Tor?\" изберете „Свързване, чрез файл "
+"на сокет“. Задайте за файла на сокета ``/usr/local/var/run/tor/control."
+"socket``. Махнете отметката на „Без удостоверяване, нито с бисквитка“ и в "
+"полето „Парола“ въведете изпраната по-рано парола. Щракнете върху бутона "
+"„Проверка на връзката с Тор“."
diff --git a/docs/source/locale/bn/LC_MESSAGES/advanced.po b/docs/source/locale/bn/LC_MESSAGES/advanced.po
index b87765dc..5e234222 100644
--- a/docs/source/locale/bn/LC_MESSAGES/advanced.po
+++ b/docs/source/locale/bn/LC_MESSAGES/advanced.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-08-19 20:51+0000\n"
"Last-Translator: Sabbir Ahmed Shameem \n"
"Language-Team: none\n"
@@ -65,8 +65,8 @@ msgstr ""
#: ../../source/advanced.rst:28
msgid ""
"The Tor Browser will ask you to enter your private key when you load an "
-"OnionShare service. If you want allow the public to use your service, it's "
-"better to disable the private key altogether."
+"OnionShare service. If you want to allow the public to use your service, "
+"it's better to disable the private key altogether."
msgstr ""
#: ../../source/advanced.rst:31
@@ -109,9 +109,9 @@ msgstr ""
#: ../../source/advanced.rst:51
msgid ""
-"Services scheduled to start in the future display a countdown timer when "
-"when the \"Start sharing\" button is clicked. Services scheduled to stop in "
-"the future display a countdown timer when started."
+"Services scheduled to start in the future display a countdown timer when the "
+"\"Start sharing\" button is clicked. Services scheduled to stop in the "
+"future display a countdown timer when started."
msgstr ""
#: ../../source/advanced.rst:54
@@ -139,57 +139,751 @@ msgid ""
"interface."
msgstr ""
-#: ../../source/advanced.rst:72
-msgid ""
-"You can install just the command-line version of OnionShare using ``pip3``::"
+#: ../../source/advanced.rst:73
+msgid "Installing the CLI version"
msgstr ""
-#: ../../source/advanced.rst:76
+#: ../../source/advanced.rst:75
+msgid ""
+"If you have installed the Snap, macOS or Windows package, you already have "
+"the CLI version installed."
+msgstr ""
+
+#: ../../source/advanced.rst:77
+msgid ""
+"Alternatively, you can install just the command-line version of OnionShare "
+"using ``pip3``::"
+msgstr ""
+
+#: ../../source/advanced.rst:81
msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``"
msgstr ""
-#: ../../source/advanced.rst:78
+#: ../../source/advanced.rst:83
msgid "Then run it like this::"
msgstr ""
-#: ../../source/advanced.rst:82
+#: ../../source/advanced.rst:87
msgid ""
"Info about installing it on different operating systems can be found in the "
"`CLI README file `_ in the Git repository."
msgstr ""
-#: ../../source/advanced.rst:84
-msgid ""
-"If you installed OnionShare using the Snap package, you can also just run "
-"``onionshare.cli`` to access the command-line interface version."
+#: ../../source/advanced.rst:90
+msgid "Running the CLI from Snap"
msgstr ""
-#: ../../source/advanced.rst:87
+#: ../../source/advanced.rst:92
+msgid ""
+"If you installed OnionShare using the Snap package, you can run ``onionshare."
+"cli`` to access the command-line interface version."
+msgstr ""
+
+#: ../../source/advanced.rst:95
+msgid "Running the CLI from macOS"
+msgstr ""
+
+#: ../../source/advanced.rst:97
+msgid ""
+"From Terminal, you can run ``/Applications/OnionShare.app/Contents/MacOS/"
+"onionshare-cli --help``"
+msgstr ""
+
+#: ../../source/advanced.rst:100
+msgid "Running the CLI from Windows"
+msgstr ""
+
+#: ../../source/advanced.rst:102
+msgid ""
+"In the Windows installation, the executable ``onionshare-cli.exe`` is "
+"available."
+msgstr ""
+
+#: ../../source/advanced.rst:105
msgid "Usage"
msgstr ""
-#: ../../source/advanced.rst:89
+#: ../../source/advanced.rst:107
msgid ""
"Browse the command-line documentation by running ``onionshare --help``::"
msgstr ""
-#: ../../source/advanced.rst:151
+#: ../../source/advanced.rst:170
+msgid "Running the CLI as a systemd unit file"
+msgstr ""
+
+#: ../../source/advanced.rst:172
+msgid ""
+"It is possible to automatically start OnionShare from the CLI using a "
+"systemd unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:174
+msgid ""
+"You may find this particularly useful if you are operating in 'persistent' "
+"mode, and want to start the same onion service every time your machine "
+"starts."
+msgstr ""
+
+#: ../../source/advanced.rst:176
+msgid "To do this, you need to prepare some OnionShare json config first."
+msgstr ""
+
+#: ../../source/advanced.rst:178
+msgid ""
+"Here is the main OnionShare config. In this example, it's stored in ``/home/"
+"user/.config/onionshare/onionshare.json``. You may need to adjust some of "
+"the settings, but if you already have OnionShare installed, it probably "
+"looks much like this already::"
+msgstr ""
+
+#: ../../source/advanced.rst:207
+msgid ""
+"Notice the 'persistent_tabs' section. We will now create a file at ``/home/"
+"user/.config/onionshare/persistent/my-persistent-onion.json``, that looks "
+"like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:247
+msgid ""
+"**Don't actually use this private key, service_id or client_auth keys! They "
+"are shown only as an example. Never share the private_key with anyone.**"
+msgstr ""
+
+#: ../../source/advanced.rst:249
+msgid ""
+"The easiest way to generate the onion address and private key is to first "
+"create a 'pinned' OnionShare tab in the desktop app and started the share "
+"for the first time. This will then have saved the persistent settings to "
+"your ``.config/onionshare/persistent/`` folder with a random name. You can "
+"unpin that tab once you've generated it the first time. Or, you can leave it "
+"where it is, and use that persistent file in your systemd unit file below."
+msgstr ""
+
+#: ../../source/advanced.rst:251
+msgid ""
+"Now you can create a systemd unit file in ``/etc/systemd/system/onionshare-"
+"cli.service``. Be sure to adjust the User and Group to your own user/group, "
+"as well as changes to any paths to the onionshare-cli binary or the paths to "
+"your JSON configs and shares."
+msgstr ""
+
+#: ../../source/advanced.rst:253
+msgid "The systemd unit file should look like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:268
+msgid ""
+"Note that although ``/home/user/my-shared-file.txt`` was defined in the "
+"``filenames`` section of the ``my-persistent-onion.json`` file, it's still "
+"necessary to specify it as the argument to the onionshare-cli command."
+msgstr ""
+
+#: ../../source/advanced.rst:270
+msgid ""
+"Be sure to run ``sudo systemctl daemon-reload`` after creating the unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:272
+msgid ""
+"Now you can run ``sudo systemctl start onionshare-cli.service``. If you have "
+"``journalctl`` installed, you can run ``sudo journalctl -f -t onionshare-"
+"cli``, and you should see some output of your service starting::"
+msgstr ""
+
+#: ../../source/advanced.rst:282
+msgid ""
+"If you don't want your users to use a Private Key, set ``public`` to be "
+"``true`` in the ``general`` settings of the my-persistent-onion.json file."
+msgstr ""
+
+#: ../../source/advanced.rst:286
msgid "Keyboard Shortcuts"
msgstr ""
-#: ../../source/advanced.rst:153
+#: ../../source/advanced.rst:288
msgid ""
"The OnionShare desktop application contains some keyboard shortcuts, for "
"convenience and accessibility::"
msgstr ""
-#: ../../source/advanced.rst:158
+#: ../../source/advanced.rst:293
msgid "And from the main mode chooser screen::"
msgstr ""
+#: ../../source/advanced.rst:303
+msgid "Migrating your OnionShare data to another computer"
+msgstr ""
+
+#: ../../source/advanced.rst:305
+msgid ""
+"You may want to migrate your OnionShare data when switching to another "
+"computer. This is especially true if you had a 'persistent' onion address "
+"and you want to preserve it."
+msgstr ""
+
+#: ../../source/advanced.rst:307
+msgid ""
+"OnionShare stores all such data in a specific folder. Copy the relevant "
+"folder for your operating system below, to your new computer:"
+msgstr ""
+
+#: ../../source/advanced.rst:309
+msgid "Linux: ``~/.config/onionshare``"
+msgstr ""
+
+#: ../../source/advanced.rst:310
+msgid "macOS: ``~/Library/Application Support/OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:311
+msgid "Windows: ``%APPDATA%\\OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:315
+msgid "Configuration file parameters"
+msgstr ""
+
+#: ../../source/advanced.rst:317
+msgid ""
+"OnionShare stores its settings in a JSON file. Both the CLI and the Desktop "
+"versions use this configuration file. The CLI also lets you specify a path "
+"to a custom configuration file with ``--config``."
+msgstr ""
+
+#: ../../source/advanced.rst:319
+msgid ""
+"Below are the configuration file parameters and what they mean. If your "
+"configuration file has other parameters not listed here, they may be "
+"obsolete from older OnionShare versions."
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Parameter"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Type"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Explanation"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid "version"
+msgstr ""
+
+#: ../../source/advanced.rst:324 ../../source/advanced.rst:325
+#: ../../source/advanced.rst:326 ../../source/advanced.rst:328
+#: ../../source/advanced.rst:330 ../../source/advanced.rst:331
+#: ../../source/advanced.rst:332 ../../source/advanced.rst:337
+#: ../../source/advanced.rst:338 ../../source/advanced.rst:339
+#: ../../source/advanced.rst:340 ../../source/advanced.rst:343
+#: ../../source/advanced.rst:404 ../../source/advanced.rst:405
+#: ../../source/advanced.rst:406 ../../source/advanced.rst:415
+#: ../../source/advanced.rst:426 ../../source/advanced.rst:430
+#: ../../source/advanced.rst:452 ../../source/advanced.rst:453
+#: ../../source/advanced.rst:465
+msgid "``string``"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid ""
+"The version of OnionShare. You should not ever need to change this value."
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid "connection_type"
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid ""
+"The way in which OnionShare connects to Tor. Valid options are 'bundled', "
+"'automatic' (use Tor Browser's Tor connection), 'control_port' or "
+"'socket_file'. Default: 'bundled'"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid "control_port_address"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid ""
+"The IP address of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid "control_port_port"
+msgstr ""
+
+#: ../../source/advanced.rst:327 ../../source/advanced.rst:329
+#: ../../source/advanced.rst:335
+msgid "``integer``"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid ""
+"The port number of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '9051'"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid "socks_address"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid ""
+"The IP address of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid "socks_port"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid ""
+"The port number of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: ''9050'"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid "socket_file_path"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid ""
+"The path to Tor's socket file, if ``connection_type`` is set to "
+"'socket_file'. Default: '/var/run/tor/control'"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid "auth_type"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid ""
+"If access to Tor's control port requires a password, this can be set to "
+"'password', otherwise 'no_auth'. Default: 'no_auth'"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid "auth_password"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid ""
+"If access to Tor's control port requires a password, and ``auth_type`` is "
+"set to 'password', specify the password here. Default: ''"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid "auto_connect"
+msgstr ""
+
+#: ../../source/advanced.rst:333 ../../source/advanced.rst:334
+#: ../../source/advanced.rst:336 ../../source/advanced.rst:344
+#: ../../source/advanced.rst:416 ../../source/advanced.rst:417
+#: ../../source/advanced.rst:427 ../../source/advanced.rst:428
+#: ../../source/advanced.rst:429 ../../source/advanced.rst:441
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:454
+#: ../../source/advanced.rst:455 ../../source/advanced.rst:464
+#: ../../source/advanced.rst:466
+msgid "``boolean``"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid ""
+"Whether OnionShare should automatically connect to Tor when it starts. "
+"Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid "use_autoupdate"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid ""
+"Whether OnionShare should automatically check for updates (over Tor). This "
+"setting is only valid for MacOS or Windows installations. Default: True."
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "autoupdate_timestamp"
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "The last time OnionShare checked for updates. Default: None"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "bridges_enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "Whether to connect to Tor using bridges. Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid "bridges_type"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid ""
+"When ``bridges_enabled`` is True, where to load bridges from. Options are "
+"\"built-in\" (bridges shipped with OnionShare and which may get updated from "
+"Tor), \"moat\" (request bridges from Tor's Moat API), or \"custom\" (user-"
+"supplied bridges). Default: \"built-in\""
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid "bridges_builtin_pt"
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", this specifies which type of "
+"bridge protocol to use. Options are \"obfs4\", \"meek-azure\" or "
+"\"snowflake\". Default: \"obfs4\""
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid "bridges_moat"
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid ""
+"When ``bridges_type`` is set to \"moat\", the bridges returned from Tor's "
+"Moat API are stored here. Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid "bridges_custom"
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid ""
+"When ``bridges_type`` is set to \"custom\", the bridges specified by the "
+"user are stored here. Separate each bridge line in the string with '\\n'. "
+"Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "bridges_builtin"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "``dict``"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", OnionShare obtains the latest "
+"built-in bridges recommended by Tor and stores them here. Default: {}"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid "persistent_tabs"
+msgstr ""
+
+#: ../../source/advanced.rst:342 ../../source/advanced.rst:442
+#: ../../source/advanced.rst:467
+msgid "``list``"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid ""
+"If the user has defined any tabs as 'saved' (meaning that they are "
+"persistent each time OnionShare starts, and their onion address doesn't "
+"change), these are given a random identifier which gets listed here. The "
+"persistent onion is stored as a JSON file with the same name as this "
+"identifier, in a subfolder of the OnionShare configuration folder called "
+"'persistent'. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid "locale"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid ""
+"The locale used in OnionShare. Default: None (which is the same as 'en'). "
+"For valid locale codes, see 'available_locales' in https://github.com/"
+"onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid "theme"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid ""
+"The theme for the OnionShare desktop app. Valid options are 0 (automatically "
+"detect the user's computer's light or dark theme), 1 (light) or 2 (dark)."
+msgstr ""
+
+#: ../../source/advanced.rst:349
+msgid "Configuration file parameters for persistent onions"
+msgstr ""
+
+#: ../../source/advanced.rst:351
+msgid ""
+"As described above, each 'persistent' onion has parameters of its own which "
+"are stored in its own JSON file. The path to this file can be specified for "
+"the CLI tool with ``--persistent``."
+msgstr ""
+
+#: ../../source/advanced.rst:353
+msgid "Here is an example persistent JSON configuration::"
+msgstr ""
+
+#: ../../source/advanced.rst:396
+msgid ""
+"Below are the configuration file parameters for a persistent onion and what "
+"they mean, for each section in the JSON"
+msgstr ""
+
+#: ../../source/advanced.rst:399
+msgid "onion"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "private_key"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "Base64-encoded private key of the onion service"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid "client_auth_priv_key"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid ""
+"The private key when using Client Authentication. Send this to the user."
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid "client_auth_pub_key"
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid ""
+"The public key when using Client Authentication. Used on OnionShare's side."
+msgstr ""
+
+#: ../../source/advanced.rst:410
+msgid "persistent"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid "mode"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid ""
+"The mode used by this persistent onion. Options are \"share\", \"receive\", "
+"\"website\" or \"chat\"."
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid "enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid ""
+"Whether persistence is enabled for this onion. When the persistent option is "
+"unchecked in the desktop, this entire JSON file is deleted. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid "autostart_on_launch"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid ""
+"Whether to automatically start this persistent onion when OnionShare starts "
+"and once Tor is connected. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:421
+msgid "general"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid "title"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid ""
+"An optional custom title for displaying on the onion service. Default: null "
+"(\"OnionShare\" will be shown instead)"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid "public"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid ""
+"Whether the onion service can be accessed with or without a Private Key "
+"(Client Authentication). If true, no Private Key is required."
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid "autostart_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid ""
+"Whether the onion service is configured to start at a specific time. The "
+"time can be set in the desktop app or specified in seconds with ``--auto-"
+"start-timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid "autostop_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid ""
+"Whether the onion service is configured to stop at a specific time. The time "
+"can be set in the desktop app or specified in seconds with ``--auto-stop-"
+"timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid "service_id"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid ""
+"The 32-character onion service URL, without the scheme and without the '."
+"onion' suffix."
+msgstr ""
+
+#: ../../source/advanced.rst:433
+msgid ""
+"The below are settings specific to the 'mode' specified in the "
+"``persistent`` section above."
+msgstr ""
+
+#: ../../source/advanced.rst:436
+msgid "share"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid "autostop_sharing"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid ""
+"Whether to automatically stop the share once files are downloaded the first "
+"time. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "A list of files to share. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid "log_filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid ""
+"Whether to log URL requests to stdout when using the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:447
+msgid "receive"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid "data_dir"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid ""
+"The path where received files or text messages will be stored. Default: the "
+"'OnionShare' folder of the user's home directory."
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid "webhook_url"
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid ""
+"A webhook URL that OnionShare will POST to when it receives files or text "
+"messages. Default: null"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "disable_text"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "Whether to disable receiving text messages. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "disable_files"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "Whether to disable receiving files. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:459
+msgid "website"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid "disable_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid ""
+"If set to ``true``, OnionShare won't set its default Content Security Policy "
+"header for the website. Default: ``false``"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "custom_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "A custom Content Security Policy header to send instead of the default."
+msgstr ""
+
+#: ../../source/advanced.rst:471
+msgid "chat"
+msgstr ""
+
+#: ../../source/advanced.rst:473
+msgid "There are currently no configurable settings for the Chat mode."
+msgstr ""
+
#~ msgid ""
#~ "Everything in OnionShare is temporary by default. If you close an "
#~ "OnionShare tab, its address no longer exists and it can't be used again. "
diff --git a/docs/source/locale/bn/LC_MESSAGES/develop.po b/docs/source/locale/bn/LC_MESSAGES/develop.po
index 6fb5a344..a9bcb6aa 100644
--- a/docs/source/locale/bn/LC_MESSAGES/develop.po
+++ b/docs/source/locale/bn/LC_MESSAGES/develop.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.4.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
diff --git a/docs/source/locale/bn/LC_MESSAGES/features.po b/docs/source/locale/bn/LC_MESSAGES/features.po
index 2d83e591..651fa80f 100644
--- a/docs/source/locale/bn/LC_MESSAGES/features.po
+++ b/docs/source/locale/bn/LC_MESSAGES/features.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -83,7 +83,7 @@ msgid ""
"share, and click \"Start sharing\"."
msgstr ""
-#: ../../source/features.rst:35 ../../source/features.rst:112
+#: ../../source/features.rst:35 ../../source/features.rst:117
msgid ""
"After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing."
@@ -245,17 +245,29 @@ msgid ""
msgstr ""
#: ../../source/features.rst:102
-msgid "Host a Website"
+msgid "Other caveats to be aware of in Receive Mode"
msgstr ""
#: ../../source/features.rst:104
msgid ""
+"There are reports that OnionBrowser on iOS devices are unable to upload "
+"files to an OnionShare in Receive Mode, when operating in 'Silver' security "
+"mode. Try Bronze or Gold to see if you are able to upload a message or a "
+"file."
+msgstr ""
+
+#: ../../source/features.rst:107
+msgid "Host a Website"
+msgstr ""
+
+#: ../../source/features.rst:109
+msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag the "
"files and folders that make up the static content there, and click \"Start "
"sharing\" when you are ready."
msgstr ""
-#: ../../source/features.rst:108
+#: ../../source/features.rst:113
msgid ""
"If you add an ``index.html`` file, it will render when someone loads your "
"website. You should also include any other HTML files, CSS files, JavaScript "
@@ -264,17 +276,17 @@ msgid ""
"or use databases. So you can't for example use WordPress.)"
msgstr ""
-#: ../../source/features.rst:110
+#: ../../source/features.rst:115
msgid ""
"If you don't have an ``index.html`` file, it will show a directory listing "
"instead, and people loading it can look through the files and download them."
msgstr ""
-#: ../../source/features.rst:117
+#: ../../source/features.rst:122
msgid "Content Security Policy"
msgstr ""
-#: ../../source/features.rst:119
+#: ../../source/features.rst:124
msgid ""
"By default OnionShare helps secure your website by setting a strict `Content "
"Security Policy `_ "
@@ -282,28 +294,28 @@ msgid ""
"web page."
msgstr ""
-#: ../../source/features.rst:121
+#: ../../source/features.rst:126
msgid ""
"If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, you have two options:"
msgstr ""
-#: ../../source/features.rst:123
+#: ../../source/features.rst:128
msgid ""
"You can disable sending a Content Security Policy header by checking the "
"\"Don't send Content Security Policy header (allows your website to use "
"third-party resources)\" box before starting the service."
msgstr ""
-#: ../../source/features.rst:124
+#: ../../source/features.rst:129
msgid "You can send a custom Content Security Policy header."
msgstr ""
-#: ../../source/features.rst:127
+#: ../../source/features.rst:132
msgid "Tips for running a website service"
msgstr ""
-#: ../../source/features.rst:129
+#: ../../source/features.rst:134
msgid ""
"If you want to host a long-term website using OnionShare (meaning not just "
"to quickly show someone something), it's recommended you do it on a "
@@ -313,23 +325,23 @@ msgid ""
"close OnionShare and re-open it later."
msgstr ""
-#: ../../source/features.rst:132
+#: ../../source/features.rst:137
msgid ""
"If your website is intended for the public, you should run it as a public "
"service (see :ref:`turn_off_private_key`)."
msgstr ""
-#: ../../source/features.rst:135
+#: ../../source/features.rst:140
msgid "Chat Anonymously"
msgstr ""
-#: ../../source/features.rst:137
+#: ../../source/features.rst:142
msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't "
"log anything. Just open a chat tab and click \"Start chat server\"."
msgstr ""
-#: ../../source/features.rst:141
+#: ../../source/features.rst:146
msgid ""
"After you start the server, copy the OnionShare address and private key and "
"send them to the people you want in the anonymous chat room. If it's "
@@ -337,7 +349,7 @@ msgid ""
"send out the OnionShare address and private key."
msgstr ""
-#: ../../source/features.rst:146
+#: ../../source/features.rst:151
msgid ""
"People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to "
@@ -345,7 +357,7 @@ msgid ""
"or \"Safer\", instead of \"Safest\"."
msgstr ""
-#: ../../source/features.rst:149
+#: ../../source/features.rst:154
msgid ""
"When someone joins the chat room they get assigned a random name. They can "
"change their name by typing a new name in the box in the left panel and "
@@ -353,30 +365,30 @@ msgid ""
"displayed at all, even if others were already chatting in the room."
msgstr ""
-#: ../../source/features.rst:155
+#: ../../source/features.rst:160
msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change their "
"name to anything, and there is no way to confirm anyone's identity."
msgstr ""
-#: ../../source/features.rst:158
+#: ../../source/features.rst:163
msgid ""
"However, if you create an OnionShare chat room and securely send the address "
"only to a small group of trusted friends using encrypted messages, you can "
"be reasonably confident the people joining the chat room are your friends."
msgstr ""
-#: ../../source/features.rst:161
+#: ../../source/features.rst:166
msgid "How is this useful?"
msgstr ""
-#: ../../source/features.rst:163
+#: ../../source/features.rst:168
msgid ""
"If you need to already be using an encrypted messaging app, what's the point "
"of an OnionShare chat room to begin with? It leaves less traces."
msgstr ""
-#: ../../source/features.rst:165
+#: ../../source/features.rst:170
msgid ""
"If you for example send a message to a Signal group, a copy of your message "
"ends up on each device (the smartphones, and computers if they set up Signal "
@@ -387,7 +399,7 @@ msgid ""
"any messages anywhere, so the problem is reduced to a minimum."
msgstr ""
-#: ../../source/features.rst:168
+#: ../../source/features.rst:173
msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any "
@@ -396,11 +408,11 @@ msgid ""
"journalist to join the chat room, all without compromosing their anonymity."
msgstr ""
-#: ../../source/features.rst:172
+#: ../../source/features.rst:177
msgid "How does the encryption work?"
msgstr ""
-#: ../../source/features.rst:174
+#: ../../source/features.rst:179
msgid ""
"Because OnionShare relies on Tor onion services, connections between the Tor "
"Browser and OnionShare are all end-to-end encrypted (E2EE). When someone "
@@ -409,7 +421,7 @@ msgid ""
"of the chat room using WebSockets, through their E2EE onion connections."
msgstr ""
-#: ../../source/features.rst:176
+#: ../../source/features.rst:181
msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on "
"the Tor onion service's encryption instead."
diff --git a/docs/source/locale/bn/LC_MESSAGES/help.po b/docs/source/locale/bn/LC_MESSAGES/help.po
index 9b4f5565..3d7e402f 100644
--- a/docs/source/locale/bn/LC_MESSAGES/help.po
+++ b/docs/source/locale/bn/LC_MESSAGES/help.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
diff --git a/docs/source/locale/bn/LC_MESSAGES/index.po b/docs/source/locale/bn/LC_MESSAGES/index.po
index 36bd4690..034421cd 100644
--- a/docs/source/locale/bn/LC_MESSAGES/index.po
+++ b/docs/source/locale/bn/LC_MESSAGES/index.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2021-04-24 23:31+0000\n"
"Last-Translator: Oymate \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/bn/LC_MESSAGES/install.po b/docs/source/locale/bn/LC_MESSAGES/install.po
index a3e8f124..e0d3c9a8 100644
--- a/docs/source/locale/bn/LC_MESSAGES/install.po
+++ b/docs/source/locale/bn/LC_MESSAGES/install.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-08-18 19:50+0000\n"
"Last-Translator: Sabbir Ahmed Shameem \n"
"Language-Team: none\n"
@@ -42,7 +42,7 @@ msgstr ""
msgid "You can download OnionShare for Mobile from the follow links"
msgstr ""
-#: ../../source/install.rst:18
+#: ../../source/install.rst:16
msgid "Android"
msgstr ""
@@ -56,7 +56,7 @@ msgstr ""
msgid "F-Droid: https://github.com/onionshare/onionshare-android-nightly"
msgstr ""
-#: ../../source/install.rst:24
+#: ../../source/install.rst:20
msgid "iOS"
msgstr ""
@@ -314,11 +314,11 @@ msgstr ""
#: ../../source/install.rst:117
msgid ""
"Packages are signed by the core developer who is responsible for the "
-"particular release. Following are the informations of the core developers of "
-"OnionShare:"
+"particular release. Here is the GPG key information for each of the core "
+"developers of OnionShare:"
msgstr ""
-#: ../../source/install.rst:122
+#: ../../source/install.rst:120
msgid "Micah Lee:"
msgstr ""
@@ -334,7 +334,7 @@ msgid ""
"fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
msgstr ""
-#: ../../source/install.rst:126
+#: ../../source/install.rst:124
msgid "Saptak Sengupta:"
msgstr ""
@@ -351,17 +351,33 @@ msgid ""
msgstr ""
#: ../../source/install.rst:128
+msgid "Miguel Jacq:"
+msgstr ""
+
+#: ../../source/install.rst:129
+msgid ""
+"PGP public key fingerprint ``00AE817C24A10C2540461A9C1D7CDE0234DB458D``."
+msgstr ""
+
+#: ../../source/install.rst:130
+msgid ""
+"You can download Miguel's key `from the keys.openpgp.org keyserver `_."
+msgstr ""
+
+#: ../../source/install.rst:132
msgid ""
"You must have GnuPG installed to verify signatures. For macOS you probably "
"want `GPGTools `_, and for Windows you probably want "
"`Gpg4win `_."
msgstr ""
-#: ../../source/install.rst:131
+#: ../../source/install.rst:135
msgid "Signatures"
msgstr ""
-#: ../../source/install.rst:133
+#: ../../source/install.rst:137
msgid ""
"You can find the signatures (as ``.asc`` files), as well as Windows, macOS, "
"Flatpak, Snap, and source packages, at https://onionshare.org/dist/ in the "
@@ -369,52 +385,52 @@ msgid ""
"`GitHub Releases page `_."
msgstr ""
-#: ../../source/install.rst:137
+#: ../../source/install.rst:141
msgid "Verifying"
msgstr ""
-#: ../../source/install.rst:139
+#: ../../source/install.rst:143
msgid ""
"Once you have imported the core developers public keys into your GnuPG "
"keychain, downloaded the binary and ``.asc`` signature, you can verify the "
"binary in a terminal like this:"
msgstr ""
-#: ../../source/install.rst:141
+#: ../../source/install.rst:145
msgid "For Windows::"
msgstr ""
-#: ../../source/install.rst:145
+#: ../../source/install.rst:149
msgid "For macOS::"
msgstr ""
-#: ../../source/install.rst:149
+#: ../../source/install.rst:153
msgid "For Linux::"
msgstr ""
-#: ../../source/install.rst:155
+#: ../../source/install.rst:159
msgid "and for the source file::"
msgstr ""
-#: ../../source/install.rst:159
+#: ../../source/install.rst:163
msgid "The expected output looks like this::"
msgstr ""
-#: ../../source/install.rst:169
+#: ../../source/install.rst:173
msgid ""
"If you don't see ``Good signature from``, there might be a problem with the "
"integrity of the file (malicious or otherwise), and you should not install "
"the package."
msgstr ""
-#: ../../source/install.rst:171
+#: ../../source/install.rst:175
msgid ""
"The ``WARNING:`` shown above, is not a problem with the package, it only "
"means you haven't defined a level of \"trust\" of Micah's (the core "
"developer) PGP key."
msgstr ""
-#: ../../source/install.rst:173
+#: ../../source/install.rst:177
msgid ""
"If you want to learn more about verifying PGP signatures, the guides for "
"`Qubes OS `_ and "
diff --git a/docs/source/locale/bn/LC_MESSAGES/security.po b/docs/source/locale/bn/LC_MESSAGES/security.po
index 688bdca3..1be2c50f 100644
--- a/docs/source/locale/bn/LC_MESSAGES/security.po
+++ b/docs/source/locale/bn/LC_MESSAGES/security.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-08-20 17:50+0000\n"
"Last-Translator: Sabbir Ahmed Shameem \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/bn/LC_MESSAGES/sphinx.po b/docs/source/locale/bn/LC_MESSAGES/sphinx.po
index c9b3d009..17a72290 100644
--- a/docs/source/locale/bn/LC_MESSAGES/sphinx.po
+++ b/docs/source/locale/bn/LC_MESSAGES/sphinx.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2022-05-27 13:16+0000\n"
"Last-Translator: Oymate \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/bn/LC_MESSAGES/tor.po b/docs/source/locale/bn/LC_MESSAGES/tor.po
index 46385f8b..01c9a7c8 100644
--- a/docs/source/locale/bn/LC_MESSAGES/tor.po
+++ b/docs/source/locale/bn/LC_MESSAGES/tor.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
diff --git a/docs/source/locale/bo/LC_MESSAGES/advanced.po b/docs/source/locale/bo/LC_MESSAGES/advanced.po
index a9002b68..fa364b5b 100644
--- a/docs/source/locale/bo/LC_MESSAGES/advanced.po
+++ b/docs/source/locale/bo/LC_MESSAGES/advanced.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -63,8 +63,8 @@ msgstr ""
#: ../../source/advanced.rst:28
msgid ""
"The Tor Browser will ask you to enter your private key when you load an "
-"OnionShare service. If you want allow the public to use your service, it's "
-"better to disable the private key altogether."
+"OnionShare service. If you want to allow the public to use your service, "
+"it's better to disable the private key altogether."
msgstr ""
#: ../../source/advanced.rst:31
@@ -107,9 +107,9 @@ msgstr ""
#: ../../source/advanced.rst:51
msgid ""
-"Services scheduled to start in the future display a countdown timer when "
-"when the \"Start sharing\" button is clicked. Services scheduled to stop in "
-"the future display a countdown timer when started."
+"Services scheduled to start in the future display a countdown timer when the "
+"\"Start sharing\" button is clicked. Services scheduled to stop in the "
+"future display a countdown timer when started."
msgstr ""
#: ../../source/advanced.rst:54
@@ -137,53 +137,747 @@ msgid ""
"interface."
msgstr ""
-#: ../../source/advanced.rst:72
-msgid ""
-"You can install just the command-line version of OnionShare using ``pip3``::"
+#: ../../source/advanced.rst:73
+msgid "Installing the CLI version"
msgstr ""
-#: ../../source/advanced.rst:76
+#: ../../source/advanced.rst:75
+msgid ""
+"If you have installed the Snap, macOS or Windows package, you already have "
+"the CLI version installed."
+msgstr ""
+
+#: ../../source/advanced.rst:77
+msgid ""
+"Alternatively, you can install just the command-line version of OnionShare "
+"using ``pip3``::"
+msgstr ""
+
+#: ../../source/advanced.rst:81
msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``"
msgstr ""
-#: ../../source/advanced.rst:78
+#: ../../source/advanced.rst:83
msgid "Then run it like this::"
msgstr ""
-#: ../../source/advanced.rst:82
+#: ../../source/advanced.rst:87
msgid ""
"Info about installing it on different operating systems can be found in the "
"`CLI README file `_ in the Git repository."
msgstr ""
-#: ../../source/advanced.rst:84
-msgid ""
-"If you installed OnionShare using the Snap package, you can also just run "
-"``onionshare.cli`` to access the command-line interface version."
+#: ../../source/advanced.rst:90
+msgid "Running the CLI from Snap"
msgstr ""
-#: ../../source/advanced.rst:87
+#: ../../source/advanced.rst:92
+msgid ""
+"If you installed OnionShare using the Snap package, you can run ``onionshare."
+"cli`` to access the command-line interface version."
+msgstr ""
+
+#: ../../source/advanced.rst:95
+msgid "Running the CLI from macOS"
+msgstr ""
+
+#: ../../source/advanced.rst:97
+msgid ""
+"From Terminal, you can run ``/Applications/OnionShare.app/Contents/MacOS/"
+"onionshare-cli --help``"
+msgstr ""
+
+#: ../../source/advanced.rst:100
+msgid "Running the CLI from Windows"
+msgstr ""
+
+#: ../../source/advanced.rst:102
+msgid ""
+"In the Windows installation, the executable ``onionshare-cli.exe`` is "
+"available."
+msgstr ""
+
+#: ../../source/advanced.rst:105
msgid "Usage"
msgstr ""
-#: ../../source/advanced.rst:89
+#: ../../source/advanced.rst:107
msgid ""
"Browse the command-line documentation by running ``onionshare --help``::"
msgstr ""
-#: ../../source/advanced.rst:151
+#: ../../source/advanced.rst:170
+msgid "Running the CLI as a systemd unit file"
+msgstr ""
+
+#: ../../source/advanced.rst:172
+msgid ""
+"It is possible to automatically start OnionShare from the CLI using a "
+"systemd unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:174
+msgid ""
+"You may find this particularly useful if you are operating in 'persistent' "
+"mode, and want to start the same onion service every time your machine "
+"starts."
+msgstr ""
+
+#: ../../source/advanced.rst:176
+msgid "To do this, you need to prepare some OnionShare json config first."
+msgstr ""
+
+#: ../../source/advanced.rst:178
+msgid ""
+"Here is the main OnionShare config. In this example, it's stored in ``/home/"
+"user/.config/onionshare/onionshare.json``. You may need to adjust some of "
+"the settings, but if you already have OnionShare installed, it probably "
+"looks much like this already::"
+msgstr ""
+
+#: ../../source/advanced.rst:207
+msgid ""
+"Notice the 'persistent_tabs' section. We will now create a file at ``/home/"
+"user/.config/onionshare/persistent/my-persistent-onion.json``, that looks "
+"like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:247
+msgid ""
+"**Don't actually use this private key, service_id or client_auth keys! They "
+"are shown only as an example. Never share the private_key with anyone.**"
+msgstr ""
+
+#: ../../source/advanced.rst:249
+msgid ""
+"The easiest way to generate the onion address and private key is to first "
+"create a 'pinned' OnionShare tab in the desktop app and started the share "
+"for the first time. This will then have saved the persistent settings to "
+"your ``.config/onionshare/persistent/`` folder with a random name. You can "
+"unpin that tab once you've generated it the first time. Or, you can leave it "
+"where it is, and use that persistent file in your systemd unit file below."
+msgstr ""
+
+#: ../../source/advanced.rst:251
+msgid ""
+"Now you can create a systemd unit file in ``/etc/systemd/system/onionshare-"
+"cli.service``. Be sure to adjust the User and Group to your own user/group, "
+"as well as changes to any paths to the onionshare-cli binary or the paths to "
+"your JSON configs and shares."
+msgstr ""
+
+#: ../../source/advanced.rst:253
+msgid "The systemd unit file should look like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:268
+msgid ""
+"Note that although ``/home/user/my-shared-file.txt`` was defined in the "
+"``filenames`` section of the ``my-persistent-onion.json`` file, it's still "
+"necessary to specify it as the argument to the onionshare-cli command."
+msgstr ""
+
+#: ../../source/advanced.rst:270
+msgid ""
+"Be sure to run ``sudo systemctl daemon-reload`` after creating the unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:272
+msgid ""
+"Now you can run ``sudo systemctl start onionshare-cli.service``. If you have "
+"``journalctl`` installed, you can run ``sudo journalctl -f -t onionshare-"
+"cli``, and you should see some output of your service starting::"
+msgstr ""
+
+#: ../../source/advanced.rst:282
+msgid ""
+"If you don't want your users to use a Private Key, set ``public`` to be "
+"``true`` in the ``general`` settings of the my-persistent-onion.json file."
+msgstr ""
+
+#: ../../source/advanced.rst:286
msgid "Keyboard Shortcuts"
msgstr ""
-#: ../../source/advanced.rst:153
+#: ../../source/advanced.rst:288
msgid ""
"The OnionShare desktop application contains some keyboard shortcuts, for "
"convenience and accessibility::"
msgstr ""
-#: ../../source/advanced.rst:158
+#: ../../source/advanced.rst:293
msgid "And from the main mode chooser screen::"
msgstr ""
+
+#: ../../source/advanced.rst:303
+msgid "Migrating your OnionShare data to another computer"
+msgstr ""
+
+#: ../../source/advanced.rst:305
+msgid ""
+"You may want to migrate your OnionShare data when switching to another "
+"computer. This is especially true if you had a 'persistent' onion address "
+"and you want to preserve it."
+msgstr ""
+
+#: ../../source/advanced.rst:307
+msgid ""
+"OnionShare stores all such data in a specific folder. Copy the relevant "
+"folder for your operating system below, to your new computer:"
+msgstr ""
+
+#: ../../source/advanced.rst:309
+msgid "Linux: ``~/.config/onionshare``"
+msgstr ""
+
+#: ../../source/advanced.rst:310
+msgid "macOS: ``~/Library/Application Support/OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:311
+msgid "Windows: ``%APPDATA%\\OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:315
+msgid "Configuration file parameters"
+msgstr ""
+
+#: ../../source/advanced.rst:317
+msgid ""
+"OnionShare stores its settings in a JSON file. Both the CLI and the Desktop "
+"versions use this configuration file. The CLI also lets you specify a path "
+"to a custom configuration file with ``--config``."
+msgstr ""
+
+#: ../../source/advanced.rst:319
+msgid ""
+"Below are the configuration file parameters and what they mean. If your "
+"configuration file has other parameters not listed here, they may be "
+"obsolete from older OnionShare versions."
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Parameter"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Type"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Explanation"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid "version"
+msgstr ""
+
+#: ../../source/advanced.rst:324 ../../source/advanced.rst:325
+#: ../../source/advanced.rst:326 ../../source/advanced.rst:328
+#: ../../source/advanced.rst:330 ../../source/advanced.rst:331
+#: ../../source/advanced.rst:332 ../../source/advanced.rst:337
+#: ../../source/advanced.rst:338 ../../source/advanced.rst:339
+#: ../../source/advanced.rst:340 ../../source/advanced.rst:343
+#: ../../source/advanced.rst:404 ../../source/advanced.rst:405
+#: ../../source/advanced.rst:406 ../../source/advanced.rst:415
+#: ../../source/advanced.rst:426 ../../source/advanced.rst:430
+#: ../../source/advanced.rst:452 ../../source/advanced.rst:453
+#: ../../source/advanced.rst:465
+msgid "``string``"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid ""
+"The version of OnionShare. You should not ever need to change this value."
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid "connection_type"
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid ""
+"The way in which OnionShare connects to Tor. Valid options are 'bundled', "
+"'automatic' (use Tor Browser's Tor connection), 'control_port' or "
+"'socket_file'. Default: 'bundled'"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid "control_port_address"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid ""
+"The IP address of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid "control_port_port"
+msgstr ""
+
+#: ../../source/advanced.rst:327 ../../source/advanced.rst:329
+#: ../../source/advanced.rst:335
+msgid "``integer``"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid ""
+"The port number of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '9051'"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid "socks_address"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid ""
+"The IP address of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid "socks_port"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid ""
+"The port number of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: ''9050'"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid "socket_file_path"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid ""
+"The path to Tor's socket file, if ``connection_type`` is set to "
+"'socket_file'. Default: '/var/run/tor/control'"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid "auth_type"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid ""
+"If access to Tor's control port requires a password, this can be set to "
+"'password', otherwise 'no_auth'. Default: 'no_auth'"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid "auth_password"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid ""
+"If access to Tor's control port requires a password, and ``auth_type`` is "
+"set to 'password', specify the password here. Default: ''"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid "auto_connect"
+msgstr ""
+
+#: ../../source/advanced.rst:333 ../../source/advanced.rst:334
+#: ../../source/advanced.rst:336 ../../source/advanced.rst:344
+#: ../../source/advanced.rst:416 ../../source/advanced.rst:417
+#: ../../source/advanced.rst:427 ../../source/advanced.rst:428
+#: ../../source/advanced.rst:429 ../../source/advanced.rst:441
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:454
+#: ../../source/advanced.rst:455 ../../source/advanced.rst:464
+#: ../../source/advanced.rst:466
+msgid "``boolean``"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid ""
+"Whether OnionShare should automatically connect to Tor when it starts. "
+"Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid "use_autoupdate"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid ""
+"Whether OnionShare should automatically check for updates (over Tor). This "
+"setting is only valid for MacOS or Windows installations. Default: True."
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "autoupdate_timestamp"
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "The last time OnionShare checked for updates. Default: None"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "bridges_enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "Whether to connect to Tor using bridges. Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid "bridges_type"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid ""
+"When ``bridges_enabled`` is True, where to load bridges from. Options are "
+"\"built-in\" (bridges shipped with OnionShare and which may get updated from "
+"Tor), \"moat\" (request bridges from Tor's Moat API), or \"custom\" (user-"
+"supplied bridges). Default: \"built-in\""
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid "bridges_builtin_pt"
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", this specifies which type of "
+"bridge protocol to use. Options are \"obfs4\", \"meek-azure\" or "
+"\"snowflake\". Default: \"obfs4\""
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid "bridges_moat"
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid ""
+"When ``bridges_type`` is set to \"moat\", the bridges returned from Tor's "
+"Moat API are stored here. Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid "bridges_custom"
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid ""
+"When ``bridges_type`` is set to \"custom\", the bridges specified by the "
+"user are stored here. Separate each bridge line in the string with '\\n'. "
+"Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "bridges_builtin"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "``dict``"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", OnionShare obtains the latest "
+"built-in bridges recommended by Tor and stores them here. Default: {}"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid "persistent_tabs"
+msgstr ""
+
+#: ../../source/advanced.rst:342 ../../source/advanced.rst:442
+#: ../../source/advanced.rst:467
+msgid "``list``"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid ""
+"If the user has defined any tabs as 'saved' (meaning that they are "
+"persistent each time OnionShare starts, and their onion address doesn't "
+"change), these are given a random identifier which gets listed here. The "
+"persistent onion is stored as a JSON file with the same name as this "
+"identifier, in a subfolder of the OnionShare configuration folder called "
+"'persistent'. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid "locale"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid ""
+"The locale used in OnionShare. Default: None (which is the same as 'en'). "
+"For valid locale codes, see 'available_locales' in https://github.com/"
+"onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid "theme"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid ""
+"The theme for the OnionShare desktop app. Valid options are 0 (automatically "
+"detect the user's computer's light or dark theme), 1 (light) or 2 (dark)."
+msgstr ""
+
+#: ../../source/advanced.rst:349
+msgid "Configuration file parameters for persistent onions"
+msgstr ""
+
+#: ../../source/advanced.rst:351
+msgid ""
+"As described above, each 'persistent' onion has parameters of its own which "
+"are stored in its own JSON file. The path to this file can be specified for "
+"the CLI tool with ``--persistent``."
+msgstr ""
+
+#: ../../source/advanced.rst:353
+msgid "Here is an example persistent JSON configuration::"
+msgstr ""
+
+#: ../../source/advanced.rst:396
+msgid ""
+"Below are the configuration file parameters for a persistent onion and what "
+"they mean, for each section in the JSON"
+msgstr ""
+
+#: ../../source/advanced.rst:399
+msgid "onion"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "private_key"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "Base64-encoded private key of the onion service"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid "client_auth_priv_key"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid ""
+"The private key when using Client Authentication. Send this to the user."
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid "client_auth_pub_key"
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid ""
+"The public key when using Client Authentication. Used on OnionShare's side."
+msgstr ""
+
+#: ../../source/advanced.rst:410
+msgid "persistent"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid "mode"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid ""
+"The mode used by this persistent onion. Options are \"share\", \"receive\", "
+"\"website\" or \"chat\"."
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid "enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid ""
+"Whether persistence is enabled for this onion. When the persistent option is "
+"unchecked in the desktop, this entire JSON file is deleted. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid "autostart_on_launch"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid ""
+"Whether to automatically start this persistent onion when OnionShare starts "
+"and once Tor is connected. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:421
+msgid "general"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid "title"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid ""
+"An optional custom title for displaying on the onion service. Default: null "
+"(\"OnionShare\" will be shown instead)"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid "public"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid ""
+"Whether the onion service can be accessed with or without a Private Key "
+"(Client Authentication). If true, no Private Key is required."
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid "autostart_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid ""
+"Whether the onion service is configured to start at a specific time. The "
+"time can be set in the desktop app or specified in seconds with ``--auto-"
+"start-timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid "autostop_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid ""
+"Whether the onion service is configured to stop at a specific time. The time "
+"can be set in the desktop app or specified in seconds with ``--auto-stop-"
+"timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid "service_id"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid ""
+"The 32-character onion service URL, without the scheme and without the '."
+"onion' suffix."
+msgstr ""
+
+#: ../../source/advanced.rst:433
+msgid ""
+"The below are settings specific to the 'mode' specified in the "
+"``persistent`` section above."
+msgstr ""
+
+#: ../../source/advanced.rst:436
+msgid "share"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid "autostop_sharing"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid ""
+"Whether to automatically stop the share once files are downloaded the first "
+"time. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "A list of files to share. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid "log_filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid ""
+"Whether to log URL requests to stdout when using the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:447
+msgid "receive"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid "data_dir"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid ""
+"The path where received files or text messages will be stored. Default: the "
+"'OnionShare' folder of the user's home directory."
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid "webhook_url"
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid ""
+"A webhook URL that OnionShare will POST to when it receives files or text "
+"messages. Default: null"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "disable_text"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "Whether to disable receiving text messages. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "disable_files"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "Whether to disable receiving files. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:459
+msgid "website"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid "disable_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid ""
+"If set to ``true``, OnionShare won't set its default Content Security Policy "
+"header for the website. Default: ``false``"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "custom_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "A custom Content Security Policy header to send instead of the default."
+msgstr ""
+
+#: ../../source/advanced.rst:471
+msgid "chat"
+msgstr ""
+
+#: ../../source/advanced.rst:473
+msgid "There are currently no configurable settings for the Chat mode."
+msgstr ""
diff --git a/docs/source/locale/bo/LC_MESSAGES/develop.po b/docs/source/locale/bo/LC_MESSAGES/develop.po
index 9d577268..8ed01626 100644
--- a/docs/source/locale/bo/LC_MESSAGES/develop.po
+++ b/docs/source/locale/bo/LC_MESSAGES/develop.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
diff --git a/docs/source/locale/bo/LC_MESSAGES/features.po b/docs/source/locale/bo/LC_MESSAGES/features.po
index 21306507..d7609646 100644
--- a/docs/source/locale/bo/LC_MESSAGES/features.po
+++ b/docs/source/locale/bo/LC_MESSAGES/features.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -83,7 +83,7 @@ msgid ""
"share, and click \"Start sharing\"."
msgstr ""
-#: ../../source/features.rst:35 ../../source/features.rst:112
+#: ../../source/features.rst:35 ../../source/features.rst:117
msgid ""
"After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing."
@@ -245,17 +245,29 @@ msgid ""
msgstr ""
#: ../../source/features.rst:102
-msgid "Host a Website"
+msgid "Other caveats to be aware of in Receive Mode"
msgstr ""
#: ../../source/features.rst:104
msgid ""
+"There are reports that OnionBrowser on iOS devices are unable to upload "
+"files to an OnionShare in Receive Mode, when operating in 'Silver' security "
+"mode. Try Bronze or Gold to see if you are able to upload a message or a "
+"file."
+msgstr ""
+
+#: ../../source/features.rst:107
+msgid "Host a Website"
+msgstr ""
+
+#: ../../source/features.rst:109
+msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag the "
"files and folders that make up the static content there, and click \"Start "
"sharing\" when you are ready."
msgstr ""
-#: ../../source/features.rst:108
+#: ../../source/features.rst:113
msgid ""
"If you add an ``index.html`` file, it will render when someone loads your "
"website. You should also include any other HTML files, CSS files, JavaScript "
@@ -264,17 +276,17 @@ msgid ""
"or use databases. So you can't for example use WordPress.)"
msgstr ""
-#: ../../source/features.rst:110
+#: ../../source/features.rst:115
msgid ""
"If you don't have an ``index.html`` file, it will show a directory listing "
"instead, and people loading it can look through the files and download them."
msgstr ""
-#: ../../source/features.rst:117
+#: ../../source/features.rst:122
msgid "Content Security Policy"
msgstr ""
-#: ../../source/features.rst:119
+#: ../../source/features.rst:124
msgid ""
"By default OnionShare helps secure your website by setting a strict `Content "
"Security Policy `_ "
@@ -282,28 +294,28 @@ msgid ""
"web page."
msgstr ""
-#: ../../source/features.rst:121
+#: ../../source/features.rst:126
msgid ""
"If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, you have two options:"
msgstr ""
-#: ../../source/features.rst:123
+#: ../../source/features.rst:128
msgid ""
"You can disable sending a Content Security Policy header by checking the "
"\"Don't send Content Security Policy header (allows your website to use "
"third-party resources)\" box before starting the service."
msgstr ""
-#: ../../source/features.rst:124
+#: ../../source/features.rst:129
msgid "You can send a custom Content Security Policy header."
msgstr ""
-#: ../../source/features.rst:127
+#: ../../source/features.rst:132
msgid "Tips for running a website service"
msgstr ""
-#: ../../source/features.rst:129
+#: ../../source/features.rst:134
msgid ""
"If you want to host a long-term website using OnionShare (meaning not just "
"to quickly show someone something), it's recommended you do it on a "
@@ -313,23 +325,23 @@ msgid ""
"close OnionShare and re-open it later."
msgstr ""
-#: ../../source/features.rst:132
+#: ../../source/features.rst:137
msgid ""
"If your website is intended for the public, you should run it as a public "
"service (see :ref:`turn_off_private_key`)."
msgstr ""
-#: ../../source/features.rst:135
+#: ../../source/features.rst:140
msgid "Chat Anonymously"
msgstr ""
-#: ../../source/features.rst:137
+#: ../../source/features.rst:142
msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't "
"log anything. Just open a chat tab and click \"Start chat server\"."
msgstr ""
-#: ../../source/features.rst:141
+#: ../../source/features.rst:146
msgid ""
"After you start the server, copy the OnionShare address and private key and "
"send them to the people you want in the anonymous chat room. If it's "
@@ -337,7 +349,7 @@ msgid ""
"send out the OnionShare address and private key."
msgstr ""
-#: ../../source/features.rst:146
+#: ../../source/features.rst:151
msgid ""
"People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to "
@@ -345,7 +357,7 @@ msgid ""
"or \"Safer\", instead of \"Safest\"."
msgstr ""
-#: ../../source/features.rst:149
+#: ../../source/features.rst:154
msgid ""
"When someone joins the chat room they get assigned a random name. They can "
"change their name by typing a new name in the box in the left panel and "
@@ -353,30 +365,30 @@ msgid ""
"displayed at all, even if others were already chatting in the room."
msgstr ""
-#: ../../source/features.rst:155
+#: ../../source/features.rst:160
msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change their "
"name to anything, and there is no way to confirm anyone's identity."
msgstr ""
-#: ../../source/features.rst:158
+#: ../../source/features.rst:163
msgid ""
"However, if you create an OnionShare chat room and securely send the address "
"only to a small group of trusted friends using encrypted messages, you can "
"be reasonably confident the people joining the chat room are your friends."
msgstr ""
-#: ../../source/features.rst:161
+#: ../../source/features.rst:166
msgid "How is this useful?"
msgstr ""
-#: ../../source/features.rst:163
+#: ../../source/features.rst:168
msgid ""
"If you need to already be using an encrypted messaging app, what's the point "
"of an OnionShare chat room to begin with? It leaves less traces."
msgstr ""
-#: ../../source/features.rst:165
+#: ../../source/features.rst:170
msgid ""
"If you for example send a message to a Signal group, a copy of your message "
"ends up on each device (the smartphones, and computers if they set up Signal "
@@ -387,7 +399,7 @@ msgid ""
"any messages anywhere, so the problem is reduced to a minimum."
msgstr ""
-#: ../../source/features.rst:168
+#: ../../source/features.rst:173
msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any "
@@ -396,11 +408,11 @@ msgid ""
"journalist to join the chat room, all without compromosing their anonymity."
msgstr ""
-#: ../../source/features.rst:172
+#: ../../source/features.rst:177
msgid "How does the encryption work?"
msgstr ""
-#: ../../source/features.rst:174
+#: ../../source/features.rst:179
msgid ""
"Because OnionShare relies on Tor onion services, connections between the Tor "
"Browser and OnionShare are all end-to-end encrypted (E2EE). When someone "
@@ -409,7 +421,7 @@ msgid ""
"of the chat room using WebSockets, through their E2EE onion connections."
msgstr ""
-#: ../../source/features.rst:176
+#: ../../source/features.rst:181
msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on "
"the Tor onion service's encryption instead."
diff --git a/docs/source/locale/bo/LC_MESSAGES/help.po b/docs/source/locale/bo/LC_MESSAGES/help.po
index 44e8ae1e..19bc5ad5 100644
--- a/docs/source/locale/bo/LC_MESSAGES/help.po
+++ b/docs/source/locale/bo/LC_MESSAGES/help.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
diff --git a/docs/source/locale/bo/LC_MESSAGES/index.po b/docs/source/locale/bo/LC_MESSAGES/index.po
index 7fdf22a5..ccb65a94 100644
--- a/docs/source/locale/bo/LC_MESSAGES/index.po
+++ b/docs/source/locale/bo/LC_MESSAGES/index.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
diff --git a/docs/source/locale/bo/LC_MESSAGES/install.po b/docs/source/locale/bo/LC_MESSAGES/install.po
index 7467427a..ae92909e 100644
--- a/docs/source/locale/bo/LC_MESSAGES/install.po
+++ b/docs/source/locale/bo/LC_MESSAGES/install.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -38,7 +38,7 @@ msgstr ""
msgid "You can download OnionShare for Mobile from the follow links"
msgstr ""
-#: ../../source/install.rst:18
+#: ../../source/install.rst:16
msgid "Android"
msgstr ""
@@ -52,7 +52,7 @@ msgstr ""
msgid "F-Droid: https://github.com/onionshare/onionshare-android-nightly"
msgstr ""
-#: ../../source/install.rst:24
+#: ../../source/install.rst:20
msgid "iOS"
msgstr ""
@@ -303,11 +303,11 @@ msgstr ""
#: ../../source/install.rst:117
msgid ""
"Packages are signed by the core developer who is responsible for the "
-"particular release. Following are the informations of the core developers of "
-"OnionShare:"
+"particular release. Here is the GPG key information for each of the core "
+"developers of OnionShare:"
msgstr ""
-#: ../../source/install.rst:122
+#: ../../source/install.rst:120
msgid "Micah Lee:"
msgstr ""
@@ -323,7 +323,7 @@ msgid ""
"fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
msgstr ""
-#: ../../source/install.rst:126
+#: ../../source/install.rst:124
msgid "Saptak Sengupta:"
msgstr ""
@@ -340,17 +340,33 @@ msgid ""
msgstr ""
#: ../../source/install.rst:128
+msgid "Miguel Jacq:"
+msgstr ""
+
+#: ../../source/install.rst:129
+msgid ""
+"PGP public key fingerprint ``00AE817C24A10C2540461A9C1D7CDE0234DB458D``."
+msgstr ""
+
+#: ../../source/install.rst:130
+msgid ""
+"You can download Miguel's key `from the keys.openpgp.org keyserver `_."
+msgstr ""
+
+#: ../../source/install.rst:132
msgid ""
"You must have GnuPG installed to verify signatures. For macOS you probably "
"want `GPGTools `_, and for Windows you probably want "
"`Gpg4win `_."
msgstr ""
-#: ../../source/install.rst:131
+#: ../../source/install.rst:135
msgid "Signatures"
msgstr ""
-#: ../../source/install.rst:133
+#: ../../source/install.rst:137
msgid ""
"You can find the signatures (as ``.asc`` files), as well as Windows, macOS, "
"Flatpak, Snap, and source packages, at https://onionshare.org/dist/ in the "
@@ -358,52 +374,52 @@ msgid ""
"`GitHub Releases page `_."
msgstr ""
-#: ../../source/install.rst:137
+#: ../../source/install.rst:141
msgid "Verifying"
msgstr ""
-#: ../../source/install.rst:139
+#: ../../source/install.rst:143
msgid ""
"Once you have imported the core developers public keys into your GnuPG "
"keychain, downloaded the binary and ``.asc`` signature, you can verify the "
"binary in a terminal like this:"
msgstr ""
-#: ../../source/install.rst:141
+#: ../../source/install.rst:145
msgid "For Windows::"
msgstr ""
-#: ../../source/install.rst:145
+#: ../../source/install.rst:149
msgid "For macOS::"
msgstr ""
-#: ../../source/install.rst:149
+#: ../../source/install.rst:153
msgid "For Linux::"
msgstr ""
-#: ../../source/install.rst:155
+#: ../../source/install.rst:159
msgid "and for the source file::"
msgstr ""
-#: ../../source/install.rst:159
+#: ../../source/install.rst:163
msgid "The expected output looks like this::"
msgstr ""
-#: ../../source/install.rst:169
+#: ../../source/install.rst:173
msgid ""
"If you don't see ``Good signature from``, there might be a problem with the "
"integrity of the file (malicious or otherwise), and you should not install "
"the package."
msgstr ""
-#: ../../source/install.rst:171
+#: ../../source/install.rst:175
msgid ""
"The ``WARNING:`` shown above, is not a problem with the package, it only "
"means you haven't defined a level of \"trust\" of Micah's (the core "
"developer) PGP key."
msgstr ""
-#: ../../source/install.rst:173
+#: ../../source/install.rst:177
msgid ""
"If you want to learn more about verifying PGP signatures, the guides for "
"`Qubes OS `_ and "
diff --git a/docs/source/locale/bo/LC_MESSAGES/security.po b/docs/source/locale/bo/LC_MESSAGES/security.po
index 1415a73c..ec3a94d5 100644
--- a/docs/source/locale/bo/LC_MESSAGES/security.po
+++ b/docs/source/locale/bo/LC_MESSAGES/security.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
diff --git a/docs/source/locale/bo/LC_MESSAGES/sphinx.po b/docs/source/locale/bo/LC_MESSAGES/sphinx.po
index 261b6280..f2e1b414 100644
--- a/docs/source/locale/bo/LC_MESSAGES/sphinx.po
+++ b/docs/source/locale/bo/LC_MESSAGES/sphinx.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
diff --git a/docs/source/locale/bo/LC_MESSAGES/tor.po b/docs/source/locale/bo/LC_MESSAGES/tor.po
index 74fb8ef2..f7401254 100644
--- a/docs/source/locale/bo/LC_MESSAGES/tor.po
+++ b/docs/source/locale/bo/LC_MESSAGES/tor.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.6.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
diff --git a/docs/source/locale/ca/LC_MESSAGES/advanced.po b/docs/source/locale/ca/LC_MESSAGES/advanced.po
index 4257a873..d9eb005f 100644
--- a/docs/source/locale/ca/LC_MESSAGES/advanced.po
+++ b/docs/source/locale/ca/LC_MESSAGES/advanced.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2020-11-25 18:28+0000\n"
"Last-Translator: fadelkon \n"
"Language-Team: LANGUAGE \n"
@@ -66,8 +66,8 @@ msgstr ""
#: ../../source/advanced.rst:28
msgid ""
"The Tor Browser will ask you to enter your private key when you load an "
-"OnionShare service. If you want allow the public to use your service, it's "
-"better to disable the private key altogether."
+"OnionShare service. If you want to allow the public to use your service, "
+"it's better to disable the private key altogether."
msgstr ""
#: ../../source/advanced.rst:31
@@ -110,9 +110,9 @@ msgstr ""
#: ../../source/advanced.rst:51
msgid ""
-"Services scheduled to start in the future display a countdown timer when "
-"when the \"Start sharing\" button is clicked. Services scheduled to stop in "
-"the future display a countdown timer when started."
+"Services scheduled to start in the future display a countdown timer when the "
+"\"Start sharing\" button is clicked. Services scheduled to stop in the "
+"future display a countdown timer when started."
msgstr ""
#: ../../source/advanced.rst:54
@@ -140,53 +140,747 @@ msgid ""
"interface."
msgstr ""
-#: ../../source/advanced.rst:72
-msgid ""
-"You can install just the command-line version of OnionShare using ``pip3``::"
+#: ../../source/advanced.rst:73
+msgid "Installing the CLI version"
msgstr ""
-#: ../../source/advanced.rst:76
+#: ../../source/advanced.rst:75
+msgid ""
+"If you have installed the Snap, macOS or Windows package, you already have "
+"the CLI version installed."
+msgstr ""
+
+#: ../../source/advanced.rst:77
+msgid ""
+"Alternatively, you can install just the command-line version of OnionShare "
+"using ``pip3``::"
+msgstr ""
+
+#: ../../source/advanced.rst:81
msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``"
msgstr ""
-#: ../../source/advanced.rst:78
+#: ../../source/advanced.rst:83
msgid "Then run it like this::"
msgstr ""
-#: ../../source/advanced.rst:82
+#: ../../source/advanced.rst:87
msgid ""
"Info about installing it on different operating systems can be found in the "
"`CLI README file `_ in the Git repository."
msgstr ""
-#: ../../source/advanced.rst:84
-msgid ""
-"If you installed OnionShare using the Snap package, you can also just run "
-"``onionshare.cli`` to access the command-line interface version."
+#: ../../source/advanced.rst:90
+msgid "Running the CLI from Snap"
msgstr ""
-#: ../../source/advanced.rst:87
+#: ../../source/advanced.rst:92
+msgid ""
+"If you installed OnionShare using the Snap package, you can run ``onionshare."
+"cli`` to access the command-line interface version."
+msgstr ""
+
+#: ../../source/advanced.rst:95
+msgid "Running the CLI from macOS"
+msgstr ""
+
+#: ../../source/advanced.rst:97
+msgid ""
+"From Terminal, you can run ``/Applications/OnionShare.app/Contents/MacOS/"
+"onionshare-cli --help``"
+msgstr ""
+
+#: ../../source/advanced.rst:100
+msgid "Running the CLI from Windows"
+msgstr ""
+
+#: ../../source/advanced.rst:102
+msgid ""
+"In the Windows installation, the executable ``onionshare-cli.exe`` is "
+"available."
+msgstr ""
+
+#: ../../source/advanced.rst:105
msgid "Usage"
msgstr ""
-#: ../../source/advanced.rst:89
+#: ../../source/advanced.rst:107
msgid ""
"Browse the command-line documentation by running ``onionshare --help``::"
msgstr ""
-#: ../../source/advanced.rst:151
+#: ../../source/advanced.rst:170
+msgid "Running the CLI as a systemd unit file"
+msgstr ""
+
+#: ../../source/advanced.rst:172
+msgid ""
+"It is possible to automatically start OnionShare from the CLI using a "
+"systemd unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:174
+msgid ""
+"You may find this particularly useful if you are operating in 'persistent' "
+"mode, and want to start the same onion service every time your machine "
+"starts."
+msgstr ""
+
+#: ../../source/advanced.rst:176
+msgid "To do this, you need to prepare some OnionShare json config first."
+msgstr ""
+
+#: ../../source/advanced.rst:178
+msgid ""
+"Here is the main OnionShare config. In this example, it's stored in ``/home/"
+"user/.config/onionshare/onionshare.json``. You may need to adjust some of "
+"the settings, but if you already have OnionShare installed, it probably "
+"looks much like this already::"
+msgstr ""
+
+#: ../../source/advanced.rst:207
+msgid ""
+"Notice the 'persistent_tabs' section. We will now create a file at ``/home/"
+"user/.config/onionshare/persistent/my-persistent-onion.json``, that looks "
+"like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:247
+msgid ""
+"**Don't actually use this private key, service_id or client_auth keys! They "
+"are shown only as an example. Never share the private_key with anyone.**"
+msgstr ""
+
+#: ../../source/advanced.rst:249
+msgid ""
+"The easiest way to generate the onion address and private key is to first "
+"create a 'pinned' OnionShare tab in the desktop app and started the share "
+"for the first time. This will then have saved the persistent settings to "
+"your ``.config/onionshare/persistent/`` folder with a random name. You can "
+"unpin that tab once you've generated it the first time. Or, you can leave it "
+"where it is, and use that persistent file in your systemd unit file below."
+msgstr ""
+
+#: ../../source/advanced.rst:251
+msgid ""
+"Now you can create a systemd unit file in ``/etc/systemd/system/onionshare-"
+"cli.service``. Be sure to adjust the User and Group to your own user/group, "
+"as well as changes to any paths to the onionshare-cli binary or the paths to "
+"your JSON configs and shares."
+msgstr ""
+
+#: ../../source/advanced.rst:253
+msgid "The systemd unit file should look like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:268
+msgid ""
+"Note that although ``/home/user/my-shared-file.txt`` was defined in the "
+"``filenames`` section of the ``my-persistent-onion.json`` file, it's still "
+"necessary to specify it as the argument to the onionshare-cli command."
+msgstr ""
+
+#: ../../source/advanced.rst:270
+msgid ""
+"Be sure to run ``sudo systemctl daemon-reload`` after creating the unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:272
+msgid ""
+"Now you can run ``sudo systemctl start onionshare-cli.service``. If you have "
+"``journalctl`` installed, you can run ``sudo journalctl -f -t onionshare-"
+"cli``, and you should see some output of your service starting::"
+msgstr ""
+
+#: ../../source/advanced.rst:282
+msgid ""
+"If you don't want your users to use a Private Key, set ``public`` to be "
+"``true`` in the ``general`` settings of the my-persistent-onion.json file."
+msgstr ""
+
+#: ../../source/advanced.rst:286
msgid "Keyboard Shortcuts"
msgstr ""
-#: ../../source/advanced.rst:153
+#: ../../source/advanced.rst:288
msgid ""
"The OnionShare desktop application contains some keyboard shortcuts, for "
"convenience and accessibility::"
msgstr ""
-#: ../../source/advanced.rst:158
+#: ../../source/advanced.rst:293
msgid "And from the main mode chooser screen::"
msgstr ""
+
+#: ../../source/advanced.rst:303
+msgid "Migrating your OnionShare data to another computer"
+msgstr ""
+
+#: ../../source/advanced.rst:305
+msgid ""
+"You may want to migrate your OnionShare data when switching to another "
+"computer. This is especially true if you had a 'persistent' onion address "
+"and you want to preserve it."
+msgstr ""
+
+#: ../../source/advanced.rst:307
+msgid ""
+"OnionShare stores all such data in a specific folder. Copy the relevant "
+"folder for your operating system below, to your new computer:"
+msgstr ""
+
+#: ../../source/advanced.rst:309
+msgid "Linux: ``~/.config/onionshare``"
+msgstr ""
+
+#: ../../source/advanced.rst:310
+msgid "macOS: ``~/Library/Application Support/OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:311
+msgid "Windows: ``%APPDATA%\\OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:315
+msgid "Configuration file parameters"
+msgstr ""
+
+#: ../../source/advanced.rst:317
+msgid ""
+"OnionShare stores its settings in a JSON file. Both the CLI and the Desktop "
+"versions use this configuration file. The CLI also lets you specify a path "
+"to a custom configuration file with ``--config``."
+msgstr ""
+
+#: ../../source/advanced.rst:319
+msgid ""
+"Below are the configuration file parameters and what they mean. If your "
+"configuration file has other parameters not listed here, they may be "
+"obsolete from older OnionShare versions."
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Parameter"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Type"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Explanation"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid "version"
+msgstr ""
+
+#: ../../source/advanced.rst:324 ../../source/advanced.rst:325
+#: ../../source/advanced.rst:326 ../../source/advanced.rst:328
+#: ../../source/advanced.rst:330 ../../source/advanced.rst:331
+#: ../../source/advanced.rst:332 ../../source/advanced.rst:337
+#: ../../source/advanced.rst:338 ../../source/advanced.rst:339
+#: ../../source/advanced.rst:340 ../../source/advanced.rst:343
+#: ../../source/advanced.rst:404 ../../source/advanced.rst:405
+#: ../../source/advanced.rst:406 ../../source/advanced.rst:415
+#: ../../source/advanced.rst:426 ../../source/advanced.rst:430
+#: ../../source/advanced.rst:452 ../../source/advanced.rst:453
+#: ../../source/advanced.rst:465
+msgid "``string``"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid ""
+"The version of OnionShare. You should not ever need to change this value."
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid "connection_type"
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid ""
+"The way in which OnionShare connects to Tor. Valid options are 'bundled', "
+"'automatic' (use Tor Browser's Tor connection), 'control_port' or "
+"'socket_file'. Default: 'bundled'"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid "control_port_address"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid ""
+"The IP address of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid "control_port_port"
+msgstr ""
+
+#: ../../source/advanced.rst:327 ../../source/advanced.rst:329
+#: ../../source/advanced.rst:335
+msgid "``integer``"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid ""
+"The port number of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '9051'"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid "socks_address"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid ""
+"The IP address of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid "socks_port"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid ""
+"The port number of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: ''9050'"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid "socket_file_path"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid ""
+"The path to Tor's socket file, if ``connection_type`` is set to "
+"'socket_file'. Default: '/var/run/tor/control'"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid "auth_type"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid ""
+"If access to Tor's control port requires a password, this can be set to "
+"'password', otherwise 'no_auth'. Default: 'no_auth'"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid "auth_password"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid ""
+"If access to Tor's control port requires a password, and ``auth_type`` is "
+"set to 'password', specify the password here. Default: ''"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid "auto_connect"
+msgstr ""
+
+#: ../../source/advanced.rst:333 ../../source/advanced.rst:334
+#: ../../source/advanced.rst:336 ../../source/advanced.rst:344
+#: ../../source/advanced.rst:416 ../../source/advanced.rst:417
+#: ../../source/advanced.rst:427 ../../source/advanced.rst:428
+#: ../../source/advanced.rst:429 ../../source/advanced.rst:441
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:454
+#: ../../source/advanced.rst:455 ../../source/advanced.rst:464
+#: ../../source/advanced.rst:466
+msgid "``boolean``"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid ""
+"Whether OnionShare should automatically connect to Tor when it starts. "
+"Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid "use_autoupdate"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid ""
+"Whether OnionShare should automatically check for updates (over Tor). This "
+"setting is only valid for MacOS or Windows installations. Default: True."
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "autoupdate_timestamp"
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "The last time OnionShare checked for updates. Default: None"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "bridges_enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "Whether to connect to Tor using bridges. Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid "bridges_type"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid ""
+"When ``bridges_enabled`` is True, where to load bridges from. Options are "
+"\"built-in\" (bridges shipped with OnionShare and which may get updated from "
+"Tor), \"moat\" (request bridges from Tor's Moat API), or \"custom\" (user-"
+"supplied bridges). Default: \"built-in\""
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid "bridges_builtin_pt"
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", this specifies which type of "
+"bridge protocol to use. Options are \"obfs4\", \"meek-azure\" or "
+"\"snowflake\". Default: \"obfs4\""
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid "bridges_moat"
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid ""
+"When ``bridges_type`` is set to \"moat\", the bridges returned from Tor's "
+"Moat API are stored here. Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid "bridges_custom"
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid ""
+"When ``bridges_type`` is set to \"custom\", the bridges specified by the "
+"user are stored here. Separate each bridge line in the string with '\\n'. "
+"Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "bridges_builtin"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "``dict``"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", OnionShare obtains the latest "
+"built-in bridges recommended by Tor and stores them here. Default: {}"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid "persistent_tabs"
+msgstr ""
+
+#: ../../source/advanced.rst:342 ../../source/advanced.rst:442
+#: ../../source/advanced.rst:467
+msgid "``list``"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid ""
+"If the user has defined any tabs as 'saved' (meaning that they are "
+"persistent each time OnionShare starts, and their onion address doesn't "
+"change), these are given a random identifier which gets listed here. The "
+"persistent onion is stored as a JSON file with the same name as this "
+"identifier, in a subfolder of the OnionShare configuration folder called "
+"'persistent'. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid "locale"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid ""
+"The locale used in OnionShare. Default: None (which is the same as 'en'). "
+"For valid locale codes, see 'available_locales' in https://github.com/"
+"onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid "theme"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid ""
+"The theme for the OnionShare desktop app. Valid options are 0 (automatically "
+"detect the user's computer's light or dark theme), 1 (light) or 2 (dark)."
+msgstr ""
+
+#: ../../source/advanced.rst:349
+msgid "Configuration file parameters for persistent onions"
+msgstr ""
+
+#: ../../source/advanced.rst:351
+msgid ""
+"As described above, each 'persistent' onion has parameters of its own which "
+"are stored in its own JSON file. The path to this file can be specified for "
+"the CLI tool with ``--persistent``."
+msgstr ""
+
+#: ../../source/advanced.rst:353
+msgid "Here is an example persistent JSON configuration::"
+msgstr ""
+
+#: ../../source/advanced.rst:396
+msgid ""
+"Below are the configuration file parameters for a persistent onion and what "
+"they mean, for each section in the JSON"
+msgstr ""
+
+#: ../../source/advanced.rst:399
+msgid "onion"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "private_key"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "Base64-encoded private key of the onion service"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid "client_auth_priv_key"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid ""
+"The private key when using Client Authentication. Send this to the user."
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid "client_auth_pub_key"
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid ""
+"The public key when using Client Authentication. Used on OnionShare's side."
+msgstr ""
+
+#: ../../source/advanced.rst:410
+msgid "persistent"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid "mode"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid ""
+"The mode used by this persistent onion. Options are \"share\", \"receive\", "
+"\"website\" or \"chat\"."
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid "enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid ""
+"Whether persistence is enabled for this onion. When the persistent option is "
+"unchecked in the desktop, this entire JSON file is deleted. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid "autostart_on_launch"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid ""
+"Whether to automatically start this persistent onion when OnionShare starts "
+"and once Tor is connected. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:421
+msgid "general"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid "title"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid ""
+"An optional custom title for displaying on the onion service. Default: null "
+"(\"OnionShare\" will be shown instead)"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid "public"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid ""
+"Whether the onion service can be accessed with or without a Private Key "
+"(Client Authentication). If true, no Private Key is required."
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid "autostart_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid ""
+"Whether the onion service is configured to start at a specific time. The "
+"time can be set in the desktop app or specified in seconds with ``--auto-"
+"start-timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid "autostop_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid ""
+"Whether the onion service is configured to stop at a specific time. The time "
+"can be set in the desktop app or specified in seconds with ``--auto-stop-"
+"timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid "service_id"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid ""
+"The 32-character onion service URL, without the scheme and without the '."
+"onion' suffix."
+msgstr ""
+
+#: ../../source/advanced.rst:433
+msgid ""
+"The below are settings specific to the 'mode' specified in the "
+"``persistent`` section above."
+msgstr ""
+
+#: ../../source/advanced.rst:436
+msgid "share"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid "autostop_sharing"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid ""
+"Whether to automatically stop the share once files are downloaded the first "
+"time. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "A list of files to share. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid "log_filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid ""
+"Whether to log URL requests to stdout when using the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:447
+msgid "receive"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid "data_dir"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid ""
+"The path where received files or text messages will be stored. Default: the "
+"'OnionShare' folder of the user's home directory."
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid "webhook_url"
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid ""
+"A webhook URL that OnionShare will POST to when it receives files or text "
+"messages. Default: null"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "disable_text"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "Whether to disable receiving text messages. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "disable_files"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "Whether to disable receiving files. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:459
+msgid "website"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid "disable_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid ""
+"If set to ``true``, OnionShare won't set its default Content Security Policy "
+"header for the website. Default: ``false``"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "custom_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "A custom Content Security Policy header to send instead of the default."
+msgstr ""
+
+#: ../../source/advanced.rst:471
+msgid "chat"
+msgstr ""
+
+#: ../../source/advanced.rst:473
+msgid "There are currently no configurable settings for the Chat mode."
+msgstr ""
diff --git a/docs/source/locale/ca/LC_MESSAGES/develop.po b/docs/source/locale/ca/LC_MESSAGES/develop.po
index a4351d17..12874e36 100644
--- a/docs/source/locale/ca/LC_MESSAGES/develop.po
+++ b/docs/source/locale/ca/LC_MESSAGES/develop.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2020-11-25 18:28+0000\n"
"Last-Translator: fadelkon \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/source/locale/ca/LC_MESSAGES/features.po b/docs/source/locale/ca/LC_MESSAGES/features.po
index bda4e387..5aaf62d8 100644
--- a/docs/source/locale/ca/LC_MESSAGES/features.po
+++ b/docs/source/locale/ca/LC_MESSAGES/features.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2021-11-28 19:16+0000\n"
"Last-Translator: fadelkon \n"
"Language-Team: LANGUAGE \n"
@@ -89,7 +89,7 @@ msgid ""
"share, and click \"Start sharing\"."
msgstr ""
-#: ../../source/features.rst:35 ../../source/features.rst:112
+#: ../../source/features.rst:35 ../../source/features.rst:117
msgid ""
"After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing."
@@ -251,17 +251,29 @@ msgid ""
msgstr ""
#: ../../source/features.rst:102
-msgid "Host a Website"
+msgid "Other caveats to be aware of in Receive Mode"
msgstr ""
#: ../../source/features.rst:104
msgid ""
+"There are reports that OnionBrowser on iOS devices are unable to upload "
+"files to an OnionShare in Receive Mode, when operating in 'Silver' security "
+"mode. Try Bronze or Gold to see if you are able to upload a message or a "
+"file."
+msgstr ""
+
+#: ../../source/features.rst:107
+msgid "Host a Website"
+msgstr ""
+
+#: ../../source/features.rst:109
+msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag the "
"files and folders that make up the static content there, and click \"Start "
"sharing\" when you are ready."
msgstr ""
-#: ../../source/features.rst:108
+#: ../../source/features.rst:113
msgid ""
"If you add an ``index.html`` file, it will render when someone loads your "
"website. You should also include any other HTML files, CSS files, JavaScript "
@@ -270,17 +282,17 @@ msgid ""
"or use databases. So you can't for example use WordPress.)"
msgstr ""
-#: ../../source/features.rst:110
+#: ../../source/features.rst:115
msgid ""
"If you don't have an ``index.html`` file, it will show a directory listing "
"instead, and people loading it can look through the files and download them."
msgstr ""
-#: ../../source/features.rst:117
+#: ../../source/features.rst:122
msgid "Content Security Policy"
msgstr ""
-#: ../../source/features.rst:119
+#: ../../source/features.rst:124
msgid ""
"By default OnionShare helps secure your website by setting a strict `Content "
"Security Policy `_ "
@@ -288,28 +300,28 @@ msgid ""
"web page."
msgstr ""
-#: ../../source/features.rst:121
+#: ../../source/features.rst:126
msgid ""
"If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, you have two options:"
msgstr ""
-#: ../../source/features.rst:123
+#: ../../source/features.rst:128
msgid ""
"You can disable sending a Content Security Policy header by checking the "
"\"Don't send Content Security Policy header (allows your website to use "
"third-party resources)\" box before starting the service."
msgstr ""
-#: ../../source/features.rst:124
+#: ../../source/features.rst:129
msgid "You can send a custom Content Security Policy header."
msgstr ""
-#: ../../source/features.rst:127
+#: ../../source/features.rst:132
msgid "Tips for running a website service"
msgstr ""
-#: ../../source/features.rst:129
+#: ../../source/features.rst:134
msgid ""
"If you want to host a long-term website using OnionShare (meaning not just "
"to quickly show someone something), it's recommended you do it on a "
@@ -319,23 +331,23 @@ msgid ""
"close OnionShare and re-open it later."
msgstr ""
-#: ../../source/features.rst:132
+#: ../../source/features.rst:137
msgid ""
"If your website is intended for the public, you should run it as a public "
"service (see :ref:`turn_off_private_key`)."
msgstr ""
-#: ../../source/features.rst:135
+#: ../../source/features.rst:140
msgid "Chat Anonymously"
msgstr ""
-#: ../../source/features.rst:137
+#: ../../source/features.rst:142
msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't "
"log anything. Just open a chat tab and click \"Start chat server\"."
msgstr ""
-#: ../../source/features.rst:141
+#: ../../source/features.rst:146
msgid ""
"After you start the server, copy the OnionShare address and private key and "
"send them to the people you want in the anonymous chat room. If it's "
@@ -343,7 +355,7 @@ msgid ""
"send out the OnionShare address and private key."
msgstr ""
-#: ../../source/features.rst:146
+#: ../../source/features.rst:151
msgid ""
"People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to "
@@ -351,7 +363,7 @@ msgid ""
"or \"Safer\", instead of \"Safest\"."
msgstr ""
-#: ../../source/features.rst:149
+#: ../../source/features.rst:154
msgid ""
"When someone joins the chat room they get assigned a random name. They can "
"change their name by typing a new name in the box in the left panel and "
@@ -359,30 +371,30 @@ msgid ""
"displayed at all, even if others were already chatting in the room."
msgstr ""
-#: ../../source/features.rst:155
+#: ../../source/features.rst:160
msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change their "
"name to anything, and there is no way to confirm anyone's identity."
msgstr ""
-#: ../../source/features.rst:158
+#: ../../source/features.rst:163
msgid ""
"However, if you create an OnionShare chat room and securely send the address "
"only to a small group of trusted friends using encrypted messages, you can "
"be reasonably confident the people joining the chat room are your friends."
msgstr ""
-#: ../../source/features.rst:161
+#: ../../source/features.rst:166
msgid "How is this useful?"
msgstr ""
-#: ../../source/features.rst:163
+#: ../../source/features.rst:168
msgid ""
"If you need to already be using an encrypted messaging app, what's the point "
"of an OnionShare chat room to begin with? It leaves less traces."
msgstr ""
-#: ../../source/features.rst:165
+#: ../../source/features.rst:170
msgid ""
"If you for example send a message to a Signal group, a copy of your message "
"ends up on each device (the smartphones, and computers if they set up Signal "
@@ -393,7 +405,7 @@ msgid ""
"any messages anywhere, so the problem is reduced to a minimum."
msgstr ""
-#: ../../source/features.rst:168
+#: ../../source/features.rst:173
msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any "
@@ -402,11 +414,11 @@ msgid ""
"journalist to join the chat room, all without compromosing their anonymity."
msgstr ""
-#: ../../source/features.rst:172
+#: ../../source/features.rst:177
msgid "How does the encryption work?"
msgstr ""
-#: ../../source/features.rst:174
+#: ../../source/features.rst:179
msgid ""
"Because OnionShare relies on Tor onion services, connections between the Tor "
"Browser and OnionShare are all end-to-end encrypted (E2EE). When someone "
@@ -415,7 +427,7 @@ msgid ""
"of the chat room using WebSockets, through their E2EE onion connections."
msgstr ""
-#: ../../source/features.rst:176
+#: ../../source/features.rst:181
msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on "
"the Tor onion service's encryption instead."
diff --git a/docs/source/locale/ca/LC_MESSAGES/help.po b/docs/source/locale/ca/LC_MESSAGES/help.po
index 581285aa..952b34f6 100644
--- a/docs/source/locale/ca/LC_MESSAGES/help.po
+++ b/docs/source/locale/ca/LC_MESSAGES/help.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-04-12 19:02+0000\n"
"Last-Translator: Ecron \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/source/locale/ca/LC_MESSAGES/index.po b/docs/source/locale/ca/LC_MESSAGES/index.po
index 44638b70..993bde57 100644
--- a/docs/source/locale/ca/LC_MESSAGES/index.po
+++ b/docs/source/locale/ca/LC_MESSAGES/index.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2021-11-28 19:16+0000\n"
"Last-Translator: fadelkon \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/source/locale/ca/LC_MESSAGES/install.po b/docs/source/locale/ca/LC_MESSAGES/install.po
index ebfd3fd1..e3f1c1f8 100644
--- a/docs/source/locale/ca/LC_MESSAGES/install.po
+++ b/docs/source/locale/ca/LC_MESSAGES/install.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
-"PO-Revision-Date: 2024-02-29 00:02+0000\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
+"PO-Revision-Date: 2024-09-29 20:15+0000\n"
"Last-Translator: victor dargallo \n"
"Language-Team: ca \n"
"Language: ca\n"
@@ -16,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.5-dev\n"
+"X-Generator: Weblate 5.8-dev\n"
"Generated-By: Babel 2.9.0\n"
#: ../../source/install.rst:2
@@ -41,9 +41,9 @@ msgstr ""
msgid "You can download OnionShare for Mobile from the follow links"
msgstr ""
-#: ../../source/install.rst:18
+#: ../../source/install.rst:16
msgid "Android"
-msgstr ""
+msgstr "Android"
#: ../../source/install.rst:17
msgid ""
@@ -55,7 +55,7 @@ msgstr ""
msgid "F-Droid: https://github.com/onionshare/onionshare-android-nightly"
msgstr ""
-#: ../../source/install.rst:24
+#: ../../source/install.rst:20
msgid "iOS"
msgstr ""
@@ -309,11 +309,11 @@ msgstr ""
#: ../../source/install.rst:117
msgid ""
"Packages are signed by the core developer who is responsible for the "
-"particular release. Following are the informations of the core developers of "
-"OnionShare:"
+"particular release. Here is the GPG key information for each of the core "
+"developers of OnionShare:"
msgstr ""
-#: ../../source/install.rst:122
+#: ../../source/install.rst:120
msgid "Micah Lee:"
msgstr ""
@@ -329,7 +329,7 @@ msgid ""
"fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
msgstr ""
-#: ../../source/install.rst:126
+#: ../../source/install.rst:124
msgid "Saptak Sengupta:"
msgstr ""
@@ -346,17 +346,33 @@ msgid ""
msgstr ""
#: ../../source/install.rst:128
+msgid "Miguel Jacq:"
+msgstr ""
+
+#: ../../source/install.rst:129
+msgid ""
+"PGP public key fingerprint ``00AE817C24A10C2540461A9C1D7CDE0234DB458D``."
+msgstr ""
+
+#: ../../source/install.rst:130
+msgid ""
+"You can download Miguel's key `from the keys.openpgp.org keyserver `_."
+msgstr ""
+
+#: ../../source/install.rst:132
msgid ""
"You must have GnuPG installed to verify signatures. For macOS you probably "
"want `GPGTools `_, and for Windows you probably want "
"`Gpg4win `_."
msgstr ""
-#: ../../source/install.rst:131
+#: ../../source/install.rst:135
msgid "Signatures"
msgstr ""
-#: ../../source/install.rst:133
+#: ../../source/install.rst:137
msgid ""
"You can find the signatures (as ``.asc`` files), as well as Windows, macOS, "
"Flatpak, Snap, and source packages, at https://onionshare.org/dist/ in the "
@@ -364,52 +380,52 @@ msgid ""
"`GitHub Releases page `_."
msgstr ""
-#: ../../source/install.rst:137
+#: ../../source/install.rst:141
msgid "Verifying"
msgstr ""
-#: ../../source/install.rst:139
+#: ../../source/install.rst:143
msgid ""
"Once you have imported the core developers public keys into your GnuPG "
"keychain, downloaded the binary and ``.asc`` signature, you can verify the "
"binary in a terminal like this:"
msgstr ""
-#: ../../source/install.rst:141
+#: ../../source/install.rst:145
msgid "For Windows::"
msgstr ""
-#: ../../source/install.rst:145
+#: ../../source/install.rst:149
msgid "For macOS::"
msgstr ""
-#: ../../source/install.rst:149
+#: ../../source/install.rst:153
msgid "For Linux::"
msgstr ""
-#: ../../source/install.rst:155
+#: ../../source/install.rst:159
msgid "and for the source file::"
msgstr ""
-#: ../../source/install.rst:159
+#: ../../source/install.rst:163
msgid "The expected output looks like this::"
msgstr ""
-#: ../../source/install.rst:169
+#: ../../source/install.rst:173
msgid ""
"If you don't see ``Good signature from``, there might be a problem with the "
"integrity of the file (malicious or otherwise), and you should not install "
"the package."
msgstr ""
-#: ../../source/install.rst:171
+#: ../../source/install.rst:175
msgid ""
"The ``WARNING:`` shown above, is not a problem with the package, it only "
"means you haven't defined a level of \"trust\" of Micah's (the core "
"developer) PGP key."
msgstr ""
-#: ../../source/install.rst:173
+#: ../../source/install.rst:177
msgid ""
"If you want to learn more about verifying PGP signatures, the guides for "
"`Qubes OS `_ and "
diff --git a/docs/source/locale/ca/LC_MESSAGES/security.po b/docs/source/locale/ca/LC_MESSAGES/security.po
index 583ea781..b8757195 100644
--- a/docs/source/locale/ca/LC_MESSAGES/security.po
+++ b/docs/source/locale/ca/LC_MESSAGES/security.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-04-12 19:02+0000\n"
"Last-Translator: Ecron \n"
"Language-Team: ca \n"
diff --git a/docs/source/locale/ca/LC_MESSAGES/sphinx.po b/docs/source/locale/ca/LC_MESSAGES/sphinx.po
index 5a6a58ad..d2d859f1 100644
--- a/docs/source/locale/ca/LC_MESSAGES/sphinx.po
+++ b/docs/source/locale/ca/LC_MESSAGES/sphinx.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2020-11-25 18:28+0000\n"
"Last-Translator: fadelkon \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/source/locale/ca/LC_MESSAGES/tor.po b/docs/source/locale/ca/LC_MESSAGES/tor.po
index 7b7c3794..e683b7ff 100644
--- a/docs/source/locale/ca/LC_MESSAGES/tor.po
+++ b/docs/source/locale/ca/LC_MESSAGES/tor.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2020-11-25 18:28+0000\n"
"Last-Translator: fadelkon \n"
"Language-Team: ca \n"
diff --git a/docs/source/locale/ckb/LC_MESSAGES/advanced.po b/docs/source/locale/ckb/LC_MESSAGES/advanced.po
index 6a9ae613..bc287aa8 100644
--- a/docs/source/locale/ckb/LC_MESSAGES/advanced.po
+++ b/docs/source/locale/ckb/LC_MESSAGES/advanced.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2020-11-28 11:29+0000\n"
"Last-Translator: Lecwan Munzur \n"
"Language-Team: none\n"
@@ -65,8 +65,8 @@ msgstr ""
#: ../../source/advanced.rst:28
msgid ""
"The Tor Browser will ask you to enter your private key when you load an "
-"OnionShare service. If you want allow the public to use your service, it's "
-"better to disable the private key altogether."
+"OnionShare service. If you want to allow the public to use your service, "
+"it's better to disable the private key altogether."
msgstr ""
#: ../../source/advanced.rst:31
@@ -109,9 +109,9 @@ msgstr ""
#: ../../source/advanced.rst:51
msgid ""
-"Services scheduled to start in the future display a countdown timer when "
-"when the \"Start sharing\" button is clicked. Services scheduled to stop in "
-"the future display a countdown timer when started."
+"Services scheduled to start in the future display a countdown timer when the "
+"\"Start sharing\" button is clicked. Services scheduled to stop in the "
+"future display a countdown timer when started."
msgstr ""
#: ../../source/advanced.rst:54
@@ -139,57 +139,751 @@ msgid ""
"interface."
msgstr ""
-#: ../../source/advanced.rst:72
-msgid ""
-"You can install just the command-line version of OnionShare using ``pip3``::"
+#: ../../source/advanced.rst:73
+msgid "Installing the CLI version"
msgstr ""
-#: ../../source/advanced.rst:76
+#: ../../source/advanced.rst:75
+msgid ""
+"If you have installed the Snap, macOS or Windows package, you already have "
+"the CLI version installed."
+msgstr ""
+
+#: ../../source/advanced.rst:77
+msgid ""
+"Alternatively, you can install just the command-line version of OnionShare "
+"using ``pip3``::"
+msgstr ""
+
+#: ../../source/advanced.rst:81
msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``"
msgstr ""
-#: ../../source/advanced.rst:78
+#: ../../source/advanced.rst:83
msgid "Then run it like this::"
msgstr ""
-#: ../../source/advanced.rst:82
+#: ../../source/advanced.rst:87
msgid ""
"Info about installing it on different operating systems can be found in the "
"`CLI README file `_ in the Git repository."
msgstr ""
-#: ../../source/advanced.rst:84
-msgid ""
-"If you installed OnionShare using the Snap package, you can also just run "
-"``onionshare.cli`` to access the command-line interface version."
+#: ../../source/advanced.rst:90
+msgid "Running the CLI from Snap"
msgstr ""
-#: ../../source/advanced.rst:87
+#: ../../source/advanced.rst:92
+msgid ""
+"If you installed OnionShare using the Snap package, you can run ``onionshare."
+"cli`` to access the command-line interface version."
+msgstr ""
+
+#: ../../source/advanced.rst:95
+msgid "Running the CLI from macOS"
+msgstr ""
+
+#: ../../source/advanced.rst:97
+msgid ""
+"From Terminal, you can run ``/Applications/OnionShare.app/Contents/MacOS/"
+"onionshare-cli --help``"
+msgstr ""
+
+#: ../../source/advanced.rst:100
+msgid "Running the CLI from Windows"
+msgstr ""
+
+#: ../../source/advanced.rst:102
+msgid ""
+"In the Windows installation, the executable ``onionshare-cli.exe`` is "
+"available."
+msgstr ""
+
+#: ../../source/advanced.rst:105
msgid "Usage"
msgstr "Bikaranîn"
-#: ../../source/advanced.rst:89
+#: ../../source/advanced.rst:107
msgid ""
"Browse the command-line documentation by running ``onionshare --help``::"
msgstr ""
-#: ../../source/advanced.rst:151
+#: ../../source/advanced.rst:170
+msgid "Running the CLI as a systemd unit file"
+msgstr ""
+
+#: ../../source/advanced.rst:172
+msgid ""
+"It is possible to automatically start OnionShare from the CLI using a "
+"systemd unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:174
+msgid ""
+"You may find this particularly useful if you are operating in 'persistent' "
+"mode, and want to start the same onion service every time your machine "
+"starts."
+msgstr ""
+
+#: ../../source/advanced.rst:176
+msgid "To do this, you need to prepare some OnionShare json config first."
+msgstr ""
+
+#: ../../source/advanced.rst:178
+msgid ""
+"Here is the main OnionShare config. In this example, it's stored in ``/home/"
+"user/.config/onionshare/onionshare.json``. You may need to adjust some of "
+"the settings, but if you already have OnionShare installed, it probably "
+"looks much like this already::"
+msgstr ""
+
+#: ../../source/advanced.rst:207
+msgid ""
+"Notice the 'persistent_tabs' section. We will now create a file at ``/home/"
+"user/.config/onionshare/persistent/my-persistent-onion.json``, that looks "
+"like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:247
+msgid ""
+"**Don't actually use this private key, service_id or client_auth keys! They "
+"are shown only as an example. Never share the private_key with anyone.**"
+msgstr ""
+
+#: ../../source/advanced.rst:249
+msgid ""
+"The easiest way to generate the onion address and private key is to first "
+"create a 'pinned' OnionShare tab in the desktop app and started the share "
+"for the first time. This will then have saved the persistent settings to "
+"your ``.config/onionshare/persistent/`` folder with a random name. You can "
+"unpin that tab once you've generated it the first time. Or, you can leave it "
+"where it is, and use that persistent file in your systemd unit file below."
+msgstr ""
+
+#: ../../source/advanced.rst:251
+msgid ""
+"Now you can create a systemd unit file in ``/etc/systemd/system/onionshare-"
+"cli.service``. Be sure to adjust the User and Group to your own user/group, "
+"as well as changes to any paths to the onionshare-cli binary or the paths to "
+"your JSON configs and shares."
+msgstr ""
+
+#: ../../source/advanced.rst:253
+msgid "The systemd unit file should look like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:268
+msgid ""
+"Note that although ``/home/user/my-shared-file.txt`` was defined in the "
+"``filenames`` section of the ``my-persistent-onion.json`` file, it's still "
+"necessary to specify it as the argument to the onionshare-cli command."
+msgstr ""
+
+#: ../../source/advanced.rst:270
+msgid ""
+"Be sure to run ``sudo systemctl daemon-reload`` after creating the unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:272
+msgid ""
+"Now you can run ``sudo systemctl start onionshare-cli.service``. If you have "
+"``journalctl`` installed, you can run ``sudo journalctl -f -t onionshare-"
+"cli``, and you should see some output of your service starting::"
+msgstr ""
+
+#: ../../source/advanced.rst:282
+msgid ""
+"If you don't want your users to use a Private Key, set ``public`` to be "
+"``true`` in the ``general`` settings of the my-persistent-onion.json file."
+msgstr ""
+
+#: ../../source/advanced.rst:286
msgid "Keyboard Shortcuts"
msgstr ""
-#: ../../source/advanced.rst:153
+#: ../../source/advanced.rst:288
msgid ""
"The OnionShare desktop application contains some keyboard shortcuts, for "
"convenience and accessibility::"
msgstr ""
-#: ../../source/advanced.rst:158
+#: ../../source/advanced.rst:293
msgid "And from the main mode chooser screen::"
msgstr ""
+#: ../../source/advanced.rst:303
+msgid "Migrating your OnionShare data to another computer"
+msgstr ""
+
+#: ../../source/advanced.rst:305
+msgid ""
+"You may want to migrate your OnionShare data when switching to another "
+"computer. This is especially true if you had a 'persistent' onion address "
+"and you want to preserve it."
+msgstr ""
+
+#: ../../source/advanced.rst:307
+msgid ""
+"OnionShare stores all such data in a specific folder. Copy the relevant "
+"folder for your operating system below, to your new computer:"
+msgstr ""
+
+#: ../../source/advanced.rst:309
+msgid "Linux: ``~/.config/onionshare``"
+msgstr ""
+
+#: ../../source/advanced.rst:310
+msgid "macOS: ``~/Library/Application Support/OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:311
+msgid "Windows: ``%APPDATA%\\OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:315
+msgid "Configuration file parameters"
+msgstr ""
+
+#: ../../source/advanced.rst:317
+msgid ""
+"OnionShare stores its settings in a JSON file. Both the CLI and the Desktop "
+"versions use this configuration file. The CLI also lets you specify a path "
+"to a custom configuration file with ``--config``."
+msgstr ""
+
+#: ../../source/advanced.rst:319
+msgid ""
+"Below are the configuration file parameters and what they mean. If your "
+"configuration file has other parameters not listed here, they may be "
+"obsolete from older OnionShare versions."
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Parameter"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Type"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Explanation"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid "version"
+msgstr ""
+
+#: ../../source/advanced.rst:324 ../../source/advanced.rst:325
+#: ../../source/advanced.rst:326 ../../source/advanced.rst:328
+#: ../../source/advanced.rst:330 ../../source/advanced.rst:331
+#: ../../source/advanced.rst:332 ../../source/advanced.rst:337
+#: ../../source/advanced.rst:338 ../../source/advanced.rst:339
+#: ../../source/advanced.rst:340 ../../source/advanced.rst:343
+#: ../../source/advanced.rst:404 ../../source/advanced.rst:405
+#: ../../source/advanced.rst:406 ../../source/advanced.rst:415
+#: ../../source/advanced.rst:426 ../../source/advanced.rst:430
+#: ../../source/advanced.rst:452 ../../source/advanced.rst:453
+#: ../../source/advanced.rst:465
+msgid "``string``"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid ""
+"The version of OnionShare. You should not ever need to change this value."
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid "connection_type"
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid ""
+"The way in which OnionShare connects to Tor. Valid options are 'bundled', "
+"'automatic' (use Tor Browser's Tor connection), 'control_port' or "
+"'socket_file'. Default: 'bundled'"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid "control_port_address"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid ""
+"The IP address of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid "control_port_port"
+msgstr ""
+
+#: ../../source/advanced.rst:327 ../../source/advanced.rst:329
+#: ../../source/advanced.rst:335
+msgid "``integer``"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid ""
+"The port number of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '9051'"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid "socks_address"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid ""
+"The IP address of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid "socks_port"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid ""
+"The port number of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: ''9050'"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid "socket_file_path"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid ""
+"The path to Tor's socket file, if ``connection_type`` is set to "
+"'socket_file'. Default: '/var/run/tor/control'"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid "auth_type"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid ""
+"If access to Tor's control port requires a password, this can be set to "
+"'password', otherwise 'no_auth'. Default: 'no_auth'"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid "auth_password"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid ""
+"If access to Tor's control port requires a password, and ``auth_type`` is "
+"set to 'password', specify the password here. Default: ''"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid "auto_connect"
+msgstr ""
+
+#: ../../source/advanced.rst:333 ../../source/advanced.rst:334
+#: ../../source/advanced.rst:336 ../../source/advanced.rst:344
+#: ../../source/advanced.rst:416 ../../source/advanced.rst:417
+#: ../../source/advanced.rst:427 ../../source/advanced.rst:428
+#: ../../source/advanced.rst:429 ../../source/advanced.rst:441
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:454
+#: ../../source/advanced.rst:455 ../../source/advanced.rst:464
+#: ../../source/advanced.rst:466
+msgid "``boolean``"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid ""
+"Whether OnionShare should automatically connect to Tor when it starts. "
+"Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid "use_autoupdate"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid ""
+"Whether OnionShare should automatically check for updates (over Tor). This "
+"setting is only valid for MacOS or Windows installations. Default: True."
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "autoupdate_timestamp"
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "The last time OnionShare checked for updates. Default: None"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "bridges_enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "Whether to connect to Tor using bridges. Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid "bridges_type"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid ""
+"When ``bridges_enabled`` is True, where to load bridges from. Options are "
+"\"built-in\" (bridges shipped with OnionShare and which may get updated from "
+"Tor), \"moat\" (request bridges from Tor's Moat API), or \"custom\" (user-"
+"supplied bridges). Default: \"built-in\""
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid "bridges_builtin_pt"
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", this specifies which type of "
+"bridge protocol to use. Options are \"obfs4\", \"meek-azure\" or "
+"\"snowflake\". Default: \"obfs4\""
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid "bridges_moat"
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid ""
+"When ``bridges_type`` is set to \"moat\", the bridges returned from Tor's "
+"Moat API are stored here. Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid "bridges_custom"
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid ""
+"When ``bridges_type`` is set to \"custom\", the bridges specified by the "
+"user are stored here. Separate each bridge line in the string with '\\n'. "
+"Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "bridges_builtin"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "``dict``"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", OnionShare obtains the latest "
+"built-in bridges recommended by Tor and stores them here. Default: {}"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid "persistent_tabs"
+msgstr ""
+
+#: ../../source/advanced.rst:342 ../../source/advanced.rst:442
+#: ../../source/advanced.rst:467
+msgid "``list``"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid ""
+"If the user has defined any tabs as 'saved' (meaning that they are "
+"persistent each time OnionShare starts, and their onion address doesn't "
+"change), these are given a random identifier which gets listed here. The "
+"persistent onion is stored as a JSON file with the same name as this "
+"identifier, in a subfolder of the OnionShare configuration folder called "
+"'persistent'. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid "locale"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid ""
+"The locale used in OnionShare. Default: None (which is the same as 'en'). "
+"For valid locale codes, see 'available_locales' in https://github.com/"
+"onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid "theme"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid ""
+"The theme for the OnionShare desktop app. Valid options are 0 (automatically "
+"detect the user's computer's light or dark theme), 1 (light) or 2 (dark)."
+msgstr ""
+
+#: ../../source/advanced.rst:349
+msgid "Configuration file parameters for persistent onions"
+msgstr ""
+
+#: ../../source/advanced.rst:351
+msgid ""
+"As described above, each 'persistent' onion has parameters of its own which "
+"are stored in its own JSON file. The path to this file can be specified for "
+"the CLI tool with ``--persistent``."
+msgstr ""
+
+#: ../../source/advanced.rst:353
+msgid "Here is an example persistent JSON configuration::"
+msgstr ""
+
+#: ../../source/advanced.rst:396
+msgid ""
+"Below are the configuration file parameters for a persistent onion and what "
+"they mean, for each section in the JSON"
+msgstr ""
+
+#: ../../source/advanced.rst:399
+msgid "onion"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "private_key"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "Base64-encoded private key of the onion service"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid "client_auth_priv_key"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid ""
+"The private key when using Client Authentication. Send this to the user."
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid "client_auth_pub_key"
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid ""
+"The public key when using Client Authentication. Used on OnionShare's side."
+msgstr ""
+
+#: ../../source/advanced.rst:410
+msgid "persistent"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid "mode"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid ""
+"The mode used by this persistent onion. Options are \"share\", \"receive\", "
+"\"website\" or \"chat\"."
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid "enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid ""
+"Whether persistence is enabled for this onion. When the persistent option is "
+"unchecked in the desktop, this entire JSON file is deleted. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid "autostart_on_launch"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid ""
+"Whether to automatically start this persistent onion when OnionShare starts "
+"and once Tor is connected. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:421
+msgid "general"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid "title"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid ""
+"An optional custom title for displaying on the onion service. Default: null "
+"(\"OnionShare\" will be shown instead)"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid "public"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid ""
+"Whether the onion service can be accessed with or without a Private Key "
+"(Client Authentication). If true, no Private Key is required."
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid "autostart_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid ""
+"Whether the onion service is configured to start at a specific time. The "
+"time can be set in the desktop app or specified in seconds with ``--auto-"
+"start-timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid "autostop_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid ""
+"Whether the onion service is configured to stop at a specific time. The time "
+"can be set in the desktop app or specified in seconds with ``--auto-stop-"
+"timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid "service_id"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid ""
+"The 32-character onion service URL, without the scheme and without the '."
+"onion' suffix."
+msgstr ""
+
+#: ../../source/advanced.rst:433
+msgid ""
+"The below are settings specific to the 'mode' specified in the "
+"``persistent`` section above."
+msgstr ""
+
+#: ../../source/advanced.rst:436
+msgid "share"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid "autostop_sharing"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid ""
+"Whether to automatically stop the share once files are downloaded the first "
+"time. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "A list of files to share. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid "log_filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid ""
+"Whether to log URL requests to stdout when using the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:447
+msgid "receive"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid "data_dir"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid ""
+"The path where received files or text messages will be stored. Default: the "
+"'OnionShare' folder of the user's home directory."
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid "webhook_url"
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid ""
+"A webhook URL that OnionShare will POST to when it receives files or text "
+"messages. Default: null"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "disable_text"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "Whether to disable receiving text messages. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "disable_files"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "Whether to disable receiving files. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:459
+msgid "website"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid "disable_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid ""
+"If set to ``true``, OnionShare won't set its default Content Security Policy "
+"header for the website. Default: ``false``"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "custom_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "A custom Content Security Policy header to send instead of the default."
+msgstr ""
+
+#: ../../source/advanced.rst:471
+msgid "chat"
+msgstr ""
+
+#: ../../source/advanced.rst:473
+msgid "There are currently no configurable settings for the Chat mode."
+msgstr ""
+
#~ msgid ""
#~ "Everything in OnionShare is temporary by default. If you close an "
#~ "OnionShare tab, its address no longer exists and it can't be used again. "
diff --git a/docs/source/locale/ckb/LC_MESSAGES/develop.po b/docs/source/locale/ckb/LC_MESSAGES/develop.po
index b77f79fc..cba0c7ab 100644
--- a/docs/source/locale/ckb/LC_MESSAGES/develop.po
+++ b/docs/source/locale/ckb/LC_MESSAGES/develop.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2020-11-22 18:29+0000\n"
"Last-Translator: Lecwan Munzur \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/ckb/LC_MESSAGES/features.po b/docs/source/locale/ckb/LC_MESSAGES/features.po
index 5abb4efe..24ce29ea 100644
--- a/docs/source/locale/ckb/LC_MESSAGES/features.po
+++ b/docs/source/locale/ckb/LC_MESSAGES/features.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -83,7 +83,7 @@ msgid ""
"share, and click \"Start sharing\"."
msgstr ""
-#: ../../source/features.rst:35 ../../source/features.rst:112
+#: ../../source/features.rst:35 ../../source/features.rst:117
msgid ""
"After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing."
@@ -245,17 +245,29 @@ msgid ""
msgstr ""
#: ../../source/features.rst:102
-msgid "Host a Website"
+msgid "Other caveats to be aware of in Receive Mode"
msgstr ""
#: ../../source/features.rst:104
msgid ""
+"There are reports that OnionBrowser on iOS devices are unable to upload "
+"files to an OnionShare in Receive Mode, when operating in 'Silver' security "
+"mode. Try Bronze or Gold to see if you are able to upload a message or a "
+"file."
+msgstr ""
+
+#: ../../source/features.rst:107
+msgid "Host a Website"
+msgstr ""
+
+#: ../../source/features.rst:109
+msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag the "
"files and folders that make up the static content there, and click \"Start "
"sharing\" when you are ready."
msgstr ""
-#: ../../source/features.rst:108
+#: ../../source/features.rst:113
msgid ""
"If you add an ``index.html`` file, it will render when someone loads your "
"website. You should also include any other HTML files, CSS files, JavaScript "
@@ -264,17 +276,17 @@ msgid ""
"or use databases. So you can't for example use WordPress.)"
msgstr ""
-#: ../../source/features.rst:110
+#: ../../source/features.rst:115
msgid ""
"If you don't have an ``index.html`` file, it will show a directory listing "
"instead, and people loading it can look through the files and download them."
msgstr ""
-#: ../../source/features.rst:117
+#: ../../source/features.rst:122
msgid "Content Security Policy"
msgstr ""
-#: ../../source/features.rst:119
+#: ../../source/features.rst:124
msgid ""
"By default OnionShare helps secure your website by setting a strict `Content "
"Security Policy `_ "
@@ -282,28 +294,28 @@ msgid ""
"web page."
msgstr ""
-#: ../../source/features.rst:121
+#: ../../source/features.rst:126
msgid ""
"If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, you have two options:"
msgstr ""
-#: ../../source/features.rst:123
+#: ../../source/features.rst:128
msgid ""
"You can disable sending a Content Security Policy header by checking the "
"\"Don't send Content Security Policy header (allows your website to use "
"third-party resources)\" box before starting the service."
msgstr ""
-#: ../../source/features.rst:124
+#: ../../source/features.rst:129
msgid "You can send a custom Content Security Policy header."
msgstr ""
-#: ../../source/features.rst:127
+#: ../../source/features.rst:132
msgid "Tips for running a website service"
msgstr ""
-#: ../../source/features.rst:129
+#: ../../source/features.rst:134
msgid ""
"If you want to host a long-term website using OnionShare (meaning not just "
"to quickly show someone something), it's recommended you do it on a "
@@ -313,23 +325,23 @@ msgid ""
"close OnionShare and re-open it later."
msgstr ""
-#: ../../source/features.rst:132
+#: ../../source/features.rst:137
msgid ""
"If your website is intended for the public, you should run it as a public "
"service (see :ref:`turn_off_private_key`)."
msgstr ""
-#: ../../source/features.rst:135
+#: ../../source/features.rst:140
msgid "Chat Anonymously"
msgstr ""
-#: ../../source/features.rst:137
+#: ../../source/features.rst:142
msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't "
"log anything. Just open a chat tab and click \"Start chat server\"."
msgstr ""
-#: ../../source/features.rst:141
+#: ../../source/features.rst:146
msgid ""
"After you start the server, copy the OnionShare address and private key and "
"send them to the people you want in the anonymous chat room. If it's "
@@ -337,7 +349,7 @@ msgid ""
"send out the OnionShare address and private key."
msgstr ""
-#: ../../source/features.rst:146
+#: ../../source/features.rst:151
msgid ""
"People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to "
@@ -345,7 +357,7 @@ msgid ""
"or \"Safer\", instead of \"Safest\"."
msgstr ""
-#: ../../source/features.rst:149
+#: ../../source/features.rst:154
msgid ""
"When someone joins the chat room they get assigned a random name. They can "
"change their name by typing a new name in the box in the left panel and "
@@ -353,30 +365,30 @@ msgid ""
"displayed at all, even if others were already chatting in the room."
msgstr ""
-#: ../../source/features.rst:155
+#: ../../source/features.rst:160
msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change their "
"name to anything, and there is no way to confirm anyone's identity."
msgstr ""
-#: ../../source/features.rst:158
+#: ../../source/features.rst:163
msgid ""
"However, if you create an OnionShare chat room and securely send the address "
"only to a small group of trusted friends using encrypted messages, you can "
"be reasonably confident the people joining the chat room are your friends."
msgstr ""
-#: ../../source/features.rst:161
+#: ../../source/features.rst:166
msgid "How is this useful?"
msgstr ""
-#: ../../source/features.rst:163
+#: ../../source/features.rst:168
msgid ""
"If you need to already be using an encrypted messaging app, what's the point "
"of an OnionShare chat room to begin with? It leaves less traces."
msgstr ""
-#: ../../source/features.rst:165
+#: ../../source/features.rst:170
msgid ""
"If you for example send a message to a Signal group, a copy of your message "
"ends up on each device (the smartphones, and computers if they set up Signal "
@@ -387,7 +399,7 @@ msgid ""
"any messages anywhere, so the problem is reduced to a minimum."
msgstr ""
-#: ../../source/features.rst:168
+#: ../../source/features.rst:173
msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any "
@@ -396,11 +408,11 @@ msgid ""
"journalist to join the chat room, all without compromosing their anonymity."
msgstr ""
-#: ../../source/features.rst:172
+#: ../../source/features.rst:177
msgid "How does the encryption work?"
msgstr ""
-#: ../../source/features.rst:174
+#: ../../source/features.rst:179
msgid ""
"Because OnionShare relies on Tor onion services, connections between the Tor "
"Browser and OnionShare are all end-to-end encrypted (E2EE). When someone "
@@ -409,7 +421,7 @@ msgid ""
"of the chat room using WebSockets, through their E2EE onion connections."
msgstr ""
-#: ../../source/features.rst:176
+#: ../../source/features.rst:181
msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on "
"the Tor onion service's encryption instead."
diff --git a/docs/source/locale/ckb/LC_MESSAGES/help.po b/docs/source/locale/ckb/LC_MESSAGES/help.po
index 399b9980..8f127377 100644
--- a/docs/source/locale/ckb/LC_MESSAGES/help.po
+++ b/docs/source/locale/ckb/LC_MESSAGES/help.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2020-11-24 09:28+0000\n"
"Last-Translator: Lecwan Munzur \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/ckb/LC_MESSAGES/index.po b/docs/source/locale/ckb/LC_MESSAGES/index.po
index 941ead78..5b10138c 100644
--- a/docs/source/locale/ckb/LC_MESSAGES/index.po
+++ b/docs/source/locale/ckb/LC_MESSAGES/index.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2020-11-26 19:28+0000\n"
"Last-Translator: Lecwan Munzur \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/ckb/LC_MESSAGES/install.po b/docs/source/locale/ckb/LC_MESSAGES/install.po
index 41eb2bb8..db339ca2 100644
--- a/docs/source/locale/ckb/LC_MESSAGES/install.po
+++ b/docs/source/locale/ckb/LC_MESSAGES/install.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2020-11-24 09:28+0000\n"
"Last-Translator: Lecwan Munzur \n"
"Language-Team: none\n"
@@ -42,7 +42,7 @@ msgstr ""
msgid "You can download OnionShare for Mobile from the follow links"
msgstr ""
-#: ../../source/install.rst:18
+#: ../../source/install.rst:16
msgid "Android"
msgstr ""
@@ -56,7 +56,7 @@ msgstr ""
msgid "F-Droid: https://github.com/onionshare/onionshare-android-nightly"
msgstr ""
-#: ../../source/install.rst:24
+#: ../../source/install.rst:20
msgid "iOS"
msgstr ""
@@ -323,11 +323,11 @@ msgstr ""
#: ../../source/install.rst:117
msgid ""
"Packages are signed by the core developer who is responsible for the "
-"particular release. Following are the informations of the core developers of "
-"OnionShare:"
+"particular release. Here is the GPG key information for each of the core "
+"developers of OnionShare:"
msgstr ""
-#: ../../source/install.rst:122
+#: ../../source/install.rst:120
msgid "Micah Lee:"
msgstr ""
@@ -343,7 +343,7 @@ msgid ""
"fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
msgstr ""
-#: ../../source/install.rst:126
+#: ../../source/install.rst:124
msgid "Saptak Sengupta:"
msgstr ""
@@ -360,17 +360,33 @@ msgid ""
msgstr ""
#: ../../source/install.rst:128
+msgid "Miguel Jacq:"
+msgstr ""
+
+#: ../../source/install.rst:129
+msgid ""
+"PGP public key fingerprint ``00AE817C24A10C2540461A9C1D7CDE0234DB458D``."
+msgstr ""
+
+#: ../../source/install.rst:130
+msgid ""
+"You can download Miguel's key `from the keys.openpgp.org keyserver `_."
+msgstr ""
+
+#: ../../source/install.rst:132
msgid ""
"You must have GnuPG installed to verify signatures. For macOS you probably "
"want `GPGTools `_, and for Windows you probably want "
"`Gpg4win `_."
msgstr ""
-#: ../../source/install.rst:131
+#: ../../source/install.rst:135
msgid "Signatures"
msgstr ""
-#: ../../source/install.rst:133
+#: ../../source/install.rst:137
msgid ""
"You can find the signatures (as ``.asc`` files), as well as Windows, macOS, "
"Flatpak, Snap, and source packages, at https://onionshare.org/dist/ in the "
@@ -378,52 +394,52 @@ msgid ""
"`GitHub Releases page `_."
msgstr ""
-#: ../../source/install.rst:137
+#: ../../source/install.rst:141
msgid "Verifying"
msgstr ""
-#: ../../source/install.rst:139
+#: ../../source/install.rst:143
msgid ""
"Once you have imported the core developers public keys into your GnuPG "
"keychain, downloaded the binary and ``.asc`` signature, you can verify the "
"binary in a terminal like this:"
msgstr ""
-#: ../../source/install.rst:141
+#: ../../source/install.rst:145
msgid "For Windows::"
msgstr ""
-#: ../../source/install.rst:145
+#: ../../source/install.rst:149
msgid "For macOS::"
msgstr ""
-#: ../../source/install.rst:149
+#: ../../source/install.rst:153
msgid "For Linux::"
msgstr ""
-#: ../../source/install.rst:155
+#: ../../source/install.rst:159
msgid "and for the source file::"
msgstr ""
-#: ../../source/install.rst:159
+#: ../../source/install.rst:163
msgid "The expected output looks like this::"
msgstr ""
-#: ../../source/install.rst:169
+#: ../../source/install.rst:173
msgid ""
"If you don't see ``Good signature from``, there might be a problem with the "
"integrity of the file (malicious or otherwise), and you should not install "
"the package."
msgstr ""
-#: ../../source/install.rst:171
+#: ../../source/install.rst:175
msgid ""
"The ``WARNING:`` shown above, is not a problem with the package, it only "
"means you haven't defined a level of \"trust\" of Micah's (the core "
"developer) PGP key."
msgstr ""
-#: ../../source/install.rst:173
+#: ../../source/install.rst:177
msgid ""
"If you want to learn more about verifying PGP signatures, the guides for "
"`Qubes OS `_ and "
diff --git a/docs/source/locale/ckb/LC_MESSAGES/security.po b/docs/source/locale/ckb/LC_MESSAGES/security.po
index e2ec5ce4..cba5b234 100644
--- a/docs/source/locale/ckb/LC_MESSAGES/security.po
+++ b/docs/source/locale/ckb/LC_MESSAGES/security.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2020-11-22 18:29+0000\n"
"Last-Translator: Lecwan Munzur \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/ckb/LC_MESSAGES/sphinx.po b/docs/source/locale/ckb/LC_MESSAGES/sphinx.po
index 286eda92..7300c1e4 100644
--- a/docs/source/locale/ckb/LC_MESSAGES/sphinx.po
+++ b/docs/source/locale/ckb/LC_MESSAGES/sphinx.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2020-11-20 17:28+0000\n"
"Last-Translator: Lecwan Munzur \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/ckb/LC_MESSAGES/tor.po b/docs/source/locale/ckb/LC_MESSAGES/tor.po
index 8f733443..3bf6182d 100644
--- a/docs/source/locale/ckb/LC_MESSAGES/tor.po
+++ b/docs/source/locale/ckb/LC_MESSAGES/tor.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2020-11-20 17:28+0000\n"
"Last-Translator: Lecwan Munzur \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/cs/LC_MESSAGES/advanced.po b/docs/source/locale/cs/LC_MESSAGES/advanced.po
index bec29712..d5e96950 100644
--- a/docs/source/locale/cs/LC_MESSAGES/advanced.po
+++ b/docs/source/locale/cs/LC_MESSAGES/advanced.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-01-24 17:48+0000\n"
"Last-Translator: Toro \n"
"Language-Team: none\n"
@@ -67,8 +67,8 @@ msgstr ""
#: ../../source/advanced.rst:28
msgid ""
"The Tor Browser will ask you to enter your private key when you load an "
-"OnionShare service. If you want allow the public to use your service, it's "
-"better to disable the private key altogether."
+"OnionShare service. If you want to allow the public to use your service, "
+"it's better to disable the private key altogether."
msgstr ""
#: ../../source/advanced.rst:31
@@ -116,9 +116,9 @@ msgstr ""
#: ../../source/advanced.rst:51
msgid ""
-"Services scheduled to start in the future display a countdown timer when "
-"when the \"Start sharing\" button is clicked. Services scheduled to stop in "
-"the future display a countdown timer when started."
+"Services scheduled to start in the future display a countdown timer when the "
+"\"Start sharing\" button is clicked. Services scheduled to stop in the "
+"future display a countdown timer when started."
msgstr ""
#: ../../source/advanced.rst:54
@@ -147,14 +147,29 @@ msgid ""
msgstr ""
"Kromě grafického rozhraní má OnionShare také rozhraní příkazového řádku."
-#: ../../source/advanced.rst:72
+#: ../../source/advanced.rst:73
+msgid "Installing the CLI version"
+msgstr ""
+
+#: ../../source/advanced.rst:75
msgid ""
-"You can install just the command-line version of OnionShare using ``pip3``::"
+"If you have installed the Snap, macOS or Windows package, you already have "
+"the CLI version installed."
+msgstr ""
+
+#: ../../source/advanced.rst:77
+#, fuzzy
+#| msgid ""
+#| "You can install just the command-line version of OnionShare using "
+#| "``pip3``::"
+msgid ""
+"Alternatively, you can install just the command-line version of OnionShare "
+"using ``pip3``::"
msgstr ""
"Pomocí ``pip3`` můžete nainstalovat pouze verzi OnionShare pro příkazový "
"řádek::"
-#: ../../source/advanced.rst:76
+#: ../../source/advanced.rst:81
msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``"
@@ -162,46 +177,729 @@ msgstr ""
"Vemte na vědomí, že budete potřebovat nainstalovaný balíček ``tor``. V "
"systému macOS jej nainstalujte pomocí: ``brew install tor``"
-#: ../../source/advanced.rst:78
+#: ../../source/advanced.rst:83
msgid "Then run it like this::"
msgstr "Následně jej takto spusťte::"
-#: ../../source/advanced.rst:82
+#: ../../source/advanced.rst:87
msgid ""
"Info about installing it on different operating systems can be found in the "
"`CLI README file `_ in the Git repository."
msgstr ""
-#: ../../source/advanced.rst:84
-msgid ""
-"If you installed OnionShare using the Snap package, you can also just run "
-"``onionshare.cli`` to access the command-line interface version."
+#: ../../source/advanced.rst:90
+msgid "Running the CLI from Snap"
msgstr ""
-#: ../../source/advanced.rst:87
+#: ../../source/advanced.rst:92
+msgid ""
+"If you installed OnionShare using the Snap package, you can run ``onionshare."
+"cli`` to access the command-line interface version."
+msgstr ""
+
+#: ../../source/advanced.rst:95
+msgid "Running the CLI from macOS"
+msgstr ""
+
+#: ../../source/advanced.rst:97
+msgid ""
+"From Terminal, you can run ``/Applications/OnionShare.app/Contents/MacOS/"
+"onionshare-cli --help``"
+msgstr ""
+
+#: ../../source/advanced.rst:100
+msgid "Running the CLI from Windows"
+msgstr ""
+
+#: ../../source/advanced.rst:102
+msgid ""
+"In the Windows installation, the executable ``onionshare-cli.exe`` is "
+"available."
+msgstr ""
+
+#: ../../source/advanced.rst:105
msgid "Usage"
msgstr "Použití"
-#: ../../source/advanced.rst:89
+#: ../../source/advanced.rst:107
msgid ""
"Browse the command-line documentation by running ``onionshare --help``::"
msgstr ""
-#: ../../source/advanced.rst:151
+#: ../../source/advanced.rst:170
+msgid "Running the CLI as a systemd unit file"
+msgstr ""
+
+#: ../../source/advanced.rst:172
+msgid ""
+"It is possible to automatically start OnionShare from the CLI using a "
+"systemd unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:174
+msgid ""
+"You may find this particularly useful if you are operating in 'persistent' "
+"mode, and want to start the same onion service every time your machine "
+"starts."
+msgstr ""
+
+#: ../../source/advanced.rst:176
+msgid "To do this, you need to prepare some OnionShare json config first."
+msgstr ""
+
+#: ../../source/advanced.rst:178
+msgid ""
+"Here is the main OnionShare config. In this example, it's stored in ``/home/"
+"user/.config/onionshare/onionshare.json``. You may need to adjust some of "
+"the settings, but if you already have OnionShare installed, it probably "
+"looks much like this already::"
+msgstr ""
+
+#: ../../source/advanced.rst:207
+msgid ""
+"Notice the 'persistent_tabs' section. We will now create a file at ``/home/"
+"user/.config/onionshare/persistent/my-persistent-onion.json``, that looks "
+"like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:247
+msgid ""
+"**Don't actually use this private key, service_id or client_auth keys! They "
+"are shown only as an example. Never share the private_key with anyone.**"
+msgstr ""
+
+#: ../../source/advanced.rst:249
+msgid ""
+"The easiest way to generate the onion address and private key is to first "
+"create a 'pinned' OnionShare tab in the desktop app and started the share "
+"for the first time. This will then have saved the persistent settings to "
+"your ``.config/onionshare/persistent/`` folder with a random name. You can "
+"unpin that tab once you've generated it the first time. Or, you can leave it "
+"where it is, and use that persistent file in your systemd unit file below."
+msgstr ""
+
+#: ../../source/advanced.rst:251
+msgid ""
+"Now you can create a systemd unit file in ``/etc/systemd/system/onionshare-"
+"cli.service``. Be sure to adjust the User and Group to your own user/group, "
+"as well as changes to any paths to the onionshare-cli binary or the paths to "
+"your JSON configs and shares."
+msgstr ""
+
+#: ../../source/advanced.rst:253
+msgid "The systemd unit file should look like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:268
+msgid ""
+"Note that although ``/home/user/my-shared-file.txt`` was defined in the "
+"``filenames`` section of the ``my-persistent-onion.json`` file, it's still "
+"necessary to specify it as the argument to the onionshare-cli command."
+msgstr ""
+
+#: ../../source/advanced.rst:270
+msgid ""
+"Be sure to run ``sudo systemctl daemon-reload`` after creating the unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:272
+msgid ""
+"Now you can run ``sudo systemctl start onionshare-cli.service``. If you have "
+"``journalctl`` installed, you can run ``sudo journalctl -f -t onionshare-"
+"cli``, and you should see some output of your service starting::"
+msgstr ""
+
+#: ../../source/advanced.rst:282
+msgid ""
+"If you don't want your users to use a Private Key, set ``public`` to be "
+"``true`` in the ``general`` settings of the my-persistent-onion.json file."
+msgstr ""
+
+#: ../../source/advanced.rst:286
msgid "Keyboard Shortcuts"
msgstr ""
-#: ../../source/advanced.rst:153
+#: ../../source/advanced.rst:288
msgid ""
"The OnionShare desktop application contains some keyboard shortcuts, for "
"convenience and accessibility::"
msgstr ""
-#: ../../source/advanced.rst:158
+#: ../../source/advanced.rst:293
msgid "And from the main mode chooser screen::"
msgstr ""
+#: ../../source/advanced.rst:303
+msgid "Migrating your OnionShare data to another computer"
+msgstr ""
+
+#: ../../source/advanced.rst:305
+msgid ""
+"You may want to migrate your OnionShare data when switching to another "
+"computer. This is especially true if you had a 'persistent' onion address "
+"and you want to preserve it."
+msgstr ""
+
+#: ../../source/advanced.rst:307
+msgid ""
+"OnionShare stores all such data in a specific folder. Copy the relevant "
+"folder for your operating system below, to your new computer:"
+msgstr ""
+
+#: ../../source/advanced.rst:309
+msgid "Linux: ``~/.config/onionshare``"
+msgstr ""
+
+#: ../../source/advanced.rst:310
+msgid "macOS: ``~/Library/Application Support/OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:311
+msgid "Windows: ``%APPDATA%\\OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:315
+msgid "Configuration file parameters"
+msgstr ""
+
+#: ../../source/advanced.rst:317
+msgid ""
+"OnionShare stores its settings in a JSON file. Both the CLI and the Desktop "
+"versions use this configuration file. The CLI also lets you specify a path "
+"to a custom configuration file with ``--config``."
+msgstr ""
+
+#: ../../source/advanced.rst:319
+msgid ""
+"Below are the configuration file parameters and what they mean. If your "
+"configuration file has other parameters not listed here, they may be "
+"obsolete from older OnionShare versions."
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Parameter"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Type"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Explanation"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid "version"
+msgstr ""
+
+#: ../../source/advanced.rst:324 ../../source/advanced.rst:325
+#: ../../source/advanced.rst:326 ../../source/advanced.rst:328
+#: ../../source/advanced.rst:330 ../../source/advanced.rst:331
+#: ../../source/advanced.rst:332 ../../source/advanced.rst:337
+#: ../../source/advanced.rst:338 ../../source/advanced.rst:339
+#: ../../source/advanced.rst:340 ../../source/advanced.rst:343
+#: ../../source/advanced.rst:404 ../../source/advanced.rst:405
+#: ../../source/advanced.rst:406 ../../source/advanced.rst:415
+#: ../../source/advanced.rst:426 ../../source/advanced.rst:430
+#: ../../source/advanced.rst:452 ../../source/advanced.rst:453
+#: ../../source/advanced.rst:465
+msgid "``string``"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid ""
+"The version of OnionShare. You should not ever need to change this value."
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid "connection_type"
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid ""
+"The way in which OnionShare connects to Tor. Valid options are 'bundled', "
+"'automatic' (use Tor Browser's Tor connection), 'control_port' or "
+"'socket_file'. Default: 'bundled'"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid "control_port_address"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid ""
+"The IP address of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid "control_port_port"
+msgstr ""
+
+#: ../../source/advanced.rst:327 ../../source/advanced.rst:329
+#: ../../source/advanced.rst:335
+msgid "``integer``"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid ""
+"The port number of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '9051'"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid "socks_address"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid ""
+"The IP address of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid "socks_port"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid ""
+"The port number of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: ''9050'"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid "socket_file_path"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid ""
+"The path to Tor's socket file, if ``connection_type`` is set to "
+"'socket_file'. Default: '/var/run/tor/control'"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid "auth_type"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid ""
+"If access to Tor's control port requires a password, this can be set to "
+"'password', otherwise 'no_auth'. Default: 'no_auth'"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid "auth_password"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid ""
+"If access to Tor's control port requires a password, and ``auth_type`` is "
+"set to 'password', specify the password here. Default: ''"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid "auto_connect"
+msgstr ""
+
+#: ../../source/advanced.rst:333 ../../source/advanced.rst:334
+#: ../../source/advanced.rst:336 ../../source/advanced.rst:344
+#: ../../source/advanced.rst:416 ../../source/advanced.rst:417
+#: ../../source/advanced.rst:427 ../../source/advanced.rst:428
+#: ../../source/advanced.rst:429 ../../source/advanced.rst:441
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:454
+#: ../../source/advanced.rst:455 ../../source/advanced.rst:464
+#: ../../source/advanced.rst:466
+msgid "``boolean``"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid ""
+"Whether OnionShare should automatically connect to Tor when it starts. "
+"Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid "use_autoupdate"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid ""
+"Whether OnionShare should automatically check for updates (over Tor). This "
+"setting is only valid for MacOS or Windows installations. Default: True."
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "autoupdate_timestamp"
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "The last time OnionShare checked for updates. Default: None"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "bridges_enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "Whether to connect to Tor using bridges. Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid "bridges_type"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid ""
+"When ``bridges_enabled`` is True, where to load bridges from. Options are "
+"\"built-in\" (bridges shipped with OnionShare and which may get updated from "
+"Tor), \"moat\" (request bridges from Tor's Moat API), or \"custom\" (user-"
+"supplied bridges). Default: \"built-in\""
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid "bridges_builtin_pt"
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", this specifies which type of "
+"bridge protocol to use. Options are \"obfs4\", \"meek-azure\" or "
+"\"snowflake\". Default: \"obfs4\""
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid "bridges_moat"
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid ""
+"When ``bridges_type`` is set to \"moat\", the bridges returned from Tor's "
+"Moat API are stored here. Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid "bridges_custom"
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid ""
+"When ``bridges_type`` is set to \"custom\", the bridges specified by the "
+"user are stored here. Separate each bridge line in the string with '\\n'. "
+"Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "bridges_builtin"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "``dict``"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", OnionShare obtains the latest "
+"built-in bridges recommended by Tor and stores them here. Default: {}"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid "persistent_tabs"
+msgstr ""
+
+#: ../../source/advanced.rst:342 ../../source/advanced.rst:442
+#: ../../source/advanced.rst:467
+msgid "``list``"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid ""
+"If the user has defined any tabs as 'saved' (meaning that they are "
+"persistent each time OnionShare starts, and their onion address doesn't "
+"change), these are given a random identifier which gets listed here. The "
+"persistent onion is stored as a JSON file with the same name as this "
+"identifier, in a subfolder of the OnionShare configuration folder called "
+"'persistent'. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid "locale"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid ""
+"The locale used in OnionShare. Default: None (which is the same as 'en'). "
+"For valid locale codes, see 'available_locales' in https://github.com/"
+"onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid "theme"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid ""
+"The theme for the OnionShare desktop app. Valid options are 0 (automatically "
+"detect the user's computer's light or dark theme), 1 (light) or 2 (dark)."
+msgstr ""
+
+#: ../../source/advanced.rst:349
+msgid "Configuration file parameters for persistent onions"
+msgstr ""
+
+#: ../../source/advanced.rst:351
+msgid ""
+"As described above, each 'persistent' onion has parameters of its own which "
+"are stored in its own JSON file. The path to this file can be specified for "
+"the CLI tool with ``--persistent``."
+msgstr ""
+
+#: ../../source/advanced.rst:353
+msgid "Here is an example persistent JSON configuration::"
+msgstr ""
+
+#: ../../source/advanced.rst:396
+msgid ""
+"Below are the configuration file parameters for a persistent onion and what "
+"they mean, for each section in the JSON"
+msgstr ""
+
+#: ../../source/advanced.rst:399
+msgid "onion"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "private_key"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "Base64-encoded private key of the onion service"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid "client_auth_priv_key"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid ""
+"The private key when using Client Authentication. Send this to the user."
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid "client_auth_pub_key"
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid ""
+"The public key when using Client Authentication. Used on OnionShare's side."
+msgstr ""
+
+#: ../../source/advanced.rst:410
+msgid "persistent"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid "mode"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid ""
+"The mode used by this persistent onion. Options are \"share\", \"receive\", "
+"\"website\" or \"chat\"."
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid "enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid ""
+"Whether persistence is enabled for this onion. When the persistent option is "
+"unchecked in the desktop, this entire JSON file is deleted. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid "autostart_on_launch"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid ""
+"Whether to automatically start this persistent onion when OnionShare starts "
+"and once Tor is connected. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:421
+msgid "general"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid "title"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid ""
+"An optional custom title for displaying on the onion service. Default: null "
+"(\"OnionShare\" will be shown instead)"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid "public"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid ""
+"Whether the onion service can be accessed with or without a Private Key "
+"(Client Authentication). If true, no Private Key is required."
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid "autostart_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid ""
+"Whether the onion service is configured to start at a specific time. The "
+"time can be set in the desktop app or specified in seconds with ``--auto-"
+"start-timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid "autostop_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid ""
+"Whether the onion service is configured to stop at a specific time. The time "
+"can be set in the desktop app or specified in seconds with ``--auto-stop-"
+"timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid "service_id"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid ""
+"The 32-character onion service URL, without the scheme and without the '."
+"onion' suffix."
+msgstr ""
+
+#: ../../source/advanced.rst:433
+msgid ""
+"The below are settings specific to the 'mode' specified in the "
+"``persistent`` section above."
+msgstr ""
+
+#: ../../source/advanced.rst:436
+msgid "share"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid "autostop_sharing"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid ""
+"Whether to automatically stop the share once files are downloaded the first "
+"time. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "A list of files to share. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid "log_filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid ""
+"Whether to log URL requests to stdout when using the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:447
+msgid "receive"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid "data_dir"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid ""
+"The path where received files or text messages will be stored. Default: the "
+"'OnionShare' folder of the user's home directory."
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid "webhook_url"
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid ""
+"A webhook URL that OnionShare will POST to when it receives files or text "
+"messages. Default: null"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "disable_text"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "Whether to disable receiving text messages. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "disable_files"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "Whether to disable receiving files. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:459
+msgid "website"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid "disable_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid ""
+"If set to ``true``, OnionShare won't set its default Content Security Policy "
+"header for the website. Default: ``false``"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "custom_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "A custom Content Security Policy header to send instead of the default."
+msgstr ""
+
+#: ../../source/advanced.rst:471
+msgid "chat"
+msgstr ""
+
+#: ../../source/advanced.rst:473
+msgid "There are currently no configurable settings for the Chat mode."
+msgstr ""
+
#~ msgid ""
#~ "Everything in OnionShare is temporary by default. If you close an "
#~ "OnionShare tab, its address no longer exists and it can't be used again. "
diff --git a/docs/source/locale/cs/LC_MESSAGES/develop.po b/docs/source/locale/cs/LC_MESSAGES/develop.po
index a2bdf5a0..ff75b84d 100644
--- a/docs/source/locale/cs/LC_MESSAGES/develop.po
+++ b/docs/source/locale/cs/LC_MESSAGES/develop.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.4.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-06-06 17:06+0000\n"
"Last-Translator: emma peel \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/cs/LC_MESSAGES/features.po b/docs/source/locale/cs/LC_MESSAGES/features.po
index ffbf7cbd..58d8ef45 100644
--- a/docs/source/locale/cs/LC_MESSAGES/features.po
+++ b/docs/source/locale/cs/LC_MESSAGES/features.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-01-25 18:49+0000\n"
"Last-Translator: Toro \n"
"Language-Team: none\n"
@@ -93,7 +93,7 @@ msgid ""
"share, and click \"Start sharing\"."
msgstr ""
-#: ../../source/features.rst:35 ../../source/features.rst:112
+#: ../../source/features.rst:35 ../../source/features.rst:117
msgid ""
"After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing."
@@ -255,17 +255,29 @@ msgid ""
msgstr ""
#: ../../source/features.rst:102
-msgid "Host a Website"
+msgid "Other caveats to be aware of in Receive Mode"
msgstr ""
#: ../../source/features.rst:104
msgid ""
+"There are reports that OnionBrowser on iOS devices are unable to upload "
+"files to an OnionShare in Receive Mode, when operating in 'Silver' security "
+"mode. Try Bronze or Gold to see if you are able to upload a message or a "
+"file."
+msgstr ""
+
+#: ../../source/features.rst:107
+msgid "Host a Website"
+msgstr ""
+
+#: ../../source/features.rst:109
+msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag the "
"files and folders that make up the static content there, and click \"Start "
"sharing\" when you are ready."
msgstr ""
-#: ../../source/features.rst:108
+#: ../../source/features.rst:113
msgid ""
"If you add an ``index.html`` file, it will render when someone loads your "
"website. You should also include any other HTML files, CSS files, JavaScript "
@@ -274,17 +286,17 @@ msgid ""
"or use databases. So you can't for example use WordPress.)"
msgstr ""
-#: ../../source/features.rst:110
+#: ../../source/features.rst:115
msgid ""
"If you don't have an ``index.html`` file, it will show a directory listing "
"instead, and people loading it can look through the files and download them."
msgstr ""
-#: ../../source/features.rst:117
+#: ../../source/features.rst:122
msgid "Content Security Policy"
msgstr ""
-#: ../../source/features.rst:119
+#: ../../source/features.rst:124
msgid ""
"By default OnionShare helps secure your website by setting a strict `Content "
"Security Policy `_ "
@@ -292,28 +304,28 @@ msgid ""
"web page."
msgstr ""
-#: ../../source/features.rst:121
+#: ../../source/features.rst:126
msgid ""
"If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, you have two options:"
msgstr ""
-#: ../../source/features.rst:123
+#: ../../source/features.rst:128
msgid ""
"You can disable sending a Content Security Policy header by checking the "
"\"Don't send Content Security Policy header (allows your website to use "
"third-party resources)\" box before starting the service."
msgstr ""
-#: ../../source/features.rst:124
+#: ../../source/features.rst:129
msgid "You can send a custom Content Security Policy header."
msgstr ""
-#: ../../source/features.rst:127
+#: ../../source/features.rst:132
msgid "Tips for running a website service"
msgstr ""
-#: ../../source/features.rst:129
+#: ../../source/features.rst:134
msgid ""
"If you want to host a long-term website using OnionShare (meaning not just "
"to quickly show someone something), it's recommended you do it on a "
@@ -323,23 +335,23 @@ msgid ""
"close OnionShare and re-open it later."
msgstr ""
-#: ../../source/features.rst:132
+#: ../../source/features.rst:137
msgid ""
"If your website is intended for the public, you should run it as a public "
"service (see :ref:`turn_off_private_key`)."
msgstr ""
-#: ../../source/features.rst:135
+#: ../../source/features.rst:140
msgid "Chat Anonymously"
msgstr ""
-#: ../../source/features.rst:137
+#: ../../source/features.rst:142
msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't "
"log anything. Just open a chat tab and click \"Start chat server\"."
msgstr ""
-#: ../../source/features.rst:141
+#: ../../source/features.rst:146
msgid ""
"After you start the server, copy the OnionShare address and private key and "
"send them to the people you want in the anonymous chat room. If it's "
@@ -347,7 +359,7 @@ msgid ""
"send out the OnionShare address and private key."
msgstr ""
-#: ../../source/features.rst:146
+#: ../../source/features.rst:151
msgid ""
"People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to "
@@ -355,7 +367,7 @@ msgid ""
"or \"Safer\", instead of \"Safest\"."
msgstr ""
-#: ../../source/features.rst:149
+#: ../../source/features.rst:154
msgid ""
"When someone joins the chat room they get assigned a random name. They can "
"change their name by typing a new name in the box in the left panel and "
@@ -363,30 +375,30 @@ msgid ""
"displayed at all, even if others were already chatting in the room."
msgstr ""
-#: ../../source/features.rst:155
+#: ../../source/features.rst:160
msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change their "
"name to anything, and there is no way to confirm anyone's identity."
msgstr ""
-#: ../../source/features.rst:158
+#: ../../source/features.rst:163
msgid ""
"However, if you create an OnionShare chat room and securely send the address "
"only to a small group of trusted friends using encrypted messages, you can "
"be reasonably confident the people joining the chat room are your friends."
msgstr ""
-#: ../../source/features.rst:161
+#: ../../source/features.rst:166
msgid "How is this useful?"
msgstr ""
-#: ../../source/features.rst:163
+#: ../../source/features.rst:168
msgid ""
"If you need to already be using an encrypted messaging app, what's the point "
"of an OnionShare chat room to begin with? It leaves less traces."
msgstr ""
-#: ../../source/features.rst:165
+#: ../../source/features.rst:170
msgid ""
"If you for example send a message to a Signal group, a copy of your message "
"ends up on each device (the smartphones, and computers if they set up Signal "
@@ -397,7 +409,7 @@ msgid ""
"any messages anywhere, so the problem is reduced to a minimum."
msgstr ""
-#: ../../source/features.rst:168
+#: ../../source/features.rst:173
msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any "
@@ -406,11 +418,11 @@ msgid ""
"journalist to join the chat room, all without compromosing their anonymity."
msgstr ""
-#: ../../source/features.rst:172
+#: ../../source/features.rst:177
msgid "How does the encryption work?"
msgstr ""
-#: ../../source/features.rst:174
+#: ../../source/features.rst:179
msgid ""
"Because OnionShare relies on Tor onion services, connections between the Tor "
"Browser and OnionShare are all end-to-end encrypted (E2EE). When someone "
@@ -419,7 +431,7 @@ msgid ""
"of the chat room using WebSockets, through their E2EE onion connections."
msgstr ""
-#: ../../source/features.rst:176
+#: ../../source/features.rst:181
msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on "
"the Tor onion service's encryption instead."
diff --git a/docs/source/locale/cs/LC_MESSAGES/help.po b/docs/source/locale/cs/LC_MESSAGES/help.po
index d52c113b..510d6533 100644
--- a/docs/source/locale/cs/LC_MESSAGES/help.po
+++ b/docs/source/locale/cs/LC_MESSAGES/help.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-01-24 17:48+0000\n"
"Last-Translator: Toro \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/cs/LC_MESSAGES/index.po b/docs/source/locale/cs/LC_MESSAGES/index.po
index 77f3f162..655984b2 100644
--- a/docs/source/locale/cs/LC_MESSAGES/index.po
+++ b/docs/source/locale/cs/LC_MESSAGES/index.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2022-08-09 18:18+0000\n"
"Last-Translator: Toro \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/cs/LC_MESSAGES/install.po b/docs/source/locale/cs/LC_MESSAGES/install.po
index f84469cc..6ea2d175 100644
--- a/docs/source/locale/cs/LC_MESSAGES/install.po
+++ b/docs/source/locale/cs/LC_MESSAGES/install.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-06-06 12:39+0000\n"
"Last-Translator: emma peel \n"
"Language-Team: none\n"
@@ -42,7 +42,7 @@ msgstr ""
msgid "You can download OnionShare for Mobile from the follow links"
msgstr ""
-#: ../../source/install.rst:18
+#: ../../source/install.rst:16
msgid "Android"
msgstr ""
@@ -56,7 +56,7 @@ msgstr ""
msgid "F-Droid: https://github.com/onionshare/onionshare-android-nightly"
msgstr ""
-#: ../../source/install.rst:24
+#: ../../source/install.rst:20
msgid "iOS"
msgstr ""
@@ -334,11 +334,11 @@ msgstr "Podpisový klíč"
#: ../../source/install.rst:117
msgid ""
"Packages are signed by the core developer who is responsible for the "
-"particular release. Following are the informations of the core developers of "
-"OnionShare:"
+"particular release. Here is the GPG key information for each of the core "
+"developers of OnionShare:"
msgstr ""
-#: ../../source/install.rst:122
+#: ../../source/install.rst:120
msgid "Micah Lee:"
msgstr ""
@@ -359,7 +359,7 @@ msgstr ""
"klíč si můžete stáhnout `z keyserveru keys.openpgp.org >`_."
-#: ../../source/install.rst:126
+#: ../../source/install.rst:124
msgid "Saptak Sengupta:"
msgstr ""
@@ -376,6 +376,27 @@ msgid ""
msgstr ""
#: ../../source/install.rst:128
+msgid "Miguel Jacq:"
+msgstr ""
+
+#: ../../source/install.rst:129
+msgid ""
+"PGP public key fingerprint ``00AE817C24A10C2540461A9C1D7CDE0234DB458D``."
+msgstr ""
+
+#: ../../source/install.rst:130
+#, fuzzy
+msgid ""
+"You can download Miguel's key `from the keys.openpgp.org keyserver `_."
+msgstr ""
+"Balíčky jsou podepsány Micahem Lee, hlavním vývojář, pomocí jeho veřejného "
+"klíče PGP s otiskem ``927F419D7EC82C2F149C1BD1403C2657CD994F73``. Micahův "
+"klíč si můžete stáhnout `z keyserveru keys.openpgp.org >`_."
+
+#: ../../source/install.rst:132
msgid ""
"You must have GnuPG installed to verify signatures. For macOS you probably "
"want `GPGTools `_, and for Windows you probably want "
@@ -385,11 +406,11 @@ msgstr ""
"pravděpodobně potřebujete `GPGTools `_, pro Windows "
"pak např. `Gpg4win `_."
-#: ../../source/install.rst:131
+#: ../../source/install.rst:135
msgid "Signatures"
msgstr "Podpisy"
-#: ../../source/install.rst:133
+#: ../../source/install.rst:137
#, fuzzy
msgid ""
"You can find the signatures (as ``.asc`` files), as well as Windows, macOS, "
@@ -402,11 +423,11 @@ msgstr ""
"každou verzi OnionShare. Můžete je také najít na `GitHub Releases page "
"`_."
-#: ../../source/install.rst:137
+#: ../../source/install.rst:141
msgid "Verifying"
msgstr "Ověřování"
-#: ../../source/install.rst:139
+#: ../../source/install.rst:143
#, fuzzy
msgid ""
"Once you have imported the core developers public keys into your GnuPG "
@@ -416,28 +437,28 @@ msgstr ""
"Po importu Micahova veřejného klíče do vaší klíčenky GnuPG, stažení binárky "
"a podpisu ``.asc`` můžete binárku pro macOS ověřit v terminálu takto::"
-#: ../../source/install.rst:141
+#: ../../source/install.rst:145
msgid "For Windows::"
msgstr ""
-#: ../../source/install.rst:145
+#: ../../source/install.rst:149
msgid "For macOS::"
msgstr ""
-#: ../../source/install.rst:149
+#: ../../source/install.rst:153
#, fuzzy
msgid "For Linux::"
msgstr "Linux"
-#: ../../source/install.rst:155
+#: ../../source/install.rst:159
msgid "and for the source file::"
msgstr ""
-#: ../../source/install.rst:159
+#: ../../source/install.rst:163
msgid "The expected output looks like this::"
msgstr "Očekávaný výstup vypadá takto::"
-#: ../../source/install.rst:169
+#: ../../source/install.rst:173
#, fuzzy
msgid ""
"If you don't see ``Good signature from``, there might be a problem with the "
@@ -449,7 +470,7 @@ msgstr ""
"``VAROVÁNÍ:`` neznamená problém s balíčkem, ale pouze to, že jste "
"nedefinovali úroveň \"důvěryhodnosti\" Micahova PGP klíče.)"
-#: ../../source/install.rst:171
+#: ../../source/install.rst:175
#, fuzzy
msgid ""
"The ``WARNING:`` shown above, is not a problem with the package, it only "
@@ -461,7 +482,7 @@ msgstr ""
"``VAROVÁNÍ:`` neznamená problém s balíčkem, ale pouze to, že jste "
"nedefinovali úroveň \"důvěryhodnosti\" Micahova PGP klíče.)"
-#: ../../source/install.rst:173
+#: ../../source/install.rst:177
msgid ""
"If you want to learn more about verifying PGP signatures, the guides for "
"`Qubes OS `_ and "
diff --git a/docs/source/locale/cs/LC_MESSAGES/security.po b/docs/source/locale/cs/LC_MESSAGES/security.po
index 69e9a469..c32507cf 100644
--- a/docs/source/locale/cs/LC_MESSAGES/security.po
+++ b/docs/source/locale/cs/LC_MESSAGES/security.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2022-08-10 19:21+0000\n"
"Last-Translator: Toro \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/cs/LC_MESSAGES/sphinx.po b/docs/source/locale/cs/LC_MESSAGES/sphinx.po
index 83bf749e..43f0268a 100644
--- a/docs/source/locale/cs/LC_MESSAGES/sphinx.po
+++ b/docs/source/locale/cs/LC_MESSAGES/sphinx.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2022-08-09 18:18+0000\n"
"Last-Translator: Toro \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/cs/LC_MESSAGES/tor.po b/docs/source/locale/cs/LC_MESSAGES/tor.po
index 8c61a663..6c2a89bd 100644
--- a/docs/source/locale/cs/LC_MESSAGES/tor.po
+++ b/docs/source/locale/cs/LC_MESSAGES/tor.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-06-02 11:21+0000\n"
"Last-Translator: emma peel \n"
"Language-Team: none\n"
diff --git a/docs/source/locale/da/LC_MESSAGES/advanced.po b/docs/source/locale/da/LC_MESSAGES/advanced.po
index ffb8d70f..62a8838e 100644
--- a/docs/source/locale/da/LC_MESSAGES/advanced.po
+++ b/docs/source/locale/da/LC_MESSAGES/advanced.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -65,8 +65,8 @@ msgstr ""
#: ../../source/advanced.rst:28
msgid ""
"The Tor Browser will ask you to enter your private key when you load an "
-"OnionShare service. If you want allow the public to use your service, it's "
-"better to disable the private key altogether."
+"OnionShare service. If you want to allow the public to use your service, "
+"it's better to disable the private key altogether."
msgstr ""
#: ../../source/advanced.rst:31
@@ -109,9 +109,9 @@ msgstr ""
#: ../../source/advanced.rst:51
msgid ""
-"Services scheduled to start in the future display a countdown timer when "
-"when the \"Start sharing\" button is clicked. Services scheduled to stop in "
-"the future display a countdown timer when started."
+"Services scheduled to start in the future display a countdown timer when the "
+"\"Start sharing\" button is clicked. Services scheduled to stop in the "
+"future display a countdown timer when started."
msgstr ""
#: ../../source/advanced.rst:54
@@ -139,53 +139,747 @@ msgid ""
"interface."
msgstr ""
-#: ../../source/advanced.rst:72
-msgid ""
-"You can install just the command-line version of OnionShare using ``pip3``::"
+#: ../../source/advanced.rst:73
+msgid "Installing the CLI version"
msgstr ""
-#: ../../source/advanced.rst:76
+#: ../../source/advanced.rst:75
+msgid ""
+"If you have installed the Snap, macOS or Windows package, you already have "
+"the CLI version installed."
+msgstr ""
+
+#: ../../source/advanced.rst:77
+msgid ""
+"Alternatively, you can install just the command-line version of OnionShare "
+"using ``pip3``::"
+msgstr ""
+
+#: ../../source/advanced.rst:81
msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``"
msgstr ""
-#: ../../source/advanced.rst:78
+#: ../../source/advanced.rst:83
msgid "Then run it like this::"
msgstr ""
-#: ../../source/advanced.rst:82
+#: ../../source/advanced.rst:87
msgid ""
"Info about installing it on different operating systems can be found in the "
"`CLI README file `_ in the Git repository."
msgstr ""
-#: ../../source/advanced.rst:84
-msgid ""
-"If you installed OnionShare using the Snap package, you can also just run "
-"``onionshare.cli`` to access the command-line interface version."
+#: ../../source/advanced.rst:90
+msgid "Running the CLI from Snap"
msgstr ""
-#: ../../source/advanced.rst:87
+#: ../../source/advanced.rst:92
+msgid ""
+"If you installed OnionShare using the Snap package, you can run ``onionshare."
+"cli`` to access the command-line interface version."
+msgstr ""
+
+#: ../../source/advanced.rst:95
+msgid "Running the CLI from macOS"
+msgstr ""
+
+#: ../../source/advanced.rst:97
+msgid ""
+"From Terminal, you can run ``/Applications/OnionShare.app/Contents/MacOS/"
+"onionshare-cli --help``"
+msgstr ""
+
+#: ../../source/advanced.rst:100
+msgid "Running the CLI from Windows"
+msgstr ""
+
+#: ../../source/advanced.rst:102
+msgid ""
+"In the Windows installation, the executable ``onionshare-cli.exe`` is "
+"available."
+msgstr ""
+
+#: ../../source/advanced.rst:105
msgid "Usage"
msgstr ""
-#: ../../source/advanced.rst:89
+#: ../../source/advanced.rst:107
msgid ""
"Browse the command-line documentation by running ``onionshare --help``::"
msgstr ""
-#: ../../source/advanced.rst:151
+#: ../../source/advanced.rst:170
+msgid "Running the CLI as a systemd unit file"
+msgstr ""
+
+#: ../../source/advanced.rst:172
+msgid ""
+"It is possible to automatically start OnionShare from the CLI using a "
+"systemd unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:174
+msgid ""
+"You may find this particularly useful if you are operating in 'persistent' "
+"mode, and want to start the same onion service every time your machine "
+"starts."
+msgstr ""
+
+#: ../../source/advanced.rst:176
+msgid "To do this, you need to prepare some OnionShare json config first."
+msgstr ""
+
+#: ../../source/advanced.rst:178
+msgid ""
+"Here is the main OnionShare config. In this example, it's stored in ``/home/"
+"user/.config/onionshare/onionshare.json``. You may need to adjust some of "
+"the settings, but if you already have OnionShare installed, it probably "
+"looks much like this already::"
+msgstr ""
+
+#: ../../source/advanced.rst:207
+msgid ""
+"Notice the 'persistent_tabs' section. We will now create a file at ``/home/"
+"user/.config/onionshare/persistent/my-persistent-onion.json``, that looks "
+"like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:247
+msgid ""
+"**Don't actually use this private key, service_id or client_auth keys! They "
+"are shown only as an example. Never share the private_key with anyone.**"
+msgstr ""
+
+#: ../../source/advanced.rst:249
+msgid ""
+"The easiest way to generate the onion address and private key is to first "
+"create a 'pinned' OnionShare tab in the desktop app and started the share "
+"for the first time. This will then have saved the persistent settings to "
+"your ``.config/onionshare/persistent/`` folder with a random name. You can "
+"unpin that tab once you've generated it the first time. Or, you can leave it "
+"where it is, and use that persistent file in your systemd unit file below."
+msgstr ""
+
+#: ../../source/advanced.rst:251
+msgid ""
+"Now you can create a systemd unit file in ``/etc/systemd/system/onionshare-"
+"cli.service``. Be sure to adjust the User and Group to your own user/group, "
+"as well as changes to any paths to the onionshare-cli binary or the paths to "
+"your JSON configs and shares."
+msgstr ""
+
+#: ../../source/advanced.rst:253
+msgid "The systemd unit file should look like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:268
+msgid ""
+"Note that although ``/home/user/my-shared-file.txt`` was defined in the "
+"``filenames`` section of the ``my-persistent-onion.json`` file, it's still "
+"necessary to specify it as the argument to the onionshare-cli command."
+msgstr ""
+
+#: ../../source/advanced.rst:270
+msgid ""
+"Be sure to run ``sudo systemctl daemon-reload`` after creating the unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:272
+msgid ""
+"Now you can run ``sudo systemctl start onionshare-cli.service``. If you have "
+"``journalctl`` installed, you can run ``sudo journalctl -f -t onionshare-"
+"cli``, and you should see some output of your service starting::"
+msgstr ""
+
+#: ../../source/advanced.rst:282
+msgid ""
+"If you don't want your users to use a Private Key, set ``public`` to be "
+"``true`` in the ``general`` settings of the my-persistent-onion.json file."
+msgstr ""
+
+#: ../../source/advanced.rst:286
msgid "Keyboard Shortcuts"
msgstr ""
-#: ../../source/advanced.rst:153
+#: ../../source/advanced.rst:288
msgid ""
"The OnionShare desktop application contains some keyboard shortcuts, for "
"convenience and accessibility::"
msgstr ""
-#: ../../source/advanced.rst:158
+#: ../../source/advanced.rst:293
msgid "And from the main mode chooser screen::"
msgstr ""
+
+#: ../../source/advanced.rst:303
+msgid "Migrating your OnionShare data to another computer"
+msgstr ""
+
+#: ../../source/advanced.rst:305
+msgid ""
+"You may want to migrate your OnionShare data when switching to another "
+"computer. This is especially true if you had a 'persistent' onion address "
+"and you want to preserve it."
+msgstr ""
+
+#: ../../source/advanced.rst:307
+msgid ""
+"OnionShare stores all such data in a specific folder. Copy the relevant "
+"folder for your operating system below, to your new computer:"
+msgstr ""
+
+#: ../../source/advanced.rst:309
+msgid "Linux: ``~/.config/onionshare``"
+msgstr ""
+
+#: ../../source/advanced.rst:310
+msgid "macOS: ``~/Library/Application Support/OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:311
+msgid "Windows: ``%APPDATA%\\OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:315
+msgid "Configuration file parameters"
+msgstr ""
+
+#: ../../source/advanced.rst:317
+msgid ""
+"OnionShare stores its settings in a JSON file. Both the CLI and the Desktop "
+"versions use this configuration file. The CLI also lets you specify a path "
+"to a custom configuration file with ``--config``."
+msgstr ""
+
+#: ../../source/advanced.rst:319
+msgid ""
+"Below are the configuration file parameters and what they mean. If your "
+"configuration file has other parameters not listed here, they may be "
+"obsolete from older OnionShare versions."
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Parameter"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Type"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Explanation"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid "version"
+msgstr ""
+
+#: ../../source/advanced.rst:324 ../../source/advanced.rst:325
+#: ../../source/advanced.rst:326 ../../source/advanced.rst:328
+#: ../../source/advanced.rst:330 ../../source/advanced.rst:331
+#: ../../source/advanced.rst:332 ../../source/advanced.rst:337
+#: ../../source/advanced.rst:338 ../../source/advanced.rst:339
+#: ../../source/advanced.rst:340 ../../source/advanced.rst:343
+#: ../../source/advanced.rst:404 ../../source/advanced.rst:405
+#: ../../source/advanced.rst:406 ../../source/advanced.rst:415
+#: ../../source/advanced.rst:426 ../../source/advanced.rst:430
+#: ../../source/advanced.rst:452 ../../source/advanced.rst:453
+#: ../../source/advanced.rst:465
+msgid "``string``"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid ""
+"The version of OnionShare. You should not ever need to change this value."
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid "connection_type"
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid ""
+"The way in which OnionShare connects to Tor. Valid options are 'bundled', "
+"'automatic' (use Tor Browser's Tor connection), 'control_port' or "
+"'socket_file'. Default: 'bundled'"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid "control_port_address"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid ""
+"The IP address of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid "control_port_port"
+msgstr ""
+
+#: ../../source/advanced.rst:327 ../../source/advanced.rst:329
+#: ../../source/advanced.rst:335
+msgid "``integer``"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid ""
+"The port number of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '9051'"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid "socks_address"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid ""
+"The IP address of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid "socks_port"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid ""
+"The port number of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: ''9050'"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid "socket_file_path"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid ""
+"The path to Tor's socket file, if ``connection_type`` is set to "
+"'socket_file'. Default: '/var/run/tor/control'"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid "auth_type"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid ""
+"If access to Tor's control port requires a password, this can be set to "
+"'password', otherwise 'no_auth'. Default: 'no_auth'"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid "auth_password"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid ""
+"If access to Tor's control port requires a password, and ``auth_type`` is "
+"set to 'password', specify the password here. Default: ''"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid "auto_connect"
+msgstr ""
+
+#: ../../source/advanced.rst:333 ../../source/advanced.rst:334
+#: ../../source/advanced.rst:336 ../../source/advanced.rst:344
+#: ../../source/advanced.rst:416 ../../source/advanced.rst:417
+#: ../../source/advanced.rst:427 ../../source/advanced.rst:428
+#: ../../source/advanced.rst:429 ../../source/advanced.rst:441
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:454
+#: ../../source/advanced.rst:455 ../../source/advanced.rst:464
+#: ../../source/advanced.rst:466
+msgid "``boolean``"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid ""
+"Whether OnionShare should automatically connect to Tor when it starts. "
+"Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid "use_autoupdate"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid ""
+"Whether OnionShare should automatically check for updates (over Tor). This "
+"setting is only valid for MacOS or Windows installations. Default: True."
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "autoupdate_timestamp"
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "The last time OnionShare checked for updates. Default: None"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "bridges_enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "Whether to connect to Tor using bridges. Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid "bridges_type"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid ""
+"When ``bridges_enabled`` is True, where to load bridges from. Options are "
+"\"built-in\" (bridges shipped with OnionShare and which may get updated from "
+"Tor), \"moat\" (request bridges from Tor's Moat API), or \"custom\" (user-"
+"supplied bridges). Default: \"built-in\""
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid "bridges_builtin_pt"
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", this specifies which type of "
+"bridge protocol to use. Options are \"obfs4\", \"meek-azure\" or "
+"\"snowflake\". Default: \"obfs4\""
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid "bridges_moat"
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid ""
+"When ``bridges_type`` is set to \"moat\", the bridges returned from Tor's "
+"Moat API are stored here. Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid "bridges_custom"
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid ""
+"When ``bridges_type`` is set to \"custom\", the bridges specified by the "
+"user are stored here. Separate each bridge line in the string with '\\n'. "
+"Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "bridges_builtin"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "``dict``"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", OnionShare obtains the latest "
+"built-in bridges recommended by Tor and stores them here. Default: {}"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid "persistent_tabs"
+msgstr ""
+
+#: ../../source/advanced.rst:342 ../../source/advanced.rst:442
+#: ../../source/advanced.rst:467
+msgid "``list``"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid ""
+"If the user has defined any tabs as 'saved' (meaning that they are "
+"persistent each time OnionShare starts, and their onion address doesn't "
+"change), these are given a random identifier which gets listed here. The "
+"persistent onion is stored as a JSON file with the same name as this "
+"identifier, in a subfolder of the OnionShare configuration folder called "
+"'persistent'. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid "locale"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid ""
+"The locale used in OnionShare. Default: None (which is the same as 'en'). "
+"For valid locale codes, see 'available_locales' in https://github.com/"
+"onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid "theme"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid ""
+"The theme for the OnionShare desktop app. Valid options are 0 (automatically "
+"detect the user's computer's light or dark theme), 1 (light) or 2 (dark)."
+msgstr ""
+
+#: ../../source/advanced.rst:349
+msgid "Configuration file parameters for persistent onions"
+msgstr ""
+
+#: ../../source/advanced.rst:351
+msgid ""
+"As described above, each 'persistent' onion has parameters of its own which "
+"are stored in its own JSON file. The path to this file can be specified for "
+"the CLI tool with ``--persistent``."
+msgstr ""
+
+#: ../../source/advanced.rst:353
+msgid "Here is an example persistent JSON configuration::"
+msgstr ""
+
+#: ../../source/advanced.rst:396
+msgid ""
+"Below are the configuration file parameters for a persistent onion and what "
+"they mean, for each section in the JSON"
+msgstr ""
+
+#: ../../source/advanced.rst:399
+msgid "onion"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "private_key"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+msgid "Base64-encoded private key of the onion service"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid "client_auth_priv_key"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid ""
+"The private key when using Client Authentication. Send this to the user."
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid "client_auth_pub_key"
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid ""
+"The public key when using Client Authentication. Used on OnionShare's side."
+msgstr ""
+
+#: ../../source/advanced.rst:410
+msgid "persistent"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid "mode"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid ""
+"The mode used by this persistent onion. Options are \"share\", \"receive\", "
+"\"website\" or \"chat\"."
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid "enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid ""
+"Whether persistence is enabled for this onion. When the persistent option is "
+"unchecked in the desktop, this entire JSON file is deleted. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid "autostart_on_launch"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid ""
+"Whether to automatically start this persistent onion when OnionShare starts "
+"and once Tor is connected. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:421
+msgid "general"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid "title"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid ""
+"An optional custom title for displaying on the onion service. Default: null "
+"(\"OnionShare\" will be shown instead)"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid "public"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid ""
+"Whether the onion service can be accessed with or without a Private Key "
+"(Client Authentication). If true, no Private Key is required."
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid "autostart_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid ""
+"Whether the onion service is configured to start at a specific time. The "
+"time can be set in the desktop app or specified in seconds with ``--auto-"
+"start-timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid "autostop_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid ""
+"Whether the onion service is configured to stop at a specific time. The time "
+"can be set in the desktop app or specified in seconds with ``--auto-stop-"
+"timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid "service_id"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid ""
+"The 32-character onion service URL, without the scheme and without the '."
+"onion' suffix."
+msgstr ""
+
+#: ../../source/advanced.rst:433
+msgid ""
+"The below are settings specific to the 'mode' specified in the "
+"``persistent`` section above."
+msgstr ""
+
+#: ../../source/advanced.rst:436
+msgid "share"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid "autostop_sharing"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid ""
+"Whether to automatically stop the share once files are downloaded the first "
+"time. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "A list of files to share. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid "log_filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid ""
+"Whether to log URL requests to stdout when using the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:447
+msgid "receive"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid "data_dir"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid ""
+"The path where received files or text messages will be stored. Default: the "
+"'OnionShare' folder of the user's home directory."
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid "webhook_url"
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid ""
+"A webhook URL that OnionShare will POST to when it receives files or text "
+"messages. Default: null"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "disable_text"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "Whether to disable receiving text messages. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "disable_files"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "Whether to disable receiving files. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:459
+msgid "website"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid "disable_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid ""
+"If set to ``true``, OnionShare won't set its default Content Security Policy "
+"header for the website. Default: ``false``"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "custom_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+msgid "A custom Content Security Policy header to send instead of the default."
+msgstr ""
+
+#: ../../source/advanced.rst:471
+msgid "chat"
+msgstr ""
+
+#: ../../source/advanced.rst:473
+msgid "There are currently no configurable settings for the Chat mode."
+msgstr ""
diff --git a/docs/source/locale/da/LC_MESSAGES/develop.po b/docs/source/locale/da/LC_MESSAGES/develop.po
index 49317029..756cb12e 100644
--- a/docs/source/locale/da/LC_MESSAGES/develop.po
+++ b/docs/source/locale/da/LC_MESSAGES/develop.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/source/locale/da/LC_MESSAGES/features.po b/docs/source/locale/da/LC_MESSAGES/features.po
index 6595fd00..8c5e1cb6 100644
--- a/docs/source/locale/da/LC_MESSAGES/features.po
+++ b/docs/source/locale/da/LC_MESSAGES/features.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -85,7 +85,7 @@ msgid ""
"share, and click \"Start sharing\"."
msgstr ""
-#: ../../source/features.rst:35 ../../source/features.rst:112
+#: ../../source/features.rst:35 ../../source/features.rst:117
msgid ""
"After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing."
@@ -247,17 +247,29 @@ msgid ""
msgstr ""
#: ../../source/features.rst:102
-msgid "Host a Website"
+msgid "Other caveats to be aware of in Receive Mode"
msgstr ""
#: ../../source/features.rst:104
msgid ""
+"There are reports that OnionBrowser on iOS devices are unable to upload "
+"files to an OnionShare in Receive Mode, when operating in 'Silver' security "
+"mode. Try Bronze or Gold to see if you are able to upload a message or a "
+"file."
+msgstr ""
+
+#: ../../source/features.rst:107
+msgid "Host a Website"
+msgstr ""
+
+#: ../../source/features.rst:109
+msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag the "
"files and folders that make up the static content there, and click \"Start "
"sharing\" when you are ready."
msgstr ""
-#: ../../source/features.rst:108
+#: ../../source/features.rst:113
msgid ""
"If you add an ``index.html`` file, it will render when someone loads your "
"website. You should also include any other HTML files, CSS files, JavaScript "
@@ -266,17 +278,17 @@ msgid ""
"or use databases. So you can't for example use WordPress.)"
msgstr ""
-#: ../../source/features.rst:110
+#: ../../source/features.rst:115
msgid ""
"If you don't have an ``index.html`` file, it will show a directory listing "
"instead, and people loading it can look through the files and download them."
msgstr ""
-#: ../../source/features.rst:117
+#: ../../source/features.rst:122
msgid "Content Security Policy"
msgstr ""
-#: ../../source/features.rst:119
+#: ../../source/features.rst:124
msgid ""
"By default OnionShare helps secure your website by setting a strict `Content "
"Security Policy `_ "
@@ -284,28 +296,28 @@ msgid ""
"web page."
msgstr ""
-#: ../../source/features.rst:121
+#: ../../source/features.rst:126
msgid ""
"If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, you have two options:"
msgstr ""
-#: ../../source/features.rst:123
+#: ../../source/features.rst:128
msgid ""
"You can disable sending a Content Security Policy header by checking the "
"\"Don't send Content Security Policy header (allows your website to use "
"third-party resources)\" box before starting the service."
msgstr ""
-#: ../../source/features.rst:124
+#: ../../source/features.rst:129
msgid "You can send a custom Content Security Policy header."
msgstr ""
-#: ../../source/features.rst:127
+#: ../../source/features.rst:132
msgid "Tips for running a website service"
msgstr ""
-#: ../../source/features.rst:129
+#: ../../source/features.rst:134
msgid ""
"If you want to host a long-term website using OnionShare (meaning not just "
"to quickly show someone something), it's recommended you do it on a "
@@ -315,23 +327,23 @@ msgid ""
"close OnionShare and re-open it later."
msgstr ""
-#: ../../source/features.rst:132
+#: ../../source/features.rst:137
msgid ""
"If your website is intended for the public, you should run it as a public "
"service (see :ref:`turn_off_private_key`)."
msgstr ""
-#: ../../source/features.rst:135
+#: ../../source/features.rst:140
msgid "Chat Anonymously"
msgstr ""
-#: ../../source/features.rst:137
+#: ../../source/features.rst:142
msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't "
"log anything. Just open a chat tab and click \"Start chat server\"."
msgstr ""
-#: ../../source/features.rst:141
+#: ../../source/features.rst:146
msgid ""
"After you start the server, copy the OnionShare address and private key and "
"send them to the people you want in the anonymous chat room. If it's "
@@ -339,7 +351,7 @@ msgid ""
"send out the OnionShare address and private key."
msgstr ""
-#: ../../source/features.rst:146
+#: ../../source/features.rst:151
msgid ""
"People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to "
@@ -347,7 +359,7 @@ msgid ""
"or \"Safer\", instead of \"Safest\"."
msgstr ""
-#: ../../source/features.rst:149
+#: ../../source/features.rst:154
msgid ""
"When someone joins the chat room they get assigned a random name. They can "
"change their name by typing a new name in the box in the left panel and "
@@ -355,30 +367,30 @@ msgid ""
"displayed at all, even if others were already chatting in the room."
msgstr ""
-#: ../../source/features.rst:155
+#: ../../source/features.rst:160
msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change their "
"name to anything, and there is no way to confirm anyone's identity."
msgstr ""
-#: ../../source/features.rst:158
+#: ../../source/features.rst:163
msgid ""
"However, if you create an OnionShare chat room and securely send the address "
"only to a small group of trusted friends using encrypted messages, you can "
"be reasonably confident the people joining the chat room are your friends."
msgstr ""
-#: ../../source/features.rst:161
+#: ../../source/features.rst:166
msgid "How is this useful?"
msgstr ""
-#: ../../source/features.rst:163
+#: ../../source/features.rst:168
msgid ""
"If you need to already be using an encrypted messaging app, what's the point "
"of an OnionShare chat room to begin with? It leaves less traces."
msgstr ""
-#: ../../source/features.rst:165
+#: ../../source/features.rst:170
msgid ""
"If you for example send a message to a Signal group, a copy of your message "
"ends up on each device (the smartphones, and computers if they set up Signal "
@@ -389,7 +401,7 @@ msgid ""
"any messages anywhere, so the problem is reduced to a minimum."
msgstr ""
-#: ../../source/features.rst:168
+#: ../../source/features.rst:173
msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any "
@@ -398,11 +410,11 @@ msgid ""
"journalist to join the chat room, all without compromosing their anonymity."
msgstr ""
-#: ../../source/features.rst:172
+#: ../../source/features.rst:177
msgid "How does the encryption work?"
msgstr ""
-#: ../../source/features.rst:174
+#: ../../source/features.rst:179
msgid ""
"Because OnionShare relies on Tor onion services, connections between the Tor "
"Browser and OnionShare are all end-to-end encrypted (E2EE). When someone "
@@ -411,7 +423,7 @@ msgid ""
"of the chat room using WebSockets, through their E2EE onion connections."
msgstr ""
-#: ../../source/features.rst:176
+#: ../../source/features.rst:181
msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on "
"the Tor onion service's encryption instead."
diff --git a/docs/source/locale/da/LC_MESSAGES/help.po b/docs/source/locale/da/LC_MESSAGES/help.po
index 5eb10093..c3ea0241 100644
--- a/docs/source/locale/da/LC_MESSAGES/help.po
+++ b/docs/source/locale/da/LC_MESSAGES/help.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/source/locale/da/LC_MESSAGES/index.po b/docs/source/locale/da/LC_MESSAGES/index.po
index 5f8e3af5..5bca733a 100644
--- a/docs/source/locale/da/LC_MESSAGES/index.po
+++ b/docs/source/locale/da/LC_MESSAGES/index.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/source/locale/da/LC_MESSAGES/install.po b/docs/source/locale/da/LC_MESSAGES/install.po
index a2ccc7a3..845a9e76 100644
--- a/docs/source/locale/da/LC_MESSAGES/install.po
+++ b/docs/source/locale/da/LC_MESSAGES/install.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -40,7 +40,7 @@ msgstr ""
msgid "You can download OnionShare for Mobile from the follow links"
msgstr ""
-#: ../../source/install.rst:18
+#: ../../source/install.rst:16
msgid "Android"
msgstr ""
@@ -54,7 +54,7 @@ msgstr ""
msgid "F-Droid: https://github.com/onionshare/onionshare-android-nightly"
msgstr ""
-#: ../../source/install.rst:24
+#: ../../source/install.rst:20
msgid "iOS"
msgstr ""
@@ -305,11 +305,11 @@ msgstr ""
#: ../../source/install.rst:117
msgid ""
"Packages are signed by the core developer who is responsible for the "
-"particular release. Following are the informations of the core developers of "
-"OnionShare:"
+"particular release. Here is the GPG key information for each of the core "
+"developers of OnionShare:"
msgstr ""
-#: ../../source/install.rst:122
+#: ../../source/install.rst:120
msgid "Micah Lee:"
msgstr ""
@@ -325,7 +325,7 @@ msgid ""
"fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
msgstr ""
-#: ../../source/install.rst:126
+#: ../../source/install.rst:124
msgid "Saptak Sengupta:"
msgstr ""
@@ -342,17 +342,33 @@ msgid ""
msgstr ""
#: ../../source/install.rst:128
+msgid "Miguel Jacq:"
+msgstr ""
+
+#: ../../source/install.rst:129
+msgid ""
+"PGP public key fingerprint ``00AE817C24A10C2540461A9C1D7CDE0234DB458D``."
+msgstr ""
+
+#: ../../source/install.rst:130
+msgid ""
+"You can download Miguel's key `from the keys.openpgp.org keyserver `_."
+msgstr ""
+
+#: ../../source/install.rst:132
msgid ""
"You must have GnuPG installed to verify signatures. For macOS you probably "
"want `GPGTools `_, and for Windows you probably want "
"`Gpg4win `_."
msgstr ""
-#: ../../source/install.rst:131
+#: ../../source/install.rst:135
msgid "Signatures"
msgstr ""
-#: ../../source/install.rst:133
+#: ../../source/install.rst:137
msgid ""
"You can find the signatures (as ``.asc`` files), as well as Windows, macOS, "
"Flatpak, Snap, and source packages, at https://onionshare.org/dist/ in the "
@@ -360,52 +376,52 @@ msgid ""
"`GitHub Releases page `_."
msgstr ""
-#: ../../source/install.rst:137
+#: ../../source/install.rst:141
msgid "Verifying"
msgstr ""
-#: ../../source/install.rst:139
+#: ../../source/install.rst:143
msgid ""
"Once you have imported the core developers public keys into your GnuPG "
"keychain, downloaded the binary and ``.asc`` signature, you can verify the "
"binary in a terminal like this:"
msgstr ""
-#: ../../source/install.rst:141
+#: ../../source/install.rst:145
msgid "For Windows::"
msgstr ""
-#: ../../source/install.rst:145
+#: ../../source/install.rst:149
msgid "For macOS::"
msgstr ""
-#: ../../source/install.rst:149
+#: ../../source/install.rst:153
msgid "For Linux::"
msgstr ""
-#: ../../source/install.rst:155
+#: ../../source/install.rst:159
msgid "and for the source file::"
msgstr ""
-#: ../../source/install.rst:159
+#: ../../source/install.rst:163
msgid "The expected output looks like this::"
msgstr ""
-#: ../../source/install.rst:169
+#: ../../source/install.rst:173
msgid ""
"If you don't see ``Good signature from``, there might be a problem with the "
"integrity of the file (malicious or otherwise), and you should not install "
"the package."
msgstr ""
-#: ../../source/install.rst:171
+#: ../../source/install.rst:175
msgid ""
"The ``WARNING:`` shown above, is not a problem with the package, it only "
"means you haven't defined a level of \"trust\" of Micah's (the core "
"developer) PGP key."
msgstr ""
-#: ../../source/install.rst:173
+#: ../../source/install.rst:177
msgid ""
"If you want to learn more about verifying PGP signatures, the guides for "
"`Qubes OS `_ and "
diff --git a/docs/source/locale/da/LC_MESSAGES/security.po b/docs/source/locale/da/LC_MESSAGES/security.po
index a5f731f4..f7d83f86 100644
--- a/docs/source/locale/da/LC_MESSAGES/security.po
+++ b/docs/source/locale/da/LC_MESSAGES/security.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/source/locale/da/LC_MESSAGES/sphinx.po b/docs/source/locale/da/LC_MESSAGES/sphinx.po
index 4d7b1f99..1e31ec5f 100644
--- a/docs/source/locale/da/LC_MESSAGES/sphinx.po
+++ b/docs/source/locale/da/LC_MESSAGES/sphinx.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/source/locale/da/LC_MESSAGES/tor.po b/docs/source/locale/da/LC_MESSAGES/tor.po
index 193bcdd8..26805008 100644
--- a/docs/source/locale/da/LC_MESSAGES/tor.po
+++ b/docs/source/locale/da/LC_MESSAGES/tor.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/source/locale/de/LC_MESSAGES/advanced.po b/docs/source/locale/de/LC_MESSAGES/advanced.po
index e3ace5c3..8f194a9f 100644
--- a/docs/source/locale/de/LC_MESSAGES/advanced.po
+++ b/docs/source/locale/de/LC_MESSAGES/advanced.po
@@ -7,17 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
-"PO-Revision-Date: 2023-12-25 11:10+0000\n"
-"Last-Translator: curtisb \n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
+"PO-Revision-Date: 2025-02-11 08:01+0000\n"
+"Last-Translator: Ettore Atalan \n"
"Language-Team: de \n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.4-dev\n"
-"Generated-By: Babel 2.10.3\n"
+"Generated-By: Babel 2.17.0\n"
#: ../../source/advanced.rst:2
msgid "Advanced Usage"
@@ -79,10 +78,11 @@ msgstr ""
"gesichert. Dies wird im Tor-Kontext \"Client-Authentifizierung\" genannt."
#: ../../source/advanced.rst:28
+#, fuzzy
msgid ""
"The Tor Browser will ask you to enter your private key when you load an "
-"OnionShare service. If you want allow the public to use your service, it's "
-"better to disable the private key altogether."
+"OnionShare service. If you want to allow the public to use your service, "
+"it's better to disable the private key altogether."
msgstr ""
"Der Tor-Browser wird dich auffordern, deinen privaten Schlüssel einzugeben, "
"wenn du einen OnionShare-Dienst lädst. Wenn du der Öffentlichkeit erlauben "
@@ -144,10 +144,11 @@ msgstr ""
"samt Uhrzeit fest."
#: ../../source/advanced.rst:51
+#, fuzzy
msgid ""
-"Services scheduled to start in the future display a countdown timer when "
-"when the \"Start sharing\" button is clicked. Services scheduled to stop in "
-"the future display a countdown timer when started."
+"Services scheduled to start in the future display a countdown timer when the "
+"\"Start sharing\" button is clicked. Services scheduled to stop in the "
+"future display a countdown timer when started."
msgstr ""
"Bei Diensten, die in der Zukunft starten sollen, wird ein Countdown-Timer "
"angezeigt, wenn die Schaltfläche \"Freigabe starten\" angeklickt wird. Bei "
@@ -192,14 +193,26 @@ msgstr ""
"Zusätzlich zur grafischen Oberfläche verfügt OnionShare auch über eine "
"Kommandozeilen-Schnittstelle."
-#: ../../source/advanced.rst:72
+#: ../../source/advanced.rst:73
+msgid "Installing the CLI version"
+msgstr "Installation der Befehlszeilenversion"
+
+#: ../../source/advanced.rst:75
msgid ""
-"You can install just the command-line version of OnionShare using ``pip3``::"
+"If you have installed the Snap, macOS or Windows package, you already have "
+"the CLI version installed."
+msgstr ""
+
+#: ../../source/advanced.rst:77
+#, fuzzy
+msgid ""
+"Alternatively, you can install just the command-line version of OnionShare "
+"using ``pip3``::"
msgstr ""
"Du kannst eine Kommandozeilen-Version von OnionShare mit ``pip3`` "
"installieren::"
-#: ../../source/advanced.rst:76
+#: ../../source/advanced.rst:81
msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``"
@@ -207,11 +220,11 @@ msgstr ""
"Beachte, dass du auch hierfür das ``tor``-Paket installiert haben musst. "
"Unter macOS kannst du dieses mit ``brew install tor`` installieren"
-#: ../../source/advanced.rst:78
+#: ../../source/advanced.rst:83
msgid "Then run it like this::"
msgstr "Führe es dann wie folgt aus::"
-#: ../../source/advanced.rst:82
+#: ../../source/advanced.rst:87
msgid ""
"Info about installing it on different operating systems can be found in the "
"`CLI README file `_ im Git-Repository."
-#: ../../source/advanced.rst:84
+#: ../../source/advanced.rst:90
+msgid "Running the CLI from Snap"
+msgstr ""
+
+#: ../../source/advanced.rst:92
+#, fuzzy
msgid ""
-"If you installed OnionShare using the Snap package, you can also just run "
-"``onionshare.cli`` to access the command-line interface version."
+"If you installed OnionShare using the Snap package, you can run ``onionshare."
+"cli`` to access the command-line interface version."
msgstr ""
"Falls du OnionShare über das Snap-Paket installiert hast, kannst du einfach "
"``onionshare.cli`` ausführen, um zur Kommandozeilen-Version zu gelangen."
-#: ../../source/advanced.rst:87
+#: ../../source/advanced.rst:95
+msgid "Running the CLI from macOS"
+msgstr ""
+
+#: ../../source/advanced.rst:97
+msgid ""
+"From Terminal, you can run ``/Applications/OnionShare.app/Contents/MacOS/"
+"onionshare-cli --help``"
+msgstr ""
+
+#: ../../source/advanced.rst:100
+msgid "Running the CLI from Windows"
+msgstr ""
+
+#: ../../source/advanced.rst:102
+msgid ""
+"In the Windows installation, the executable ``onionshare-cli.exe`` is "
+"available."
+msgstr ""
+
+#: ../../source/advanced.rst:105
msgid "Usage"
msgstr "Benutzung"
-#: ../../source/advanced.rst:89
+#: ../../source/advanced.rst:107
msgid ""
"Browse the command-line documentation by running ``onionshare --help``::"
msgstr ""
"Die Dokumentation zur Kommandozeile kann über den Befehl ``onionshare --"
"help`` abgerufen werden::"
-#: ../../source/advanced.rst:151
+#: ../../source/advanced.rst:170
+msgid "Running the CLI as a systemd unit file"
+msgstr ""
+
+#: ../../source/advanced.rst:172
+msgid ""
+"It is possible to automatically start OnionShare from the CLI using a "
+"systemd unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:174
+msgid ""
+"You may find this particularly useful if you are operating in 'persistent' "
+"mode, and want to start the same onion service every time your machine "
+"starts."
+msgstr ""
+
+#: ../../source/advanced.rst:176
+msgid "To do this, you need to prepare some OnionShare json config first."
+msgstr ""
+
+#: ../../source/advanced.rst:178
+msgid ""
+"Here is the main OnionShare config. In this example, it's stored in ``/home/"
+"user/.config/onionshare/onionshare.json``. You may need to adjust some of "
+"the settings, but if you already have OnionShare installed, it probably "
+"looks much like this already::"
+msgstr ""
+
+#: ../../source/advanced.rst:207
+msgid ""
+"Notice the 'persistent_tabs' section. We will now create a file at ``/home/"
+"user/.config/onionshare/persistent/my-persistent-onion.json``, that looks "
+"like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:247
+msgid ""
+"**Don't actually use this private key, service_id or client_auth keys! They "
+"are shown only as an example. Never share the private_key with anyone.**"
+msgstr ""
+
+#: ../../source/advanced.rst:249
+msgid ""
+"The easiest way to generate the onion address and private key is to first "
+"create a 'pinned' OnionShare tab in the desktop app and started the share "
+"for the first time. This will then have saved the persistent settings to "
+"your ``.config/onionshare/persistent/`` folder with a random name. You can "
+"unpin that tab once you've generated it the first time. Or, you can leave it "
+"where it is, and use that persistent file in your systemd unit file below."
+msgstr ""
+
+#: ../../source/advanced.rst:251
+msgid ""
+"Now you can create a systemd unit file in ``/etc/systemd/system/onionshare-"
+"cli.service``. Be sure to adjust the User and Group to your own user/group, "
+"as well as changes to any paths to the onionshare-cli binary or the paths to "
+"your JSON configs and shares."
+msgstr ""
+
+#: ../../source/advanced.rst:253
+msgid "The systemd unit file should look like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:268
+msgid ""
+"Note that although ``/home/user/my-shared-file.txt`` was defined in the "
+"``filenames`` section of the ``my-persistent-onion.json`` file, it's still "
+"necessary to specify it as the argument to the onionshare-cli command."
+msgstr ""
+
+#: ../../source/advanced.rst:270
+msgid ""
+"Be sure to run ``sudo systemctl daemon-reload`` after creating the unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:272
+msgid ""
+"Now you can run ``sudo systemctl start onionshare-cli.service``. If you have "
+"``journalctl`` installed, you can run ``sudo journalctl -f -t onionshare-"
+"cli``, and you should see some output of your service starting::"
+msgstr ""
+
+#: ../../source/advanced.rst:282
+msgid ""
+"If you don't want your users to use a Private Key, set ``public`` to be "
+"``true`` in the ``general`` settings of the my-persistent-onion.json file."
+msgstr ""
+
+#: ../../source/advanced.rst:286
msgid "Keyboard Shortcuts"
msgstr "Tastaturkurzbefehle"
-#: ../../source/advanced.rst:153
+#: ../../source/advanced.rst:288
msgid ""
"The OnionShare desktop application contains some keyboard shortcuts, for "
"convenience and accessibility::"
@@ -252,10 +379,583 @@ msgstr ""
"Die OnionShare-Desktop-Anwendung enthält einige Tastaturkurzbefehle, die der "
"Bequemlichkeit und Zugänglichkeit dienen::"
-#: ../../source/advanced.rst:158
+#: ../../source/advanced.rst:293
msgid "And from the main mode chooser screen::"
msgstr "Und auf dem Hauptbildschirm für die Modusauswahl::"
+#: ../../source/advanced.rst:303
+msgid "Migrating your OnionShare data to another computer"
+msgstr ""
+
+#: ../../source/advanced.rst:305
+msgid ""
+"You may want to migrate your OnionShare data when switching to another "
+"computer. This is especially true if you had a 'persistent' onion address "
+"and you want to preserve it."
+msgstr ""
+
+#: ../../source/advanced.rst:307
+msgid ""
+"OnionShare stores all such data in a specific folder. Copy the relevant "
+"folder for your operating system below, to your new computer:"
+msgstr ""
+
+#: ../../source/advanced.rst:309
+msgid "Linux: ``~/.config/onionshare``"
+msgstr ""
+
+#: ../../source/advanced.rst:310
+msgid "macOS: ``~/Library/Application Support/OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:311
+msgid "Windows: ``%APPDATA%\\OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:315
+msgid "Configuration file parameters"
+msgstr ""
+
+#: ../../source/advanced.rst:317
+msgid ""
+"OnionShare stores its settings in a JSON file. Both the CLI and the Desktop "
+"versions use this configuration file. The CLI also lets you specify a path "
+"to a custom configuration file with ``--config``."
+msgstr ""
+
+#: ../../source/advanced.rst:319
+msgid ""
+"Below are the configuration file parameters and what they mean. If your "
+"configuration file has other parameters not listed here, they may be "
+"obsolete from older OnionShare versions."
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Parameter"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Type"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Explanation"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid "version"
+msgstr ""
+
+#: ../../source/advanced.rst:324 ../../source/advanced.rst:325
+#: ../../source/advanced.rst:326 ../../source/advanced.rst:328
+#: ../../source/advanced.rst:330 ../../source/advanced.rst:331
+#: ../../source/advanced.rst:332 ../../source/advanced.rst:337
+#: ../../source/advanced.rst:338 ../../source/advanced.rst:339
+#: ../../source/advanced.rst:340 ../../source/advanced.rst:343
+#: ../../source/advanced.rst:404 ../../source/advanced.rst:405
+#: ../../source/advanced.rst:406 ../../source/advanced.rst:415
+#: ../../source/advanced.rst:426 ../../source/advanced.rst:430
+#: ../../source/advanced.rst:452 ../../source/advanced.rst:453
+#: ../../source/advanced.rst:465
+msgid "``string``"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid ""
+"The version of OnionShare. You should not ever need to change this value."
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid "connection_type"
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid ""
+"The way in which OnionShare connects to Tor. Valid options are 'bundled', "
+"'automatic' (use Tor Browser's Tor connection), 'control_port' or "
+"'socket_file'. Default: 'bundled'"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid "control_port_address"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid ""
+"The IP address of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid "control_port_port"
+msgstr ""
+
+#: ../../source/advanced.rst:327 ../../source/advanced.rst:329
+#: ../../source/advanced.rst:335
+msgid "``integer``"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid ""
+"The port number of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '9051'"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid "socks_address"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid ""
+"The IP address of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid "socks_port"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid ""
+"The port number of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: ''9050'"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid "socket_file_path"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid ""
+"The path to Tor's socket file, if ``connection_type`` is set to "
+"'socket_file'. Default: '/var/run/tor/control'"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid "auth_type"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid ""
+"If access to Tor's control port requires a password, this can be set to "
+"'password', otherwise 'no_auth'. Default: 'no_auth'"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid "auth_password"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid ""
+"If access to Tor's control port requires a password, and ``auth_type`` is "
+"set to 'password', specify the password here. Default: ''"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid "auto_connect"
+msgstr ""
+
+#: ../../source/advanced.rst:333 ../../source/advanced.rst:334
+#: ../../source/advanced.rst:336 ../../source/advanced.rst:344
+#: ../../source/advanced.rst:416 ../../source/advanced.rst:417
+#: ../../source/advanced.rst:427 ../../source/advanced.rst:428
+#: ../../source/advanced.rst:429 ../../source/advanced.rst:441
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:454
+#: ../../source/advanced.rst:455 ../../source/advanced.rst:464
+#: ../../source/advanced.rst:466
+msgid "``boolean``"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid ""
+"Whether OnionShare should automatically connect to Tor when it starts. "
+"Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid "use_autoupdate"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid ""
+"Whether OnionShare should automatically check for updates (over Tor). This "
+"setting is only valid for MacOS or Windows installations. Default: True."
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "autoupdate_timestamp"
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "The last time OnionShare checked for updates. Default: None"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "bridges_enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "Whether to connect to Tor using bridges. Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid "bridges_type"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid ""
+"When ``bridges_enabled`` is True, where to load bridges from. Options are "
+"\"built-in\" (bridges shipped with OnionShare and which may get updated from "
+"Tor), \"moat\" (request bridges from Tor's Moat API), or \"custom\" (user-"
+"supplied bridges). Default: \"built-in\""
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid "bridges_builtin_pt"
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", this specifies which type of "
+"bridge protocol to use. Options are \"obfs4\", \"meek-azure\" or "
+"\"snowflake\". Default: \"obfs4\""
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid "bridges_moat"
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid ""
+"When ``bridges_type`` is set to \"moat\", the bridges returned from Tor's "
+"Moat API are stored here. Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid "bridges_custom"
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid ""
+"When ``bridges_type`` is set to \"custom\", the bridges specified by the "
+"user are stored here. Separate each bridge line in the string with '\\n'. "
+"Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "bridges_builtin"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "``dict``"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", OnionShare obtains the latest "
+"built-in bridges recommended by Tor and stores them here. Default: {}"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid "persistent_tabs"
+msgstr ""
+
+#: ../../source/advanced.rst:342 ../../source/advanced.rst:442
+#: ../../source/advanced.rst:467
+msgid "``list``"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid ""
+"If the user has defined any tabs as 'saved' (meaning that they are "
+"persistent each time OnionShare starts, and their onion address doesn't "
+"change), these are given a random identifier which gets listed here. The "
+"persistent onion is stored as a JSON file with the same name as this "
+"identifier, in a subfolder of the OnionShare configuration folder called "
+"'persistent'. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid "locale"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid ""
+"The locale used in OnionShare. Default: None (which is the same as 'en'). "
+"For valid locale codes, see 'available_locales' in https://github.com/"
+"onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid "theme"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid ""
+"The theme for the OnionShare desktop app. Valid options are 0 (automatically "
+"detect the user's computer's light or dark theme), 1 (light) or 2 (dark)."
+msgstr ""
+
+#: ../../source/advanced.rst:349
+msgid "Configuration file parameters for persistent onions"
+msgstr ""
+
+#: ../../source/advanced.rst:351
+msgid ""
+"As described above, each 'persistent' onion has parameters of its own which "
+"are stored in its own JSON file. The path to this file can be specified for "
+"the CLI tool with ``--persistent``."
+msgstr ""
+
+#: ../../source/advanced.rst:353
+msgid "Here is an example persistent JSON configuration::"
+msgstr ""
+
+#: ../../source/advanced.rst:396
+msgid ""
+"Below are the configuration file parameters for a persistent onion and what "
+"they mean, for each section in the JSON"
+msgstr ""
+
+#: ../../source/advanced.rst:399
+msgid "onion"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+#, fuzzy
+msgid "private_key"
+msgstr "Privaten Schlüssel deaktivieren"
+
+#: ../../source/advanced.rst:404
+msgid "Base64-encoded private key of the onion service"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid "client_auth_priv_key"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid ""
+"The private key when using Client Authentication. Send this to the user."
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid "client_auth_pub_key"
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid ""
+"The public key when using Client Authentication. Used on OnionShare's side."
+msgstr ""
+
+#: ../../source/advanced.rst:410
+msgid "persistent"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid "mode"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid ""
+"The mode used by this persistent onion. Options are \"share\", \"receive\", "
+"\"website\" or \"chat\"."
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid "enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid ""
+"Whether persistence is enabled for this onion. When the persistent option is "
+"unchecked in the desktop, this entire JSON file is deleted. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid "autostart_on_launch"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid ""
+"Whether to automatically start this persistent onion when OnionShare starts "
+"and once Tor is connected. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:421
+msgid "general"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid "title"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid ""
+"An optional custom title for displaying on the onion service. Default: null "
+"(\"OnionShare\" will be shown instead)"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid "public"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid ""
+"Whether the onion service can be accessed with or without a Private Key "
+"(Client Authentication). If true, no Private Key is required."
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid "autostart_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid ""
+"Whether the onion service is configured to start at a specific time. The "
+"time can be set in the desktop app or specified in seconds with ``--auto-"
+"start-timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid "autostop_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid ""
+"Whether the onion service is configured to stop at a specific time. The time "
+"can be set in the desktop app or specified in seconds with ``--auto-stop-"
+"timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid "service_id"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid ""
+"The 32-character onion service URL, without the scheme and without the '."
+"onion' suffix."
+msgstr ""
+
+#: ../../source/advanced.rst:433
+msgid ""
+"The below are settings specific to the 'mode' specified in the "
+"``persistent`` section above."
+msgstr ""
+
+#: ../../source/advanced.rst:436
+#, fuzzy
+msgid "share"
+msgstr "Benutzung"
+
+#: ../../source/advanced.rst:441
+msgid "autostop_sharing"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid ""
+"Whether to automatically stop the share once files are downloaded the first "
+"time. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "A list of files to share. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid "log_filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid ""
+"Whether to log URL requests to stdout when using the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:447
+msgid "receive"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid "data_dir"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid ""
+"The path where received files or text messages will be stored. Default: the "
+"'OnionShare' folder of the user's home directory."
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid "webhook_url"
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid ""
+"A webhook URL that OnionShare will POST to when it receives files or text "
+"messages. Default: null"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "disable_text"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "Whether to disable receiving text messages. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "disable_files"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "Whether to disable receiving files. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:459
+msgid "website"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid "disable_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid ""
+"If set to ``true``, OnionShare won't set its default Content Security Policy "
+"header for the website. Default: ``false``"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+#, fuzzy
+msgid "custom_csp"
+msgstr "Benutzerdefinierte Titel"
+
+#: ../../source/advanced.rst:465
+msgid "A custom Content Security Policy header to send instead of the default."
+msgstr ""
+
+#: ../../source/advanced.rst:471
+msgid "chat"
+msgstr ""
+
+#: ../../source/advanced.rst:473
+msgid "There are currently no configurable settings for the Chat mode."
+msgstr ""
+
#~ msgid ""
#~ "By default, everything in OnionShare is temporary. As soon as you close "
#~ "an OnionShare tab its address no longer exists and can't be used again. "
diff --git a/docs/source/locale/de/LC_MESSAGES/develop.po b/docs/source/locale/de/LC_MESSAGES/develop.po
index 8d729bca..2ce34297 100644
--- a/docs/source/locale/de/LC_MESSAGES/develop.po
+++ b/docs/source/locale/de/LC_MESSAGES/develop.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2024-01-25 13:17+0000\n"
"Last-Translator: emma peel \n"
"Language-Team: de \n"
diff --git a/docs/source/locale/de/LC_MESSAGES/features.po b/docs/source/locale/de/LC_MESSAGES/features.po
index 44ca05a8..1e24285f 100644
--- a/docs/source/locale/de/LC_MESSAGES/features.po
+++ b/docs/source/locale/de/LC_MESSAGES/features.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2024-01-25 13:17+0000\n"
"Last-Translator: emma peel \n"
"Language-Team: de \n"
@@ -16,8 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.4-dev\n"
-"Generated-By: Babel 2.9.1\n"
+"Generated-By: Babel 2.14.0\n"
#: ../../source/features.rst:4
msgid "How OnionShare Works"
@@ -114,7 +113,7 @@ msgstr ""
"freizugebenden Dateien und Ordner dort hinein und klicke auf „Freigabe "
"starten“."
-#: ../../source/features.rst:35 ../../source/features.rst:112
+#: ../../source/features.rst:35 ../../source/features.rst:117
msgid ""
"After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing."
@@ -358,10 +357,22 @@ msgstr ""
"einen benutzerdefinierten Titel festzulegen (siehe :ref:`custom_titles`)."
#: ../../source/features.rst:102
+msgid "Other caveats to be aware of in Receive Mode"
+msgstr ""
+
+#: ../../source/features.rst:104
+msgid ""
+"There are reports that OnionBrowser on iOS devices are unable to upload "
+"files to an OnionShare in Receive Mode, when operating in 'Silver' security "
+"mode. Try Bronze or Gold to see if you are able to upload a message or a "
+"file."
+msgstr ""
+
+#: ../../source/features.rst:107
msgid "Host a Website"
msgstr "Eine Webseite hosten"
-#: ../../source/features.rst:104
+#: ../../source/features.rst:109
msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag the "
"files and folders that make up the static content there, and click \"Start "
@@ -371,7 +382,7 @@ msgstr ""
"Webseiten-Reiter, ziehe die Dateien und Ordner hinein, aus denen die "
"statische Webseite besteht, und klicke auf „Webseite veröffentlichen\"."
-#: ../../source/features.rst:108
+#: ../../source/features.rst:113
msgid ""
"If you add an ``index.html`` file, it will render when someone loads your "
"website. You should also include any other HTML files, CSS files, JavaScript "
@@ -386,7 +397,7 @@ msgstr ""
"kann keine Webseiten hosten, die Code ausführen oder auf Datenbanken "
"zugreifen. So kann man z.B. WordPress nicht verwenden.)"
-#: ../../source/features.rst:110
+#: ../../source/features.rst:115
msgid ""
"If you don't have an ``index.html`` file, it will show a directory listing "
"instead, and people loading it can look through the files and download them."
@@ -395,11 +406,11 @@ msgstr ""
"Verzeichnisstruktur angezeigt; beim Aufruf können Personen die Dateien "
"durchsehen und herunterladen."
-#: ../../source/features.rst:117
+#: ../../source/features.rst:122
msgid "Content Security Policy"
msgstr "Content-Security-Policy"
-#: ../../source/features.rst:119
+#: ../../source/features.rst:124
msgid ""
"By default OnionShare helps secure your website by setting a strict `Content "
"Security Policy `_ "
@@ -411,7 +422,7 @@ msgstr ""
"Content_Security_Policy>`_-Header setzt. Das verhindert allerdings auch das "
"Laden von Inhalten von Drittanbietern innerhalb deiner Webseite."
-#: ../../source/features.rst:121
+#: ../../source/features.rst:126
msgid ""
"If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, you have two options:"
@@ -419,7 +430,7 @@ msgstr ""
"Wenn du Inhalte von Webseiten Dritter laden möchtest, z. B. Assets oder "
"JavaScript-Bibliotheken aus CDNs, hast du zwei Möglichkeiten:"
-#: ../../source/features.rst:123
+#: ../../source/features.rst:128
msgid ""
"You can disable sending a Content Security Policy header by checking the "
"\"Don't send Content Security Policy header (allows your website to use "
@@ -430,16 +441,16 @@ msgstr ""
"deiner Webseite, Ressourcen von Drittanbietern zu verwenden)“ aktivierst, "
"bevor du den Dienst startest."
-#: ../../source/features.rst:124
+#: ../../source/features.rst:129
msgid "You can send a custom Content Security Policy header."
msgstr ""
"Du kannst einen benutzerdefinierten Content Security Policy-Header senden."
-#: ../../source/features.rst:127
+#: ../../source/features.rst:132
msgid "Tips for running a website service"
msgstr "Tipps zum Betreiben eines Webseiten-Dienstes"
-#: ../../source/features.rst:129
+#: ../../source/features.rst:134
msgid ""
"If you want to host a long-term website using OnionShare (meaning not just "
"to quickly show someone something), it's recommended you do it on a "
@@ -456,7 +467,7 @@ msgstr ""
"`save_tabs`), so dass du die Webseite dann mit derselben Adresse anbieten "
"kannst, wenn OnionShare zwischenzeitig beendet und neu gestartet wird."
-#: ../../source/features.rst:132
+#: ../../source/features.rst:137
msgid ""
"If your website is intended for the public, you should run it as a public "
"service (see :ref:`turn_off_private_key`)."
@@ -464,11 +475,11 @@ msgstr ""
"Wenn du deine Webseite öffentlich betreiben willst, solltest du sie als "
"öffentlichen Dienst starten (see :ref:`disable_passwords`)."
-#: ../../source/features.rst:135
+#: ../../source/features.rst:140
msgid "Chat Anonymously"
msgstr "Anonym chatten"
-#: ../../source/features.rst:137
+#: ../../source/features.rst:142
msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't "
"log anything. Just open a chat tab and click \"Start chat server\"."
@@ -477,7 +488,7 @@ msgstr ""
"aufsetzen, der nichts aufzeichnet. Öffne einfach einen Chat-Reiter und "
"klicke auf „Chat starten“."
-#: ../../source/features.rst:141
+#: ../../source/features.rst:146
msgid ""
"After you start the server, copy the OnionShare address and private key and "
"send them to the people you want in the anonymous chat room. If it's "
@@ -489,7 +500,7 @@ msgstr ""
"wichtig ist, den Teilnehmerkreis strikt zu beschränken, solltest du einen "
"verschlüsselten Messenger zum Teilen der OnionShare-Adresse verwenden."
-#: ../../source/features.rst:146
+#: ../../source/features.rst:151
msgid ""
"People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to "
@@ -501,7 +512,7 @@ msgstr ""
"muss im Tor Browser seinen Sicherheitslevel auf „Standard“ oder "
"„Safer“ (anstelle von Safest) setzen."
-#: ../../source/features.rst:149
+#: ../../source/features.rst:154
msgid ""
"When someone joins the chat room they get assigned a random name. They can "
"change their name by typing a new name in the box in the left panel and "
@@ -514,7 +525,7 @@ msgstr ""
"Chatverlauf wird nicht angezeigt, selbst wenn andere bereits zuvor im "
"Chatroot gechattet hatten, da der Chatverlauf nirgendwo gespeichert wird."
-#: ../../source/features.rst:155
+#: ../../source/features.rst:160
msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change their "
"name to anything, and there is no way to confirm anyone's identity."
@@ -522,7 +533,7 @@ msgstr ""
"In einem OnionShare-Chatroom ist jeder anonym. Jeder kann seinen Namen "
"beliebig ändern und die Identität der Nutzer kann nicht überprüft werden."
-#: ../../source/features.rst:158
+#: ../../source/features.rst:163
msgid ""
"However, if you create an OnionShare chat room and securely send the address "
"only to a small group of trusted friends using encrypted messages, you can "
@@ -533,11 +544,11 @@ msgstr ""
"nur an eine kleine Anzahl vertrauenswürdiger Freunde über einen "
"verschlüsselten Kanal geschickt hast."
-#: ../../source/features.rst:161
+#: ../../source/features.rst:166
msgid "How is this useful?"
msgstr "Wozu soll das gut sein?"
-#: ../../source/features.rst:163
+#: ../../source/features.rst:168
msgid ""
"If you need to already be using an encrypted messaging app, what's the point "
"of an OnionShare chat room to begin with? It leaves less traces."
@@ -545,7 +556,7 @@ msgstr ""
"Worin liegt der Sinn in OnionShare-Chatrooms, wenn du ohnehin einen "
"verschlüsselten Messenger benutzen solltest? Sie hinterlassen weniger Spuren."
-#: ../../source/features.rst:165
+#: ../../source/features.rst:170
msgid ""
"If you for example send a message to a Signal group, a copy of your message "
"ends up on each device (the smartphones, and computers if they set up Signal "
@@ -559,7 +570,7 @@ msgstr ""
"bleibt eine Kopie deiner Nachricht auf jedem Gerät aller Teilnehmer der "
"Gruppe."
-#: ../../source/features.rst:168
+#: ../../source/features.rst:173
msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any "
@@ -574,11 +585,11 @@ msgstr ""
"Journalist den Chat betritt, ohne dass die Quelle dabei ihre Anonymität "
"gefährdet."
-#: ../../source/features.rst:172
+#: ../../source/features.rst:177
msgid "How does the encryption work?"
msgstr "Wie funktioniert die Verschlüsselung?"
-#: ../../source/features.rst:174
+#: ../../source/features.rst:179
msgid ""
"Because OnionShare relies on Tor onion services, connections between the Tor "
"Browser and OnionShare are all end-to-end encrypted (E2EE). When someone "
@@ -593,7 +604,7 @@ msgstr ""
"wiederum an alle anderen Mitglieder des Chatrooms über sog. WebSockets "
"weiterschickt, wiederum durch deren eigene E2EE-Onion-Verbindungen."
-#: ../../source/features.rst:176
+#: ../../source/features.rst:181
msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on "
"the Tor onion service's encryption instead."
diff --git a/docs/source/locale/de/LC_MESSAGES/help.po b/docs/source/locale/de/LC_MESSAGES/help.po
index 927d5f80..bb2a25fb 100644
--- a/docs/source/locale/de/LC_MESSAGES/help.po
+++ b/docs/source/locale/de/LC_MESSAGES/help.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2024-01-25 13:17+0000\n"
"Last-Translator: emma peel \n"
"Language-Team: de \n"
diff --git a/docs/source/locale/de/LC_MESSAGES/index.po b/docs/source/locale/de/LC_MESSAGES/index.po
index 646978f7..bf6c5914 100644
--- a/docs/source/locale/de/LC_MESSAGES/index.po
+++ b/docs/source/locale/de/LC_MESSAGES/index.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2020-11-08 00:00+0000\n"
"Last-Translator: mv87 \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/source/locale/de/LC_MESSAGES/install.po b/docs/source/locale/de/LC_MESSAGES/install.po
index 85cee577..e406edaf 100644
--- a/docs/source/locale/de/LC_MESSAGES/install.po
+++ b/docs/source/locale/de/LC_MESSAGES/install.po
@@ -6,8 +6,8 @@
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
-"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2024-04-15 10:02+0000\n"
"Last-Translator: curtisb \n"
"Language-Team: de \n"
@@ -16,7 +16,6 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.5-dev\n"
"Generated-By: Babel 2.14.0\n"
#: ../../source/install.rst:2
@@ -44,7 +43,7 @@ msgid "You can download OnionShare for Mobile from the follow links"
msgstr ""
"Du kannst OnionShare für Mobilgeräte über die folgenden Links herunterladen"
-#: ../../source/install.rst:18
+#: ../../source/install.rst:16
msgid "Android"
msgstr "Android"
@@ -60,7 +59,7 @@ msgstr ""
msgid "F-Droid: https://github.com/onionshare/onionshare-android-nightly"
msgstr "F-Droid: https://github.com/onionshare/onionshare-android-nightly"
-#: ../../source/install.rst:24
+#: ../../source/install.rst:20
msgid "iOS"
msgstr "iOS"
@@ -394,16 +393,17 @@ msgid "Signing key"
msgstr "Signaturschlüssel"
#: ../../source/install.rst:117
+#, fuzzy
msgid ""
"Packages are signed by the core developer who is responsible for the "
-"particular release. Following are the informations of the core developers of "
-"OnionShare:"
+"particular release. Here is the GPG key information for each of the core "
+"developers of OnionShare:"
msgstr ""
"Pakete werden von dem Kernentwickler signiert, der für die jeweilige Version "
"verantwortlich ist. Nachfolgend findest du die Informationen zu den Core-"
"Entwicklern von OnionShare:"
-#: ../../source/install.rst:122
+#: ../../source/install.rst:120
msgid "Micah Lee:"
msgstr "Micah Lee:"
@@ -421,10 +421,10 @@ msgid ""
"fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
msgstr ""
"Du kannst Micahs Schlüssel vom Schlüsselserver `keys.openpgp.org keyserver "
-"`_ herunterladen."
+"`_ herunterladen."
-#: ../../source/install.rst:126
+#: ../../source/install.rst:124
msgid "Saptak Sengupta:"
msgstr "Saptak Sengupta:"
@@ -442,10 +442,33 @@ msgid ""
"fingerprint/2AE3D40A6905C8E4E8ED95ECE46A2B977C14666B>`_."
msgstr ""
"Du kannst Saptaks Schlüssel `vom keys.openpgp.org keyserver `"
-"_ herunterladen."
+"openpgp.org/vks/v1/by-"
+"fingerprint/2AE3D40A6905C8E4E8ED95ECE46A2B977C14666B>`_ herunterladen."
#: ../../source/install.rst:128
+msgid "Miguel Jacq:"
+msgstr ""
+
+#: ../../source/install.rst:129
+#, fuzzy
+msgid ""
+"PGP public key fingerprint ``00AE817C24A10C2540461A9C1D7CDE0234DB458D``."
+msgstr ""
+"PGP-Fingerabdruck des öffentlichen Schlüssels "
+"``927F419D7EC82C2F149C1BD1403C2657CD994F73``."
+
+#: ../../source/install.rst:130
+#, fuzzy
+msgid ""
+"You can download Miguel's key `from the keys.openpgp.org keyserver `_."
+msgstr ""
+"Du kannst Micahs Schlüssel vom Schlüsselserver `keys.openpgp.org keyserver "
+"`_ herunterladen."
+
+#: ../../source/install.rst:132
msgid ""
"You must have GnuPG installed to verify signatures. For macOS you probably "
"want `GPGTools `_, and for Windows you probably want "
@@ -455,11 +478,11 @@ msgstr ""
"macOS möchtest du wahrscheinlich `GPGTools `_ "
"verwenden, unter Windows `Gpg4win `_."
-#: ../../source/install.rst:131
+#: ../../source/install.rst:135
msgid "Signatures"
msgstr "Signaturen"
-#: ../../source/install.rst:133
+#: ../../source/install.rst:137
msgid ""
"You can find the signatures (as ``.asc`` files), as well as Windows, macOS, "
"Flatpak, Snap, and source packages, at https://onionshare.org/dist/ in the "
@@ -472,11 +495,11 @@ msgstr ""
"wurden. Du kannst sie auch auf der `Release-Seite auf GitHub `_ finden."
-#: ../../source/install.rst:137
+#: ../../source/install.rst:141
msgid "Verifying"
msgstr "Verifizierung"
-#: ../../source/install.rst:139
+#: ../../source/install.rst:143
msgid ""
"Once you have imported the core developers public keys into your GnuPG "
"keychain, downloaded the binary and ``.asc`` signature, you can verify the "
@@ -487,27 +510,27 @@ msgstr ""
"heruntergeladen hast, kannst du die Binärdatei in einem Terminal wie folgt "
"überprüfen:"
-#: ../../source/install.rst:141
+#: ../../source/install.rst:145
msgid "For Windows::"
msgstr "Für Windows::"
-#: ../../source/install.rst:145
+#: ../../source/install.rst:149
msgid "For macOS::"
msgstr "Für macOS::"
-#: ../../source/install.rst:149
+#: ../../source/install.rst:153
msgid "For Linux::"
msgstr "Für Linux::"
-#: ../../source/install.rst:155
+#: ../../source/install.rst:159
msgid "and for the source file::"
msgstr "und für die Quell-Datei::"
-#: ../../source/install.rst:159
+#: ../../source/install.rst:163
msgid "The expected output looks like this::"
msgstr "Eine erwartete Ausgabe sollte wiefolgt aussehen::"
-#: ../../source/install.rst:169
+#: ../../source/install.rst:173
msgid ""
"If you don't see ``Good signature from``, there might be a problem with the "
"integrity of the file (malicious or otherwise), and you should not install "
@@ -517,7 +540,7 @@ msgstr ""
"Integrität der Datei geben (potentiell schädlich oder anderes) und du "
"solltest das Paket nicht installieren."
-#: ../../source/install.rst:171
+#: ../../source/install.rst:175
msgid ""
"The ``WARNING:`` shown above, is not a problem with the package, it only "
"means you haven't defined a level of \"trust\" of Micah's (the core "
@@ -527,7 +550,7 @@ msgstr ""
"hin, es bedeutet lediglich, dass du noch keinen \"Trust-Level\" für Micahs "
"(der Chefentwickler) PGP-Schlüssel festgelegt hast."
-#: ../../source/install.rst:173
+#: ../../source/install.rst:177
msgid ""
"If you want to learn more about verifying PGP signatures, the guides for "
"`Qubes OS `_ and "
diff --git a/docs/source/locale/de/LC_MESSAGES/security.po b/docs/source/locale/de/LC_MESSAGES/security.po
index 69012e10..8b2fe5ea 100644
--- a/docs/source/locale/de/LC_MESSAGES/security.po
+++ b/docs/source/locale/de/LC_MESSAGES/security.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-12-24 10:38+0000\n"
"Last-Translator: curtisb \n"
"Language-Team: de \n"
diff --git a/docs/source/locale/de/LC_MESSAGES/sphinx.po b/docs/source/locale/de/LC_MESSAGES/sphinx.po
index 5c386ef5..7869863c 100644
--- a/docs/source/locale/de/LC_MESSAGES/sphinx.po
+++ b/docs/source/locale/de/LC_MESSAGES/sphinx.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2020-11-08 00:00+0000\n"
"Last-Translator: mv87 \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/source/locale/de/LC_MESSAGES/tor.po b/docs/source/locale/de/LC_MESSAGES/tor.po
index 7fff801c..b04762bf 100644
--- a/docs/source/locale/de/LC_MESSAGES/tor.po
+++ b/docs/source/locale/de/LC_MESSAGES/tor.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2024-01-14 12:31+0000\n"
"Last-Translator: curtisb \n"
"Language-Team: de \n"
diff --git a/docs/source/locale/el/LC_MESSAGES/advanced.po b/docs/source/locale/el/LC_MESSAGES/advanced.po
index 33f44126..6b5d890b 100644
--- a/docs/source/locale/el/LC_MESSAGES/advanced.po
+++ b/docs/source/locale/el/LC_MESSAGES/advanced.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-10-28 04:15+0000\n"
"Last-Translator: george kitsoukakis \n"
"Language-Team: el \n"
@@ -16,8 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.2-dev\n"
-"Generated-By: Babel 2.10.3\n"
+"Generated-By: Babel 2.17.0\n"
#: ../../source/advanced.rst:2
msgid "Advanced Usage"
@@ -79,10 +78,11 @@ msgstr ""
"κλειδί, το οποίο ονομάζεται \"πιστοποίηση πελάτη\"."
#: ../../source/advanced.rst:28
+#, fuzzy
msgid ""
"The Tor Browser will ask you to enter your private key when you load an "
-"OnionShare service. If you want allow the public to use your service, it's "
-"better to disable the private key altogether."
+"OnionShare service. If you want to allow the public to use your service, "
+"it's better to disable the private key altogether."
msgstr ""
"Ο φυλλομετρητής Tor θα σας ζητήσει να εισαγάγετε το ιδιωτικό σας κλειδί όταν "
"φορτώνετε μια υπηρεσία OnionShare. Αν θέλετε να επιτρέψετε να χρησιμοποιηθεί "
@@ -144,10 +144,11 @@ msgstr ""
"Έπειτα, ρυθμίστε την ημερομηνία και ώρα όπως θέλετε."
#: ../../source/advanced.rst:51
+#, fuzzy
msgid ""
-"Services scheduled to start in the future display a countdown timer when "
-"when the \"Start sharing\" button is clicked. Services scheduled to stop in "
-"the future display a countdown timer when started."
+"Services scheduled to start in the future display a countdown timer when the "
+"\"Start sharing\" button is clicked. Services scheduled to stop in the "
+"future display a countdown timer when started."
msgstr ""
"Οι προγραμματισμένες υπηρεσίες έναρξης εμφανίζουν ένα χρονόμετρο αντίστροφης "
"μέτρησης όταν κάνετε κλικ στο κουμπί \"Εναρξη κοινής χρήσης\". Οι "
@@ -189,14 +190,26 @@ msgstr ""
"Σε μια εναλλακτική του γραφικού περιβάλοντος, το OnionShare διαθέτει "
"λειτουργία με γραμμή εντολών."
-#: ../../source/advanced.rst:72
+#: ../../source/advanced.rst:73
+msgid "Installing the CLI version"
+msgstr ""
+
+#: ../../source/advanced.rst:75
msgid ""
-"You can install just the command-line version of OnionShare using ``pip3``::"
+"If you have installed the Snap, macOS or Windows package, you already have "
+"the CLI version installed."
+msgstr ""
+
+#: ../../source/advanced.rst:77
+#, fuzzy
+msgid ""
+"Alternatively, you can install just the command-line version of OnionShare "
+"using ``pip3``::"
msgstr ""
"Μπορείτε να εγκαταστήσετε την έκδοση με γραμμή εντολών του OnionShare με "
"χρήση του ``pip3``::"
-#: ../../source/advanced.rst:76
+#: ../../source/advanced.rst:81
msgid ""
"Note that you will also need the ``tor`` package installed. In macOS, "
"install it with: ``brew install tor``"
@@ -204,11 +217,11 @@ msgstr ""
"Υπενθυμίζεται ότι πάντοτε χρειάζεται η εγκατάσταση των πακέτων του ``tor``. "
"Σε macOS, εγκαταστήστε το με: ``brew install tor``"
-#: ../../source/advanced.rst:78
+#: ../../source/advanced.rst:83
msgid "Then run it like this::"
msgstr "Και εκτελέστε όπως:"
-#: ../../source/advanced.rst:82
+#: ../../source/advanced.rst:87
msgid ""
"Info about installing it on different operating systems can be found in the "
"`CLI README file `_."
-#: ../../source/advanced.rst:84
+#: ../../source/advanced.rst:90
+msgid "Running the CLI from Snap"
+msgstr ""
+
+#: ../../source/advanced.rst:92
+#, fuzzy
msgid ""
-"If you installed OnionShare using the Snap package, you can also just run "
-"``onionshare.cli`` to access the command-line interface version."
+"If you installed OnionShare using the Snap package, you can run ``onionshare."
+"cli`` to access the command-line interface version."
msgstr ""
"Εάν κάνετε εγκατάσταση του OnionShare με χρήση του πακέτου Snap, εκτελέστε "
"την εντολή ``onionshare.cli`` για πρόσβαση στο περιβάλλον γραμμής εντολών."
-#: ../../source/advanced.rst:87
+#: ../../source/advanced.rst:95
+msgid "Running the CLI from macOS"
+msgstr ""
+
+#: ../../source/advanced.rst:97
+msgid ""
+"From Terminal, you can run ``/Applications/OnionShare.app/Contents/MacOS/"
+"onionshare-cli --help``"
+msgstr ""
+
+#: ../../source/advanced.rst:100
+msgid "Running the CLI from Windows"
+msgstr ""
+
+#: ../../source/advanced.rst:102
+msgid ""
+"In the Windows installation, the executable ``onionshare-cli.exe`` is "
+"available."
+msgstr ""
+
+#: ../../source/advanced.rst:105
msgid "Usage"
msgstr "Χρήση"
-#: ../../source/advanced.rst:89
+#: ../../source/advanced.rst:107
msgid ""
"Browse the command-line documentation by running ``onionshare --help``::"
msgstr ""
"Περιηγηθείτε στην τεκμηρίωση της γραμμής εντολών με ``onionshare --help``::"
-#: ../../source/advanced.rst:151
+#: ../../source/advanced.rst:170
+msgid "Running the CLI as a systemd unit file"
+msgstr ""
+
+#: ../../source/advanced.rst:172
+msgid ""
+"It is possible to automatically start OnionShare from the CLI using a "
+"systemd unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:174
+msgid ""
+"You may find this particularly useful if you are operating in 'persistent' "
+"mode, and want to start the same onion service every time your machine "
+"starts."
+msgstr ""
+
+#: ../../source/advanced.rst:176
+msgid "To do this, you need to prepare some OnionShare json config first."
+msgstr ""
+
+#: ../../source/advanced.rst:178
+msgid ""
+"Here is the main OnionShare config. In this example, it's stored in ``/home/"
+"user/.config/onionshare/onionshare.json``. You may need to adjust some of "
+"the settings, but if you already have OnionShare installed, it probably "
+"looks much like this already::"
+msgstr ""
+
+#: ../../source/advanced.rst:207
+msgid ""
+"Notice the 'persistent_tabs' section. We will now create a file at ``/home/"
+"user/.config/onionshare/persistent/my-persistent-onion.json``, that looks "
+"like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:247
+msgid ""
+"**Don't actually use this private key, service_id or client_auth keys! They "
+"are shown only as an example. Never share the private_key with anyone.**"
+msgstr ""
+
+#: ../../source/advanced.rst:249
+msgid ""
+"The easiest way to generate the onion address and private key is to first "
+"create a 'pinned' OnionShare tab in the desktop app and started the share "
+"for the first time. This will then have saved the persistent settings to "
+"your ``.config/onionshare/persistent/`` folder with a random name. You can "
+"unpin that tab once you've generated it the first time. Or, you can leave it "
+"where it is, and use that persistent file in your systemd unit file below."
+msgstr ""
+
+#: ../../source/advanced.rst:251
+msgid ""
+"Now you can create a systemd unit file in ``/etc/systemd/system/onionshare-"
+"cli.service``. Be sure to adjust the User and Group to your own user/group, "
+"as well as changes to any paths to the onionshare-cli binary or the paths to "
+"your JSON configs and shares."
+msgstr ""
+
+#: ../../source/advanced.rst:253
+msgid "The systemd unit file should look like this::"
+msgstr ""
+
+#: ../../source/advanced.rst:268
+msgid ""
+"Note that although ``/home/user/my-shared-file.txt`` was defined in the "
+"``filenames`` section of the ``my-persistent-onion.json`` file, it's still "
+"necessary to specify it as the argument to the onionshare-cli command."
+msgstr ""
+
+#: ../../source/advanced.rst:270
+msgid ""
+"Be sure to run ``sudo systemctl daemon-reload`` after creating the unit file."
+msgstr ""
+
+#: ../../source/advanced.rst:272
+msgid ""
+"Now you can run ``sudo systemctl start onionshare-cli.service``. If you have "
+"``journalctl`` installed, you can run ``sudo journalctl -f -t onionshare-"
+"cli``, and you should see some output of your service starting::"
+msgstr ""
+
+#: ../../source/advanced.rst:282
+msgid ""
+"If you don't want your users to use a Private Key, set ``public`` to be "
+"``true`` in the ``general`` settings of the my-persistent-onion.json file."
+msgstr ""
+
+#: ../../source/advanced.rst:286
msgid "Keyboard Shortcuts"
msgstr "Συντομεύσεις πληκτρολογίου"
-#: ../../source/advanced.rst:153
+#: ../../source/advanced.rst:288
msgid ""
"The OnionShare desktop application contains some keyboard shortcuts, for "
"convenience and accessibility::"
@@ -248,10 +375,583 @@ msgstr ""
"Η εφαρμογή για υπολογιστή του OnionShare περιέχει ορισμένες συντομεύσεις "
"πληκτρολογίου, για αμεσότητα και εύκολη πρόσβαση::"
-#: ../../source/advanced.rst:158
+#: ../../source/advanced.rst:293
msgid "And from the main mode chooser screen::"
msgstr "Και από την κύρια οθόνη επιλογής λειτουργίας::"
+#: ../../source/advanced.rst:303
+msgid "Migrating your OnionShare data to another computer"
+msgstr ""
+
+#: ../../source/advanced.rst:305
+msgid ""
+"You may want to migrate your OnionShare data when switching to another "
+"computer. This is especially true if you had a 'persistent' onion address "
+"and you want to preserve it."
+msgstr ""
+
+#: ../../source/advanced.rst:307
+msgid ""
+"OnionShare stores all such data in a specific folder. Copy the relevant "
+"folder for your operating system below, to your new computer:"
+msgstr ""
+
+#: ../../source/advanced.rst:309
+msgid "Linux: ``~/.config/onionshare``"
+msgstr ""
+
+#: ../../source/advanced.rst:310
+msgid "macOS: ``~/Library/Application Support/OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:311
+msgid "Windows: ``%APPDATA%\\OnionShare``"
+msgstr ""
+
+#: ../../source/advanced.rst:315
+msgid "Configuration file parameters"
+msgstr ""
+
+#: ../../source/advanced.rst:317
+msgid ""
+"OnionShare stores its settings in a JSON file. Both the CLI and the Desktop "
+"versions use this configuration file. The CLI also lets you specify a path "
+"to a custom configuration file with ``--config``."
+msgstr ""
+
+#: ../../source/advanced.rst:319
+msgid ""
+"Below are the configuration file parameters and what they mean. If your "
+"configuration file has other parameters not listed here, they may be "
+"obsolete from older OnionShare versions."
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Parameter"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Type"
+msgstr ""
+
+#: ../../source/advanced.rst:322 ../../source/advanced.rst:402
+#: ../../source/advanced.rst:413 ../../source/advanced.rst:424
+#: ../../source/advanced.rst:439 ../../source/advanced.rst:450
+#: ../../source/advanced.rst:462
+msgid "Explanation"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid "version"
+msgstr ""
+
+#: ../../source/advanced.rst:324 ../../source/advanced.rst:325
+#: ../../source/advanced.rst:326 ../../source/advanced.rst:328
+#: ../../source/advanced.rst:330 ../../source/advanced.rst:331
+#: ../../source/advanced.rst:332 ../../source/advanced.rst:337
+#: ../../source/advanced.rst:338 ../../source/advanced.rst:339
+#: ../../source/advanced.rst:340 ../../source/advanced.rst:343
+#: ../../source/advanced.rst:404 ../../source/advanced.rst:405
+#: ../../source/advanced.rst:406 ../../source/advanced.rst:415
+#: ../../source/advanced.rst:426 ../../source/advanced.rst:430
+#: ../../source/advanced.rst:452 ../../source/advanced.rst:453
+#: ../../source/advanced.rst:465
+msgid "``string``"
+msgstr ""
+
+#: ../../source/advanced.rst:324
+msgid ""
+"The version of OnionShare. You should not ever need to change this value."
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid "connection_type"
+msgstr ""
+
+#: ../../source/advanced.rst:325
+msgid ""
+"The way in which OnionShare connects to Tor. Valid options are 'bundled', "
+"'automatic' (use Tor Browser's Tor connection), 'control_port' or "
+"'socket_file'. Default: 'bundled'"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid "control_port_address"
+msgstr ""
+
+#: ../../source/advanced.rst:326
+msgid ""
+"The IP address of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid "control_port_port"
+msgstr ""
+
+#: ../../source/advanced.rst:327 ../../source/advanced.rst:329
+#: ../../source/advanced.rst:335
+msgid "``integer``"
+msgstr ""
+
+#: ../../source/advanced.rst:327
+msgid ""
+"The port number of Tor's Control port, if ``connection_type`` is set to "
+"'control_port'. Default: '9051'"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid "socks_address"
+msgstr ""
+
+#: ../../source/advanced.rst:328
+msgid ""
+"The IP address of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: '127.0.0.1'"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid "socks_port"
+msgstr ""
+
+#: ../../source/advanced.rst:329
+msgid ""
+"The port number of Tor's SOCKS proxy, if ``connection_type`` is set to "
+"'control_port' or 'socket_file'. Default: ''9050'"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid "socket_file_path"
+msgstr ""
+
+#: ../../source/advanced.rst:330
+msgid ""
+"The path to Tor's socket file, if ``connection_type`` is set to "
+"'socket_file'. Default: '/var/run/tor/control'"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid "auth_type"
+msgstr ""
+
+#: ../../source/advanced.rst:331
+msgid ""
+"If access to Tor's control port requires a password, this can be set to "
+"'password', otherwise 'no_auth'. Default: 'no_auth'"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid "auth_password"
+msgstr ""
+
+#: ../../source/advanced.rst:332
+msgid ""
+"If access to Tor's control port requires a password, and ``auth_type`` is "
+"set to 'password', specify the password here. Default: ''"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid "auto_connect"
+msgstr ""
+
+#: ../../source/advanced.rst:333 ../../source/advanced.rst:334
+#: ../../source/advanced.rst:336 ../../source/advanced.rst:344
+#: ../../source/advanced.rst:416 ../../source/advanced.rst:417
+#: ../../source/advanced.rst:427 ../../source/advanced.rst:428
+#: ../../source/advanced.rst:429 ../../source/advanced.rst:441
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:454
+#: ../../source/advanced.rst:455 ../../source/advanced.rst:464
+#: ../../source/advanced.rst:466
+msgid "``boolean``"
+msgstr ""
+
+#: ../../source/advanced.rst:333
+msgid ""
+"Whether OnionShare should automatically connect to Tor when it starts. "
+"Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid "use_autoupdate"
+msgstr ""
+
+#: ../../source/advanced.rst:334
+msgid ""
+"Whether OnionShare should automatically check for updates (over Tor). This "
+"setting is only valid for MacOS or Windows installations. Default: True."
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "autoupdate_timestamp"
+msgstr ""
+
+#: ../../source/advanced.rst:335
+msgid "The last time OnionShare checked for updates. Default: None"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "bridges_enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:336
+msgid "Whether to connect to Tor using bridges. Default: False"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid "bridges_type"
+msgstr ""
+
+#: ../../source/advanced.rst:337
+msgid ""
+"When ``bridges_enabled`` is True, where to load bridges from. Options are "
+"\"built-in\" (bridges shipped with OnionShare and which may get updated from "
+"Tor), \"moat\" (request bridges from Tor's Moat API), or \"custom\" (user-"
+"supplied bridges). Default: \"built-in\""
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid "bridges_builtin_pt"
+msgstr ""
+
+#: ../../source/advanced.rst:338
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", this specifies which type of "
+"bridge protocol to use. Options are \"obfs4\", \"meek-azure\" or "
+"\"snowflake\". Default: \"obfs4\""
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid "bridges_moat"
+msgstr ""
+
+#: ../../source/advanced.rst:339
+msgid ""
+"When ``bridges_type`` is set to \"moat\", the bridges returned from Tor's "
+"Moat API are stored here. Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid "bridges_custom"
+msgstr ""
+
+#: ../../source/advanced.rst:340
+msgid ""
+"When ``bridges_type`` is set to \"custom\", the bridges specified by the "
+"user are stored here. Separate each bridge line in the string with '\\n'. "
+"Default: \"\""
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "bridges_builtin"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid "``dict``"
+msgstr ""
+
+#: ../../source/advanced.rst:341
+msgid ""
+"When ``bridges_type`` is set to \"built-in\", OnionShare obtains the latest "
+"built-in bridges recommended by Tor and stores them here. Default: {}"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid "persistent_tabs"
+msgstr ""
+
+#: ../../source/advanced.rst:342 ../../source/advanced.rst:442
+#: ../../source/advanced.rst:467
+msgid "``list``"
+msgstr ""
+
+#: ../../source/advanced.rst:342
+msgid ""
+"If the user has defined any tabs as 'saved' (meaning that they are "
+"persistent each time OnionShare starts, and their onion address doesn't "
+"change), these are given a random identifier which gets listed here. The "
+"persistent onion is stored as a JSON file with the same name as this "
+"identifier, in a subfolder of the OnionShare configuration folder called "
+"'persistent'. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid "locale"
+msgstr ""
+
+#: ../../source/advanced.rst:343
+msgid ""
+"The locale used in OnionShare. Default: None (which is the same as 'en'). "
+"For valid locale codes, see 'available_locales' in https://github.com/"
+"onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid "theme"
+msgstr ""
+
+#: ../../source/advanced.rst:344
+msgid ""
+"The theme for the OnionShare desktop app. Valid options are 0 (automatically "
+"detect the user's computer's light or dark theme), 1 (light) or 2 (dark)."
+msgstr ""
+
+#: ../../source/advanced.rst:349
+msgid "Configuration file parameters for persistent onions"
+msgstr ""
+
+#: ../../source/advanced.rst:351
+msgid ""
+"As described above, each 'persistent' onion has parameters of its own which "
+"are stored in its own JSON file. The path to this file can be specified for "
+"the CLI tool with ``--persistent``."
+msgstr ""
+
+#: ../../source/advanced.rst:353
+msgid "Here is an example persistent JSON configuration::"
+msgstr ""
+
+#: ../../source/advanced.rst:396
+msgid ""
+"Below are the configuration file parameters for a persistent onion and what "
+"they mean, for each section in the JSON"
+msgstr ""
+
+#: ../../source/advanced.rst:399
+msgid "onion"
+msgstr ""
+
+#: ../../source/advanced.rst:404
+#, fuzzy
+msgid "private_key"
+msgstr "Απενεργοποίηση ιδιωτικού κλειδιού"
+
+#: ../../source/advanced.rst:404
+msgid "Base64-encoded private key of the onion service"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid "client_auth_priv_key"
+msgstr ""
+
+#: ../../source/advanced.rst:405
+msgid ""
+"The private key when using Client Authentication. Send this to the user."
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid "client_auth_pub_key"
+msgstr ""
+
+#: ../../source/advanced.rst:406
+msgid ""
+"The public key when using Client Authentication. Used on OnionShare's side."
+msgstr ""
+
+#: ../../source/advanced.rst:410
+msgid "persistent"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid "mode"
+msgstr ""
+
+#: ../../source/advanced.rst:415
+msgid ""
+"The mode used by this persistent onion. Options are \"share\", \"receive\", "
+"\"website\" or \"chat\"."
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid "enabled"
+msgstr ""
+
+#: ../../source/advanced.rst:416
+msgid ""
+"Whether persistence is enabled for this onion. When the persistent option is "
+"unchecked in the desktop, this entire JSON file is deleted. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid "autostart_on_launch"
+msgstr ""
+
+#: ../../source/advanced.rst:417
+msgid ""
+"Whether to automatically start this persistent onion when OnionShare starts "
+"and once Tor is connected. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:421
+msgid "general"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid "title"
+msgstr ""
+
+#: ../../source/advanced.rst:426
+msgid ""
+"An optional custom title for displaying on the onion service. Default: null "
+"(\"OnionShare\" will be shown instead)"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid "public"
+msgstr ""
+
+#: ../../source/advanced.rst:427
+msgid ""
+"Whether the onion service can be accessed with or without a Private Key "
+"(Client Authentication). If true, no Private Key is required."
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid "autostart_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:428
+msgid ""
+"Whether the onion service is configured to start at a specific time. The "
+"time can be set in the desktop app or specified in seconds with ``--auto-"
+"start-timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid "autostop_timer"
+msgstr ""
+
+#: ../../source/advanced.rst:429
+msgid ""
+"Whether the onion service is configured to stop at a specific time. The time "
+"can be set in the desktop app or specified in seconds with ``--auto-stop-"
+"timer`` with the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid "service_id"
+msgstr ""
+
+#: ../../source/advanced.rst:430
+msgid ""
+"The 32-character onion service URL, without the scheme and without the '."
+"onion' suffix."
+msgstr ""
+
+#: ../../source/advanced.rst:433
+msgid ""
+"The below are settings specific to the 'mode' specified in the "
+"``persistent`` section above."
+msgstr ""
+
+#: ../../source/advanced.rst:436
+#, fuzzy
+msgid "share"
+msgstr "Χρήση"
+
+#: ../../source/advanced.rst:441
+msgid "autostop_sharing"
+msgstr ""
+
+#: ../../source/advanced.rst:441
+msgid ""
+"Whether to automatically stop the share once files are downloaded the first "
+"time. Default: true"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:442 ../../source/advanced.rst:467
+msgid "A list of files to share. Default: []"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid "log_filenames"
+msgstr ""
+
+#: ../../source/advanced.rst:443 ../../source/advanced.rst:466
+msgid ""
+"Whether to log URL requests to stdout when using the CLI tool. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:447
+msgid "receive"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid "data_dir"
+msgstr ""
+
+#: ../../source/advanced.rst:452
+msgid ""
+"The path where received files or text messages will be stored. Default: the "
+"'OnionShare' folder of the user's home directory."
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid "webhook_url"
+msgstr ""
+
+#: ../../source/advanced.rst:453
+msgid ""
+"A webhook URL that OnionShare will POST to when it receives files or text "
+"messages. Default: null"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "disable_text"
+msgstr ""
+
+#: ../../source/advanced.rst:454
+msgid "Whether to disable receiving text messages. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "disable_files"
+msgstr ""
+
+#: ../../source/advanced.rst:455
+msgid "Whether to disable receiving files. Default: false"
+msgstr ""
+
+#: ../../source/advanced.rst:459
+msgid "website"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid "disable_csp"
+msgstr ""
+
+#: ../../source/advanced.rst:464
+msgid ""
+"If set to ``true``, OnionShare won't set its default Content Security Policy "
+"header for the website. Default: ``false``"
+msgstr ""
+
+#: ../../source/advanced.rst:465
+#, fuzzy
+msgid "custom_csp"
+msgstr "Προσαρμοσμένοι Τίτλοι"
+
+#: ../../source/advanced.rst:465
+msgid "A custom Content Security Policy header to send instead of the default."
+msgstr ""
+
+#: ../../source/advanced.rst:471
+msgid "chat"
+msgstr ""
+
+#: ../../source/advanced.rst:473
+msgid "There are currently no configurable settings for the Chat mode."
+msgstr ""
+
#~ msgid "Turn Off Passwords"
#~ msgstr "Απενεργοποίηση κωδικών πρόσβασης"
diff --git a/docs/source/locale/el/LC_MESSAGES/develop.po b/docs/source/locale/el/LC_MESSAGES/develop.po
index 2c49e968..24c0bc80 100644
--- a/docs/source/locale/el/LC_MESSAGES/develop.po
+++ b/docs/source/locale/el/LC_MESSAGES/develop.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2023-06-06 17:06+0000\n"
"Last-Translator: emma peel \n"
"Language-Team: el \n"
diff --git a/docs/source/locale/el/LC_MESSAGES/features.po b/docs/source/locale/el/LC_MESSAGES/features.po
index 86b555ff..b4fbb36d 100644
--- a/docs/source/locale/el/LC_MESSAGES/features.po
+++ b/docs/source/locale/el/LC_MESSAGES/features.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2022-01-23 09:55+0000\n"
"Last-Translator: george kitsoukakis \n"
"Language-Team: el \n"
@@ -16,8 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.11-dev\n"
-"Generated-By: Babel 2.9.1\n"
+"Generated-By: Babel 2.14.0\n"
#: ../../source/features.rst:4
msgid "How OnionShare Works"
@@ -114,7 +113,7 @@ msgstr ""
"αρχείων, μεταφέρετε και αποθέστε αρχεία και φακέλους που θέλετε να "
"μοιραστείτε και κάντε κλικ στην επιλογή \"Εκκίνηση διαμοιρασμού\"."
-#: ../../source/features.rst:35 ../../source/features.rst:112
+#: ../../source/features.rst:35 ../../source/features.rst:117
msgid ""
"After you add files, you'll see some settings. Make sure you choose the "
"setting you're interested in before you start sharing."
@@ -354,10 +353,22 @@ msgstr ""
"Επίσης μπορείτε να προσθέσετε το δικό σας τίτλο (δείτε :ref:`custom_titles`)."
#: ../../source/features.rst:102
+msgid "Other caveats to be aware of in Receive Mode"
+msgstr ""
+
+#: ../../source/features.rst:104
+msgid ""
+"There are reports that OnionBrowser on iOS devices are unable to upload "
+"files to an OnionShare in Receive Mode, when operating in 'Silver' security "
+"mode. Try Bronze or Gold to see if you are able to upload a message or a "
+"file."
+msgstr ""
+
+#: ../../source/features.rst:107
msgid "Host a Website"
msgstr "Φιλοξενήστε μια ιστοσελίδα"
-#: ../../source/features.rst:104
+#: ../../source/features.rst:109
msgid ""
"To host a static HTML website with OnionShare, open a website tab, drag the "
"files and folders that make up the static content there, and click \"Start "
@@ -368,7 +379,7 @@ msgstr ""
"στατικό περιεχόμενο και κάντε κλικ στο \"Εκκίνηση διαμοιρασμού\" όταν είστε "
"έτοιμοι."
-#: ../../source/features.rst:108
+#: ../../source/features.rst:113
msgid ""
"If you add an ``index.html`` file, it will render when someone loads your "
"website. You should also include any other HTML files, CSS files, JavaScript "
@@ -384,7 +395,7 @@ msgstr ""
"χρησιμοποιούν βάσεις δεδομένων. Επομένως, δεν μπορείτε, για παράδειγμα, να "
"χρησιμοποιήσετε το WordPress.)"
-#: ../../source/features.rst:110
+#: ../../source/features.rst:115
msgid ""
"If you don't have an ``index.html`` file, it will show a directory listing "
"instead, and people loading it can look through the files and download them."
@@ -392,11 +403,11 @@ msgstr ""
"Εάν δεν διαθέτετε αρχείο ``index.html``, θα εμφανιστεί μια λίστα καταλόγου "
"οπού θα μπορεί να γίνει η λήψη του."
-#: ../../source/features.rst:117
+#: ../../source/features.rst:122
msgid "Content Security Policy"
msgstr "Πολιτική ασφάλειας περιεχομένου"
-#: ../../source/features.rst:119
+#: ../../source/features.rst:124
msgid ""
"By default OnionShare helps secure your website by setting a strict `Content "
"Security Policy `_ "
@@ -408,7 +419,7 @@ msgstr ""
"wikipedia.org/wiki/Content_Security_Policy>`_. Ωστόσο, αυτό εμποδίζει τη "
"φόρτωση περιεχομένου τρίτων εντός της ιστοσελίδας."
-#: ../../source/features.rst:121
+#: ../../source/features.rst:126
msgid ""
"If you want to load content from third-party websites, like assets or "
"JavaScript libraries from CDNs, you have two options:"
@@ -416,7 +427,7 @@ msgstr ""
"Εάν θέλετε να φορτώσετε περιεχόμενο από άλλους ιστότοπους, όπως στοιχεία ή "
"βιβλιοθήκες JavaScript από CDNs, έχετε δύο επιλογές:"
-#: ../../source/features.rst:123
+#: ../../source/features.rst:128
msgid ""
"You can disable sending a Content Security Policy header by checking the "
"\"Don't send Content Security Policy header (allows your website to use "
@@ -427,16 +438,16 @@ msgstr ""
"Πολιτικής Ασφάλειας Περιεχομένου (επιτρέπει στον ιστότοπό σας να "
"χρησιμοποιεί πόρους τρίτων)\" πριν από την εκκίνηση της υπηρεσίας."
-#: ../../source/features.rst:124
+#: ../../source/features.rst:129
msgid "You can send a custom Content Security Policy header."
msgstr ""
"Μπορείτε να στείλετε προσαρμοσμένο κείμενο Πολιτικής Ασφάλειας Περιεχομένου."
-#: ../../source/features.rst:127
+#: ../../source/features.rst:132
msgid "Tips for running a website service"
msgstr "Συμβουλές για εκτέλεση μιας υπηρεσίας ιστοσελίδας"
-#: ../../source/features.rst:129
+#: ../../source/features.rst:134
msgid ""
"If you want to host a long-term website using OnionShare (meaning not just "
"to quickly show someone something), it's recommended you do it on a "
@@ -452,7 +463,7 @@ msgstr ""
"βάση. Αποθηκεύστε την καρτέλα (δείτε: :ref:`save_tabs`) ώστε να μπορείτε να "
"ξανανοίξετε την ίδια διεύθυνση εάν κλείσετε το OnionShare."
-#: ../../source/features.rst:132
+#: ../../source/features.rst:137
msgid ""
"If your website is intended for the public, you should run it as a public "
"service (see :ref:`turn_off_private_key`)."
@@ -460,11 +471,11 @@ msgstr ""
"Εάν η ιστοσελίδα σας προορίζεται για δημόσια χρήση, πρέπει να δηλωθεί ως "
"δημόσια υπηρεσία (δείτε :ref:`turn_off_private_key`)."
-#: ../../source/features.rst:135
+#: ../../source/features.rst:140
msgid "Chat Anonymously"
msgstr "Συνομιλήστε ανώνυμα"
-#: ../../source/features.rst:137
+#: ../../source/features.rst:142
msgid ""
"You can use OnionShare to set up a private, secure chat room that doesn't "
"log anything. Just open a chat tab and click \"Start chat server\"."
@@ -473,7 +484,7 @@ msgstr ""
"συνομιλίας που δεν καταγράφει τίποτα. Απλά ανοίξτε μια καρτέλα συνομιλίας "
"και κάντε κλικ \"Έναρξη διακομιστή συνομιλίας\"."
-#: ../../source/features.rst:141
+#: ../../source/features.rst:146
msgid ""
"After you start the server, copy the OnionShare address and private key and "
"send them to the people you want in the anonymous chat room. If it's "
@@ -485,7 +496,7 @@ msgstr ""
"είναι σημαντικό να περιορίσετε ποιος μπορεί να συμμετάσχει, χρησιμοποιήστε "
"μια εφαρμογή ανταλλαγής μηνυμάτων με κρυπτογράφηση."
-#: ../../source/features.rst:146
+#: ../../source/features.rst:151
msgid ""
"People can join the chat room by loading its OnionShare address in Tor "
"Browser. The chat room requires JavasScript, so everyone who wants to "
@@ -497,7 +508,7 @@ msgstr ""
"χρήση JavaScript, έτσι οι συμμετέχοντες θα πρέπει να ρυθμίσουν την ασφάλεια "
"του Tor Browser σε \"Βασικό\" ή \"Ασφαλέστερο\" και όχι σε \"Ασφαλέστατο\"."
-#: ../../source/features.rst:149
+#: ../../source/features.rst:154
msgid ""
"When someone joins the chat room they get assigned a random name. They can "
"change their name by typing a new name in the box in the left panel and "
@@ -509,7 +520,7 @@ msgstr ""
"πατώντας ↵. Δεδομένου ότι το ιστορικό συνομιλιών δεν αποθηκεύεται πουθενά, "
"δεν εμφανίζεται καθόλου ακόμα κι αν βρίσκεται συζήτηση σε εξέλιξη."
-#: ../../source/features.rst:155
+#: ../../source/features.rst:160
msgid ""
"In an OnionShare chat room, everyone is anonymous. Anyone can change their "
"name to anything, and there is no way to confirm anyone's identity."
@@ -518,7 +529,7 @@ msgstr ""
"μπορεί να αλλάξει το όνομά του και δεν υπάρχει τρόπος επιβεβαίωσης της "
"ταυτότητάς του."
-#: ../../source/features.rst:158
+#: ../../source/features.rst:163
msgid ""
"However, if you create an OnionShare chat room and securely send the address "
"only to a small group of trusted friends using encrypted messages, you can "
@@ -529,11 +540,11 @@ msgstr ""
"χρησιμοποιώντας κρυπτογραφημένα μηνύματα, μπορείτε να είστε αρκετά σίγουροι "
"ότι τα άτομα που συμμετέχουν στην αίθουσα συνομιλίας είναι φίλοι σας."
-#: ../../source/features.rst:161
+#: ../../source/features.rst:166
msgid "How is this useful?"
msgstr "Σε τι χρησιμεύει;"
-#: ../../source/features.rst:163
+#: ../../source/features.rst:168
msgid ""
"If you need to already be using an encrypted messaging app, what's the point "
"of an OnionShare chat room to begin with? It leaves less traces."
@@ -543,7 +554,7 @@ msgstr ""
"OnionShare; Τόσο λιγότερα μέσα επικοινωνίας χρησιμοποιείτε, τόσο λιγότερα "
"ίχνη θα αφήσετε."
-#: ../../source/features.rst:165
+#: ../../source/features.rst:170
msgid ""
"If you for example send a message to a Signal group, a copy of your message "
"ends up on each device (the smartphones, and computers if they set up Signal "
@@ -562,7 +573,7 @@ msgstr ""
"να έχουν αποθηκευτεί. Τα δωμάτια συνομιλίας του OnionShare δεν αποθηκεύουν "
"κανένα μήνυμα πουθενά, οπότε το πρόβλημα μειώνεται στο ελάχιστο."
-#: ../../source/features.rst:168
+#: ../../source/features.rst:173
msgid ""
"OnionShare chat rooms can also be useful for people wanting to chat "
"anonymously and securely with someone without needing to create any "
@@ -577,11 +588,11 @@ msgstr ""
"χρήσης και στη συνέχεια, να περιμένει τον δημοσιογράφο να συμμετάσχει στο "
"δωμάτιο συνομιλίας, χωρίς να διακυβεύεται η ανωνυμία του."
-#: ../../source/features.rst:172
+#: ../../source/features.rst:177
msgid "How does the encryption work?"
msgstr "Πως λειτουργεί η κρυπτογράφηση του OnionShare;"
-#: ../../source/features.rst:174
+#: ../../source/features.rst:179
msgid ""
"Because OnionShare relies on Tor onion services, connections between the Tor "
"Browser and OnionShare are all end-to-end encrypted (E2EE). When someone "
@@ -596,7 +607,7 @@ msgstr ""
"το στέλνει σε όλα τα μέλη της συνομιλίας χρησιμοποιώντας WebSockets, μέσω "
"των συνδέσεων onion E2EE."
-#: ../../source/features.rst:176
+#: ../../source/features.rst:181
msgid ""
"OnionShare doesn't implement any chat encryption on its own. It relies on "
"the Tor onion service's encryption instead."
diff --git a/docs/source/locale/el/LC_MESSAGES/help.po b/docs/source/locale/el/LC_MESSAGES/help.po
index 36a0658b..c1448f49 100644
--- a/docs/source/locale/el/LC_MESSAGES/help.po
+++ b/docs/source/locale/el/LC_MESSAGES/help.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2021-10-09 09:04+0000\n"
"Last-Translator: george kitsoukakis \n"
"Language-Team: el \n"
diff --git a/docs/source/locale/el/LC_MESSAGES/index.po b/docs/source/locale/el/LC_MESSAGES/index.po
index dc6da937..fbcf1577 100644
--- a/docs/source/locale/el/LC_MESSAGES/index.po
+++ b/docs/source/locale/el/LC_MESSAGES/index.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2020-11-28 11:28+0000\n"
"Last-Translator: george k \n"
"Language-Team: LANGUAGE \n"
diff --git a/docs/source/locale/el/LC_MESSAGES/install.po b/docs/source/locale/el/LC_MESSAGES/install.po
index 4e57c478..9f900ca6 100644
--- a/docs/source/locale/el/LC_MESSAGES/install.po
+++ b/docs/source/locale/el/LC_MESSAGES/install.po
@@ -6,8 +6,8 @@
msgid ""
msgstr ""
"Project-Id-Version: OnionShare 2.3\n"
-"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
-"POT-Creation-Date: 2024-03-15 13:52+0530\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-02-18 17:24+1100\n"
"PO-Revision-Date: 2024-08-05 15:39+0000\n"
"Last-Translator: george kitsoukakis \n"
"Language-Team: el \n"
@@ -16,7 +16,6 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.7-dev\n"
"Generated-By: Babel 2.14.0\n"
#: ../../source/install.rst:2
@@ -44,7 +43,7 @@ msgid "You can download OnionShare for Mobile from the follow links"
msgstr ""
"Κάντε λήψη του OnionShare για κινητό τηλέφωνο από τους παρακάτω συνδέσμους"
-#: ../../source/install.rst:18
+#: ../../source/install.rst:16
msgid "Android"
msgstr "Android"
@@ -60,7 +59,7 @@ msgstr ""
msgid "F-Droid: https://github.com/onionshare/onionshare-android-nightly"
msgstr "F-Droid: https://github.com/onionshare/onionshare-android-nightly"
-#: ../../source/install.rst:24
+#: ../../source/install.rst:20
msgid "iOS"
msgstr "iOS"
@@ -368,11 +367,11 @@ msgstr "Κλειδί υπογραφής"
#: ../../source/install.rst:117
msgid ""
"Packages are signed by the core developer who is responsible for the "
-"particular release. Following are the informations of the core developers of "
-"OnionShare:"
+"particular release. Here is the GPG key information for each of the core "
+"developers of OnionShare:"
msgstr ""
-#: ../../source/install.rst:122
+#: ../../source/install.rst:120
msgid "Micah Lee:"
msgstr "Micah Lee:"
@@ -388,11 +387,11 @@ msgid ""
"keys.openpgp.org/vks/v1/by-"
"fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
msgstr ""
-"Μπορείτε να κατεβάσετε το κλειδί του Micah από το `διακομιστή κλειδιών "
-"keys.openpgp.org `_."
+"Μπορείτε να κατεβάσετε το κλειδί του Micah από το `διακομιστή κλειδιών keys."
+"openpgp.org `_."
-#: ../../source/install.rst:126
+#: ../../source/install.rst:124
msgid "Saptak Sengupta:"
msgstr "Saptak Sengupta:"
@@ -408,11 +407,33 @@ msgid ""
"keys.openpgp.org/vks/v1/by-"
"fingerprint/2AE3D40A6905C8E4E8ED95ECE46A2B977C14666B>`_."
msgstr ""
-"Μπορείτε να κατεβάσετε το κλειδί του Saptak από το `διακομιστή κλειδιών "
-"keys.openpgp.org `_."
+"Μπορείτε να κατεβάσετε το κλειδί του Saptak από το `διακομιστή κλειδιών keys."
+"openpgp.org `_."
#: ../../source/install.rst:128
+msgid "Miguel Jacq:"
+msgstr ""
+
+#: ../../source/install.rst:129
+#, fuzzy
+msgid ""
+"PGP public key fingerprint ``00AE817C24A10C2540461A9C1D7CDE0234DB458D``."
+msgstr ""
+"Αποτύπωση δημόσιου κλειδιού PGP ``927F419D7EC82C2F149C1BD1403C2657CD994F73``."
+
+#: ../../source/install.rst:130
+#, fuzzy
+msgid ""
+"You can download Miguel's key `from the keys.openpgp.org keyserver `_."
+msgstr ""
+"Μπορείτε να κατεβάσετε το κλειδί του Micah από το `διακομιστή κλειδιών keys."
+"openpgp.org `_."
+
+#: ../../source/install.rst:132
msgid ""
"You must have GnuPG installed to verify signatures. For macOS you probably "
"want `GPGTools `_, and for Windows you probably want "
@@ -422,11 +443,11 @@ msgstr ""
"macOS χρειάζεστε το `GPGTools `_ και για Windows το "
"`Gpg4win `_."
-#: ../../source/install.rst:131
+#: ../../source/install.rst:135
msgid "Signatures"
msgstr "Υπογραφές"
-#: ../../source/install.rst:133
+#: ../../source/install.rst:137
msgid ""
"You can find the signatures (as ``.asc`` files), as well as Windows, macOS, "
"Flatpak, Snap, and source packages, at https://onionshare.org/dist/ in the "
@@ -439,11 +460,11 @@ msgstr ""
"`σελίδα εκδόσεων του GitHub `_."
-#: ../../source/install.rst:137
+#: ../../source/install.rst:141
msgid "Verifying"
msgstr "Επιβεβαίωση"
-#: ../../source/install.rst:139
+#: ../../source/install.rst:143
#, fuzzy
msgid ""
"Once you have imported the core developers public keys into your GnuPG "
@@ -454,27 +475,27 @@ msgstr ""
"λήψη του δυαδικού και της υπογραφής ``.asc``, μπορείτε να επιβεβαιώσετε το "
"δυαδικό σύστημα για macOS σε ένα τερματικό όπως:"
-#: ../../source/install.rst:141
+#: ../../source/install.rst:145
msgid "For Windows::"
msgstr "Για Windows::"
-#: ../../source/install.rst:145
+#: ../../source/install.rst:149
msgid "For macOS::"
msgstr "Για macOS::"
-#: ../../source/install.rst:149
+#: ../../source/install.rst:153
msgid "For Linux::"
msgstr "Για Linux::"
-#: ../../source/install.rst:155
+#: ../../source/install.rst:159
msgid "and for the source file::"
msgstr "και για το αρχείο προέλευσης::"
-#: ../../source/install.rst:159
+#: ../../source/install.rst:163
msgid "The expected output looks like this::"
msgstr "Θα πρέπει να δείτε κάτι όπως::"
-#: ../../source/install.rst:169
+#: ../../source/install.rst:173
msgid ""
"If you don't see ``Good signature from``, there might be a problem with the "
"integrity of the file (malicious or otherwise), and you should not install "
@@ -484,7 +505,7 @@ msgstr ""
"με την ακεραιότητα του αρχείου (κακόβουλο ή άλλο) και δεν πρέπει να το "
"εγκαταστήσετε."
-#: ../../source/install.rst:171
+#: ../../source/install.rst:175
msgid ""
"The ``WARNING:`` shown above, is not a problem with the package, it only "
"means you haven't defined a level of \"trust\" of Micah's (the core "
@@ -494,7 +515,7 @@ msgstr ""
"πακέτο, σημαίνει μόνο ότι δεν έχετε ορίσει το επίπεδο \"εμπιστοσύνης\" του "
"κλειδιού PGP του Micah."
-#: ../../source/install.rst:173
+#: ../../source/install.rst:177
msgid ""
"If you want to learn more about verifying PGP signatures, the guides for "
"`Qubes OS