summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMicah Lee <micah@micahflee.com>2020-09-03 12:01:50 -0700
committerGitHub <noreply@github.com>2020-09-03 12:01:50 -0700
commitf89a67d91a9300f5128b5fac2255bf351347ea57 (patch)
treec41b65dbe269bb6aa10947e86dbf270a3c61ef1e
parentcd61e92f216719cbc6775121f47c85a3bc658941 (diff)
parent023bb8d7ac73b34bc6d05bcf72037b4897f4e53b (diff)
downloadonionshare-f89a67d91a9300f5128b5fac2255bf351347ea57.tar.gz
onionshare-f89a67d91a9300f5128b5fac2255bf351347ea57.zip
Merge pull request #1167 from micahflee/docs
OnionShare documentation website
-rw-r--r--.gitignore3
-rw-r--r--BUILD.md15
-rw-r--r--CHANGELOG.md10
-rw-r--r--LICENSE2
-rw-r--r--README.md35
-rwxr-xr-xdev_scripts/onionshare4
-rwxr-xr-xdev_scripts/onionshare-gui4
-rw-r--r--docs/Makefile20
-rw-r--r--docs/README.md38
-rwxr-xr-xdocs/build.sh35
-rw-r--r--docs/gettext/.doctrees/advanced.doctreebin0 -> 29050 bytes
-rw-r--r--docs/gettext/.doctrees/develop.doctreebin0 -> 41566 bytes
-rw-r--r--docs/gettext/.doctrees/environment.picklebin0 -> 38801 bytes
-rw-r--r--docs/gettext/.doctrees/features.doctreebin0 -> 43702 bytes
-rw-r--r--docs/gettext/.doctrees/help.doctreebin0 -> 8171 bytes
-rw-r--r--docs/gettext/.doctrees/index.doctreebin0 -> 3439 bytes
-rw-r--r--docs/gettext/.doctrees/install.doctreebin0 -> 20103 bytes
-rw-r--r--docs/gettext/.doctrees/security.doctreebin0 -> 15257 bytes
-rw-r--r--docs/gettext/.doctrees/tor.doctreebin0 -> 28673 bytes
-rw-r--r--docs/gettext/advanced.pot153
-rw-r--r--docs/gettext/develop.pot177
-rw-r--r--docs/gettext/features.pot226
-rw-r--r--docs/gettext/help.pot57
-rw-r--r--docs/gettext/index.pot25
-rw-r--r--docs/gettext/install.pot101
-rw-r--r--docs/gettext/security.pot61
-rw-r--r--docs/gettext/sphinx.pot25
-rw-r--r--docs/gettext/tor.pot137
-rw-r--r--docs/make.bat35
-rw-r--r--docs/requirements.txt3
-rw-r--r--docs/source/_static/apple-logo.pngbin0 -> 6620 bytes
-rw-r--r--docs/source/_static/custom.css21
-rw-r--r--docs/source/_static/favicon.icobin0 -> 4286 bytes
-rw-r--r--docs/source/_static/linux-logo.pngbin0 -> 10237 bytes
-rw-r--r--docs/source/_static/logo.pngbin0 -> 18375 bytes
-rw-r--r--docs/source/_static/screenshots/advanced-save-tabs.pngbin0 -> 18667 bytes
-rw-r--r--docs/source/_static/screenshots/advanced-schedule-start-timer.pngbin0 -> 47799 bytes
-rw-r--r--docs/source/_static/screenshots/advanced-schedule-stop-timer.pngbin0 -> 114019 bytes
-rw-r--r--docs/source/_static/screenshots/chat-sharing.pngbin0 -> 60339 bytes
-rw-r--r--docs/source/_static/screenshots/chat-torbrowser.pngbin0 -> 48464 bytes
-rw-r--r--docs/source/_static/screenshots/chat.pngbin0 -> 54235 bytes
-rw-r--r--docs/source/_static/screenshots/receive-sharing.pngbin0 -> 84635 bytes
-rw-r--r--docs/source/_static/screenshots/receive-torbrowser.pngbin0 -> 56883 bytes
-rw-r--r--docs/source/_static/screenshots/receive.pngbin0 -> 84892 bytes
-rw-r--r--docs/source/_static/screenshots/settings.pngbin0 -> 55802 bytes
-rw-r--r--docs/source/_static/screenshots/share-files.pngbin0 -> 48917 bytes
-rw-r--r--docs/source/_static/screenshots/share-sharing.pngbin0 -> 48161 bytes
-rw-r--r--docs/source/_static/screenshots/share-torbrowser.pngbin0 -> 42133 bytes
-rw-r--r--docs/source/_static/screenshots/share.pngbin0 -> 43822 bytes
-rw-r--r--docs/source/_static/screenshots/tabs.pngbin0 -> 70875 bytes
-rw-r--r--docs/source/_static/screenshots/website-files.pngbin0 -> 66994 bytes
-rw-r--r--docs/source/_static/screenshots/website.pngbin0 -> 46330 bytes
-rw-r--r--docs/source/_static/windows-logo.pngbin0 -> 5187 bytes
-rw-r--r--docs/source/_templates/versions.html25
-rw-r--r--docs/source/advanced.rst148
-rw-r--r--docs/source/conf.py36
-rw-r--r--docs/source/develop.rst200
-rw-r--r--docs/source/features.rst144
-rw-r--r--docs/source/help.rst24
-rw-r--r--docs/source/index.rst17
-rw-r--r--docs/source/install.rst66
-rw-r--r--docs/source/locale/ar/LC_MESSAGES/advanced.po224
-rw-r--r--docs/source/locale/ar/LC_MESSAGES/develop.po248
-rw-r--r--docs/source/locale/ar/LC_MESSAGES/features.po382
-rw-r--r--docs/source/locale/ar/LC_MESSAGES/help.po72
-rw-r--r--docs/source/locale/ar/LC_MESSAGES/index.po29
-rw-r--r--docs/source/locale/ar/LC_MESSAGES/install.po143
-rw-r--r--docs/source/locale/ar/LC_MESSAGES/security.po114
-rw-r--r--docs/source/locale/ar/LC_MESSAGES/sphinx.po27
-rw-r--r--docs/source/locale/ar/LC_MESSAGES/tor.po213
-rw-r--r--docs/source/locale/ca/LC_MESSAGES/advanced.po224
-rw-r--r--docs/source/locale/ca/LC_MESSAGES/develop.po248
-rw-r--r--docs/source/locale/ca/LC_MESSAGES/features.po382
-rw-r--r--docs/source/locale/ca/LC_MESSAGES/help.po72
-rw-r--r--docs/source/locale/ca/LC_MESSAGES/index.po29
-rw-r--r--docs/source/locale/ca/LC_MESSAGES/install.po143
-rw-r--r--docs/source/locale/ca/LC_MESSAGES/security.po114
-rw-r--r--docs/source/locale/ca/LC_MESSAGES/sphinx.po27
-rw-r--r--docs/source/locale/ca/LC_MESSAGES/tor.po213
-rw-r--r--docs/source/locale/da/LC_MESSAGES/advanced.po224
-rw-r--r--docs/source/locale/da/LC_MESSAGES/develop.po248
-rw-r--r--docs/source/locale/da/LC_MESSAGES/features.po382
-rw-r--r--docs/source/locale/da/LC_MESSAGES/help.po72
-rw-r--r--docs/source/locale/da/LC_MESSAGES/index.po29
-rw-r--r--docs/source/locale/da/LC_MESSAGES/install.po143
-rw-r--r--docs/source/locale/da/LC_MESSAGES/security.po114
-rw-r--r--docs/source/locale/da/LC_MESSAGES/sphinx.po27
-rw-r--r--docs/source/locale/da/LC_MESSAGES/tor.po213
-rw-r--r--docs/source/locale/en/LC_MESSAGES/advanced.po224
-rw-r--r--docs/source/locale/en/LC_MESSAGES/develop.po248
-rw-r--r--docs/source/locale/en/LC_MESSAGES/features.po382
-rw-r--r--docs/source/locale/en/LC_MESSAGES/help.po72
-rw-r--r--docs/source/locale/en/LC_MESSAGES/index.po29
-rw-r--r--docs/source/locale/en/LC_MESSAGES/install.po143
-rw-r--r--docs/source/locale/en/LC_MESSAGES/security.po114
-rw-r--r--docs/source/locale/en/LC_MESSAGES/sphinx.po27
-rw-r--r--docs/source/locale/en/LC_MESSAGES/tor.po213
-rw-r--r--docs/source/locale/nl/LC_MESSAGES/advanced.po224
-rw-r--r--docs/source/locale/nl/LC_MESSAGES/develop.po248
-rw-r--r--docs/source/locale/nl/LC_MESSAGES/features.po382
-rw-r--r--docs/source/locale/nl/LC_MESSAGES/help.po72
-rw-r--r--docs/source/locale/nl/LC_MESSAGES/index.po29
-rw-r--r--docs/source/locale/nl/LC_MESSAGES/install.po143
-rw-r--r--docs/source/locale/nl/LC_MESSAGES/security.po114
-rw-r--r--docs/source/locale/nl/LC_MESSAGES/sphinx.po27
-rw-r--r--docs/source/locale/nl/LC_MESSAGES/tor.po213
-rw-r--r--docs/source/security.rst24
-rw-r--r--docs/source/tor.rst93
-rw-r--r--install/get-tor-osx.py2
-rw-r--r--install/get-tor-windows.py2
-rw-r--r--install/org.onionshare.OnionShare.appdata.xml28
-rwxr-xr-xinstall/scripts/onionshare3
-rwxr-xr-xinstall/scripts/onionshare-gui3
-rw-r--r--install/scripts/onionshare-pyinstaller9
-rw-r--r--onionshare/__init__.py54
-rw-r--r--onionshare/common.py2
-rw-r--r--onionshare/mode_settings.py2
-rw-r--r--onionshare/onion.py2
-rw-r--r--onionshare/onionshare.py2
-rw-r--r--onionshare/settings.py2
-rw-r--r--onionshare/strings.py2
-rw-r--r--onionshare/web/__init__.py2
-rw-r--r--onionshare/web/chat_mode.py20
-rw-r--r--onionshare/web/receive_mode.py20
-rw-r--r--onionshare/web/send_base_mode.py20
-rw-r--r--onionshare/web/share_mode.py20
-rw-r--r--onionshare/web/web.py20
-rw-r--r--onionshare/web/website_mode.py20
-rw-r--r--onionshare_gui/__init__.py3
-rw-r--r--onionshare_gui/gui_common.py3
-rw-r--r--onionshare_gui/main_window.py3
-rw-r--r--onionshare_gui/settings_dialog.py5
-rw-r--r--onionshare_gui/tab/__init__.py3
-rw-r--r--onionshare_gui/tab/mode/__init__.py3
-rw-r--r--onionshare_gui/tab/mode/chat_mode/__init__.py3
-rw-r--r--onionshare_gui/tab/mode/file_selection.py3
-rw-r--r--onionshare_gui/tab/mode/history.py5
-rw-r--r--onionshare_gui/tab/mode/mode_settings_widget.py3
-rw-r--r--onionshare_gui/tab/mode/receive_mode/__init__.py3
-rw-r--r--onionshare_gui/tab/mode/share_mode/__init__.py3
-rw-r--r--onionshare_gui/tab/mode/share_mode/threads.py3
-rw-r--r--onionshare_gui/tab/mode/website_mode/__init__.py3
-rw-r--r--onionshare_gui/tab/server_status.py3
-rw-r--r--onionshare_gui/tab/tab.py3
-rw-r--r--onionshare_gui/tab_widget.py3
-rw-r--r--onionshare_gui/threads.py3
-rw-r--r--onionshare_gui/tor_connection_dialog.py3
-rw-r--r--onionshare_gui/update_checker.py3
-rw-r--r--onionshare_gui/widgets.py16
-rw-r--r--pyproject.toml2
-rw-r--r--setup.py29
-rw-r--r--share/version.txt2
-rw-r--r--tests/test_cli.py19
-rw-r--r--tests/test_cli_common.py19
-rw-r--r--tests/test_cli_settings.py19
-rw-r--r--tests/test_cli_strings.py19
-rw-r--r--tests/test_cli_web.py19
157 files changed, 9432 insertions, 235 deletions
diff --git a/.gitignore b/.gitignore
index 1fcbaa99..4f84c508 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,6 +11,7 @@ __pycache__
dist
deb_dist
build
+_build
eggs
parts
var
@@ -53,4 +54,4 @@ tags
venv
# other
-.vscode \ No newline at end of file
+.vscode
diff --git a/BUILD.md b/BUILD.md
index 8b51f150..3615c2c0 100644
--- a/BUILD.md
+++ b/BUILD.md
@@ -9,6 +9,7 @@
* [To make a .exe](#to-make-a-exe)
* [To build the installer](#to-build-the-installer)
* [Running tests](#running-tests)
+* [Documentation]
* [Making releases](#making-releases)
* [Changelog, version, and signed git tag](#changelog-version-and-signed-git-tag)
* [Linux release](#linux-release)
@@ -292,19 +293,29 @@ You can run this Windows batch script to run all of the CLI and GUI tests.
poetry run tests\run.bat
```
+# Documentation
+
+To edit and build the documentation, see the [docs readme](/docs/README.md).
+
# Making releases
This section documents the release process. Unless you're a core OnionShare developer making a release, you'll probably never need to follow it.
-## Changelog, version, and signed git tag
+## Changelog, version, docs, and signed git tag
-Before making a release, all of these should be complete:
+Before making a release, you must update the version in these places:
* `share/version.txt` should have the correct version
* `pyproject.toml` should have the correct version
+* `docs/source/conf.py` should have the correct version
* `install/org.onionshare.OnionShare.appdata.xml` should have the correct version
* `install/onionshare.nsi` should have the correct version, for the Windows installer
+
+In addition to that, you must:
+
+* `install/org.onionshare.OnionShare.appdata.xml` should have the correct release date, and links to correct screenshots
* `CHANGELOG.md` should be updated to include a list of all major changes since the last release
+* Update all of the documentation to cover new features, including taking new screenshots if necessary
* There must be a PGP-signed git tag for the version, e.g. for OnionShare 2.1, the tag must be `v2.1`
The first step for the Linux, macOS, and Windows releases is the same:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index da5f0c42..272f8efc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,15 @@
# OnionShare Changelog
+## 2.3
+
+* Major new feature: Multiple tabs, including better support for persistent services, faster Tor connections
+* New feature: Chat anonymously mode
+* New feature: All new design
+* New feature: Ability to display QR codes of OnionShare addresses
+* New feature: Web apps have responsive design and look better on mobile
+* New feature: Flatpak packaging for Linux
+* Several bug fixes
+
## 2.2
* New feature: Website mode, which allows publishing a static HTML website as an onion service
diff --git a/LICENSE b/LICENSE
index 668a10f0..5a3a9871 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,7 +1,7 @@
(Note: Third-party licenses can be found under install/licenses/.)
OnionShare
-Copyright © 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
diff --git a/README.md b/README.md
index 0c14c121..57a835be 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,8 @@
-# OnionShare
-
-[OnionShare](https://onionshare.org) is an open source tool for securely and anonymously sending and receiving files using Tor onion services. It works by starting a web server directly on your computer and making it accessible as an unguessable Tor web address that others can load in [Tor Browser](https://www.torproject.org/) to download files from you, or upload files to you. It doesn't require setting up a separate server, using a third party file-sharing service, or even logging into an account.
+![OnionShare](/docs/source/_static/logo.png)
-Unlike services like email, Google Drive, DropBox, WeTransfer, or nearly any other way people typically send files to each other, when you use OnionShare you don't give any companies access to the files that you're sharing. So long as you share the unguessable web address in a secure way (like pasting it in an encrypted messaging app), _no one_ but you and the person you're sharing with can access the files.
-
-## Documentation
+# OnionShare
-To learn how OnionShare works, what its security properties are, and how to use it, check out the [wiki](https://github.com/micahflee/onionshare/wiki).
+OnionShare is an open source tool that lets you securely and anonymously share files, host websites, and chat with friends using the Tor network.
## Installing OnionShare
@@ -18,29 +14,12 @@ For macOS you can also use [Homebrew](https://brew.sh/):
brew cask install onionshare
```
-For Ubuntu-like Linux distributions, you can use this PPA:
-
-```
-sudo add-apt-repository ppa:micahflee/ppa
-sudo apt install -y onionshare
-```
+See [these instructions](https://docs.onionshare.org/en/install.html#install-in-linux-with-flatpak) to install OnionShare in Linux with Flatpak.
-OnionShare may also be available in your Linux distribution's package manager. Check [this wiki page](https://github.com/micahflee/onionshare/wiki/How-Do-I-Install-Onionshare) for more information.
+## Documentation
-## Contributing to OnionShare
+To learn how OnionShare works, what its security properties are, how to use it, and how to contribute to the project, check out https://docs.onionshare.org.
-You can set up your development environment to build OnionShare yourself by following [these instructions](/BUILD.md). You may also subscribe to our mailing list [here](https://lists.riseup.net/www/info/onionshare-dev), and join our public Keybase team [here](https://keybase.io/team/onionshare).
+---
Test status: [![CircleCI](https://circleci.com/gh/micahflee/onionshare.svg?style=svg)](https://circleci.com/gh/micahflee/onionshare)
-
-# Screenshots
-
-![Share mode OnionShare](/screenshots/onionshare-share-server.png)
-
-![Share mode Tor Browser](/screenshots/onionshare-share-client.png)
-
-![Receive mode OnionShare](/screenshots/onionshare-receive-server.png)
-
-![Receive mode Tor Browser](/screenshots/onionshare-receive-client.png)
-
-![Website mode OnionShare](/screenshots/onionshare-website-server.png) \ No newline at end of file
diff --git a/dev_scripts/onionshare b/dev_scripts/onionshare
index 29cdedcc..33e59203 100755
--- a/dev_scripts/onionshare
+++ b/dev_scripts/onionshare
@@ -3,7 +3,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -21,8 +21,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# Load onionshare module and resources from the source code tree
import os, sys
+
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
sys.onionshare_dev_mode = True
import onionshare
+
onionshare.main()
diff --git a/dev_scripts/onionshare-gui b/dev_scripts/onionshare-gui
index 40ab742c..6585be02 100755
--- a/dev_scripts/onionshare-gui
+++ b/dev_scripts/onionshare-gui
@@ -3,7 +3,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -21,8 +21,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# Load onionshare module and resources from the source code tree
import os, sys
+
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
sys.onionshare_dev_mode = True
import onionshare_gui
+
onionshare_gui.main()
diff --git a/docs/Makefile b/docs/Makefile
new file mode 100644
index 00000000..d0c3cbf1
--- /dev/null
+++ b/docs/Makefile
@@ -0,0 +1,20 @@
+# Minimal makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line, and also
+# from the environment for the first two.
+SPHINXOPTS ?=
+SPHINXBUILD ?= sphinx-build
+SOURCEDIR = source
+BUILDDIR = build
+
+# Put it first so that "make" without argument is like "make help".
+help:
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help Makefile
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: Makefile
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 00000000..fd444384
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1,38 @@
+# OnionShare Documentation
+
+All these commands must be run from the `docs` folder.
+
+You must have the python dependencies installed to build the docs:
+
+```sh
+pip3 install --user -r requirements.txt
+```
+
+To build HTML docs:
+
+```sh
+make html
+```
+
+Then open `docs/build/html/index.html` in a browser to see it.
+
+To update all of the translations and build all the html, run:
+
+```sh
+./build.sh
+```
+
+You will end up with the documentation in all supported locales in `docs/localized_html`.
+
+Here's how preparing translations works:
+
+```sh
+# Generate .po files in build/gettext
+make gettext
+
+# Create a new blank German locale in source/locale, based on .po files
+sphinx-intl update -p build/gettext -l de
+
+# Build German translated document
+make -e SPHINXOPTS="-D language='de'" html
+```
diff --git a/docs/build.sh b/docs/build.sh
new file mode 100755
index 00000000..da24dc6f
--- /dev/null
+++ b/docs/build.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+VERSION=`cat ../share/version.txt`
+
+# Supported locales
+#LOCALES="ar ca zh_CN zh_TW da nl en fr de el is ga it ja nb fa pl pt_BR pt_PT ro ru sr@latin es sv te tr uk"
+LOCALES="ar ca da nl en"
+
+# Generate English .po files
+make gettext
+rm -rf gettext > /dev/null
+cp -r build/gettext gettext
+
+# Update all .po files for all locales
+for LOCALE in $LOCALES; do
+ sphinx-intl update -p build/gettext -l $LOCALE
+done
+
+# Build all locales
+rm -rf build/html build/docs > /dev/null
+mkdir -p build/docs/$VERSION
+
+make html
+mv build/html build/docs/$VERSION/en
+
+for LOCALE in $LOCALES; do
+ make -e SPHINXOPTS="-D language='$LOCALE'" html
+ mv build/html build/docs/$VERSION/$LOCALE
+done
+
+# Redirect to English by default
+echo '<html><head><meta http-equiv="refresh" content="0; url=en/" /><script>document.location="en/"</script></head></html>' > build/docs/$VERSION/index.html
+
+# Redirect to latest version
+echo '<html><head><meta http-equiv="refresh" content="0; url='$VERSION'/en/" /><script>document.location="'$VERSION'/en/"</script></head></html>' > build/docs/index.html \ No newline at end of file
diff --git a/docs/gettext/.doctrees/advanced.doctree b/docs/gettext/.doctrees/advanced.doctree
new file mode 100644
index 00000000..498c0f7c
--- /dev/null
+++ b/docs/gettext/.doctrees/advanced.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/develop.doctree b/docs/gettext/.doctrees/develop.doctree
new file mode 100644
index 00000000..945a1fe4
--- /dev/null
+++ b/docs/gettext/.doctrees/develop.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/environment.pickle b/docs/gettext/.doctrees/environment.pickle
new file mode 100644
index 00000000..e46b6331
--- /dev/null
+++ b/docs/gettext/.doctrees/environment.pickle
Binary files differ
diff --git a/docs/gettext/.doctrees/features.doctree b/docs/gettext/.doctrees/features.doctree
new file mode 100644
index 00000000..4ac88e50
--- /dev/null
+++ b/docs/gettext/.doctrees/features.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/help.doctree b/docs/gettext/.doctrees/help.doctree
new file mode 100644
index 00000000..3450c8be
--- /dev/null
+++ b/docs/gettext/.doctrees/help.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/index.doctree b/docs/gettext/.doctrees/index.doctree
new file mode 100644
index 00000000..9855b80a
--- /dev/null
+++ b/docs/gettext/.doctrees/index.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/install.doctree b/docs/gettext/.doctrees/install.doctree
new file mode 100644
index 00000000..2a302045
--- /dev/null
+++ b/docs/gettext/.doctrees/install.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/security.doctree b/docs/gettext/.doctrees/security.doctree
new file mode 100644
index 00000000..220f8b15
--- /dev/null
+++ b/docs/gettext/.doctrees/security.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/tor.doctree b/docs/gettext/.doctrees/tor.doctree
new file mode 100644
index 00000000..63f63b6a
--- /dev/null
+++ b/docs/gettext/.doctrees/tor.doctree
Binary files differ
diff --git a/docs/gettext/advanced.pot b/docs/gettext/advanced.pot
new file mode 100644
index 00000000..e9cc2304
--- /dev/null
+++ b/docs/gettext/advanced.pot
@@ -0,0 +1,153 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/advanced.rst:2
+msgid "Advanced usage"
+msgstr ""
+
+#: ../../source/advanced.rst:7
+msgid "Save tabs"
+msgstr ""
+
+#: ../../source/advanced.rst:9
+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. But sometimes you might want an OnionShare service to be persistent. For example, this would be useful if you want to host a website that can keep the same URL even if you reboot your computer."
+msgstr ""
+
+#: ../../source/advanced.rst:11
+msgid "To make any tab persistent, check the \"Save this tab, and automatically open it when I open OnionShare\" box before starting the server. When a tab is saved a purple pin icon appears to the left of its server status."
+msgstr ""
+
+#: ../../source/advanced.rst:15
+msgid "When you quit OnionShare and then open it again, your saved tabs will start out open. You'll have to manually start each service, but when you do they will start with the same OnionShare address, and with the same password."
+msgstr ""
+
+#: ../../source/advanced.rst:17
+msgid "If you save a tab, a copy of that tab's onion service secret key will be stored on your computer with your OnionShare settings."
+msgstr ""
+
+#: ../../source/advanced.rst:22
+msgid "Disable passwords"
+msgstr ""
+
+#: ../../source/advanced.rst:24
+msgid "By default, all OnionShare services are protected with the username `onionshare` and a randomly-generated password. If someone makes 20 wrong guesses of the password, your onion service is automatically stopped to prevent a brute force attack against the OnionShare service."
+msgstr ""
+
+#: ../../source/advanced.rst:26
+msgid "But sometimes you might want your OnionShare service to be accessible to the public. For example, if you want to set up an OnionShare receive service so the public can securely and anonymously send you files. In this case, it's better to disable the password altogether. If you don't do this, someone can force your server to stop just by making 20 wrong guesses of your password, even if they know the correct password."
+msgstr ""
+
+#: ../../source/advanced.rst:28
+msgid "To disable the password for any tab, just check the \"Don't use a password\" box before starting the server. Then the server will be public and won't have a password."
+msgstr ""
+
+#: ../../source/advanced.rst:31
+msgid "Scheduled times"
+msgstr ""
+
+#: ../../source/advanced.rst:33
+msgid "OnionShare supports scheduling exactly when a service should start and stop. Before starting 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 desired dates and times."
+msgstr ""
+
+#: ../../source/advanced.rst:35
+msgid "If you scheduled a service to start in the future, when you click the start button you will see a timer counting down until it will start. If you scheduled it to stop in the future, after it's started you will see a timer counting down to when it will stop automatically."
+msgstr ""
+
+#: ../../source/advanced.rst:37
+msgid "**Scheduling an OnionShare service to automatically start can be used as a dead man's switch**, where your service will be made public at a given time in the future if anything happens to you. If nothing happens to you, you can cancel the service before it's scheduled to start."
+msgstr ""
+
+#: ../../source/advanced.rst:41
+msgid "**Scheduling an OnionShare service to automatically stop can be useful to limit exposure**, like if you want to share secret documents while making sure they're not available on the internet for more than a few days."
+msgstr ""
+
+#: ../../source/advanced.rst:46
+msgid "Command line interface"
+msgstr ""
+
+#: ../../source/advanced.rst:48
+msgid "In addition to its graphical interface, OnionShare has a command line interface."
+msgstr ""
+
+#: ../../source/advanced.rst:51
+msgid "Linux"
+msgstr ""
+
+#: ../../source/advanced.rst:53
+msgid "If you installed OnionShare using the Flatpak package, unfortunately the command line interface isn't supported."
+msgstr ""
+
+#: ../../source/advanced.rst:55
+msgid "If you installed OnionShare using an operating system package, you can just run ``onionshare`` from the terminal."
+msgstr ""
+
+#: ../../source/advanced.rst:58
+msgid "macOS"
+msgstr ""
+
+#: ../../source/advanced.rst:60
+msgid "Make a symbolic link to the OnionShare command line binary line this::"
+msgstr ""
+
+#: ../../source/advanced.rst:64
+msgid "Now you can run ``onionshare`` from the terminal."
+msgstr ""
+
+#: ../../source/advanced.rst:67
+msgid "Windows"
+msgstr ""
+
+#: ../../source/advanced.rst:69
+msgid "The command line interface isn't supported in Windows."
+msgstr ""
+
+#: ../../source/advanced.rst:71
+msgid "If you really want to use it anyway, you can set up a Windows development environment (see :ref:`starting_development`) and then run this in a command prompt::"
+msgstr ""
+
+#: ../../source/advanced.rst:76
+msgid "Usage"
+msgstr ""
+
+#: ../../source/advanced.rst:78
+msgid "You can see command line documentation by running ``onionshare --help``::"
+msgstr ""
+
+#: ../../source/advanced.rst:134
+msgid "Legacy addresses"
+msgstr ""
+
+#: ../../source/advanced.rst:136
+msgid "OnionShare uses v3 Tor onion services by default. These are modern onion addresses that have 56 characters, for example::"
+msgstr ""
+
+#: ../../source/advanced.rst:140
+msgid "But it still has support for v2 onion addresses, the old type of onion addresses that have 16 characters, for example::"
+msgstr ""
+
+#: ../../source/advanced.rst:144
+msgid "OnionShare calls v2 onion addresses \"legacy addresses\". v3 onion addresses are more secure, and using legacy addresses is not recommended."
+msgstr ""
+
+#: ../../source/advanced.rst:146
+msgid "To use legacy addresses, before starting a server click \"Show advanced settings\" in its tab and check the \"Use a legacy address (v2 onion service, not recommended)\" box. In legacy mode you can optionally enable Tor client authentication. Once you start a server in legacy mode you cannot remove legacy mode in that tab. Instead you must start a separate service in a separate tab."
+msgstr ""
+
+#: ../../source/advanced.rst:148
+msgid "Tor Project plans to `completely deprecate v2 onion services <https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, 2021, and legacy onion services will soon be removed from OnionShare as well."
+msgstr ""
diff --git a/docs/gettext/develop.pot b/docs/gettext/develop.pot
new file mode 100644
index 00000000..f65aa596
--- /dev/null
+++ b/docs/gettext/develop.pot
@@ -0,0 +1,177 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/develop.rst:2
+msgid "Developing OnionShare"
+msgstr ""
+
+#: ../../source/develop.rst:7
+msgid "Collaborating"
+msgstr ""
+
+#: ../../source/develop.rst:9
+msgid "OnionShare has an open Keybase team that we use to discuss the project, including asking questions, sharing ideas and designs, and making plans for future development. (It's also an easy way to send end-to-end encrypted direct messages to others in the OnionShare community, like OnionShare addresses.) To use Keybase, you need to download the `Keybase app <https://keybase.io/download>`_, make an account, and `join this team <https://keybase.io/team/onionshare>`_. Within the app, go to Teams, click \"Join a Team\", and type \"onionshare\"."
+msgstr ""
+
+#: ../../source/develop.rst:11
+msgid "OnionShare also has a `mailing list <https://lists.riseup.net/www/subscribe/onionshare-dev>`_ for developers and and designers to discuss the project."
+msgstr ""
+
+#: ../../source/develop.rst:14
+msgid "Contributing code"
+msgstr ""
+
+#: ../../source/develop.rst:16
+msgid "OnionShare source code is in this git repository: https://github.com/micahflee/onionshare"
+msgstr ""
+
+#: ../../source/develop.rst:18
+msgid "If you'd like to contribute code to OnionShare, it helps to join the Keybase team and ask questions about what you're thinking of working on. You should also review all of the `open issues <https://github.com/micahflee/onionshare/issues>`_ on GitHub to see if there are any that you'd like to develop."
+msgstr ""
+
+#: ../../source/develop.rst:20
+msgid "When you're ready to contribute code, open a pull request in the GitHub repository and one of the project maintainers will review it and possible ask questions, request changes, reject it, or merge it into the project."
+msgstr ""
+
+#: ../../source/develop.rst:25
+msgid "Starting development"
+msgstr ""
+
+#: ../../source/develop.rst:27
+msgid "OnionShare is developed in Python. To get started, you should close the git repository at https://github.com/micahflee/onionshare/ and then consult the ``BUILD.md`` file."
+msgstr ""
+
+#: ../../source/develop.rst:29
+msgid "That file contains the technical instructions and commands necessary:"
+msgstr ""
+
+#: ../../source/develop.rst:31
+msgid "Install dependencies for your platform"
+msgstr ""
+
+#: ../../source/develop.rst:32
+msgid "Run OnionShare from the source tree, without building a package"
+msgstr ""
+
+#: ../../source/develop.rst:33
+msgid "Building packages"
+msgstr ""
+
+#: ../../source/develop.rst:34
+msgid "Making a release of OnionShare"
+msgstr ""
+
+#: ../../source/develop.rst:37
+msgid "Debugging tips"
+msgstr ""
+
+#: ../../source/develop.rst:40
+msgid "Verbose mode"
+msgstr ""
+
+#: ../../source/develop.rst:42
+msgid "When developing, it's convenient to run OnionShare from a terminal and add the ``--verbose`` (or ``-v``) flag to the command. This will print a lot of helpful messages to the terminal such as when certain objects are initialized, when events occur (like buttons clicked, settings saved or reloaded), and other debug information. For example::"
+msgstr ""
+
+#: ../../source/develop.rst:111
+msgid "You can add your own debug messages by running the ``Common.log`` method from ``onionshare/common.py``. For example::"
+msgstr ""
+
+#: ../../source/develop.rst:115
+msgid "This can be useful when learning the chain of events that occur when using the application or the value of certain variables before and after they are manipulated."
+msgstr ""
+
+#: ../../source/develop.rst:118
+msgid "Local only"
+msgstr ""
+
+#: ../../source/develop.rst:120
+msgid "Tor is slow, and it's often convenient to skip starting onion services altogether during development. You can do this with the ``--local-only`` flag. For example::"
+msgstr ""
+
+#: ../../source/develop.rst:157
+msgid "In this case, you load the URL ``http://onionshare:eject-snack@127.0.0.1:17614`` in a normal web browser like Firefox, instead of using Tor Browser."
+msgstr ""
+
+#: ../../source/develop.rst:160
+msgid "Debugging in Windows"
+msgstr ""
+
+#: ../../source/develop.rst:162
+msgid "If you want to obtain debug output from the ``onionshare-gui.exe`` in Windows, you will need to edit ``install\\pyinstaller.spec`` and change ``console=False`` to ``console=True``."
+msgstr ""
+
+#: ../../source/develop.rst:164
+msgid "Then rebuild the EXE with ``install\\build_exe.bat`` (you may need to comment out the ``signtool`` commands in the ``build_exe.bat`` and the ``onionshare.nsi`` files, as per the ``BUILD.md`` instructions)."
+msgstr ""
+
+#: ../../source/develop.rst:166
+msgid "After this, you can run ``onionshare-gui.exe -v`` from a command prompt to see the debug output."
+msgstr ""
+
+#: ../../source/develop.rst:169
+msgid "Contributing translations"
+msgstr ""
+
+#: ../../source/develop.rst:171
+msgid "Most of the OnionShare is translatable. You can help make it easier to use and more familiar and welcoming for people around the globe. The Localization Lab has some `documentation about translating OnionShare <https://wiki.localizationlab.org/index.php/OnionShare>`_."
+msgstr ""
+
+#: ../../source/develop.rst:173
+msgid "OnionShare uses Weblate to keep track of translations. You can view the OnionShare project here: https://hosted.weblate.org/projects/onionshare/"
+msgstr ""
+
+#: ../../source/develop.rst:175
+msgid "To help translate, make a Hosted Weblate account and start contributing to that project."
+msgstr ""
+
+#: ../../source/develop.rst:178
+msgid "Suggestions for original English strings"
+msgstr ""
+
+#: ../../source/develop.rst:180
+msgid "Sometimes the original English strings could be improved, making them easier to translate into other languages."
+msgstr ""
+
+#: ../../source/develop.rst:182
+msgid "If you have suggestions for a better English string, please open a GitHub issue rather than commenting in Weblate. This ensures the upstream developers will definitely see the suggestion, and can potentially modify the string via the usual code review processes."
+msgstr ""
+
+#: ../../source/develop.rst:185
+msgid "Status of translations"
+msgstr ""
+
+#: ../../source/develop.rst:186
+msgid "Here is the current translation status. If you want start a translation in a language not to be found here, please write us to the mailing list: onionshare-dev@lists.riseup.net"
+msgstr ""
+
+#: ../../source/develop.rst:191
+msgid "Translate the .desktop file"
+msgstr ""
+
+#: ../../source/develop.rst:193
+msgid "You can also translate the ``install/onionshare.desktop`` file."
+msgstr ""
+
+#: ../../source/develop.rst:195
+msgid "Duplicate the line that begins with ``Comment=``. Add the language code to the new line so it becomes ``Comment[lang]=`` (lang should be your language). You can see what language codes are used for translation by looking at the ``share/locale/*.json`` filenames::"
+msgstr ""
+
+#: ../../source/develop.rst:200
+msgid "Do the same for other untranslated lines."
+msgstr ""
diff --git a/docs/gettext/features.pot b/docs/gettext/features.pot
new file mode 100644
index 00000000..4fef3fe5
--- /dev/null
+++ b/docs/gettext/features.pot
@@ -0,0 +1,226 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/features.rst:4
+msgid "How OnionShare works"
+msgstr ""
+
+#: ../../source/features.rst:6
+msgid "OnionShare works by starting web servers locally on your own computer and making them accessible to other people as `Tor <https://www.torproject.org/>`_ `onion services <https://community.torproject.org/onion-services/>`_."
+msgstr ""
+
+#: ../../source/features.rst:8
+msgid "By default, OnionShare web addresses are protected with a random password. A typical OnionShare address might look something like this::"
+msgstr ""
+
+#: ../../source/features.rst:12
+msgid "You're responsible for securely sharing that URL using a communication channel of your choice like in an encrypted chat message, or using something less secure like a Twitter or Facebook message, depending on your `threat model <https://ssd.eff.org/en/module/your-security-plan>`_."
+msgstr ""
+
+#: ../../source/features.rst:14
+msgid "The people who you send the URL to must then copy and paste it into `Tor Browser <https://www.torproject.org/>`_ to access the OnionShare service."
+msgstr ""
+
+#: ../../source/features.rst:16
+msgid "With OnionShare, *your own computer is the web server*. If you run OnionShare on your laptop to send someone files, and then suspend your laptop before the files have been downloaded, the service will not be available until your laptop is unsuspended and connected to the internet again. OnionShare works best when working with people in real-time."
+msgstr ""
+
+#: ../../source/features.rst:18
+msgid "Because your own computer is the web server, *no third party can access anything that happens in OnionShare*, not even the developers of OnionShare. It's completely private. And because OnionShare is based on Tor onion services too, it also protects your anonymity. See the :doc:`security design </security>` for more information."
+msgstr ""
+
+#: ../../source/features.rst:21
+msgid "Share Files"
+msgstr ""
+
+#: ../../source/features.rst:23
+msgid "You can use OnionShare to securely and anonymously send files and folders to people. Just open a share tab, drag in the files and folders you wish to share, and click \"Start sharing\"."
+msgstr ""
+
+#: ../../source/features.rst:27
+#: ../../source/features.rst:91
+msgid "After you add files, you'll see some settings. Make sure you choose the setting you're interested in first before you start sharing."
+msgstr ""
+
+#: ../../source/features.rst:31
+msgid "By default, as soon as someone finishes downloading your files, OnionShare will automatically stop the server, completely removing the website from the internet. If you want to allow multiple people to download these files, uncheck the \"Stop sharing after files have been sent (uncheck to allow downloading individual files)\" box."
+msgstr ""
+
+#: ../../source/features.rst:33
+msgid "Also, if you uncheck this box, people will be able to download individual files that you share rather than a single compressed version of all of the files."
+msgstr ""
+
+#: ../../source/features.rst:35
+msgid "When you're ready to share, click the \"Start sharing\" button. You can always click \"Stop sharing\", or quit OnionShare, to immediate take the website down. You can also click the up arrow icon in the top-right corner to show the history and progress of people downloading files from you."
+msgstr ""
+
+#: ../../source/features.rst:39
+msgid "Now that you have a website that's sharing files, copy the address and send it to the person you want to receive the files. If the files need to stay secure, you should use an encrypted messaging app."
+msgstr ""
+
+#: ../../source/features.rst:41
+msgid "That person then must load the address in Tor Browser. After logging in with the random password that's included in the web address, they will be able to download the files directly from your computer by clicking the \"Download Files\" link in the corner."
+msgstr ""
+
+#: ../../source/features.rst:46
+msgid "Receive Files"
+msgstr ""
+
+#: ../../source/features.rst:48
+msgid "You can use OnionShare to let people anonymously upload files directly to your computer, essentially turning it into an anonymous dropbox. Open a receive tab, choose where you want files to get downloaded and other settings, and then click \"Start Receive Mode\"."
+msgstr ""
+
+#: ../../source/features.rst:52
+msgid "This will start the OnionShare service. Anyone that loads this address in Tor Browser will be able to upload files to your computer."
+msgstr ""
+
+#: ../../source/features.rst:56
+msgid "You can also click the down arrow icon in the top-right corner to show the history and progress of people sending files to you."
+msgstr ""
+
+#: ../../source/features.rst:58
+msgid "Here is what it looks like for someone sending you files."
+msgstr ""
+
+#: ../../source/features.rst:62
+msgid "When someone uploads files to your receive service, by default they get saved to a folder called ``OnionShare`` in your home folder on your computer, and they get automatically organized into separate subfolders based on the time that the files get uploaded."
+msgstr ""
+
+#: ../../source/features.rst:64
+msgid "Setting up an OnionShare receiving service is useful for journalists and others that need to securely accept documents from anonymous sources. When used in this way, OnionShare is sort of like a lightweight, simpler, not quite as secure version of `SecureDrop <https://securedrop.org/>`_, the whistleblower submission system."
+msgstr ""
+
+#: ../../source/features.rst:67
+msgid "Use at your own risk"
+msgstr ""
+
+#: ../../source/features.rst:69
+msgid "Just like with malicious email attachments, it's possible that someone could try to hack your computer by uploading a malicious file to your OnionShare service. OnionShare does not add any safety mechanisms to protect your system from malicious files, so use at your own risk."
+msgstr ""
+
+#: ../../source/features.rst:71
+msgid "If you receive an Office document or a PDF through OnionShare, you can convert these documents into PDFs that you know are safe to open using `Dangerzone <https://dangerzone.rocks/>`_. You can also protect yourself when opening untrusted documents by opening them in `Tails <https://tails.boum.org/>`_ or in a `Qubes <https://qubes-os.org/>`_ disposable VM."
+msgstr ""
+
+#: ../../source/features.rst:74
+msgid "Tips for running a receive service"
+msgstr ""
+
+#: ../../source/features.rst:76
+msgid "If you want to host your own anonymous dropbox using OnionShare, it's recommended that you do it on a separate, dedicated computer that's always powered on and connected to the internet, and not on the one you use on a regular basis."
+msgstr ""
+
+#: ../../source/features.rst:78
+msgid "If you intend on advertising the OnionShare address on your website or social media profiles, then you should save the tab (see :ref:`save_tabs`) and run it as a public service (see :ref:`disable_passwords`)."
+msgstr ""
+
+#: ../../source/features.rst:81
+msgid "Host a Website"
+msgstr ""
+
+#: ../../source/features.rst:83
+msgid "You can use OnionShare to host a static HTML website with just a click. Just open a website tab, drag in the files and folders that make up the static website, and click when you're ready click \"Start sharing\"."
+msgstr ""
+
+#: ../../source/features.rst:87
+msgid "If you add an ``index.html`` file, when someone loads your website it will render this page. 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:89
+msgid "If you don't have an ``index.html`` file, then it will show a directory listing instead, and people who load it can look through the files and download them."
+msgstr ""
+
+#: ../../source/features.rst:96
+msgid "Content Security Policy"
+msgstr ""
+
+#: ../../source/features.rst:98
+msgid "By default OnionShare will help secure your website by setting a strict `Content Security Police <https://en.wikipedia.org/wiki/Content_Security_Policy>`_ header. However this will prevent third-party content from loading inside the web page."
+msgstr ""
+
+#: ../../source/features.rst:100
+msgid "If you want to load content from third-party websites, like assets or JavaScript libraries from CDNs, then you must check the \"Disable Content Security Policy header (allows your website to use third-party resources)\" box before starting the service."
+msgstr ""
+
+#: ../../source/features.rst:103
+msgid "Tips for running a website service"
+msgstr ""
+
+#: ../../source/features.rst:105
+msgid "If you want to host a long-term website using OnionShare (that isn't just to quickly show someone something), it's recommended that you do it on a separate, dedicated computer that's always powered on and connected to the internet, and not on the one you use on a regular basis. You should also save the tab (see :ref:`save_tabs`) so that you can resume the website with the same address if you close OnionShare and re-open it later."
+msgstr ""
+
+#: ../../source/features.rst:107
+msgid "If your website is intended to be viewed by the public, you should run it as a public service (see :ref:`disable_passwords`)."
+msgstr ""
+
+#: ../../source/features.rst:110
+msgid "Chat Anonymously"
+msgstr ""
+
+#: ../../source/features.rst:112
+msgid "You can use OnionShare to set up a completely anonymous, secure chat room that doesn't log anything or leave any traces. Just open a chat tab and click \"Start chat server\"."
+msgstr ""
+
+#: ../../source/features.rst:116
+msgid "After you start the server, copy the OnionShare address and send it to the people who will join this anonymous chat room. If it's important to limit exactly who can join, you should use an encrypted messaging app to send the OnionShare address."
+msgstr ""
+
+#: ../../source/features.rst:120
+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 set their security level to Standard or Safer instead of Safest."
+msgstr ""
+
+#: ../../source/features.rst:122
+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 enter. No chat history will get displayed at all, even if others were already chatting in the room, because the chat history isn't saved anywhere."
+msgstr ""
+
+#: ../../source/features.rst:126
+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:128
+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, then you can be reasonably confident that the people who join the chat room are your friends."
+msgstr ""
+
+#: ../../source/features.rst:131
+msgid "How is this useful?"
+msgstr ""
+
+#: ../../source/features.rst:133
+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:135
+msgid "If you send a message to a Signal group, for example, a copy of your message ends up on each device (the phones and computers, if they set up Signal Desktop) of each member of the group. Even if disappearing messages is enabled, it's hard to confirm that all copies of the messages were 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 this isn't a problem."
+msgstr ""
+
+#: ../../source/features.rst:137
+msgid "OnionShare chat rooms can also be useful for anonymous people wanting to chat 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:140
+msgid "How does the encryption work?"
+msgstr ""
+
+#: ../../source/features.rst:142
+msgid "Because OnionShare relies on Tor onion services, connections between 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:144
+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
new file mode 100644
index 00000000..0996bae3
--- /dev/null
+++ b/docs/gettext/help.pot
@@ -0,0 +1,57 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/help.rst:2
+msgid "Getting Help"
+msgstr ""
+
+#: ../../source/help.rst:4
+msgid "If you need help with OnionShare, please follow the instructions below."
+msgstr ""
+
+#: ../../source/help.rst:7
+msgid "Read this website"
+msgstr ""
+
+#: ../../source/help.rst:9
+msgid "This website is full of instructions on how to use OnionShare. Look through all of the sections first to see if it answers your questions."
+msgstr ""
+
+#: ../../source/help.rst:12
+msgid "Check the GitHub issues"
+msgstr ""
+
+#: ../../source/help.rst:14
+msgid "If you can't find a solution in this website, please check the `GitHub issues <https://github.com/micahflee/onionshare/issues>`_. It's possible that someone else has encountered the same problem and has either raised it with the developers, or maybe even posted a solution."
+msgstr ""
+
+#: ../../source/help.rst:17
+msgid "Submit an issue yourself"
+msgstr ""
+
+#: ../../source/help.rst:19
+msgid "If you can't find a solution to your problem, or you wish to ask a question or suggest a new feature, please `submit an issue <https://github.com/micahflee/onionshare/issues/new>`_. This requires `creating an GitHub account <https://help.github.com/articles/signing-up-for-a-new-github-account/>`_."
+msgstr ""
+
+#: ../../source/help.rst:22
+msgid "Join our Keybase team"
+msgstr ""
+
+#: ../../source/help.rst:24
+msgid "See :ref:`collaborating` for instructions on how to join our Keybase team that we use to discuss the project."
+msgstr ""
diff --git a/docs/gettext/index.pot b/docs/gettext/index.pot
new file mode 100644
index 00000000..edd6e67d
--- /dev/null
+++ b/docs/gettext/index.pot
@@ -0,0 +1,25 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:46-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/index.rst:2
+msgid "OnionShare's documentation"
+msgstr ""
+
+#: ../../source/index.rst:6
+msgid "OnionShare is an open source tool that lets you securely and anonymously share files, host websites, and chat with friends using the Tor network."
+msgstr ""
diff --git a/docs/gettext/install.pot b/docs/gettext/install.pot
new file mode 100644
index 00000000..58bedab2
--- /dev/null
+++ b/docs/gettext/install.pot
@@ -0,0 +1,101 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/install.rst:2
+msgid "Installation"
+msgstr ""
+
+#: ../../source/install.rst:5
+msgid "Install on Windows or macOS"
+msgstr ""
+
+#: ../../source/install.rst:7
+msgid "You can download OnionShare for Windows and macOS from the `OnionShare website <https://onionshare.org/>`_."
+msgstr ""
+
+#: ../../source/install.rst:9
+msgid "For added security, see :ref:`verifying_sigs`."
+msgstr ""
+
+#: ../../source/install.rst:14
+msgid "Install in Linux with Flatpak"
+msgstr ""
+
+#: ../../source/install.rst:16
+msgid "There are various ways to install OnionShare for Linux, but the recommended way is to use the Flatpak package. Flatpak ensures that you'll always use the most latest dependencies and run OnionShare inside of a sandbox."
+msgstr ""
+
+#: ../../source/install.rst:18
+msgid "Make sure you have ``flatpak`` installed and the Flathub repository added by following `these instructions <https://flatpak.org/setup/>`_ for your Linux distribution."
+msgstr ""
+
+#: ../../source/install.rst:20
+msgid "Then install OnionShare from Flathub by following `the instructions here <https://flathub.org/apps/details/org.onionshare.OnionShare>`_."
+msgstr ""
+
+#: ../../source/install.rst:25
+msgid "Verifying PGP signatures"
+msgstr ""
+
+#: ../../source/install.rst:27
+msgid "You can verify that the Windows, macOS, or source package you download is legitimate and hasn't been tampered with by verifying its PGP signature. For Windows and macOS, this step is optional and provides defense in depth: the installers also include their operating system-specific signatures, and you can just rely on those alone if you'd like."
+msgstr ""
+
+#: ../../source/install.rst:30
+msgid "Signing key"
+msgstr ""
+
+#: ../../source/install.rst:32
+msgid "Windows, macOS, and source packaged are signed by Micah Lee, the core developer, using his PGP public key with fingerprint ``927F419D7EC82C2F149C1BD1403C2657CD994F73``. You can download Micah's key `from the keys.openpgp.org keyserver <https://keys.openpgp.org/vks/v1/by-fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
+msgstr ""
+
+#: ../../source/install.rst:34
+msgid "In order to verify signatures, you must have GnuPG installed. For macOS you probably want `GPGTools <https://gpgtools.org/>`_, and for Windows you probably want `Gpg4win <https://www.gpg4win.org/>`_."
+msgstr ""
+
+#: ../../source/install.rst:37
+msgid "Signatures"
+msgstr ""
+
+#: ../../source/install.rst:39
+msgid "You can find the signatures (``.asc`` files), as well as Windows, macOS, 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 <https://github.com/micahflee/onionshare/releases>`_."
+msgstr ""
+
+#: ../../source/install.rst:42
+msgid "Verifying"
+msgstr ""
+
+#: ../../source/install.rst:44
+msgid "Once you have imported Micah's public key into your GnuPG keychain, downloaded the binary, and downloaded the ``.asc`` signature, you can verify the binary for macOS in terminal like this::"
+msgstr ""
+
+#: ../../source/install.rst:48
+msgid "Or for Windows in a command prompt like this::"
+msgstr ""
+
+#: ../../source/install.rst:52
+msgid "An expected output might look like this::"
+msgstr ""
+
+#: ../../source/install.rst:64
+msgid "If you don't see 'Good signature from', then there might be a problem with the integrity of the file (malicious or otherwise), and you perhaps should not install the package. (The WARNING shown above, is not a problem with the package: it only means you have not defined any level of 'trust' regarding Micah's PGP key itself.)"
+msgstr ""
+
+#: ../../source/install.rst:66
+msgid "If you want to learn more about verifying PGP signatures, guides for `Qubes OS <https://www.qubes-os.org/security/verifying-signatures/>`_ and the `Tor Project <https://2019.www.torproject.org/docs/verifying-signatures.html.en>`_ may be helpful."
+msgstr ""
diff --git a/docs/gettext/security.pot b/docs/gettext/security.pot
new file mode 100644
index 00000000..2bf3fb0a
--- /dev/null
+++ b/docs/gettext/security.pot
@@ -0,0 +1,61 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/security.rst:2
+msgid "Security design"
+msgstr ""
+
+#: ../../source/security.rst:4
+msgid "First read :ref:`how_it_works` to understand the basics of how OnionShare works."
+msgstr ""
+
+#: ../../source/security.rst:6
+msgid "Like all software, OnionShare may contain bugs or vulnerabilities."
+msgstr ""
+
+#: ../../source/security.rst:9
+msgid "What OnionShare protects against"
+msgstr ""
+
+#: ../../source/security.rst:11
+msgid "**Third parties don't have access to anything that happens in OnionShare.** When you use OnionShare, you host services directly on your computer. For example, when you share files with OnionShare, you don't upload these files to any server, and when you start an OnionShare chat room, your computer is the chat room server itself. Traditional ways of sharing files or setting up websites and chat rooms require trusting a service with access to your data."
+msgstr ""
+
+#: ../../source/security.rst:13
+msgid "**Network eavesdroppers can't spy on anything that happens in OnionShare in transit.** Because connections between Tor onion services and Tor Browser are end-to-end encrypted, no network attackers can eavesdrop on what happens in an OnionShare service. If the eavesdropper is positioned on the OnionShare user's end, the Tor Browser user's end, or is a malicious Tor node, they will only see Tor traffic. If the eavesdropper is a malicious rendezvous node used to connect Tor Browser with OnionShare's onion service, the traffic will be encrypted using the onion service key."
+msgstr ""
+
+#: ../../source/security.rst:15
+msgid "**Anonymity of OnionShare users are protected by Tor.** OnionShare and Tor Browser protect the anonymity of the users. As long as the OnionShare user anonymously communicates the OnionShare address with the Tor Browser users, the Tor Browser users and eavesdroppers can't learn the identity of the OnionShare user."
+msgstr ""
+
+#: ../../source/security.rst:17
+msgid "**If an attacker learns about the onion service, they still can't access anything.** There have been attacks against the Tor network that can enumerate onion services. Even if someone discovers the .onion address of an OnionShare onion service, they can't access it without also knowing the service's random password (unless, of course, the OnionShare users chooses to disable the password and make it public). The password is generated by choosing two random words from a list of 6800 words, meaning there are 6800^2, or about 46 million possible password. But they can only make 20 wrong guesses before OnionShare stops the server, preventing brute force attacks against the password."
+msgstr ""
+
+#: ../../source/security.rst:20
+msgid "What OnionShare doesn't protect against"
+msgstr ""
+
+#: ../../source/security.rst:22
+msgid "**Communicating the OnionShare address might not be secure.** The OnionShare user is responsible for securely communicating the OnionShare address with people. If they send it insecurely (such as through an email message, and their email is being monitored by an attacker), the eavesdropper will learn that they're using OnionShare. If the attacker loads the address in Tor Browser before the legitimate recipient gets to it, they can access the service. If this risk fits the user's threat model, they must find a more secure way to communicate the address, such as in an encrypted email, chat, or voice call. This isn't necessary in cases where OnionShare is being used for something that isn't secret."
+msgstr ""
+
+#: ../../source/security.rst:24
+msgid "**Communicating the OnionShare address might not be anonymous.** While OnionShare and Tor Browser allow for anonymity, if the user wishes to remain anonymous they must take extra steps to ensure this while communicating the OnionShare address. For example, they might need to use Tor to create a new anonymous email or chat account, and only access it over Tor, to use for sharing the address. This isn't necessary in cases where there's no need to protect anonymity, such as co-workers who know each other sharing work documents."
+msgstr ""
diff --git a/docs/gettext/sphinx.pot b/docs/gettext/sphinx.pot
new file mode 100644
index 00000000..05bdc208
--- /dev/null
+++ b/docs/gettext/sphinx.pot
@@ -0,0 +1,25 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/_templates/versions.html:10
+msgid "Versions"
+msgstr ""
+
+#: ../../source/_templates/versions.html:18
+msgid "Languages"
+msgstr ""
diff --git a/docs/gettext/tor.pot b/docs/gettext/tor.pot
new file mode 100644
index 00000000..8522349a
--- /dev/null
+++ b/docs/gettext/tor.pot
@@ -0,0 +1,137 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../source/tor.rst:2
+msgid "Connecting to Tor"
+msgstr ""
+
+#: ../../source/tor.rst:4
+msgid "There are several options for how OnionShare should connect to Tor. You can change them in Settings, which you can get to by clicking the gear icon in the bottom-right of the window."
+msgstr ""
+
+#: ../../source/tor.rst:9
+msgid "Use Tor that is bundled with OnionShare"
+msgstr ""
+
+#: ../../source/tor.rst:11
+msgid "This is the default way that OnionShare connects to Tor, and it's also the simplest and most reliable way. For this reason, it's recommended for most users."
+msgstr ""
+
+#: ../../source/tor.rst:13
+msgid "When you open OnionShare, it will launch a Tor process in the background that's configured specifically for OnionShare to use. This Tor process won't interfere with other Tor processes on your computer, so you're free to run Tor Browser or use a system Tor in the background."
+msgstr ""
+
+#: ../../source/tor.rst:16
+msgid "Attempt automatic configuration with Tor Browser"
+msgstr ""
+
+#: ../../source/tor.rst:18
+msgid "You can configure OnionShare to connect to the Tor that comes with Tor Browser. First, `download Tor Browser <https://www.torproject.org>`_ here if you don't already have it. With this setting selected, you need to keep Tor Browser open in the background while you're using OnionShare."
+msgstr ""
+
+#: ../../source/tor.rst:21
+msgid "Using a system Tor in Windows"
+msgstr ""
+
+#: ../../source/tor.rst:23
+msgid "This is fairly advanced. You'll need to know how edit plaintext files and do stuff as an administrator."
+msgstr ""
+
+#: ../../source/tor.rst:25
+msgid "Download the Tor Windows Expert Bundle, which you can get `from here <https://www.torproject.org/download/tor/>`_. Extract the zip file and copy the extracted folder to ``C:\\Program Files (x86)\\``, and rename the folder to ``tor-win32``, so that inside that folder is the ``Data`` and ``Tor`` folders."
+msgstr ""
+
+#: ../../source/tor.rst:27
+msgid "Make up a control port password. I'm going to use ``comprised stumble rummage work avenging construct volatile`` as my password. Now open a command prompt as an administrator, and use ``tor.exe --hash-password`` to generate a hash of your password. For example::"
+msgstr ""
+
+#: ../../source/tor.rst:32
+msgid "The hashed password output is displayed after some warnings (which you can ignore). In my case, it was ``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``."
+msgstr ""
+
+#: ../../source/tor.rst:34
+msgid "Now create a new text file at ``C:\\Program Files (x86)\\tor-win32\\torrc`` and put this in it, replacing the ``HashedControlPassword`` with the one you just generated::"
+msgstr ""
+
+#: ../../source/tor.rst:39
+msgid "In your administrator command prompt, install tor as a service using the appropriate ``torrc`` file you just created (see `here <https://2019.www.torproject.org/docs/faq.html.en#NTService>`_ for more information on doing this). Like this::"
+msgstr ""
+
+#: ../../source/tor.rst:43
+msgid "You're now running a system Tor in Windows!"
+msgstr ""
+
+#: ../../source/tor.rst:45
+msgid "Open OnionShare. Click the Settings icon. Under \"How should OnionShare connect to Tor?\" choose \"Connect using control port\", and set the control port host to ``127.0.0.1`` and the port to ``9051``. Under \"Tor authentication options\" choose \"Password\" and set the password to your password, in my case ``comprised stumble rummage work avenging construct volatile``. Click the \"Test Settings\" button. If all goes well, you should see successfully connected to tor."
+msgstr ""
+
+#: ../../source/tor.rst:48
+msgid "Using a system Tor in Mac OS X"
+msgstr ""
+
+#: ../../source/tor.rst:50
+msgid "First, install `Homebrew <http://brew.sh/>`_ if you don't already have it. Then, install Tor::"
+msgstr ""
+
+#: ../../source/tor.rst:54
+msgid "Now configure Tor to allow connections from OnionShare::"
+msgstr ""
+
+#: ../../source/tor.rst:61
+msgid "And start the system Tor service::"
+msgstr ""
+
+#: ../../source/tor.rst:65
+msgid "Open OnionShare. Click the Settings icon. Under \"How should OnionShare connect to Tor?\" choose \"Connect using socket file\", and set the socket file to be ``/usr/local/var/run/tor/control.socket``. Under \"Tor authentication options\" choose \"No authentication, or cookie authentication\". Click the \"Test Settings\" button. If all goes well, you should see successfully connected to tor."
+msgstr ""
+
+#: ../../source/tor.rst:68
+msgid "Using a system Tor in Linux"
+msgstr ""
+
+#: ../../source/tor.rst:70
+msgid "First, install the tor package. If you're using Debian, Ubuntu, or a similar Linux distro, I recommend you use Tor Project's `official repository <https://2019.www.torproject.org/docs/debian.html.en>`_. For example, in Ubuntu 20.04::"
+msgstr ""
+
+#: ../../source/tor.rst:78
+msgid "Next, add your user to the group that runs the Tor process (in the case of Debian and Ubuntu, ``debian-tor``) and configure OnionShare to connect to your system Tor's control socket file."
+msgstr ""
+
+#: ../../source/tor.rst:80
+msgid "Add your user to the ``debian-tor`` group by running this command (replace ``username`` with your actual username)::"
+msgstr ""
+
+#: ../../source/tor.rst:84
+msgid "Reboot your computer. After it boots up again, open OnionShare. Click the Settings icon. Under \"How should OnionShare connect to Tor?\" choose \"Connect using socket file\", and set the socket file to be ``/var/run/tor/control``. Under \"Tor authentication options\" choose \"No authentication, or cookie authentication\". Click the \"Test Settings\" button. If all goes well, you should see successfully connect to Tor."
+msgstr ""
+
+#: ../../source/tor.rst:87
+msgid "Using Tor bridges"
+msgstr ""
+
+#: ../../source/tor.rst:89
+msgid "If your access to the internet is censored, you can configure OnionShare to connect to the Tor network using `Tor bridges <https://2019.www.torproject.org/docs/bridges.html.en>`_. If OnionShare successfully connects to Tor, you don't need to use a bridge."
+msgstr ""
+
+#: ../../source/tor.rst:91
+msgid "To configure bridges, open OnionShare settings."
+msgstr ""
+
+#: ../../source/tor.rst:93
+msgid "You can use the built-in obfs4 pluggable transports, the built-in meek_lite (Azure) pluggable transports, or custom bridges, which you can obtain from Tor's `BridgeDB <https://bridges.torproject.org/>`_. If you need to use a bridge, you should try the built-in obfs4 ones first."
+msgstr ""
diff --git a/docs/make.bat b/docs/make.bat
new file mode 100644
index 00000000..6247f7e2
--- /dev/null
+++ b/docs/make.bat
@@ -0,0 +1,35 @@
+@ECHO OFF
+
+pushd %~dp0
+
+REM Command file for Sphinx documentation
+
+if "%SPHINXBUILD%" == "" (
+ set SPHINXBUILD=sphinx-build
+)
+set SOURCEDIR=source
+set BUILDDIR=build
+
+if "%1" == "" goto help
+
+%SPHINXBUILD% >NUL 2>NUL
+if errorlevel 9009 (
+ echo.
+ echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
+ echo.installed, then set the SPHINXBUILD environment variable to point
+ echo.to the full path of the 'sphinx-build' executable. Alternatively you
+ echo.may add the Sphinx directory to PATH.
+ echo.
+ echo.If you don't have Sphinx installed, grab it from
+ echo.http://sphinx-doc.org/
+ exit /b 1
+)
+
+%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
+goto end
+
+:help
+%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
+
+:end
+popd
diff --git a/docs/requirements.txt b/docs/requirements.txt
new file mode 100644
index 00000000..6c386dab
--- /dev/null
+++ b/docs/requirements.txt
@@ -0,0 +1,3 @@
+sphinx
+sphinx-rtd-theme
+sphinx-intl
diff --git a/docs/source/_static/apple-logo.png b/docs/source/_static/apple-logo.png
new file mode 100644
index 00000000..c2cadc12
--- /dev/null
+++ b/docs/source/_static/apple-logo.png
Binary files differ
diff --git a/docs/source/_static/custom.css b/docs/source/_static/custom.css
new file mode 100644
index 00000000..18f242b3
--- /dev/null
+++ b/docs/source/_static/custom.css
@@ -0,0 +1,21 @@
+.wy-nav-top {
+ background-color: #4e0d4e;
+}
+
+.wy-side-nav-search {
+ background-color: #5f0f5f;
+}
+
+.wy-nav-content a:link,
+.wy-nav-content a:visited {
+ color: #2980b9;
+}
+
+.wy-nav-content a:active,
+.wy-nav-content a:hover {
+ color: #3091d1;
+}
+
+.wy-nav-content div[role=navigation] {
+ display: none;
+} \ No newline at end of file
diff --git a/docs/source/_static/favicon.ico b/docs/source/_static/favicon.ico
new file mode 100644
index 00000000..63e65d8b
--- /dev/null
+++ b/docs/source/_static/favicon.ico
Binary files differ
diff --git a/docs/source/_static/linux-logo.png b/docs/source/_static/linux-logo.png
new file mode 100644
index 00000000..0cfca2e8
--- /dev/null
+++ b/docs/source/_static/linux-logo.png
Binary files differ
diff --git a/docs/source/_static/logo.png b/docs/source/_static/logo.png
new file mode 100644
index 00000000..1479eed0
--- /dev/null
+++ b/docs/source/_static/logo.png
Binary files differ
diff --git a/docs/source/_static/screenshots/advanced-save-tabs.png b/docs/source/_static/screenshots/advanced-save-tabs.png
new file mode 100644
index 00000000..18788167
--- /dev/null
+++ b/docs/source/_static/screenshots/advanced-save-tabs.png
Binary files differ
diff --git a/docs/source/_static/screenshots/advanced-schedule-start-timer.png b/docs/source/_static/screenshots/advanced-schedule-start-timer.png
new file mode 100644
index 00000000..e633fb37
--- /dev/null
+++ b/docs/source/_static/screenshots/advanced-schedule-start-timer.png
Binary files differ
diff --git a/docs/source/_static/screenshots/advanced-schedule-stop-timer.png b/docs/source/_static/screenshots/advanced-schedule-stop-timer.png
new file mode 100644
index 00000000..4938f00b
--- /dev/null
+++ b/docs/source/_static/screenshots/advanced-schedule-stop-timer.png
Binary files differ
diff --git a/docs/source/_static/screenshots/chat-sharing.png b/docs/source/_static/screenshots/chat-sharing.png
new file mode 100644
index 00000000..b4e8406f
--- /dev/null
+++ b/docs/source/_static/screenshots/chat-sharing.png
Binary files differ
diff --git a/docs/source/_static/screenshots/chat-torbrowser.png b/docs/source/_static/screenshots/chat-torbrowser.png
new file mode 100644
index 00000000..79e0fd5f
--- /dev/null
+++ b/docs/source/_static/screenshots/chat-torbrowser.png
Binary files differ
diff --git a/docs/source/_static/screenshots/chat.png b/docs/source/_static/screenshots/chat.png
new file mode 100644
index 00000000..aad601a1
--- /dev/null
+++ b/docs/source/_static/screenshots/chat.png
Binary files differ
diff --git a/docs/source/_static/screenshots/receive-sharing.png b/docs/source/_static/screenshots/receive-sharing.png
new file mode 100644
index 00000000..5ab44ecd
--- /dev/null
+++ b/docs/source/_static/screenshots/receive-sharing.png
Binary files differ
diff --git a/docs/source/_static/screenshots/receive-torbrowser.png b/docs/source/_static/screenshots/receive-torbrowser.png
new file mode 100644
index 00000000..0ad381d5
--- /dev/null
+++ b/docs/source/_static/screenshots/receive-torbrowser.png
Binary files differ
diff --git a/docs/source/_static/screenshots/receive.png b/docs/source/_static/screenshots/receive.png
new file mode 100644
index 00000000..799c7879
--- /dev/null
+++ b/docs/source/_static/screenshots/receive.png
Binary files differ
diff --git a/docs/source/_static/screenshots/settings.png b/docs/source/_static/screenshots/settings.png
new file mode 100644
index 00000000..6b705496
--- /dev/null
+++ b/docs/source/_static/screenshots/settings.png
Binary files differ
diff --git a/docs/source/_static/screenshots/share-files.png b/docs/source/_static/screenshots/share-files.png
new file mode 100644
index 00000000..d0d5f280
--- /dev/null
+++ b/docs/source/_static/screenshots/share-files.png
Binary files differ
diff --git a/docs/source/_static/screenshots/share-sharing.png b/docs/source/_static/screenshots/share-sharing.png
new file mode 100644
index 00000000..6f3f41ae
--- /dev/null
+++ b/docs/source/_static/screenshots/share-sharing.png
Binary files differ
diff --git a/docs/source/_static/screenshots/share-torbrowser.png b/docs/source/_static/screenshots/share-torbrowser.png
new file mode 100644
index 00000000..ac0f4983
--- /dev/null
+++ b/docs/source/_static/screenshots/share-torbrowser.png
Binary files differ
diff --git a/docs/source/_static/screenshots/share.png b/docs/source/_static/screenshots/share.png
new file mode 100644
index 00000000..f03c68ba
--- /dev/null
+++ b/docs/source/_static/screenshots/share.png
Binary files differ
diff --git a/docs/source/_static/screenshots/tabs.png b/docs/source/_static/screenshots/tabs.png
new file mode 100644
index 00000000..33634960
--- /dev/null
+++ b/docs/source/_static/screenshots/tabs.png
Binary files differ
diff --git a/docs/source/_static/screenshots/website-files.png b/docs/source/_static/screenshots/website-files.png
new file mode 100644
index 00000000..4bd293b2
--- /dev/null
+++ b/docs/source/_static/screenshots/website-files.png
Binary files differ
diff --git a/docs/source/_static/screenshots/website.png b/docs/source/_static/screenshots/website.png
new file mode 100644
index 00000000..d745cf6a
--- /dev/null
+++ b/docs/source/_static/screenshots/website.png
Binary files differ
diff --git a/docs/source/_static/windows-logo.png b/docs/source/_static/windows-logo.png
new file mode 100644
index 00000000..c9389bac
--- /dev/null
+++ b/docs/source/_static/windows-logo.png
Binary files differ
diff --git a/docs/source/_templates/versions.html b/docs/source/_templates/versions.html
new file mode 100644
index 00000000..761e2add
--- /dev/null
+++ b/docs/source/_templates/versions.html
@@ -0,0 +1,25 @@
+<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="versions">
+ <span class="rst-current-version" data-toggle="rst-current-version">
+ <span class="fa fa-book">OnionShare</span>
+ v: {{ current_version }}
+ <span class="fa fa-caret-down"></span>
+ </span>
+ <div class="rst-other-versions">
+ {%- if versions %}
+ <dl>
+ <dt>{{ _('Versions') }}</dt>
+ {%- for name in versions %}
+ <dd><a href="../../{{ name }}">{{ name }}</a></dd>
+ {%- endfor %}
+ </dl>
+ {%- endif %}
+ {%- if langs %}
+ <dl>
+ <dt>{{ _('Languages') }}</dt>
+ {%- for name, code in langs %}
+ <dd><a href="../{{ code }}/">{{ name }}</a></dd>
+ {%- endfor %}
+ </dl>
+ {%- endif %}
+ </div>
+</div> \ No newline at end of file
diff --git a/docs/source/advanced.rst b/docs/source/advanced.rst
new file mode 100644
index 00000000..961cdd9e
--- /dev/null
+++ b/docs/source/advanced.rst
@@ -0,0 +1,148 @@
+Advanced usage
+==============
+
+.. _save_tabs:
+
+Save tabs
+---------
+
+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. But sometimes you might want an OnionShare service to be persistent. For example, this would be useful if you want to host a website that can keep the same URL even if you reboot your computer.
+
+To make any tab persistent, check the "Save this tab, and automatically open it when I open OnionShare" box before starting the server. When a tab is saved a purple pin icon appears to the left of its server status.
+
+.. image:: _static/screenshots/advanced-save-tabs.png
+
+When you quit OnionShare and then open it again, your saved tabs will start out open. You'll have to manually start each service, but when you do they will start with the same OnionShare address, and with the same password.
+
+If you save a tab, a copy of that tab's onion service secret key will be stored on your computer with your OnionShare settings.
+
+.. _disable_passwords:
+
+Disable passwords
+-----------------
+
+By default, all OnionShare services are protected with the username `onionshare` and a randomly-generated password. If someone makes 20 wrong guesses of the password, your onion service is automatically stopped to prevent a brute force attack against the OnionShare service.
+
+But sometimes you might want your OnionShare service to be accessible to the public. For example, if you want to set up an OnionShare receive service so the public can securely and anonymously send you files. In this case, it's better to disable the password altogether. If you don't do this, someone can force your server to stop just by making 20 wrong guesses of your password, even if they know the correct password.
+
+To disable the password for any tab, just check the "Don't use a password" box before starting the server. Then the server will be public and won't have a password.
+
+Scheduled times
+---------------
+
+OnionShare supports scheduling exactly when a service should start and stop. Before starting 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 desired dates and times.
+
+If you scheduled a service to start in the future, when you click the start button you will see a timer counting down until it will start. If you scheduled it to stop in the future, after it's started you will see a timer counting down to when it will stop automatically.
+
+**Scheduling an OnionShare service to automatically start can be used as a dead man's switch**, where your service will be made public at a given time in the future if anything happens to you. If nothing happens to you, you can cancel the service before it's scheduled to start.
+
+.. image:: _static/screenshots/advanced-schedule-start-timer.png
+
+**Scheduling an OnionShare service to automatically stop can be useful to limit exposure**, like if you want to share secret documents while making sure they're not available on the internet for more than a few days.
+
+.. image:: _static/screenshots/advanced-schedule-stop-timer.png
+
+Command line interface
+----------------------
+
+In addition to its graphical interface, OnionShare has a command line interface.
+
+Linux
+^^^^^
+
+If you installed OnionShare using the Flatpak package, unfortunately the command line interface isn't supported.
+
+If you installed OnionShare using an operating system package, you can just run ``onionshare`` from the terminal.
+
+macOS
+^^^^^
+
+Make a symbolic link to the OnionShare command line binary line this::
+
+ ln -s /Applications/OnionShare.app/Contents/MacOS/onionshare /usr/local/bin
+
+Now you can run ``onionshare`` from the terminal.
+
+Windows
+^^^^^^^
+
+The command line interface isn't supported in Windows.
+
+If you really want to use it anyway, you can set up a Windows development environment (see :ref:`starting_development`) and then run this in a command prompt::
+
+ poetry run python dev_scripts\onionshare
+
+Usage
+^^^^^
+
+You can see command line documentation by running ``onionshare --help``::
+
+ $ onionshare --help
+ OnionShare 2.3 | https://onionshare.org/
+
+ @@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ___ _
+ @@@@@@ @@@@@@@@@@@@@ / _ \ (_)
+ @@@@ @ @@@@@@@@@@@ | | | |_ __ _ ___ _ __
+ @@@@@@@@ @@@@@@@@@@ | | | | '_ \| |/ _ \| '_ \
+ @@@@@@@@@@@@ @@@@@@@@@@ \ \_/ / | | | | (_) | | | |
+ @@@@@@@@@@@@@@@@ @@@@@@@@@ \___/|_| |_|_|\___/|_| |_|
+ @@@@@@@@@ @@@@@@@@@@@@@@@@ _____ _
+ @@@@@@@@@@ @@@@@@@@@@@@ / ___| |
+ @@@@@@@@@@ @@@@@@@@ \ `--.| |__ __ _ _ __ ___
+ @@@@@@@@@@@ @ @@@@ `--. \ '_ \ / _` | '__/ _ \
+ @@@@@@@@@@@@@ @@@@@@ /\__/ / | | | (_| | | | __/
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \____/|_| |_|\__,_|_| \___|
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@
+
+ usage: onionshare [-h] [--receive] [--website] [--chat] [--local-only] [--connect-timeout SECONDS] [--config FILENAME] [--persistent FILENAME] [--public]
+ [--auto-start-timer SECONDS] [--auto-stop-timer SECONDS] [--legacy] [--client-auth] [--autostop-sharing] [--data-dir data_dir] [--disable_csp] [-v]
+ [filename [filename ...]]
+
+ positional arguments:
+ filename List of files or folders to share
+
+ optional arguments:
+ -h, --help show this help message and exit
+ --receive Receive files
+ --website Publish website
+ --chat Start chat server
+ --local-only Don't use Tor (only for development)
+ --connect-timeout SECONDS
+ Give up connecting to Tor after a given amount of seconds (default: 120)
+ --config FILENAME Filename of custom global settings
+ --persistent FILENAME Filename of persistent session
+ --public Don't use a password
+ --auto-start-timer SECONDS
+ Start onion service at scheduled time (N seconds from now)
+ --auto-stop-timer SECONDS
+ Stop onion service at schedule time (N seconds from now)
+ --legacy Use legacy address (v2 onion service, not recommended)
+ --client-auth Use client authorization (requires --legacy)
+ --autostop-sharing Share files: Stop sharing after files have been sent
+ --data-dir data_dir Receive files: Save files received to this directory
+ --disable_csp Publish website: Disable Content Security Policy header (allows your website to use third-party resources)
+ -v, --verbose Log OnionShare errors to stdout, and web errors to disk
+
+Legacy addresses
+----------------
+
+OnionShare uses v3 Tor onion services by default. These are modern onion addresses that have 56 characters, for example::
+
+ uf3wmtpbstcupvrrsetrtct7qcmnqvdcsxqzxthxbx2y7tidatxye7id.onion
+
+But it still has support for v2 onion addresses, the old type of onion addresses that have 16 characters, for example::
+
+ lc7j6u55vhrh45eq.onion
+
+OnionShare calls v2 onion addresses "legacy addresses". v3 onion addresses are more secure, and using legacy addresses is not recommended.
+
+To use legacy addresses, before starting a server click "Show advanced settings" in its tab and check the "Use a legacy address (v2 onion service, not recommended)" box. In legacy mode you can optionally enable Tor client authentication. Once you start a server in legacy mode you cannot remove legacy mode in that tab. Instead you must start a separate service in a separate tab.
+
+Tor Project plans to `completely deprecate v2 onion services <https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, 2021, and legacy onion services will soon be removed from OnionShare as well.
diff --git a/docs/source/conf.py b/docs/source/conf.py
new file mode 100644
index 00000000..4c89946e
--- /dev/null
+++ b/docs/source/conf.py
@@ -0,0 +1,36 @@
+import sphinx_rtd_theme
+import sphinx_intl
+
+
+project = "OnionShare"
+author = copyright = "Micah Lee, et al."
+version = release = "2.3"
+
+extensions = ["sphinx_rtd_theme"]
+templates_path = ["_templates"]
+exclude_patterns = []
+
+languages = [
+ ("العربية", "ar"),
+ ("Català", "ca"),
+ ("Dansk", "da"),
+ ("Nederlands", "nl"),
+ ("English", "en"),
+]
+
+versions = ["2.3"]
+
+html_theme = "sphinx_rtd_theme"
+html_logo = "_static/logo.png"
+html_favicon = "_static/favicon.ico"
+html_theme_options = {}
+html_context = {"langs": languages, "versions": versions, "current_version": release}
+html_static_path = ["_static"]
+html_css_files = ["custom.css"]
+html_show_sourcelink = False
+html_show_sphinx = False
+
+# sphinx-intl
+language = "en"
+locale_dirs = ["locale/"]
+gettext_compact = False
diff --git a/docs/source/develop.rst b/docs/source/develop.rst
new file mode 100644
index 00000000..6783d781
--- /dev/null
+++ b/docs/source/develop.rst
@@ -0,0 +1,200 @@
+Developing OnionShare
+=====================
+
+.. _collaborating:
+
+Collaborating
+-------------
+
+OnionShare has an open Keybase team that we use to discuss the project, including asking questions, sharing ideas and designs, and making plans for future development. (It's also an easy way to send end-to-end encrypted direct messages to others in the OnionShare community, like OnionShare addresses.) To use Keybase, you need to download the `Keybase app <https://keybase.io/download>`_, make an account, and `join this team <https://keybase.io/team/onionshare>`_. Within the app, go to Teams, click "Join a Team", and type "onionshare".
+
+OnionShare also has a `mailing list <https://lists.riseup.net/www/subscribe/onionshare-dev>`_ for developers and and designers to discuss the project.
+
+Contributing code
+-----------------
+
+OnionShare source code is in this git repository: https://github.com/micahflee/onionshare
+
+If you'd like to contribute code to OnionShare, it helps to join the Keybase team and ask questions about what you're thinking of working on. You should also review all of the `open issues <https://github.com/micahflee/onionshare/issues>`_ on GitHub to see if there are any that you'd like to develop.
+
+When you're ready to contribute code, open a pull request in the GitHub repository and one of the project maintainers will review it and possible ask questions, request changes, reject it, or merge it into the project.
+
+.. _starting_development:
+
+Starting development
+--------------------
+
+OnionShare is developed in Python. To get started, you should close the git repository at https://github.com/micahflee/onionshare/ and then consult the ``BUILD.md`` file.
+
+That file contains the technical instructions and commands necessary:
+
+* Install dependencies for your platform
+* Run OnionShare from the source tree, without building a package
+* Building packages
+* Making a release of OnionShare
+
+Debugging tips
+--------------
+
+Verbose mode
+^^^^^^^^^^^^
+
+When developing, it's convenient to run OnionShare from a terminal and add the ``--verbose`` (or ``-v``) flag to the command. This will print a lot of helpful messages to the terminal such as when certain objects are initialized, when events occur (like buttons clicked, settings saved or reloaded), and other debug information. For example::
+
+ $ poetry run ./dev_scripts/onionshare -v test.txt
+ OnionShare 2.3 | https://onionshare.org/
+
+ @@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ___ _
+ @@@@@@ @@@@@@@@@@@@@ / _ \ (_)
+ @@@@ @ @@@@@@@@@@@ | | | |_ __ _ ___ _ __
+ @@@@@@@@ @@@@@@@@@@ | | | | '_ \| |/ _ \| '_ \
+ @@@@@@@@@@@@ @@@@@@@@@@ \ \_/ / | | | | (_) | | | |
+ @@@@@@@@@@@@@@@@ @@@@@@@@@ \___/|_| |_|_|\___/|_| |_|
+ @@@@@@@@@ @@@@@@@@@@@@@@@@ _____ _
+ @@@@@@@@@@ @@@@@@@@@@@@ / ___| |
+ @@@@@@@@@@ @@@@@@@@ \ `--.| |__ __ _ _ __ ___
+ @@@@@@@@@@@ @ @@@@ `--. \ '_ \ / _` | '__/ _ \
+ @@@@@@@@@@@@@ @@@@@@ /\__/ / | | | (_| | | | __/
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \____/|_| |_|\__,_|_| \___|
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@
+
+ [Aug 23 2020 22:37:06] Settings.__init__
+ [Aug 23 2020 22:37:06] Settings.load
+ [Aug 23 2020 22:37:06] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
+ [Aug 23 2020 22:37:06] ModeSettings.load: creating /home/user/.config/onionshare/persistent/opacity-joining-sappiness.json
+ [Aug 23 2020 22:37:06] ModeSettings.set: updating opacity-joining-sappiness: general.public = False
+ [Aug 23 2020 22:37:06] ModeSettings.set: updating opacity-joining-sappiness: general.autostart_timer = 0
+ [Aug 23 2020 22:37:06] ModeSettings.set: updating opacity-joining-sappiness: general.autostop_timer = 0
+ [Aug 23 2020 22:37:06] ModeSettings.set: updating opacity-joining-sappiness: general.legacy = False
+ [Aug 23 2020 22:37:06] ModeSettings.set: updating opacity-joining-sappiness: general.client_auth = False
+ [Aug 23 2020 22:37:06] ModeSettings.set: updating opacity-joining-sappiness: share.autostop_sharing = True
+ [Aug 23 2020 22:37:06] Web.__init__: is_gui=False, mode=share
+ [Aug 23 2020 22:37:06] Web.generate_static_url_path: new static_url_path is /static_4kanwd4mt5mcqmpsbptviv3tbq
+ [Aug 23 2020 22:37:06] ShareModeWeb.init
+ [Aug 23 2020 22:37:06] Onion.__init__
+ [Aug 23 2020 22:37:06] Onion.connect
+ [Aug 23 2020 22:37:06] Settings.__init__
+ [Aug 23 2020 22:37:06] Settings.load
+ [Aug 23 2020 22:37:06] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
+ [Aug 23 2020 22:37:06] Onion.connect: tor_data_directory_name=/home/user/.config/onionshare/tmp/tmpig895mfl
+ Connecting to the Tor network: 100% - Done
+ [Aug 23 2020 22:37:14] Onion.connect: Connected to tor 0.4.3.6
+ [Aug 23 2020 22:37:14] Settings.load
+ [Aug 23 2020 22:37:14] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
+ [Aug 23 2020 22:37:14] Web.generate_password: saved_password=None
+ [Aug 23 2020 22:37:14] Web.generate_password: built random password: "barrel-unseated"
+ [Aug 23 2020 22:37:14] OnionShare.__init__
+ [Aug 23 2020 22:37:14] OnionShare.start_onion_service
+ [Aug 23 2020 22:37:14] Onion.start_onion_service: port=17605
+ [Aug 23 2020 22:37:14] Onion.start_onion_service: key_type=NEW, key_content=ED25519-V3
+ [Aug 23 2020 22:37:16] ModeSettings.set: updating opacity-joining-sappiness: general.service_id = ttxidvsv4pqzrarvtlojk435vver6wgifrw4pucyzgj2hb3qu6pf6fqd
+ [Aug 23 2020 22:37:16] ModeSettings.set: updating opacity-joining-sappiness: onion.private_key = IGzO65Mi9grG7HlLD9ky82O/vWvu3WVByTqCLpZgV0iV2XaSDAqWazNHKkkP18/7jyZZyXwbLo4qOCiYLudlRA==
+ Compressing files.
+ [Aug 23 2020 22:37:16] ShareModeWeb.init
+ [Aug 23 2020 22:37:16] ShareModeWeb.set_file_info_custom
+ [Aug 23 2020 22:37:16] ShareModeWeb.build_zipfile_list
+ [Aug 23 2020 22:37:16] Web.start: port=17605
+ * Running on http://127.0.0.1:17605/ (Press CTRL+C to quit)
+
+ Give this address to the recipient:
+ http://onionshare:barrel-unseated@ttxidvsv4pqzrarvtlojk435vver6wgifrw4pucyzgj2hb3qu6pf6fqd.onion
+
+ Press Ctrl+C to stop the server
+
+You can add your own debug messages by running the ``Common.log`` method from ``onionshare/common.py``. For example::
+
+ common.log('OnionShareGui', 'start_server', 'I ran here')
+
+This can be useful when learning the chain of events that occur when using the application or the value of certain variables before and after they are manipulated.
+
+Local only
+^^^^^^^^^^
+
+Tor is slow, and it's often convenient to skip starting onion services altogether during development. You can do this with the ``--local-only`` flag. For example::
+
+ $ poetry run ./dev_scripts/onionshare --local-only --receive
+ OnionShare 2.3 | https://onionshare.org/
+
+ @@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ___ _
+ @@@@@@ @@@@@@@@@@@@@ / _ \ (_)
+ @@@@ @ @@@@@@@@@@@ | | | |_ __ _ ___ _ __
+ @@@@@@@@ @@@@@@@@@@ | | | | '_ \| |/ _ \| '_ \
+ @@@@@@@@@@@@ @@@@@@@@@@ \ \_/ / | | | | (_) | | | |
+ @@@@@@@@@@@@@@@@ @@@@@@@@@ \___/|_| |_|_|\___/|_| |_|
+ @@@@@@@@@ @@@@@@@@@@@@@@@@ _____ _
+ @@@@@@@@@@ @@@@@@@@@@@@ / ___| |
+ @@@@@@@@@@ @@@@@@@@ \ `--.| |__ __ _ _ __ ___
+ @@@@@@@@@@@ @ @@@@ `--. \ '_ \ / _` | '__/ _ \
+ @@@@@@@@@@@@@ @@@@@@ /\__/ / | | | (_| | | | __/
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \____/|_| |_|\__,_|_| \___|
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@@@@@@@@@@@
+ @@@@@@@@@
+
+ * Running on http://127.0.0.1:17614/ (Press CTRL+C to quit)
+
+ Files sent to you appear in this folder: /home/user/OnionShare
+
+ Warning: Receive mode lets people upload files to your computer. Some files can potentially take control of your computer if you open them. Only open things from people you trust, or if you know what you are doing.
+
+ Give this address to the sender:
+ http://onionshare:eject-snack@127.0.0.1:17614
+
+ Press Ctrl+C to stop the server
+
+In this case, you load the URL ``http://onionshare:eject-snack@127.0.0.1:17614`` in a normal web browser like Firefox, instead of using Tor Browser.
+
+Debugging in Windows
+^^^^^^^^^^^^^^^^^^^^
+
+If you want to obtain debug output from the ``onionshare-gui.exe`` in Windows, you will need to edit ``install\pyinstaller.spec`` and change ``console=False`` to ``console=True``.
+
+Then rebuild the EXE with ``install\build_exe.bat`` (you may need to comment out the ``signtool`` commands in the ``build_exe.bat`` and the ``onionshare.nsi`` files, as per the ``BUILD.md`` instructions).
+
+After this, you can run ``onionshare-gui.exe -v`` from a command prompt to see the debug output.
+
+Contributing translations
+-------------------------
+
+Most of the OnionShare is translatable. You can help make it easier to use and more familiar and welcoming for people around the globe. The Localization Lab has some `documentation about translating OnionShare <https://wiki.localizationlab.org/index.php/OnionShare>`_.
+
+OnionShare uses Weblate to keep track of translations. You can view the OnionShare project here: https://hosted.weblate.org/projects/onionshare/
+
+To help translate, make a Hosted Weblate account and start contributing to that project.
+
+Suggestions for original English strings
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Sometimes the original English strings could be improved, making them easier to translate into other languages.
+
+If you have suggestions for a better English string, please open a GitHub issue rather than commenting in Weblate. This ensures the upstream developers will definitely see the suggestion, and can potentially modify the string via the usual code review processes.
+
+Status of translations
+^^^^^^^^^^^^^^^^^^^^^^
+Here is the current translation status. If you want start a translation in a language not to be found here, please write us to the mailing list: onionshare-dev@lists.riseup.net
+
+.. image:: https://hosted.weblate.org/widgets/onionshare/-/translations/multi-auto.svg
+
+Translate the .desktop file
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+You can also translate the ``install/onionshare.desktop`` file.
+
+Duplicate the line that begins with ``Comment=``. Add the language code to the new line so it becomes ``Comment[lang]=`` (lang should be your language). You can see what language codes are used for translation by looking at the ``share/locale/*.json`` filenames::
+
+ Comment=Original string
+ Comment[da]=Danish translation of the original string
+
+Do the same for other untranslated lines. \ No newline at end of file
diff --git a/docs/source/features.rst b/docs/source/features.rst
new file mode 100644
index 00000000..07ff7d21
--- /dev/null
+++ b/docs/source/features.rst
@@ -0,0 +1,144 @@
+.. _how_it_works:
+
+How OnionShare works
+====================
+
+OnionShare works by starting web servers locally on your own computer and making them accessible to other people as `Tor <https://www.torproject.org/>`_ `onion services <https://community.torproject.org/onion-services/>`_.
+
+By default, OnionShare web addresses are protected with a random password. A typical OnionShare address might look something like this::
+
+ http://onionshare:constrict-purity@by4im3ir5nsvygprmjq74xwplrkdgt44qmeapxawwikxacmr3dqzyjad.onion
+
+You're responsible for securely sharing that URL using a communication channel of your choice like in an encrypted chat message, or using something less secure like a Twitter or Facebook message, depending on your `threat model <https://ssd.eff.org/en/module/your-security-plan>`_.
+
+The people who you send the URL to must then copy and paste it into `Tor Browser <https://www.torproject.org/>`_ to access the OnionShare service.
+
+With OnionShare, *your own computer is the web server*. If you run OnionShare on your laptop to send someone files, and then suspend your laptop before the files have been downloaded, the service will not be available until your laptop is unsuspended and connected to the internet again. OnionShare works best when working with people in real-time.
+
+Because your own computer is the web server, *no third party can access anything that happens in OnionShare*, not even the developers of OnionShare. It's completely private. And because OnionShare is based on Tor onion services too, it also protects your anonymity. See the :doc:`security design </security>` for more information.
+
+Share Files
+-----------
+
+You can use OnionShare to securely and anonymously send files and folders to people. Just open a share tab, drag in the files and folders you wish to share, and click "Start sharing".
+
+.. image:: _static/screenshots/share.png
+
+After you add files, you'll see some settings. Make sure you choose the setting you're interested in first before you start sharing.
+
+.. image:: _static/screenshots/share-files.png
+
+By default, as soon as someone finishes downloading your files, OnionShare will automatically stop the server, completely removing the website from the internet. If you want to allow multiple people to download these files, uncheck the "Stop sharing after files have been sent (uncheck to allow downloading individual files)" box.
+
+Also, if you uncheck this box, people will be able to download individual files that you share rather than a single compressed version of all of the files.
+
+When you're ready to share, click the "Start sharing" button. You can always click "Stop sharing", or quit OnionShare, to immediate take the website down. You can also click the up arrow icon in the top-right corner to show the history and progress of people downloading files from you.
+
+.. image:: _static/screenshots/share-sharing.png
+
+Now that you have a website that's sharing files, copy the address and send it to the person you want to receive the files. If the files need to stay secure, you should use an encrypted messaging app.
+
+That person then must load the address in Tor Browser. After logging in with the random password that's included in the web address, they will be able to download the files directly from your computer by clicking the "Download Files" link in the corner.
+
+.. image:: _static/screenshots/share-torbrowser.png
+
+Receive Files
+-------------
+
+You can use OnionShare to let people anonymously upload files directly to your computer, essentially turning it into an anonymous dropbox. Open a receive tab, choose where you want files to get downloaded and other settings, and then click "Start Receive Mode".
+
+.. image:: _static/screenshots/receive.png
+
+This will start the OnionShare service. Anyone that loads this address in Tor Browser will be able to upload files to your computer.
+
+.. image:: _static/screenshots/receive-sharing.png
+
+You can also click the down arrow icon in the top-right corner to show the history and progress of people sending files to you.
+
+Here is what it looks like for someone sending you files.
+
+.. image:: _static/screenshots/receive-torbrowser.png
+
+When someone uploads files to your receive service, by default they get saved to a folder called ``OnionShare`` in your home folder on your computer, and they get automatically organized into separate subfolders based on the time that the files get uploaded.
+
+Setting up an OnionShare receiving service is useful for journalists and others that need to securely accept documents from anonymous sources. When used in this way, OnionShare is sort of like a lightweight, simpler, not quite as secure version of `SecureDrop <https://securedrop.org/>`_, the whistleblower submission system.
+
+Use at your own risk
+^^^^^^^^^^^^^^^^^^^^
+
+Just like with malicious email attachments, it's possible that someone could try to hack your computer by uploading a malicious file to your OnionShare service. OnionShare does not add any safety mechanisms to protect your system from malicious files, so use at your own risk.
+
+If you receive an Office document or a PDF through OnionShare, you can convert these documents into PDFs that you know are safe to open using `Dangerzone <https://dangerzone.rocks/>`_. You can also protect yourself when opening untrusted documents by opening them in `Tails <https://tails.boum.org/>`_ or in a `Qubes <https://qubes-os.org/>`_ disposable VM.
+
+Tips for running a receive service
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If you want to host your own anonymous dropbox using OnionShare, it's recommended that you do it on a separate, dedicated computer that's always powered on and connected to the internet, and not on the one you use on a regular basis.
+
+If you intend on advertising the OnionShare address on your website or social media profiles, then you should save the tab (see :ref:`save_tabs`) and run it as a public service (see :ref:`disable_passwords`).
+
+Host a Website
+--------------
+
+You can use OnionShare to host a static HTML website with just a click. Just open a website tab, drag in the files and folders that make up the static website, and click when you're ready click "Start sharing".
+
+.. image:: _static/screenshots/website.png
+
+If you add an ``index.html`` file, when someone loads your website it will render this page. 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.)
+
+If you don't have an ``index.html`` file, then it will show a directory listing instead, and people who load it can look through the files and download them.
+
+After you add files, you'll see some settings. Make sure you choose the setting you're interested in first before you start sharing.
+
+.. image:: _static/screenshots/website-files.png
+
+Content Security Policy
+^^^^^^^^^^^^^^^^^^^^^^^
+
+By default OnionShare will help secure your website by setting a strict `Content Security Police <https://en.wikipedia.org/wiki/Content_Security_Policy>`_ header. However this will prevent third-party content from loading inside the web page.
+
+If you want to load content from third-party websites, like assets or JavaScript libraries from CDNs, then you must check the "Disable Content Security Policy header (allows your website to use third-party resources)" box before starting the service.
+
+Tips for running a website service
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If you want to host a long-term website using OnionShare (that isn't just to quickly show someone something), it's recommended that you do it on a separate, dedicated computer that's always powered on and connected to the internet, and not on the one you use on a regular basis. You should also save the tab (see :ref:`save_tabs`) so that you can resume the website with the same address if you close OnionShare and re-open it later.
+
+If your website is intended to be viewed by the public, you should run it as a public service (see :ref:`disable_passwords`).
+
+Chat Anonymously
+----------------
+
+You can use OnionShare to set up a completely anonymous, secure chat room that doesn't log anything or leave any traces. Just open a chat tab and click "Start chat server".
+
+.. image:: _static/screenshots/chat.png
+
+After you start the server, copy the OnionShare address and send it to the people who will join this anonymous chat room. If it's important to limit exactly who can join, you should use an encrypted messaging app to send the OnionShare address.
+
+.. image:: _static/screenshots/chat-sharing.png
+
+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 set their security level to Standard or Safer instead of Safest.
+
+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 enter. No chat history will get displayed at all, even if others were already chatting in the room, because the chat history isn't saved anywhere.
+
+.. image:: _static/screenshots/chat-torbrowser.png
+
+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.
+
+However, if you create an OnionShare chat room and securely send the address only to a small group of trusted friends using encrypted messages, then you can be reasonably confident that the people who join the chat room are your friends.
+
+How is this useful?
+^^^^^^^^^^^^^^^^^^^
+
+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.
+
+If you send a message to a Signal group, for example, a copy of your message ends up on each device (the phones and computers, if they set up Signal Desktop) of each member of the group. Even if disappearing messages is enabled, it's hard to confirm that all copies of the messages were 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 this isn't a problem.
+
+OnionShare chat rooms can also be useful for anonymous people wanting to chat 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.
+
+How does the encryption work?
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Because OnionShare relies on Tor onion services, connections between 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.
+
+OnionShare doesn't implement any chat encryption on its own. It relies on the Tor onion service's encryption instead. \ No newline at end of file
diff --git a/docs/source/help.rst b/docs/source/help.rst
new file mode 100644
index 00000000..3c138d6a
--- /dev/null
+++ b/docs/source/help.rst
@@ -0,0 +1,24 @@
+Getting Help
+============
+
+If you need help with OnionShare, please follow the instructions below.
+
+Read this website
+-----------------
+
+This website is full of instructions on how to use OnionShare. Look through all of the sections first to see if it answers your questions.
+
+Check the GitHub issues
+-----------------------
+
+If you can't find a solution in this website, please check the `GitHub issues <https://github.com/micahflee/onionshare/issues>`_. It's possible that someone else has encountered the same problem and has either raised it with the developers, or maybe even posted a solution.
+
+Submit an issue yourself
+------------------------
+
+If you can't find a solution to your problem, or you wish to ask a question or suggest a new feature, please `submit an issue <https://github.com/micahflee/onionshare/issues/new>`_. This requires `creating an GitHub account <https://help.github.com/articles/signing-up-for-a-new-github-account/>`_.
+
+Join our Keybase team
+---------------------
+
+See :ref:`collaborating` for instructions on how to join our Keybase team that we use to discuss the project. \ No newline at end of file
diff --git a/docs/source/index.rst b/docs/source/index.rst
new file mode 100644
index 00000000..55d874e3
--- /dev/null
+++ b/docs/source/index.rst
@@ -0,0 +1,17 @@
+OnionShare's documentation
+==========================
+
+.. image:: _static/screenshots/tabs.png
+
+OnionShare is an open source tool that lets you securely and anonymously share files, host websites, and chat with friends using the Tor network.
+
+.. toctree::
+ :maxdepth: 2
+
+ install
+ features
+ advanced
+ tor
+ help
+ security
+ develop
diff --git a/docs/source/install.rst b/docs/source/install.rst
new file mode 100644
index 00000000..a8383e35
--- /dev/null
+++ b/docs/source/install.rst
@@ -0,0 +1,66 @@
+Installation
+============
+
+Install on Windows or macOS
+---------------------------
+
+You can download OnionShare for Windows and macOS from the `OnionShare website <https://onionshare.org/>`_.
+
+For added security, see :ref:`verifying_sigs`.
+
+.. _linux:
+
+Install in Linux with Flatpak
+-----------------------------
+
+There are various ways to install OnionShare for Linux, but the recommended way is to use the Flatpak package. Flatpak ensures that you'll always use the most latest dependencies and run OnionShare inside of a sandbox.
+
+Make sure you have ``flatpak`` installed and the Flathub repository added by following `these instructions <https://flatpak.org/setup/>`_ for your Linux distribution.
+
+Then install OnionShare from Flathub by following `the instructions here <https://flathub.org/apps/details/org.onionshare.OnionShare>`_.
+
+.. _verifying_sigs:
+
+Verifying PGP signatures
+------------------------
+
+You can verify that the Windows, macOS, or source package you download is legitimate and hasn't been tampered with by verifying its PGP signature. For Windows and macOS, this step is optional and provides defense in depth: the installers also include their operating system-specific signatures, and you can just rely on those alone if you'd like.
+
+Signing key
+^^^^^^^^^^^
+
+Windows, macOS, and source packaged are signed by Micah Lee, the core developer, using his PGP public key with fingerprint ``927F419D7EC82C2F149C1BD1403C2657CD994F73``. You can download Micah's key `from the keys.openpgp.org keyserver <https://keys.openpgp.org/vks/v1/by-fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_.
+
+In order to verify signatures, you must have GnuPG installed. For macOS you probably want `GPGTools <https://gpgtools.org/>`_, and for Windows you probably want `Gpg4win <https://www.gpg4win.org/>`_.
+
+Signatures
+^^^^^^^^^^
+
+You can find the signatures (``.asc`` files), as well as Windows, macOS, 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 <https://github.com/micahflee/onionshare/releases>`_.
+
+Verifying
+^^^^^^^^^
+
+Once you have imported Micah's public key into your GnuPG keychain, downloaded the binary, and downloaded the ``.asc`` signature, you can verify the binary for macOS in terminal like this::
+
+ gpg --verify OnionShare-2.2.pkg.asc OnionShare-2.2.pkg
+
+Or for Windows in a command prompt like this::
+
+ gpg.exe --verify onionshare-2.2-setup.exe.asc onionshare-2.2-setup.exe
+
+An expected output might look like this::
+
+ gpg: Signature made Tue 19 Feb 2019 09:25:28 AM AEDT using RSA key ID CD994F73
+ gpg: Good signature from "Micah Lee <micah@micahflee.com>"
+ gpg: aka "Micah Lee <micah@firstlook.org>"
+ gpg: aka "Micah Lee <micah@freedom.press>"
+ gpg: aka "Micah Lee <micah.lee@firstlook.org>"
+ gpg: aka "Micah Lee <micah.lee@theintercept.com>"
+ gpg: WARNING: This key is not certified with a trusted signature!
+ gpg: There is no indication that the signature belongs to the owner.
+ Primary key fingerprint: 927F 419D 7EC8 2C2F 149C 1BD1 403C 2657 CD99 4F73
+
+If you don't see 'Good signature from', then there might be a problem with the integrity of the file (malicious or otherwise), and you perhaps should not install the package. (The WARNING shown above, is not a problem with the package: it only means you have not defined any level of 'trust' regarding Micah's PGP key itself.)
+
+If you want to learn more about verifying PGP signatures, guides for `Qubes OS <https://www.qubes-os.org/security/verifying-signatures/>`_ and the `Tor Project <https://2019.www.torproject.org/docs/verifying-signatures.html.en>`_ may be helpful. \ No newline at end of file
diff --git a/docs/source/locale/ar/LC_MESSAGES/advanced.po b/docs/source/locale/ar/LC_MESSAGES/advanced.po
new file mode 100644
index 00000000..0b9fd78c
--- /dev/null
+++ b/docs/source/locale/ar/LC_MESSAGES/advanced.po
@@ -0,0 +1,224 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/advanced.rst:2
+msgid "Advanced usage"
+msgstr ""
+
+#: ../../source/advanced.rst:7
+msgid "Save tabs"
+msgstr ""
+
+#: ../../source/advanced.rst:9
+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. "
+"But sometimes you might want an OnionShare service to be persistent. For "
+"example, this would be useful if you want to host a website that can keep"
+" the same URL even if you reboot your computer."
+msgstr ""
+
+#: ../../source/advanced.rst:11
+msgid ""
+"To make any tab persistent, check the \"Save this tab, and automatically "
+"open it when I open OnionShare\" box before starting the server. When a "
+"tab is saved a purple pin icon appears to the left of its server status."
+msgstr ""
+
+#: ../../source/advanced.rst:15
+msgid ""
+"When you quit OnionShare and then open it again, your saved tabs will "
+"start out open. You'll have to manually start each service, but when you "
+"do they will start with the same OnionShare address, and with the same "
+"password."
+msgstr ""
+
+#: ../../source/advanced.rst:17
+msgid ""
+"If you save a tab, a copy of that tab's onion service secret key will be "
+"stored on your computer with your OnionShare settings."
+msgstr ""
+
+#: ../../source/advanced.rst:22
+msgid "Disable passwords"
+msgstr ""
+
+#: ../../source/advanced.rst:24
+msgid ""
+"By default, all OnionShare services are protected with the username "
+"`onionshare` and a randomly-generated password. If someone makes 20 wrong"
+" guesses of the password, your onion service is automatically stopped to "
+"prevent a brute force attack against the OnionShare service."
+msgstr ""
+
+#: ../../source/advanced.rst:26
+msgid ""
+"But sometimes you might want your OnionShare service to be accessible to "
+"the public. For example, if you want to set up an OnionShare receive "
+"service so the public can securely and anonymously send you files. In "
+"this case, it's better to disable the password altogether. If you don't "
+"do this, someone can force your server to stop just by making 20 wrong "
+"guesses of your password, even if they know the correct password."
+msgstr ""
+
+#: ../../source/advanced.rst:28
+msgid ""
+"To disable the password for any tab, just check the \"Don't use a "
+"password\" box before starting the server. Then the server will be public"
+" and won't have a password."
+msgstr ""
+
+#: ../../source/advanced.rst:31
+msgid "Scheduled times"
+msgstr ""
+
+#: ../../source/advanced.rst:33
+msgid ""
+"OnionShare supports scheduling exactly when a service should start and "
+"stop. Before starting 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 desired dates and times."
+msgstr ""
+
+#: ../../source/advanced.rst:35
+msgid ""
+"If you scheduled a service to start in the future, when you click the "
+"start button you will see a timer counting down until it will start. If "
+"you scheduled it to stop in the future, after it's started you will see a"
+" timer counting down to when it will stop automatically."
+msgstr ""
+
+#: ../../source/advanced.rst:37
+msgid ""
+"**Scheduling an OnionShare service to automatically start can be used as "
+"a dead man's switch**, where your service will be made public at a given "
+"time in the future if anything happens to you. If nothing happens to you,"
+" you can cancel the service before it's scheduled to start."
+msgstr ""
+
+#: ../../source/advanced.rst:41
+msgid ""
+"**Scheduling an OnionShare service to automatically stop can be useful to"
+" limit exposure**, like if you want to share secret documents while "
+"making sure they're not available on the internet for more than a few "
+"days."
+msgstr ""
+
+#: ../../source/advanced.rst:46
+msgid "Command line interface"
+msgstr ""
+
+#: ../../source/advanced.rst:48
+msgid ""
+"In addition to its graphical interface, OnionShare has a command line "
+"interface."
+msgstr ""
+
+#: ../../source/advanced.rst:51
+msgid "Linux"
+msgstr ""
+
+#: ../../source/advanced.rst:53
+msgid ""
+"If you installed OnionShare using the Flatpak package, unfortunately the "
+"command line interface isn't supported."
+msgstr ""
+
+#: ../../source/advanced.rst:55
+msgid ""
+"If you installed OnionShare using an operating system package, you can "
+"just run ``onionshare`` from the terminal."
+msgstr ""
+
+#: ../../source/advanced.rst:58
+msgid "macOS"
+msgstr ""
+
+#: ../../source/advanced.rst:60
+msgid "Make a symbolic link to the OnionShare command line binary line this::"
+msgstr ""
+
+#: ../../source/advanced.rst:64
+msgid "Now you can run ``onionshare`` from the terminal."
+msgstr ""
+
+#: ../../source/advanced.rst:67
+msgid "Windows"
+msgstr ""
+
+#: ../../source/advanced.rst:69
+msgid "The command line interface isn't supported in Windows."
+msgstr ""
+
+#: ../../source/advanced.rst:71
+msgid ""
+"If you really want to use it anyway, you can set up a Windows development"
+" environment (see :ref:`starting_development`) and then run this in a "
+"command prompt::"
+msgstr ""
+
+#: ../../source/advanced.rst:76
+msgid "Usage"
+msgstr ""
+
+#: ../../source/advanced.rst:78
+msgid "You can see command line documentation by running ``onionshare --help``::"
+msgstr ""
+
+#: ../../source/advanced.rst:134
+msgid "Legacy addresses"
+msgstr ""
+
+#: ../../source/advanced.rst:136
+msgid ""
+"OnionShare uses v3 Tor onion services by default. These are modern onion "
+"addresses that have 56 characters, for example::"
+msgstr ""
+
+#: ../../source/advanced.rst:140
+msgid ""
+"But it still has support for v2 onion addresses, the old type of onion "
+"addresses that have 16 characters, for example::"
+msgstr ""
+
+#: ../../source/advanced.rst:144
+msgid ""
+"OnionShare calls v2 onion addresses \"legacy addresses\". v3 onion "
+"addresses are more secure, and using legacy addresses is not recommended."
+msgstr ""
+
+#: ../../source/advanced.rst:146
+msgid ""
+"To use legacy addresses, before starting a server click \"Show advanced "
+"settings\" in its tab and check the \"Use a legacy address (v2 onion "
+"service, not recommended)\" box. In legacy mode you can optionally enable"
+" Tor client authentication. Once you start a server in legacy mode you "
+"cannot remove legacy mode in that tab. Instead you must start a separate "
+"service in a separate tab."
+msgstr ""
+
+#: ../../source/advanced.rst:148
+msgid ""
+"Tor Project plans to `completely deprecate v2 onion services "
+"<https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, "
+"2021, and legacy onion services will soon be removed from OnionShare as "
+"well."
+msgstr ""
+
diff --git a/docs/source/locale/ar/LC_MESSAGES/develop.po b/docs/source/locale/ar/LC_MESSAGES/develop.po
new file mode 100644
index 00000000..6e7eb464
--- /dev/null
+++ b/docs/source/locale/ar/LC_MESSAGES/develop.po
@@ -0,0 +1,248 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/develop.rst:2
+msgid "Developing OnionShare"
+msgstr ""
+
+#: ../../source/develop.rst:7
+msgid "Collaborating"
+msgstr ""
+
+#: ../../source/develop.rst:9
+msgid ""
+"OnionShare has an open Keybase team that we use to discuss the project, "
+"including asking questions, sharing ideas and designs, and making plans "
+"for future development. (It's also an easy way to send end-to-end "
+"encrypted direct messages to others in the OnionShare community, like "
+"OnionShare addresses.) To use Keybase, you need to download the `Keybase "
+"app <https://keybase.io/download>`_, make an account, and `join this team"
+" <https://keybase.io/team/onionshare>`_. Within the app, go to Teams, "
+"click \"Join a Team\", and type \"onionshare\"."
+msgstr ""
+
+#: ../../source/develop.rst:11
+msgid ""
+"OnionShare also has a `mailing list "
+"<https://lists.riseup.net/www/subscribe/onionshare-dev>`_ for developers "
+"and and designers to discuss the project."
+msgstr ""
+
+#: ../../source/develop.rst:14
+msgid "Contributing code"
+msgstr ""
+
+#: ../../source/develop.rst:16
+msgid ""
+"OnionShare source code is in this git repository: "
+"https://github.com/micahflee/onionshare"
+msgstr ""
+
+#: ../../source/develop.rst:18
+msgid ""
+"If you'd like to contribute code to OnionShare, it helps to join the "
+"Keybase team and ask questions about what you're thinking of working on. "
+"You should also review all of the `open issues "
+"<https://github.com/micahflee/onionshare/issues>`_ on GitHub to see if "
+"there are any that you'd like to develop."
+msgstr ""
+
+#: ../../source/develop.rst:20
+msgid ""
+"When you're ready to contribute code, open a pull request in the GitHub "
+"repository and one of the project maintainers will review it and possible"
+" ask questions, request changes, reject it, or merge it into the project."
+msgstr ""
+
+#: ../../source/develop.rst:25
+msgid "Starting development"
+msgstr ""
+
+#: ../../source/develop.rst:27
+msgid ""
+"OnionShare is developed in Python. To get started, you should close the "
+"git repository at https://github.com/micahflee/onionshare/ and then "
+"consult the ``BUILD.md`` file."
+msgstr ""
+
+#: ../../source/develop.rst:29
+msgid "That file contains the technical instructions and commands necessary:"
+msgstr ""
+
+#: ../../source/develop.rst:31
+msgid "Install dependencies for your platform"
+msgstr ""
+
+#: ../../source/develop.rst:32
+msgid "Run OnionShare from the source tree, without building a package"
+msgstr ""
+
+#: ../../source/develop.rst:33
+msgid "Building packages"
+msgstr ""
+
+#: ../../source/develop.rst:34
+msgid "Making a release of OnionShare"
+msgstr ""
+
+#: ../../source/develop.rst:37
+msgid "Debugging tips"
+msgstr ""
+
+#: ../../source/develop.rst:40
+msgid "Verbose mode"
+msgstr ""
+
+#: ../../source/develop.rst:42
+msgid ""
+"When developing, it's convenient to run OnionShare from a terminal and "
+"add the ``--verbose`` (or ``-v``) flag to the command. This will print a "
+"lot of helpful messages to the terminal such as when certain objects are "
+"initialized, when events occur (like buttons clicked, settings saved or "
+"reloaded), and other debug information. For example::"
+msgstr ""
+
+#: ../../source/develop.rst:111
+msgid ""
+"You can add your own debug messages by running the ``Common.log`` method "
+"from ``onionshare/common.py``. For example::"
+msgstr ""
+
+#: ../../source/develop.rst:115
+msgid ""
+"This can be useful when learning the chain of events that occur when "
+"using the application or the value of certain variables before and after "
+"they are manipulated."
+msgstr ""
+
+#: ../../source/develop.rst:118
+msgid "Local only"
+msgstr ""
+
+#: ../../source/develop.rst:120
+msgid ""
+"Tor is slow, and it's often convenient to skip starting onion services "
+"altogether during development. You can do this with the ``--local-only`` "
+"flag. For example::"
+msgstr ""
+
+#: ../../source/develop.rst:157
+msgid ""
+"In this case, you load the URL ``http://onionshare:eject-"
+"snack@127.0.0.1:17614`` in a normal web browser like Firefox, instead of "
+"using Tor Browser."
+msgstr ""
+
+#: ../../source/develop.rst:160
+msgid "Debugging in Windows"
+msgstr ""
+
+#: ../../source/develop.rst:162
+msgid ""
+"If you want to obtain debug output from the ``onionshare-gui.exe`` in "
+"Windows, you will need to edit ``install\\pyinstaller.spec`` and change "
+"``console=False`` to ``console=True``."
+msgstr ""
+
+#: ../../source/develop.rst:164
+msgid ""
+"Then rebuild the EXE with ``install\\build_exe.bat`` (you may need to "
+"comment out the ``signtool`` commands in the ``build_exe.bat`` and the "
+"``onionshare.nsi`` files, as per the ``BUILD.md`` instructions)."
+msgstr ""
+
+#: ../../source/develop.rst:166
+msgid ""
+"After this, you can run ``onionshare-gui.exe -v`` from a command prompt "
+"to see the debug output."
+msgstr ""
+
+#: ../../source/develop.rst:169
+msgid "Contributing translations"
+msgstr ""
+
+#: ../../source/develop.rst:171
+msgid ""
+"Most of the OnionShare is translatable. You can help make it easier to "
+"use and more familiar and welcoming for people around the globe. The "
+"Localization Lab has some `documentation about translating OnionShare "
+"<https://wiki.localizationlab.org/index.php/OnionShare>`_."
+msgstr ""
+
+#: ../../source/develop.rst:173
+msgid ""
+"OnionShare uses Weblate to keep track of translations. You can view the "
+"OnionShare project here: https://hosted.weblate.org/projects/onionshare/"
+msgstr ""
+
+#: ../../source/develop.rst:175
+msgid ""
+"To help translate, make a Hosted Weblate account and start contributing "
+"to that project."
+msgstr ""
+
+#: ../../source/develop.rst:178
+msgid "Suggestions for original English strings"
+msgstr ""
+
+#: ../../source/develop.rst:180
+msgid ""
+"Sometimes the original English strings could be improved, making them "
+"easier to translate into other languages."
+msgstr ""
+
+#: ../../source/develop.rst:182
+msgid ""
+"If you have suggestions for a better English string, please open a GitHub"
+" issue rather than commenting in Weblate. This ensures the upstream "
+"developers will definitely see the suggestion, and can potentially modify"
+" the string via the usual code review processes."
+msgstr ""
+
+#: ../../source/develop.rst:185
+msgid "Status of translations"
+msgstr ""
+
+#: ../../source/develop.rst:186
+msgid ""
+"Here is the current translation status. If you want start a translation "
+"in a language not to be found here, please write us to the mailing list: "
+"onionshare-dev@lists.riseup.net"
+msgstr ""
+
+#: ../../source/develop.rst:191
+msgid "Translate the .desktop file"
+msgstr ""
+
+#: ../../source/develop.rst:193
+msgid "You can also translate the ``install/onionshare.desktop`` file."
+msgstr ""
+
+#: ../../source/develop.rst:195
+msgid ""
+"Duplicate the line that begins with ``Comment=``. Add the language code "
+"to the new line so it becomes ``Comment[lang]=`` (lang should be your "
+"language). You can see what language codes are used for translation by "
+"looking at the ``share/locale/*.json`` filenames::"
+msgstr ""
+
+#: ../../source/develop.rst:200
+msgid "Do the same for other untranslated lines."
+msgstr ""
+
diff --git a/docs/source/locale/ar/LC_MESSAGES/features.po b/docs/source/locale/ar/LC_MESSAGES/features.po
new file mode 100644
index 00000000..29841dd8
--- /dev/null
+++ b/docs/source/locale/ar/LC_MESSAGES/features.po
@@ -0,0 +1,382 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/features.rst:4
+msgid "How OnionShare works"
+msgstr ""
+
+#: ../../source/features.rst:6
+msgid ""
+"OnionShare works by starting web servers locally on your own computer and"
+" making them accessible to other people as `Tor "
+"<https://www.torproject.org/>`_ `onion services "
+"<https://community.torproject.org/onion-services/>`_."
+msgstr ""
+
+#: ../../source/features.rst:8
+msgid ""
+"By default, OnionShare web addresses are protected with a random "
+"password. A typical OnionShare address might look something like this::"
+msgstr ""
+
+#: ../../source/features.rst:12
+msgid ""
+"You're responsible for securely sharing that URL using a communication "
+"channel of your choice like in an encrypted chat message, or using "
+"something less secure like a Twitter or Facebook message, depending on "
+"your `threat model <https://ssd.eff.org/en/module/your-security-plan>`_."
+msgstr ""
+
+#: ../../source/features.rst:14
+msgid ""
+"The people who you send the URL to must then copy and paste it into `Tor "
+"Browser <https://www.torproject.org/>`_ to access the OnionShare service."
+msgstr ""
+
+#: ../../source/features.rst:16
+msgid ""
+"With OnionShare, *your own computer is the web server*. If you run "
+"OnionShare on your laptop to send someone files, and then suspend your "
+"laptop before the files have been downloaded, the service will not be "
+"available until your laptop is unsuspended and connected to the internet "
+"again. OnionShare works best when working with people in real-time."
+msgstr ""
+
+#: ../../source/features.rst:18
+msgid ""
+"Because your own computer is the web server, *no third party can access "
+"anything that happens in OnionShare*, not even the developers of "
+"OnionShare. It's completely private. And because OnionShare is based on "
+"Tor onion services too, it also protects your anonymity. See the "
+":doc:`security design </security>` for more information."
+msgstr ""
+
+#: ../../source/features.rst:21
+msgid "Share Files"
+msgstr ""
+
+#: ../../source/features.rst:23
+msgid ""
+"You can use OnionShare to securely and anonymously send files and folders"
+" to people. Just open a share tab, drag in the files and folders you wish"
+" to share, and click \"Start sharing\"."
+msgstr ""
+
+#: ../../source/features.rst:27 ../../source/features.rst:91
+msgid ""
+"After you add files, you'll see some settings. Make sure you choose the "
+"setting you're interested in first before you start sharing."
+msgstr ""
+
+#: ../../source/features.rst:31
+msgid ""
+"By default, as soon as someone finishes downloading your files, "
+"OnionShare will automatically stop the server, completely removing the "
+"website from the internet. If you want to allow multiple people to "
+"download these files, uncheck the \"Stop sharing after files have been "
+"sent (uncheck to allow downloading individual files)\" box."
+msgstr ""
+
+#: ../../source/features.rst:33
+msgid ""
+"Also, if you uncheck this box, people will be able to download individual"
+" files that you share rather than a single compressed version of all of "
+"the files."
+msgstr ""
+
+#: ../../source/features.rst:35
+msgid ""
+"When you're ready to share, click the \"Start sharing\" button. You can "
+"always click \"Stop sharing\", or quit OnionShare, to immediate take the "
+"website down. You can also click the up arrow icon in the top-right "
+"corner to show the history and progress of people downloading files from "
+"you."
+msgstr ""
+
+#: ../../source/features.rst:39
+msgid ""
+"Now that you have a website that's sharing files, copy the address and "
+"send it to the person you want to receive the files. If the files need to"
+" stay secure, you should use an encrypted messaging app."
+msgstr ""
+
+#: ../../source/features.rst:41
+msgid ""
+"That person then must load the address in Tor Browser. After logging in "
+"with the random password that's included in the web address, they will be"
+" able to download the files directly from your computer by clicking the "
+"\"Download Files\" link in the corner."
+msgstr ""
+
+#: ../../source/features.rst:46
+msgid "Receive Files"
+msgstr ""
+
+#: ../../source/features.rst:48
+msgid ""
+"You can use OnionShare to let people anonymously upload files directly to"
+" your computer, essentially turning it into an anonymous dropbox. Open a "
+"receive tab, choose where you want files to get downloaded and other "
+"settings, and then click \"Start Receive Mode\"."
+msgstr ""
+
+#: ../../source/features.rst:52
+msgid ""
+"This will start the OnionShare service. Anyone that loads this address in"
+" Tor Browser will be able to upload files to your computer."
+msgstr ""
+
+#: ../../source/features.rst:56
+msgid ""
+"You can also click the down arrow icon in the top-right corner to show "
+"the history and progress of people sending files to you."
+msgstr ""
+
+#: ../../source/features.rst:58
+msgid "Here is what it looks like for someone sending you files."
+msgstr ""
+
+#: ../../source/features.rst:62
+msgid ""
+"When someone uploads files to your receive service, by default they get "
+"saved to a folder called ``OnionShare`` in your home folder on your "
+"computer, and they get automatically organized into separate subfolders "
+"based on the time that the files get uploaded."
+msgstr ""
+
+#: ../../source/features.rst:64
+msgid ""
+"Setting up an OnionShare receiving service is useful for journalists and "
+"others that need to securely accept documents from anonymous sources. "
+"When used in this way, OnionShare is sort of like a lightweight, simpler,"
+" not quite as secure version of `SecureDrop <https://securedrop.org/>`_, "
+"the whistleblower submission system."
+msgstr ""
+
+#: ../../source/features.rst:67
+msgid "Use at your own risk"
+msgstr ""
+
+#: ../../source/features.rst:69
+msgid ""
+"Just like with malicious email attachments, it's possible that someone "
+"could try to hack your computer by uploading a malicious file to your "
+"OnionShare service. OnionShare does not add any safety mechanisms to "
+"protect your system from malicious files, so use at your own risk."
+msgstr ""
+
+#: ../../source/features.rst:71
+msgid ""
+"If you receive an Office document or a PDF through OnionShare, you can "
+"convert these documents into PDFs that you know are safe to open using "
+"`Dangerzone <https://dangerzone.rocks/>`_. You can also protect yourself "
+"when opening untrusted documents by opening them in `Tails "
+"<https://tails.boum.org/>`_ or in a `Qubes <https://qubes-os.org/>`_ "
+"disposable VM."
+msgstr ""
+
+#: ../../source/features.rst:74
+msgid "Tips for running a receive service"
+msgstr ""
+
+#: ../../source/features.rst:76
+msgid ""
+"If you want to host your own anonymous dropbox using OnionShare, it's "
+"recommended that you do it on a separate, dedicated computer that's "
+"always powered on and connected to the internet, and not on the one you "
+"use on a regular basis."
+msgstr ""
+
+#: ../../source/features.rst:78
+msgid ""
+"If you intend on advertising the OnionShare address on your website or "
+"social media profiles, then you should save the tab (see "
+":ref:`save_tabs`) and run it as a public service (see "
+":ref:`disable_passwords`)."
+msgstr ""
+
+#: ../../source/features.rst:81
+msgid "Host a Website"
+msgstr ""
+
+#: ../../source/features.rst:83
+msgid ""
+"You can use OnionShare to host a static HTML website with just a click. "
+"Just open a website tab, drag in the files and folders that make up the "
+"static website, and click when you're ready click \"Start sharing\"."
+msgstr ""
+
+#: ../../source/features.rst:87
+msgid ""
+"If you add an ``index.html`` file, when someone loads your website it "
+"will render this page. 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:89
+msgid ""
+"If you don't have an ``index.html`` file, then it will show a directory "
+"listing instead, and people who load it can look through the files and "
+"download them."
+msgstr ""
+
+#: ../../source/features.rst:96
+msgid "Content Security Policy"
+msgstr ""
+
+#: ../../source/features.rst:98
+msgid ""
+"By default OnionShare will help secure your website by setting a strict "
+"`Content Security Police "
+"<https://en.wikipedia.org/wiki/Content_Security_Policy>`_ header. However"
+" this will prevent third-party content from loading inside the web page."
+msgstr ""
+
+#: ../../source/features.rst:100
+msgid ""
+"If you want to load content from third-party websites, like assets or "
+"JavaScript libraries from CDNs, then you must check the \"Disable Content"
+" Security Policy header (allows your website to use third-party "
+"resources)\" box before starting the service."
+msgstr ""
+
+#: ../../source/features.rst:103
+msgid "Tips for running a website service"
+msgstr ""
+
+#: ../../source/features.rst:105
+msgid ""
+"If you want to host a long-term website using OnionShare (that isn't just"
+" to quickly show someone something), it's recommended that you do it on a"
+" separate, dedicated computer that's always powered on and connected to "
+"the internet, and not on the one you use on a regular basis. You should "
+"also save the tab (see :ref:`save_tabs`) so that you can resume the "
+"website with the same address if you close OnionShare and re-open it "
+"later."
+msgstr ""
+
+#: ../../source/features.rst:107
+msgid ""
+"If your website is intended to be viewed by the public, you should run it"
+" as a public service (see :ref:`disable_passwords`)."
+msgstr ""
+
+#: ../../source/features.rst:110
+msgid "Chat Anonymously"
+msgstr ""
+
+#: ../../source/features.rst:112
+msgid ""
+"You can use OnionShare to set up a completely anonymous, secure chat room"
+" that doesn't log anything or leave any traces. Just open a chat tab and "
+"click \"Start chat server\"."
+msgstr ""
+
+#: ../../source/features.rst:116
+msgid ""
+"After you start the server, copy the OnionShare address and send it to "
+"the people who will join this anonymous chat room. If it's important to "
+"limit exactly who can join, you should use an encrypted messaging app to "
+"send the OnionShare address."
+msgstr ""
+
+#: ../../source/features.rst:120
+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 set their security level to Standard or Safer instead of"
+" Safest."
+msgstr ""
+
+#: ../../source/features.rst:122
+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 enter. No chat history will get displayed at all, even if "
+"others were already chatting in the room, because the chat history isn't "
+"saved anywhere."
+msgstr ""
+
+#: ../../source/features.rst:126
+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:128
+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, then you can be reasonably confident that the people who join "
+"the chat room are your friends."
+msgstr ""
+
+#: ../../source/features.rst:131
+msgid "How is this useful?"
+msgstr ""
+
+#: ../../source/features.rst:133
+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:135
+msgid ""
+"If you send a message to a Signal group, for example, a copy of your "
+"message ends up on each device (the phones and computers, if they set up "
+"Signal Desktop) of each member of the group. Even if disappearing "
+"messages is enabled, it's hard to confirm that all copies of the messages"
+" were 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 this isn't a problem."
+msgstr ""
+
+#: ../../source/features.rst:137
+msgid ""
+"OnionShare chat rooms can also be useful for anonymous people wanting to "
+"chat 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:140
+msgid "How does the encryption work?"
+msgstr ""
+
+#: ../../source/features.rst:142
+msgid ""
+"Because OnionShare relies on Tor onion services, connections between 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:144
+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/source/locale/ar/LC_MESSAGES/help.po b/docs/source/locale/ar/LC_MESSAGES/help.po
new file mode 100644
index 00000000..d965eb13
--- /dev/null
+++ b/docs/source/locale/ar/LC_MESSAGES/help.po
@@ -0,0 +1,72 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/help.rst:2
+msgid "Getting Help"
+msgstr ""
+
+#: ../../source/help.rst:4
+msgid "If you need help with OnionShare, please follow the instructions below."
+msgstr ""
+
+#: ../../source/help.rst:7
+msgid "Read this website"
+msgstr ""
+
+#: ../../source/help.rst:9
+msgid ""
+"This website is full of instructions on how to use OnionShare. Look "
+"through all of the sections first to see if it answers your questions."
+msgstr ""
+
+#: ../../source/help.rst:12
+msgid "Check the GitHub issues"
+msgstr ""
+
+#: ../../source/help.rst:14
+msgid ""
+"If you can't find a solution in this website, please check the `GitHub "
+"issues <https://github.com/micahflee/onionshare/issues>`_. It's possible "
+"that someone else has encountered the same problem and has either raised "
+"it with the developers, or maybe even posted a solution."
+msgstr ""
+
+#: ../../source/help.rst:17
+msgid "Submit an issue yourself"
+msgstr ""
+
+#: ../../source/help.rst:19
+msgid ""
+"If you can't find a solution to your problem, or you wish to ask a "
+"question or suggest a new feature, please `submit an issue "
+"<https://github.com/micahflee/onionshare/issues/new>`_. This requires "
+"`creating an GitHub account <https://help.github.com/articles/signing-up-"
+"for-a-new-github-account/>`_."
+msgstr ""
+
+#: ../../source/help.rst:22
+msgid "Join our Keybase team"
+msgstr ""
+
+#: ../../source/help.rst:24
+msgid ""
+"See :ref:`collaborating` for instructions on how to join our Keybase team"
+" that we use to discuss the project."
+msgstr ""
+
diff --git a/docs/source/locale/ar/LC_MESSAGES/index.po b/docs/source/locale/ar/LC_MESSAGES/index.po
new file mode 100644
index 00000000..2ad2653c
--- /dev/null
+++ b/docs/source/locale/ar/LC_MESSAGES/index.po
@@ -0,0 +1,29 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:46-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/index.rst:2
+msgid "OnionShare's documentation"
+msgstr ""
+
+#: ../../source/index.rst:6
+msgid ""
+"OnionShare is an open source tool that lets you securely and anonymously "
+"share files, host websites, and chat with friends using the Tor network."
+msgstr ""
+
diff --git a/docs/source/locale/ar/LC_MESSAGES/install.po b/docs/source/locale/ar/LC_MESSAGES/install.po
new file mode 100644
index 00000000..a2f5b321
--- /dev/null
+++ b/docs/source/locale/ar/LC_MESSAGES/install.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/install.rst:2
+msgid "Installation"
+msgstr ""
+
+#: ../../source/install.rst:5
+msgid "Install on Windows or macOS"
+msgstr ""
+
+#: ../../source/install.rst:7
+msgid ""
+"You can download OnionShare for Windows and macOS from the `OnionShare "
+"website <https://onionshare.org/>`_."
+msgstr ""
+
+#: ../../source/install.rst:9
+msgid "For added security, see :ref:`verifying_sigs`."
+msgstr ""
+
+#: ../../source/install.rst:14
+msgid "Install in Linux with Flatpak"
+msgstr ""
+
+#: ../../source/install.rst:16
+msgid ""
+"There are various ways to install OnionShare for Linux, but the "
+"recommended way is to use the Flatpak package. Flatpak ensures that "
+"you'll always use the most latest dependencies and run OnionShare inside "
+"of a sandbox."
+msgstr ""
+
+#: ../../source/install.rst:18
+msgid ""
+"Make sure you have ``flatpak`` installed and the Flathub repository added"
+" by following `these instructions <https://flatpak.org/setup/>`_ for your"
+" Linux distribution."
+msgstr ""
+
+#: ../../source/install.rst:20
+msgid ""
+"Then install OnionShare from Flathub by following `the instructions here "
+"<https://flathub.org/apps/details/org.onionshare.OnionShare>`_."
+msgstr ""
+
+#: ../../source/install.rst:25
+msgid "Verifying PGP signatures"
+msgstr ""
+
+#: ../../source/install.rst:27
+msgid ""
+"You can verify that the Windows, macOS, or source package you download is"
+" legitimate and hasn't been tampered with by verifying its PGP signature."
+" For Windows and macOS, this step is optional and provides defense in "
+"depth: the installers also include their operating system-specific "
+"signatures, and you can just rely on those alone if you'd like."
+msgstr ""
+
+#: ../../source/install.rst:30
+msgid "Signing key"
+msgstr ""
+
+#: ../../source/install.rst:32
+msgid ""
+"Windows, macOS, and source packaged are signed by Micah Lee, the core "
+"developer, using his PGP public key with fingerprint "
+"``927F419D7EC82C2F149C1BD1403C2657CD994F73``. You can download Micah's "
+"key `from the keys.openpgp.org keyserver <https://keys.openpgp.org/vks/v1"
+"/by-fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
+msgstr ""
+
+#: ../../source/install.rst:34
+msgid ""
+"In order to verify signatures, you must have GnuPG installed. For macOS "
+"you probably want `GPGTools <https://gpgtools.org/>`_, and for Windows "
+"you probably want `Gpg4win <https://www.gpg4win.org/>`_."
+msgstr ""
+
+#: ../../source/install.rst:37
+msgid "Signatures"
+msgstr ""
+
+#: ../../source/install.rst:39
+msgid ""
+"You can find the signatures (``.asc`` files), as well as Windows, macOS, "
+"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 <https://github.com/micahflee/onionshare/releases>`_."
+msgstr ""
+
+#: ../../source/install.rst:42
+msgid "Verifying"
+msgstr ""
+
+#: ../../source/install.rst:44
+msgid ""
+"Once you have imported Micah's public key into your GnuPG keychain, "
+"downloaded the binary, and downloaded the ``.asc`` signature, you can "
+"verify the binary for macOS in terminal like this::"
+msgstr ""
+
+#: ../../source/install.rst:48
+msgid "Or for Windows in a command prompt like this::"
+msgstr ""
+
+#: ../../source/install.rst:52
+msgid "An expected output might look like this::"
+msgstr ""
+
+#: ../../source/install.rst:64
+msgid ""
+"If you don't see 'Good signature from', then there might be a problem "
+"with the integrity of the file (malicious or otherwise), and you perhaps "
+"should not install the package. (The WARNING shown above, is not a "
+"problem with the package: it only means you have not defined any level of"
+" 'trust' regarding Micah's PGP key itself.)"
+msgstr ""
+
+#: ../../source/install.rst:66
+msgid ""
+"If you want to learn more about verifying PGP signatures, guides for "
+"`Qubes OS <https://www.qubes-os.org/security/verifying-signatures/>`_ and"
+" the `Tor Project <https://2019.www.torproject.org/docs/verifying-"
+"signatures.html.en>`_ may be helpful."
+msgstr ""
+
diff --git a/docs/source/locale/ar/LC_MESSAGES/security.po b/docs/source/locale/ar/LC_MESSAGES/security.po
new file mode 100644
index 00000000..13d11a17
--- /dev/null
+++ b/docs/source/locale/ar/LC_MESSAGES/security.po
@@ -0,0 +1,114 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/security.rst:2
+msgid "Security design"
+msgstr ""
+
+#: ../../source/security.rst:4
+msgid ""
+"First read :ref:`how_it_works` to understand the basics of how OnionShare"
+" works."
+msgstr ""
+
+#: ../../source/security.rst:6
+msgid "Like all software, OnionShare may contain bugs or vulnerabilities."
+msgstr ""
+
+#: ../../source/security.rst:9
+msgid "What OnionShare protects against"
+msgstr ""
+
+#: ../../source/security.rst:11
+msgid ""
+"**Third parties don't have access to anything that happens in "
+"OnionShare.** When you use OnionShare, you host services directly on your"
+" computer. For example, when you share files with OnionShare, you don't "
+"upload these files to any server, and when you start an OnionShare chat "
+"room, your computer is the chat room server itself. Traditional ways of "
+"sharing files or setting up websites and chat rooms require trusting a "
+"service with access to your data."
+msgstr ""
+
+#: ../../source/security.rst:13
+msgid ""
+"**Network eavesdroppers can't spy on anything that happens in OnionShare "
+"in transit.** Because connections between Tor onion services and Tor "
+"Browser are end-to-end encrypted, no network attackers can eavesdrop on "
+"what happens in an OnionShare service. If the eavesdropper is positioned "
+"on the OnionShare user's end, the Tor Browser user's end, or is a "
+"malicious Tor node, they will only see Tor traffic. If the eavesdropper "
+"is a malicious rendezvous node used to connect Tor Browser with "
+"OnionShare's onion service, the traffic will be encrypted using the onion"
+" service key."
+msgstr ""
+
+#: ../../source/security.rst:15
+msgid ""
+"**Anonymity of OnionShare users are protected by Tor.** OnionShare and "
+"Tor Browser protect the anonymity of the users. As long as the OnionShare"
+" user anonymously communicates the OnionShare address with the Tor "
+"Browser users, the Tor Browser users and eavesdroppers can't learn the "
+"identity of the OnionShare user."
+msgstr ""
+
+#: ../../source/security.rst:17
+msgid ""
+"**If an attacker learns about the onion service, they still can't access "
+"anything.** There have been attacks against the Tor network that can "
+"enumerate onion services. Even if someone discovers the .onion address of"
+" an OnionShare onion service, they can't access it without also knowing "
+"the service's random password (unless, of course, the OnionShare users "
+"chooses to disable the password and make it public). The password is "
+"generated by choosing two random words from a list of 6800 words, meaning"
+" there are 6800^2, or about 46 million possible password. But they can "
+"only make 20 wrong guesses before OnionShare stops the server, preventing"
+" brute force attacks against the password."
+msgstr ""
+
+#: ../../source/security.rst:20
+msgid "What OnionShare doesn't protect against"
+msgstr ""
+
+#: ../../source/security.rst:22
+msgid ""
+"**Communicating the OnionShare address might not be secure.** The "
+"OnionShare user is responsible for securely communicating the OnionShare "
+"address with people. If they send it insecurely (such as through an email"
+" message, and their email is being monitored by an attacker), the "
+"eavesdropper will learn that they're using OnionShare. If the attacker "
+"loads the address in Tor Browser before the legitimate recipient gets to "
+"it, they can access the service. If this risk fits the user's threat "
+"model, they must find a more secure way to communicate the address, such "
+"as in an encrypted email, chat, or voice call. This isn't necessary in "
+"cases where OnionShare is being used for something that isn't secret."
+msgstr ""
+
+#: ../../source/security.rst:24
+msgid ""
+"**Communicating the OnionShare address might not be anonymous.** While "
+"OnionShare and Tor Browser allow for anonymity, if the user wishes to "
+"remain anonymous they must take extra steps to ensure this while "
+"communicating the OnionShare address. For example, they might need to use"
+" Tor to create a new anonymous email or chat account, and only access it "
+"over Tor, to use for sharing the address. This isn't necessary in cases "
+"where there's no need to protect anonymity, such as co-workers who know "
+"each other sharing work documents."
+msgstr ""
+
diff --git a/docs/source/locale/ar/LC_MESSAGES/sphinx.po b/docs/source/locale/ar/LC_MESSAGES/sphinx.po
new file mode 100644
index 00000000..f2cc8ed5
--- /dev/null
+++ b/docs/source/locale/ar/LC_MESSAGES/sphinx.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/_templates/versions.html:10
+msgid "Versions"
+msgstr ""
+
+#: ../../source/_templates/versions.html:18
+msgid "Languages"
+msgstr ""
+
diff --git a/docs/source/locale/ar/LC_MESSAGES/tor.po b/docs/source/locale/ar/LC_MESSAGES/tor.po
new file mode 100644
index 00000000..35edc6e4
--- /dev/null
+++ b/docs/source/locale/ar/LC_MESSAGES/tor.po
@@ -0,0 +1,213 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/tor.rst:2
+msgid "Connecting to Tor"
+msgstr ""
+
+#: ../../source/tor.rst:4
+msgid ""
+"There are several options for how OnionShare should connect to Tor. You "
+"can change them in Settings, which you can get to by clicking the gear "
+"icon in the bottom-right of the window."
+msgstr ""
+
+#: ../../source/tor.rst:9
+msgid "Use Tor that is bundled with OnionShare"
+msgstr ""
+
+#: ../../source/tor.rst:11
+msgid ""
+"This is the default way that OnionShare connects to Tor, and it's also "
+"the simplest and most reliable way. For this reason, it's recommended for"
+" most users."
+msgstr ""
+
+#: ../../source/tor.rst:13
+msgid ""
+"When you open OnionShare, it will launch a Tor process in the background "
+"that's configured specifically for OnionShare to use. This Tor process "
+"won't interfere with other Tor processes on your computer, so you're free"
+" to run Tor Browser or use a system Tor in the background."
+msgstr ""
+
+#: ../../source/tor.rst:16
+msgid "Attempt automatic configuration with Tor Browser"
+msgstr ""
+
+#: ../../source/tor.rst:18
+msgid ""
+"You can configure OnionShare to connect to the Tor that comes with Tor "
+"Browser. First, `download Tor Browser <https://www.torproject.org>`_ here"
+" if you don't already have it. With this setting selected, you need to "
+"keep Tor Browser open in the background while you're using OnionShare."
+msgstr ""
+
+#: ../../source/tor.rst:21
+msgid "Using a system Tor in Windows"
+msgstr ""
+
+#: ../../source/tor.rst:23
+msgid ""
+"This is fairly advanced. You'll need to know how edit plaintext files and"
+" do stuff as an administrator."
+msgstr ""
+
+#: ../../source/tor.rst:25
+msgid ""
+"Download the Tor Windows Expert Bundle, which you can get `from here "
+"<https://www.torproject.org/download/tor/>`_. Extract the zip file and "
+"copy the extracted folder to ``C:\\Program Files (x86)\\``, and rename "
+"the folder to ``tor-win32``, so that inside that folder is the ``Data`` "
+"and ``Tor`` folders."
+msgstr ""
+
+#: ../../source/tor.rst:27
+msgid ""
+"Make up a control port password. I'm going to use ``comprised stumble "
+"rummage work avenging construct volatile`` as my password. Now open a "
+"command prompt as an administrator, and use ``tor.exe --hash-password`` "
+"to generate a hash of your password. For example::"
+msgstr ""
+
+#: ../../source/tor.rst:32
+msgid ""
+"The hashed password output is displayed after some warnings (which you "
+"can ignore). In my case, it was "
+"``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``."
+msgstr ""
+
+#: ../../source/tor.rst:34
+msgid ""
+"Now create a new text file at ``C:\\Program Files (x86)\\tor-"
+"win32\\torrc`` and put this in it, replacing the "
+"``HashedControlPassword`` with the one you just generated::"
+msgstr ""
+
+#: ../../source/tor.rst:39
+msgid ""
+"In your administrator command prompt, install tor as a service using the "
+"appropriate ``torrc`` file you just created (see `here "
+"<https://2019.www.torproject.org/docs/faq.html.en#NTService>`_ for more "
+"information on doing this). Like this::"
+msgstr ""
+
+#: ../../source/tor.rst:43
+msgid "You're now running a system Tor in Windows!"
+msgstr ""
+
+#: ../../source/tor.rst:45
+msgid ""
+"Open OnionShare. Click the Settings icon. Under \"How should OnionShare "
+"connect to Tor?\" choose \"Connect using control port\", and set the "
+"control port host to ``127.0.0.1`` and the port to ``9051``. Under \"Tor "
+"authentication options\" choose \"Password\" and set the password to your"
+" password, in my case ``comprised stumble rummage work avenging construct"
+" volatile``. Click the \"Test Settings\" button. If all goes well, you "
+"should see successfully connected to tor."
+msgstr ""
+
+#: ../../source/tor.rst:48
+msgid "Using a system Tor in Mac OS X"
+msgstr ""
+
+#: ../../source/tor.rst:50
+msgid ""
+"First, install `Homebrew <http://brew.sh/>`_ if you don't already have "
+"it. Then, install Tor::"
+msgstr ""
+
+#: ../../source/tor.rst:54
+msgid "Now configure Tor to allow connections from OnionShare::"
+msgstr ""
+
+#: ../../source/tor.rst:61
+msgid "And start the system Tor service::"
+msgstr ""
+
+#: ../../source/tor.rst:65
+msgid ""
+"Open OnionShare. Click the Settings icon. Under \"How should OnionShare "
+"connect to Tor?\" choose \"Connect using socket file\", and set the "
+"socket file to be ``/usr/local/var/run/tor/control.socket``. Under \"Tor "
+"authentication options\" choose \"No authentication, or cookie "
+"authentication\". Click the \"Test Settings\" button. If all goes well, "
+"you should see successfully connected to tor."
+msgstr ""
+
+#: ../../source/tor.rst:68
+msgid "Using a system Tor in Linux"
+msgstr ""
+
+#: ../../source/tor.rst:70
+msgid ""
+"First, install the tor package. If you're using Debian, Ubuntu, or a "
+"similar Linux distro, I recommend you use Tor Project's `official "
+"repository <https://2019.www.torproject.org/docs/debian.html.en>`_. For "
+"example, in Ubuntu 20.04::"
+msgstr ""
+
+#: ../../source/tor.rst:78
+msgid ""
+"Next, add your user to the group that runs the Tor process (in the case "
+"of Debian and Ubuntu, ``debian-tor``) and configure OnionShare to connect"
+" to your system Tor's control socket file."
+msgstr ""
+
+#: ../../source/tor.rst:80
+msgid ""
+"Add your user to the ``debian-tor`` group by running this command "
+"(replace ``username`` with your actual username)::"
+msgstr ""
+
+#: ../../source/tor.rst:84
+msgid ""
+"Reboot your computer. After it boots up again, open OnionShare. Click the"
+" Settings icon. Under \"How should OnionShare connect to Tor?\" choose "
+"\"Connect using socket file\", and set the socket file to be "
+"``/var/run/tor/control``. Under \"Tor authentication options\" choose "
+"\"No authentication, or cookie authentication\". Click the \"Test "
+"Settings\" button. If all goes well, you should see successfully connect "
+"to Tor."
+msgstr ""
+
+#: ../../source/tor.rst:87
+msgid "Using Tor bridges"
+msgstr ""
+
+#: ../../source/tor.rst:89
+msgid ""
+"If your access to the internet is censored, you can configure OnionShare "
+"to connect to the Tor network using `Tor bridges "
+"<https://2019.www.torproject.org/docs/bridges.html.en>`_. If OnionShare "
+"successfully connects to Tor, you don't need to use a bridge."
+msgstr ""
+
+#: ../../source/tor.rst:91
+msgid "To configure bridges, open OnionShare settings."
+msgstr ""
+
+#: ../../source/tor.rst:93
+msgid ""
+"You can use the built-in obfs4 pluggable transports, the built-in "
+"meek_lite (Azure) pluggable transports, or custom bridges, which you can "
+"obtain from Tor's `BridgeDB <https://bridges.torproject.org/>`_. If you "
+"need to use a bridge, you should try the built-in obfs4 ones first."
+msgstr ""
+
diff --git a/docs/source/locale/ca/LC_MESSAGES/advanced.po b/docs/source/locale/ca/LC_MESSAGES/advanced.po
new file mode 100644
index 00000000..0b9fd78c
--- /dev/null
+++ b/docs/source/locale/ca/LC_MESSAGES/advanced.po
@@ -0,0 +1,224 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/advanced.rst:2
+msgid "Advanced usage"
+msgstr ""
+
+#: ../../source/advanced.rst:7
+msgid "Save tabs"
+msgstr ""
+
+#: ../../source/advanced.rst:9
+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. "
+"But sometimes you might want an OnionShare service to be persistent. For "
+"example, this would be useful if you want to host a website that can keep"
+" the same URL even if you reboot your computer."
+msgstr ""
+
+#: ../../source/advanced.rst:11
+msgid ""
+"To make any tab persistent, check the \"Save this tab, and automatically "
+"open it when I open OnionShare\" box before starting the server. When a "
+"tab is saved a purple pin icon appears to the left of its server status."
+msgstr ""
+
+#: ../../source/advanced.rst:15
+msgid ""
+"When you quit OnionShare and then open it again, your saved tabs will "
+"start out open. You'll have to manually start each service, but when you "
+"do they will start with the same OnionShare address, and with the same "
+"password."
+msgstr ""
+
+#: ../../source/advanced.rst:17
+msgid ""
+"If you save a tab, a copy of that tab's onion service secret key will be "
+"stored on your computer with your OnionShare settings."
+msgstr ""
+
+#: ../../source/advanced.rst:22
+msgid "Disable passwords"
+msgstr ""
+
+#: ../../source/advanced.rst:24
+msgid ""
+"By default, all OnionShare services are protected with the username "
+"`onionshare` and a randomly-generated password. If someone makes 20 wrong"
+" guesses of the password, your onion service is automatically stopped to "
+"prevent a brute force attack against the OnionShare service."
+msgstr ""
+
+#: ../../source/advanced.rst:26
+msgid ""
+"But sometimes you might want your OnionShare service to be accessible to "
+"the public. For example, if you want to set up an OnionShare receive "
+"service so the public can securely and anonymously send you files. In "
+"this case, it's better to disable the password altogether. If you don't "
+"do this, someone can force your server to stop just by making 20 wrong "
+"guesses of your password, even if they know the correct password."
+msgstr ""
+
+#: ../../source/advanced.rst:28
+msgid ""
+"To disable the password for any tab, just check the \"Don't use a "
+"password\" box before starting the server. Then the server will be public"
+" and won't have a password."
+msgstr ""
+
+#: ../../source/advanced.rst:31
+msgid "Scheduled times"
+msgstr ""
+
+#: ../../source/advanced.rst:33
+msgid ""
+"OnionShare supports scheduling exactly when a service should start and "
+"stop. Before starting 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 desired dates and times."
+msgstr ""
+
+#: ../../source/advanced.rst:35
+msgid ""
+"If you scheduled a service to start in the future, when you click the "
+"start button you will see a timer counting down until it will start. If "
+"you scheduled it to stop in the future, after it's started you will see a"
+" timer counting down to when it will stop automatically."
+msgstr ""
+
+#: ../../source/advanced.rst:37
+msgid ""
+"**Scheduling an OnionShare service to automatically start can be used as "
+"a dead man's switch**, where your service will be made public at a given "
+"time in the future if anything happens to you. If nothing happens to you,"
+" you can cancel the service before it's scheduled to start."
+msgstr ""
+
+#: ../../source/advanced.rst:41
+msgid ""
+"**Scheduling an OnionShare service to automatically stop can be useful to"
+" limit exposure**, like if you want to share secret documents while "
+"making sure they're not available on the internet for more than a few "
+"days."
+msgstr ""
+
+#: ../../source/advanced.rst:46
+msgid "Command line interface"
+msgstr ""
+
+#: ../../source/advanced.rst:48
+msgid ""
+"In addition to its graphical interface, OnionShare has a command line "
+"interface."
+msgstr ""
+
+#: ../../source/advanced.rst:51
+msgid "Linux"
+msgstr ""
+
+#: ../../source/advanced.rst:53
+msgid ""
+"If you installed OnionShare using the Flatpak package, unfortunately the "
+"command line interface isn't supported."
+msgstr ""
+
+#: ../../source/advanced.rst:55
+msgid ""
+"If you installed OnionShare using an operating system package, you can "
+"just run ``onionshare`` from the terminal."
+msgstr ""
+
+#: ../../source/advanced.rst:58
+msgid "macOS"
+msgstr ""
+
+#: ../../source/advanced.rst:60
+msgid "Make a symbolic link to the OnionShare command line binary line this::"
+msgstr ""
+
+#: ../../source/advanced.rst:64
+msgid "Now you can run ``onionshare`` from the terminal."
+msgstr ""
+
+#: ../../source/advanced.rst:67
+msgid "Windows"
+msgstr ""
+
+#: ../../source/advanced.rst:69
+msgid "The command line interface isn't supported in Windows."
+msgstr ""
+
+#: ../../source/advanced.rst:71
+msgid ""
+"If you really want to use it anyway, you can set up a Windows development"
+" environment (see :ref:`starting_development`) and then run this in a "
+"command prompt::"
+msgstr ""
+
+#: ../../source/advanced.rst:76
+msgid "Usage"
+msgstr ""
+
+#: ../../source/advanced.rst:78
+msgid "You can see command line documentation by running ``onionshare --help``::"
+msgstr ""
+
+#: ../../source/advanced.rst:134
+msgid "Legacy addresses"
+msgstr ""
+
+#: ../../source/advanced.rst:136
+msgid ""
+"OnionShare uses v3 Tor onion services by default. These are modern onion "
+"addresses that have 56 characters, for example::"
+msgstr ""
+
+#: ../../source/advanced.rst:140
+msgid ""
+"But it still has support for v2 onion addresses, the old type of onion "
+"addresses that have 16 characters, for example::"
+msgstr ""
+
+#: ../../source/advanced.rst:144
+msgid ""
+"OnionShare calls v2 onion addresses \"legacy addresses\". v3 onion "
+"addresses are more secure, and using legacy addresses is not recommended."
+msgstr ""
+
+#: ../../source/advanced.rst:146
+msgid ""
+"To use legacy addresses, before starting a server click \"Show advanced "
+"settings\" in its tab and check the \"Use a legacy address (v2 onion "
+"service, not recommended)\" box. In legacy mode you can optionally enable"
+" Tor client authentication. Once you start a server in legacy mode you "
+"cannot remove legacy mode in that tab. Instead you must start a separate "
+"service in a separate tab."
+msgstr ""
+
+#: ../../source/advanced.rst:148
+msgid ""
+"Tor Project plans to `completely deprecate v2 onion services "
+"<https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, "
+"2021, and legacy onion services will soon be removed from OnionShare as "
+"well."
+msgstr ""
+
diff --git a/docs/source/locale/ca/LC_MESSAGES/develop.po b/docs/source/locale/ca/LC_MESSAGES/develop.po
new file mode 100644
index 00000000..6e7eb464
--- /dev/null
+++ b/docs/source/locale/ca/LC_MESSAGES/develop.po
@@ -0,0 +1,248 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/develop.rst:2
+msgid "Developing OnionShare"
+msgstr ""
+
+#: ../../source/develop.rst:7
+msgid "Collaborating"
+msgstr ""
+
+#: ../../source/develop.rst:9
+msgid ""
+"OnionShare has an open Keybase team that we use to discuss the project, "
+"including asking questions, sharing ideas and designs, and making plans "
+"for future development. (It's also an easy way to send end-to-end "
+"encrypted direct messages to others in the OnionShare community, like "
+"OnionShare addresses.) To use Keybase, you need to download the `Keybase "
+"app <https://keybase.io/download>`_, make an account, and `join this team"
+" <https://keybase.io/team/onionshare>`_. Within the app, go to Teams, "
+"click \"Join a Team\", and type \"onionshare\"."
+msgstr ""
+
+#: ../../source/develop.rst:11
+msgid ""
+"OnionShare also has a `mailing list "
+"<https://lists.riseup.net/www/subscribe/onionshare-dev>`_ for developers "
+"and and designers to discuss the project."
+msgstr ""
+
+#: ../../source/develop.rst:14
+msgid "Contributing code"
+msgstr ""
+
+#: ../../source/develop.rst:16
+msgid ""
+"OnionShare source code is in this git repository: "
+"https://github.com/micahflee/onionshare"
+msgstr ""
+
+#: ../../source/develop.rst:18
+msgid ""
+"If you'd like to contribute code to OnionShare, it helps to join the "
+"Keybase team and ask questions about what you're thinking of working on. "
+"You should also review all of the `open issues "
+"<https://github.com/micahflee/onionshare/issues>`_ on GitHub to see if "
+"there are any that you'd like to develop."
+msgstr ""
+
+#: ../../source/develop.rst:20
+msgid ""
+"When you're ready to contribute code, open a pull request in the GitHub "
+"repository and one of the project maintainers will review it and possible"
+" ask questions, request changes, reject it, or merge it into the project."
+msgstr ""
+
+#: ../../source/develop.rst:25
+msgid "Starting development"
+msgstr ""
+
+#: ../../source/develop.rst:27
+msgid ""
+"OnionShare is developed in Python. To get started, you should close the "
+"git repository at https://github.com/micahflee/onionshare/ and then "
+"consult the ``BUILD.md`` file."
+msgstr ""
+
+#: ../../source/develop.rst:29
+msgid "That file contains the technical instructions and commands necessary:"
+msgstr ""
+
+#: ../../source/develop.rst:31
+msgid "Install dependencies for your platform"
+msgstr ""
+
+#: ../../source/develop.rst:32
+msgid "Run OnionShare from the source tree, without building a package"
+msgstr ""
+
+#: ../../source/develop.rst:33
+msgid "Building packages"
+msgstr ""
+
+#: ../../source/develop.rst:34
+msgid "Making a release of OnionShare"
+msgstr ""
+
+#: ../../source/develop.rst:37
+msgid "Debugging tips"
+msgstr ""
+
+#: ../../source/develop.rst:40
+msgid "Verbose mode"
+msgstr ""
+
+#: ../../source/develop.rst:42
+msgid ""
+"When developing, it's convenient to run OnionShare from a terminal and "
+"add the ``--verbose`` (or ``-v``) flag to the command. This will print a "
+"lot of helpful messages to the terminal such as when certain objects are "
+"initialized, when events occur (like buttons clicked, settings saved or "
+"reloaded), and other debug information. For example::"
+msgstr ""
+
+#: ../../source/develop.rst:111
+msgid ""
+"You can add your own debug messages by running the ``Common.log`` method "
+"from ``onionshare/common.py``. For example::"
+msgstr ""
+
+#: ../../source/develop.rst:115
+msgid ""
+"This can be useful when learning the chain of events that occur when "
+"using the application or the value of certain variables before and after "
+"they are manipulated."
+msgstr ""
+
+#: ../../source/develop.rst:118
+msgid "Local only"
+msgstr ""
+
+#: ../../source/develop.rst:120
+msgid ""
+"Tor is slow, and it's often convenient to skip starting onion services "
+"altogether during development. You can do this with the ``--local-only`` "
+"flag. For example::"
+msgstr ""
+
+#: ../../source/develop.rst:157
+msgid ""
+"In this case, you load the URL ``http://onionshare:eject-"
+"snack@127.0.0.1:17614`` in a normal web browser like Firefox, instead of "
+"using Tor Browser."
+msgstr ""
+
+#: ../../source/develop.rst:160
+msgid "Debugging in Windows"
+msgstr ""
+
+#: ../../source/develop.rst:162
+msgid ""
+"If you want to obtain debug output from the ``onionshare-gui.exe`` in "
+"Windows, you will need to edit ``install\\pyinstaller.spec`` and change "
+"``console=False`` to ``console=True``."
+msgstr ""
+
+#: ../../source/develop.rst:164
+msgid ""
+"Then rebuild the EXE with ``install\\build_exe.bat`` (you may need to "
+"comment out the ``signtool`` commands in the ``build_exe.bat`` and the "
+"``onionshare.nsi`` files, as per the ``BUILD.md`` instructions)."
+msgstr ""
+
+#: ../../source/develop.rst:166
+msgid ""
+"After this, you can run ``onionshare-gui.exe -v`` from a command prompt "
+"to see the debug output."
+msgstr ""
+
+#: ../../source/develop.rst:169
+msgid "Contributing translations"
+msgstr ""
+
+#: ../../source/develop.rst:171
+msgid ""
+"Most of the OnionShare is translatable. You can help make it easier to "
+"use and more familiar and welcoming for people around the globe. The "
+"Localization Lab has some `documentation about translating OnionShare "
+"<https://wiki.localizationlab.org/index.php/OnionShare>`_."
+msgstr ""
+
+#: ../../source/develop.rst:173
+msgid ""
+"OnionShare uses Weblate to keep track of translations. You can view the "
+"OnionShare project here: https://hosted.weblate.org/projects/onionshare/"
+msgstr ""
+
+#: ../../source/develop.rst:175
+msgid ""
+"To help translate, make a Hosted Weblate account and start contributing "
+"to that project."
+msgstr ""
+
+#: ../../source/develop.rst:178
+msgid "Suggestions for original English strings"
+msgstr ""
+
+#: ../../source/develop.rst:180
+msgid ""
+"Sometimes the original English strings could be improved, making them "
+"easier to translate into other languages."
+msgstr ""
+
+#: ../../source/develop.rst:182
+msgid ""
+"If you have suggestions for a better English string, please open a GitHub"
+" issue rather than commenting in Weblate. This ensures the upstream "
+"developers will definitely see the suggestion, and can potentially modify"
+" the string via the usual code review processes."
+msgstr ""
+
+#: ../../source/develop.rst:185
+msgid "Status of translations"
+msgstr ""
+
+#: ../../source/develop.rst:186
+msgid ""
+"Here is the current translation status. If you want start a translation "
+"in a language not to be found here, please write us to the mailing list: "
+"onionshare-dev@lists.riseup.net"
+msgstr ""
+
+#: ../../source/develop.rst:191
+msgid "Translate the .desktop file"
+msgstr ""
+
+#: ../../source/develop.rst:193
+msgid "You can also translate the ``install/onionshare.desktop`` file."
+msgstr ""
+
+#: ../../source/develop.rst:195
+msgid ""
+"Duplicate the line that begins with ``Comment=``. Add the language code "
+"to the new line so it becomes ``Comment[lang]=`` (lang should be your "
+"language). You can see what language codes are used for translation by "
+"looking at the ``share/locale/*.json`` filenames::"
+msgstr ""
+
+#: ../../source/develop.rst:200
+msgid "Do the same for other untranslated lines."
+msgstr ""
+
diff --git a/docs/source/locale/ca/LC_MESSAGES/features.po b/docs/source/locale/ca/LC_MESSAGES/features.po
new file mode 100644
index 00000000..29841dd8
--- /dev/null
+++ b/docs/source/locale/ca/LC_MESSAGES/features.po
@@ -0,0 +1,382 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/features.rst:4
+msgid "How OnionShare works"
+msgstr ""
+
+#: ../../source/features.rst:6
+msgid ""
+"OnionShare works by starting web servers locally on your own computer and"
+" making them accessible to other people as `Tor "
+"<https://www.torproject.org/>`_ `onion services "
+"<https://community.torproject.org/onion-services/>`_."
+msgstr ""
+
+#: ../../source/features.rst:8
+msgid ""
+"By default, OnionShare web addresses are protected with a random "
+"password. A typical OnionShare address might look something like this::"
+msgstr ""
+
+#: ../../source/features.rst:12
+msgid ""
+"You're responsible for securely sharing that URL using a communication "
+"channel of your choice like in an encrypted chat message, or using "
+"something less secure like a Twitter or Facebook message, depending on "
+"your `threat model <https://ssd.eff.org/en/module/your-security-plan>`_."
+msgstr ""
+
+#: ../../source/features.rst:14
+msgid ""
+"The people who you send the URL to must then copy and paste it into `Tor "
+"Browser <https://www.torproject.org/>`_ to access the OnionShare service."
+msgstr ""
+
+#: ../../source/features.rst:16
+msgid ""
+"With OnionShare, *your own computer is the web server*. If you run "
+"OnionShare on your laptop to send someone files, and then suspend your "
+"laptop before the files have been downloaded, the service will not be "
+"available until your laptop is unsuspended and connected to the internet "
+"again. OnionShare works best when working with people in real-time."
+msgstr ""
+
+#: ../../source/features.rst:18
+msgid ""
+"Because your own computer is the web server, *no third party can access "
+"anything that happens in OnionShare*, not even the developers of "
+"OnionShare. It's completely private. And because OnionShare is based on "
+"Tor onion services too, it also protects your anonymity. See the "
+":doc:`security design </security>` for more information."
+msgstr ""
+
+#: ../../source/features.rst:21
+msgid "Share Files"
+msgstr ""
+
+#: ../../source/features.rst:23
+msgid ""
+"You can use OnionShare to securely and anonymously send files and folders"
+" to people. Just open a share tab, drag in the files and folders you wish"
+" to share, and click \"Start sharing\"."
+msgstr ""
+
+#: ../../source/features.rst:27 ../../source/features.rst:91
+msgid ""
+"After you add files, you'll see some settings. Make sure you choose the "
+"setting you're interested in first before you start sharing."
+msgstr ""
+
+#: ../../source/features.rst:31
+msgid ""
+"By default, as soon as someone finishes downloading your files, "
+"OnionShare will automatically stop the server, completely removing the "
+"website from the internet. If you want to allow multiple people to "
+"download these files, uncheck the \"Stop sharing after files have been "
+"sent (uncheck to allow downloading individual files)\" box."
+msgstr ""
+
+#: ../../source/features.rst:33
+msgid ""
+"Also, if you uncheck this box, people will be able to download individual"
+" files that you share rather than a single compressed version of all of "
+"the files."
+msgstr ""
+
+#: ../../source/features.rst:35
+msgid ""
+"When you're ready to share, click the \"Start sharing\" button. You can "
+"always click \"Stop sharing\", or quit OnionShare, to immediate take the "
+"website down. You can also click the up arrow icon in the top-right "
+"corner to show the history and progress of people downloading files from "
+"you."
+msgstr ""
+
+#: ../../source/features.rst:39
+msgid ""
+"Now that you have a website that's sharing files, copy the address and "
+"send it to the person you want to receive the files. If the files need to"
+" stay secure, you should use an encrypted messaging app."
+msgstr ""
+
+#: ../../source/features.rst:41
+msgid ""
+"That person then must load the address in Tor Browser. After logging in "
+"with the random password that's included in the web address, they will be"
+" able to download the files directly from your computer by clicking the "
+"\"Download Files\" link in the corner."
+msgstr ""
+
+#: ../../source/features.rst:46
+msgid "Receive Files"
+msgstr ""
+
+#: ../../source/features.rst:48
+msgid ""
+"You can use OnionShare to let people anonymously upload files directly to"
+" your computer, essentially turning it into an anonymous dropbox. Open a "
+"receive tab, choose where you want files to get downloaded and other "
+"settings, and then click \"Start Receive Mode\"."
+msgstr ""
+
+#: ../../source/features.rst:52
+msgid ""
+"This will start the OnionShare service. Anyone that loads this address in"
+" Tor Browser will be able to upload files to your computer."
+msgstr ""
+
+#: ../../source/features.rst:56
+msgid ""
+"You can also click the down arrow icon in the top-right corner to show "
+"the history and progress of people sending files to you."
+msgstr ""
+
+#: ../../source/features.rst:58
+msgid "Here is what it looks like for someone sending you files."
+msgstr ""
+
+#: ../../source/features.rst:62
+msgid ""
+"When someone uploads files to your receive service, by default they get "
+"saved to a folder called ``OnionShare`` in your home folder on your "
+"computer, and they get automatically organized into separate subfolders "
+"based on the time that the files get uploaded."
+msgstr ""
+
+#: ../../source/features.rst:64
+msgid ""
+"Setting up an OnionShare receiving service is useful for journalists and "
+"others that need to securely accept documents from anonymous sources. "
+"When used in this way, OnionShare is sort of like a lightweight, simpler,"
+" not quite as secure version of `SecureDrop <https://securedrop.org/>`_, "
+"the whistleblower submission system."
+msgstr ""
+
+#: ../../source/features.rst:67
+msgid "Use at your own risk"
+msgstr ""
+
+#: ../../source/features.rst:69
+msgid ""
+"Just like with malicious email attachments, it's possible that someone "
+"could try to hack your computer by uploading a malicious file to your "
+"OnionShare service. OnionShare does not add any safety mechanisms to "
+"protect your system from malicious files, so use at your own risk."
+msgstr ""
+
+#: ../../source/features.rst:71
+msgid ""
+"If you receive an Office document or a PDF through OnionShare, you can "
+"convert these documents into PDFs that you know are safe to open using "
+"`Dangerzone <https://dangerzone.rocks/>`_. You can also protect yourself "
+"when opening untrusted documents by opening them in `Tails "
+"<https://tails.boum.org/>`_ or in a `Qubes <https://qubes-os.org/>`_ "
+"disposable VM."
+msgstr ""
+
+#: ../../source/features.rst:74
+msgid "Tips for running a receive service"
+msgstr ""
+
+#: ../../source/features.rst:76
+msgid ""
+"If you want to host your own anonymous dropbox using OnionShare, it's "
+"recommended that you do it on a separate, dedicated computer that's "
+"always powered on and connected to the internet, and not on the one you "
+"use on a regular basis."
+msgstr ""
+
+#: ../../source/features.rst:78
+msgid ""
+"If you intend on advertising the OnionShare address on your website or "
+"social media profiles, then you should save the tab (see "
+":ref:`save_tabs`) and run it as a public service (see "
+":ref:`disable_passwords`)."
+msgstr ""
+
+#: ../../source/features.rst:81
+msgid "Host a Website"
+msgstr ""
+
+#: ../../source/features.rst:83
+msgid ""
+"You can use OnionShare to host a static HTML website with just a click. "
+"Just open a website tab, drag in the files and folders that make up the "
+"static website, and click when you're ready click \"Start sharing\"."
+msgstr ""
+
+#: ../../source/features.rst:87
+msgid ""
+"If you add an ``index.html`` file, when someone loads your website it "
+"will render this page. 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:89
+msgid ""
+"If you don't have an ``index.html`` file, then it will show a directory "
+"listing instead, and people who load it can look through the files and "
+"download them."
+msgstr ""
+
+#: ../../source/features.rst:96
+msgid "Content Security Policy"
+msgstr ""
+
+#: ../../source/features.rst:98
+msgid ""
+"By default OnionShare will help secure your website by setting a strict "
+"`Content Security Police "
+"<https://en.wikipedia.org/wiki/Content_Security_Policy>`_ header. However"
+" this will prevent third-party content from loading inside the web page."
+msgstr ""
+
+#: ../../source/features.rst:100
+msgid ""
+"If you want to load content from third-party websites, like assets or "
+"JavaScript libraries from CDNs, then you must check the \"Disable Content"
+" Security Policy header (allows your website to use third-party "
+"resources)\" box before starting the service."
+msgstr ""
+
+#: ../../source/features.rst:103
+msgid "Tips for running a website service"
+msgstr ""
+
+#: ../../source/features.rst:105
+msgid ""
+"If you want to host a long-term website using OnionShare (that isn't just"
+" to quickly show someone something), it's recommended that you do it on a"
+" separate, dedicated computer that's always powered on and connected to "
+"the internet, and not on the one you use on a regular basis. You should "
+"also save the tab (see :ref:`save_tabs`) so that you can resume the "
+"website with the same address if you close OnionShare and re-open it "
+"later."
+msgstr ""
+
+#: ../../source/features.rst:107
+msgid ""
+"If your website is intended to be viewed by the public, you should run it"
+" as a public service (see :ref:`disable_passwords`)."
+msgstr ""
+
+#: ../../source/features.rst:110
+msgid "Chat Anonymously"
+msgstr ""
+
+#: ../../source/features.rst:112
+msgid ""
+"You can use OnionShare to set up a completely anonymous, secure chat room"
+" that doesn't log anything or leave any traces. Just open a chat tab and "
+"click \"Start chat server\"."
+msgstr ""
+
+#: ../../source/features.rst:116
+msgid ""
+"After you start the server, copy the OnionShare address and send it to "
+"the people who will join this anonymous chat room. If it's important to "
+"limit exactly who can join, you should use an encrypted messaging app to "
+"send the OnionShare address."
+msgstr ""
+
+#: ../../source/features.rst:120
+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 set their security level to Standard or Safer instead of"
+" Safest."
+msgstr ""
+
+#: ../../source/features.rst:122
+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 enter. No chat history will get displayed at all, even if "
+"others were already chatting in the room, because the chat history isn't "
+"saved anywhere."
+msgstr ""
+
+#: ../../source/features.rst:126
+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:128
+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, then you can be reasonably confident that the people who join "
+"the chat room are your friends."
+msgstr ""
+
+#: ../../source/features.rst:131
+msgid "How is this useful?"
+msgstr ""
+
+#: ../../source/features.rst:133
+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:135
+msgid ""
+"If you send a message to a Signal group, for example, a copy of your "
+"message ends up on each device (the phones and computers, if they set up "
+"Signal Desktop) of each member of the group. Even if disappearing "
+"messages is enabled, it's hard to confirm that all copies of the messages"
+" were 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 this isn't a problem."
+msgstr ""
+
+#: ../../source/features.rst:137
+msgid ""
+"OnionShare chat rooms can also be useful for anonymous people wanting to "
+"chat 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:140
+msgid "How does the encryption work?"
+msgstr ""
+
+#: ../../source/features.rst:142
+msgid ""
+"Because OnionShare relies on Tor onion services, connections between 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:144
+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/source/locale/ca/LC_MESSAGES/help.po b/docs/source/locale/ca/LC_MESSAGES/help.po
new file mode 100644
index 00000000..d965eb13
--- /dev/null
+++ b/docs/source/locale/ca/LC_MESSAGES/help.po
@@ -0,0 +1,72 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/help.rst:2
+msgid "Getting Help"
+msgstr ""
+
+#: ../../source/help.rst:4
+msgid "If you need help with OnionShare, please follow the instructions below."
+msgstr ""
+
+#: ../../source/help.rst:7
+msgid "Read this website"
+msgstr ""
+
+#: ../../source/help.rst:9
+msgid ""
+"This website is full of instructions on how to use OnionShare. Look "
+"through all of the sections first to see if it answers your questions."
+msgstr ""
+
+#: ../../source/help.rst:12
+msgid "Check the GitHub issues"
+msgstr ""
+
+#: ../../source/help.rst:14
+msgid ""
+"If you can't find a solution in this website, please check the `GitHub "
+"issues <https://github.com/micahflee/onionshare/issues>`_. It's possible "
+"that someone else has encountered the same problem and has either raised "
+"it with the developers, or maybe even posted a solution."
+msgstr ""
+
+#: ../../source/help.rst:17
+msgid "Submit an issue yourself"
+msgstr ""
+
+#: ../../source/help.rst:19
+msgid ""
+"If you can't find a solution to your problem, or you wish to ask a "
+"question or suggest a new feature, please `submit an issue "
+"<https://github.com/micahflee/onionshare/issues/new>`_. This requires "
+"`creating an GitHub account <https://help.github.com/articles/signing-up-"
+"for-a-new-github-account/>`_."
+msgstr ""
+
+#: ../../source/help.rst:22
+msgid "Join our Keybase team"
+msgstr ""
+
+#: ../../source/help.rst:24
+msgid ""
+"See :ref:`collaborating` for instructions on how to join our Keybase team"
+" that we use to discuss the project."
+msgstr ""
+
diff --git a/docs/source/locale/ca/LC_MESSAGES/index.po b/docs/source/locale/ca/LC_MESSAGES/index.po
new file mode 100644
index 00000000..2ad2653c
--- /dev/null
+++ b/docs/source/locale/ca/LC_MESSAGES/index.po
@@ -0,0 +1,29 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:46-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/index.rst:2
+msgid "OnionShare's documentation"
+msgstr ""
+
+#: ../../source/index.rst:6
+msgid ""
+"OnionShare is an open source tool that lets you securely and anonymously "
+"share files, host websites, and chat with friends using the Tor network."
+msgstr ""
+
diff --git a/docs/source/locale/ca/LC_MESSAGES/install.po b/docs/source/locale/ca/LC_MESSAGES/install.po
new file mode 100644
index 00000000..a2f5b321
--- /dev/null
+++ b/docs/source/locale/ca/LC_MESSAGES/install.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/install.rst:2
+msgid "Installation"
+msgstr ""
+
+#: ../../source/install.rst:5
+msgid "Install on Windows or macOS"
+msgstr ""
+
+#: ../../source/install.rst:7
+msgid ""
+"You can download OnionShare for Windows and macOS from the `OnionShare "
+"website <https://onionshare.org/>`_."
+msgstr ""
+
+#: ../../source/install.rst:9
+msgid "For added security, see :ref:`verifying_sigs`."
+msgstr ""
+
+#: ../../source/install.rst:14
+msgid "Install in Linux with Flatpak"
+msgstr ""
+
+#: ../../source/install.rst:16
+msgid ""
+"There are various ways to install OnionShare for Linux, but the "
+"recommended way is to use the Flatpak package. Flatpak ensures that "
+"you'll always use the most latest dependencies and run OnionShare inside "
+"of a sandbox."
+msgstr ""
+
+#: ../../source/install.rst:18
+msgid ""
+"Make sure you have ``flatpak`` installed and the Flathub repository added"
+" by following `these instructions <https://flatpak.org/setup/>`_ for your"
+" Linux distribution."
+msgstr ""
+
+#: ../../source/install.rst:20
+msgid ""
+"Then install OnionShare from Flathub by following `the instructions here "
+"<https://flathub.org/apps/details/org.onionshare.OnionShare>`_."
+msgstr ""
+
+#: ../../source/install.rst:25
+msgid "Verifying PGP signatures"
+msgstr ""
+
+#: ../../source/install.rst:27
+msgid ""
+"You can verify that the Windows, macOS, or source package you download is"
+" legitimate and hasn't been tampered with by verifying its PGP signature."
+" For Windows and macOS, this step is optional and provides defense in "
+"depth: the installers also include their operating system-specific "
+"signatures, and you can just rely on those alone if you'd like."
+msgstr ""
+
+#: ../../source/install.rst:30
+msgid "Signing key"
+msgstr ""
+
+#: ../../source/install.rst:32
+msgid ""
+"Windows, macOS, and source packaged are signed by Micah Lee, the core "
+"developer, using his PGP public key with fingerprint "
+"``927F419D7EC82C2F149C1BD1403C2657CD994F73``. You can download Micah's "
+"key `from the keys.openpgp.org keyserver <https://keys.openpgp.org/vks/v1"
+"/by-fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
+msgstr ""
+
+#: ../../source/install.rst:34
+msgid ""
+"In order to verify signatures, you must have GnuPG installed. For macOS "
+"you probably want `GPGTools <https://gpgtools.org/>`_, and for Windows "
+"you probably want `Gpg4win <https://www.gpg4win.org/>`_."
+msgstr ""
+
+#: ../../source/install.rst:37
+msgid "Signatures"
+msgstr ""
+
+#: ../../source/install.rst:39
+msgid ""
+"You can find the signatures (``.asc`` files), as well as Windows, macOS, "
+"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 <https://github.com/micahflee/onionshare/releases>`_."
+msgstr ""
+
+#: ../../source/install.rst:42
+msgid "Verifying"
+msgstr ""
+
+#: ../../source/install.rst:44
+msgid ""
+"Once you have imported Micah's public key into your GnuPG keychain, "
+"downloaded the binary, and downloaded the ``.asc`` signature, you can "
+"verify the binary for macOS in terminal like this::"
+msgstr ""
+
+#: ../../source/install.rst:48
+msgid "Or for Windows in a command prompt like this::"
+msgstr ""
+
+#: ../../source/install.rst:52
+msgid "An expected output might look like this::"
+msgstr ""
+
+#: ../../source/install.rst:64
+msgid ""
+"If you don't see 'Good signature from', then there might be a problem "
+"with the integrity of the file (malicious or otherwise), and you perhaps "
+"should not install the package. (The WARNING shown above, is not a "
+"problem with the package: it only means you have not defined any level of"
+" 'trust' regarding Micah's PGP key itself.)"
+msgstr ""
+
+#: ../../source/install.rst:66
+msgid ""
+"If you want to learn more about verifying PGP signatures, guides for "
+"`Qubes OS <https://www.qubes-os.org/security/verifying-signatures/>`_ and"
+" the `Tor Project <https://2019.www.torproject.org/docs/verifying-"
+"signatures.html.en>`_ may be helpful."
+msgstr ""
+
diff --git a/docs/source/locale/ca/LC_MESSAGES/security.po b/docs/source/locale/ca/LC_MESSAGES/security.po
new file mode 100644
index 00000000..13d11a17
--- /dev/null
+++ b/docs/source/locale/ca/LC_MESSAGES/security.po
@@ -0,0 +1,114 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/security.rst:2
+msgid "Security design"
+msgstr ""
+
+#: ../../source/security.rst:4
+msgid ""
+"First read :ref:`how_it_works` to understand the basics of how OnionShare"
+" works."
+msgstr ""
+
+#: ../../source/security.rst:6
+msgid "Like all software, OnionShare may contain bugs or vulnerabilities."
+msgstr ""
+
+#: ../../source/security.rst:9
+msgid "What OnionShare protects against"
+msgstr ""
+
+#: ../../source/security.rst:11
+msgid ""
+"**Third parties don't have access to anything that happens in "
+"OnionShare.** When you use OnionShare, you host services directly on your"
+" computer. For example, when you share files with OnionShare, you don't "
+"upload these files to any server, and when you start an OnionShare chat "
+"room, your computer is the chat room server itself. Traditional ways of "
+"sharing files or setting up websites and chat rooms require trusting a "
+"service with access to your data."
+msgstr ""
+
+#: ../../source/security.rst:13
+msgid ""
+"**Network eavesdroppers can't spy on anything that happens in OnionShare "
+"in transit.** Because connections between Tor onion services and Tor "
+"Browser are end-to-end encrypted, no network attackers can eavesdrop on "
+"what happens in an OnionShare service. If the eavesdropper is positioned "
+"on the OnionShare user's end, the Tor Browser user's end, or is a "
+"malicious Tor node, they will only see Tor traffic. If the eavesdropper "
+"is a malicious rendezvous node used to connect Tor Browser with "
+"OnionShare's onion service, the traffic will be encrypted using the onion"
+" service key."
+msgstr ""
+
+#: ../../source/security.rst:15
+msgid ""
+"**Anonymity of OnionShare users are protected by Tor.** OnionShare and "
+"Tor Browser protect the anonymity of the users. As long as the OnionShare"
+" user anonymously communicates the OnionShare address with the Tor "
+"Browser users, the Tor Browser users and eavesdroppers can't learn the "
+"identity of the OnionShare user."
+msgstr ""
+
+#: ../../source/security.rst:17
+msgid ""
+"**If an attacker learns about the onion service, they still can't access "
+"anything.** There have been attacks against the Tor network that can "
+"enumerate onion services. Even if someone discovers the .onion address of"
+" an OnionShare onion service, they can't access it without also knowing "
+"the service's random password (unless, of course, the OnionShare users "
+"chooses to disable the password and make it public). The password is "
+"generated by choosing two random words from a list of 6800 words, meaning"
+" there are 6800^2, or about 46 million possible password. But they can "
+"only make 20 wrong guesses before OnionShare stops the server, preventing"
+" brute force attacks against the password."
+msgstr ""
+
+#: ../../source/security.rst:20
+msgid "What OnionShare doesn't protect against"
+msgstr ""
+
+#: ../../source/security.rst:22
+msgid ""
+"**Communicating the OnionShare address might not be secure.** The "
+"OnionShare user is responsible for securely communicating the OnionShare "
+"address with people. If they send it insecurely (such as through an email"
+" message, and their email is being monitored by an attacker), the "
+"eavesdropper will learn that they're using OnionShare. If the attacker "
+"loads the address in Tor Browser before the legitimate recipient gets to "
+"it, they can access the service. If this risk fits the user's threat "
+"model, they must find a more secure way to communicate the address, such "
+"as in an encrypted email, chat, or voice call. This isn't necessary in "
+"cases where OnionShare is being used for something that isn't secret."
+msgstr ""
+
+#: ../../source/security.rst:24
+msgid ""
+"**Communicating the OnionShare address might not be anonymous.** While "
+"OnionShare and Tor Browser allow for anonymity, if the user wishes to "
+"remain anonymous they must take extra steps to ensure this while "
+"communicating the OnionShare address. For example, they might need to use"
+" Tor to create a new anonymous email or chat account, and only access it "
+"over Tor, to use for sharing the address. This isn't necessary in cases "
+"where there's no need to protect anonymity, such as co-workers who know "
+"each other sharing work documents."
+msgstr ""
+
diff --git a/docs/source/locale/ca/LC_MESSAGES/sphinx.po b/docs/source/locale/ca/LC_MESSAGES/sphinx.po
new file mode 100644
index 00000000..f2cc8ed5
--- /dev/null
+++ b/docs/source/locale/ca/LC_MESSAGES/sphinx.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/_templates/versions.html:10
+msgid "Versions"
+msgstr ""
+
+#: ../../source/_templates/versions.html:18
+msgid "Languages"
+msgstr ""
+
diff --git a/docs/source/locale/ca/LC_MESSAGES/tor.po b/docs/source/locale/ca/LC_MESSAGES/tor.po
new file mode 100644
index 00000000..35edc6e4
--- /dev/null
+++ b/docs/source/locale/ca/LC_MESSAGES/tor.po
@@ -0,0 +1,213 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/tor.rst:2
+msgid "Connecting to Tor"
+msgstr ""
+
+#: ../../source/tor.rst:4
+msgid ""
+"There are several options for how OnionShare should connect to Tor. You "
+"can change them in Settings, which you can get to by clicking the gear "
+"icon in the bottom-right of the window."
+msgstr ""
+
+#: ../../source/tor.rst:9
+msgid "Use Tor that is bundled with OnionShare"
+msgstr ""
+
+#: ../../source/tor.rst:11
+msgid ""
+"This is the default way that OnionShare connects to Tor, and it's also "
+"the simplest and most reliable way. For this reason, it's recommended for"
+" most users."
+msgstr ""
+
+#: ../../source/tor.rst:13
+msgid ""
+"When you open OnionShare, it will launch a Tor process in the background "
+"that's configured specifically for OnionShare to use. This Tor process "
+"won't interfere with other Tor processes on your computer, so you're free"
+" to run Tor Browser or use a system Tor in the background."
+msgstr ""
+
+#: ../../source/tor.rst:16
+msgid "Attempt automatic configuration with Tor Browser"
+msgstr ""
+
+#: ../../source/tor.rst:18
+msgid ""
+"You can configure OnionShare to connect to the Tor that comes with Tor "
+"Browser. First, `download Tor Browser <https://www.torproject.org>`_ here"
+" if you don't already have it. With this setting selected, you need to "
+"keep Tor Browser open in the background while you're using OnionShare."
+msgstr ""
+
+#: ../../source/tor.rst:21
+msgid "Using a system Tor in Windows"
+msgstr ""
+
+#: ../../source/tor.rst:23
+msgid ""
+"This is fairly advanced. You'll need to know how edit plaintext files and"
+" do stuff as an administrator."
+msgstr ""
+
+#: ../../source/tor.rst:25
+msgid ""
+"Download the Tor Windows Expert Bundle, which you can get `from here "
+"<https://www.torproject.org/download/tor/>`_. Extract the zip file and "
+"copy the extracted folder to ``C:\\Program Files (x86)\\``, and rename "
+"the folder to ``tor-win32``, so that inside that folder is the ``Data`` "
+"and ``Tor`` folders."
+msgstr ""
+
+#: ../../source/tor.rst:27
+msgid ""
+"Make up a control port password. I'm going to use ``comprised stumble "
+"rummage work avenging construct volatile`` as my password. Now open a "
+"command prompt as an administrator, and use ``tor.exe --hash-password`` "
+"to generate a hash of your password. For example::"
+msgstr ""
+
+#: ../../source/tor.rst:32
+msgid ""
+"The hashed password output is displayed after some warnings (which you "
+"can ignore). In my case, it was "
+"``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``."
+msgstr ""
+
+#: ../../source/tor.rst:34
+msgid ""
+"Now create a new text file at ``C:\\Program Files (x86)\\tor-"
+"win32\\torrc`` and put this in it, replacing the "
+"``HashedControlPassword`` with the one you just generated::"
+msgstr ""
+
+#: ../../source/tor.rst:39
+msgid ""
+"In your administrator command prompt, install tor as a service using the "
+"appropriate ``torrc`` file you just created (see `here "
+"<https://2019.www.torproject.org/docs/faq.html.en#NTService>`_ for more "
+"information on doing this). Like this::"
+msgstr ""
+
+#: ../../source/tor.rst:43
+msgid "You're now running a system Tor in Windows!"
+msgstr ""
+
+#: ../../source/tor.rst:45
+msgid ""
+"Open OnionShare. Click the Settings icon. Under \"How should OnionShare "
+"connect to Tor?\" choose \"Connect using control port\", and set the "
+"control port host to ``127.0.0.1`` and the port to ``9051``. Under \"Tor "
+"authentication options\" choose \"Password\" and set the password to your"
+" password, in my case ``comprised stumble rummage work avenging construct"
+" volatile``. Click the \"Test Settings\" button. If all goes well, you "
+"should see successfully connected to tor."
+msgstr ""
+
+#: ../../source/tor.rst:48
+msgid "Using a system Tor in Mac OS X"
+msgstr ""
+
+#: ../../source/tor.rst:50
+msgid ""
+"First, install `Homebrew <http://brew.sh/>`_ if you don't already have "
+"it. Then, install Tor::"
+msgstr ""
+
+#: ../../source/tor.rst:54
+msgid "Now configure Tor to allow connections from OnionShare::"
+msgstr ""
+
+#: ../../source/tor.rst:61
+msgid "And start the system Tor service::"
+msgstr ""
+
+#: ../../source/tor.rst:65
+msgid ""
+"Open OnionShare. Click the Settings icon. Under \"How should OnionShare "
+"connect to Tor?\" choose \"Connect using socket file\", and set the "
+"socket file to be ``/usr/local/var/run/tor/control.socket``. Under \"Tor "
+"authentication options\" choose \"No authentication, or cookie "
+"authentication\". Click the \"Test Settings\" button. If all goes well, "
+"you should see successfully connected to tor."
+msgstr ""
+
+#: ../../source/tor.rst:68
+msgid "Using a system Tor in Linux"
+msgstr ""
+
+#: ../../source/tor.rst:70
+msgid ""
+"First, install the tor package. If you're using Debian, Ubuntu, or a "
+"similar Linux distro, I recommend you use Tor Project's `official "
+"repository <https://2019.www.torproject.org/docs/debian.html.en>`_. For "
+"example, in Ubuntu 20.04::"
+msgstr ""
+
+#: ../../source/tor.rst:78
+msgid ""
+"Next, add your user to the group that runs the Tor process (in the case "
+"of Debian and Ubuntu, ``debian-tor``) and configure OnionShare to connect"
+" to your system Tor's control socket file."
+msgstr ""
+
+#: ../../source/tor.rst:80
+msgid ""
+"Add your user to the ``debian-tor`` group by running this command "
+"(replace ``username`` with your actual username)::"
+msgstr ""
+
+#: ../../source/tor.rst:84
+msgid ""
+"Reboot your computer. After it boots up again, open OnionShare. Click the"
+" Settings icon. Under \"How should OnionShare connect to Tor?\" choose "
+"\"Connect using socket file\", and set the socket file to be "
+"``/var/run/tor/control``. Under \"Tor authentication options\" choose "
+"\"No authentication, or cookie authentication\". Click the \"Test "
+"Settings\" button. If all goes well, you should see successfully connect "
+"to Tor."
+msgstr ""
+
+#: ../../source/tor.rst:87
+msgid "Using Tor bridges"
+msgstr ""
+
+#: ../../source/tor.rst:89
+msgid ""
+"If your access to the internet is censored, you can configure OnionShare "
+"to connect to the Tor network using `Tor bridges "
+"<https://2019.www.torproject.org/docs/bridges.html.en>`_. If OnionShare "
+"successfully connects to Tor, you don't need to use a bridge."
+msgstr ""
+
+#: ../../source/tor.rst:91
+msgid "To configure bridges, open OnionShare settings."
+msgstr ""
+
+#: ../../source/tor.rst:93
+msgid ""
+"You can use the built-in obfs4 pluggable transports, the built-in "
+"meek_lite (Azure) pluggable transports, or custom bridges, which you can "
+"obtain from Tor's `BridgeDB <https://bridges.torproject.org/>`_. If you "
+"need to use a bridge, you should try the built-in obfs4 ones first."
+msgstr ""
+
diff --git a/docs/source/locale/da/LC_MESSAGES/advanced.po b/docs/source/locale/da/LC_MESSAGES/advanced.po
new file mode 100644
index 00000000..0b9fd78c
--- /dev/null
+++ b/docs/source/locale/da/LC_MESSAGES/advanced.po
@@ -0,0 +1,224 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/advanced.rst:2
+msgid "Advanced usage"
+msgstr ""
+
+#: ../../source/advanced.rst:7
+msgid "Save tabs"
+msgstr ""
+
+#: ../../source/advanced.rst:9
+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. "
+"But sometimes you might want an OnionShare service to be persistent. For "
+"example, this would be useful if you want to host a website that can keep"
+" the same URL even if you reboot your computer."
+msgstr ""
+
+#: ../../source/advanced.rst:11
+msgid ""
+"To make any tab persistent, check the \"Save this tab, and automatically "
+"open it when I open OnionShare\" box before starting the server. When a "
+"tab is saved a purple pin icon appears to the left of its server status."
+msgstr ""
+
+#: ../../source/advanced.rst:15
+msgid ""
+"When you quit OnionShare and then open it again, your saved tabs will "
+"start out open. You'll have to manually start each service, but when you "
+"do they will start with the same OnionShare address, and with the same "
+"password."
+msgstr ""
+
+#: ../../source/advanced.rst:17
+msgid ""
+"If you save a tab, a copy of that tab's onion service secret key will be "
+"stored on your computer with your OnionShare settings."
+msgstr ""
+
+#: ../../source/advanced.rst:22
+msgid "Disable passwords"
+msgstr ""
+
+#: ../../source/advanced.rst:24
+msgid ""
+"By default, all OnionShare services are protected with the username "
+"`onionshare` and a randomly-generated password. If someone makes 20 wrong"
+" guesses of the password, your onion service is automatically stopped to "
+"prevent a brute force attack against the OnionShare service."
+msgstr ""
+
+#: ../../source/advanced.rst:26
+msgid ""
+"But sometimes you might want your OnionShare service to be accessible to "
+"the public. For example, if you want to set up an OnionShare receive "
+"service so the public can securely and anonymously send you files. In "
+"this case, it's better to disable the password altogether. If you don't "
+"do this, someone can force your server to stop just by making 20 wrong "
+"guesses of your password, even if they know the correct password."
+msgstr ""
+
+#: ../../source/advanced.rst:28
+msgid ""
+"To disable the password for any tab, just check the \"Don't use a "
+"password\" box before starting the server. Then the server will be public"
+" and won't have a password."
+msgstr ""
+
+#: ../../source/advanced.rst:31
+msgid "Scheduled times"
+msgstr ""
+
+#: ../../source/advanced.rst:33
+msgid ""
+"OnionShare supports scheduling exactly when a service should start and "
+"stop. Before starting 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 desired dates and times."
+msgstr ""
+
+#: ../../source/advanced.rst:35
+msgid ""
+"If you scheduled a service to start in the future, when you click the "
+"start button you will see a timer counting down until it will start. If "
+"you scheduled it to stop in the future, after it's started you will see a"
+" timer counting down to when it will stop automatically."
+msgstr ""
+
+#: ../../source/advanced.rst:37
+msgid ""
+"**Scheduling an OnionShare service to automatically start can be used as "
+"a dead man's switch**, where your service will be made public at a given "
+"time in the future if anything happens to you. If nothing happens to you,"
+" you can cancel the service before it's scheduled to start."
+msgstr ""
+
+#: ../../source/advanced.rst:41
+msgid ""
+"**Scheduling an OnionShare service to automatically stop can be useful to"
+" limit exposure**, like if you want to share secret documents while "
+"making sure they're not available on the internet for more than a few "
+"days."
+msgstr ""
+
+#: ../../source/advanced.rst:46
+msgid "Command line interface"
+msgstr ""
+
+#: ../../source/advanced.rst:48
+msgid ""
+"In addition to its graphical interface, OnionShare has a command line "
+"interface."
+msgstr ""
+
+#: ../../source/advanced.rst:51
+msgid "Linux"
+msgstr ""
+
+#: ../../source/advanced.rst:53
+msgid ""
+"If you installed OnionShare using the Flatpak package, unfortunately the "
+"command line interface isn't supported."
+msgstr ""
+
+#: ../../source/advanced.rst:55
+msgid ""
+"If you installed OnionShare using an operating system package, you can "
+"just run ``onionshare`` from the terminal."
+msgstr ""
+
+#: ../../source/advanced.rst:58
+msgid "macOS"
+msgstr ""
+
+#: ../../source/advanced.rst:60
+msgid "Make a symbolic link to the OnionShare command line binary line this::"
+msgstr ""
+
+#: ../../source/advanced.rst:64
+msgid "Now you can run ``onionshare`` from the terminal."
+msgstr ""
+
+#: ../../source/advanced.rst:67
+msgid "Windows"
+msgstr ""
+
+#: ../../source/advanced.rst:69
+msgid "The command line interface isn't supported in Windows."
+msgstr ""
+
+#: ../../source/advanced.rst:71
+msgid ""
+"If you really want to use it anyway, you can set up a Windows development"
+" environment (see :ref:`starting_development`) and then run this in a "
+"command prompt::"
+msgstr ""
+
+#: ../../source/advanced.rst:76
+msgid "Usage"
+msgstr ""
+
+#: ../../source/advanced.rst:78
+msgid "You can see command line documentation by running ``onionshare --help``::"
+msgstr ""
+
+#: ../../source/advanced.rst:134
+msgid "Legacy addresses"
+msgstr ""
+
+#: ../../source/advanced.rst:136
+msgid ""
+"OnionShare uses v3 Tor onion services by default. These are modern onion "
+"addresses that have 56 characters, for example::"
+msgstr ""
+
+#: ../../source/advanced.rst:140
+msgid ""
+"But it still has support for v2 onion addresses, the old type of onion "
+"addresses that have 16 characters, for example::"
+msgstr ""
+
+#: ../../source/advanced.rst:144
+msgid ""
+"OnionShare calls v2 onion addresses \"legacy addresses\". v3 onion "
+"addresses are more secure, and using legacy addresses is not recommended."
+msgstr ""
+
+#: ../../source/advanced.rst:146
+msgid ""
+"To use legacy addresses, before starting a server click \"Show advanced "
+"settings\" in its tab and check the \"Use a legacy address (v2 onion "
+"service, not recommended)\" box. In legacy mode you can optionally enable"
+" Tor client authentication. Once you start a server in legacy mode you "
+"cannot remove legacy mode in that tab. Instead you must start a separate "
+"service in a separate tab."
+msgstr ""
+
+#: ../../source/advanced.rst:148
+msgid ""
+"Tor Project plans to `completely deprecate v2 onion services "
+"<https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, "
+"2021, and legacy onion services will soon be removed from OnionShare as "
+"well."
+msgstr ""
+
diff --git a/docs/source/locale/da/LC_MESSAGES/develop.po b/docs/source/locale/da/LC_MESSAGES/develop.po
new file mode 100644
index 00000000..6e7eb464
--- /dev/null
+++ b/docs/source/locale/da/LC_MESSAGES/develop.po
@@ -0,0 +1,248 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/develop.rst:2
+msgid "Developing OnionShare"
+msgstr ""
+
+#: ../../source/develop.rst:7
+msgid "Collaborating"
+msgstr ""
+
+#: ../../source/develop.rst:9
+msgid ""
+"OnionShare has an open Keybase team that we use to discuss the project, "
+"including asking questions, sharing ideas and designs, and making plans "
+"for future development. (It's also an easy way to send end-to-end "
+"encrypted direct messages to others in the OnionShare community, like "
+"OnionShare addresses.) To use Keybase, you need to download the `Keybase "
+"app <https://keybase.io/download>`_, make an account, and `join this team"
+" <https://keybase.io/team/onionshare>`_. Within the app, go to Teams, "
+"click \"Join a Team\", and type \"onionshare\"."
+msgstr ""
+
+#: ../../source/develop.rst:11
+msgid ""
+"OnionShare also has a `mailing list "
+"<https://lists.riseup.net/www/subscribe/onionshare-dev>`_ for developers "
+"and and designers to discuss the project."
+msgstr ""
+
+#: ../../source/develop.rst:14
+msgid "Contributing code"
+msgstr ""
+
+#: ../../source/develop.rst:16
+msgid ""
+"OnionShare source code is in this git repository: "
+"https://github.com/micahflee/onionshare"
+msgstr ""
+
+#: ../../source/develop.rst:18
+msgid ""
+"If you'd like to contribute code to OnionShare, it helps to join the "
+"Keybase team and ask questions about what you're thinking of working on. "
+"You should also review all of the `open issues "
+"<https://github.com/micahflee/onionshare/issues>`_ on GitHub to see if "
+"there are any that you'd like to develop."
+msgstr ""
+
+#: ../../source/develop.rst:20
+msgid ""
+"When you're ready to contribute code, open a pull request in the GitHub "
+"repository and one of the project maintainers will review it and possible"
+" ask questions, request changes, reject it, or merge it into the project."
+msgstr ""
+
+#: ../../source/develop.rst:25
+msgid "Starting development"
+msgstr ""
+
+#: ../../source/develop.rst:27
+msgid ""
+"OnionShare is developed in Python. To get started, you should close the "
+"git repository at https://github.com/micahflee/onionshare/ and then "
+"consult the ``BUILD.md`` file."
+msgstr ""
+
+#: ../../source/develop.rst:29
+msgid "That file contains the technical instructions and commands necessary:"
+msgstr ""
+
+#: ../../source/develop.rst:31
+msgid "Install dependencies for your platform"
+msgstr ""
+
+#: ../../source/develop.rst:32
+msgid "Run OnionShare from the source tree, without building a package"
+msgstr ""
+
+#: ../../source/develop.rst:33
+msgid "Building packages"
+msgstr ""
+
+#: ../../source/develop.rst:34
+msgid "Making a release of OnionShare"
+msgstr ""
+
+#: ../../source/develop.rst:37
+msgid "Debugging tips"
+msgstr ""
+
+#: ../../source/develop.rst:40
+msgid "Verbose mode"
+msgstr ""
+
+#: ../../source/develop.rst:42
+msgid ""
+"When developing, it's convenient to run OnionShare from a terminal and "
+"add the ``--verbose`` (or ``-v``) flag to the command. This will print a "
+"lot of helpful messages to the terminal such as when certain objects are "
+"initialized, when events occur (like buttons clicked, settings saved or "
+"reloaded), and other debug information. For example::"
+msgstr ""
+
+#: ../../source/develop.rst:111
+msgid ""
+"You can add your own debug messages by running the ``Common.log`` method "
+"from ``onionshare/common.py``. For example::"
+msgstr ""
+
+#: ../../source/develop.rst:115
+msgid ""
+"This can be useful when learning the chain of events that occur when "
+"using the application or the value of certain variables before and after "
+"they are manipulated."
+msgstr ""
+
+#: ../../source/develop.rst:118
+msgid "Local only"
+msgstr ""
+
+#: ../../source/develop.rst:120
+msgid ""
+"Tor is slow, and it's often convenient to skip starting onion services "
+"altogether during development. You can do this with the ``--local-only`` "
+"flag. For example::"
+msgstr ""
+
+#: ../../source/develop.rst:157
+msgid ""
+"In this case, you load the URL ``http://onionshare:eject-"
+"snack@127.0.0.1:17614`` in a normal web browser like Firefox, instead of "
+"using Tor Browser."
+msgstr ""
+
+#: ../../source/develop.rst:160
+msgid "Debugging in Windows"
+msgstr ""
+
+#: ../../source/develop.rst:162
+msgid ""
+"If you want to obtain debug output from the ``onionshare-gui.exe`` in "
+"Windows, you will need to edit ``install\\pyinstaller.spec`` and change "
+"``console=False`` to ``console=True``."
+msgstr ""
+
+#: ../../source/develop.rst:164
+msgid ""
+"Then rebuild the EXE with ``install\\build_exe.bat`` (you may need to "
+"comment out the ``signtool`` commands in the ``build_exe.bat`` and the "
+"``onionshare.nsi`` files, as per the ``BUILD.md`` instructions)."
+msgstr ""
+
+#: ../../source/develop.rst:166
+msgid ""
+"After this, you can run ``onionshare-gui.exe -v`` from a command prompt "
+"to see the debug output."
+msgstr ""
+
+#: ../../source/develop.rst:169
+msgid "Contributing translations"
+msgstr ""
+
+#: ../../source/develop.rst:171
+msgid ""
+"Most of the OnionShare is translatable. You can help make it easier to "
+"use and more familiar and welcoming for people around the globe. The "
+"Localization Lab has some `documentation about translating OnionShare "
+"<https://wiki.localizationlab.org/index.php/OnionShare>`_."
+msgstr ""
+
+#: ../../source/develop.rst:173
+msgid ""
+"OnionShare uses Weblate to keep track of translations. You can view the "
+"OnionShare project here: https://hosted.weblate.org/projects/onionshare/"
+msgstr ""
+
+#: ../../source/develop.rst:175
+msgid ""
+"To help translate, make a Hosted Weblate account and start contributing "
+"to that project."
+msgstr ""
+
+#: ../../source/develop.rst:178
+msgid "Suggestions for original English strings"
+msgstr ""
+
+#: ../../source/develop.rst:180
+msgid ""
+"Sometimes the original English strings could be improved, making them "
+"easier to translate into other languages."
+msgstr ""
+
+#: ../../source/develop.rst:182
+msgid ""
+"If you have suggestions for a better English string, please open a GitHub"
+" issue rather than commenting in Weblate. This ensures the upstream "
+"developers will definitely see the suggestion, and can potentially modify"
+" the string via the usual code review processes."
+msgstr ""
+
+#: ../../source/develop.rst:185
+msgid "Status of translations"
+msgstr ""
+
+#: ../../source/develop.rst:186
+msgid ""
+"Here is the current translation status. If you want start a translation "
+"in a language not to be found here, please write us to the mailing list: "
+"onionshare-dev@lists.riseup.net"
+msgstr ""
+
+#: ../../source/develop.rst:191
+msgid "Translate the .desktop file"
+msgstr ""
+
+#: ../../source/develop.rst:193
+msgid "You can also translate the ``install/onionshare.desktop`` file."
+msgstr ""
+
+#: ../../source/develop.rst:195
+msgid ""
+"Duplicate the line that begins with ``Comment=``. Add the language code "
+"to the new line so it becomes ``Comment[lang]=`` (lang should be your "
+"language). You can see what language codes are used for translation by "
+"looking at the ``share/locale/*.json`` filenames::"
+msgstr ""
+
+#: ../../source/develop.rst:200
+msgid "Do the same for other untranslated lines."
+msgstr ""
+
diff --git a/docs/source/locale/da/LC_MESSAGES/features.po b/docs/source/locale/da/LC_MESSAGES/features.po
new file mode 100644
index 00000000..29841dd8
--- /dev/null
+++ b/docs/source/locale/da/LC_MESSAGES/features.po
@@ -0,0 +1,382 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/features.rst:4
+msgid "How OnionShare works"
+msgstr ""
+
+#: ../../source/features.rst:6
+msgid ""
+"OnionShare works by starting web servers locally on your own computer and"
+" making them accessible to other people as `Tor "
+"<https://www.torproject.org/>`_ `onion services "
+"<https://community.torproject.org/onion-services/>`_."
+msgstr ""
+
+#: ../../source/features.rst:8
+msgid ""
+"By default, OnionShare web addresses are protected with a random "
+"password. A typical OnionShare address might look something like this::"
+msgstr ""
+
+#: ../../source/features.rst:12
+msgid ""
+"You're responsible for securely sharing that URL using a communication "
+"channel of your choice like in an encrypted chat message, or using "
+"something less secure like a Twitter or Facebook message, depending on "
+"your `threat model <https://ssd.eff.org/en/module/your-security-plan>`_."
+msgstr ""
+
+#: ../../source/features.rst:14
+msgid ""
+"The people who you send the URL to must then copy and paste it into `Tor "
+"Browser <https://www.torproject.org/>`_ to access the OnionShare service."
+msgstr ""
+
+#: ../../source/features.rst:16
+msgid ""
+"With OnionShare, *your own computer is the web server*. If you run "
+"OnionShare on your laptop to send someone files, and then suspend your "
+"laptop before the files have been downloaded, the service will not be "
+"available until your laptop is unsuspended and connected to the internet "
+"again. OnionShare works best when working with people in real-time."
+msgstr ""
+
+#: ../../source/features.rst:18
+msgid ""
+"Because your own computer is the web server, *no third party can access "
+"anything that happens in OnionShare*, not even the developers of "
+"OnionShare. It's completely private. And because OnionShare is based on "
+"Tor onion services too, it also protects your anonymity. See the "
+":doc:`security design </security>` for more information."
+msgstr ""
+
+#: ../../source/features.rst:21
+msgid "Share Files"
+msgstr ""
+
+#: ../../source/features.rst:23
+msgid ""
+"You can use OnionShare to securely and anonymously send files and folders"
+" to people. Just open a share tab, drag in the files and folders you wish"
+" to share, and click \"Start sharing\"."
+msgstr ""
+
+#: ../../source/features.rst:27 ../../source/features.rst:91
+msgid ""
+"After you add files, you'll see some settings. Make sure you choose the "
+"setting you're interested in first before you start sharing."
+msgstr ""
+
+#: ../../source/features.rst:31
+msgid ""
+"By default, as soon as someone finishes downloading your files, "
+"OnionShare will automatically stop the server, completely removing the "
+"website from the internet. If you want to allow multiple people to "
+"download these files, uncheck the \"Stop sharing after files have been "
+"sent (uncheck to allow downloading individual files)\" box."
+msgstr ""
+
+#: ../../source/features.rst:33
+msgid ""
+"Also, if you uncheck this box, people will be able to download individual"
+" files that you share rather than a single compressed version of all of "
+"the files."
+msgstr ""
+
+#: ../../source/features.rst:35
+msgid ""
+"When you're ready to share, click the \"Start sharing\" button. You can "
+"always click \"Stop sharing\", or quit OnionShare, to immediate take the "
+"website down. You can also click the up arrow icon in the top-right "
+"corner to show the history and progress of people downloading files from "
+"you."
+msgstr ""
+
+#: ../../source/features.rst:39
+msgid ""
+"Now that you have a website that's sharing files, copy the address and "
+"send it to the person you want to receive the files. If the files need to"
+" stay secure, you should use an encrypted messaging app."
+msgstr ""
+
+#: ../../source/features.rst:41
+msgid ""
+"That person then must load the address in Tor Browser. After logging in "
+"with the random password that's included in the web address, they will be"
+" able to download the files directly from your computer by clicking the "
+"\"Download Files\" link in the corner."
+msgstr ""
+
+#: ../../source/features.rst:46
+msgid "Receive Files"
+msgstr ""
+
+#: ../../source/features.rst:48
+msgid ""
+"You can use OnionShare to let people anonymously upload files directly to"
+" your computer, essentially turning it into an anonymous dropbox. Open a "
+"receive tab, choose where you want files to get downloaded and other "
+"settings, and then click \"Start Receive Mode\"."
+msgstr ""
+
+#: ../../source/features.rst:52
+msgid ""
+"This will start the OnionShare service. Anyone that loads this address in"
+" Tor Browser will be able to upload files to your computer."
+msgstr ""
+
+#: ../../source/features.rst:56
+msgid ""
+"You can also click the down arrow icon in the top-right corner to show "
+"the history and progress of people sending files to you."
+msgstr ""
+
+#: ../../source/features.rst:58
+msgid "Here is what it looks like for someone sending you files."
+msgstr ""
+
+#: ../../source/features.rst:62
+msgid ""
+"When someone uploads files to your receive service, by default they get "
+"saved to a folder called ``OnionShare`` in your home folder on your "
+"computer, and they get automatically organized into separate subfolders "
+"based on the time that the files get uploaded."
+msgstr ""
+
+#: ../../source/features.rst:64
+msgid ""
+"Setting up an OnionShare receiving service is useful for journalists and "
+"others that need to securely accept documents from anonymous sources. "
+"When used in this way, OnionShare is sort of like a lightweight, simpler,"
+" not quite as secure version of `SecureDrop <https://securedrop.org/>`_, "
+"the whistleblower submission system."
+msgstr ""
+
+#: ../../source/features.rst:67
+msgid "Use at your own risk"
+msgstr ""
+
+#: ../../source/features.rst:69
+msgid ""
+"Just like with malicious email attachments, it's possible that someone "
+"could try to hack your computer by uploading a malicious file to your "
+"OnionShare service. OnionShare does not add any safety mechanisms to "
+"protect your system from malicious files, so use at your own risk."
+msgstr ""
+
+#: ../../source/features.rst:71
+msgid ""
+"If you receive an Office document or a PDF through OnionShare, you can "
+"convert these documents into PDFs that you know are safe to open using "
+"`Dangerzone <https://dangerzone.rocks/>`_. You can also protect yourself "
+"when opening untrusted documents by opening them in `Tails "
+"<https://tails.boum.org/>`_ or in a `Qubes <https://qubes-os.org/>`_ "
+"disposable VM."
+msgstr ""
+
+#: ../../source/features.rst:74
+msgid "Tips for running a receive service"
+msgstr ""
+
+#: ../../source/features.rst:76
+msgid ""
+"If you want to host your own anonymous dropbox using OnionShare, it's "
+"recommended that you do it on a separate, dedicated computer that's "
+"always powered on and connected to the internet, and not on the one you "
+"use on a regular basis."
+msgstr ""
+
+#: ../../source/features.rst:78
+msgid ""
+"If you intend on advertising the OnionShare address on your website or "
+"social media profiles, then you should save the tab (see "
+":ref:`save_tabs`) and run it as a public service (see "
+":ref:`disable_passwords`)."
+msgstr ""
+
+#: ../../source/features.rst:81
+msgid "Host a Website"
+msgstr ""
+
+#: ../../source/features.rst:83
+msgid ""
+"You can use OnionShare to host a static HTML website with just a click. "
+"Just open a website tab, drag in the files and folders that make up the "
+"static website, and click when you're ready click \"Start sharing\"."
+msgstr ""
+
+#: ../../source/features.rst:87
+msgid ""
+"If you add an ``index.html`` file, when someone loads your website it "
+"will render this page. 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:89
+msgid ""
+"If you don't have an ``index.html`` file, then it will show a directory "
+"listing instead, and people who load it can look through the files and "
+"download them."
+msgstr ""
+
+#: ../../source/features.rst:96
+msgid "Content Security Policy"
+msgstr ""
+
+#: ../../source/features.rst:98
+msgid ""
+"By default OnionShare will help secure your website by setting a strict "
+"`Content Security Police "
+"<https://en.wikipedia.org/wiki/Content_Security_Policy>`_ header. However"
+" this will prevent third-party content from loading inside the web page."
+msgstr ""
+
+#: ../../source/features.rst:100
+msgid ""
+"If you want to load content from third-party websites, like assets or "
+"JavaScript libraries from CDNs, then you must check the \"Disable Content"
+" Security Policy header (allows your website to use third-party "
+"resources)\" box before starting the service."
+msgstr ""
+
+#: ../../source/features.rst:103
+msgid "Tips for running a website service"
+msgstr ""
+
+#: ../../source/features.rst:105
+msgid ""
+"If you want to host a long-term website using OnionShare (that isn't just"
+" to quickly show someone something), it's recommended that you do it on a"
+" separate, dedicated computer that's always powered on and connected to "
+"the internet, and not on the one you use on a regular basis. You should "
+"also save the tab (see :ref:`save_tabs`) so that you can resume the "
+"website with the same address if you close OnionShare and re-open it "
+"later."
+msgstr ""
+
+#: ../../source/features.rst:107
+msgid ""
+"If your website is intended to be viewed by the public, you should run it"
+" as a public service (see :ref:`disable_passwords`)."
+msgstr ""
+
+#: ../../source/features.rst:110
+msgid "Chat Anonymously"
+msgstr ""
+
+#: ../../source/features.rst:112
+msgid ""
+"You can use OnionShare to set up a completely anonymous, secure chat room"
+" that doesn't log anything or leave any traces. Just open a chat tab and "
+"click \"Start chat server\"."
+msgstr ""
+
+#: ../../source/features.rst:116
+msgid ""
+"After you start the server, copy the OnionShare address and send it to "
+"the people who will join this anonymous chat room. If it's important to "
+"limit exactly who can join, you should use an encrypted messaging app to "
+"send the OnionShare address."
+msgstr ""
+
+#: ../../source/features.rst:120
+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 set their security level to Standard or Safer instead of"
+" Safest."
+msgstr ""
+
+#: ../../source/features.rst:122
+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 enter. No chat history will get displayed at all, even if "
+"others were already chatting in the room, because the chat history isn't "
+"saved anywhere."
+msgstr ""
+
+#: ../../source/features.rst:126
+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:128
+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, then you can be reasonably confident that the people who join "
+"the chat room are your friends."
+msgstr ""
+
+#: ../../source/features.rst:131
+msgid "How is this useful?"
+msgstr ""
+
+#: ../../source/features.rst:133
+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:135
+msgid ""
+"If you send a message to a Signal group, for example, a copy of your "
+"message ends up on each device (the phones and computers, if they set up "
+"Signal Desktop) of each member of the group. Even if disappearing "
+"messages is enabled, it's hard to confirm that all copies of the messages"
+" were 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 this isn't a problem."
+msgstr ""
+
+#: ../../source/features.rst:137
+msgid ""
+"OnionShare chat rooms can also be useful for anonymous people wanting to "
+"chat 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:140
+msgid "How does the encryption work?"
+msgstr ""
+
+#: ../../source/features.rst:142
+msgid ""
+"Because OnionShare relies on Tor onion services, connections between 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:144
+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/source/locale/da/LC_MESSAGES/help.po b/docs/source/locale/da/LC_MESSAGES/help.po
new file mode 100644
index 00000000..d965eb13
--- /dev/null
+++ b/docs/source/locale/da/LC_MESSAGES/help.po
@@ -0,0 +1,72 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/help.rst:2
+msgid "Getting Help"
+msgstr ""
+
+#: ../../source/help.rst:4
+msgid "If you need help with OnionShare, please follow the instructions below."
+msgstr ""
+
+#: ../../source/help.rst:7
+msgid "Read this website"
+msgstr ""
+
+#: ../../source/help.rst:9
+msgid ""
+"This website is full of instructions on how to use OnionShare. Look "
+"through all of the sections first to see if it answers your questions."
+msgstr ""
+
+#: ../../source/help.rst:12
+msgid "Check the GitHub issues"
+msgstr ""
+
+#: ../../source/help.rst:14
+msgid ""
+"If you can't find a solution in this website, please check the `GitHub "
+"issues <https://github.com/micahflee/onionshare/issues>`_. It's possible "
+"that someone else has encountered the same problem and has either raised "
+"it with the developers, or maybe even posted a solution."
+msgstr ""
+
+#: ../../source/help.rst:17
+msgid "Submit an issue yourself"
+msgstr ""
+
+#: ../../source/help.rst:19
+msgid ""
+"If you can't find a solution to your problem, or you wish to ask a "
+"question or suggest a new feature, please `submit an issue "
+"<https://github.com/micahflee/onionshare/issues/new>`_. This requires "
+"`creating an GitHub account <https://help.github.com/articles/signing-up-"
+"for-a-new-github-account/>`_."
+msgstr ""
+
+#: ../../source/help.rst:22
+msgid "Join our Keybase team"
+msgstr ""
+
+#: ../../source/help.rst:24
+msgid ""
+"See :ref:`collaborating` for instructions on how to join our Keybase team"
+" that we use to discuss the project."
+msgstr ""
+
diff --git a/docs/source/locale/da/LC_MESSAGES/index.po b/docs/source/locale/da/LC_MESSAGES/index.po
new file mode 100644
index 00000000..2ad2653c
--- /dev/null
+++ b/docs/source/locale/da/LC_MESSAGES/index.po
@@ -0,0 +1,29 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:46-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/index.rst:2
+msgid "OnionShare's documentation"
+msgstr ""
+
+#: ../../source/index.rst:6
+msgid ""
+"OnionShare is an open source tool that lets you securely and anonymously "
+"share files, host websites, and chat with friends using the Tor network."
+msgstr ""
+
diff --git a/docs/source/locale/da/LC_MESSAGES/install.po b/docs/source/locale/da/LC_MESSAGES/install.po
new file mode 100644
index 00000000..a2f5b321
--- /dev/null
+++ b/docs/source/locale/da/LC_MESSAGES/install.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/install.rst:2
+msgid "Installation"
+msgstr ""
+
+#: ../../source/install.rst:5
+msgid "Install on Windows or macOS"
+msgstr ""
+
+#: ../../source/install.rst:7
+msgid ""
+"You can download OnionShare for Windows and macOS from the `OnionShare "
+"website <https://onionshare.org/>`_."
+msgstr ""
+
+#: ../../source/install.rst:9
+msgid "For added security, see :ref:`verifying_sigs`."
+msgstr ""
+
+#: ../../source/install.rst:14
+msgid "Install in Linux with Flatpak"
+msgstr ""
+
+#: ../../source/install.rst:16
+msgid ""
+"There are various ways to install OnionShare for Linux, but the "
+"recommended way is to use the Flatpak package. Flatpak ensures that "
+"you'll always use the most latest dependencies and run OnionShare inside "
+"of a sandbox."
+msgstr ""
+
+#: ../../source/install.rst:18
+msgid ""
+"Make sure you have ``flatpak`` installed and the Flathub repository added"
+" by following `these instructions <https://flatpak.org/setup/>`_ for your"
+" Linux distribution."
+msgstr ""
+
+#: ../../source/install.rst:20
+msgid ""
+"Then install OnionShare from Flathub by following `the instructions here "
+"<https://flathub.org/apps/details/org.onionshare.OnionShare>`_."
+msgstr ""
+
+#: ../../source/install.rst:25
+msgid "Verifying PGP signatures"
+msgstr ""
+
+#: ../../source/install.rst:27
+msgid ""
+"You can verify that the Windows, macOS, or source package you download is"
+" legitimate and hasn't been tampered with by verifying its PGP signature."
+" For Windows and macOS, this step is optional and provides defense in "
+"depth: the installers also include their operating system-specific "
+"signatures, and you can just rely on those alone if you'd like."
+msgstr ""
+
+#: ../../source/install.rst:30
+msgid "Signing key"
+msgstr ""
+
+#: ../../source/install.rst:32
+msgid ""
+"Windows, macOS, and source packaged are signed by Micah Lee, the core "
+"developer, using his PGP public key with fingerprint "
+"``927F419D7EC82C2F149C1BD1403C2657CD994F73``. You can download Micah's "
+"key `from the keys.openpgp.org keyserver <https://keys.openpgp.org/vks/v1"
+"/by-fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
+msgstr ""
+
+#: ../../source/install.rst:34
+msgid ""
+"In order to verify signatures, you must have GnuPG installed. For macOS "
+"you probably want `GPGTools <https://gpgtools.org/>`_, and for Windows "
+"you probably want `Gpg4win <https://www.gpg4win.org/>`_."
+msgstr ""
+
+#: ../../source/install.rst:37
+msgid "Signatures"
+msgstr ""
+
+#: ../../source/install.rst:39
+msgid ""
+"You can find the signatures (``.asc`` files), as well as Windows, macOS, "
+"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 <https://github.com/micahflee/onionshare/releases>`_."
+msgstr ""
+
+#: ../../source/install.rst:42
+msgid "Verifying"
+msgstr ""
+
+#: ../../source/install.rst:44
+msgid ""
+"Once you have imported Micah's public key into your GnuPG keychain, "
+"downloaded the binary, and downloaded the ``.asc`` signature, you can "
+"verify the binary for macOS in terminal like this::"
+msgstr ""
+
+#: ../../source/install.rst:48
+msgid "Or for Windows in a command prompt like this::"
+msgstr ""
+
+#: ../../source/install.rst:52
+msgid "An expected output might look like this::"
+msgstr ""
+
+#: ../../source/install.rst:64
+msgid ""
+"If you don't see 'Good signature from', then there might be a problem "
+"with the integrity of the file (malicious or otherwise), and you perhaps "
+"should not install the package. (The WARNING shown above, is not a "
+"problem with the package: it only means you have not defined any level of"
+" 'trust' regarding Micah's PGP key itself.)"
+msgstr ""
+
+#: ../../source/install.rst:66
+msgid ""
+"If you want to learn more about verifying PGP signatures, guides for "
+"`Qubes OS <https://www.qubes-os.org/security/verifying-signatures/>`_ and"
+" the `Tor Project <https://2019.www.torproject.org/docs/verifying-"
+"signatures.html.en>`_ may be helpful."
+msgstr ""
+
diff --git a/docs/source/locale/da/LC_MESSAGES/security.po b/docs/source/locale/da/LC_MESSAGES/security.po
new file mode 100644
index 00000000..13d11a17
--- /dev/null
+++ b/docs/source/locale/da/LC_MESSAGES/security.po
@@ -0,0 +1,114 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/security.rst:2
+msgid "Security design"
+msgstr ""
+
+#: ../../source/security.rst:4
+msgid ""
+"First read :ref:`how_it_works` to understand the basics of how OnionShare"
+" works."
+msgstr ""
+
+#: ../../source/security.rst:6
+msgid "Like all software, OnionShare may contain bugs or vulnerabilities."
+msgstr ""
+
+#: ../../source/security.rst:9
+msgid "What OnionShare protects against"
+msgstr ""
+
+#: ../../source/security.rst:11
+msgid ""
+"**Third parties don't have access to anything that happens in "
+"OnionShare.** When you use OnionShare, you host services directly on your"
+" computer. For example, when you share files with OnionShare, you don't "
+"upload these files to any server, and when you start an OnionShare chat "
+"room, your computer is the chat room server itself. Traditional ways of "
+"sharing files or setting up websites and chat rooms require trusting a "
+"service with access to your data."
+msgstr ""
+
+#: ../../source/security.rst:13
+msgid ""
+"**Network eavesdroppers can't spy on anything that happens in OnionShare "
+"in transit.** Because connections between Tor onion services and Tor "
+"Browser are end-to-end encrypted, no network attackers can eavesdrop on "
+"what happens in an OnionShare service. If the eavesdropper is positioned "
+"on the OnionShare user's end, the Tor Browser user's end, or is a "
+"malicious Tor node, they will only see Tor traffic. If the eavesdropper "
+"is a malicious rendezvous node used to connect Tor Browser with "
+"OnionShare's onion service, the traffic will be encrypted using the onion"
+" service key."
+msgstr ""
+
+#: ../../source/security.rst:15
+msgid ""
+"**Anonymity of OnionShare users are protected by Tor.** OnionShare and "
+"Tor Browser protect the anonymity of the users. As long as the OnionShare"
+" user anonymously communicates the OnionShare address with the Tor "
+"Browser users, the Tor Browser users and eavesdroppers can't learn the "
+"identity of the OnionShare user."
+msgstr ""
+
+#: ../../source/security.rst:17
+msgid ""
+"**If an attacker learns about the onion service, they still can't access "
+"anything.** There have been attacks against the Tor network that can "
+"enumerate onion services. Even if someone discovers the .onion address of"
+" an OnionShare onion service, they can't access it without also knowing "
+"the service's random password (unless, of course, the OnionShare users "
+"chooses to disable the password and make it public). The password is "
+"generated by choosing two random words from a list of 6800 words, meaning"
+" there are 6800^2, or about 46 million possible password. But they can "
+"only make 20 wrong guesses before OnionShare stops the server, preventing"
+" brute force attacks against the password."
+msgstr ""
+
+#: ../../source/security.rst:20
+msgid "What OnionShare doesn't protect against"
+msgstr ""
+
+#: ../../source/security.rst:22
+msgid ""
+"**Communicating the OnionShare address might not be secure.** The "
+"OnionShare user is responsible for securely communicating the OnionShare "
+"address with people. If they send it insecurely (such as through an email"
+" message, and their email is being monitored by an attacker), the "
+"eavesdropper will learn that they're using OnionShare. If the attacker "
+"loads the address in Tor Browser before the legitimate recipient gets to "
+"it, they can access the service. If this risk fits the user's threat "
+"model, they must find a more secure way to communicate the address, such "
+"as in an encrypted email, chat, or voice call. This isn't necessary in "
+"cases where OnionShare is being used for something that isn't secret."
+msgstr ""
+
+#: ../../source/security.rst:24
+msgid ""
+"**Communicating the OnionShare address might not be anonymous.** While "
+"OnionShare and Tor Browser allow for anonymity, if the user wishes to "
+"remain anonymous they must take extra steps to ensure this while "
+"communicating the OnionShare address. For example, they might need to use"
+" Tor to create a new anonymous email or chat account, and only access it "
+"over Tor, to use for sharing the address. This isn't necessary in cases "
+"where there's no need to protect anonymity, such as co-workers who know "
+"each other sharing work documents."
+msgstr ""
+
diff --git a/docs/source/locale/da/LC_MESSAGES/sphinx.po b/docs/source/locale/da/LC_MESSAGES/sphinx.po
new file mode 100644
index 00000000..f2cc8ed5
--- /dev/null
+++ b/docs/source/locale/da/LC_MESSAGES/sphinx.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/_templates/versions.html:10
+msgid "Versions"
+msgstr ""
+
+#: ../../source/_templates/versions.html:18
+msgid "Languages"
+msgstr ""
+
diff --git a/docs/source/locale/da/LC_MESSAGES/tor.po b/docs/source/locale/da/LC_MESSAGES/tor.po
new file mode 100644
index 00000000..35edc6e4
--- /dev/null
+++ b/docs/source/locale/da/LC_MESSAGES/tor.po
@@ -0,0 +1,213 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/tor.rst:2
+msgid "Connecting to Tor"
+msgstr ""
+
+#: ../../source/tor.rst:4
+msgid ""
+"There are several options for how OnionShare should connect to Tor. You "
+"can change them in Settings, which you can get to by clicking the gear "
+"icon in the bottom-right of the window."
+msgstr ""
+
+#: ../../source/tor.rst:9
+msgid "Use Tor that is bundled with OnionShare"
+msgstr ""
+
+#: ../../source/tor.rst:11
+msgid ""
+"This is the default way that OnionShare connects to Tor, and it's also "
+"the simplest and most reliable way. For this reason, it's recommended for"
+" most users."
+msgstr ""
+
+#: ../../source/tor.rst:13
+msgid ""
+"When you open OnionShare, it will launch a Tor process in the background "
+"that's configured specifically for OnionShare to use. This Tor process "
+"won't interfere with other Tor processes on your computer, so you're free"
+" to run Tor Browser or use a system Tor in the background."
+msgstr ""
+
+#: ../../source/tor.rst:16
+msgid "Attempt automatic configuration with Tor Browser"
+msgstr ""
+
+#: ../../source/tor.rst:18
+msgid ""
+"You can configure OnionShare to connect to the Tor that comes with Tor "
+"Browser. First, `download Tor Browser <https://www.torproject.org>`_ here"
+" if you don't already have it. With this setting selected, you need to "
+"keep Tor Browser open in the background while you're using OnionShare."
+msgstr ""
+
+#: ../../source/tor.rst:21
+msgid "Using a system Tor in Windows"
+msgstr ""
+
+#: ../../source/tor.rst:23
+msgid ""
+"This is fairly advanced. You'll need to know how edit plaintext files and"
+" do stuff as an administrator."
+msgstr ""
+
+#: ../../source/tor.rst:25
+msgid ""
+"Download the Tor Windows Expert Bundle, which you can get `from here "
+"<https://www.torproject.org/download/tor/>`_. Extract the zip file and "
+"copy the extracted folder to ``C:\\Program Files (x86)\\``, and rename "
+"the folder to ``tor-win32``, so that inside that folder is the ``Data`` "
+"and ``Tor`` folders."
+msgstr ""
+
+#: ../../source/tor.rst:27
+msgid ""
+"Make up a control port password. I'm going to use ``comprised stumble "
+"rummage work avenging construct volatile`` as my password. Now open a "
+"command prompt as an administrator, and use ``tor.exe --hash-password`` "
+"to generate a hash of your password. For example::"
+msgstr ""
+
+#: ../../source/tor.rst:32
+msgid ""
+"The hashed password output is displayed after some warnings (which you "
+"can ignore). In my case, it was "
+"``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``."
+msgstr ""
+
+#: ../../source/tor.rst:34
+msgid ""
+"Now create a new text file at ``C:\\Program Files (x86)\\tor-"
+"win32\\torrc`` and put this in it, replacing the "
+"``HashedControlPassword`` with the one you just generated::"
+msgstr ""
+
+#: ../../source/tor.rst:39
+msgid ""
+"In your administrator command prompt, install tor as a service using the "
+"appropriate ``torrc`` file you just created (see `here "
+"<https://2019.www.torproject.org/docs/faq.html.en#NTService>`_ for more "
+"information on doing this). Like this::"
+msgstr ""
+
+#: ../../source/tor.rst:43
+msgid "You're now running a system Tor in Windows!"
+msgstr ""
+
+#: ../../source/tor.rst:45
+msgid ""
+"Open OnionShare. Click the Settings icon. Under \"How should OnionShare "
+"connect to Tor?\" choose \"Connect using control port\", and set the "
+"control port host to ``127.0.0.1`` and the port to ``9051``. Under \"Tor "
+"authentication options\" choose \"Password\" and set the password to your"
+" password, in my case ``comprised stumble rummage work avenging construct"
+" volatile``. Click the \"Test Settings\" button. If all goes well, you "
+"should see successfully connected to tor."
+msgstr ""
+
+#: ../../source/tor.rst:48
+msgid "Using a system Tor in Mac OS X"
+msgstr ""
+
+#: ../../source/tor.rst:50
+msgid ""
+"First, install `Homebrew <http://brew.sh/>`_ if you don't already have "
+"it. Then, install Tor::"
+msgstr ""
+
+#: ../../source/tor.rst:54
+msgid "Now configure Tor to allow connections from OnionShare::"
+msgstr ""
+
+#: ../../source/tor.rst:61
+msgid "And start the system Tor service::"
+msgstr ""
+
+#: ../../source/tor.rst:65
+msgid ""
+"Open OnionShare. Click the Settings icon. Under \"How should OnionShare "
+"connect to Tor?\" choose \"Connect using socket file\", and set the "
+"socket file to be ``/usr/local/var/run/tor/control.socket``. Under \"Tor "
+"authentication options\" choose \"No authentication, or cookie "
+"authentication\". Click the \"Test Settings\" button. If all goes well, "
+"you should see successfully connected to tor."
+msgstr ""
+
+#: ../../source/tor.rst:68
+msgid "Using a system Tor in Linux"
+msgstr ""
+
+#: ../../source/tor.rst:70
+msgid ""
+"First, install the tor package. If you're using Debian, Ubuntu, or a "
+"similar Linux distro, I recommend you use Tor Project's `official "
+"repository <https://2019.www.torproject.org/docs/debian.html.en>`_. For "
+"example, in Ubuntu 20.04::"
+msgstr ""
+
+#: ../../source/tor.rst:78
+msgid ""
+"Next, add your user to the group that runs the Tor process (in the case "
+"of Debian and Ubuntu, ``debian-tor``) and configure OnionShare to connect"
+" to your system Tor's control socket file."
+msgstr ""
+
+#: ../../source/tor.rst:80
+msgid ""
+"Add your user to the ``debian-tor`` group by running this command "
+"(replace ``username`` with your actual username)::"
+msgstr ""
+
+#: ../../source/tor.rst:84
+msgid ""
+"Reboot your computer. After it boots up again, open OnionShare. Click the"
+" Settings icon. Under \"How should OnionShare connect to Tor?\" choose "
+"\"Connect using socket file\", and set the socket file to be "
+"``/var/run/tor/control``. Under \"Tor authentication options\" choose "
+"\"No authentication, or cookie authentication\". Click the \"Test "
+"Settings\" button. If all goes well, you should see successfully connect "
+"to Tor."
+msgstr ""
+
+#: ../../source/tor.rst:87
+msgid "Using Tor bridges"
+msgstr ""
+
+#: ../../source/tor.rst:89
+msgid ""
+"If your access to the internet is censored, you can configure OnionShare "
+"to connect to the Tor network using `Tor bridges "
+"<https://2019.www.torproject.org/docs/bridges.html.en>`_. If OnionShare "
+"successfully connects to Tor, you don't need to use a bridge."
+msgstr ""
+
+#: ../../source/tor.rst:91
+msgid "To configure bridges, open OnionShare settings."
+msgstr ""
+
+#: ../../source/tor.rst:93
+msgid ""
+"You can use the built-in obfs4 pluggable transports, the built-in "
+"meek_lite (Azure) pluggable transports, or custom bridges, which you can "
+"obtain from Tor's `BridgeDB <https://bridges.torproject.org/>`_. If you "
+"need to use a bridge, you should try the built-in obfs4 ones first."
+msgstr ""
+
diff --git a/docs/source/locale/en/LC_MESSAGES/advanced.po b/docs/source/locale/en/LC_MESSAGES/advanced.po
new file mode 100644
index 00000000..0b9fd78c
--- /dev/null
+++ b/docs/source/locale/en/LC_MESSAGES/advanced.po
@@ -0,0 +1,224 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/advanced.rst:2
+msgid "Advanced usage"
+msgstr ""
+
+#: ../../source/advanced.rst:7
+msgid "Save tabs"
+msgstr ""
+
+#: ../../source/advanced.rst:9
+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. "
+"But sometimes you might want an OnionShare service to be persistent. For "
+"example, this would be useful if you want to host a website that can keep"
+" the same URL even if you reboot your computer."
+msgstr ""
+
+#: ../../source/advanced.rst:11
+msgid ""
+"To make any tab persistent, check the \"Save this tab, and automatically "
+"open it when I open OnionShare\" box before starting the server. When a "
+"tab is saved a purple pin icon appears to the left of its server status."
+msgstr ""
+
+#: ../../source/advanced.rst:15
+msgid ""
+"When you quit OnionShare and then open it again, your saved tabs will "
+"start out open. You'll have to manually start each service, but when you "
+"do they will start with the same OnionShare address, and with the same "
+"password."
+msgstr ""
+
+#: ../../source/advanced.rst:17
+msgid ""
+"If you save a tab, a copy of that tab's onion service secret key will be "
+"stored on your computer with your OnionShare settings."
+msgstr ""
+
+#: ../../source/advanced.rst:22
+msgid "Disable passwords"
+msgstr ""
+
+#: ../../source/advanced.rst:24
+msgid ""
+"By default, all OnionShare services are protected with the username "
+"`onionshare` and a randomly-generated password. If someone makes 20 wrong"
+" guesses of the password, your onion service is automatically stopped to "
+"prevent a brute force attack against the OnionShare service."
+msgstr ""
+
+#: ../../source/advanced.rst:26
+msgid ""
+"But sometimes you might want your OnionShare service to be accessible to "
+"the public. For example, if you want to set up an OnionShare receive "
+"service so the public can securely and anonymously send you files. In "
+"this case, it's better to disable the password altogether. If you don't "
+"do this, someone can force your server to stop just by making 20 wrong "
+"guesses of your password, even if they know the correct password."
+msgstr ""
+
+#: ../../source/advanced.rst:28
+msgid ""
+"To disable the password for any tab, just check the \"Don't use a "
+"password\" box before starting the server. Then the server will be public"
+" and won't have a password."
+msgstr ""
+
+#: ../../source/advanced.rst:31
+msgid "Scheduled times"
+msgstr ""
+
+#: ../../source/advanced.rst:33
+msgid ""
+"OnionShare supports scheduling exactly when a service should start and "
+"stop. Before starting 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 desired dates and times."
+msgstr ""
+
+#: ../../source/advanced.rst:35
+msgid ""
+"If you scheduled a service to start in the future, when you click the "
+"start button you will see a timer counting down until it will start. If "
+"you scheduled it to stop in the future, after it's started you will see a"
+" timer counting down to when it will stop automatically."
+msgstr ""
+
+#: ../../source/advanced.rst:37
+msgid ""
+"**Scheduling an OnionShare service to automatically start can be used as "
+"a dead man's switch**, where your service will be made public at a given "
+"time in the future if anything happens to you. If nothing happens to you,"
+" you can cancel the service before it's scheduled to start."
+msgstr ""
+
+#: ../../source/advanced.rst:41
+msgid ""
+"**Scheduling an OnionShare service to automatically stop can be useful to"
+" limit exposure**, like if you want to share secret documents while "
+"making sure they're not available on the internet for more than a few "
+"days."
+msgstr ""
+
+#: ../../source/advanced.rst:46
+msgid "Command line interface"
+msgstr ""
+
+#: ../../source/advanced.rst:48
+msgid ""
+"In addition to its graphical interface, OnionShare has a command line "
+"interface."
+msgstr ""
+
+#: ../../source/advanced.rst:51
+msgid "Linux"
+msgstr ""
+
+#: ../../source/advanced.rst:53
+msgid ""
+"If you installed OnionShare using the Flatpak package, unfortunately the "
+"command line interface isn't supported."
+msgstr ""
+
+#: ../../source/advanced.rst:55
+msgid ""
+"If you installed OnionShare using an operating system package, you can "
+"just run ``onionshare`` from the terminal."
+msgstr ""
+
+#: ../../source/advanced.rst:58
+msgid "macOS"
+msgstr ""
+
+#: ../../source/advanced.rst:60
+msgid "Make a symbolic link to the OnionShare command line binary line this::"
+msgstr ""
+
+#: ../../source/advanced.rst:64
+msgid "Now you can run ``onionshare`` from the terminal."
+msgstr ""
+
+#: ../../source/advanced.rst:67
+msgid "Windows"
+msgstr ""
+
+#: ../../source/advanced.rst:69
+msgid "The command line interface isn't supported in Windows."
+msgstr ""
+
+#: ../../source/advanced.rst:71
+msgid ""
+"If you really want to use it anyway, you can set up a Windows development"
+" environment (see :ref:`starting_development`) and then run this in a "
+"command prompt::"
+msgstr ""
+
+#: ../../source/advanced.rst:76
+msgid "Usage"
+msgstr ""
+
+#: ../../source/advanced.rst:78
+msgid "You can see command line documentation by running ``onionshare --help``::"
+msgstr ""
+
+#: ../../source/advanced.rst:134
+msgid "Legacy addresses"
+msgstr ""
+
+#: ../../source/advanced.rst:136
+msgid ""
+"OnionShare uses v3 Tor onion services by default. These are modern onion "
+"addresses that have 56 characters, for example::"
+msgstr ""
+
+#: ../../source/advanced.rst:140
+msgid ""
+"But it still has support for v2 onion addresses, the old type of onion "
+"addresses that have 16 characters, for example::"
+msgstr ""
+
+#: ../../source/advanced.rst:144
+msgid ""
+"OnionShare calls v2 onion addresses \"legacy addresses\". v3 onion "
+"addresses are more secure, and using legacy addresses is not recommended."
+msgstr ""
+
+#: ../../source/advanced.rst:146
+msgid ""
+"To use legacy addresses, before starting a server click \"Show advanced "
+"settings\" in its tab and check the \"Use a legacy address (v2 onion "
+"service, not recommended)\" box. In legacy mode you can optionally enable"
+" Tor client authentication. Once you start a server in legacy mode you "
+"cannot remove legacy mode in that tab. Instead you must start a separate "
+"service in a separate tab."
+msgstr ""
+
+#: ../../source/advanced.rst:148
+msgid ""
+"Tor Project plans to `completely deprecate v2 onion services "
+"<https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, "
+"2021, and legacy onion services will soon be removed from OnionShare as "
+"well."
+msgstr ""
+
diff --git a/docs/source/locale/en/LC_MESSAGES/develop.po b/docs/source/locale/en/LC_MESSAGES/develop.po
new file mode 100644
index 00000000..6e7eb464
--- /dev/null
+++ b/docs/source/locale/en/LC_MESSAGES/develop.po
@@ -0,0 +1,248 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/develop.rst:2
+msgid "Developing OnionShare"
+msgstr ""
+
+#: ../../source/develop.rst:7
+msgid "Collaborating"
+msgstr ""
+
+#: ../../source/develop.rst:9
+msgid ""
+"OnionShare has an open Keybase team that we use to discuss the project, "
+"including asking questions, sharing ideas and designs, and making plans "
+"for future development. (It's also an easy way to send end-to-end "
+"encrypted direct messages to others in the OnionShare community, like "
+"OnionShare addresses.) To use Keybase, you need to download the `Keybase "
+"app <https://keybase.io/download>`_, make an account, and `join this team"
+" <https://keybase.io/team/onionshare>`_. Within the app, go to Teams, "
+"click \"Join a Team\", and type \"onionshare\"."
+msgstr ""
+
+#: ../../source/develop.rst:11
+msgid ""
+"OnionShare also has a `mailing list "
+"<https://lists.riseup.net/www/subscribe/onionshare-dev>`_ for developers "
+"and and designers to discuss the project."
+msgstr ""
+
+#: ../../source/develop.rst:14
+msgid "Contributing code"
+msgstr ""
+
+#: ../../source/develop.rst:16
+msgid ""
+"OnionShare source code is in this git repository: "
+"https://github.com/micahflee/onionshare"
+msgstr ""
+
+#: ../../source/develop.rst:18
+msgid ""
+"If you'd like to contribute code to OnionShare, it helps to join the "
+"Keybase team and ask questions about what you're thinking of working on. "
+"You should also review all of the `open issues "
+"<https://github.com/micahflee/onionshare/issues>`_ on GitHub to see if "
+"there are any that you'd like to develop."
+msgstr ""
+
+#: ../../source/develop.rst:20
+msgid ""
+"When you're ready to contribute code, open a pull request in the GitHub "
+"repository and one of the project maintainers will review it and possible"
+" ask questions, request changes, reject it, or merge it into the project."
+msgstr ""
+
+#: ../../source/develop.rst:25
+msgid "Starting development"
+msgstr ""
+
+#: ../../source/develop.rst:27
+msgid ""
+"OnionShare is developed in Python. To get started, you should close the "
+"git repository at https://github.com/micahflee/onionshare/ and then "
+"consult the ``BUILD.md`` file."
+msgstr ""
+
+#: ../../source/develop.rst:29
+msgid "That file contains the technical instructions and commands necessary:"
+msgstr ""
+
+#: ../../source/develop.rst:31
+msgid "Install dependencies for your platform"
+msgstr ""
+
+#: ../../source/develop.rst:32
+msgid "Run OnionShare from the source tree, without building a package"
+msgstr ""
+
+#: ../../source/develop.rst:33
+msgid "Building packages"
+msgstr ""
+
+#: ../../source/develop.rst:34
+msgid "Making a release of OnionShare"
+msgstr ""
+
+#: ../../source/develop.rst:37
+msgid "Debugging tips"
+msgstr ""
+
+#: ../../source/develop.rst:40
+msgid "Verbose mode"
+msgstr ""
+
+#: ../../source/develop.rst:42
+msgid ""
+"When developing, it's convenient to run OnionShare from a terminal and "
+"add the ``--verbose`` (or ``-v``) flag to the command. This will print a "
+"lot of helpful messages to the terminal such as when certain objects are "
+"initialized, when events occur (like buttons clicked, settings saved or "
+"reloaded), and other debug information. For example::"
+msgstr ""
+
+#: ../../source/develop.rst:111
+msgid ""
+"You can add your own debug messages by running the ``Common.log`` method "
+"from ``onionshare/common.py``. For example::"
+msgstr ""
+
+#: ../../source/develop.rst:115
+msgid ""
+"This can be useful when learning the chain of events that occur when "
+"using the application or the value of certain variables before and after "
+"they are manipulated."
+msgstr ""
+
+#: ../../source/develop.rst:118
+msgid "Local only"
+msgstr ""
+
+#: ../../source/develop.rst:120
+msgid ""
+"Tor is slow, and it's often convenient to skip starting onion services "
+"altogether during development. You can do this with the ``--local-only`` "
+"flag. For example::"
+msgstr ""
+
+#: ../../source/develop.rst:157
+msgid ""
+"In this case, you load the URL ``http://onionshare:eject-"
+"snack@127.0.0.1:17614`` in a normal web browser like Firefox, instead of "
+"using Tor Browser."
+msgstr ""
+
+#: ../../source/develop.rst:160
+msgid "Debugging in Windows"
+msgstr ""
+
+#: ../../source/develop.rst:162
+msgid ""
+"If you want to obtain debug output from the ``onionshare-gui.exe`` in "
+"Windows, you will need to edit ``install\\pyinstaller.spec`` and change "
+"``console=False`` to ``console=True``."
+msgstr ""
+
+#: ../../source/develop.rst:164
+msgid ""
+"Then rebuild the EXE with ``install\\build_exe.bat`` (you may need to "
+"comment out the ``signtool`` commands in the ``build_exe.bat`` and the "
+"``onionshare.nsi`` files, as per the ``BUILD.md`` instructions)."
+msgstr ""
+
+#: ../../source/develop.rst:166
+msgid ""
+"After this, you can run ``onionshare-gui.exe -v`` from a command prompt "
+"to see the debug output."
+msgstr ""
+
+#: ../../source/develop.rst:169
+msgid "Contributing translations"
+msgstr ""
+
+#: ../../source/develop.rst:171
+msgid ""
+"Most of the OnionShare is translatable. You can help make it easier to "
+"use and more familiar and welcoming for people around the globe. The "
+"Localization Lab has some `documentation about translating OnionShare "
+"<https://wiki.localizationlab.org/index.php/OnionShare>`_."
+msgstr ""
+
+#: ../../source/develop.rst:173
+msgid ""
+"OnionShare uses Weblate to keep track of translations. You can view the "
+"OnionShare project here: https://hosted.weblate.org/projects/onionshare/"
+msgstr ""
+
+#: ../../source/develop.rst:175
+msgid ""
+"To help translate, make a Hosted Weblate account and start contributing "
+"to that project."
+msgstr ""
+
+#: ../../source/develop.rst:178
+msgid "Suggestions for original English strings"
+msgstr ""
+
+#: ../../source/develop.rst:180
+msgid ""
+"Sometimes the original English strings could be improved, making them "
+"easier to translate into other languages."
+msgstr ""
+
+#: ../../source/develop.rst:182
+msgid ""
+"If you have suggestions for a better English string, please open a GitHub"
+" issue rather than commenting in Weblate. This ensures the upstream "
+"developers will definitely see the suggestion, and can potentially modify"
+" the string via the usual code review processes."
+msgstr ""
+
+#: ../../source/develop.rst:185
+msgid "Status of translations"
+msgstr ""
+
+#: ../../source/develop.rst:186
+msgid ""
+"Here is the current translation status. If you want start a translation "
+"in a language not to be found here, please write us to the mailing list: "
+"onionshare-dev@lists.riseup.net"
+msgstr ""
+
+#: ../../source/develop.rst:191
+msgid "Translate the .desktop file"
+msgstr ""
+
+#: ../../source/develop.rst:193
+msgid "You can also translate the ``install/onionshare.desktop`` file."
+msgstr ""
+
+#: ../../source/develop.rst:195
+msgid ""
+"Duplicate the line that begins with ``Comment=``. Add the language code "
+"to the new line so it becomes ``Comment[lang]=`` (lang should be your "
+"language). You can see what language codes are used for translation by "
+"looking at the ``share/locale/*.json`` filenames::"
+msgstr ""
+
+#: ../../source/develop.rst:200
+msgid "Do the same for other untranslated lines."
+msgstr ""
+
diff --git a/docs/source/locale/en/LC_MESSAGES/features.po b/docs/source/locale/en/LC_MESSAGES/features.po
new file mode 100644
index 00000000..29841dd8
--- /dev/null
+++ b/docs/source/locale/en/LC_MESSAGES/features.po
@@ -0,0 +1,382 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/features.rst:4
+msgid "How OnionShare works"
+msgstr ""
+
+#: ../../source/features.rst:6
+msgid ""
+"OnionShare works by starting web servers locally on your own computer and"
+" making them accessible to other people as `Tor "
+"<https://www.torproject.org/>`_ `onion services "
+"<https://community.torproject.org/onion-services/>`_."
+msgstr ""
+
+#: ../../source/features.rst:8
+msgid ""
+"By default, OnionShare web addresses are protected with a random "
+"password. A typical OnionShare address might look something like this::"
+msgstr ""
+
+#: ../../source/features.rst:12
+msgid ""
+"You're responsible for securely sharing that URL using a communication "
+"channel of your choice like in an encrypted chat message, or using "
+"something less secure like a Twitter or Facebook message, depending on "
+"your `threat model <https://ssd.eff.org/en/module/your-security-plan>`_."
+msgstr ""
+
+#: ../../source/features.rst:14
+msgid ""
+"The people who you send the URL to must then copy and paste it into `Tor "
+"Browser <https://www.torproject.org/>`_ to access the OnionShare service."
+msgstr ""
+
+#: ../../source/features.rst:16
+msgid ""
+"With OnionShare, *your own computer is the web server*. If you run "
+"OnionShare on your laptop to send someone files, and then suspend your "
+"laptop before the files have been downloaded, the service will not be "
+"available until your laptop is unsuspended and connected to the internet "
+"again. OnionShare works best when working with people in real-time."
+msgstr ""
+
+#: ../../source/features.rst:18
+msgid ""
+"Because your own computer is the web server, *no third party can access "
+"anything that happens in OnionShare*, not even the developers of "
+"OnionShare. It's completely private. And because OnionShare is based on "
+"Tor onion services too, it also protects your anonymity. See the "
+":doc:`security design </security>` for more information."
+msgstr ""
+
+#: ../../source/features.rst:21
+msgid "Share Files"
+msgstr ""
+
+#: ../../source/features.rst:23
+msgid ""
+"You can use OnionShare to securely and anonymously send files and folders"
+" to people. Just open a share tab, drag in the files and folders you wish"
+" to share, and click \"Start sharing\"."
+msgstr ""
+
+#: ../../source/features.rst:27 ../../source/features.rst:91
+msgid ""
+"After you add files, you'll see some settings. Make sure you choose the "
+"setting you're interested in first before you start sharing."
+msgstr ""
+
+#: ../../source/features.rst:31
+msgid ""
+"By default, as soon as someone finishes downloading your files, "
+"OnionShare will automatically stop the server, completely removing the "
+"website from the internet. If you want to allow multiple people to "
+"download these files, uncheck the \"Stop sharing after files have been "
+"sent (uncheck to allow downloading individual files)\" box."
+msgstr ""
+
+#: ../../source/features.rst:33
+msgid ""
+"Also, if you uncheck this box, people will be able to download individual"
+" files that you share rather than a single compressed version of all of "
+"the files."
+msgstr ""
+
+#: ../../source/features.rst:35
+msgid ""
+"When you're ready to share, click the \"Start sharing\" button. You can "
+"always click \"Stop sharing\", or quit OnionShare, to immediate take the "
+"website down. You can also click the up arrow icon in the top-right "
+"corner to show the history and progress of people downloading files from "
+"you."
+msgstr ""
+
+#: ../../source/features.rst:39
+msgid ""
+"Now that you have a website that's sharing files, copy the address and "
+"send it to the person you want to receive the files. If the files need to"
+" stay secure, you should use an encrypted messaging app."
+msgstr ""
+
+#: ../../source/features.rst:41
+msgid ""
+"That person then must load the address in Tor Browser. After logging in "
+"with the random password that's included in the web address, they will be"
+" able to download the files directly from your computer by clicking the "
+"\"Download Files\" link in the corner."
+msgstr ""
+
+#: ../../source/features.rst:46
+msgid "Receive Files"
+msgstr ""
+
+#: ../../source/features.rst:48
+msgid ""
+"You can use OnionShare to let people anonymously upload files directly to"
+" your computer, essentially turning it into an anonymous dropbox. Open a "
+"receive tab, choose where you want files to get downloaded and other "
+"settings, and then click \"Start Receive Mode\"."
+msgstr ""
+
+#: ../../source/features.rst:52
+msgid ""
+"This will start the OnionShare service. Anyone that loads this address in"
+" Tor Browser will be able to upload files to your computer."
+msgstr ""
+
+#: ../../source/features.rst:56
+msgid ""
+"You can also click the down arrow icon in the top-right corner to show "
+"the history and progress of people sending files to you."
+msgstr ""
+
+#: ../../source/features.rst:58
+msgid "Here is what it looks like for someone sending you files."
+msgstr ""
+
+#: ../../source/features.rst:62
+msgid ""
+"When someone uploads files to your receive service, by default they get "
+"saved to a folder called ``OnionShare`` in your home folder on your "
+"computer, and they get automatically organized into separate subfolders "
+"based on the time that the files get uploaded."
+msgstr ""
+
+#: ../../source/features.rst:64
+msgid ""
+"Setting up an OnionShare receiving service is useful for journalists and "
+"others that need to securely accept documents from anonymous sources. "
+"When used in this way, OnionShare is sort of like a lightweight, simpler,"
+" not quite as secure version of `SecureDrop <https://securedrop.org/>`_, "
+"the whistleblower submission system."
+msgstr ""
+
+#: ../../source/features.rst:67
+msgid "Use at your own risk"
+msgstr ""
+
+#: ../../source/features.rst:69
+msgid ""
+"Just like with malicious email attachments, it's possible that someone "
+"could try to hack your computer by uploading a malicious file to your "
+"OnionShare service. OnionShare does not add any safety mechanisms to "
+"protect your system from malicious files, so use at your own risk."
+msgstr ""
+
+#: ../../source/features.rst:71
+msgid ""
+"If you receive an Office document or a PDF through OnionShare, you can "
+"convert these documents into PDFs that you know are safe to open using "
+"`Dangerzone <https://dangerzone.rocks/>`_. You can also protect yourself "
+"when opening untrusted documents by opening them in `Tails "
+"<https://tails.boum.org/>`_ or in a `Qubes <https://qubes-os.org/>`_ "
+"disposable VM."
+msgstr ""
+
+#: ../../source/features.rst:74
+msgid "Tips for running a receive service"
+msgstr ""
+
+#: ../../source/features.rst:76
+msgid ""
+"If you want to host your own anonymous dropbox using OnionShare, it's "
+"recommended that you do it on a separate, dedicated computer that's "
+"always powered on and connected to the internet, and not on the one you "
+"use on a regular basis."
+msgstr ""
+
+#: ../../source/features.rst:78
+msgid ""
+"If you intend on advertising the OnionShare address on your website or "
+"social media profiles, then you should save the tab (see "
+":ref:`save_tabs`) and run it as a public service (see "
+":ref:`disable_passwords`)."
+msgstr ""
+
+#: ../../source/features.rst:81
+msgid "Host a Website"
+msgstr ""
+
+#: ../../source/features.rst:83
+msgid ""
+"You can use OnionShare to host a static HTML website with just a click. "
+"Just open a website tab, drag in the files and folders that make up the "
+"static website, and click when you're ready click \"Start sharing\"."
+msgstr ""
+
+#: ../../source/features.rst:87
+msgid ""
+"If you add an ``index.html`` file, when someone loads your website it "
+"will render this page. 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:89
+msgid ""
+"If you don't have an ``index.html`` file, then it will show a directory "
+"listing instead, and people who load it can look through the files and "
+"download them."
+msgstr ""
+
+#: ../../source/features.rst:96
+msgid "Content Security Policy"
+msgstr ""
+
+#: ../../source/features.rst:98
+msgid ""
+"By default OnionShare will help secure your website by setting a strict "
+"`Content Security Police "
+"<https://en.wikipedia.org/wiki/Content_Security_Policy>`_ header. However"
+" this will prevent third-party content from loading inside the web page."
+msgstr ""
+
+#: ../../source/features.rst:100
+msgid ""
+"If you want to load content from third-party websites, like assets or "
+"JavaScript libraries from CDNs, then you must check the \"Disable Content"
+" Security Policy header (allows your website to use third-party "
+"resources)\" box before starting the service."
+msgstr ""
+
+#: ../../source/features.rst:103
+msgid "Tips for running a website service"
+msgstr ""
+
+#: ../../source/features.rst:105
+msgid ""
+"If you want to host a long-term website using OnionShare (that isn't just"
+" to quickly show someone something), it's recommended that you do it on a"
+" separate, dedicated computer that's always powered on and connected to "
+"the internet, and not on the one you use on a regular basis. You should "
+"also save the tab (see :ref:`save_tabs`) so that you can resume the "
+"website with the same address if you close OnionShare and re-open it "
+"later."
+msgstr ""
+
+#: ../../source/features.rst:107
+msgid ""
+"If your website is intended to be viewed by the public, you should run it"
+" as a public service (see :ref:`disable_passwords`)."
+msgstr ""
+
+#: ../../source/features.rst:110
+msgid "Chat Anonymously"
+msgstr ""
+
+#: ../../source/features.rst:112
+msgid ""
+"You can use OnionShare to set up a completely anonymous, secure chat room"
+" that doesn't log anything or leave any traces. Just open a chat tab and "
+"click \"Start chat server\"."
+msgstr ""
+
+#: ../../source/features.rst:116
+msgid ""
+"After you start the server, copy the OnionShare address and send it to "
+"the people who will join this anonymous chat room. If it's important to "
+"limit exactly who can join, you should use an encrypted messaging app to "
+"send the OnionShare address."
+msgstr ""
+
+#: ../../source/features.rst:120
+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 set their security level to Standard or Safer instead of"
+" Safest."
+msgstr ""
+
+#: ../../source/features.rst:122
+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 enter. No chat history will get displayed at all, even if "
+"others were already chatting in the room, because the chat history isn't "
+"saved anywhere."
+msgstr ""
+
+#: ../../source/features.rst:126
+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:128
+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, then you can be reasonably confident that the people who join "
+"the chat room are your friends."
+msgstr ""
+
+#: ../../source/features.rst:131
+msgid "How is this useful?"
+msgstr ""
+
+#: ../../source/features.rst:133
+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:135
+msgid ""
+"If you send a message to a Signal group, for example, a copy of your "
+"message ends up on each device (the phones and computers, if they set up "
+"Signal Desktop) of each member of the group. Even if disappearing "
+"messages is enabled, it's hard to confirm that all copies of the messages"
+" were 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 this isn't a problem."
+msgstr ""
+
+#: ../../source/features.rst:137
+msgid ""
+"OnionShare chat rooms can also be useful for anonymous people wanting to "
+"chat 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:140
+msgid "How does the encryption work?"
+msgstr ""
+
+#: ../../source/features.rst:142
+msgid ""
+"Because OnionShare relies on Tor onion services, connections between 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:144
+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/source/locale/en/LC_MESSAGES/help.po b/docs/source/locale/en/LC_MESSAGES/help.po
new file mode 100644
index 00000000..d965eb13
--- /dev/null
+++ b/docs/source/locale/en/LC_MESSAGES/help.po
@@ -0,0 +1,72 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/help.rst:2
+msgid "Getting Help"
+msgstr ""
+
+#: ../../source/help.rst:4
+msgid "If you need help with OnionShare, please follow the instructions below."
+msgstr ""
+
+#: ../../source/help.rst:7
+msgid "Read this website"
+msgstr ""
+
+#: ../../source/help.rst:9
+msgid ""
+"This website is full of instructions on how to use OnionShare. Look "
+"through all of the sections first to see if it answers your questions."
+msgstr ""
+
+#: ../../source/help.rst:12
+msgid "Check the GitHub issues"
+msgstr ""
+
+#: ../../source/help.rst:14
+msgid ""
+"If you can't find a solution in this website, please check the `GitHub "
+"issues <https://github.com/micahflee/onionshare/issues>`_. It's possible "
+"that someone else has encountered the same problem and has either raised "
+"it with the developers, or maybe even posted a solution."
+msgstr ""
+
+#: ../../source/help.rst:17
+msgid "Submit an issue yourself"
+msgstr ""
+
+#: ../../source/help.rst:19
+msgid ""
+"If you can't find a solution to your problem, or you wish to ask a "
+"question or suggest a new feature, please `submit an issue "
+"<https://github.com/micahflee/onionshare/issues/new>`_. This requires "
+"`creating an GitHub account <https://help.github.com/articles/signing-up-"
+"for-a-new-github-account/>`_."
+msgstr ""
+
+#: ../../source/help.rst:22
+msgid "Join our Keybase team"
+msgstr ""
+
+#: ../../source/help.rst:24
+msgid ""
+"See :ref:`collaborating` for instructions on how to join our Keybase team"
+" that we use to discuss the project."
+msgstr ""
+
diff --git a/docs/source/locale/en/LC_MESSAGES/index.po b/docs/source/locale/en/LC_MESSAGES/index.po
new file mode 100644
index 00000000..2ad2653c
--- /dev/null
+++ b/docs/source/locale/en/LC_MESSAGES/index.po
@@ -0,0 +1,29 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:46-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/index.rst:2
+msgid "OnionShare's documentation"
+msgstr ""
+
+#: ../../source/index.rst:6
+msgid ""
+"OnionShare is an open source tool that lets you securely and anonymously "
+"share files, host websites, and chat with friends using the Tor network."
+msgstr ""
+
diff --git a/docs/source/locale/en/LC_MESSAGES/install.po b/docs/source/locale/en/LC_MESSAGES/install.po
new file mode 100644
index 00000000..a2f5b321
--- /dev/null
+++ b/docs/source/locale/en/LC_MESSAGES/install.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/install.rst:2
+msgid "Installation"
+msgstr ""
+
+#: ../../source/install.rst:5
+msgid "Install on Windows or macOS"
+msgstr ""
+
+#: ../../source/install.rst:7
+msgid ""
+"You can download OnionShare for Windows and macOS from the `OnionShare "
+"website <https://onionshare.org/>`_."
+msgstr ""
+
+#: ../../source/install.rst:9
+msgid "For added security, see :ref:`verifying_sigs`."
+msgstr ""
+
+#: ../../source/install.rst:14
+msgid "Install in Linux with Flatpak"
+msgstr ""
+
+#: ../../source/install.rst:16
+msgid ""
+"There are various ways to install OnionShare for Linux, but the "
+"recommended way is to use the Flatpak package. Flatpak ensures that "
+"you'll always use the most latest dependencies and run OnionShare inside "
+"of a sandbox."
+msgstr ""
+
+#: ../../source/install.rst:18
+msgid ""
+"Make sure you have ``flatpak`` installed and the Flathub repository added"
+" by following `these instructions <https://flatpak.org/setup/>`_ for your"
+" Linux distribution."
+msgstr ""
+
+#: ../../source/install.rst:20
+msgid ""
+"Then install OnionShare from Flathub by following `the instructions here "
+"<https://flathub.org/apps/details/org.onionshare.OnionShare>`_."
+msgstr ""
+
+#: ../../source/install.rst:25
+msgid "Verifying PGP signatures"
+msgstr ""
+
+#: ../../source/install.rst:27
+msgid ""
+"You can verify that the Windows, macOS, or source package you download is"
+" legitimate and hasn't been tampered with by verifying its PGP signature."
+" For Windows and macOS, this step is optional and provides defense in "
+"depth: the installers also include their operating system-specific "
+"signatures, and you can just rely on those alone if you'd like."
+msgstr ""
+
+#: ../../source/install.rst:30
+msgid "Signing key"
+msgstr ""
+
+#: ../../source/install.rst:32
+msgid ""
+"Windows, macOS, and source packaged are signed by Micah Lee, the core "
+"developer, using his PGP public key with fingerprint "
+"``927F419D7EC82C2F149C1BD1403C2657CD994F73``. You can download Micah's "
+"key `from the keys.openpgp.org keyserver <https://keys.openpgp.org/vks/v1"
+"/by-fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
+msgstr ""
+
+#: ../../source/install.rst:34
+msgid ""
+"In order to verify signatures, you must have GnuPG installed. For macOS "
+"you probably want `GPGTools <https://gpgtools.org/>`_, and for Windows "
+"you probably want `Gpg4win <https://www.gpg4win.org/>`_."
+msgstr ""
+
+#: ../../source/install.rst:37
+msgid "Signatures"
+msgstr ""
+
+#: ../../source/install.rst:39
+msgid ""
+"You can find the signatures (``.asc`` files), as well as Windows, macOS, "
+"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 <https://github.com/micahflee/onionshare/releases>`_."
+msgstr ""
+
+#: ../../source/install.rst:42
+msgid "Verifying"
+msgstr ""
+
+#: ../../source/install.rst:44
+msgid ""
+"Once you have imported Micah's public key into your GnuPG keychain, "
+"downloaded the binary, and downloaded the ``.asc`` signature, you can "
+"verify the binary for macOS in terminal like this::"
+msgstr ""
+
+#: ../../source/install.rst:48
+msgid "Or for Windows in a command prompt like this::"
+msgstr ""
+
+#: ../../source/install.rst:52
+msgid "An expected output might look like this::"
+msgstr ""
+
+#: ../../source/install.rst:64
+msgid ""
+"If you don't see 'Good signature from', then there might be a problem "
+"with the integrity of the file (malicious or otherwise), and you perhaps "
+"should not install the package. (The WARNING shown above, is not a "
+"problem with the package: it only means you have not defined any level of"
+" 'trust' regarding Micah's PGP key itself.)"
+msgstr ""
+
+#: ../../source/install.rst:66
+msgid ""
+"If you want to learn more about verifying PGP signatures, guides for "
+"`Qubes OS <https://www.qubes-os.org/security/verifying-signatures/>`_ and"
+" the `Tor Project <https://2019.www.torproject.org/docs/verifying-"
+"signatures.html.en>`_ may be helpful."
+msgstr ""
+
diff --git a/docs/source/locale/en/LC_MESSAGES/security.po b/docs/source/locale/en/LC_MESSAGES/security.po
new file mode 100644
index 00000000..13d11a17
--- /dev/null
+++ b/docs/source/locale/en/LC_MESSAGES/security.po
@@ -0,0 +1,114 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/security.rst:2
+msgid "Security design"
+msgstr ""
+
+#: ../../source/security.rst:4
+msgid ""
+"First read :ref:`how_it_works` to understand the basics of how OnionShare"
+" works."
+msgstr ""
+
+#: ../../source/security.rst:6
+msgid "Like all software, OnionShare may contain bugs or vulnerabilities."
+msgstr ""
+
+#: ../../source/security.rst:9
+msgid "What OnionShare protects against"
+msgstr ""
+
+#: ../../source/security.rst:11
+msgid ""
+"**Third parties don't have access to anything that happens in "
+"OnionShare.** When you use OnionShare, you host services directly on your"
+" computer. For example, when you share files with OnionShare, you don't "
+"upload these files to any server, and when you start an OnionShare chat "
+"room, your computer is the chat room server itself. Traditional ways of "
+"sharing files or setting up websites and chat rooms require trusting a "
+"service with access to your data."
+msgstr ""
+
+#: ../../source/security.rst:13
+msgid ""
+"**Network eavesdroppers can't spy on anything that happens in OnionShare "
+"in transit.** Because connections between Tor onion services and Tor "
+"Browser are end-to-end encrypted, no network attackers can eavesdrop on "
+"what happens in an OnionShare service. If the eavesdropper is positioned "
+"on the OnionShare user's end, the Tor Browser user's end, or is a "
+"malicious Tor node, they will only see Tor traffic. If the eavesdropper "
+"is a malicious rendezvous node used to connect Tor Browser with "
+"OnionShare's onion service, the traffic will be encrypted using the onion"
+" service key."
+msgstr ""
+
+#: ../../source/security.rst:15
+msgid ""
+"**Anonymity of OnionShare users are protected by Tor.** OnionShare and "
+"Tor Browser protect the anonymity of the users. As long as the OnionShare"
+" user anonymously communicates the OnionShare address with the Tor "
+"Browser users, the Tor Browser users and eavesdroppers can't learn the "
+"identity of the OnionShare user."
+msgstr ""
+
+#: ../../source/security.rst:17
+msgid ""
+"**If an attacker learns about the onion service, they still can't access "
+"anything.** There have been attacks against the Tor network that can "
+"enumerate onion services. Even if someone discovers the .onion address of"
+" an OnionShare onion service, they can't access it without also knowing "
+"the service's random password (unless, of course, the OnionShare users "
+"chooses to disable the password and make it public). The password is "
+"generated by choosing two random words from a list of 6800 words, meaning"
+" there are 6800^2, or about 46 million possible password. But they can "
+"only make 20 wrong guesses before OnionShare stops the server, preventing"
+" brute force attacks against the password."
+msgstr ""
+
+#: ../../source/security.rst:20
+msgid "What OnionShare doesn't protect against"
+msgstr ""
+
+#: ../../source/security.rst:22
+msgid ""
+"**Communicating the OnionShare address might not be secure.** The "
+"OnionShare user is responsible for securely communicating the OnionShare "
+"address with people. If they send it insecurely (such as through an email"
+" message, and their email is being monitored by an attacker), the "
+"eavesdropper will learn that they're using OnionShare. If the attacker "
+"loads the address in Tor Browser before the legitimate recipient gets to "
+"it, they can access the service. If this risk fits the user's threat "
+"model, they must find a more secure way to communicate the address, such "
+"as in an encrypted email, chat, or voice call. This isn't necessary in "
+"cases where OnionShare is being used for something that isn't secret."
+msgstr ""
+
+#: ../../source/security.rst:24
+msgid ""
+"**Communicating the OnionShare address might not be anonymous.** While "
+"OnionShare and Tor Browser allow for anonymity, if the user wishes to "
+"remain anonymous they must take extra steps to ensure this while "
+"communicating the OnionShare address. For example, they might need to use"
+" Tor to create a new anonymous email or chat account, and only access it "
+"over Tor, to use for sharing the address. This isn't necessary in cases "
+"where there's no need to protect anonymity, such as co-workers who know "
+"each other sharing work documents."
+msgstr ""
+
diff --git a/docs/source/locale/en/LC_MESSAGES/sphinx.po b/docs/source/locale/en/LC_MESSAGES/sphinx.po
new file mode 100644
index 00000000..f2cc8ed5
--- /dev/null
+++ b/docs/source/locale/en/LC_MESSAGES/sphinx.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/_templates/versions.html:10
+msgid "Versions"
+msgstr ""
+
+#: ../../source/_templates/versions.html:18
+msgid "Languages"
+msgstr ""
+
diff --git a/docs/source/locale/en/LC_MESSAGES/tor.po b/docs/source/locale/en/LC_MESSAGES/tor.po
new file mode 100644
index 00000000..35edc6e4
--- /dev/null
+++ b/docs/source/locale/en/LC_MESSAGES/tor.po
@@ -0,0 +1,213 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/tor.rst:2
+msgid "Connecting to Tor"
+msgstr ""
+
+#: ../../source/tor.rst:4
+msgid ""
+"There are several options for how OnionShare should connect to Tor. You "
+"can change them in Settings, which you can get to by clicking the gear "
+"icon in the bottom-right of the window."
+msgstr ""
+
+#: ../../source/tor.rst:9
+msgid "Use Tor that is bundled with OnionShare"
+msgstr ""
+
+#: ../../source/tor.rst:11
+msgid ""
+"This is the default way that OnionShare connects to Tor, and it's also "
+"the simplest and most reliable way. For this reason, it's recommended for"
+" most users."
+msgstr ""
+
+#: ../../source/tor.rst:13
+msgid ""
+"When you open OnionShare, it will launch a Tor process in the background "
+"that's configured specifically for OnionShare to use. This Tor process "
+"won't interfere with other Tor processes on your computer, so you're free"
+" to run Tor Browser or use a system Tor in the background."
+msgstr ""
+
+#: ../../source/tor.rst:16
+msgid "Attempt automatic configuration with Tor Browser"
+msgstr ""
+
+#: ../../source/tor.rst:18
+msgid ""
+"You can configure OnionShare to connect to the Tor that comes with Tor "
+"Browser. First, `download Tor Browser <https://www.torproject.org>`_ here"
+" if you don't already have it. With this setting selected, you need to "
+"keep Tor Browser open in the background while you're using OnionShare."
+msgstr ""
+
+#: ../../source/tor.rst:21
+msgid "Using a system Tor in Windows"
+msgstr ""
+
+#: ../../source/tor.rst:23
+msgid ""
+"This is fairly advanced. You'll need to know how edit plaintext files and"
+" do stuff as an administrator."
+msgstr ""
+
+#: ../../source/tor.rst:25
+msgid ""
+"Download the Tor Windows Expert Bundle, which you can get `from here "
+"<https://www.torproject.org/download/tor/>`_. Extract the zip file and "
+"copy the extracted folder to ``C:\\Program Files (x86)\\``, and rename "
+"the folder to ``tor-win32``, so that inside that folder is the ``Data`` "
+"and ``Tor`` folders."
+msgstr ""
+
+#: ../../source/tor.rst:27
+msgid ""
+"Make up a control port password. I'm going to use ``comprised stumble "
+"rummage work avenging construct volatile`` as my password. Now open a "
+"command prompt as an administrator, and use ``tor.exe --hash-password`` "
+"to generate a hash of your password. For example::"
+msgstr ""
+
+#: ../../source/tor.rst:32
+msgid ""
+"The hashed password output is displayed after some warnings (which you "
+"can ignore). In my case, it was "
+"``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``."
+msgstr ""
+
+#: ../../source/tor.rst:34
+msgid ""
+"Now create a new text file at ``C:\\Program Files (x86)\\tor-"
+"win32\\torrc`` and put this in it, replacing the "
+"``HashedControlPassword`` with the one you just generated::"
+msgstr ""
+
+#: ../../source/tor.rst:39
+msgid ""
+"In your administrator command prompt, install tor as a service using the "
+"appropriate ``torrc`` file you just created (see `here "
+"<https://2019.www.torproject.org/docs/faq.html.en#NTService>`_ for more "
+"information on doing this). Like this::"
+msgstr ""
+
+#: ../../source/tor.rst:43
+msgid "You're now running a system Tor in Windows!"
+msgstr ""
+
+#: ../../source/tor.rst:45
+msgid ""
+"Open OnionShare. Click the Settings icon. Under \"How should OnionShare "
+"connect to Tor?\" choose \"Connect using control port\", and set the "
+"control port host to ``127.0.0.1`` and the port to ``9051``. Under \"Tor "
+"authentication options\" choose \"Password\" and set the password to your"
+" password, in my case ``comprised stumble rummage work avenging construct"
+" volatile``. Click the \"Test Settings\" button. If all goes well, you "
+"should see successfully connected to tor."
+msgstr ""
+
+#: ../../source/tor.rst:48
+msgid "Using a system Tor in Mac OS X"
+msgstr ""
+
+#: ../../source/tor.rst:50
+msgid ""
+"First, install `Homebrew <http://brew.sh/>`_ if you don't already have "
+"it. Then, install Tor::"
+msgstr ""
+
+#: ../../source/tor.rst:54
+msgid "Now configure Tor to allow connections from OnionShare::"
+msgstr ""
+
+#: ../../source/tor.rst:61
+msgid "And start the system Tor service::"
+msgstr ""
+
+#: ../../source/tor.rst:65
+msgid ""
+"Open OnionShare. Click the Settings icon. Under \"How should OnionShare "
+"connect to Tor?\" choose \"Connect using socket file\", and set the "
+"socket file to be ``/usr/local/var/run/tor/control.socket``. Under \"Tor "
+"authentication options\" choose \"No authentication, or cookie "
+"authentication\". Click the \"Test Settings\" button. If all goes well, "
+"you should see successfully connected to tor."
+msgstr ""
+
+#: ../../source/tor.rst:68
+msgid "Using a system Tor in Linux"
+msgstr ""
+
+#: ../../source/tor.rst:70
+msgid ""
+"First, install the tor package. If you're using Debian, Ubuntu, or a "
+"similar Linux distro, I recommend you use Tor Project's `official "
+"repository <https://2019.www.torproject.org/docs/debian.html.en>`_. For "
+"example, in Ubuntu 20.04::"
+msgstr ""
+
+#: ../../source/tor.rst:78
+msgid ""
+"Next, add your user to the group that runs the Tor process (in the case "
+"of Debian and Ubuntu, ``debian-tor``) and configure OnionShare to connect"
+" to your system Tor's control socket file."
+msgstr ""
+
+#: ../../source/tor.rst:80
+msgid ""
+"Add your user to the ``debian-tor`` group by running this command "
+"(replace ``username`` with your actual username)::"
+msgstr ""
+
+#: ../../source/tor.rst:84
+msgid ""
+"Reboot your computer. After it boots up again, open OnionShare. Click the"
+" Settings icon. Under \"How should OnionShare connect to Tor?\" choose "
+"\"Connect using socket file\", and set the socket file to be "
+"``/var/run/tor/control``. Under \"Tor authentication options\" choose "
+"\"No authentication, or cookie authentication\". Click the \"Test "
+"Settings\" button. If all goes well, you should see successfully connect "
+"to Tor."
+msgstr ""
+
+#: ../../source/tor.rst:87
+msgid "Using Tor bridges"
+msgstr ""
+
+#: ../../source/tor.rst:89
+msgid ""
+"If your access to the internet is censored, you can configure OnionShare "
+"to connect to the Tor network using `Tor bridges "
+"<https://2019.www.torproject.org/docs/bridges.html.en>`_. If OnionShare "
+"successfully connects to Tor, you don't need to use a bridge."
+msgstr ""
+
+#: ../../source/tor.rst:91
+msgid "To configure bridges, open OnionShare settings."
+msgstr ""
+
+#: ../../source/tor.rst:93
+msgid ""
+"You can use the built-in obfs4 pluggable transports, the built-in "
+"meek_lite (Azure) pluggable transports, or custom bridges, which you can "
+"obtain from Tor's `BridgeDB <https://bridges.torproject.org/>`_. If you "
+"need to use a bridge, you should try the built-in obfs4 ones first."
+msgstr ""
+
diff --git a/docs/source/locale/nl/LC_MESSAGES/advanced.po b/docs/source/locale/nl/LC_MESSAGES/advanced.po
new file mode 100644
index 00000000..0b9fd78c
--- /dev/null
+++ b/docs/source/locale/nl/LC_MESSAGES/advanced.po
@@ -0,0 +1,224 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/advanced.rst:2
+msgid "Advanced usage"
+msgstr ""
+
+#: ../../source/advanced.rst:7
+msgid "Save tabs"
+msgstr ""
+
+#: ../../source/advanced.rst:9
+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. "
+"But sometimes you might want an OnionShare service to be persistent. For "
+"example, this would be useful if you want to host a website that can keep"
+" the same URL even if you reboot your computer."
+msgstr ""
+
+#: ../../source/advanced.rst:11
+msgid ""
+"To make any tab persistent, check the \"Save this tab, and automatically "
+"open it when I open OnionShare\" box before starting the server. When a "
+"tab is saved a purple pin icon appears to the left of its server status."
+msgstr ""
+
+#: ../../source/advanced.rst:15
+msgid ""
+"When you quit OnionShare and then open it again, your saved tabs will "
+"start out open. You'll have to manually start each service, but when you "
+"do they will start with the same OnionShare address, and with the same "
+"password."
+msgstr ""
+
+#: ../../source/advanced.rst:17
+msgid ""
+"If you save a tab, a copy of that tab's onion service secret key will be "
+"stored on your computer with your OnionShare settings."
+msgstr ""
+
+#: ../../source/advanced.rst:22
+msgid "Disable passwords"
+msgstr ""
+
+#: ../../source/advanced.rst:24
+msgid ""
+"By default, all OnionShare services are protected with the username "
+"`onionshare` and a randomly-generated password. If someone makes 20 wrong"
+" guesses of the password, your onion service is automatically stopped to "
+"prevent a brute force attack against the OnionShare service."
+msgstr ""
+
+#: ../../source/advanced.rst:26
+msgid ""
+"But sometimes you might want your OnionShare service to be accessible to "
+"the public. For example, if you want to set up an OnionShare receive "
+"service so the public can securely and anonymously send you files. In "
+"this case, it's better to disable the password altogether. If you don't "
+"do this, someone can force your server to stop just by making 20 wrong "
+"guesses of your password, even if they know the correct password."
+msgstr ""
+
+#: ../../source/advanced.rst:28
+msgid ""
+"To disable the password for any tab, just check the \"Don't use a "
+"password\" box before starting the server. Then the server will be public"
+" and won't have a password."
+msgstr ""
+
+#: ../../source/advanced.rst:31
+msgid "Scheduled times"
+msgstr ""
+
+#: ../../source/advanced.rst:33
+msgid ""
+"OnionShare supports scheduling exactly when a service should start and "
+"stop. Before starting 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 desired dates and times."
+msgstr ""
+
+#: ../../source/advanced.rst:35
+msgid ""
+"If you scheduled a service to start in the future, when you click the "
+"start button you will see a timer counting down until it will start. If "
+"you scheduled it to stop in the future, after it's started you will see a"
+" timer counting down to when it will stop automatically."
+msgstr ""
+
+#: ../../source/advanced.rst:37
+msgid ""
+"**Scheduling an OnionShare service to automatically start can be used as "
+"a dead man's switch**, where your service will be made public at a given "
+"time in the future if anything happens to you. If nothing happens to you,"
+" you can cancel the service before it's scheduled to start."
+msgstr ""
+
+#: ../../source/advanced.rst:41
+msgid ""
+"**Scheduling an OnionShare service to automatically stop can be useful to"
+" limit exposure**, like if you want to share secret documents while "
+"making sure they're not available on the internet for more than a few "
+"days."
+msgstr ""
+
+#: ../../source/advanced.rst:46
+msgid "Command line interface"
+msgstr ""
+
+#: ../../source/advanced.rst:48
+msgid ""
+"In addition to its graphical interface, OnionShare has a command line "
+"interface."
+msgstr ""
+
+#: ../../source/advanced.rst:51
+msgid "Linux"
+msgstr ""
+
+#: ../../source/advanced.rst:53
+msgid ""
+"If you installed OnionShare using the Flatpak package, unfortunately the "
+"command line interface isn't supported."
+msgstr ""
+
+#: ../../source/advanced.rst:55
+msgid ""
+"If you installed OnionShare using an operating system package, you can "
+"just run ``onionshare`` from the terminal."
+msgstr ""
+
+#: ../../source/advanced.rst:58
+msgid "macOS"
+msgstr ""
+
+#: ../../source/advanced.rst:60
+msgid "Make a symbolic link to the OnionShare command line binary line this::"
+msgstr ""
+
+#: ../../source/advanced.rst:64
+msgid "Now you can run ``onionshare`` from the terminal."
+msgstr ""
+
+#: ../../source/advanced.rst:67
+msgid "Windows"
+msgstr ""
+
+#: ../../source/advanced.rst:69
+msgid "The command line interface isn't supported in Windows."
+msgstr ""
+
+#: ../../source/advanced.rst:71
+msgid ""
+"If you really want to use it anyway, you can set up a Windows development"
+" environment (see :ref:`starting_development`) and then run this in a "
+"command prompt::"
+msgstr ""
+
+#: ../../source/advanced.rst:76
+msgid "Usage"
+msgstr ""
+
+#: ../../source/advanced.rst:78
+msgid "You can see command line documentation by running ``onionshare --help``::"
+msgstr ""
+
+#: ../../source/advanced.rst:134
+msgid "Legacy addresses"
+msgstr ""
+
+#: ../../source/advanced.rst:136
+msgid ""
+"OnionShare uses v3 Tor onion services by default. These are modern onion "
+"addresses that have 56 characters, for example::"
+msgstr ""
+
+#: ../../source/advanced.rst:140
+msgid ""
+"But it still has support for v2 onion addresses, the old type of onion "
+"addresses that have 16 characters, for example::"
+msgstr ""
+
+#: ../../source/advanced.rst:144
+msgid ""
+"OnionShare calls v2 onion addresses \"legacy addresses\". v3 onion "
+"addresses are more secure, and using legacy addresses is not recommended."
+msgstr ""
+
+#: ../../source/advanced.rst:146
+msgid ""
+"To use legacy addresses, before starting a server click \"Show advanced "
+"settings\" in its tab and check the \"Use a legacy address (v2 onion "
+"service, not recommended)\" box. In legacy mode you can optionally enable"
+" Tor client authentication. Once you start a server in legacy mode you "
+"cannot remove legacy mode in that tab. Instead you must start a separate "
+"service in a separate tab."
+msgstr ""
+
+#: ../../source/advanced.rst:148
+msgid ""
+"Tor Project plans to `completely deprecate v2 onion services "
+"<https://blog.torproject.org/v2-deprecation-timeline>`_ on October 15, "
+"2021, and legacy onion services will soon be removed from OnionShare as "
+"well."
+msgstr ""
+
diff --git a/docs/source/locale/nl/LC_MESSAGES/develop.po b/docs/source/locale/nl/LC_MESSAGES/develop.po
new file mode 100644
index 00000000..6e7eb464
--- /dev/null
+++ b/docs/source/locale/nl/LC_MESSAGES/develop.po
@@ -0,0 +1,248 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/develop.rst:2
+msgid "Developing OnionShare"
+msgstr ""
+
+#: ../../source/develop.rst:7
+msgid "Collaborating"
+msgstr ""
+
+#: ../../source/develop.rst:9
+msgid ""
+"OnionShare has an open Keybase team that we use to discuss the project, "
+"including asking questions, sharing ideas and designs, and making plans "
+"for future development. (It's also an easy way to send end-to-end "
+"encrypted direct messages to others in the OnionShare community, like "
+"OnionShare addresses.) To use Keybase, you need to download the `Keybase "
+"app <https://keybase.io/download>`_, make an account, and `join this team"
+" <https://keybase.io/team/onionshare>`_. Within the app, go to Teams, "
+"click \"Join a Team\", and type \"onionshare\"."
+msgstr ""
+
+#: ../../source/develop.rst:11
+msgid ""
+"OnionShare also has a `mailing list "
+"<https://lists.riseup.net/www/subscribe/onionshare-dev>`_ for developers "
+"and and designers to discuss the project."
+msgstr ""
+
+#: ../../source/develop.rst:14
+msgid "Contributing code"
+msgstr ""
+
+#: ../../source/develop.rst:16
+msgid ""
+"OnionShare source code is in this git repository: "
+"https://github.com/micahflee/onionshare"
+msgstr ""
+
+#: ../../source/develop.rst:18
+msgid ""
+"If you'd like to contribute code to OnionShare, it helps to join the "
+"Keybase team and ask questions about what you're thinking of working on. "
+"You should also review all of the `open issues "
+"<https://github.com/micahflee/onionshare/issues>`_ on GitHub to see if "
+"there are any that you'd like to develop."
+msgstr ""
+
+#: ../../source/develop.rst:20
+msgid ""
+"When you're ready to contribute code, open a pull request in the GitHub "
+"repository and one of the project maintainers will review it and possible"
+" ask questions, request changes, reject it, or merge it into the project."
+msgstr ""
+
+#: ../../source/develop.rst:25
+msgid "Starting development"
+msgstr ""
+
+#: ../../source/develop.rst:27
+msgid ""
+"OnionShare is developed in Python. To get started, you should close the "
+"git repository at https://github.com/micahflee/onionshare/ and then "
+"consult the ``BUILD.md`` file."
+msgstr ""
+
+#: ../../source/develop.rst:29
+msgid "That file contains the technical instructions and commands necessary:"
+msgstr ""
+
+#: ../../source/develop.rst:31
+msgid "Install dependencies for your platform"
+msgstr ""
+
+#: ../../source/develop.rst:32
+msgid "Run OnionShare from the source tree, without building a package"
+msgstr ""
+
+#: ../../source/develop.rst:33
+msgid "Building packages"
+msgstr ""
+
+#: ../../source/develop.rst:34
+msgid "Making a release of OnionShare"
+msgstr ""
+
+#: ../../source/develop.rst:37
+msgid "Debugging tips"
+msgstr ""
+
+#: ../../source/develop.rst:40
+msgid "Verbose mode"
+msgstr ""
+
+#: ../../source/develop.rst:42
+msgid ""
+"When developing, it's convenient to run OnionShare from a terminal and "
+"add the ``--verbose`` (or ``-v``) flag to the command. This will print a "
+"lot of helpful messages to the terminal such as when certain objects are "
+"initialized, when events occur (like buttons clicked, settings saved or "
+"reloaded), and other debug information. For example::"
+msgstr ""
+
+#: ../../source/develop.rst:111
+msgid ""
+"You can add your own debug messages by running the ``Common.log`` method "
+"from ``onionshare/common.py``. For example::"
+msgstr ""
+
+#: ../../source/develop.rst:115
+msgid ""
+"This can be useful when learning the chain of events that occur when "
+"using the application or the value of certain variables before and after "
+"they are manipulated."
+msgstr ""
+
+#: ../../source/develop.rst:118
+msgid "Local only"
+msgstr ""
+
+#: ../../source/develop.rst:120
+msgid ""
+"Tor is slow, and it's often convenient to skip starting onion services "
+"altogether during development. You can do this with the ``--local-only`` "
+"flag. For example::"
+msgstr ""
+
+#: ../../source/develop.rst:157
+msgid ""
+"In this case, you load the URL ``http://onionshare:eject-"
+"snack@127.0.0.1:17614`` in a normal web browser like Firefox, instead of "
+"using Tor Browser."
+msgstr ""
+
+#: ../../source/develop.rst:160
+msgid "Debugging in Windows"
+msgstr ""
+
+#: ../../source/develop.rst:162
+msgid ""
+"If you want to obtain debug output from the ``onionshare-gui.exe`` in "
+"Windows, you will need to edit ``install\\pyinstaller.spec`` and change "
+"``console=False`` to ``console=True``."
+msgstr ""
+
+#: ../../source/develop.rst:164
+msgid ""
+"Then rebuild the EXE with ``install\\build_exe.bat`` (you may need to "
+"comment out the ``signtool`` commands in the ``build_exe.bat`` and the "
+"``onionshare.nsi`` files, as per the ``BUILD.md`` instructions)."
+msgstr ""
+
+#: ../../source/develop.rst:166
+msgid ""
+"After this, you can run ``onionshare-gui.exe -v`` from a command prompt "
+"to see the debug output."
+msgstr ""
+
+#: ../../source/develop.rst:169
+msgid "Contributing translations"
+msgstr ""
+
+#: ../../source/develop.rst:171
+msgid ""
+"Most of the OnionShare is translatable. You can help make it easier to "
+"use and more familiar and welcoming for people around the globe. The "
+"Localization Lab has some `documentation about translating OnionShare "
+"<https://wiki.localizationlab.org/index.php/OnionShare>`_."
+msgstr ""
+
+#: ../../source/develop.rst:173
+msgid ""
+"OnionShare uses Weblate to keep track of translations. You can view the "
+"OnionShare project here: https://hosted.weblate.org/projects/onionshare/"
+msgstr ""
+
+#: ../../source/develop.rst:175
+msgid ""
+"To help translate, make a Hosted Weblate account and start contributing "
+"to that project."
+msgstr ""
+
+#: ../../source/develop.rst:178
+msgid "Suggestions for original English strings"
+msgstr ""
+
+#: ../../source/develop.rst:180
+msgid ""
+"Sometimes the original English strings could be improved, making them "
+"easier to translate into other languages."
+msgstr ""
+
+#: ../../source/develop.rst:182
+msgid ""
+"If you have suggestions for a better English string, please open a GitHub"
+" issue rather than commenting in Weblate. This ensures the upstream "
+"developers will definitely see the suggestion, and can potentially modify"
+" the string via the usual code review processes."
+msgstr ""
+
+#: ../../source/develop.rst:185
+msgid "Status of translations"
+msgstr ""
+
+#: ../../source/develop.rst:186
+msgid ""
+"Here is the current translation status. If you want start a translation "
+"in a language not to be found here, please write us to the mailing list: "
+"onionshare-dev@lists.riseup.net"
+msgstr ""
+
+#: ../../source/develop.rst:191
+msgid "Translate the .desktop file"
+msgstr ""
+
+#: ../../source/develop.rst:193
+msgid "You can also translate the ``install/onionshare.desktop`` file."
+msgstr ""
+
+#: ../../source/develop.rst:195
+msgid ""
+"Duplicate the line that begins with ``Comment=``. Add the language code "
+"to the new line so it becomes ``Comment[lang]=`` (lang should be your "
+"language). You can see what language codes are used for translation by "
+"looking at the ``share/locale/*.json`` filenames::"
+msgstr ""
+
+#: ../../source/develop.rst:200
+msgid "Do the same for other untranslated lines."
+msgstr ""
+
diff --git a/docs/source/locale/nl/LC_MESSAGES/features.po b/docs/source/locale/nl/LC_MESSAGES/features.po
new file mode 100644
index 00000000..29841dd8
--- /dev/null
+++ b/docs/source/locale/nl/LC_MESSAGES/features.po
@@ -0,0 +1,382 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/features.rst:4
+msgid "How OnionShare works"
+msgstr ""
+
+#: ../../source/features.rst:6
+msgid ""
+"OnionShare works by starting web servers locally on your own computer and"
+" making them accessible to other people as `Tor "
+"<https://www.torproject.org/>`_ `onion services "
+"<https://community.torproject.org/onion-services/>`_."
+msgstr ""
+
+#: ../../source/features.rst:8
+msgid ""
+"By default, OnionShare web addresses are protected with a random "
+"password. A typical OnionShare address might look something like this::"
+msgstr ""
+
+#: ../../source/features.rst:12
+msgid ""
+"You're responsible for securely sharing that URL using a communication "
+"channel of your choice like in an encrypted chat message, or using "
+"something less secure like a Twitter or Facebook message, depending on "
+"your `threat model <https://ssd.eff.org/en/module/your-security-plan>`_."
+msgstr ""
+
+#: ../../source/features.rst:14
+msgid ""
+"The people who you send the URL to must then copy and paste it into `Tor "
+"Browser <https://www.torproject.org/>`_ to access the OnionShare service."
+msgstr ""
+
+#: ../../source/features.rst:16
+msgid ""
+"With OnionShare, *your own computer is the web server*. If you run "
+"OnionShare on your laptop to send someone files, and then suspend your "
+"laptop before the files have been downloaded, the service will not be "
+"available until your laptop is unsuspended and connected to the internet "
+"again. OnionShare works best when working with people in real-time."
+msgstr ""
+
+#: ../../source/features.rst:18
+msgid ""
+"Because your own computer is the web server, *no third party can access "
+"anything that happens in OnionShare*, not even the developers of "
+"OnionShare. It's completely private. And because OnionShare is based on "
+"Tor onion services too, it also protects your anonymity. See the "
+":doc:`security design </security>` for more information."
+msgstr ""
+
+#: ../../source/features.rst:21
+msgid "Share Files"
+msgstr ""
+
+#: ../../source/features.rst:23
+msgid ""
+"You can use OnionShare to securely and anonymously send files and folders"
+" to people. Just open a share tab, drag in the files and folders you wish"
+" to share, and click \"Start sharing\"."
+msgstr ""
+
+#: ../../source/features.rst:27 ../../source/features.rst:91
+msgid ""
+"After you add files, you'll see some settings. Make sure you choose the "
+"setting you're interested in first before you start sharing."
+msgstr ""
+
+#: ../../source/features.rst:31
+msgid ""
+"By default, as soon as someone finishes downloading your files, "
+"OnionShare will automatically stop the server, completely removing the "
+"website from the internet. If you want to allow multiple people to "
+"download these files, uncheck the \"Stop sharing after files have been "
+"sent (uncheck to allow downloading individual files)\" box."
+msgstr ""
+
+#: ../../source/features.rst:33
+msgid ""
+"Also, if you uncheck this box, people will be able to download individual"
+" files that you share rather than a single compressed version of all of "
+"the files."
+msgstr ""
+
+#: ../../source/features.rst:35
+msgid ""
+"When you're ready to share, click the \"Start sharing\" button. You can "
+"always click \"Stop sharing\", or quit OnionShare, to immediate take the "
+"website down. You can also click the up arrow icon in the top-right "
+"corner to show the history and progress of people downloading files from "
+"you."
+msgstr ""
+
+#: ../../source/features.rst:39
+msgid ""
+"Now that you have a website that's sharing files, copy the address and "
+"send it to the person you want to receive the files. If the files need to"
+" stay secure, you should use an encrypted messaging app."
+msgstr ""
+
+#: ../../source/features.rst:41
+msgid ""
+"That person then must load the address in Tor Browser. After logging in "
+"with the random password that's included in the web address, they will be"
+" able to download the files directly from your computer by clicking the "
+"\"Download Files\" link in the corner."
+msgstr ""
+
+#: ../../source/features.rst:46
+msgid "Receive Files"
+msgstr ""
+
+#: ../../source/features.rst:48
+msgid ""
+"You can use OnionShare to let people anonymously upload files directly to"
+" your computer, essentially turning it into an anonymous dropbox. Open a "
+"receive tab, choose where you want files to get downloaded and other "
+"settings, and then click \"Start Receive Mode\"."
+msgstr ""
+
+#: ../../source/features.rst:52
+msgid ""
+"This will start the OnionShare service. Anyone that loads this address in"
+" Tor Browser will be able to upload files to your computer."
+msgstr ""
+
+#: ../../source/features.rst:56
+msgid ""
+"You can also click the down arrow icon in the top-right corner to show "
+"the history and progress of people sending files to you."
+msgstr ""
+
+#: ../../source/features.rst:58
+msgid "Here is what it looks like for someone sending you files."
+msgstr ""
+
+#: ../../source/features.rst:62
+msgid ""
+"When someone uploads files to your receive service, by default they get "
+"saved to a folder called ``OnionShare`` in your home folder on your "
+"computer, and they get automatically organized into separate subfolders "
+"based on the time that the files get uploaded."
+msgstr ""
+
+#: ../../source/features.rst:64
+msgid ""
+"Setting up an OnionShare receiving service is useful for journalists and "
+"others that need to securely accept documents from anonymous sources. "
+"When used in this way, OnionShare is sort of like a lightweight, simpler,"
+" not quite as secure version of `SecureDrop <https://securedrop.org/>`_, "
+"the whistleblower submission system."
+msgstr ""
+
+#: ../../source/features.rst:67
+msgid "Use at your own risk"
+msgstr ""
+
+#: ../../source/features.rst:69
+msgid ""
+"Just like with malicious email attachments, it's possible that someone "
+"could try to hack your computer by uploading a malicious file to your "
+"OnionShare service. OnionShare does not add any safety mechanisms to "
+"protect your system from malicious files, so use at your own risk."
+msgstr ""
+
+#: ../../source/features.rst:71
+msgid ""
+"If you receive an Office document or a PDF through OnionShare, you can "
+"convert these documents into PDFs that you know are safe to open using "
+"`Dangerzone <https://dangerzone.rocks/>`_. You can also protect yourself "
+"when opening untrusted documents by opening them in `Tails "
+"<https://tails.boum.org/>`_ or in a `Qubes <https://qubes-os.org/>`_ "
+"disposable VM."
+msgstr ""
+
+#: ../../source/features.rst:74
+msgid "Tips for running a receive service"
+msgstr ""
+
+#: ../../source/features.rst:76
+msgid ""
+"If you want to host your own anonymous dropbox using OnionShare, it's "
+"recommended that you do it on a separate, dedicated computer that's "
+"always powered on and connected to the internet, and not on the one you "
+"use on a regular basis."
+msgstr ""
+
+#: ../../source/features.rst:78
+msgid ""
+"If you intend on advertising the OnionShare address on your website or "
+"social media profiles, then you should save the tab (see "
+":ref:`save_tabs`) and run it as a public service (see "
+":ref:`disable_passwords`)."
+msgstr ""
+
+#: ../../source/features.rst:81
+msgid "Host a Website"
+msgstr ""
+
+#: ../../source/features.rst:83
+msgid ""
+"You can use OnionShare to host a static HTML website with just a click. "
+"Just open a website tab, drag in the files and folders that make up the "
+"static website, and click when you're ready click \"Start sharing\"."
+msgstr ""
+
+#: ../../source/features.rst:87
+msgid ""
+"If you add an ``index.html`` file, when someone loads your website it "
+"will render this page. 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:89
+msgid ""
+"If you don't have an ``index.html`` file, then it will show a directory "
+"listing instead, and people who load it can look through the files and "
+"download them."
+msgstr ""
+
+#: ../../source/features.rst:96
+msgid "Content Security Policy"
+msgstr ""
+
+#: ../../source/features.rst:98
+msgid ""
+"By default OnionShare will help secure your website by setting a strict "
+"`Content Security Police "
+"<https://en.wikipedia.org/wiki/Content_Security_Policy>`_ header. However"
+" this will prevent third-party content from loading inside the web page."
+msgstr ""
+
+#: ../../source/features.rst:100
+msgid ""
+"If you want to load content from third-party websites, like assets or "
+"JavaScript libraries from CDNs, then you must check the \"Disable Content"
+" Security Policy header (allows your website to use third-party "
+"resources)\" box before starting the service."
+msgstr ""
+
+#: ../../source/features.rst:103
+msgid "Tips for running a website service"
+msgstr ""
+
+#: ../../source/features.rst:105
+msgid ""
+"If you want to host a long-term website using OnionShare (that isn't just"
+" to quickly show someone something), it's recommended that you do it on a"
+" separate, dedicated computer that's always powered on and connected to "
+"the internet, and not on the one you use on a regular basis. You should "
+"also save the tab (see :ref:`save_tabs`) so that you can resume the "
+"website with the same address if you close OnionShare and re-open it "
+"later."
+msgstr ""
+
+#: ../../source/features.rst:107
+msgid ""
+"If your website is intended to be viewed by the public, you should run it"
+" as a public service (see :ref:`disable_passwords`)."
+msgstr ""
+
+#: ../../source/features.rst:110
+msgid "Chat Anonymously"
+msgstr ""
+
+#: ../../source/features.rst:112
+msgid ""
+"You can use OnionShare to set up a completely anonymous, secure chat room"
+" that doesn't log anything or leave any traces. Just open a chat tab and "
+"click \"Start chat server\"."
+msgstr ""
+
+#: ../../source/features.rst:116
+msgid ""
+"After you start the server, copy the OnionShare address and send it to "
+"the people who will join this anonymous chat room. If it's important to "
+"limit exactly who can join, you should use an encrypted messaging app to "
+"send the OnionShare address."
+msgstr ""
+
+#: ../../source/features.rst:120
+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 set their security level to Standard or Safer instead of"
+" Safest."
+msgstr ""
+
+#: ../../source/features.rst:122
+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 enter. No chat history will get displayed at all, even if "
+"others were already chatting in the room, because the chat history isn't "
+"saved anywhere."
+msgstr ""
+
+#: ../../source/features.rst:126
+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:128
+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, then you can be reasonably confident that the people who join "
+"the chat room are your friends."
+msgstr ""
+
+#: ../../source/features.rst:131
+msgid "How is this useful?"
+msgstr ""
+
+#: ../../source/features.rst:133
+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:135
+msgid ""
+"If you send a message to a Signal group, for example, a copy of your "
+"message ends up on each device (the phones and computers, if they set up "
+"Signal Desktop) of each member of the group. Even if disappearing "
+"messages is enabled, it's hard to confirm that all copies of the messages"
+" were 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 this isn't a problem."
+msgstr ""
+
+#: ../../source/features.rst:137
+msgid ""
+"OnionShare chat rooms can also be useful for anonymous people wanting to "
+"chat 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:140
+msgid "How does the encryption work?"
+msgstr ""
+
+#: ../../source/features.rst:142
+msgid ""
+"Because OnionShare relies on Tor onion services, connections between 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:144
+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/source/locale/nl/LC_MESSAGES/help.po b/docs/source/locale/nl/LC_MESSAGES/help.po
new file mode 100644
index 00000000..d965eb13
--- /dev/null
+++ b/docs/source/locale/nl/LC_MESSAGES/help.po
@@ -0,0 +1,72 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/help.rst:2
+msgid "Getting Help"
+msgstr ""
+
+#: ../../source/help.rst:4
+msgid "If you need help with OnionShare, please follow the instructions below."
+msgstr ""
+
+#: ../../source/help.rst:7
+msgid "Read this website"
+msgstr ""
+
+#: ../../source/help.rst:9
+msgid ""
+"This website is full of instructions on how to use OnionShare. Look "
+"through all of the sections first to see if it answers your questions."
+msgstr ""
+
+#: ../../source/help.rst:12
+msgid "Check the GitHub issues"
+msgstr ""
+
+#: ../../source/help.rst:14
+msgid ""
+"If you can't find a solution in this website, please check the `GitHub "
+"issues <https://github.com/micahflee/onionshare/issues>`_. It's possible "
+"that someone else has encountered the same problem and has either raised "
+"it with the developers, or maybe even posted a solution."
+msgstr ""
+
+#: ../../source/help.rst:17
+msgid "Submit an issue yourself"
+msgstr ""
+
+#: ../../source/help.rst:19
+msgid ""
+"If you can't find a solution to your problem, or you wish to ask a "
+"question or suggest a new feature, please `submit an issue "
+"<https://github.com/micahflee/onionshare/issues/new>`_. This requires "
+"`creating an GitHub account <https://help.github.com/articles/signing-up-"
+"for-a-new-github-account/>`_."
+msgstr ""
+
+#: ../../source/help.rst:22
+msgid "Join our Keybase team"
+msgstr ""
+
+#: ../../source/help.rst:24
+msgid ""
+"See :ref:`collaborating` for instructions on how to join our Keybase team"
+" that we use to discuss the project."
+msgstr ""
+
diff --git a/docs/source/locale/nl/LC_MESSAGES/index.po b/docs/source/locale/nl/LC_MESSAGES/index.po
new file mode 100644
index 00000000..2ad2653c
--- /dev/null
+++ b/docs/source/locale/nl/LC_MESSAGES/index.po
@@ -0,0 +1,29 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:46-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/index.rst:2
+msgid "OnionShare's documentation"
+msgstr ""
+
+#: ../../source/index.rst:6
+msgid ""
+"OnionShare is an open source tool that lets you securely and anonymously "
+"share files, host websites, and chat with friends using the Tor network."
+msgstr ""
+
diff --git a/docs/source/locale/nl/LC_MESSAGES/install.po b/docs/source/locale/nl/LC_MESSAGES/install.po
new file mode 100644
index 00000000..a2f5b321
--- /dev/null
+++ b/docs/source/locale/nl/LC_MESSAGES/install.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/install.rst:2
+msgid "Installation"
+msgstr ""
+
+#: ../../source/install.rst:5
+msgid "Install on Windows or macOS"
+msgstr ""
+
+#: ../../source/install.rst:7
+msgid ""
+"You can download OnionShare for Windows and macOS from the `OnionShare "
+"website <https://onionshare.org/>`_."
+msgstr ""
+
+#: ../../source/install.rst:9
+msgid "For added security, see :ref:`verifying_sigs`."
+msgstr ""
+
+#: ../../source/install.rst:14
+msgid "Install in Linux with Flatpak"
+msgstr ""
+
+#: ../../source/install.rst:16
+msgid ""
+"There are various ways to install OnionShare for Linux, but the "
+"recommended way is to use the Flatpak package. Flatpak ensures that "
+"you'll always use the most latest dependencies and run OnionShare inside "
+"of a sandbox."
+msgstr ""
+
+#: ../../source/install.rst:18
+msgid ""
+"Make sure you have ``flatpak`` installed and the Flathub repository added"
+" by following `these instructions <https://flatpak.org/setup/>`_ for your"
+" Linux distribution."
+msgstr ""
+
+#: ../../source/install.rst:20
+msgid ""
+"Then install OnionShare from Flathub by following `the instructions here "
+"<https://flathub.org/apps/details/org.onionshare.OnionShare>`_."
+msgstr ""
+
+#: ../../source/install.rst:25
+msgid "Verifying PGP signatures"
+msgstr ""
+
+#: ../../source/install.rst:27
+msgid ""
+"You can verify that the Windows, macOS, or source package you download is"
+" legitimate and hasn't been tampered with by verifying its PGP signature."
+" For Windows and macOS, this step is optional and provides defense in "
+"depth: the installers also include their operating system-specific "
+"signatures, and you can just rely on those alone if you'd like."
+msgstr ""
+
+#: ../../source/install.rst:30
+msgid "Signing key"
+msgstr ""
+
+#: ../../source/install.rst:32
+msgid ""
+"Windows, macOS, and source packaged are signed by Micah Lee, the core "
+"developer, using his PGP public key with fingerprint "
+"``927F419D7EC82C2F149C1BD1403C2657CD994F73``. You can download Micah's "
+"key `from the keys.openpgp.org keyserver <https://keys.openpgp.org/vks/v1"
+"/by-fingerprint/927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
+msgstr ""
+
+#: ../../source/install.rst:34
+msgid ""
+"In order to verify signatures, you must have GnuPG installed. For macOS "
+"you probably want `GPGTools <https://gpgtools.org/>`_, and for Windows "
+"you probably want `Gpg4win <https://www.gpg4win.org/>`_."
+msgstr ""
+
+#: ../../source/install.rst:37
+msgid "Signatures"
+msgstr ""
+
+#: ../../source/install.rst:39
+msgid ""
+"You can find the signatures (``.asc`` files), as well as Windows, macOS, "
+"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 <https://github.com/micahflee/onionshare/releases>`_."
+msgstr ""
+
+#: ../../source/install.rst:42
+msgid "Verifying"
+msgstr ""
+
+#: ../../source/install.rst:44
+msgid ""
+"Once you have imported Micah's public key into your GnuPG keychain, "
+"downloaded the binary, and downloaded the ``.asc`` signature, you can "
+"verify the binary for macOS in terminal like this::"
+msgstr ""
+
+#: ../../source/install.rst:48
+msgid "Or for Windows in a command prompt like this::"
+msgstr ""
+
+#: ../../source/install.rst:52
+msgid "An expected output might look like this::"
+msgstr ""
+
+#: ../../source/install.rst:64
+msgid ""
+"If you don't see 'Good signature from', then there might be a problem "
+"with the integrity of the file (malicious or otherwise), and you perhaps "
+"should not install the package. (The WARNING shown above, is not a "
+"problem with the package: it only means you have not defined any level of"
+" 'trust' regarding Micah's PGP key itself.)"
+msgstr ""
+
+#: ../../source/install.rst:66
+msgid ""
+"If you want to learn more about verifying PGP signatures, guides for "
+"`Qubes OS <https://www.qubes-os.org/security/verifying-signatures/>`_ and"
+" the `Tor Project <https://2019.www.torproject.org/docs/verifying-"
+"signatures.html.en>`_ may be helpful."
+msgstr ""
+
diff --git a/docs/source/locale/nl/LC_MESSAGES/security.po b/docs/source/locale/nl/LC_MESSAGES/security.po
new file mode 100644
index 00000000..13d11a17
--- /dev/null
+++ b/docs/source/locale/nl/LC_MESSAGES/security.po
@@ -0,0 +1,114 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/security.rst:2
+msgid "Security design"
+msgstr ""
+
+#: ../../source/security.rst:4
+msgid ""
+"First read :ref:`how_it_works` to understand the basics of how OnionShare"
+" works."
+msgstr ""
+
+#: ../../source/security.rst:6
+msgid "Like all software, OnionShare may contain bugs or vulnerabilities."
+msgstr ""
+
+#: ../../source/security.rst:9
+msgid "What OnionShare protects against"
+msgstr ""
+
+#: ../../source/security.rst:11
+msgid ""
+"**Third parties don't have access to anything that happens in "
+"OnionShare.** When you use OnionShare, you host services directly on your"
+" computer. For example, when you share files with OnionShare, you don't "
+"upload these files to any server, and when you start an OnionShare chat "
+"room, your computer is the chat room server itself. Traditional ways of "
+"sharing files or setting up websites and chat rooms require trusting a "
+"service with access to your data."
+msgstr ""
+
+#: ../../source/security.rst:13
+msgid ""
+"**Network eavesdroppers can't spy on anything that happens in OnionShare "
+"in transit.** Because connections between Tor onion services and Tor "
+"Browser are end-to-end encrypted, no network attackers can eavesdrop on "
+"what happens in an OnionShare service. If the eavesdropper is positioned "
+"on the OnionShare user's end, the Tor Browser user's end, or is a "
+"malicious Tor node, they will only see Tor traffic. If the eavesdropper "
+"is a malicious rendezvous node used to connect Tor Browser with "
+"OnionShare's onion service, the traffic will be encrypted using the onion"
+" service key."
+msgstr ""
+
+#: ../../source/security.rst:15
+msgid ""
+"**Anonymity of OnionShare users are protected by Tor.** OnionShare and "
+"Tor Browser protect the anonymity of the users. As long as the OnionShare"
+" user anonymously communicates the OnionShare address with the Tor "
+"Browser users, the Tor Browser users and eavesdroppers can't learn the "
+"identity of the OnionShare user."
+msgstr ""
+
+#: ../../source/security.rst:17
+msgid ""
+"**If an attacker learns about the onion service, they still can't access "
+"anything.** There have been attacks against the Tor network that can "
+"enumerate onion services. Even if someone discovers the .onion address of"
+" an OnionShare onion service, they can't access it without also knowing "
+"the service's random password (unless, of course, the OnionShare users "
+"chooses to disable the password and make it public). The password is "
+"generated by choosing two random words from a list of 6800 words, meaning"
+" there are 6800^2, or about 46 million possible password. But they can "
+"only make 20 wrong guesses before OnionShare stops the server, preventing"
+" brute force attacks against the password."
+msgstr ""
+
+#: ../../source/security.rst:20
+msgid "What OnionShare doesn't protect against"
+msgstr ""
+
+#: ../../source/security.rst:22
+msgid ""
+"**Communicating the OnionShare address might not be secure.** The "
+"OnionShare user is responsible for securely communicating the OnionShare "
+"address with people. If they send it insecurely (such as through an email"
+" message, and their email is being monitored by an attacker), the "
+"eavesdropper will learn that they're using OnionShare. If the attacker "
+"loads the address in Tor Browser before the legitimate recipient gets to "
+"it, they can access the service. If this risk fits the user's threat "
+"model, they must find a more secure way to communicate the address, such "
+"as in an encrypted email, chat, or voice call. This isn't necessary in "
+"cases where OnionShare is being used for something that isn't secret."
+msgstr ""
+
+#: ../../source/security.rst:24
+msgid ""
+"**Communicating the OnionShare address might not be anonymous.** While "
+"OnionShare and Tor Browser allow for anonymity, if the user wishes to "
+"remain anonymous they must take extra steps to ensure this while "
+"communicating the OnionShare address. For example, they might need to use"
+" Tor to create a new anonymous email or chat account, and only access it "
+"over Tor, to use for sharing the address. This isn't necessary in cases "
+"where there's no need to protect anonymity, such as co-workers who know "
+"each other sharing work documents."
+msgstr ""
+
diff --git a/docs/source/locale/nl/LC_MESSAGES/sphinx.po b/docs/source/locale/nl/LC_MESSAGES/sphinx.po
new file mode 100644
index 00000000..f2cc8ed5
--- /dev/null
+++ b/docs/source/locale/nl/LC_MESSAGES/sphinx.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/_templates/versions.html:10
+msgid "Versions"
+msgstr ""
+
+#: ../../source/_templates/versions.html:18
+msgid "Languages"
+msgstr ""
+
diff --git a/docs/source/locale/nl/LC_MESSAGES/tor.po b/docs/source/locale/nl/LC_MESSAGES/tor.po
new file mode 100644
index 00000000..35edc6e4
--- /dev/null
+++ b/docs/source/locale/nl/LC_MESSAGES/tor.po
@@ -0,0 +1,213 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.8.0\n"
+
+#: ../../source/tor.rst:2
+msgid "Connecting to Tor"
+msgstr ""
+
+#: ../../source/tor.rst:4
+msgid ""
+"There are several options for how OnionShare should connect to Tor. You "
+"can change them in Settings, which you can get to by clicking the gear "
+"icon in the bottom-right of the window."
+msgstr ""
+
+#: ../../source/tor.rst:9
+msgid "Use Tor that is bundled with OnionShare"
+msgstr ""
+
+#: ../../source/tor.rst:11
+msgid ""
+"This is the default way that OnionShare connects to Tor, and it's also "
+"the simplest and most reliable way. For this reason, it's recommended for"
+" most users."
+msgstr ""
+
+#: ../../source/tor.rst:13
+msgid ""
+"When you open OnionShare, it will launch a Tor process in the background "
+"that's configured specifically for OnionShare to use. This Tor process "
+"won't interfere with other Tor processes on your computer, so you're free"
+" to run Tor Browser or use a system Tor in the background."
+msgstr ""
+
+#: ../../source/tor.rst:16
+msgid "Attempt automatic configuration with Tor Browser"
+msgstr ""
+
+#: ../../source/tor.rst:18
+msgid ""
+"You can configure OnionShare to connect to the Tor that comes with Tor "
+"Browser. First, `download Tor Browser <https://www.torproject.org>`_ here"
+" if you don't already have it. With this setting selected, you need to "
+"keep Tor Browser open in the background while you're using OnionShare."
+msgstr ""
+
+#: ../../source/tor.rst:21
+msgid "Using a system Tor in Windows"
+msgstr ""
+
+#: ../../source/tor.rst:23
+msgid ""
+"This is fairly advanced. You'll need to know how edit plaintext files and"
+" do stuff as an administrator."
+msgstr ""
+
+#: ../../source/tor.rst:25
+msgid ""
+"Download the Tor Windows Expert Bundle, which you can get `from here "
+"<https://www.torproject.org/download/tor/>`_. Extract the zip file and "
+"copy the extracted folder to ``C:\\Program Files (x86)\\``, and rename "
+"the folder to ``tor-win32``, so that inside that folder is the ``Data`` "
+"and ``Tor`` folders."
+msgstr ""
+
+#: ../../source/tor.rst:27
+msgid ""
+"Make up a control port password. I'm going to use ``comprised stumble "
+"rummage work avenging construct volatile`` as my password. Now open a "
+"command prompt as an administrator, and use ``tor.exe --hash-password`` "
+"to generate a hash of your password. For example::"
+msgstr ""
+
+#: ../../source/tor.rst:32
+msgid ""
+"The hashed password output is displayed after some warnings (which you "
+"can ignore). In my case, it was "
+"``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``."
+msgstr ""
+
+#: ../../source/tor.rst:34
+msgid ""
+"Now create a new text file at ``C:\\Program Files (x86)\\tor-"
+"win32\\torrc`` and put this in it, replacing the "
+"``HashedControlPassword`` with the one you just generated::"
+msgstr ""
+
+#: ../../source/tor.rst:39
+msgid ""
+"In your administrator command prompt, install tor as a service using the "
+"appropriate ``torrc`` file you just created (see `here "
+"<https://2019.www.torproject.org/docs/faq.html.en#NTService>`_ for more "
+"information on doing this). Like this::"
+msgstr ""
+
+#: ../../source/tor.rst:43
+msgid "You're now running a system Tor in Windows!"
+msgstr ""
+
+#: ../../source/tor.rst:45
+msgid ""
+"Open OnionShare. Click the Settings icon. Under \"How should OnionShare "
+"connect to Tor?\" choose \"Connect using control port\", and set the "
+"control port host to ``127.0.0.1`` and the port to ``9051``. Under \"Tor "
+"authentication options\" choose \"Password\" and set the password to your"
+" password, in my case ``comprised stumble rummage work avenging construct"
+" volatile``. Click the \"Test Settings\" button. If all goes well, you "
+"should see successfully connected to tor."
+msgstr ""
+
+#: ../../source/tor.rst:48
+msgid "Using a system Tor in Mac OS X"
+msgstr ""
+
+#: ../../source/tor.rst:50
+msgid ""
+"First, install `Homebrew <http://brew.sh/>`_ if you don't already have "
+"it. Then, install Tor::"
+msgstr ""
+
+#: ../../source/tor.rst:54
+msgid "Now configure Tor to allow connections from OnionShare::"
+msgstr ""
+
+#: ../../source/tor.rst:61
+msgid "And start the system Tor service::"
+msgstr ""
+
+#: ../../source/tor.rst:65
+msgid ""
+"Open OnionShare. Click the Settings icon. Under \"How should OnionShare "
+"connect to Tor?\" choose \"Connect using socket file\", and set the "
+"socket file to be ``/usr/local/var/run/tor/control.socket``. Under \"Tor "
+"authentication options\" choose \"No authentication, or cookie "
+"authentication\". Click the \"Test Settings\" button. If all goes well, "
+"you should see successfully connected to tor."
+msgstr ""
+
+#: ../../source/tor.rst:68
+msgid "Using a system Tor in Linux"
+msgstr ""
+
+#: ../../source/tor.rst:70
+msgid ""
+"First, install the tor package. If you're using Debian, Ubuntu, or a "
+"similar Linux distro, I recommend you use Tor Project's `official "
+"repository <https://2019.www.torproject.org/docs/debian.html.en>`_. For "
+"example, in Ubuntu 20.04::"
+msgstr ""
+
+#: ../../source/tor.rst:78
+msgid ""
+"Next, add your user to the group that runs the Tor process (in the case "
+"of Debian and Ubuntu, ``debian-tor``) and configure OnionShare to connect"
+" to your system Tor's control socket file."
+msgstr ""
+
+#: ../../source/tor.rst:80
+msgid ""
+"Add your user to the ``debian-tor`` group by running this command "
+"(replace ``username`` with your actual username)::"
+msgstr ""
+
+#: ../../source/tor.rst:84
+msgid ""
+"Reboot your computer. After it boots up again, open OnionShare. Click the"
+" Settings icon. Under \"How should OnionShare connect to Tor?\" choose "
+"\"Connect using socket file\", and set the socket file to be "
+"``/var/run/tor/control``. Under \"Tor authentication options\" choose "
+"\"No authentication, or cookie authentication\". Click the \"Test "
+"Settings\" button. If all goes well, you should see successfully connect "
+"to Tor."
+msgstr ""
+
+#: ../../source/tor.rst:87
+msgid "Using Tor bridges"
+msgstr ""
+
+#: ../../source/tor.rst:89
+msgid ""
+"If your access to the internet is censored, you can configure OnionShare "
+"to connect to the Tor network using `Tor bridges "
+"<https://2019.www.torproject.org/docs/bridges.html.en>`_. If OnionShare "
+"successfully connects to Tor, you don't need to use a bridge."
+msgstr ""
+
+#: ../../source/tor.rst:91
+msgid "To configure bridges, open OnionShare settings."
+msgstr ""
+
+#: ../../source/tor.rst:93
+msgid ""
+"You can use the built-in obfs4 pluggable transports, the built-in "
+"meek_lite (Azure) pluggable transports, or custom bridges, which you can "
+"obtain from Tor's `BridgeDB <https://bridges.torproject.org/>`_. If you "
+"need to use a bridge, you should try the built-in obfs4 ones first."
+msgstr ""
+
diff --git a/docs/source/security.rst b/docs/source/security.rst
new file mode 100644
index 00000000..e7f4529b
--- /dev/null
+++ b/docs/source/security.rst
@@ -0,0 +1,24 @@
+Security design
+===============
+
+First read :ref:`how_it_works` to understand the basics of how OnionShare works.
+
+Like all software, OnionShare may contain bugs or vulnerabilities.
+
+What OnionShare protects against
+--------------------------------
+
+**Third parties don't have access to anything that happens in OnionShare.** When you use OnionShare, you host services directly on your computer. For example, when you share files with OnionShare, you don't upload these files to any server, and when you start an OnionShare chat room, your computer is the chat room server itself. Traditional ways of sharing files or setting up websites and chat rooms require trusting a service with access to your data.
+
+**Network eavesdroppers can't spy on anything that happens in OnionShare in transit.** Because connections between Tor onion services and Tor Browser are end-to-end encrypted, no network attackers can eavesdrop on what happens in an OnionShare service. If the eavesdropper is positioned on the OnionShare user's end, the Tor Browser user's end, or is a malicious Tor node, they will only see Tor traffic. If the eavesdropper is a malicious rendezvous node used to connect Tor Browser with OnionShare's onion service, the traffic will be encrypted using the onion service key.
+
+**Anonymity of OnionShare users are protected by Tor.** OnionShare and Tor Browser protect the anonymity of the users. As long as the OnionShare user anonymously communicates the OnionShare address with the Tor Browser users, the Tor Browser users and eavesdroppers can't learn the identity of the OnionShare user.
+
+**If an attacker learns about the onion service, they still can't access anything.** There have been attacks against the Tor network that can enumerate onion services. Even if someone discovers the .onion address of an OnionShare onion service, they can't access it without also knowing the service's random password (unless, of course, the OnionShare users chooses to disable the password and make it public). The password is generated by choosing two random words from a list of 6800 words, meaning there are 6800^2, or about 46 million possible password. But they can only make 20 wrong guesses before OnionShare stops the server, preventing brute force attacks against the password.
+
+What OnionShare doesn't protect against
+---------------------------------------
+
+**Communicating the OnionShare address might not be secure.** The OnionShare user is responsible for securely communicating the OnionShare address with people. If they send it insecurely (such as through an email message, and their email is being monitored by an attacker), the eavesdropper will learn that they're using OnionShare. If the attacker loads the address in Tor Browser before the legitimate recipient gets to it, they can access the service. If this risk fits the user's threat model, they must find a more secure way to communicate the address, such as in an encrypted email, chat, or voice call. This isn't necessary in cases where OnionShare is being used for something that isn't secret.
+
+**Communicating the OnionShare address might not be anonymous.** While OnionShare and Tor Browser allow for anonymity, if the user wishes to remain anonymous they must take extra steps to ensure this while communicating the OnionShare address. For example, they might need to use Tor to create a new anonymous email or chat account, and only access it over Tor, to use for sharing the address. This isn't necessary in cases where there's no need to protect anonymity, such as co-workers who know each other sharing work documents.
diff --git a/docs/source/tor.rst b/docs/source/tor.rst
new file mode 100644
index 00000000..c5e27be7
--- /dev/null
+++ b/docs/source/tor.rst
@@ -0,0 +1,93 @@
+Connecting to Tor
+=================
+
+There are several options for how OnionShare should connect to Tor. You can change them in Settings, which you can get to by clicking the gear icon in the bottom-right of the window.
+
+.. image:: _static/screenshots/settings.png
+
+Use Tor that is bundled with OnionShare
+---------------------------------------
+
+This is the default way that OnionShare connects to Tor, and it's also the simplest and most reliable way. For this reason, it's recommended for most users.
+
+When you open OnionShare, it will launch a Tor process in the background that's configured specifically for OnionShare to use. This Tor process won't interfere with other Tor processes on your computer, so you're free to run Tor Browser or use a system Tor in the background.
+
+Attempt automatic configuration with Tor Browser
+------------------------------------------------
+
+You can configure OnionShare to connect to the Tor that comes with Tor Browser. First, `download Tor Browser <https://www.torproject.org>`_ here if you don't already have it. With this setting selected, you need to keep Tor Browser open in the background while you're using OnionShare.
+
+Using a system Tor in Windows
+-----------------------------
+
+This is fairly advanced. You'll need to know how edit plaintext files and do stuff as an administrator.
+
+Download the Tor Windows Expert Bundle, which you can get `from here <https://www.torproject.org/download/tor/>`_. Extract the zip file and copy the extracted folder to ``C:\Program Files (x86)\``, and rename the folder to ``tor-win32``, so that inside that folder is the ``Data`` and ``Tor`` folders.
+
+Make up a control port password. I'm going to use ``comprised stumble rummage work avenging construct volatile`` as my password. Now open a command prompt as an administrator, and use ``tor.exe --hash-password`` to generate a hash of your password. For example::
+
+ cd "C:\Program Files (x86)\tor-win32\Tor"
+ tor.exe --hash-password "comprised stumble rummage work avenging construct volatile"
+
+The hashed password output is displayed after some warnings (which you can ignore). In my case, it was ``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``.
+
+Now create a new text file at ``C:\Program Files (x86)\tor-win32\torrc`` and put this in it, replacing the ``HashedControlPassword`` with the one you just generated::
+
+ ControlPort 9051
+ HashedControlPassword 16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF
+
+In your administrator command prompt, install tor as a service using the appropriate ``torrc`` file you just created (see `here <https://2019.www.torproject.org/docs/faq.html.en#NTService>`_ for more information on doing this). Like this::
+
+ tor.exe --service install -options -f "C:\Program Files (x86)\tor-win32\torrc"
+
+You're now running a system Tor in Windows!
+
+Open OnionShare. Click the Settings icon. Under "How should OnionShare connect to Tor?" choose "Connect using control port", and set the control port host to ``127.0.0.1`` and the port to ``9051``. Under "Tor authentication options" choose "Password" and set the password to your password, in my case ``comprised stumble rummage work avenging construct volatile``. Click the "Test Settings" button. If all goes well, you should see successfully connected to tor.
+
+Using a system Tor in Mac OS X
+------------------------------
+
+First, install `Homebrew <http://brew.sh/>`_ if you don't already have it. Then, install Tor::
+
+ brew install tor
+
+Now configure Tor to allow connections from OnionShare::
+
+ mkdir -p /usr/local/var/run/tor
+ chmod 700 /usr/local/var/run/tor
+ echo 'SOCKSPort 9050' >> /usr/local/etc/tor/torrc
+ echo 'ControlPort unix:"/usr/local/var/run/tor/control.socket"' >> /usr/local/etc/tor/torrc
+
+And start the system Tor service::
+
+ brew services start tor
+
+Open OnionShare. Click the Settings icon. Under "How should OnionShare connect to Tor?" choose "Connect using socket file", and set the socket file to be ``/usr/local/var/run/tor/control.socket``. Under "Tor authentication options" choose "No authentication, or cookie authentication". Click the "Test Settings" button. If all goes well, you should see successfully connected to tor.
+
+Using a system Tor in Linux
+---------------------------
+
+First, install the tor package. If you're using Debian, Ubuntu, or a similar Linux distro, I recommend you use Tor Project's `official repository <https://2019.www.torproject.org/docs/debian.html.en>`_. For example, in Ubuntu 20.04::
+
+ sudo su -c "echo 'deb http://deb.torproject.org/torproject.org focal main' > /etc/apt/sources.list.d/torproject.list"
+ curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import
+ gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
+ sudo apt-get update
+ sudo apt-get install -y tor deb.torproject.org-keyring
+
+Next, add your user to the group that runs the Tor process (in the case of Debian and Ubuntu, ``debian-tor``) and configure OnionShare to connect to your system Tor's control socket file.
+
+Add your user to the ``debian-tor`` group by running this command (replace ``username`` with your actual username)::
+
+ sudo usermod -a -G debian-tor username
+
+Reboot your computer. After it boots up again, open OnionShare. Click the Settings icon. Under "How should OnionShare connect to Tor?" choose "Connect using socket file", and set the socket file to be ``/var/run/tor/control``. Under "Tor authentication options" choose "No authentication, or cookie authentication". Click the "Test Settings" button. If all goes well, you should see successfully connect to Tor.
+
+Using Tor bridges
+-----------------
+
+If your access to the internet is censored, you can configure OnionShare to connect to the Tor network using `Tor bridges <https://2019.www.torproject.org/docs/bridges.html.en>`_. If OnionShare successfully connects to Tor, you don't need to use a bridge.
+
+To configure bridges, open OnionShare settings.
+
+You can use the built-in obfs4 pluggable transports, the built-in meek_lite (Azure) pluggable transports, or custom bridges, which you can obtain from Tor's `BridgeDB <https://bridges.torproject.org/>`_. If you need to use a bridge, you should try the built-in obfs4 ones first.
diff --git a/install/get-tor-osx.py b/install/get-tor-osx.py
index c68a81a6..073384d7 100644
--- a/install/get-tor-osx.py
+++ b/install/get-tor-osx.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/install/get-tor-windows.py b/install/get-tor-windows.py
index 99608706..07811880 100644
--- a/install/get-tor-windows.py
+++ b/install/get-tor-windows.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/install/org.onionshare.OnionShare.appdata.xml b/install/org.onionshare.OnionShare.appdata.xml
index c9a0b11c..9fecb922 100644
--- a/install/org.onionshare.OnionShare.appdata.xml
+++ b/install/org.onionshare.OnionShare.appdata.xml
@@ -1,45 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright 2018 Micah Lee <micah@micahflee.com> -->
<component type="desktop-application">
<id>org.onionshare.OnionShare</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0</project_license>
<name>OnionShare</name>
- <summary>Securely and anonymously share a file of any size</summary>
+ <summary>Securely and anonymously share files, host websites, and chat with friends</summary>
<description>
<p>
- 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.
- </p>
- <p>
- If you want to send files to someone, OnionShare hosts them on your own computer and uses a Tor onion service to make them temporarily accessible over the internet. The receiving user just needs to open the web address in Tor Browser to download the files. If you want to receive files, OnionShare hosts an anonymous dropbox directly on your computer and uses a Tor onion service to make it temporarily accessible over the internet. Other users can upload files to you from by loading the web address in Tor Browser.
+ OnionShare is an open source tool that lets you securely and anonymously share files, host websites, and chat with friends using the Tor network.
</p>
</description>
<launchable type="desktop-id">org.onionshare.OnionShare.desktop</launchable>
<screenshots>
<screenshot type="default">
- <image>https://raw.githubusercontent.com/micahflee/onionshare/master/screenshots/appdata-onionshare-share-server.png</image>
- <caption>Sharing files with OnionShare</caption>
- </screenshot>
- <screenshot>
- <image>https://raw.githubusercontent.com/micahflee/onionshare/master/screenshots/appdata-onionshare-share-client.png</image>
- <caption>Downloading OnionShare files using Tor Browser</caption>
- </screenshot>
- <screenshot>
- <image>https://raw.githubusercontent.com/micahflee/onionshare/master/screenshots/appdata-onionshare-receive-server.png</image>
- <caption>Receiving files with OnionShare</caption>
- </screenshot>
- <screenshot>
- <image>https://raw.githubusercontent.com/micahflee/onionshare/master/screenshots/appdata-onionshare-receive-client.png</image>
- <caption>Uploading files to OnionShare user using Tor Browser</caption>
+ <image>https://raw.githubusercontent.com/micahflee/onionshare/master/docs/source/_static/screenshots/tabs.png</image>
+ <caption>Types of services that OnionShare supports</caption>
</screenshot>
</screenshots>
<url type="bugtracker">https://github.com/micahflee/onionshare/issues/</url>
- <url type="help">https://github.com/micahflee/onionshare/wiki/</url>
+ <url type="help">https://onionshare.org/</url>
<url type="homepage">https://onionshare.org/</url>
<developer_name>Micah Lee</developer_name>
<update_contact>micah@micahflee.com</update_contact>
<content_rating type="oars-1.1" />
<releases>
- <release type="stable" date="2019-10-13" version="2.2" />
+ <release type="stable" date="2020-08-24" version="2.3" />
</releases>
</component>
diff --git a/install/scripts/onionshare b/install/scripts/onionshare
index e2205e04..67298b6f 100755
--- a/install/scripts/onionshare
+++ b/install/scripts/onionshare
@@ -3,7 +3,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,4 +19,5 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
import onionshare
+
onionshare.main()
diff --git a/install/scripts/onionshare-gui b/install/scripts/onionshare-gui
index fed29d83..f1d36a86 100755
--- a/install/scripts/onionshare-gui
+++ b/install/scripts/onionshare-gui
@@ -3,7 +3,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,4 +19,5 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
import onionshare_gui
+
onionshare_gui.main()
diff --git a/install/scripts/onionshare-pyinstaller b/install/scripts/onionshare-pyinstaller
index bd59b421..8ca791aa 100644
--- a/install/scripts/onionshare-pyinstaller
+++ b/install/scripts/onionshare-pyinstaller
@@ -3,7 +3,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -22,16 +22,18 @@ import sys, os, platform
# In macOS, allow both CLI and GUI depending on the filename of the binary
# being executed
-if platform.system() == 'Darwin':
+if platform.system() == "Darwin":
# If the binary being executed is called 'onionshare', use CLI
basename = os.path.basename(sys.argv[0])
- if basename == 'onionshare':
+ if basename == "onionshare":
import onionshare
+
onionshare.main()
# Otherwise, use GUI
else:
import onionshare_gui
+
onionshare_gui.main()
# Unfortunately this trick won't work in Windows because I want to set
@@ -41,4 +43,5 @@ if platform.system() == 'Darwin':
# https://pyinstaller.readthedocs.io/en/stable/spec-files.html#multipackage-bundles
else:
import onionshare_gui
+
onionshare_gui.main()
diff --git a/onionshare/__init__.py b/onionshare/__init__.py
index 9946a700..c1367b1e 100644
--- a/onionshare/__init__.py
+++ b/onionshare/__init__.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -46,25 +46,49 @@ def main(cwd=None):
# Display OnionShare banner
print(f"OnionShare {common.version} | https://onionshare.org/")
- reset='\033[0m'
- purple='\33[95m'
+ reset = "\033[0m"
+ purple = "\33[95m"
print(purple)
print(" @@@@@@@@@ ")
print(" @@@@@@@@@@@@@@@@@@@ ")
print(" @@@@@@@@@@@@@@@@@@@@@@@@@ ")
print(" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ")
- print(" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ___ _ ")
- print(" @@@@@@ @@@@@@@@@@@@@ / _ \ (_) ")
- print(" @@@@ @ @@@@@@@@@@@ | | | |_ __ _ ___ _ __ ")
- print(" @@@@@@@@ @@@@@@@@@@ | | | | '_ \| |/ _ \| '_ \ ")
- print(" @@@@@@@@@@@@ @@@@@@@@@@ \ \_/ / | | | | (_) | | | | ")
- print(" @@@@@@@@@@@@@@@@ @@@@@@@@@ \___/|_| |_|_|\___/|_| |_| ")
- print(" @@@@@@@@@ @@@@@@@@@@@@@@@@ _____ _ ")
- print(" @@@@@@@@@@ @@@@@@@@@@@@ / ___| | ")
- print(" @@@@@@@@@@ @@@@@@@@ \ `--.| |__ __ _ _ __ ___ ")
- print(" @@@@@@@@@@@ @ @@@@ `--. \ '_ \ / _` | '__/ _ \\")
- print(" @@@@@@@@@@@@@ @@@@@@ /\__/ / | | | (_| | | | __/")
- print(" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \____/|_| |_|\__,_|_| \___|")
+ print(
+ " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ___ _ "
+ )
+ print(
+ " @@@@@@ @@@@@@@@@@@@@ / _ \ (_) "
+ )
+ print(
+ " @@@@ @ @@@@@@@@@@@ | | | |_ __ _ ___ _ __ "
+ )
+ print(
+ " @@@@@@@@ @@@@@@@@@@ | | | | '_ \| |/ _ \| '_ \ "
+ )
+ print(
+ " @@@@@@@@@@@@ @@@@@@@@@@ \ \_/ / | | | | (_) | | | | "
+ )
+ print(
+ " @@@@@@@@@@@@@@@@ @@@@@@@@@ \___/|_| |_|_|\___/|_| |_| "
+ )
+ print(
+ " @@@@@@@@@ @@@@@@@@@@@@@@@@ _____ _ "
+ )
+ print(
+ " @@@@@@@@@@ @@@@@@@@@@@@ / ___| | "
+ )
+ print(
+ " @@@@@@@@@@ @@@@@@@@ \ `--.| |__ __ _ _ __ ___ "
+ )
+ print(
+ " @@@@@@@@@@@ @ @@@@ `--. \ '_ \ / _` | '__/ _ \\"
+ )
+ print(
+ " @@@@@@@@@@@@@ @@@@@@ /\__/ / | | | (_| | | | __/"
+ )
+ print(
+ " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \____/|_| |_|\__,_|_| \___|"
+ )
print(" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ")
print(" @@@@@@@@@@@@@@@@@@@@@@@@@ ")
print(" @@@@@@@@@@@@@@@@@@@ ")
diff --git a/onionshare/common.py b/onionshare/common.py
index 18e4841d..27104669 100644
--- a/onionshare/common.py
+++ b/onionshare/common.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/onionshare/mode_settings.py b/onionshare/mode_settings.py
index f141f8c5..b353fcde 100644
--- a/onionshare/mode_settings.py
+++ b/onionshare/mode_settings.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/onionshare/onion.py b/onionshare/onion.py
index d842390d..c66c0df4 100644
--- a/onionshare/onion.py
+++ b/onionshare/onion.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/onionshare/onionshare.py b/onionshare/onionshare.py
index 0fa25767..25c8ad90 100644
--- a/onionshare/onionshare.py
+++ b/onionshare/onionshare.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/onionshare/settings.py b/onionshare/settings.py
index f9348a8e..76178d29 100644
--- a/onionshare/settings.py
+++ b/onionshare/settings.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/onionshare/strings.py b/onionshare/strings.py
index 0ea2ba24..7e1756e3 100644
--- a/onionshare/strings.py
+++ b/onionshare/strings.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/onionshare/web/__init__.py b/onionshare/web/__init__.py
index d45b4983..f036d011 100644
--- a/onionshare/web/__init__.py
+++ b/onionshare/web/__init__.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/onionshare/web/chat_mode.py b/onionshare/web/chat_mode.py
index f06bdea8..15e236d3 100644
--- a/onionshare/web/chat_mode.py
+++ b/onionshare/web/chat_mode.py
@@ -1,3 +1,23 @@
+# -*- coding: utf-8 -*-
+"""
+OnionShare | https://onionshare.org/
+
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+"""
+
from flask import (
Request,
request,
diff --git a/onionshare/web/receive_mode.py b/onionshare/web/receive_mode.py
index 17613fdd..a9876c40 100644
--- a/onionshare/web/receive_mode.py
+++ b/onionshare/web/receive_mode.py
@@ -1,3 +1,23 @@
+# -*- coding: utf-8 -*-
+"""
+OnionShare | https://onionshare.org/
+
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+"""
+
import os
import tempfile
import json
diff --git a/onionshare/web/send_base_mode.py b/onionshare/web/send_base_mode.py
index 020b65e0..9d5f876b 100644
--- a/onionshare/web/send_base_mode.py
+++ b/onionshare/web/send_base_mode.py
@@ -1,3 +1,23 @@
+# -*- coding: utf-8 -*-
+"""
+OnionShare | https://onionshare.org/
+
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+"""
+
import os
import sys
import tempfile
diff --git a/onionshare/web/share_mode.py b/onionshare/web/share_mode.py
index 16a16a0b..ccd29e1c 100644
--- a/onionshare/web/share_mode.py
+++ b/onionshare/web/share_mode.py
@@ -1,3 +1,23 @@
+# -*- coding: utf-8 -*-
+"""
+OnionShare | https://onionshare.org/
+
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+"""
+
import os
import sys
import tempfile
diff --git a/onionshare/web/web.py b/onionshare/web/web.py
index 3a22c789..117ea83a 100644
--- a/onionshare/web/web.py
+++ b/onionshare/web/web.py
@@ -1,3 +1,23 @@
+# -*- coding: utf-8 -*-
+"""
+OnionShare | https://onionshare.org/
+
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+"""
+
import hmac
import logging
import os
diff --git a/onionshare/web/website_mode.py b/onionshare/web/website_mode.py
index 61b6d2c6..2838fc05 100644
--- a/onionshare/web/website_mode.py
+++ b/onionshare/web/website_mode.py
@@ -1,3 +1,23 @@
+# -*- coding: utf-8 -*-
+"""
+OnionShare | https://onionshare.org/
+
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+"""
+
import os
import sys
import tempfile
diff --git a/onionshare_gui/__init__.py b/onionshare_gui/__init__.py
index c2605e81..070d03a4 100644
--- a/onionshare_gui/__init__.py
+++ b/onionshare_gui/__init__.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,6 +17,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
+
from __future__ import division
import os
import sys
diff --git a/onionshare_gui/gui_common.py b/onionshare_gui/gui_common.py
index f6d3eedf..509e67fd 100644
--- a/onionshare_gui/gui_common.py
+++ b/onionshare_gui/gui_common.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,6 +17,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
+
import os
from onionshare import strings
diff --git a/onionshare_gui/main_window.py b/onionshare_gui/main_window.py
index 1c745b1c..6bd84b8a 100644
--- a/onionshare_gui/main_window.py
+++ b/onionshare_gui/main_window.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,6 +17,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
+
from PyQt5 import QtCore, QtWidgets, QtGui
from onionshare import strings
diff --git a/onionshare_gui/settings_dialog.py b/onionshare_gui/settings_dialog.py
index f8cb4204..dd711e59 100644
--- a/onionshare_gui/settings_dialog.py
+++ b/onionshare_gui/settings_dialog.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,6 +17,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
+
from PyQt5 import QtCore, QtWidgets, QtGui
import sys
import platform
@@ -892,7 +893,7 @@ class SettingsDialog(QtWidgets.QDialog):
@staticmethod
def open_help():
- help_url = "https://github.com/micahflee/onionshare/wiki"
+ help_url = "https://docs.onionshare.org/"
QtGui.QDesktopServices.openUrl(QtCore.QUrl(help_url))
def settings_from_fields(self):
diff --git a/onionshare_gui/tab/__init__.py b/onionshare_gui/tab/__init__.py
index ca346a7d..162d13aa 100644
--- a/onionshare_gui/tab/__init__.py
+++ b/onionshare_gui/tab/__init__.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,4 +17,5 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
+
from .tab import Tab
diff --git a/onionshare_gui/tab/mode/__init__.py b/onionshare_gui/tab/mode/__init__.py
index a527ef0c..984e6573 100644
--- a/onionshare_gui/tab/mode/__init__.py
+++ b/onionshare_gui/tab/mode/__init__.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,6 +17,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
+
from PyQt5 import QtCore, QtWidgets, QtGui
from onionshare import strings
diff --git a/onionshare_gui/tab/mode/chat_mode/__init__.py b/onionshare_gui/tab/mode/chat_mode/__init__.py
index d255fcbd..8b1fb142 100644
--- a/onionshare_gui/tab/mode/chat_mode/__init__.py
+++ b/onionshare_gui/tab/mode/chat_mode/__init__.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,6 +17,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
+
import os
import random
import string
diff --git a/onionshare_gui/tab/mode/file_selection.py b/onionshare_gui/tab/mode/file_selection.py
index bcff07cb..a3212c96 100644
--- a/onionshare_gui/tab/mode/file_selection.py
+++ b/onionshare_gui/tab/mode/file_selection.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,6 +17,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
+
import os
from PyQt5 import QtCore, QtWidgets, QtGui
diff --git a/onionshare_gui/tab/mode/history.py b/onionshare_gui/tab/mode/history.py
index c1a2d54d..feb671ef 100644
--- a/onionshare_gui/tab/mode/history.py
+++ b/onionshare_gui/tab/mode/history.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,6 +17,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
+
import time
import subprocess
import os
@@ -463,7 +464,7 @@ class IndividualFileHistoryItem(HistoryItem):
self.downloaded_bytes = downloaded_bytes
self.progress_bar.setValue(downloaded_bytes / 1024)
- if (downloaded_bytes / 1024 ) == (self.progress_bar.total_bytes / 1024):
+ if (downloaded_bytes / 1024) == (self.progress_bar.total_bytes / 1024):
self.status_code_label.setText("200")
self.status_code_label.setStyleSheet(
self.common.gui.css["history_individual_file_status_code_label_2xx"]
diff --git a/onionshare_gui/tab/mode/mode_settings_widget.py b/onionshare_gui/tab/mode/mode_settings_widget.py
index ed224589..7c3b4667 100644
--- a/onionshare_gui/tab/mode/mode_settings_widget.py
+++ b/onionshare_gui/tab/mode/mode_settings_widget.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,6 +17,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
+
from PyQt5 import QtCore, QtWidgets
from onionshare import strings
diff --git a/onionshare_gui/tab/mode/receive_mode/__init__.py b/onionshare_gui/tab/mode/receive_mode/__init__.py
index 6f1bc7f5..6482b924 100644
--- a/onionshare_gui/tab/mode/receive_mode/__init__.py
+++ b/onionshare_gui/tab/mode/receive_mode/__init__.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,6 +17,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
+
import os
from PyQt5 import QtCore, QtWidgets, QtGui
diff --git a/onionshare_gui/tab/mode/share_mode/__init__.py b/onionshare_gui/tab/mode/share_mode/__init__.py
index aa386e3d..3fd545de 100644
--- a/onionshare_gui/tab/mode/share_mode/__init__.py
+++ b/onionshare_gui/tab/mode/share_mode/__init__.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,6 +17,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
+
import os
from PyQt5 import QtCore, QtWidgets, QtGui
diff --git a/onionshare_gui/tab/mode/share_mode/threads.py b/onionshare_gui/tab/mode/share_mode/threads.py
index 414c7be1..500b6525 100644
--- a/onionshare_gui/tab/mode/share_mode/threads.py
+++ b/onionshare_gui/tab/mode/share_mode/threads.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,6 +17,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
+
from PyQt5 import QtCore
diff --git a/onionshare_gui/tab/mode/website_mode/__init__.py b/onionshare_gui/tab/mode/website_mode/__init__.py
index c520d8f7..29019cb5 100644
--- a/onionshare_gui/tab/mode/website_mode/__init__.py
+++ b/onionshare_gui/tab/mode/website_mode/__init__.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,6 +17,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
+
import os
import random
import string
diff --git a/onionshare_gui/tab/server_status.py b/onionshare_gui/tab/server_status.py
index b26a1223..efa50669 100644
--- a/onionshare_gui/tab/server_status.py
+++ b/onionshare_gui/tab/server_status.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,6 +17,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
+
import platform
import textwrap
from PyQt5 import QtCore, QtWidgets, QtGui
diff --git a/onionshare_gui/tab/tab.py b/onionshare_gui/tab/tab.py
index fbc828ff..69916f06 100644
--- a/onionshare_gui/tab/tab.py
+++ b/onionshare_gui/tab/tab.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,6 +17,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
+
import queue
from PyQt5 import QtCore, QtWidgets, QtGui, QtSvg
diff --git a/onionshare_gui/tab_widget.py b/onionshare_gui/tab_widget.py
index 1eee0181..fe80b95d 100644
--- a/onionshare_gui/tab_widget.py
+++ b/onionshare_gui/tab_widget.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,6 +17,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
+
from PyQt5 import QtCore, QtWidgets, QtGui
from onionshare import strings
diff --git a/onionshare_gui/threads.py b/onionshare_gui/threads.py
index 29554039..d1e6ea3c 100644
--- a/onionshare_gui/threads.py
+++ b/onionshare_gui/threads.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,6 +17,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
+
import time
import json
import os
diff --git a/onionshare_gui/tor_connection_dialog.py b/onionshare_gui/tor_connection_dialog.py
index 9c17e65c..02868625 100644
--- a/onionshare_gui/tor_connection_dialog.py
+++ b/onionshare_gui/tor_connection_dialog.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,6 +17,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
+
from PyQt5 import QtCore, QtWidgets, QtGui
from onionshare import strings
diff --git a/onionshare_gui/update_checker.py b/onionshare_gui/update_checker.py
index 452bcb5b..699ad952 100644
--- a/onionshare_gui/update_checker.py
+++ b/onionshare_gui/update_checker.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,6 +17,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
+
from PyQt5 import QtCore
import datetime, time, socket, re, platform
import socks
diff --git a/onionshare_gui/widgets.py b/onionshare_gui/widgets.py
index 58ddd1b5..846ff4e7 100644
--- a/onionshare_gui/widgets.py
+++ b/onionshare_gui/widgets.py
@@ -2,7 +2,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,10 +17,12 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
+
from PyQt5 import QtCore, QtWidgets, QtGui
from onionshare import strings
import qrcode
+
class Alert(QtWidgets.QMessageBox):
"""
An alert box dialog.
@@ -102,8 +104,7 @@ class Image(qrcode.image.base.BaseImage):
self.width = width
self.box_size = box_size
size = (width + border * 2) * box_size
- self._image = QtGui.QImage(
- size, size, QtGui.QImage.Format_RGB16)
+ self._image = QtGui.QImage(size, size, QtGui.QImage.Format_RGB16)
self._image.fill(QtCore.Qt.white)
def pixmap(self):
@@ -114,8 +115,10 @@ class Image(qrcode.image.base.BaseImage):
painter.fillRect(
(col + self.border) * self.box_size,
(row + self.border) * self.box_size,
- self.box_size, self.box_size,
- QtCore.Qt.black)
+ self.box_size,
+ self.box_size,
+ QtCore.Qt.black,
+ )
def save(self, stream, kind=None):
pass
@@ -135,8 +138,7 @@ class QRCodeDialog(QtWidgets.QDialog):
self.common.log("QrCode", "__init__")
self.qr_label = QtWidgets.QLabel(self)
- self.qr_label.setPixmap(
- qrcode.make(self.text, image_factory=Image).pixmap())
+ self.qr_label.setPixmap(qrcode.make(self.text, image_factory=Image).pixmap())
self.qr_label_description = QtWidgets.QLabel(self)
self.qr_label_description.setText(strings._("gui_qr_code_description"))
diff --git a/pyproject.toml b/pyproject.toml
index 6011b976..dda3b665 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "onionshare"
-version = "2.2"
+version = "2.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 <micah@micahflee.com>"]
license = "GPLv3+"
diff --git a/setup.py b/setup.py
index 3e627eb2..ebecd40b 100644
--- a/setup.py
+++ b/setup.py
@@ -3,7 +3,7 @@
"""
OnionShare | https://onionshare.org/
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
+Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -32,30 +32,11 @@ def file_list(path):
version = open("share/version.txt").read().strip()
-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."""
-)
-long_description = (
- description
- + "\n\n"
- + (
- """If you want to send files to someone, OnionShare hosts them on your own """
- """computer and uses a Tor onion service to make them temporarily accessible """
- """over the internet. The receiving user just needs to open the web address """
- """in Tor Browser to download the files. If you want to receive files, """
- """OnionShare hosts an anonymous dropbox directly on your computer and uses """
- """a Tor onion service to make it temporarily accessible over the internet. """
- """Other users can upload files to you from by loading the web address in """
- """Tor Browser."""
- )
-)
+description = "OnionShare is an open source tool that lets you securely and anonymously share files, host websites, and chat with friends using the Tor network."
+
author = "Micah Lee"
author_email = "micah@micahflee.com"
-url = "https://github.com/micahflee/onionshare"
+url = "https://onionshare.org"
license = "GPL v3"
keywords = "onion, share, onionshare, tor, anonymous, web server"
classifiers = [
@@ -92,7 +73,6 @@ setup(
name="onionshare",
version=version,
description=description,
- long_description=long_description,
author=author,
author_email=author_email,
maintainer=author,
@@ -110,6 +90,7 @@ setup(
"onionshare_gui.tab.mode.share_mode",
"onionshare_gui.tab.mode.receive_mode",
"onionshare_gui.tab.mode.website_mode",
+ "onionshare_gui.tab.mode.chat_mode",
],
include_package_data=True,
scripts=["install/scripts/onionshare", "install/scripts/onionshare-gui"],
diff --git a/share/version.txt b/share/version.txt
index 61618788..c0943d3e 100644
--- a/share/version.txt
+++ b/share/version.txt
@@ -1 +1 @@
-2.2 \ No newline at end of file
+2.3 \ No newline at end of file
diff --git a/tests/test_cli.py b/tests/test_cli.py
index 3c85e60d..7cc61853 100644
--- a/tests/test_cli.py
+++ b/tests/test_cli.py
@@ -1,22 +1,3 @@
-"""
-OnionShare | https://onionshare.org/
-
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-
import os
import pytest
diff --git a/tests/test_cli_common.py b/tests/test_cli_common.py
index 650854f1..b60d22d7 100644
--- a/tests/test_cli_common.py
+++ b/tests/test_cli_common.py
@@ -1,22 +1,3 @@
-"""
-OnionShare | https://onionshare.org/
-
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-
import contextlib
import inspect
import io
diff --git a/tests/test_cli_settings.py b/tests/test_cli_settings.py
index 089c7416..83b51e54 100644
--- a/tests/test_cli_settings.py
+++ b/tests/test_cli_settings.py
@@ -1,22 +1,3 @@
-"""
-OnionShare | https://onionshare.org/
-
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-
import json
import os
import tempfile
diff --git a/tests/test_cli_strings.py b/tests/test_cli_strings.py
index 7ad65191..bb4ccdde 100644
--- a/tests/test_cli_strings.py
+++ b/tests/test_cli_strings.py
@@ -1,23 +1,4 @@
# -*- coding: utf-8 -*-
-"""
-OnionShare | https://onionshare.org/
-
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-
import types
import pytest
diff --git a/tests/test_cli_web.py b/tests/test_cli_web.py
index 6c2e14a3..d2802bf3 100644
--- a/tests/test_cli_web.py
+++ b/tests/test_cli_web.py
@@ -1,22 +1,3 @@
-"""
-OnionShare | https://onionshare.org/
-
-Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-
import contextlib
import inspect
import io