summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdocs/build.sh2
-rw-r--r--docs/gettext/.doctrees/advanced.doctreebin29050 -> 29050 bytes
-rw-r--r--docs/gettext/.doctrees/develop.doctreebin41566 -> 41566 bytes
-rw-r--r--docs/gettext/.doctrees/environment.picklebin38801 -> 38670 bytes
-rw-r--r--docs/gettext/.doctrees/features.doctreebin43702 -> 43702 bytes
-rw-r--r--docs/gettext/.doctrees/help.doctreebin8171 -> 8171 bytes
-rw-r--r--docs/gettext/.doctrees/index.doctreebin3439 -> 3439 bytes
-rw-r--r--docs/gettext/.doctrees/install.doctreebin20103 -> 20103 bytes
-rw-r--r--docs/gettext/.doctrees/security.doctreebin15257 -> 15257 bytes
-rw-r--r--docs/gettext/.doctrees/tor.doctreebin28673 -> 28673 bytes
-rw-r--r--docs/source/_static/screenshots/tabs.pngbin70875 -> 61545 bytes
-rw-r--r--docs/source/conf.py5
-rw-r--r--docs/source/develop.rst2
-rw-r--r--docs/source/locale/es/LC_MESSAGES/advanced.po232
-rw-r--r--docs/source/locale/es/LC_MESSAGES/develop.po253
-rw-r--r--docs/source/locale/es/LC_MESSAGES/features.po240
-rw-r--r--docs/source/locale/es/LC_MESSAGES/help.po75
-rw-r--r--docs/source/locale/es/LC_MESSAGES/index.po30
-rw-r--r--docs/source/locale/es/LC_MESSAGES/install.po144
-rw-r--r--docs/source/locale/es/LC_MESSAGES/security.po116
-rw-r--r--docs/source/locale/es/LC_MESSAGES/sphinx.po27
-rw-r--r--docs/source/locale/es/LC_MESSAGES/tor.po213
-rw-r--r--docs/source/locale/fr/LC_MESSAGES/advanced.po153
-rw-r--r--docs/source/locale/fr/LC_MESSAGES/develop.po177
-rw-r--r--docs/source/locale/fr/LC_MESSAGES/features.po226
-rw-r--r--docs/source/locale/fr/LC_MESSAGES/help.po57
-rw-r--r--docs/source/locale/fr/LC_MESSAGES/index.po25
-rw-r--r--docs/source/locale/fr/LC_MESSAGES/install.po101
-rw-r--r--docs/source/locale/fr/LC_MESSAGES/security.po61
-rw-r--r--docs/source/locale/fr/LC_MESSAGES/sphinx.po25
-rw-r--r--docs/source/locale/fr/LC_MESSAGES/tor.po137
-rw-r--r--docs/source/locale/nb_NO/LC_MESSAGES/advanced.po153
-rw-r--r--docs/source/locale/nb_NO/LC_MESSAGES/develop.po177
-rw-r--r--docs/source/locale/nb_NO/LC_MESSAGES/features.po226
-rw-r--r--docs/source/locale/nb_NO/LC_MESSAGES/help.po57
-rw-r--r--docs/source/locale/nb_NO/LC_MESSAGES/index.po25
-rw-r--r--docs/source/locale/nb_NO/LC_MESSAGES/install.po101
-rw-r--r--docs/source/locale/nb_NO/LC_MESSAGES/security.po61
-rw-r--r--docs/source/locale/nb_NO/LC_MESSAGES/sphinx.po25
-rw-r--r--docs/source/locale/nb_NO/LC_MESSAGES/tor.po156
-rw-r--r--docs/source/locale/uk/LC_MESSAGES/index.po31
-rw-r--r--docs/source/locale/uk/LC_MESSAGES/sphinx.po28
-rwxr-xr-xinstall/check_lacked_trans.py65
-rw-r--r--onionshare_gui/gui_common.py19
-rw-r--r--onionshare_gui/tab/mode/__init__.py1
-rw-r--r--onionshare_gui/tab/mode/chat_mode/__init__.py1
-rw-r--r--onionshare_gui/tab/mode/receive_mode/__init__.py24
-rw-r--r--onionshare_gui/tab/mode/share_mode/__init__.py1
-rw-r--r--onionshare_gui/tab/mode/website_mode/__init__.py1
-rw-r--r--onionshare_gui/tab/tab.py43
-rw-r--r--share/images/logo_text.pngbin0 -> 3798 bytes
-rw-r--r--share/images/mode_new_tab_chat.pngbin29514 -> 5213 bytes
-rw-r--r--share/images/mode_new_tab_receive.pngbin30723 -> 6470 bytes
-rw-r--r--share/images/mode_new_tab_share.pngbin25198 -> 4485 bytes
-rw-r--r--share/images/mode_new_tab_website.pngbin20123 -> 3860 bytes
-rw-r--r--share/images/mode_share.pngbin33773 -> 9472 bytes
-rw-r--r--share/images/mode_website.pngbin19790 -> 8126 bytes
-rw-r--r--share/locale/da.json2
-rw-r--r--share/locale/de.json2
-rw-r--r--share/locale/en.json57
-rw-r--r--share/locale/fr.json6
-rw-r--r--share/locale/hr.json4
-rw-r--r--share/locale/nb.json25
-rw-r--r--share/locale/uk.json52
-rw-r--r--tests/test_cli_strings.py4
65 files changed, 3526 insertions, 122 deletions
diff --git a/docs/build.sh b/docs/build.sh
index da24dc6f..26492fec 100755
--- a/docs/build.sh
+++ b/docs/build.sh
@@ -4,7 +4,7 @@ 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"
+LOCALES="en es"
# Generate English .po files
make gettext
diff --git a/docs/gettext/.doctrees/advanced.doctree b/docs/gettext/.doctrees/advanced.doctree
index 498c0f7c..e45d49a7 100644
--- a/docs/gettext/.doctrees/advanced.doctree
+++ b/docs/gettext/.doctrees/advanced.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/develop.doctree b/docs/gettext/.doctrees/develop.doctree
index 945a1fe4..6c796274 100644
--- a/docs/gettext/.doctrees/develop.doctree
+++ b/docs/gettext/.doctrees/develop.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/environment.pickle b/docs/gettext/.doctrees/environment.pickle
index e46b6331..0d828542 100644
--- a/docs/gettext/.doctrees/environment.pickle
+++ b/docs/gettext/.doctrees/environment.pickle
Binary files differ
diff --git a/docs/gettext/.doctrees/features.doctree b/docs/gettext/.doctrees/features.doctree
index 4ac88e50..ec327d02 100644
--- a/docs/gettext/.doctrees/features.doctree
+++ b/docs/gettext/.doctrees/features.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/help.doctree b/docs/gettext/.doctrees/help.doctree
index 3450c8be..7fe3c6d9 100644
--- a/docs/gettext/.doctrees/help.doctree
+++ b/docs/gettext/.doctrees/help.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/index.doctree b/docs/gettext/.doctrees/index.doctree
index 9855b80a..06eda7e9 100644
--- a/docs/gettext/.doctrees/index.doctree
+++ b/docs/gettext/.doctrees/index.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/install.doctree b/docs/gettext/.doctrees/install.doctree
index 2a302045..43677bc4 100644
--- a/docs/gettext/.doctrees/install.doctree
+++ b/docs/gettext/.doctrees/install.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/security.doctree b/docs/gettext/.doctrees/security.doctree
index 220f8b15..62107b01 100644
--- a/docs/gettext/.doctrees/security.doctree
+++ b/docs/gettext/.doctrees/security.doctree
Binary files differ
diff --git a/docs/gettext/.doctrees/tor.doctree b/docs/gettext/.doctrees/tor.doctree
index 63f63b6a..5280c0eb 100644
--- a/docs/gettext/.doctrees/tor.doctree
+++ b/docs/gettext/.doctrees/tor.doctree
Binary files differ
diff --git a/docs/source/_static/screenshots/tabs.png b/docs/source/_static/screenshots/tabs.png
index 33634960..8b96ace2 100644
--- a/docs/source/_static/screenshots/tabs.png
+++ b/docs/source/_static/screenshots/tabs.png
Binary files differ
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 4c89946e..8d09f93d 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -11,10 +11,7 @@ templates_path = ["_templates"]
exclude_patterns = []
languages = [
- ("العربية", "ar"),
- ("Català", "ca"),
- ("Dansk", "da"),
- ("Nederlands", "nl"),
+ ("Español", "es"),
("English", "en"),
]
diff --git a/docs/source/develop.rst b/docs/source/develop.rst
index 6783d781..2c36f48b 100644
--- a/docs/source/develop.rst
+++ b/docs/source/develop.rst
@@ -24,7 +24,7 @@ When you're ready to contribute code, open a pull request in the GitHub reposito
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.
+OnionShare is developed in Python. To get started, you should clone 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:
diff --git a/docs/source/locale/es/LC_MESSAGES/advanced.po b/docs/source/locale/es/LC_MESSAGES/advanced.po
new file mode 100644
index 00000000..a0f4766f
--- /dev/null
+++ b/docs/source/locale/es/LC_MESSAGES/advanced.po
@@ -0,0 +1,232 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: 2020-09-14 21:36+0000\n"
+"Last-Translator: Zuhualime Akoochimoya <zakooch@protonmail.ch>\n"
+"Language-Team: none\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.3-dev\n"
+
+#: ../../source/advanced.rst:2
+msgid "Advanced usage"
+msgstr "Uso avanzado"
+
+#: ../../source/advanced.rst:7
+msgid "Save tabs"
+msgstr "Guardar pestañas"
+
+#: ../../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 ""
+"Por defecto, todo es temporario en OnionShare. Tan pronto como cierras una "
+"pestaña OnionShare, su dirección no existe más, y no puede ser usada de "
+"nuevo. Pero a veces podrías querer que un servicio OnionShare sea "
+"persistente. Por ejemplo, esto sería útil si quieres alojar un sitio web que "
+"pueda mantener el mismo URL aún si reinicias tu computadora."
+
+#: ../../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 ""
+"Para hacer a cualquier pestaña persistente, marca la casilla \"Guardar esta "
+"pestaña, y abrirla automáticamente cuando abra OnionShare\" antes de iniciar "
+"al servidor. Cuando una pestaña es guardada, el ícono púrpura de un pin "
+"aparece a la izquierda de su estado de servidor."
+
+#: ../../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 ""
+"Cuando sales de OnionShare y luego lo vuelves a abrir, tus pestañas "
+"guardadas se iniciarán abiertas. Tendrás que arrancar cada servicio "
+"manualmente, pero cuando lo hagas, se iniciarán con la misma dirección "
+"OnionShare, y con la misma contraseña."
+
+#: ../../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 ""
+"Si guardas una pestaña, una copia de la clave secreta del servicio onion de "
+"la misma será almacenada en tu computadora con tus ajustes de OnionShare."
+
+#: ../../source/advanced.rst:22
+msgid "Disable passwords"
+msgstr "Deshabilitar contraseñas"
+
+#: ../../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 ""
+"Por defecto, todos los servicios OnionShare están protegidos con el nombre "
+"de usuario `onionshare` y una contraseña aleatoriamente generada. Si alguien "
+"intenta adivinar 20 veces la contraseña, y es incorrecta, tu servicio onion "
+"es detenido automáticamente para prevenir un ataque de fuerza bruta en "
+"contra del servicio OnionShare."
+
+#: ../../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 ""
+"Pero a veces podrías querer que tu servicio OnionShare sea accesible al "
+"público. Por ejemplo, si quieres establecer un servicio OnionShare de "
+"recepción con el fin de que el público pueda enviarte archivos segura y "
+"anónimamente. En este caso, es mejor deshabilitar del todo la contraseña. Si "
+"no haces esto, alguien puede forzar la detención de tu servidor haciendo "
+"solo 20 suposiciones incorrectas de tu contraseña, aún si conoce la correcta."
+
+#: ../../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 ""
+"Para deshabilitar la contraseña para cualquier pestaña, solo marca la "
+"casilla \"No usar una contraseña\" antes de iniciar el servidor. Entonces "
+"será público y no tendrá una contraseña."
+
+#: ../../source/advanced.rst:31
+msgid "Scheduled times"
+msgstr "Tiempos programados"
+
+#: ../../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 ""
+"OnionShare soporta la programación exacta de cuándo un servicio debiera "
+"arrancar y detenerse. Antes de iniciar el servidor, haz clic en \"Mostrar "
+"ajustes avanzados\" en su pestaña, y luego marca las casillas próximas a "
+"\"Iniciar el servicio onion en el tiempo programado\", \"Detener el servicio "
+"onion en el tiempo programado\", o ambas, y establece las fechas y horas "
+"deseadas."
+
+#: ../../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 ""
+"Si programaste un servicio para arrancar en el futuro, cuando hagas clic en "
+"el botón de inicio verás un temporizador contando regresivamente hasta el "
+"arranque. Si lo hiciste para detenerse en el futuro, luego que sea arrancado "
+"verás un temporizador contando regresivamente hasta el momento en que se "
+"detendrá automáticamente."
+
+#: ../../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 ""
+"**Programar un servicio OnionShare para iniciarse automáticamente puede ser "
+"usado como pulsador de hombre muerto**, en donde tu servicio será hecho "
+"público en un momento dado en el futuro si te pasara algo. Si no te pasa "
+"nada, puedes cancelarlo antes de su inicio programado."
+
+#: ../../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 ""
+"**Programar un servicio OnionShare para detenerse automáticamente puede ser "
+"útil para limitar la exposición**, como cuando quieres compartir documentos "
+"secretos mientras que te aseguras que no estarán disponibles en Internet por "
+"más de unos pocos días."
+
+#: ../../source/advanced.rst:46
+msgid "Command line interface"
+msgstr "Interfaz de línea de comando"
+
+#: ../../source/advanced.rst:48
+msgid "In addition to its graphical interface, OnionShare has a command line interface."
+msgstr ""
+"Además de su interfaz gráfico, OnionShare tiene una de línea de comando."
+
+#: ../../source/advanced.rst:51
+msgid "Linux"
+msgstr "Linux"
+
+#: ../../source/advanced.rst:53
+msgid "If you installed OnionShare using the Flatpak package, unfortunately the command line interface isn't supported."
+msgstr ""
+"Si instalaste OnionShare usando el paquete Flatpak, desafortunadamente la "
+"interfaz de línea de comando no está soportada."
+
+#: ../../source/advanced.rst:55
+msgid "If you installed OnionShare using an operating system package, you can just run ``onionshare`` from the terminal."
+msgstr ""
+"Si instalaste OnionShare usando un paquete del sistema operativo, puedes "
+"ejecutar ``onionshare`` desde una terminal."
+
+#: ../../source/advanced.rst:58
+msgid "macOS"
+msgstr "macOS"
+
+#: ../../source/advanced.rst:60
+msgid "Make a symbolic link to the OnionShare command line binary line this::"
+msgstr ""
+"Haz un vínculo simbólico al ejecutable OnionShare de línea de comando de "
+"esta menera:"
+
+#: ../../source/advanced.rst:64
+msgid "Now you can run ``onionshare`` from the terminal."
+msgstr "Ahora puedes ejecutar ``onionshare`` desde una terminal."
+
+#: ../../source/advanced.rst:67
+msgid "Windows"
+msgstr "Windows"
+
+#: ../../source/advanced.rst:69
+msgid "The command line interface isn't supported in Windows."
+msgstr "La interfaz de línea de comando no está soportada en Windows."
+
+#: ../../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 ""
+"Si de cualquier manera realmente quieres usarla, puedes establecer un "
+"entorno Windows de desarrollo (mira :ref:`starting_development`), y luego "
+"ejecutar esto en una ventana de línea de comando:"
+
+#: ../../source/advanced.rst:76
+msgid "Usage"
+msgstr "Uso"
+
+#: ../../source/advanced.rst:78
+msgid "You can see command line documentation by running ``onionshare --help``::"
+msgstr ""
+"Puedes ver la documentación de línea de comando ejecutando ``onionshare "
+"--help``:"
+
+#: ../../source/advanced.rst:134
+msgid "Legacy addresses"
+msgstr "Direcciones obsoletas"
+
+#: ../../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 ""
+"OnionShare usa servicios onion Tor v3 por defecto. Estas son direcciones "
+"onion modernas que tienen 56 caracteres, por ejemplo:"
+
+#: ../../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 ""
+"Pero aún tiene soporte para direcciones onion v2, el viejo tipo de "
+"direcciones onion que tienen 16 caracteres, por ejemplo:"
+
+#: ../../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 ""
+"OnionShare llama a las direcciones onion v2 \"direcciones obsoletas\". Las "
+"direcciones onion v3 son más seguras, y usar direcciones obsoletas no está "
+"recomendado."
+
+#: ../../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 ""
+"Para usar direcciones obsoletas, antes de iniciar un servidor haz clic en "
+"\"Mostrar ajustes avanzados\" en su pestaña, y marca la casilla \"Usar una "
+"dirección obsoleta (servicio onion v2, no recomendado)\". En el modo "
+"obsoleto, puedes habilitar opcionalmente la autenticación de cliente Tor. "
+"Una vez que inicias un servidor en modo obsoleto, no puedes removerlo de esa "
+"pestaña. En vez, debes arrancar un servicio separado en una pestaña separada."
+
+#: ../../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 ""
+"El Tor Project planea `descontinuar completamente los servicios onion v2 "
+"<https://blog.torproject.org/v2-deprecation-timeline>`_ el 15 de octubre de "
+"2021, y los servicios onion obsoletos pronto serán removidos de OnionShare "
+"también."
diff --git a/docs/source/locale/es/LC_MESSAGES/develop.po b/docs/source/locale/es/LC_MESSAGES/develop.po
new file mode 100644
index 00000000..4440b988
--- /dev/null
+++ b/docs/source/locale/es/LC_MESSAGES/develop.po
@@ -0,0 +1,253 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: 2020-09-14 21:36+0000\n"
+"Last-Translator: Zuhualime Akoochimoya <zakooch@protonmail.ch>\n"
+"Language-Team: none\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.3-dev\n"
+
+#: ../../source/develop.rst:2
+msgid "Developing OnionShare"
+msgstr "Desarrollando OnionShare"
+
+#: ../../source/develop.rst:7
+msgid "Collaborating"
+msgstr "Colaborando"
+
+#: ../../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 ""
+"OnionShare tiene un equipo Keybase abierto que usamos para discutir el "
+"proyecto, incluyendo hacer preguntas, compartir ideas y diseños, y hacer "
+"planes para desarrollo futuro. (También es una manera fácil de enviar "
+"mensajes directos cifrados de extremo a extremo a otros en la comunidad "
+"OnionShare, como direcciones OnionShare). Para usar Keybase, necesitas "
+"descargar la `aplicación Keybase <https://keybase.io/download>`_, crear una "
+"cuenta, y `unirte a este equipo <https://keybase.io/team/onionshare>`_. "
+"Dentro de la aplicación, vé hacia Equipos, haz clic en \"Unirte a un Equipo\""
+", y tipea \"onionshare\"."
+
+#: ../../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 ""
+"OnionShare también tiene una `lista de correo <https://lists.riseup.net/www/"
+"subscribe/onionshare-dev>`_ para desarrolladores y diseñafores para discutir "
+"el proyecto."
+
+#: ../../source/develop.rst:14
+msgid "Contributing code"
+msgstr "Contribuyendo código"
+
+#: ../../source/develop.rst:16
+msgid "OnionShare source code is in this git repository: https://github.com/micahflee/onionshare"
+msgstr ""
+"El código fuente de OnionShare está en este repositorio git: https://github."
+"com/micahflee/onionshare"
+
+#: ../../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 ""
+"Si quisieras contribuir código a OnionShare, ayuda unirse al equipo Keybase "
+"y hacer preguntas acerca de en qué estás pensando trabajar. También debieras "
+"revisar todos las `cuestiones abiertas <https://github.com/micahflee/"
+"onionshare/issues>`_ en GitHub para ver si hay alguna a la cual te gustaría "
+"desarrollar."
+
+#: ../../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 ""
+"Cuando estés listo para contribuir código, abre una solicitud de tiraje en "
+"el repositorio GitHub, y uno de los mantenedores del proyecto la revisará, y "
+"posiblemente haga preguntas, solicite cambios, la rechace o la incorpore "
+"dentro del proyecto."
+
+#: ../../source/develop.rst:25
+msgid "Starting development"
+msgstr "Iniciando el desarrollo"
+
+#: ../../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 ""
+"OnionShare está desarrollado en Python. Para empezar, debieras clonar el "
+"repositorio git en https://github.com/micahflee/onionshare/, y consultar "
+"luego al archivo ``BUILD.md``."
+
+#: ../../source/develop.rst:29
+msgid "That file contains the technical instructions and commands necessary:"
+msgstr ""
+"Ese archivo contiene las instrucciones técnicas y los comandos necesarios:"
+
+#: ../../source/develop.rst:31
+msgid "Install dependencies for your platform"
+msgstr "Instala las dependencias para tu plataforma"
+
+#: ../../source/develop.rst:32
+msgid "Run OnionShare from the source tree, without building a package"
+msgstr "Ejecuta OnionShare desde el árbol fuente, sin construir un paquete"
+
+#: ../../source/develop.rst:33
+msgid "Building packages"
+msgstr "Construyendo paquetes"
+
+#: ../../source/develop.rst:34
+msgid "Making a release of OnionShare"
+msgstr "Haciendo un lanzamiento de OnionShare"
+
+#: ../../source/develop.rst:37
+msgid "Debugging tips"
+msgstr "Consejos para depuración"
+
+#: ../../source/develop.rst:40
+msgid "Verbose mode"
+msgstr "Modo detallado"
+
+#: ../../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 ""
+"Durante el desarrollo, es conveniente ejecutar OnionShare desde un terminal "
+"y agregar el modificador ``--verbose`` (o ``-v``) al comando. Esto imprimirá "
+"un montón de mensajes útiles al terminal, tales como cuándo son "
+"inicializados ciertos objetos, cuándo ocurren eventos (como botones "
+"cliqueados, ajustes guardados o recargados), y otra información de "
+"depuración. Por ejemplo:"
+
+#: ../../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 ""
+"Puedes agregar tus propios mensajes de depuración ejecutando el método "
+"``Common.log`` desde ``onionshare/common.py``. Por ejemplo:"
+
+#: ../../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 ""
+"Esto puede ser útil para conocer la cadena de eventos que ocurre cuando usas "
+"la aplicación o el valor de ciertas variables antes y después de que sean "
+"manipuladas."
+
+#: ../../source/develop.rst:118
+msgid "Local only"
+msgstr "Solo local"
+
+#: ../../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 ""
+"Tor es lento, y a menudo es conveniente saltear el inicio de servicios onion "
+"sin excepción durante el desarrollo. Puedes hacer esto con el modoficador "
+"``--local-only``. Por ejemplo:"
+
+#: ../../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 ""
+"En este caso, cargas el URL ``http://onionshare:eject-snack@127.0.0.1:17614``"
+" en un navegador web normal como Firefox, en vez de usar al Navegador Tor."
+
+#: ../../source/develop.rst:160
+msgid "Debugging in Windows"
+msgstr "Depurando en Windows"
+
+#: ../../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 ""
+"Si quieres obtener la salida de depuración del ``onionshare-gui.exe`` en "
+"Windows, nececitarás editar ``install\\pyinstaller.spec`` y cambiar "
+"``console=False`` a ``console=True``."
+
+#: ../../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 ""
+"Luego, recompilar el EXE con ``install\\build_exe.bat`` (podrías necesitar "
+"comentar los comandos ``signtool`` en los archivos ``build_exe.bat`` y "
+"``onionshare.nsi``, según las instrucciones en ``BUILD.md``)."
+
+#: ../../source/develop.rst:166
+msgid "After this, you can run ``onionshare-gui.exe -v`` from a command prompt to see the debug output."
+msgstr ""
+"Después de esto, puedes ejecutar ``onionshare-gui.exe -v`` desde una ventana "
+"de línea de comando para ver la salida de depuración."
+
+#: ../../source/develop.rst:169
+msgid "Contributing translations"
+msgstr "Contribuyendo traducciones"
+
+#: ../../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 ""
+"La mayor parte de OnionShare es traducible. Puedes ayudar a hacerlo más "
+"fácil de usar y más familiar y acogedor para las personas alrededor del "
+"globo. Localization Lab tiene alguna `documentación acerca de traducir "
+"OnionShare <https://wiki.localizationlab.org/index.php/OnionShare>`_."
+
+#: ../../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 ""
+"OnionShare usa Weblate para llevar un registro de las traducciones. Puedes "
+"ver el proyecto OnionShare aquí: https://hosted.weblate.org/projects/"
+"onionshare/"
+
+#: ../../source/develop.rst:175
+msgid "To help translate, make a Hosted Weblate account and start contributing to that project."
+msgstr ""
+"Para ayudar a traducir, crea una cuenta Hosted Weblate y empieza a "
+"contribuir a ese proyecto."
+
+#: ../../source/develop.rst:178
+msgid "Suggestions for original English strings"
+msgstr "Sugerencias para cadenas de caracteres en el original en Inglés"
+
+#: ../../source/develop.rst:180
+msgid "Sometimes the original English strings could be improved, making them easier to translate into other languages."
+msgstr ""
+"A veces las cadenas de caracteres en el original en Inglés podrían ser "
+"mejoradas, haciéndolas más fáciles de traducir a otros lenguajes."
+
+#: ../../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 ""
+"Si tienes sugerencias para una mejor cadena de caracteres en Inglés, por "
+"favor abre una cuestión en GitHub en vez de comentar en Weblate. Esto "
+"asegura que los desarrolladores en el nivel superior definitivamente verán "
+"la sugerencia, y pueden modificarla potencialmente a través de los procesos "
+"usuales de revisión de código."
+
+#: ../../source/develop.rst:185
+msgid "Status of translations"
+msgstr "Estado de las traducciones"
+
+#: ../../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 ""
+"Aquí está el estado actual de las traducciones. Si quieres empezar una "
+"traducción en un lenguaje que no se encuentra aquí, por favor escríbenos a "
+"la lista de correo: onionshare-dev@lists.riseup.net"
+
+#: ../../source/develop.rst:191
+msgid "Translate the .desktop file"
+msgstr "Traduce el archivo .desktop"
+
+#: ../../source/develop.rst:193
+msgid "You can also translate the ``install/onionshare.desktop`` file."
+msgstr "También puedes traducir el archivo ``install/onionshare.desktop``."
+
+#: ../../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 ""
+"Duplica la línea que empieza con ``Comment=``. Agrega el código de lenguaje "
+"a la nueva línea, que entonces se transforma en ``Comment[lang]=`` (lang "
+"debiera ser tu lenguaje). Puedes ver qué códigos de lenguaje son usados para "
+"traducción mirando a los nombres de archivos en ``share/locale/*.json``:"
+
+#: ../../source/develop.rst:200
+msgid "Do the same for other untranslated lines."
+msgstr "Haz lo mismo para otras líneas no traducidas."
diff --git a/docs/source/locale/es/LC_MESSAGES/features.po b/docs/source/locale/es/LC_MESSAGES/features.po
new file mode 100644
index 00000000..7bc57bfb
--- /dev/null
+++ b/docs/source/locale/es/LC_MESSAGES/features.po
@@ -0,0 +1,240 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: 2020-09-14 21:36+0000\n"
+"Last-Translator: Zuhualime Akoochimoya <zakooch@protonmail.ch>\n"
+"Language-Team: none\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.3-dev\n"
+
+#: ../../source/features.rst:4
+msgid "How OnionShare works"
+msgstr "Cómo funciona OnionShare"
+
+#: ../../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 ""
+"OnionShare funciona iniciando servidores web localmente en tu propia "
+"computadora, y haciéndolos accesibles a otras peesonas como `servicios onion "
+"<https://community.torproject.org/onion-services/>`_`Tor <https://www."
+"torproject.org/>`_ ."
+
+#: ../../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 ""
+"Por defecto, las direcciones web OnionShare están protegidas con una "
+"contraseña aleatoria. Una dirección OnionShare típica podría parecerse a "
+"algo como esto:"
+
+#: ../../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 ""
+"Tu eres responsable por compartir en forma segura ese URL, usando un canal "
+"de comunicación de tu elección, como un mensaje cifrado en una charla, o "
+"usando algo menos seguro, como un mensaje de Twitter o Facebook, dependiendo "
+"de tu `modelo de amenaza <https://ssd.eff.org/en/module/your-security-"
+"plan>`_."
+
+#: ../../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/es/LC_MESSAGES/help.po b/docs/source/locale/es/LC_MESSAGES/help.po
new file mode 100644
index 00000000..dad96235
--- /dev/null
+++ b/docs/source/locale/es/LC_MESSAGES/help.po
@@ -0,0 +1,75 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: 2020-09-14 21:36+0000\n"
+"Last-Translator: Zuhualime Akoochimoya <zakooch@protonmail.ch>\n"
+"Language-Team: none\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.3-dev\n"
+
+#: ../../source/help.rst:2
+msgid "Getting Help"
+msgstr "Obteniendo Ayuda"
+
+#: ../../source/help.rst:4
+msgid "If you need help with OnionShare, please follow the instructions below."
+msgstr ""
+"Si necesitas ayuda con OnionShare, por favor sigue las instrucciones de "
+"abajo."
+
+#: ../../source/help.rst:7
+msgid "Read this website"
+msgstr "Lee este sitio web"
+
+#: ../../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 ""
+"Este sitio web está lleno de instrucciones sobre cómo usar OnionShare. Mira "
+"primero a través de todas las secciones para ver si responde a tus preguntas."
+
+#: ../../source/help.rst:12
+msgid "Check the GitHub issues"
+msgstr "Comprueba las cuestiones con GitHub"
+
+#: ../../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 ""
+"Si no puedes encontrar una solución en este sitio web, por favor comprueba "
+"las `cuestiones con GitHub <https://github.com/micahflee/onionshare/issues>`"
+"_. Es posible que alguien más se haya encontrado con el mismo problema y lo "
+"haya elevado a los desarrolladores, o incluso también que haya publicado una "
+"solución."
+
+#: ../../source/help.rst:17
+msgid "Submit an issue yourself"
+msgstr "Envía una cuestión"
+
+#: ../../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 ""
+"Si no puedes encontrar una solución a tu problema, o deseas hacer una "
+"pregunta o sugerir una característica nueva, por favor `envía una cusestión "
+"<https://github.com/micahflee/onionshare/issues/new>`_. Esto requiere `crear "
+"una cuenta en GitHub <https://help.github.com/articles/"
+"signing-up-for-a-new-github-account/>`_."
+
+#: ../../source/help.rst:22
+msgid "Join our Keybase team"
+msgstr "Únete a nuestro equipo Keybase"
+
+#: ../../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 ""
+"Mira :ref:`collaborating` por instrucciones acerca de cómo unirse a nuestro "
+"equipo Keybase, al cual usamos para discutir el proyecto."
diff --git a/docs/source/locale/es/LC_MESSAGES/index.po b/docs/source/locale/es/LC_MESSAGES/index.po
new file mode 100644
index 00000000..dc691b19
--- /dev/null
+++ b/docs/source/locale/es/LC_MESSAGES/index.po
@@ -0,0 +1,30 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
+"POT-Creation-Date: 2020-09-03 11:46-0700\n"
+"PO-Revision-Date: 2020-09-14 21:36+0000\n"
+"Last-Translator: emma peel <emma.peel@riseup.net>\n"
+"Language-Team: none\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.3-dev\n"
+
+#: ../../source/index.rst:2
+msgid "OnionShare's documentation"
+msgstr "Documentación de OnionShare"
+
+#: ../../source/index.rst:6
+msgid "OnionShare is an open source tool that lets you securely and anonymously share files, host websites, and chat with friends using the Tor network."
+msgstr ""
+"OnionShare es una herramienta de código abierto que te permite compartir "
+"archivos de forma segura y anónima, alojar sitios web y charlar con amigos "
+"usando la red Tor."
diff --git a/docs/source/locale/es/LC_MESSAGES/install.po b/docs/source/locale/es/LC_MESSAGES/install.po
new file mode 100644
index 00000000..41624bdf
--- /dev/null
+++ b/docs/source/locale/es/LC_MESSAGES/install.po
@@ -0,0 +1,144 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: 2020-09-14 21:36+0000\n"
+"Last-Translator: Zuhualime Akoochimoya <zakooch@protonmail.ch>\n"
+"Language-Team: none\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.3-dev\n"
+
+#: ../../source/install.rst:2
+msgid "Installation"
+msgstr "Instalación"
+
+#: ../../source/install.rst:5
+msgid "Install on Windows or macOS"
+msgstr "Instalar en Windows o macOS"
+
+#: ../../source/install.rst:7
+msgid "You can download OnionShare for Windows and macOS from the `OnionShare website <https://onionshare.org/>`_."
+msgstr ""
+"Puedes descargar OnionShare para Windows o macOS desde la página web de `"
+"OnionShare <https://onionshare.org/>`_."
+
+#: ../../source/install.rst:9
+msgid "For added security, see :ref:`verifying_sigs`."
+msgstr "Para mayor seguridad, lee :ref:`verifying_sigs`."
+
+#: ../../source/install.rst:14
+msgid "Install in Linux with Flatpak"
+msgstr "Instalar en Linux con Flatpak"
+
+#: ../../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 ""
+"Hay varias formas de instalar OnionShare en Linux, pero recomendamos "
+"utilizar el paquete Flatpak. Flatpak garantiza que las dependencias serán "
+"siempre las más recientes y ejecutará OnionShare dentro de un contenedor "
+"aislado."
+
+#: ../../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 ""
+"Instala ``flatpak`` y añade el repositorio Flathub siguiendo `estas "
+"instrucciones <https://flatpak.org/setup/>`_ para tu distribución Linux."
+
+#: ../../source/install.rst:20
+msgid "Then install OnionShare from Flathub by following `the instructions here <https://flathub.org/apps/details/org.onionshare.OnionShare>`_."
+msgstr ""
+"Luego instala OnionShare desde Flathub siguiendo `estas instrucciones "
+"<https://flathub.org/apps/details/org.onionshare.OnionShare>`_."
+
+#: ../../source/install.rst:25
+msgid "Verifying PGP signatures"
+msgstr "Verificar firmas PGP"
+
+#: ../../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 ""
+"Puedes asegurate de que el paquete con el código fuente, el de Windows o el "
+"de macOS que descargaste es correcto y no ha sido manipulado verificando su "
+"firma PGP. Para Windows y macOS este paso es opcional, y provee defensa en "
+"profundidad: los instaladores también incluyen sus firmas específicas del "
+"sistema operativo, y puedes confiar solo en ellas si así lo deseas."
+
+#: ../../source/install.rst:30
+msgid "Signing key"
+msgstr "Clave de firma"
+
+#: ../../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 ""
+"Los paquetes para Windows, macOS, y el código fuente están firmados por "
+"Micah Lee, el desarrollador principal, usando su clave PGP pública con "
+"huella digital ``927F419D7EC82C2F149C1BD1403C2657CD994F73``. Puedes "
+"descargar la clave de Micah `desde el servidor de claves keys.openpgp.org "
+"<https://keys.openpgp.org/vks/v1/by-fingerprint/"
+"927F419D7EC82C2F149C1BD1403C2657CD994F73>`_."
+
+#: ../../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 ""
+"Con el fin de verificar firmas, debes tener GnuPG instalado. Para macOS "
+"probablemente quieras `GPGTools <https://gpgtools.org/>`_, y para Windows, `"
+"Gpg4win <https://www.gpg4win.org/>`_."
+
+#: ../../source/install.rst:37
+msgid "Signatures"
+msgstr "Firmas"
+
+#: ../../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 ""
+"Puedes encontrar las firmas (archivos ``.asc``), como así también los "
+"paquetes para Windows, macOS y el código fuente, en https://onionshare.org/"
+"dist/ en las carpetas nombradas por cada versión de OnionShare. También "
+"puedes encontrarlas en la `página de Lanzamientos de GitHub <https://github."
+"com/micahflee/onionshare/releases>`_."
+
+#: ../../source/install.rst:42
+msgid "Verifying"
+msgstr "Verificando"
+
+#: ../../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 ""
+"Una vez que hayas importado la clave pública de Micah dentro de tu llavero "
+"GnuPG, descargado el ejecutable y la firma ``.asc``, puedes verificar el "
+"ejecutable para macOS en un terminal como sigue:"
+
+#: ../../source/install.rst:48
+msgid "Or for Windows in a command prompt like this::"
+msgstr "O para Windows en una línea de comando como sigue:"
+
+#: ../../source/install.rst:52
+msgid "An expected output might look like this::"
+msgstr "Una salida esperada puede lucir como esta:"
+
+#: ../../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 ""
+"Si no ves 'Good signature from', entonces podría haber un problema con la "
+"integridad del archivo (malicioso u otra causa), y tal vez no debieras "
+"instalar el paquete. (La ADVERTENCIA mostrada arriba no es un problema con "
+"el paquete: solamente significa que no has definido ningún nivel de "
+"'confianza' con respecto a la clave PGP de Micah en sí misma.)"
+
+#: ../../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 ""
+"Si quieres aprender más acerca de la verificación de firmas PGP, las guías "
+"para `Qubes OS <https://www.qubes-os.org/security/verifying-signatures/>`_ y "
+"el `Tor Project <https://2019.www.torproject.org/docs/verifying-signatures."
+"html.en>`_ podrían ser útiles."
diff --git a/docs/source/locale/es/LC_MESSAGES/security.po b/docs/source/locale/es/LC_MESSAGES/security.po
new file mode 100644
index 00000000..6fad2771
--- /dev/null
+++ b/docs/source/locale/es/LC_MESSAGES/security.po
@@ -0,0 +1,116 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: 2020-09-14 21:36+0000\n"
+"Last-Translator: emma peel <emma.peel@riseup.net>\n"
+"Language-Team: none\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.3-dev\n"
+
+#: ../../source/security.rst:2
+msgid "Security design"
+msgstr "Diseño de seguridad"
+
+#: ../../source/security.rst:4
+msgid "First read :ref:`how_it_works` to understand the basics of how OnionShare works."
+msgstr ""
+"Primero lee :ref:`how_it_works` para entender las bases de cómo funciona "
+"OnionShare."
+
+#: ../../source/security.rst:6
+msgid "Like all software, OnionShare may contain bugs or vulnerabilities."
+msgstr ""
+"Como cualquier software, OnionShare podría contener errores o "
+"vulnerabilidades."
+
+#: ../../source/security.rst:9
+msgid "What OnionShare protects against"
+msgstr "Contra qué te protege OnionShare"
+
+#: ../../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 ""
+"**Ningún tercero tiene acceso a lo que pasa en OnionShare.** Cuando usas "
+"OnionShare, alojas servicios directamente en tu computadora. Por ejemplo, "
+"cuando compartes archivos con OnionShare, no los subes a ningún servidor, y "
+"cuando inicias un cuarto de chat OnionShare, tu computadora es el servidor. "
+"Las maneras tradicionales de compartir archivos o configurar sitios web y "
+"cuartos de chat requieren confiar en un servicio con acceso a tus datos."
+
+#: ../../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 ""
+"**Quienes estén observando la red no pueden espiar nada de lo que pasa en "
+"tránsito en OnionShare.** Debido a que las conexiones entre los servicios "
+"onion de Tor y el Navegador Tor están cifradas de extremo a extremo, ningún "
+"atacante puede espiar qué es lo que pasa en un servicio OnionShare. Si el "
+"espía está posicionado en el extremo del usuario de OnionShare, el extremo "
+"del usuario del Navegador Tor, o es un nodo Tor malicioso, solamente verá "
+"tráfico Tor. Si el espía es un nodo de encuentro malicioso usado para "
+"conectar al Navegador Tor con el servicio onion de OnionShare, el tráfico "
+"estará cifrado usando la clave del servicio onion."
+
+#: ../../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 ""
+"**El anonimato de los usuarios de OnionShare está protegido por Tor.** "
+"OnionShare y el Navegador Tor protegen el anonimato de los usuarios. En la "
+"medida en que el usuario de OnionShare comunique anónimamente la dirección "
+"OnionShare con los usuarios del Navegador Tor, ni éstos ni los espías pueden "
+"saber la identidad del usuario de OnionShare."
+
+#: ../../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 ""
+"**Si un atacante encuentra el servicio onion, aún así no puede acceder a "
+"nada.** Ha habido ataques en contra de la red Tor que pueden enumerar "
+"servicios onion. Aún si alguien descubre la dirección .onion de un servicio "
+"onion de OnionShare, no puede accederla sin conocer también la contraseña "
+"aleatoria del servicio (a menos, por supuesto, que el usuario de OnionShare "
+"elija deshabilitarla y hacerla pública). La contraseña es generada eligiendo "
+"dos palabras aleatorias de una lista de 6800, lo cual significa que hay 6800^"
+"2, o cerca de 46 millones de contraseñas posibles. Pero pueden hacer "
+"solamente 20 intentos fallidos antes de que OnionShare pare el servidor, "
+"evitando ataques de fuerza bruta para conseguir la contraseña."
+
+#: ../../source/security.rst:20
+msgid "What OnionShare doesn't protect against"
+msgstr "Contra qué no te protege OnionShare"
+
+#: ../../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 ""
+"**Comunicar la dirección de OnionShare podría no ser seguro.** El usuario de "
+"OnionShare es responsable de comunicar en forma segura la dirección de "
+"OnionShare con las personas. Si lo hace de forma insegura (tal como a través "
+"de un mensaje de correo electrónico, mientras que éste está siendo "
+"monitoreado por un atacante), el espía sabrá que está usando OnionShare. Si "
+"el atacante carga la dirección en el Navegador Tor antes que el receptor "
+"legítimo lo haga, puede acceder al servicio. Si este riesgo es posible "
+"dentro del modelo de amenaza del usuario, debes encontrar una manera más "
+"segura de comunicar la dirección, tal como en un correo electrónico, charla "
+"o llamadas cifradas de voz. Esto no es necesario en casos donde OnionShare "
+"está siendo usado para algo que no es secreto."
+
+#: ../../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 ""
+"**Comunicar la dirección de OnionShare podría no ser anónimo.** Mientras que "
+"OnionShare y el Navegador Tor permiten el anonimato, si el usuario desea "
+"permanecer anónimo, debe tomar pasos extra para asegurarlo cuando comunica "
+"la dirección de OnionShare. Por ejemplo, podría necesitar usar Tor para "
+"crear un nuevo correo electrónico o cuenta de charla anónimos, y accederla "
+"solamente sobre Tor para compartir la dirección. Esto no es necesario en "
+"casos donde no haya necesidad de proteger el anonimato, tales como con "
+"colegas que se conocen entre sí, y comparten documentos de trabajo."
diff --git a/docs/source/locale/es/LC_MESSAGES/sphinx.po b/docs/source/locale/es/LC_MESSAGES/sphinx.po
new file mode 100644
index 00000000..1b6e29d0
--- /dev/null
+++ b/docs/source/locale/es/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>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: 2020-09-14 21:36+0000\n"
+"Last-Translator: emma peel <emma.peel@riseup.net>\n"
+"Language-Team: none\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.3-dev\n"
+
+#: ../../source/_templates/versions.html:10
+msgid "Versions"
+msgstr "Versiones"
+
+#: ../../source/_templates/versions.html:18
+msgid "Languages"
+msgstr "Idiomas"
diff --git a/docs/source/locale/es/LC_MESSAGES/tor.po b/docs/source/locale/es/LC_MESSAGES/tor.po
new file mode 100644
index 00000000..30f3b5af
--- /dev/null
+++ b/docs/source/locale/es/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>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: 2020-09-14 21:36+0000\n"
+"Last-Translator: emma peel <emma.peel@riseup.net>\n"
+"Language-Team: none\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.3-dev\n"
+
+#: ../../source/tor.rst:2
+msgid "Connecting to Tor"
+msgstr "Conectar a Tor"
+
+#: ../../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 ""
+"Hay varias opciones para cómo debiera conectarse OnionShare a Tor. Puedes "
+"cambiarlas en Ajustes, a los cuales puedes acceder haciendo clic en el ícono "
+"del engranaje abajo a la derecha de la ventana."
+
+#: ../../source/tor.rst:9
+msgid "Use Tor that is bundled with OnionShare"
+msgstr "Usar la versión de Tor incluida con OnionShare"
+
+#: ../../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 ""
+"Esta es la manera por defecto en la que OnionShare se conecta a Tor, y "
+"también es la más simple y confiable. Por esta razón, es recomendada para la "
+"mayoría de los usuarios."
+
+#: ../../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 ""
+"Cuando abres OnionShare, lanzará un proceso Tor en segundo plano que está "
+"configurado específicamente para su uso. Este proceso Tor no interferirá con "
+"otros procesos Tor en tu computadora, por lo que eres libre de correr al "
+"Navegador Tor o usar un Tor de sistema en segundo plano."
+
+#: ../../source/tor.rst:16
+msgid "Attempt automatic configuration with Tor Browser"
+msgstr "Intentar configuración automática con el Navegador Tor"
+
+#: ../../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 ""
+"Puedes configurar OnionShare para conectar al Tor que viene con el Navegador "
+"Tor. Primero, `descarga el Navegador Tor <https://www.torproject.org>`_ aquí "
+"si aún no lo tienes. Con este ajuste seleccionado, necesitas mantener al "
+"Navegador Tor abierto en segundo plano mientras estás usando OnionShare."
+
+#: ../../source/tor.rst:21
+msgid "Using a system Tor in Windows"
+msgstr "Usar un Tor de sistema en Windows"
+
+#: ../../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 ""
+"Esto es bastante avanzado. Necesitarás saber cómo editar archivos de texto y "
+"hacer cosas como administrador."
+
+#: ../../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 ""
+"Descarga el Paquete Experto de Tor para Windows, al cual puedes obtener `de "
+"aquí <https://www.torproject.org/download/tor/>`_. Extrae el archivo zip y "
+"copia la carpeta extraída a ``C:\\Program Files (x86)\\``, y renómbrala a "
+"``tor-win32``; dentro de esa carpeta están las subcarpetas ``Data`` y "
+"``Tor``."
+
+#: ../../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 ""
+"Inventa una contraseña para el puerto de control. Voy a usar ``comprised "
+"stumble rummage work avenging construct volatile`` como la mía. Ahora abre "
+"una ventana para línea de comando como administrador, y usa ``tor.exe --hash-"
+"password`` para generar un hash de tu contraseña. Por ejemplo:"
+
+#: ../../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 ""
+"La salida del hash de la contraseña es mostrada después de algunas "
+"advertencias (a las cuales puedes ignorar). En mi caso, fue "
+"``16:00322E903D96DE986058BB9ABDA91E010D7A863768635AC38E213FDBEF``."
+
+#: ../../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 ""
+"Ahora crea un nuevo archivo de texto en ``C:\\Program Files (x86)\\tor-"
+"win32\\torrc`` y pon esto en él, reemplazando el ``HashedControlPassword`` "
+"con el que acabas de generar:"
+
+#: ../../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 ""
+"En tu ventana de línea de comando como administrador, instala tor como "
+"servicio usando el archivo ``torrc`` apropiado que acabas de crear (mira `"
+"aquí <https://2019.www.torproject.org/docs/faq.html.en#NTService>`_ para más "
+"información sobre cómo hacer esto). De esta manera:"
+
+#: ../../source/tor.rst:43
+msgid "You're now running a system Tor in Windows!"
+msgstr "¡Ahora estás ejecutando un Tor de sistema en Windows!"
+
+#: ../../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 ""
+"Abre OnionShare. Haz clic en el ícono Ajustes. Bajo \"¿Cómo debiera "
+"conectarse a Tor OnionShare?\" elije \"Conectar usando el puerto de control\""
+", y establece el equipo del puerto de control a ``127.0.0.1``, y el puerto a "
+"``9051``. Bajo \"Opciones de autenticación de Tor\" elije \"Contraseña\" y "
+"establécela a la tuya, en mi caso ``comprised stumble rummage work avenging "
+"construct volatile``. Haz clic en el botón \"Probar Ajustes\". Si todo va "
+"bien, debieras ver que se conectó exitosamente a tor."
+
+#: ../../source/tor.rst:48
+msgid "Using a system Tor in Mac OS X"
+msgstr "Usando un Tor de sistema en macOS"
+
+#: ../../source/tor.rst:50
+msgid "First, install `Homebrew <http://brew.sh/>`_ if you don't already have it. Then, install Tor::"
+msgstr ""
+"Primero, instala `Homebrew <http://brew.sh/>`_ si es que todavía no lo "
+"tienes. Luego, instala Tor:"
+
+#: ../../source/tor.rst:54
+msgid "Now configure Tor to allow connections from OnionShare::"
+msgstr "Ahora configura a Tor para permitir conexiones desde OnionShare:"
+
+#: ../../source/tor.rst:61
+msgid "And start the system Tor service::"
+msgstr "E inicia el servicio Tor de sistema:"
+
+#: ../../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 ""
+"Abre OnionShare. Haz clic en el ícono Ajustes. Bajo \"¿Cómo debiera "
+"conectarse a Tor OnionShare?\" elije \"Conectar usando un archivo socket\", "
+"y establécelo a ``/usr/local/var/run/tor/control.socket``. Bajo \"Opciones "
+"de autenticación de Tor\" elije \"Sin autenticación, o autenticación por "
+"cookies\". Haz clic en el botón \"Probar Ajustes\". Si todo va bien, "
+"debieras ver que se conectó exitosamente a tor."
+
+#: ../../source/tor.rst:68
+msgid "Using a system Tor in Linux"
+msgstr "Usando un Tor de sistema en Linux"
+
+#: ../../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 ""
+"Primero, instala el paquete tor. Si estás usando Debian, Ubuntu o una "
+"distribución de Linux similar, te recomiendo que uses el `repositorio "
+"oficial <https://2019.www.torproject.org/docs/debian.html.en>`_ del Tor "
+"Project. Por ejemplo, en Ubuntu 20.04:"
+
+#: ../../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 ""
+"Luego, agrega tu usuario al grupo que corre el proceso Tor (en el caso de "
+"Debian y Ubuntu, ``debian-tor``) y configura OnionShare para conectarse al "
+"archivo socket de control de tu Tor de sistema."
+
+#: ../../source/tor.rst:80
+msgid "Add your user to the ``debian-tor`` group by running this command (replace ``username`` with your actual username)::"
+msgstr ""
+"Agrega tu usuario al grupo ``debian-tor`` ejecutando este comando (reemplaza "
+"``username`` con tu nombre de usuario real):"
+
+#: ../../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 ""
+"Reinicia tu computadora. Luego de que vuelva a arrancar, abre OnionShare. "
+"Haz clic en el ícono Ajustes. Bajo \"¿Cómo debiera conectarse a Tor "
+"OnionShare?\" elije \"Conectar usando un archivo socket\", y establécelo a "
+"``/var/run/tor/control``. Bajo \"Opciones de autenticación de Tor\" elije "
+"\"Sin autenticación, o autenticación por cookies\". Haz clic en el botón "
+"\"Probar Ajustes\". Si todo va bien, debieras ver que se conectó "
+"exitosamente a Tor."
+
+#: ../../source/tor.rst:87
+msgid "Using Tor bridges"
+msgstr "Usar puentes Tor"
+
+#: ../../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 ""
+"Si ru acceso a Internet está censurado, puedes configurar OnionShare para "
+"conectarse a la red Tor usando `puentes Tor <https://2019.www.torproject.org/"
+"docs/bridges.html.en>`_. Si OnionShare se conecta exitosamente a Tor, no "
+"necesitas usar un puente."
+
+#: ../../source/tor.rst:91
+msgid "To configure bridges, open OnionShare settings."
+msgstr "Para configurar puentes, abre los ajustes de OnionShare."
+
+#: ../../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 ""
+"Puedes usar los transportes conectables obfs4 o meek_lite (Azure) "
+"incorporados, o puentes personalizados, los cuales puedes obtener de la `"
+"BridgeDB <https://bridges.torproject.org/>`_ de Tor. Si necesitas usar un "
+"puente, debieras intentar primero con los obfs4 incorporados."
diff --git a/docs/source/locale/fr/LC_MESSAGES/advanced.po b/docs/source/locale/fr/LC_MESSAGES/advanced.po
new file mode 100644
index 00000000..5c5d9a3d
--- /dev/null
+++ b/docs/source/locale/fr/LC_MESSAGES/advanced.po
@@ -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.
+#
+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: Automatically generated\n"
+"Language-Team: none\n"
+"Language: fr\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/source/locale/fr/LC_MESSAGES/develop.po b/docs/source/locale/fr/LC_MESSAGES/develop.po
new file mode 100644
index 00000000..48ce2b11
--- /dev/null
+++ b/docs/source/locale/fr/LC_MESSAGES/develop.po
@@ -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.
+#
+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: Automatically generated\n"
+"Language-Team: none\n"
+"Language: fr\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/source/locale/fr/LC_MESSAGES/features.po b/docs/source/locale/fr/LC_MESSAGES/features.po
new file mode 100644
index 00000000..ae1dae49
--- /dev/null
+++ b/docs/source/locale/fr/LC_MESSAGES/features.po
@@ -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.
+#
+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: Automatically generated\n"
+"Language-Team: none\n"
+"Language: fr\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/source/locale/fr/LC_MESSAGES/help.po b/docs/source/locale/fr/LC_MESSAGES/help.po
new file mode 100644
index 00000000..35a6d1d3
--- /dev/null
+++ b/docs/source/locale/fr/LC_MESSAGES/help.po
@@ -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.
+#
+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: Automatically generated\n"
+"Language-Team: none\n"
+"Language: fr\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/source/locale/fr/LC_MESSAGES/index.po b/docs/source/locale/fr/LC_MESSAGES/index.po
new file mode 100644
index 00000000..7e229643
--- /dev/null
+++ b/docs/source/locale/fr/LC_MESSAGES/index.po
@@ -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.
+#
+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: Automatically generated\n"
+"Language-Team: none\n"
+"Language: fr\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/source/locale/fr/LC_MESSAGES/install.po b/docs/source/locale/fr/LC_MESSAGES/install.po
new file mode 100644
index 00000000..0d7d00a6
--- /dev/null
+++ b/docs/source/locale/fr/LC_MESSAGES/install.po
@@ -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.
+#
+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: Automatically generated\n"
+"Language-Team: none\n"
+"Language: fr\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/source/locale/fr/LC_MESSAGES/security.po b/docs/source/locale/fr/LC_MESSAGES/security.po
new file mode 100644
index 00000000..3fc4ecd6
--- /dev/null
+++ b/docs/source/locale/fr/LC_MESSAGES/security.po
@@ -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.
+#
+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: Automatically generated\n"
+"Language-Team: none\n"
+"Language: fr\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/source/locale/fr/LC_MESSAGES/sphinx.po b/docs/source/locale/fr/LC_MESSAGES/sphinx.po
new file mode 100644
index 00000000..32df696b
--- /dev/null
+++ b/docs/source/locale/fr/LC_MESSAGES/sphinx.po
@@ -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.
+#
+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: Automatically generated\n"
+"Language-Team: none\n"
+"Language: fr\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/source/locale/fr/LC_MESSAGES/tor.po b/docs/source/locale/fr/LC_MESSAGES/tor.po
new file mode 100644
index 00000000..b5572a6e
--- /dev/null
+++ b/docs/source/locale/fr/LC_MESSAGES/tor.po
@@ -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.
+#
+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: Automatically generated\n"
+"Language-Team: none\n"
+"Language: fr\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/source/locale/nb_NO/LC_MESSAGES/advanced.po b/docs/source/locale/nb_NO/LC_MESSAGES/advanced.po
new file mode 100644
index 00000000..a99b69ac
--- /dev/null
+++ b/docs/source/locale/nb_NO/LC_MESSAGES/advanced.po
@@ -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.
+#
+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: Automatically generated\n"
+"Language-Team: none\n"
+"Language: nb_NO\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/source/locale/nb_NO/LC_MESSAGES/develop.po b/docs/source/locale/nb_NO/LC_MESSAGES/develop.po
new file mode 100644
index 00000000..2eaa002f
--- /dev/null
+++ b/docs/source/locale/nb_NO/LC_MESSAGES/develop.po
@@ -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.
+#
+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: Automatically generated\n"
+"Language-Team: none\n"
+"Language: nb_NO\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/source/locale/nb_NO/LC_MESSAGES/features.po b/docs/source/locale/nb_NO/LC_MESSAGES/features.po
new file mode 100644
index 00000000..e97263f1
--- /dev/null
+++ b/docs/source/locale/nb_NO/LC_MESSAGES/features.po
@@ -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.
+#
+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: Automatically generated\n"
+"Language-Team: none\n"
+"Language: nb_NO\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/source/locale/nb_NO/LC_MESSAGES/help.po b/docs/source/locale/nb_NO/LC_MESSAGES/help.po
new file mode 100644
index 00000000..6499d5ec
--- /dev/null
+++ b/docs/source/locale/nb_NO/LC_MESSAGES/help.po
@@ -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.
+#
+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: Automatically generated\n"
+"Language-Team: none\n"
+"Language: nb_NO\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/source/locale/nb_NO/LC_MESSAGES/index.po b/docs/source/locale/nb_NO/LC_MESSAGES/index.po
new file mode 100644
index 00000000..9dfa67f6
--- /dev/null
+++ b/docs/source/locale/nb_NO/LC_MESSAGES/index.po
@@ -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.
+#
+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: Automatically generated\n"
+"Language-Team: none\n"
+"Language: nb_NO\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/source/locale/nb_NO/LC_MESSAGES/install.po b/docs/source/locale/nb_NO/LC_MESSAGES/install.po
new file mode 100644
index 00000000..ddc85512
--- /dev/null
+++ b/docs/source/locale/nb_NO/LC_MESSAGES/install.po
@@ -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.
+#
+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: Automatically generated\n"
+"Language-Team: none\n"
+"Language: nb_NO\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/source/locale/nb_NO/LC_MESSAGES/security.po b/docs/source/locale/nb_NO/LC_MESSAGES/security.po
new file mode 100644
index 00000000..f8e68082
--- /dev/null
+++ b/docs/source/locale/nb_NO/LC_MESSAGES/security.po
@@ -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.
+#
+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: Automatically generated\n"
+"Language-Team: none\n"
+"Language: nb_NO\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/source/locale/nb_NO/LC_MESSAGES/sphinx.po b/docs/source/locale/nb_NO/LC_MESSAGES/sphinx.po
new file mode 100644
index 00000000..cf3d2f1c
--- /dev/null
+++ b/docs/source/locale/nb_NO/LC_MESSAGES/sphinx.po
@@ -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.
+#
+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: Automatically generated\n"
+"Language-Team: none\n"
+"Language: nb_NO\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/source/locale/nb_NO/LC_MESSAGES/tor.po b/docs/source/locale/nb_NO/LC_MESSAGES/tor.po
new file mode 100644
index 00000000..da7f76d9
--- /dev/null
+++ b/docs/source/locale/nb_NO/LC_MESSAGES/tor.po
@@ -0,0 +1,156 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: 2020-09-14 21:36+0000\n"
+"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
+"Language-Team: none\n"
+"Language: nb_NO\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.3-dev\n"
+
+#: ../../source/tor.rst:2
+msgid "Connecting to Tor"
+msgstr "Tilkobling til Tor"
+
+#: ../../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 ""
+"Det er flere måter å få OnionShare til å koble til Tor-nettverket. Du kan "
+"endre dem i «Innstillinger», som du kommer til ved å trykke på "
+"tannhjulsikonet nederst til høyre i vinduet."
+
+#: ../../source/tor.rst:9
+msgid "Use Tor that is bundled with OnionShare"
+msgstr "Bruk Tor som det kommer innebygd i OnionShare"
+
+#: ../../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 ""
+"Dette er den forvalgte måten OnionShare kobler til Tor, og det er også den "
+"enkleste og mest pålitelige måten. Derfor er det også anbefalt for de fleste "
+"brukerne."
+
+#: ../../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 ""
+"Når du åpner OnionShare, vil det starte en Tor-prosess i bakgrunnen som er "
+"satt opp spesifikt for bruk med OnionShare. Denne Tor-prosessen har ikke "
+"innvirkning på andre Tor-prosesser på datamaskinen din, så du kan kjøre en "
+"Tor-nettleser eller bruke systemets Tor i bakgrunnen."
+
+#: ../../source/tor.rst:16
+msgid "Attempt automatic configuration with Tor Browser"
+msgstr "Forsøk automatisk oppsett med Tor-nettleseren"
+
+#: ../../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 ""
+"Du kan sette opp OnionShare til å koble til Tor som den kommer levert med "
+"Tor-nettleseren. Først `last ned Tor-nettleseren <https://www.torproject.org/"
+"download/languages/>`_ hvis du ikke har den allerede. Med denne "
+"innstillingen må du ha Tor-nettleseren åpen i bakgrunnen mens du bruker "
+"OnionShare."
+
+#: ../../source/tor.rst:21
+msgid "Using a system Tor in Windows"
+msgstr "Bruk av systemets Tor i Windows"
+
+#: ../../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 ""
+"Dette er ganske avansert. Du må vite hvordan du redigerer filer i klartekst "
+"og gjøre ting som administrator."
+
+#: ../../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 "Bruk av systemets Tor på macOS"
+
+#: ../../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 "Bruk av systemets Tor på Linux"
+
+#: ../../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 "Bruk av Tor-broer"
+
+#: ../../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 "For å sette opp broer, åpne OnionShare-innstillingene."
+
+#: ../../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/uk/LC_MESSAGES/index.po b/docs/source/locale/uk/LC_MESSAGES/index.po
new file mode 100644
index 00000000..1e3d6b41
--- /dev/null
+++ b/docs/source/locale/uk/LC_MESSAGES/index.po
@@ -0,0 +1,31 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
+"POT-Creation-Date: 2020-09-03 11:46-0700\n"
+"PO-Revision-Date: 2020-09-14 23:50+0000\n"
+"Last-Translator: ihor_ck <igor_ck@outlook.com>\n"
+"Language-Team: none\n"
+"Language: uk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.3-dev\n"
+
+#: ../../source/index.rst:2
+msgid "OnionShare's documentation"
+msgstr "Документація OnionShare"
+
+#: ../../source/index.rst:6
+msgid "OnionShare is an open source tool that lets you securely and anonymously share files, host websites, and chat with friends using the Tor network."
+msgstr ""
+"OnionShare — це засіб з відкритим кодом, який дозволяє безпечно та анонімно "
+"обмінюватися файлами, розміщувати вебсайти та спілкуватися з друзями за "
+"допомогою мережі Tor."
diff --git a/docs/source/locale/uk/LC_MESSAGES/sphinx.po b/docs/source/locale/uk/LC_MESSAGES/sphinx.po
new file mode 100644
index 00000000..f975c617
--- /dev/null
+++ b/docs/source/locale/uk/LC_MESSAGES/sphinx.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) Micah Lee, et al.
+# This file is distributed under the same license as the OnionShare package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OnionShare 2.3\n"
+"Report-Msgid-Bugs-To: onionshare-dev@lists.riseup.net\n"
+"POT-Creation-Date: 2020-09-03 11:37-0700\n"
+"PO-Revision-Date: 2020-09-14 23:50+0000\n"
+"Last-Translator: ihor_ck <igor_ck@outlook.com>\n"
+"Language-Team: none\n"
+"Language: uk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.3-dev\n"
+
+#: ../../source/_templates/versions.html:10
+msgid "Versions"
+msgstr "Версії"
+
+#: ../../source/_templates/versions.html:18
+msgid "Languages"
+msgstr "Мови"
diff --git a/install/check_lacked_trans.py b/install/check_lacked_trans.py
index 62986707..965b103b 100755
--- a/install/check_lacked_trans.py
+++ b/install/check_lacked_trans.py
@@ -27,7 +27,12 @@ es disused gui_starting_server
"""
-import fileinput, argparse, re, os, codecs, json, sys
+import argparse
+import re
+import os
+import codecs
+import json
+import sys
def arg_parser():
@@ -68,29 +73,53 @@ def main():
dir = args.onionshare_dir
src = (
- files_in(dir, "onionshare")
- + files_in(dir, "onionshare_gui")
- + files_in(dir, "onionshare_gui/mode")
- + files_in(dir, "onionshare_gui/mode/share_mode")
- + files_in(dir, "onionshare_gui/mode/receive_mode")
- + files_in(dir, "onionshare_gui/mode/website_mode")
+ files_in(dir, "onionshare_gui")
+ + files_in(dir, "onionshare_gui/tab")
+ + files_in(dir, "onionshare_gui/tab/mode")
+ + files_in(dir, "onionshare_gui/tab/mode/chat_mode")
+ + files_in(dir, "onionshare_gui/tab/mode/receive_mode")
+ + files_in(dir, "onionshare_gui/tab/mode/share_mode")
+ + files_in(dir, "onionshare_gui/tab/mode/website_mode")
+ files_in(dir, "install/scripts")
- + files_in(dir, "tests")
)
- pysrc = [p for p in src if p.endswith(".py")]
+ filenames = [p for p in src if p.endswith(".py")]
lang_code = args.lang_code
translate_keys = set()
- # load translate key from python source
- for line in fileinput.input(pysrc, openhook=fileinput.hook_encoded("utf-8")):
- # search `strings._('translate_key')`
- # `strings._('translate_key', True)`
- m = re.findall(r"strings\._\((.*?)\)", line)
- if m:
- for match in m:
- key = match.split(",")[0].strip(""""' """)
- translate_keys.add(key)
+ for filename in filenames:
+ # load translate key from python source
+ with open(filename) as f:
+ src = f.read()
+
+ # find all the starting strings
+ start_substr = "strings._\("
+ starting_indices = [m.start() for m in re.finditer(start_substr, src)]
+
+ for starting_i in starting_indices:
+ # are we dealing with single quotes or double quotes?
+ quote = None
+ inc = 0
+ while True:
+ quote_i = starting_i + len("strings._(") + inc
+ if src[quote_i] == '"':
+ quote = '"'
+ break
+ elif src[quote_i] == "'":
+ quote = "'"
+ break
+ else:
+ inc += 1
+
+ # find the starting quote
+ starting_i = src.find(quote, starting_i)
+ if starting_i:
+ starting_i += 1
+ # find the ending quote
+ ending_i = src.find(quote, starting_i)
+ if ending_i:
+ key = src[starting_i:ending_i]
+ translate_keys.add(key)
if args.show_all_keys:
for k in sorted(translate_keys):
diff --git a/onionshare_gui/gui_common.py b/onionshare_gui/gui_common.py
index 509e67fd..2e350cca 100644
--- a/onionshare_gui/gui_common.py
+++ b/onionshare_gui/gui_common.py
@@ -78,8 +78,9 @@ class GuiCommon:
}""",
"mode_header_label": """
QLabel {
- color: #333333;
- font-size: 30px;
+ color: #4E064F;
+ font-size: 48px;
+ margin-bottom: 16px;
}""",
"settings_button": """
QPushButton {
@@ -217,6 +218,7 @@ class GuiCommon:
"new_tab_button_image": """
QLabel {
padding: 30px;
+ text-align: center;
}
""",
"new_tab_button_text": """
@@ -228,6 +230,13 @@ class GuiCommon:
color: #4e0d4e;
}
""",
+ "new_tab_title_text": """
+ QLabel {
+ text-align: center;
+ color: #333333;
+ font-size: 28px;
+ }
+ """,
# Share mode and child widget styles
"share_delete_all_files_button": """
QPushButton {
@@ -255,12 +264,14 @@ class GuiCommon:
""",
"share_file_selection_drop_here_header_label": """
QLabel {
- color: #333333;
- font-size: 30px;
+ color: #4E064F;
+ font-size: 48px;
+ margin-bottom: 72px;
}""",
"share_file_selection_drop_here_label": """
QLabel {
color: #666666;
+ margin-bottom: 48px;
}""",
"share_file_selection_drop_count_label": """
QLabel {
diff --git a/onionshare_gui/tab/mode/__init__.py b/onionshare_gui/tab/mode/__init__.py
index 984e6573..65e46444 100644
--- a/onionshare_gui/tab/mode/__init__.py
+++ b/onionshare_gui/tab/mode/__init__.py
@@ -98,7 +98,6 @@ class Mode(QtWidgets.QWidget):
# Note: It's up to the downstream Mode to add this to its layout
self.primary_action_layout = QtWidgets.QVBoxLayout()
self.primary_action_layout.addWidget(self.mode_settings_widget)
- self.primary_action_layout.addWidget(self.server_status)
self.primary_action = QtWidgets.QWidget()
self.primary_action.setLayout(self.primary_action_layout)
diff --git a/onionshare_gui/tab/mode/chat_mode/__init__.py b/onionshare_gui/tab/mode/chat_mode/__init__.py
index 8b1fb142..4de9f387 100644
--- a/onionshare_gui/tab/mode/chat_mode/__init__.py
+++ b/onionshare_gui/tab/mode/chat_mode/__init__.py
@@ -86,6 +86,7 @@ class ChatMode(Mode):
self.main_layout.addStretch()
self.main_layout.addWidget(header_label)
self.main_layout.addWidget(self.primary_action)
+ self.main_layout.addWidget(self.server_status)
self.main_layout.addStretch()
self.main_layout.addWidget(MinimumWidthWidget(700))
diff --git a/onionshare_gui/tab/mode/receive_mode/__init__.py b/onionshare_gui/tab/mode/receive_mode/__init__.py
index 6482b924..e6ca6f70 100644
--- a/onionshare_gui/tab/mode/receive_mode/__init__.py
+++ b/onionshare_gui/tab/mode/receive_mode/__init__.py
@@ -48,11 +48,9 @@ class ReceiveMode(Mode):
QtGui.QImage(self.common.get_resource_path("images/mode_receive.png"))
)
)
- self.image_label.setFixedSize(300, 300)
+ self.image_label.setFixedSize(250, 250)
image_layout = QtWidgets.QVBoxLayout()
- image_layout.addStretch()
image_layout.addWidget(self.image_label)
- image_layout.addStretch()
self.image = QtWidgets.QWidget()
self.image.setLayout(image_layout)
@@ -126,18 +124,26 @@ class ReceiveMode(Mode):
# Main layout
self.main_layout = QtWidgets.QVBoxLayout()
- self.main_layout.addLayout(top_bar_layout)
- self.main_layout.addStretch()
self.main_layout.addWidget(header_label)
self.main_layout.addWidget(receive_warning)
self.main_layout.addWidget(self.primary_action)
- self.main_layout.addStretch()
- self.main_layout.addWidget(MinimumWidthWidget(700))
+ self.main_layout.addWidget(MinimumWidthWidget(525))
+
+ # Row layout
+ content_row = QtWidgets.QHBoxLayout()
+ content_row.addLayout(self.main_layout)
+ content_row.addWidget(self.image)
+ row_layout = QtWidgets.QVBoxLayout()
+ row_layout.addLayout(top_bar_layout)
+ row_layout.addStretch()
+ row_layout.addLayout(content_row)
+ row_layout.addWidget(self.server_status)
+ row_layout.addStretch()
+
# Column layout
self.column_layout = QtWidgets.QHBoxLayout()
- self.column_layout.addWidget(self.image)
- self.column_layout.addLayout(self.main_layout)
+ self.column_layout.addLayout(row_layout)
self.column_layout.addWidget(self.history, stretch=1)
# Wrapper layout
diff --git a/onionshare_gui/tab/mode/share_mode/__init__.py b/onionshare_gui/tab/mode/share_mode/__init__.py
index 3fd545de..ab4e320c 100644
--- a/onionshare_gui/tab/mode/share_mode/__init__.py
+++ b/onionshare_gui/tab/mode/share_mode/__init__.py
@@ -156,6 +156,7 @@ class ShareMode(Mode):
self.main_layout.addLayout(top_bar_layout)
self.main_layout.addLayout(self.file_selection)
self.main_layout.addWidget(self.primary_action)
+ self.main_layout.addWidget(self.server_status)
self.main_layout.addWidget(MinimumWidthWidget(700))
# Column layout
diff --git a/onionshare_gui/tab/mode/website_mode/__init__.py b/onionshare_gui/tab/mode/website_mode/__init__.py
index 29019cb5..96fcdea3 100644
--- a/onionshare_gui/tab/mode/website_mode/__init__.py
+++ b/onionshare_gui/tab/mode/website_mode/__init__.py
@@ -156,6 +156,7 @@ class WebsiteMode(Mode):
self.main_layout.addLayout(top_bar_layout)
self.main_layout.addLayout(self.file_selection)
self.main_layout.addWidget(self.primary_action)
+ self.main_layout.addWidget(self.server_status)
self.main_layout.addWidget(MinimumWidthWidget(700))
# Column layout
diff --git a/onionshare_gui/tab/tab.py b/onionshare_gui/tab/tab.py
index 69916f06..9303f18b 100644
--- a/onionshare_gui/tab/tab.py
+++ b/onionshare_gui/tab/tab.py
@@ -37,7 +37,7 @@ from ..widgets import Alert
class NewTabButton(QtWidgets.QPushButton):
- def __init__(self, common, image_filename, text):
+ def __init__(self, common, image_filename, title, text):
super(NewTabButton, self).__init__()
self.common = common
@@ -50,17 +50,26 @@ class NewTabButton(QtWidgets.QPushButton):
QtGui.QImage(self.common.get_resource_path(image_filename))
)
)
- self.image_label.setFixedSize(280, 280)
+ self.image_label.setAlignment(QtCore.Qt.AlignCenter)
self.image_label.setStyleSheet(self.common.gui.css["new_tab_button_image"])
- self.image_label.setGeometry(0, 0, self.width(), self.height())
+ self.image_label.setGeometry(0, 0, self.width(), 200)
self.image_label.show()
+ # Title
+ self.title_label = QtWidgets.QLabel(title, parent=self)
+ self.title_label.setAlignment(QtCore.Qt.AlignCenter)
+ self.title_label.setStyleSheet(self.common.gui.css["new_tab_title_text"])
+ self.title_label.setGeometry(
+ (self.width() - 250) / 2, self.height() - 100, 250, 30
+ )
+ self.title_label.show()
+
# Text
self.text_label = QtWidgets.QLabel(text, parent=self)
self.text_label.setAlignment(QtCore.Qt.AlignCenter)
self.text_label.setStyleSheet(self.common.gui.css["new_tab_button_text"])
self.text_label.setGeometry(
- (self.width() - 200) / 2, self.height() - 40, 200, 30
+ (self.width() - 200) / 2, self.height() - 50, 200, 30
)
self.text_label.show()
@@ -97,11 +106,26 @@ class Tab(QtWidgets.QWidget):
# Start the OnionShare app
self.app = OnionShare(common, self.common.gui.onion, self.common.gui.local_only)
+ # Onionshare logo
+ self.image_label = QtWidgets.QLabel()
+ self.image_label.setPixmap(
+ QtGui.QPixmap.fromImage(
+ QtGui.QImage(self.common.get_resource_path("images/logo_text.png"))
+ )
+ )
+ self.image_label.setFixedSize(160, 40)
+ image_layout = QtWidgets.QVBoxLayout()
+ image_layout.addWidget(self.image_label)
+ image_layout.addStretch()
+ self.image = QtWidgets.QWidget()
+ self.image.setLayout(image_layout)
+
# New tab buttons
self.share_button = NewTabButton(
self.common,
"images/mode_new_tab_share.png",
strings._("gui_new_tab_share_button"),
+ strings._("gui_main_page_share_button"),
)
self.share_button.clicked.connect(self.share_mode_clicked)
@@ -109,6 +133,7 @@ class Tab(QtWidgets.QWidget):
self.common,
"images/mode_new_tab_receive.png",
strings._("gui_new_tab_receive_button"),
+ strings._("gui_main_page_receive_button"),
)
self.receive_button.clicked.connect(self.receive_mode_clicked)
@@ -116,6 +141,7 @@ class Tab(QtWidgets.QWidget):
self.common,
"images/mode_new_tab_website.png",
strings._("gui_new_tab_website_button"),
+ strings._("gui_main_page_website_button"),
)
self.website_button.clicked.connect(self.website_mode_clicked)
@@ -123,6 +149,7 @@ class Tab(QtWidgets.QWidget):
self.common,
"images/mode_new_tab_chat.png",
strings._("gui_new_tab_chat_button"),
+ strings._("gui_main_page_chat_button"),
)
self.chat_button.clicked.connect(self.chat_mode_clicked)
@@ -144,8 +171,14 @@ class Tab(QtWidgets.QWidget):
new_tab_layout.addLayout(new_tab_bottom_layout)
new_tab_layout.addStretch()
+ new_tab_img_layout = QtWidgets.QHBoxLayout()
+ new_tab_img_layout.addWidget(self.image)
+ new_tab_img_layout.addStretch(1)
+ new_tab_img_layout.addLayout(new_tab_layout)
+ new_tab_img_layout.addStretch(2)
+
self.new_tab = QtWidgets.QWidget()
- self.new_tab.setLayout(new_tab_layout)
+ self.new_tab.setLayout(new_tab_img_layout)
self.new_tab.show()
# Layout
diff --git a/share/images/logo_text.png b/share/images/logo_text.png
new file mode 100644
index 00000000..3b584acd
--- /dev/null
+++ b/share/images/logo_text.png
Binary files differ
diff --git a/share/images/mode_new_tab_chat.png b/share/images/mode_new_tab_chat.png
index 4d54f127..50759d64 100644
--- a/share/images/mode_new_tab_chat.png
+++ b/share/images/mode_new_tab_chat.png
Binary files differ
diff --git a/share/images/mode_new_tab_receive.png b/share/images/mode_new_tab_receive.png
index fe46f5ff..9db809be 100644
--- a/share/images/mode_new_tab_receive.png
+++ b/share/images/mode_new_tab_receive.png
Binary files differ
diff --git a/share/images/mode_new_tab_share.png b/share/images/mode_new_tab_share.png
index bb33318c..92973175 100644
--- a/share/images/mode_new_tab_share.png
+++ b/share/images/mode_new_tab_share.png
Binary files differ
diff --git a/share/images/mode_new_tab_website.png b/share/images/mode_new_tab_website.png
index 08cc24a5..86b45f66 100644
--- a/share/images/mode_new_tab_website.png
+++ b/share/images/mode_new_tab_website.png
Binary files differ
diff --git a/share/images/mode_share.png b/share/images/mode_share.png
index f2565bd5..ec287db4 100644
--- a/share/images/mode_share.png
+++ b/share/images/mode_share.png
Binary files differ
diff --git a/share/images/mode_website.png b/share/images/mode_website.png
index b146f451..37a556d9 100644
--- a/share/images/mode_website.png
+++ b/share/images/mode_website.png
Binary files differ
diff --git a/share/locale/da.json b/share/locale/da.json
index 4bfa0193..d26bb165 100644
--- a/share/locale/da.json
+++ b/share/locale/da.json
@@ -278,7 +278,7 @@
"gui_qr_code_description": "Skan QR-koden med en QR-læser såsom kameraet i din telefon for at gøre det lettere at dele OnionShare-adressen med andre.",
"gui_qr_code_dialog_title": "QR-kode til OnionShare",
"gui_show_url_qr_code": "Vis QR-kode",
- "gui_receive_flatpak_data_dir": "Da du installerede OnionShare med flatpak, så skal du gemme filer til en mappe i ~/OnionShare.",
+ "gui_receive_flatpak_data_dir": "Da du installerede OnionShare med Flatpak, så skal du gemme filer til en mappe i ~/OnionShare.",
"gui_chat_stop_server": "Stop chatserver",
"gui_chat_start_server": "Start chatserver",
"gui_chat_stop_server_autostop_timer": "Stop chatserver ({})",
diff --git a/share/locale/de.json b/share/locale/de.json
index 50e9b840..7e40a180 100644
--- a/share/locale/de.json
+++ b/share/locale/de.json
@@ -10,7 +10,7 @@
"help_stay_open": "Den Server weiterlaufen lassen, nachdem die Dateien verschickt wurden",
"help_verbose": "Schreibe Fehler von OnionShare nach stdout und Webfehler auf die Festplatte",
"help_filename": "Liste der zu teilenden Dateien oder Ordner",
- "gui_drag_and_drop": "Dateien und Ordner hierher ziehen,\num sie zu teilen",
+ "gui_drag_and_drop": "Dateien und Ordner hierher ziehen, um sie zu teilen",
"gui_add": "Hinzufügen",
"gui_delete": "Löschen",
"gui_choose_items": "Auswählen",
diff --git a/share/locale/en.json b/share/locale/en.json
index 7dbf9914..fe880b61 100644
--- a/share/locale/en.json
+++ b/share/locale/en.json
@@ -1,7 +1,5 @@
{
- "preparing_files": "Compressing files.",
"not_a_readable_file": "{0:s} is not a readable file.",
- "no_available_port": "Could not find an available port to start the onion service",
"other_page_loaded": "Address loaded",
"incorrect_password": "Incorrect password",
"close_on_autostop_timer": "Stopped because auto-stop timer ran out",
@@ -17,7 +15,6 @@
"gui_share_start_server": "Start sharing",
"gui_share_stop_server": "Stop sharing",
"gui_share_stop_server_autostop_timer": "Stop Sharing ({})",
- "gui_chat_stop_server_autostop_timer": "Stop Chat Server ({})",
"gui_chat_start_server": "Start chat server",
"gui_chat_stop_server": "Stop chat server",
"gui_stop_server_autostop_timer_tooltip": "Auto-stop timer ends at {}",
@@ -40,23 +37,12 @@
"gui_please_wait": "Starting… Click to cancel.",
"error_rate_limit": "Someone has made too many wrong attempts to guess your password, so OnionShare has stopped the server. Start sharing again and send the recipient a new address to share.",
"zip_progress_bar_format": "Compressing: %p%",
- "error_stealth_not_supported": "To use client authorization, you need at least both Tor 0.2.9.1-alpha (or Tor Browser 6.5) and python3-stem 1.5.0.",
- "error_ephemeral_not_supported": "OnionShare requires at least both Tor 0.2.7.1 and python3-stem 1.4.0.",
"gui_settings_window_title": "Settings",
- "gui_settings_whats_this": "<a href='{0:s}'>What's this?</a>",
- "gui_settings_stealth_option": "Use client authorization",
- "gui_settings_stealth_hidservauth_string": "Having saved your private key for reuse, means you can now click to copy your HidServAuth.",
"gui_settings_autoupdate_label": "Check for new version",
"gui_settings_autoupdate_option": "Notify me when a new version is available",
"gui_settings_autoupdate_timestamp": "Last checked: {}",
"gui_settings_autoupdate_timestamp_never": "Never",
"gui_settings_autoupdate_check_button": "Check for New Version",
- "gui_settings_general_label": "General settings",
- "gui_settings_onion_label": "Onion settings",
- "gui_settings_sharing_label": "Sharing settings",
- "gui_settings_close_after_first_download_option": "Stop sharing after files have been sent",
- "gui_settings_csp_header_disabled_option": "Disable Content Security Policy header",
- "gui_settings_individual_downloads_label": "Uncheck to allow downloading individual files",
"gui_settings_connection_type_label": "How should OnionShare connect to Tor?",
"gui_settings_connection_type_bundled_option": "Use the Tor version built into OnionShare",
"gui_settings_connection_type_automatic_option": "Attempt auto-configuration with Tor Browser",
@@ -83,23 +69,7 @@
"gui_settings_button_save": "Save",
"gui_settings_button_cancel": "Cancel",
"gui_settings_button_help": "Help",
- "gui_settings_autostop_timer_checkbox": "Use auto-stop timer",
- "gui_settings_autostop_timer": "Stop the share at:",
- "gui_settings_autostart_timer_checkbox": "Use auto-start timer",
- "gui_settings_autostart_timer": "Start the share at:",
- "settings_error_unknown": "Can't connect to Tor controller because your settings don't make sense.",
- "settings_error_automatic": "Could not connect to the Tor controller. Is Tor Browser (available from torproject.org) running in the background?",
- "settings_error_socket_port": "Can't connect to the Tor controller at {}:{}.",
- "settings_error_socket_file": "Can't connect to the Tor controller using socket file {}.",
- "settings_error_auth": "Connected to {}:{}, but can't authenticate. Maybe this isn't a Tor controller?",
- "settings_error_missing_password": "Connected to Tor controller, but it requires a password to authenticate.",
- "settings_error_unreadable_cookie_file": "Connected to the Tor controller, but password may be wrong, or your user is not permitted to read the cookie file.",
- "settings_error_bundled_tor_not_supported": "Using the Tor version that comes with OnionShare does not work in developer mode on Windows or macOS.",
- "settings_error_bundled_tor_timeout": "Taking too long to connect to Tor. Maybe you aren't connected to the Internet, or have an inaccurate system clock?",
- "settings_error_bundled_tor_broken": "OnionShare could not connect to Tor:\n{}",
"settings_test_success": "Connected to the Tor controller.\n\nTor version: {}\nSupports ephemeral onion services: {}.\nSupports client authentication: {}.\nSupports next-gen .onion addresses: {}.",
- "error_tor_protocol_error": "There was an error with Tor: {}",
- "error_tor_protocol_error_unknown": "There was an unknown error with Tor",
"connecting_to_tor": "Connecting to the Tor network",
"update_available": "New OnionShare out. <a href='{}'>Click here</a> to get it.<br><br>You are using {} and the latest is {}.",
"update_error_invalid_latest_version": "Could not check for new version: The OnionShare website is saying the latest version is the unrecognizable '{}'…",
@@ -116,9 +86,6 @@
"gui_server_autostart_timer_expired": "The scheduled time has already passed. Please adjust it to start sharing.",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "The auto-stop time can't be the same or earlier than the auto-start time. Please adjust it to start sharing.",
"share_via_onionshare": "Share via OnionShare",
- "gui_connect_to_tor_for_onion_settings": "Connect to Tor to see onion service settings",
- "gui_use_legacy_v2_onions_checkbox": "Use legacy addresses",
- "gui_save_private_key_checkbox": "Use a persistent address",
"gui_share_url_description": "<b>Anyone</b> with this OnionShare address can <b>download</b> your files using the <b>Tor Browser</b>: <img src='{}' />",
"gui_website_url_description": "<b>Anyone</b> with this OnionShare address can <b>visit</b> your website using the <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Anyone</b> with this OnionShare address can <b>upload</b> files to your computer using the <b>Tor Browser</b>: <img src='{}' />",
@@ -141,14 +108,6 @@
"history_requests_tooltip": "{} web requests",
"error_cannot_create_data_dir": "Could not create OnionShare data folder: {}",
"gui_receive_mode_warning": "Receive mode lets people upload files to your computer.<br><br><b>Some files can potentially take control of your computer if you open them. Only open things from people you trust, or if you know what you are doing.</b>",
- "gui_mode_share_button": "Share Files",
- "gui_mode_receive_button": "Receive Files",
- "gui_mode_website_button": "Publish Website",
- "gui_settings_receiving_label": "Receiving settings",
- "gui_settings_website_label": "Website settings",
- "gui_settings_data_dir_label": "Save files to",
- "gui_settings_data_dir_browse_button": "Browse",
- "gui_settings_public_mode_checkbox": "Public mode",
"gui_open_folder_error": "Failed to open folder with xdg-open. The file is here: {}",
"gui_settings_language_label": "Preferred language",
"gui_settings_language_changed_notice": "Restart OnionShare for the new language to be applied.",
@@ -166,10 +125,6 @@
"gui_all_modes_history": "History",
"gui_all_modes_clear_history": "Clear All",
"gui_all_modes_transfer_started": "Started {}",
- "gui_all_modes_transfer_finished_range": "Transferred {} - {}",
- "gui_all_modes_transfer_finished": "Transferred {}",
- "gui_all_modes_transfer_canceled_range": "Canceled {} - {}",
- "gui_all_modes_transfer_canceled": "Canceled {}",
"gui_all_modes_progress_complete": "%p%, {0:s} elapsed.",
"gui_all_modes_progress_starting": "{0:s}, %p% (calculating)",
"gui_all_modes_progress_eta": "{0:s}, ETA: {1:s}, %p%",
@@ -188,6 +143,10 @@
"gui_new_tab_receive_button": "Receive Files",
"gui_new_tab_website_button": "Host a Website",
"gui_new_tab_chat_button": "Chat Anonymously",
+ "gui_main_page_share_button": "Start Sharing",
+ "gui_main_page_receive_button": "Start Receiving",
+ "gui_main_page_website_button": "Start Hosting",
+ "gui_main_page_chat_button": "Start Chatting",
"gui_tab_name_share": "Share",
"gui_tab_name_receive": "Receive",
"gui_tab_name_website": "Website",
@@ -214,5 +173,9 @@
"mode_settings_share_autostop_sharing_checkbox": "Stop sharing after files have been sent (uncheck to allow downloading individual files)",
"mode_settings_receive_data_dir_label": "Save files to",
"mode_settings_receive_data_dir_browse_button": "Browse",
- "mode_settings_website_disable_csp_checkbox": "Don't send Content Security Policy header (allows your website to use third-party resources)"
-}
+ "mode_settings_website_disable_csp_checkbox": "Don't send Content Security Policy header (allows your website to use third-party resources)",
+ "gui_all_modes_transfer_finished_range": "Transferred {} - {}",
+ "gui_all_modes_transfer_finished": "Transferred {}",
+ "gui_all_modes_transfer_canceled_range": "Canceled {} - {}",
+ "gui_all_modes_transfer_canceled": "Canceled {}"
+} \ No newline at end of file
diff --git a/share/locale/fr.json b/share/locale/fr.json
index 4bee5739..6f356121 100644
--- a/share/locale/fr.json
+++ b/share/locale/fr.json
@@ -286,5 +286,9 @@
"gui_chat_start_server": "Démarrer le serveur de dialogue en ligne",
"gui_chat_stop_server_autostop_timer": "Arrêter le serveur de dialogue en ligne ({})",
"gui_file_selection_remove_all": "Tout supprimer",
- "gui_remove": "Supprimer"
+ "gui_remove": "Supprimer",
+ "gui_main_page_chat_button": "Lancer le dialogue en ligne",
+ "gui_main_page_website_button": "Lancer l’hébergement",
+ "gui_main_page_receive_button": "Lancer la réception",
+ "gui_main_page_share_button": "Lancer le partage"
}
diff --git a/share/locale/hr.json b/share/locale/hr.json
index eff2efc5..4cb29ce8 100644
--- a/share/locale/hr.json
+++ b/share/locale/hr.json
@@ -180,7 +180,7 @@
"hours_first_letter": "h",
"minutes_first_letter": "m",
"seconds_first_letter": "s",
- "mode_settings_website_disable_csp_checkbox": "Isključi zaglavlja politike sigurnosti sadržaja (omogućuje tvojim web-stranicama koristiti strane resurse)",
+ "mode_settings_website_disable_csp_checkbox": "Ne šalji zaglavlja politike sigurnosti sadržaja (omogućuje tvojim web-stranicama koristiti strane resurse)",
"mode_settings_receive_data_dir_browse_button": "Pregledaj",
"mode_settings_receive_data_dir_label": "Spremi datoteke u",
"mode_settings_share_autostop_sharing_checkbox": "Zaustavi dijeljenje nakon što se datoteke pošalju (deaktiviraj za preuzimanje pojedinačnih datoteka)",
@@ -211,7 +211,7 @@
"gui_new_tab_tooltip": "Otvori novu karticu",
"gui_new_tab": "Nova kartica",
"gui_qr_code_description": "Skeniraj ovaj QR kȏd pomoću QR čitača, kao što je kamera na tvom telefonu, za lakše dijeljenje adrese OnionSharea.",
- "gui_receive_flatpak_data_dir": "Budući da je tvoj OnionShare instaliran pomoću flatpak-a, datoteke moraš spremiti u jednu mapu u ~/OnionShare.",
+ "gui_receive_flatpak_data_dir": "Budući da je tvoj OnionShare instaliran pomoću Flatpak-a, datoteke moraš spremiti u jednu mapu u ~/OnionShare.",
"gui_tab_name_chat": "Chat",
"gui_new_tab_chat_button": "Anonimni chat",
"gui_chat_start_server": "Pokreni poslužitelja za chat",
diff --git a/share/locale/nb.json b/share/locale/nb.json
index 9d0fccda..41e5b838 100644
--- a/share/locale/nb.json
+++ b/share/locale/nb.json
@@ -268,5 +268,28 @@
"gui_chat_start_server": "Start sludringstjener",
"gui_chat_stop_server_autostop_timer": "Stopp sludringstjener ({})",
"gui_file_selection_remove_all": "Fjern alle",
- "gui_remove": "Fjern"
+ "gui_remove": "Fjern",
+ "gui_quit_warning_description": "Deling er aktiv i noen av fanene dine. Hvis du avslutter, vil alle fanene dine lukkes. Er du sikker på at du vil avslutte?",
+ "gui_close_tab_warning_website_description": "Du deler en nettside akkurat nå. Er du sikker på at du vil lukke denne fanen?",
+ "gui_settings_csp_header_disabled_option": "Ikke send hode for innholdssikkerhetspraksis",
+ "mode_settings_website_disable_csp_checkbox": "Ikke send hode for innholdssikkerhetspraksis (tillater nettsiden din å bruke tredjepartsressurser)",
+ "mode_settings_legacy_checkbox": "Bruk en gammeldags adresse (v2-løktjeneste, anbefales ikke)",
+ "mode_settings_persistent_checkbox": "Del denne fanen og åpne den automatisk sammen med OnionShare",
+ "gui_open_folder_error": "Klarte ikke å åpne mappe med xdg-open. Filen er her: {}",
+ "gui_receive_flatpak_data_dir": "Fordi du har installert OnionShare som Flatpak må du lagre filer til en mappe i ~/OnionShare.",
+ "mode_settings_share_autostop_sharing_checkbox": "Stopp deling etter at filer er sendt (fravelg for å tillate nedlasting av individuelle filer)",
+ "mode_settings_client_auth_checkbox": "Bruk klient-identitetsgodkjennelse",
+ "gui_close_tab_warning_persistent_description": "Denne fanen er vedvarende. Hvis du lukker den vil du miste løk-adressen den bruker. Er du sikker på at du vil lukke den?",
+ "gui_tab_name_chat": "Sludring",
+ "gui_tab_name_website": "Nettside",
+ "gui_tab_name_receive": "Motta",
+ "gui_tab_name_share": "Del",
+ "gui_new_tab_chat_button": "Sludre anonymt",
+ "gui_qr_code_description": "Skann denne QR-koden med en QR-kodeleser (f.eks. kameraprogrammet på enheten din) for enklere deling av OnionShare-adressen med noen.",
+ "gui_qr_code_dialog_title": "OnionShare-QR-kode",
+ "gui_show_url_qr_code": "Vis QR-kode",
+ "gui_main_page_chat_button": "Start sludring",
+ "gui_main_page_website_button": "Start vertsjening",
+ "gui_main_page_receive_button": "Start mottak",
+ "gui_main_page_share_button": "Start deling"
}
diff --git a/share/locale/uk.json b/share/locale/uk.json
index f095c0c7..02d0f8e2 100644
--- a/share/locale/uk.json
+++ b/share/locale/uk.json
@@ -12,9 +12,9 @@
"gui_add_folder": "Додати Теку",
"gui_delete": "Видалити",
"gui_choose_items": "Вибрати",
- "gui_share_start_server": "Почати поширення",
- "gui_share_stop_server": "Зупинити поширення",
- "gui_share_stop_server_autostop_timer": "Зупинити поширення ({})",
+ "gui_share_start_server": "Почати ділитися",
+ "gui_share_stop_server": "Зупинити надсилання",
+ "gui_share_stop_server_autostop_timer": "Зупинити надсилання ({})",
"gui_stop_server_autostop_timer_tooltip": "Таймер автоспину спливає о {}",
"gui_start_server_autostart_timer_tooltip": "Таймер автостарту спливає о {}",
"gui_receive_start_server": "Запустити Режим Отримання",
@@ -34,7 +34,7 @@
"gui_receive_quit_warning": "Відбувається отримання файлів. Ви впевнені, що бажаєте вийти з OnionShare?",
"gui_quit_warning_quit": "Вийти",
"gui_quit_warning_dont_quit": "Відміна",
- "error_rate_limit": "Хтось здійснив занадто багато невдалих спроб підключитися до вашого сервера, тому OnionShare зупинив сервер. Розпочніть поширення знову і надішліть одержувачу нову адресу для поширення.",
+ "error_rate_limit": "Хтось здійснив занадто багато невдалих спроб підключитися до вашого сервера, тому OnionShare зупинив сервер. Почніть ділитися знову і надішліть одержувачу нову адресу надсилання.",
"zip_progress_bar_format": "Стиснення: %p%",
"error_stealth_not_supported": "Для авторизації клієнта, вам потрібні принаймні Tor 0.2.9.1-alpha(або Tor Browser 6.5) і python3-stem 1.5.0.",
"error_ephemeral_not_supported": "OnionShare потребує принаймні Tor 0.2.7.1 і python3-stem 1.4.0.",
@@ -50,7 +50,7 @@
"gui_settings_general_label": "Загальні параметри",
"gui_settings_onion_label": "Параметри Onion",
"gui_settings_sharing_label": "Параметри надсилання",
- "gui_settings_close_after_first_download_option": "Припинити надсилання, якщо файли надіслано",
+ "gui_settings_close_after_first_download_option": "Припинити ділитися, якщо файли надіслано",
"gui_settings_connection_type_label": "Як OnionShare повинен з'єднатися з Tor?",
"gui_settings_connection_type_bundled_option": "Використовувати вбудовану в OnionShare версію Tor",
"gui_settings_connection_type_automatic_option": "Намагатися автоматично налаштувати за допомогою Tor Browser",
@@ -78,9 +78,9 @@
"gui_settings_button_cancel": "Скасувати",
"gui_settings_button_help": "Допомога",
"gui_settings_autostop_timer_checkbox": "Використовувати таймер автоспину",
- "gui_settings_autostop_timer": "Зупинити поширення о:",
+ "gui_settings_autostop_timer": "Зупинити надсилання о:",
"gui_settings_autostart_timer_checkbox": "Використовувати таймер автозапуску",
- "gui_settings_autostart_timer": "Почати поширення о:",
+ "gui_settings_autostart_timer": "Почати ділитися о:",
"settings_error_unknown": "Не вдалося з'єднатися з контролером Tor, оскільки налаштування беззмістовні.",
"settings_error_automatic": "Не вдалося під'єднатися до контролера Tor. Чи запущено Tor браузер (доступний з torproject.org) у фоні?",
"settings_error_socket_port": "Не вдалося з'єднатися з контролером Tor за {}: {}.",
@@ -105,7 +105,7 @@
"gui_tor_connection_error_settings": "Спробуйте змінити в параметрах, як OnionShare з'єднується з мережею Tor.",
"gui_tor_connection_canceled": "Не вдалося під'єднатися до Tor. \n\nПереконайтеся, що ви під'єднані до мережі Інтернет, відкрийте OnionShare знову і налаштуйте з'єднання з Tor.",
"gui_tor_connection_lost": "Від'єднано від Tor.",
- "gui_server_started_after_autostop_timer": "Таймер автоспину збіг до початку роботи сервера. Будь ласка, почніть поширення знову.",
+ "gui_server_started_after_autostop_timer": "Таймер автоспину збіг до початку роботи сервера. Будь ласка, почніть ділитися знову.",
"gui_server_autostop_timer_expired": "Час автоспину не може бути однаковим або раніше часу автозапуску. Будь ласка, оновіть його, щоб почати надсилання.",
"gui_server_autostart_timer_expired": "Запланований час збіг. Будь ласка, оновіть його, щоб почати надсилання.",
"gui_autostop_timer_cant_be_earlier_than_autostart_timer": "Таймер автоспину вже збіг. Будь ласка, оновіть його, щоб почати надсилання.",
@@ -115,14 +115,14 @@
"gui_save_private_key_checkbox": "Використовувати постійну адресу",
"gui_share_url_description": "<b>Будь-хто</b>, за допомогою цієї адреси, може <b>завантажити</b> ваші файли, через <b>Tor Browser</b>: <img src='{}' />",
"gui_receive_url_description": "<b>Будь-хто</b>, за допомогою цієї адреси, може <b>завантажити</b> файли до вашого комп'ютера через <b>Tor Browser</b>: <img src='{}' />",
- "gui_url_label_persistent": "Це поширення не зупинятиметься автоматично.<br><br>Кожне наступне поширення використовує ту ж адресу. (Для використання одноразової адреси, вимкніть \"Використовувати постійну адресу\" в параметрах.)",
- "gui_url_label_stay_open": "Це поширення не зупинятиметься автоматично.",
- "gui_url_label_onetime": "Це поширення не зупинятиметься після першого виконання.",
- "gui_url_label_onetime_and_persistent": "Це поширення не припинятиметься автоматично.<br><br>Кожне наступне поширення використовує ту ж адресу. (Для використання одноразової адреси, вимкніть \"Використовувати постійну адресу\" в параметрах.)",
- "gui_status_indicator_share_stopped": "Готово до поширення",
+ "gui_url_label_persistent": "Це надсилання не зупинятиметься автоматично.<br><br>Кожне наступне надсилання використовує ту ж адресу. (Для використання одноразової адреси, вимкніть \"Використовувати постійну адресу\" в параметрах.)",
+ "gui_url_label_stay_open": "Це надсилання не зупинятиметься автоматично.",
+ "gui_url_label_onetime": "Це надсилання не зупинятиметься після першого виконання.",
+ "gui_url_label_onetime_and_persistent": "Це надсилання не припинятиметься автоматично.<br><br>Кожне наступне надсилання використовує ту ж адресу. (Для використання одноразової адреси, вимкніть \"Використовувати постійну адресу\" в параметрах.)",
+ "gui_status_indicator_share_stopped": "Готово до надсилання",
"gui_status_indicator_share_working": "Запуск…",
"gui_status_indicator_share_scheduled": "Заплановано…",
- "gui_status_indicator_share_started": "Поширення",
+ "gui_status_indicator_share_started": "Надсилання",
"gui_status_indicator_receive_stopped": "Готово до отримання",
"gui_status_indicator_receive_working": "Початок…",
"gui_status_indicator_receive_scheduled": "Заплановано…",
@@ -133,7 +133,7 @@
"history_completed_tooltip": "{} завершено",
"error_cannot_create_data_dir": "Не вдалося створити теку даних OnionShare: {}",
"gui_receive_mode_warning": "Режим отримання дозволяє завантажувати файли до вашого комп'ютера.<br><br><b>Деякі файли, потенційно, можуть заволодіти вашим комп'ютером, у разі їх відкриття. Відкривайте файли лише від довірених осіб, або якщо впевнені в своїх діях.</b>",
- "gui_mode_share_button": "Поширення Файлів",
+ "gui_mode_share_button": "Поділитися файлами",
"gui_mode_receive_button": "Отримання Файлів",
"gui_settings_receiving_label": "Параметри отримання",
"gui_settings_data_dir_label": "Зберігати файли до",
@@ -145,11 +145,11 @@
"systray_menu_exit": "Вийти",
"systray_page_loaded_title": "Сторінку Завантажено",
"systray_page_loaded_message": "OnionShare адресу завантажено",
- "systray_share_started_title": "Поширення почалося",
+ "systray_share_started_title": "Надсилання почалося",
"systray_share_started_message": "Початок надсилання комусь файлів",
- "systray_share_completed_title": "Поширення Виконано",
+ "systray_share_completed_title": "Надсилання виконано",
"systray_share_completed_message": "Завершено надсилання файлів",
- "systray_share_canceled_title": "Поширення Скасовано",
+ "systray_share_canceled_title": "Надсилання скасовано",
"systray_share_canceled_message": "Хтось скасував отримання ваших файлів",
"systray_receive_started_title": "Отримання Розпочато",
"systray_receive_started_message": "Хтось надсилає вам файли",
@@ -184,7 +184,7 @@
"gui_close_tab_warning_website_description": "Ви маєте активний розміщений вебсайт. Ви впевнені, що хочете закрити цю вкладку?",
"gui_new_tab_website_description": "Розмістіть статичний onion HTML-вебсайт на вашому комп'ютері.",
"mode_settings_receive_data_dir_browse_button": "Вибрати",
- "mode_settings_website_disable_csp_checkbox": "Вимкнути заголовок політики безпеки вмісту (дозволяє вебсайту застосовувати сторонні ресурси)",
+ "mode_settings_website_disable_csp_checkbox": "Не надсилати заголовок політики безпеки вмісту (дозволяє вебсайту застосовувати сторонні ресурси)",
"mode_settings_receive_data_dir_label": "Зберігати файли до",
"mode_settings_share_autostop_sharing_checkbox": "Закрити доступ, коли файли надіслано (приберіть позначку, щоб дозволити завантаження окремих файлів)",
"mode_settings_client_auth_checkbox": "Застосовувати авторизацію клієнта",
@@ -195,13 +195,13 @@
"mode_settings_persistent_checkbox": "Зберегти цю вкладку та автоматично відкривати її, коли я відкриваю OnionShare",
"mode_settings_advanced_toggle_hide": "Сховати розширені налаштування",
"mode_settings_advanced_toggle_show": "Показати розширені налаштування",
- "gui_quit_warning_description": "На деяких ваших вкладках триває активний обмін файлами. Якщо ви вийдете, це призведе до закриття всіх вкладок. Ви справді хочете вийти?",
+ "gui_quit_warning_description": "На деяких ваших вкладках триває обмін файлами. Якщо ви вийдете, це призведе до закриття всіх вкладок. Ви справді хочете вийти?",
"gui_close_tab_warning_receive_description": "Триває отримання файлів. Ви впевнені, що хочете закрити цю вкладку?",
"gui_close_tab_warning_share_description": "Триває надсилання ваших файлів. Ви впевнені, що хочете закрити цю вкладку?",
"gui_new_tab_website_button": "Опублікувати вебсайт",
"gui_new_tab_receive_description": "Перетворіть ваш комп’ютер на онлайн-обмінник. Люди зможуть надсилати файли на ваш комп’ютер за допомогою браузера Tor.",
"gui_new_tab_receive_button": "Отримання файлів",
- "gui_new_tab_share_button": "Поширення файлів",
+ "gui_new_tab_share_button": "Надсилання файлів",
"gui_new_tab_share_description": "Виберіть файли на вашому комп'ютері, щоб надіслати їх іншому користувачу. Особа або люди, яким ви хочете надіслати файли, повинні скористатись переглядачем Tor для їхнього отримання.",
"gui_quit_warning_cancel": "Скасувати",
"gui_quit_warning_title": "Ви впевнені?",
@@ -218,11 +218,15 @@
"gui_tab_name_website": "Вебсайт",
"gui_tab_name_receive": "Отримати",
"gui_tab_name_share": "Поділитися",
- "gui_qr_code_description": "Скануйте цей QR-код за допомогою зчитувача QR, наприклад камери на телефоні, щоб простіше поділитися адресою OnionShare з кимось.",
- "gui_receive_flatpak_data_dir": "Оскільки ви встановили OnionShare за допомогою flatpak, ви повинні зберігати файли в теці ~/OnionShare.",
+ "gui_qr_code_description": "Скануйте цей QR-код за допомогою зчитувача QR, наприклад камери на телефоні, щоб простіше надіслати комусь адресу OnionShare.",
+ "gui_receive_flatpak_data_dir": "Оскільки ви встановили OnionShare за допомогою Flatpak, ви повинні зберігати файли в теці ~/OnionShare.",
"gui_chat_stop_server": "Зупинити сервер чату",
"gui_chat_start_server": "Запустити сервер чату",
"gui_chat_stop_server_autostop_timer": "Зупинити сервер чату ({})",
"gui_qr_code_dialog_title": "QR-код OnionShare",
- "gui_show_url_qr_code": "Показати QR-код"
+ "gui_show_url_qr_code": "Показати QR-код",
+ "gui_main_page_share_button": "Почати надсилання",
+ "gui_main_page_chat_button": "Почати спілкуватися в чаті",
+ "gui_main_page_website_button": "Почати хостинг",
+ "gui_main_page_receive_button": "Почати отримання"
}
diff --git a/tests/test_cli_strings.py b/tests/test_cli_strings.py
index bb4ccdde..8c90240f 100644
--- a/tests/test_cli_strings.py
+++ b/tests/test_cli_strings.py
@@ -25,7 +25,7 @@ class TestLoadStrings:
""" load_strings() loads English by default """
common_obj.settings = Settings(common_obj)
strings.load_strings(common_obj)
- assert strings._("preparing_files") == "Compressing files."
+ assert strings._("not_a_readable_file") == "{0:s} is not a readable file."
def test_load_strings_loads_other_languages(
self, common_obj, locale_fr, sys_onionshare_dev_mode
@@ -34,7 +34,7 @@ class TestLoadStrings:
common_obj.settings = Settings(common_obj)
common_obj.settings.set("locale", "fr")
strings.load_strings(common_obj)
- assert strings._("preparing_files") == "Compression des fichiers."
+ assert strings._("not_a_readable_file") == "{0:s} n’est pas un fichier lisible."
def test_load_invalid_locale(
self, common_obj, locale_invalid, sys_onionshare_dev_mode