tor-commits
Threads by month
- ----- 2025 -----
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
November 2020
- 16 participants
- 1820 discussions

[translation/communitytpo-contentspot] https://gitweb.torproject.org/translation.git/commit/?h=communitytpo-contentspot
by translation@torproject.org 08 Nov '20
by translation@torproject.org 08 Nov '20
08 Nov '20
commit be5babed08dfd7885cc7d39d2751491ae9c55aff
Author: Translation commit bot <translation(a)torproject.org>
Date: Sun Nov 8 07:15:14 2020 +0000
https://gitweb.torproject.org/translation.git/commit/?h=communitytpo-conten…
---
contents+es-AR.po | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 65 insertions(+), 4 deletions(-)
diff --git a/contents+es-AR.po b/contents+es-AR.po
index 59b6a32bae..1ae4201ce6 100644
--- a/contents+es-AR.po
+++ b/contents+es-AR.po
@@ -7354,6 +7354,11 @@ msgid ""
"impossible. The Tor network is run by some 5000 volunteers who use the free "
"software provided by the Tor Project to run Tor routers."
msgstr ""
+"Es poco lo que podemos hacer para extender el seguimiento de este asunto. "
+"Como puede ser visto en la página de resumen, la red Tor está diseñada para "
+"hacer imposible el rastreo de usuarios. La red Tor está compuesta por cerca "
+"de 5000 voluntarios que usan el software libre provisto por el Tor Project "
+"para correr enrutadores Tor."
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
@@ -7398,6 +7403,10 @@ msgid ""
"traffic per second), [abuse complaints are "
"rare](https://www.torproject.org/docs/faq-abuse.html.en)."
msgstr ""
+"Desafortunadamente, algunas personas hacen mal uso de la red. Sin embargo, "
+"comparada con la tasa de uso legítimo (el rango de direcciones IP en "
+"cuestión procesa cerca de un gigabit de tráfico por segundo), las [quejas "
+"por abuso son raras](https://www.torproject.org/docs/faq-abuse.html.en)."
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
@@ -7419,6 +7428,8 @@ msgid ""
"The common boilerplate should be abridged or be omitted if the abuse "
"complainant is already familiar with Tor."
msgstr ""
+"El texto estándar debería ser abreviado u omitido si quien presenta la queja"
+" por abuso ya está familiarizado con Tor."
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
@@ -8056,16 +8067,19 @@ msgid ""
"If a serious abuse complaint not covered by this template set arrives, the "
"best answer is to follow a pattern with the complaining party."
msgstr ""
+"Si llega una queja de abuso seria que no está cubierta por este conjunto de "
+"plantillas, la mejor respuesta es seguir un patrón con la parte efectuando "
+"la queja."
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
msgid "This is not legal advice."
-msgstr ""
+msgstr "Esto no es un consejo legal."
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
msgid "This was not written or reviewed by a lawyer."
-msgstr ""
+msgstr "Esto no fue escrito o revisado por un abogado."
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
@@ -8073,12 +8087,16 @@ msgid ""
"It was written by someone with experience working with various ISPs who had "
"issues with a Tor exit node on their network."
msgstr ""
+"Fue escrito por alguien con experiencia en trabajar con varios ISPs que "
+"habían tenido dificultades con un nodo de salida Tor en su red."
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
msgid ""
"It has also been reviewed by someone who works in Abuse at a major ISP."
msgstr ""
+"También ha sido revisado por alguien que trabaja en Abuso en uno de los "
+"principales ISPs."
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
@@ -8089,6 +8107,11 @@ msgid ""
"whom you're going to converse knows nothing about Tor. Assume this same "
"person isn't going to trust anything you say."
msgstr ""
+"* Leé la [Introducción a "
+"Tor](https://2019.www.torproject.org/about/overview.html.en). Debés estar "
+"preparado para resumir y contestar preguntas básicas. Asumí que la persona "
+"con la cual vas a conversar no conoce nada acerca de Tor. Asumí que esta "
+"misma persona no va a confiar en nada de lo que digas."
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
@@ -8117,6 +8140,8 @@ msgstr ""
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
msgid "* Arrange to talk with or directly email the complainant."
msgstr ""
+"* Acordá con quien presenta la queja para hablar con él o enviarle "
+"directamente un correo electrónico."
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
@@ -8134,6 +8159,8 @@ msgid ""
"* You are a responsible server operator and concerned about the "
"complainant's problem."
msgstr ""
+"* Sos un operador del servidor, responsable y preocupado acerca del problema"
+" de quien presenta la queja."
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
@@ -8141,6 +8168,8 @@ msgid ""
"* You are not insane. You may be insane, but we don't want the complainant "
"to guess this is true."
msgstr ""
+"* No estás loco. Podés estarlo, pero no queremos que quien presenta la queja"
+" suponga que esto es verdad."
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
@@ -8148,6 +8177,8 @@ msgid ""
"* In many cases, your ISP will be involved as a conduit for the 3rd party "
"complainant. Your ISP wants to know:"
msgstr ""
+"* En muchos casos, tu ISP va a estar involucrado como conducto para la queja"
+" de un tercero. Tu ISP quiere saber que:"
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
@@ -8170,6 +8201,8 @@ msgid ""
"* You are a competent server administrator and can address the issue. "
"Minimally, you can at least discuss and respond to the issue intelligently."
msgstr ""
+"* Sos un administrador competente del servidor, y podés encarar la cuestión."
+" Al menos mínimamente, podés discutirla y responderla inteligentemente."
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
@@ -8179,11 +8212,15 @@ msgid ""
"hear it isn't the ISPs problem. They will move on after they are "
"comfortable."
msgstr ""
+"* El ISP no tiene la culpa y no es responsable por tus acciones. Este es "
+"normamente el caso, pero la pobre persona en Abuso lidiando con estas "
+"cuestiones solo quiere escuchar que no es un problema del ISP. Va a "
+"continuar con su rutina luego de que esté cómoda."
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
msgid "* Discuss options. Options Phobos has been offered:"
-msgstr ""
+msgstr "* Discutir opciones. Opciones que le han sido ofrecidas a Phobos:"
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
@@ -8192,6 +8229,9 @@ msgid ""
"default, nothing sensitive disclosed. You may want a new ISP if they demand "
"access to log files ad hoc."
msgstr ""
+"* El ISP o quien presenta la queja muy bien puede demandar ver los archivos "
+"de registro. Afortunadamente, por defecto, nada delicado es divulgado. "
+"Podrías querer un nuevo ISP si demanda acceso ad hoc a archivos de registro."
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
@@ -8201,6 +8241,10 @@ msgid ""
" [item #6 of the above blog post](https://blog.torproject.org/running-exit-"
"node)."
msgstr ""
+"* El ISP o quien presenta la queja sugiere que te conviertas en "
+"intermediario. En este caso, podrías querer proponerles usar una política de"
+" salida reducida, tal como la sugerida en el [ítem #6 del siguiente posteo "
+"en el blog](https://blog.torproject.org/running-exit-node)."
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
@@ -8208,6 +8252,8 @@ msgid ""
"* The ISP/Complainant demands you disable Tor. You may want a new ISP as a "
"result."
msgstr ""
+"* El ISP o quien presenta la queja demanda que deshabilites Tor. Como "
+"resultado, podrías querer un nuevo ISP."
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
@@ -8215,6 +8261,9 @@ msgid ""
"* The ISP/Complainant states they will firewall off the traffic on the "
"default ports. You may want a new ISP as a result."
msgstr ""
+"* El ISP o quien presenta la queja afirma que no dejará pasar por el "
+"cortafuego el tráfico en los puertos por defecto. Como resultado, podrías "
+"querer un nuevo ISP."
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
@@ -8223,6 +8272,10 @@ msgid ""
" node. You may want to suggest the complainant use the [Tor DNS "
"RBL](https://2019.www.torproject.org/projects/tordnsel.html.en) instead."
msgstr ""
+"* Actualizar la configuración para no permitir el tráfico hacia un cierto "
+"rango de IPs desde tu nodo de salida. En vez, podrías querer sugerir a quien"
+" presenta la queja que use la [DNSRBL de "
+"Tor](https://2019.www.torproject.org/projects/tordnsel.html.en)."
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
@@ -8232,6 +8285,11 @@ msgid ""
"nor Complainant may want to do this, but the fact that you offered is in "
"your credit. This may help them feel \"comfortable\" with you."
msgstr ""
+"* Luego que todo haya sido discutido, ofrecé una conversación de seguimiento"
+" dentro de una semana. Asegurate que los cambios acordados sean "
+"implementados. Puede que ni el ISP ni quien presenta la queja quieran hacer"
+" esto, pero el hecho de que lo ofreciste juega a tu favor. Esto puede ayudar"
+" a que se sientan \"cómodos\" con vos."
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
@@ -8261,7 +8319,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/relay-associations/
#: (content/relay-operations/community-resources/relay-associations/contents+en.lrpage.title)
msgid "Relay Associations"
-msgstr ""
+msgstr "Asociaciones de repetidores"
#: https//community.torproject.org/relay/community-resources/relay-associations/
#: (content/relay-operations/community-resources/relay-associations/contents+en.lrpage.subtitle)
@@ -8269,11 +8327,14 @@ msgid ""
"Relay associations are independent organizations that runs relays in the Tor"
" network."
msgstr ""
+"Las asociaciones de repetidores son organizaciones independientes que corren"
+" repetidores en la red Tor."
#: https//community.torproject.org/relay/community-resources/relay-associations/
#: (content/relay-operations/community-resources/relay-associations/contents+en.lrpage.body)
msgid "There are several organizations around the world that run Tor relays."
msgstr ""
+"Hay varias organizaciones alrededor del mundo que corren repetidores Tor."
#: https//community.torproject.org/relay/community-resources/relay-associations/
#: (content/relay-operations/community-resources/relay-associations/contents+en.lrpage.body)
1
0

[translation/communitytpo-contentspot] https://gitweb.torproject.org/translation.git/commit/?h=communitytpo-contentspot
by translation@torproject.org 08 Nov '20
by translation@torproject.org 08 Nov '20
08 Nov '20
commit c3f0b6ceff2187063943c737409df3bfc52b29d2
Author: Translation commit bot <translation(a)torproject.org>
Date: Sun Nov 8 06:45:12 2020 +0000
https://gitweb.torproject.org/translation.git/commit/?h=communitytpo-conten…
---
contents+es-AR.po | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
contents+he.po | 10 ++++--
2 files changed, 104 insertions(+), 4 deletions(-)
diff --git a/contents+es-AR.po b/contents+es-AR.po
index b2d093753c..59b6a32bae 100644
--- a/contents+es-AR.po
+++ b/contents+es-AR.po
@@ -5721,6 +5721,12 @@ msgid ""
"[.pdf](https://dip.torproject.org/torproject/ux/research/blob/master/reports/2018"
"/ur_colombia_2018_report_tbb-tba.pdf) |"
msgstr ""
+"| Navegador Tor para Escritorio | Descubrimiento de necesidades de usuario "
+"([.pdf](https://dip.torproject.org/torproject/ux/research/blob/master/scripts%20and%20activities/2018/4.00_user_needs_discovery.pdf))"
+" | Bogotá(CL), Cali(CL), Valle del Cauca(CL), Kampala(UG), Hoima(UG), "
+"Nairobi(KE) | 2018 | "
+"[.pdf](https://dip.torproject.org/torproject/ux/research/blob/master/reports/2018"
+"/ur_colombia_2018_report_tbb-tba.pdf) |"
#: https//community.torproject.org/user-research/open/
#: (content/user-research/open/contents+en.lrpage.body)
@@ -5732,6 +5738,12 @@ msgid ""
"[.pdf](https://dip.torproject.org/torproject/ux/research/blob/master/reports/2018"
"/ur_colombia_2018_report_tbb-tba.pdf) |"
msgstr ""
+"| Navegador Tor para Android | Descubrimiento de necesidades de usuario "
+"([.pdf](https://dip.torproject.org/torproject/ux/research/blob/master/scripts%20and%20activities/2018/4.00_user_needs_discovery.pdf))"
+" | Bogotá(CL), Cali(CL), Valle del Cauca(CL), Kampala(UG), Hoima(UG), "
+"Nairobi(KE) | 2018 | "
+"[.pdf](https://dip.torproject.org/torproject/ux/research/blob/master/reports/2018"
+"/ur_colombia_2018_report_tbb-tba.pdf) |"
#: https//community.torproject.org/user-research/open/
#: (content/user-research/open/contents+en.lrpage.body)
@@ -5741,6 +5753,10 @@ msgid ""
".Spanish_-_Tor_Project_Survey_-_Tor_Users_Demographics.pdf)) | Online | "
"2018 | .pdf |"
msgstr ""
+"| Características Demográficas de Usuarios de Tor | Encuesta "
+"([.pdf](https://dip.torproject.org/torproject/ux/research/blob/master/scripts%20and%20activities/2018/6"
+".Spanish_-_Tor_Project_Survey_-_Tor_Users_Demographics.pdf)) | Online | "
+"2018 | .pdf |"
#: https//community.torproject.org/relay/setup/exit/
#: (content/relay-operations/technical-setup/exit/contents+en.lrpage.title)
@@ -5830,6 +5846,9 @@ msgid ""
"Tor can do that for you: if your DirPort is on TCP port 80, you can make use"
" of tor's DirPortFrontPage feature to display an HTML file on that port."
msgstr ""
+"Tor puede hacer eso por vos: si tu DirPort está en el puerto TCP 80, podés "
+"hacer uso de la característica de tor DirPortFrontPage para mostrar un "
+"archivo HTML en ese puerto."
#: https//community.torproject.org/relay/setup/exit/
#: (content/relay-operations/technical-setup/exit/contents+en.lrpage.body)
@@ -5837,6 +5856,8 @@ msgid ""
"This file will be shown to anyone directing their browser to your Tor exit "
"relay IP address."
msgstr ""
+"Este archivo va a ser mostrado a cualquiera que dirija su navegador hacia la"
+" dirección IP de tu repetidor de salida Tor."
#: https//community.torproject.org/relay/setup/exit/
#: (content/relay-operations/technical-setup/exit/contents+en.lrpage.body)
@@ -6172,6 +6193,9 @@ msgid ""
"valid hostname. If it does not work, you can restore your old resolv.conf "
"file."
msgstr ""
+"Después de conmutar a unbound, verificá que funcione como es esperado "
+"resolviendo un nombre de equipo válido. Si no funciona, podés restaurar tu "
+"viejo archivo resolv.conf."
#: https//community.torproject.org/relay/setup/exit/
#: (content/relay-operations/technical-setup/exit/contents+en.lrpage.body)
@@ -6207,6 +6231,8 @@ msgstr "echo nameserver 127.0.0.1 > /etc/resolv.conf"
msgid ""
"To avoid unwanted configuration changed (for example by the DHCP client):"
msgstr ""
+"Para evitar cambios no deseados en la configuración (por ejemplo por el "
+"cliente DHCP):"
#: https//community.torproject.org/relay/setup/exit/
#: (content/relay-operations/technical-setup/exit/contents+en.lrpage.body)
@@ -6289,6 +6315,8 @@ msgstr "Decirle al sistema que use el servidor local unbound:"
msgid ""
"To avoid unwanted configuration changes (for example by the DHCP client):"
msgstr ""
+"Para evitar cambios no deseados en la configuración (por ejemplo por el "
+"cliente DHCP):"
#: https//community.torproject.org/relay/setup/exit/
#: (content/relay-operations/technical-setup/exit/contents+en.lrpage.body)
@@ -6407,6 +6435,9 @@ msgid ""
"You can find the specific ORPort TCP port number in the torrc configuration "
"samples below (in the OS specific sections)."
msgstr ""
+"Podés encontrar el número de puerto TCP específico del ORPort en las "
+"muestras de configuración de torrc de más bajo (en las secciones de SO "
+"específicas)."
#: https//community.torproject.org/relay/setup/post-install/
#: (content/relay-operations/technical-setup/post-install/contents+en.lrpage.body)
@@ -6441,6 +6472,8 @@ msgid ""
"About 3 hours after you start your relay it should appear on [Relay "
"Search](https://metrics.torproject.org/rs.html)."
msgstr ""
+"Alrededor de 3 horas después de que arranques tu repetidor, debiera aparecer"
+" en la [Búsqueda de Repetidores](https://metrics.torproject.org/rs.html)."
#: https//community.torproject.org/relay/setup/post-install/
#: (content/relay-operations/technical-setup/post-install/contents+en.lrpage.body)
@@ -6481,6 +6514,12 @@ msgid ""
" without performing additional steps manually, you may want to use "
"configuration management for better maintainability."
msgstr ""
+"Si planeás correr más de un único repetidor, querés correr un repetidor de "
+"alta capacidad (múltiples instancias de Tor por servidor) o querés usar "
+"caracterísiticas de seguridad potentes como [Claves Maestras Fuera de "
+"Línea](https://trac.torproject.org/projects/tor/wiki/doc/TorRelaySecurity/O…"
+" sin efectuar pasos adicionales manualmente, podrías querer usar un gestor "
+"de configuración para facilitar el mantenimiento."
#: https//community.torproject.org/relay/setup/post-install/
#: (content/relay-operations/technical-setup/post-install/contents+en.lrpage.body)
@@ -6488,6 +6527,8 @@ msgid ""
"There are multiple configuration management solutions for Unix-based "
"operating systems (Ansible, Puppet, Salt, ...)."
msgstr ""
+"Hay múltiples soluciones para la gestión de configuraciones para sistemas "
+"operativos basados en Unix (Ansible, Puppet, Salt, ...)."
#: https//community.torproject.org/relay/setup/post-install/
#: (content/relay-operations/technical-setup/post-install/contents+en.lrpage.body)
@@ -6496,6 +6537,9 @@ msgid ""
"operators and supports multiple operating systems: [Ansible "
"Relayor](http://github.com/nusenu/ansible-relayor)."
msgstr ""
+"El siguiente Rol Ansible ha sido específicalmente construído para operadores"
+" de repetidores Tor, y soporta a múltiples sistemas operativos: [Ansible "
+"Relayor](http://github.com/nusenu/ansible-relayor)."
#: https//community.torproject.org/relay/setup/post-install/
#: (content/relay-operations/technical-setup/post-install/contents+en.lrpage.body)
@@ -6511,6 +6555,12 @@ msgid ""
"[ContactInfo](https://2019.www.torproject.org/docs/tor-"
"manual.html.en#ContactInfo) in your torrc configuration."
msgstr ""
+"Para evitar poner a los clientes Tor en riesgo cuando operes múltiples "
+"repetidores, debés establecer un valor apropiado de "
+"[MyFamily](https://2019.www.torproject.org/docs/tor-"
+"manual.html.en#MyFamily), y tener una "
+"[ContactInfo](https://2019.www.torproject.org/docs/tor-"
+"manual.html.en#ContactInfo) válida en tu configuración torrc."
#: https//community.torproject.org/relay/setup/post-install/
#: (content/relay-operations/technical-setup/post-install/contents+en.lrpage.body)
@@ -6545,6 +6595,9 @@ msgid ""
"files when tor starts up or find the file named \"fingerprint\" in your tor "
"DataDirectory."
msgstr ""
+"en ambos repetidores. Para encontrar la huella digital de tu repetidor, "
+"podés mirar dentro de los archivos de registro cuando tor arranca, o "
+"encontrar el archivo llamado \"fingerprint\" en tu DataDirectory de tor."
#: https//community.torproject.org/relay/setup/post-install/
#: (content/relay-operations/technical-setup/post-install/contents+en.lrpage.body)
@@ -6552,6 +6605,9 @@ msgid ""
"Instead of doing so manually, for big operators we recommend to automate the"
" MyFamily setting via a configuration management solution."
msgstr ""
+"En vez de hacer eso manualmente, para operadores grandes recomendamos "
+"automatizar el valor MyFamily a través de una solución de gestión de "
+"configuración."
#: https//community.torproject.org/relay/setup/post-install/
#: (content/relay-operations/technical-setup/post-install/contents+en.lrpage.body)
@@ -6559,6 +6615,8 @@ msgid ""
"Manually managing MyFamily for big relay groups is error-prone and can put "
"Tor clients at risk."
msgstr ""
+"La gestión manual de MyFamily para grupos grandes de repetidores es propensa"
+" a errores, y puede poner a los clientes Tor en riesgo."
#: https//community.torproject.org/relay/setup/post-install/
#: (content/relay-operations/technical-setup/post-install/contents+en.lrpage.body)
@@ -6637,6 +6695,8 @@ msgid ""
"Also see the bandwidth entry in the "
"[FAQ](https://support.torproject.org/operators/bandwidth-shaping/)."
msgstr ""
+"También mirá la entrada ancho de banda en las "
+"[PMF](https://support.torproject.org/operators/bandwidth-shaping/)."
#: https//community.torproject.org/relay/setup/post-install/
#: (content/relay-operations/technical-setup/post-install/contents+en.lrpage.body)
@@ -6690,6 +6750,9 @@ msgid ""
"not enable IPv6 in your torrc configuration file before IPv6 is indeed "
"working."
msgstr ""
+"Al final de la salida deberías ver \"OK\". Si ese no es el caso, no "
+"habilités IPv6 en tu archivo de configuración torrc antes de que IPv6 esté "
+"de hecho funcionando."
#: https//community.torproject.org/relay/setup/post-install/
#: (content/relay-operations/technical-setup/post-install/contents+en.lrpage.body)
@@ -6697,6 +6760,8 @@ msgid ""
"**If you enable IPv6 without working IPv6 connectivity, your entire relay "
"will remain unused, regardless of whether IPv4 is working.**"
msgstr ""
+"**Si habilitás IPv6 sin la conectividad IPv6 funcionando, tu repetidor "
+"completo no va a ser usado, independientemente de que IPv4 sí funcione.**"
#: https//community.torproject.org/relay/setup/post-install/
#: (content/relay-operations/technical-setup/post-install/contents+en.lrpage.body)
@@ -6715,13 +6780,15 @@ msgstr "ORPort [dirección-IPv6]:9001"
#: https//community.torproject.org/relay/setup/post-install/
#: (content/relay-operations/technical-setup/post-install/contents+en.lrpage.body)
msgid "The location of that line in the configuration file does not matter."
-msgstr ""
+msgstr "La ubicación de esa línea en el archivo de configuración no importa."
#: https//community.torproject.org/relay/setup/post-install/
#: (content/relay-operations/technical-setup/post-install/contents+en.lrpage.body)
msgid ""
"You can simply add it next to the first ORPort lins in your torrc file."
msgstr ""
+"Simplemente podés agregarla al lado de la primera línea ORPort en tu archivo"
+" torrc."
#: https//community.torproject.org/relay/setup/post-install/
#: (content/relay-operations/technical-setup/post-install/contents+en.lrpage.body)
@@ -6768,6 +6835,8 @@ msgid ""
"**Note: Tor requires IPv4 connectivity, you can not run a Tor relay on "
"IPv6-only.**"
msgstr ""
+"**Nota: Tor requiere conectividad IPv4, no podés correr un repetidor Tor "
+"solamente con IPv6.**"
#: https//community.torproject.org/relay/setup/post-install/
#: (content/relay-operations/technical-setup/post-install/contents+en.lrpage.body)
@@ -6805,6 +6874,10 @@ msgid ""
"to be able to restore your relay's reputation after a disk failure - "
"otherwise you would have to go through the ramp-up phase again."
msgstr ""
+"Ya que los repetidores tienen un tiempo de crecimiento, tiene sentido hacer "
+"una copia de respaldo de la clave de identidad para ser capaz de restaurar "
+"la reputación de tu repetidor después de una falla de disco - de otra manera"
+" tendrías que ir a través de la fase de crecimiento de nuevo."
#: https//community.torproject.org/relay/setup/post-install/
#: (content/relay-operations/technical-setup/post-install/contents+en.lrpage.body)
@@ -6824,7 +6897,7 @@ msgstr "* FreeBSD: `/var/db/tor/keys`"
#: https//community.torproject.org/relay/setup/post-install/
#: (content/relay-operations/technical-setup/post-install/contents+en.lrpage.body)
msgid "* Fedora: `/var/lib/tor/keys`"
-msgstr ""
+msgstr "* Fedora: `/var/lib/tor/keys`"
#: https//community.torproject.org/relay/setup/post-install/
#: (content/relay-operations/technical-setup/post-install/contents+en.lrpage.body)
@@ -6856,6 +6929,8 @@ msgid ""
"Once you set up your relay it will likely run without much work from your "
"side."
msgstr ""
+"Una vez que configurés a tu repetidor, probablemente correrá sin mucho "
+"trabajo por tu parte."
#: https//community.torproject.org/relay/setup/post-install/
#: (content/relay-operations/technical-setup/post-install/contents+en.lrpage.body)
@@ -6869,6 +6944,9 @@ msgid ""
"relay's ORPorts for reachability and send you an email should they become "
"unreachable for whatever reason."
msgstr ""
+"Te recomendamos que usés uno de los servicios gratuitos que te permiten "
+"comprobar si los ORPorts de tu repetidor son alcanzables y te envían un "
+"correo electrónico si dejaran de serlo, cualquiera sea la razón."
#: https//community.torproject.org/relay/setup/post-install/
#: (content/relay-operations/technical-setup/post-install/contents+en.lrpage.body)
@@ -7102,6 +7180,9 @@ msgid ""
"can [compile obfs4 from "
"source](https://gitlab.com/yawning/obfs4#installation)."
msgstr ""
+"Nota 1: Si estás corriendo una plataforma que no está listada en esta "
+"página, podés [compilar obfs4 desde el código "
+"fuente](https://gitlab.com/yawning/obfs4#installation)."
#: https//community.torproject.org/relay/setup/bridge/
#: (content/relay-operations/technical-setup/bridge/contents+en.lrpage.body)
@@ -7110,6 +7191,10 @@ msgid ""
"bridge relay, changing IP address, name and fingerprint is advised to avoid "
"easy discovery and blocklisting by ISP or governments."
msgstr ""
+"Note 2: Si estás planeando convertir un repetidor existente que no es puente"
+" en uno que sí lo es, es aconsejado cambiar la dirección IP, nombre y huella"
+" digital, para evitar el fácil descubrimiento e inclusión en una lista de "
+"bloqueo por parte de ISPs o gobiernos."
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.title)
@@ -7143,6 +7228,10 @@ msgid ""
"Guidelines](/relay/community-resources/tor-exit-guidelines/) for more info, "
"before reading this document."
msgstr ""
+"Por favor mirá [Consejos para Correr un Nodo de Salida con Mínimo "
+"Acoso](https://blog.torproject.org/running-exit-node) y los [Lineamientos "
+"para una Salida Tor](/relay/community-resources/tor-exit-guidelines) por más"
+" información, antes de leer este documento."
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
@@ -7166,6 +7255,11 @@ msgid ""
" general for the Internet at large (open wifi, open proxies, botnets, etc), "
"and barring all else, how to block Tor."
msgstr ""
+"El formato general de estas plantillas es informar a quien presenta la queja"
+" acerca de Tor, para ayudarle a encontrar una solución a su problema en "
+"particular que funcione para toda la extensión de Internet en general (WiFi "
+"abierto, proxies abiertos, botnets, etc), y excluyendo todo lo demás, cómo "
+"bloquear Tor."
#: https//community.torproject.org/relay/community-resources/tor-abuse-templates/
#: (content/relay-operations/community-resources/tor-abuse-templates/contents+en.lrpage.body)
diff --git a/contents+he.po b/contents+he.po
index 78dd52a504..acfd46df99 100644
--- a/contents+he.po
+++ b/contents+he.po
@@ -3815,6 +3815,8 @@ msgid ""
"_distributed hash table_ from the step above, and ask for the signed "
"descriptor of Bob."
msgstr ""
+"כעת הדבר הבא שצריך לקרות הנו ש Alice הולכת אל ה _distributed hash table_ "
+"מהצעד הקודם, ומבקשת מציין חתום של Bob."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
@@ -3822,6 +3824,8 @@ msgid ""
"When Alice receives the signed descriptor, she verifies the signature of the"
" descriptor using the public key that is encoded in the onion address."
msgstr ""
+"כאשר Alice מקבלת את המציין החתום, היא מוודאת את החתימה של המציין תוך שימוש "
+"במפתח הציבורי אשר מוצפן בכתובת הבצל."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
@@ -3830,18 +3834,20 @@ msgid ""
"are now sure that this descriptor could only be produced by Bob and no one "
"else."
msgstr ""
+"הדבר מספק את תכונת האבטחה _end-to-end authentication_ , מאחר וכעת אנו "
+"בטוחים שהמציין הזה יכול היה להווצר רק על ידי Bob ואל אף אחד אחר."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
msgid ""
"And inside the descriptor there are the introduction points which allow "
"Alice to introduce herself to Bob."
-msgstr ""
+msgstr "ובתוך המציין יש את נקודות הגישה שמאפשרות ל Alice להציג את עצמה ל Bob."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
msgid "### Act 4: Where the client establishes a rendezvous point"
-msgstr ""
+msgstr "### Act 4: כאשר הקליינט יוצר נקודת מפגש"
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
1
0

[translation/communitytpo-contentspot] https://gitweb.torproject.org/translation.git/commit/?h=communitytpo-contentspot
by translation@torproject.org 08 Nov '20
by translation@torproject.org 08 Nov '20
08 Nov '20
commit 6925d9013f3541000a8615be14891895f4c3ae5d
Author: Translation commit bot <translation(a)torproject.org>
Date: Sun Nov 8 06:15:17 2020 +0000
https://gitweb.torproject.org/translation.git/commit/?h=communitytpo-conten…
---
contents+es-AR.po | 50 ++++++++++++++++++++++++++++++++++++++++++--------
contents+he.po | 50 +++++++++++++++++++++++++++++++++++++++++---------
2 files changed, 83 insertions(+), 17 deletions(-)
diff --git a/contents+es-AR.po b/contents+es-AR.po
index 60d8be5a6f..b2d093753c 100644
--- a/contents+es-AR.po
+++ b/contents+es-AR.po
@@ -5562,11 +5562,16 @@ msgid ""
" you read our [Guidelines to becoming a user researcher with "
"Tor](https://community.torproject.org/user-research/guidelines)."
msgstr ""
+"Estas son nuestras necesidades actuales para probar productos Tor, como así "
+"también las metodologías y los scripts de prueba. Antes de efectuar "
+"investigación de usuario para Tor, asegurate de leer nuestros [Lineamientos "
+"para llegar a ser investigador de usuario con "
+"Tor](https://community.torproject.org/user-research/guidelines)."
#: https//community.torproject.org/user-research/open/
#: (content/user-research/open/contents+en.lrpage.body)
msgid "### Tor Browser for Desktop"
-msgstr ""
+msgstr "### Navegador Tor para Escritorio"
#: https//community.torproject.org/user-research/open/
#: (content/user-research/open/contents+en.lrpage.body)
@@ -5575,6 +5580,9 @@ msgid ""
"Onboarding](https://dip.torproject.org/torproject/ux/research/blob/master/s…"
"._Tor_Browser_Desktop_-_download__launch__browse.pdf)"
msgstr ""
+"* [Investigación de Usuario: "
+"Orientación](https://dip.torproject.org/torproject/ux/research/blob/master/…"
+"._Tor_Browser_Desktop_-_download__launch__browse.pdf)"
#: https//community.torproject.org/user-research/open/
#: (content/user-research/open/contents+en.lrpage.body)
@@ -5583,11 +5591,14 @@ msgid ""
"Settings](https://dip.torproject.org/torproject/ux/research/blob/master/scr…"
".Tor_Browser_Desktop_-_Security_Settings.pdf)"
msgstr ""
+"* [Investigación de Usuario: Configuración de "
+"Seguridad](https://dip.torproject.org/torproject/ux/research/blob/master/sc…"
+".Tor_Browser_Desktop_-_Security_Settings.pdf)"
#: https//community.torproject.org/user-research/open/
#: (content/user-research/open/contents+en.lrpage.body)
msgid "* User Research: New Identity"
-msgstr ""
+msgstr "* Investigación de Usuario: Nueva Identidad"
#: https//community.torproject.org/user-research/open/
#: (content/user-research/open/contents+en.lrpage.body)
@@ -5596,6 +5607,9 @@ msgid ""
"Discovery](https://dip.torproject.org/torproject/ux/research/blob/master/sc…"
"._User_Needs_Discovery_-_Tor_Browser_Desktop.pdf)"
msgstr ""
+"* [Descubrimiento de Necesidades de "
+"Usuario](https://dip.torproject.org/torproject/ux/research/blob/master/scri…"
+"._User_Needs_Discovery_-_Tor_Browser_Desktop.pdf)"
#: https//community.torproject.org/user-research/open/
#: (content/user-research/open/contents+en.lrpage.body)
@@ -5609,26 +5623,29 @@ msgid ""
"Onboarding](https://dip.torproject.org/torproject/ux/research/blob/master/s…"
"._Tor_Browser_Android_-_download__launch__browse.pdf)"
msgstr ""
+"* [Investigación de Usuario: "
+"Orientación](https://dip.torproject.org/torproject/ux/research/blob/master/…"
+"._Tor_Browser_Android_-_download__launch__browse.pdf)"
#: https//community.torproject.org/user-research/open/
#: (content/user-research/open/contents+en.lrpage.body)
msgid "* User Research: Security Settings"
-msgstr ""
+msgstr "* Investigación de Usuario: Configuración de Seguridad"
#: https//community.torproject.org/user-research/open/
#: (content/user-research/open/contents+en.lrpage.body)
msgid "### Onion Services"
-msgstr ""
+msgstr "### Servicios Onion"
#: https//community.torproject.org/user-research/open/
#: (content/user-research/open/contents+en.lrpage.body)
msgid "* User Research: Onion Security Indicator"
-msgstr ""
+msgstr "* Investigación de Usuario: Indicador de Seguridad Onion"
#: https//community.torproject.org/user-research/open/
#: (content/user-research/open/contents+en.lrpage.body)
msgid "## Past User Research"
-msgstr ""
+msgstr "## Anteriores Investigaciones de Usuario"
#: https//community.torproject.org/user-research/open/
#: (content/user-research/open/contents+en.lrpage.body)
@@ -5638,16 +5655,20 @@ msgid ""
"please [get in touch.](https://lists.torproject.org/cgi-"
"bin/mailman/listinfo/ux)"
msgstr ""
+"Estamos comprometidos a un diseño abierto, por lo que podés ver la "
+"investigación de usuario que hemos conducido en el sur global. Si querés "
+"efectuar investigación de usuario con nosotros, por favor "
+"[contactanos](https://lists.torproject.org/cgi-bin/mailman/listinfo/ux)."
#: https//community.torproject.org/user-research/open/
#: (content/user-research/open/contents+en.lrpage.body)
msgid "| Project | Methodology | Locations | Dates | Reporting |"
-msgstr ""
+msgstr "| Proyecto | Metodología | Ubicaciones | Fechas | Informes |"
#: https//community.torproject.org/user-research/open/
#: (content/user-research/open/contents+en.lrpage.body)
msgid "| -------- | ----------- | --------- | --------- | ----- |"
-msgstr ""
+msgstr "| -------- | ----------- | --------- | --------- | ----- |"
#: https//community.torproject.org/user-research/open/
#: (content/user-research/open/contents+en.lrpage.body)
@@ -5656,6 +5677,9 @@ msgid ""
"([.pdf](https://dip.torproject.org/torproject/ux/research/blob/master/scripts%20and%20activities/2018/1.India_User_testing_Tor_Launcher_Test.pdf))"
" | Mumbai(IN) | Q118 | .pdf |"
msgstr ""
+"| Lanzador Tor | Prueba de usabilidad "
+"([.pdf](https://dip.torproject.org/torproject/ux/research/blob/master/scripts%20and%20activities/2018/1.India_User_testing_Tor_Launcher_Test.pdf))"
+" | Mumbai(IN) | Q118 | .pdf |"
#: https//community.torproject.org/user-research/open/
#: (content/user-research/open/contents+en.lrpage.body)
@@ -5666,6 +5690,11 @@ msgid ""
"[.pdf](https://dip.torproject.org/torproject/ux/research/blob/master/reports/2018/ur_kenya_2018_Feature_report__Onions_and_Circuit_Display.pdf)"
" |"
msgstr ""
+"| Indicador de Seguridad Onion | Prueba de usabilidad "
+"([.pdf](https://dip.torproject.org/torproject/ux/research/blob/master/scripts%20and%20activities/2018/2.User_testing_.onion_states_Test.pdf))"
+" | Mumbai(IN), Kampala(UG), Valencia(ES), Mombasa(KE)| Q118, Q218 | "
+"[.pdf](https://dip.torproject.org/torproject/ux/research/blob/master/reports/2018/ur_kenya_2018_Feature_report__Onions_and_Circuit_Display.pdf)"
+" |"
#: https//community.torproject.org/user-research/open/
#: (content/user-research/open/contents+en.lrpage.body)
@@ -5676,6 +5705,11 @@ msgid ""
"[.pdf](https://dip.torproject.org/torproject/ux/research/blob/master/reports/2018/ur_kenya_2018_Feature_report__Onions_and_Circuit_Display.pdf)"
" |"
msgstr ""
+"| Visualización de Circuito de NT | Prueba de usabilidad "
+"([.pdf](https://dip.torproject.org/torproject/ux/research/blob/master/scripts%20and%20activities/2018/3.User_testing_circuit_display_Test.pdf))"
+" | Kampala(UG), Nairobi(KE), Mombasa(KE) | Q118, Q218 | "
+"[.pdf](https://dip.torproject.org/torproject/ux/research/blob/master/reports/2018/ur_kenya_2018_Feature_report__Onions_and_Circuit_Display.pdf)"
+" |"
#: https//community.torproject.org/user-research/open/
#: (content/user-research/open/contents+en.lrpage.body)
diff --git a/contents+he.po b/contents+he.po
index b853aee187..78dd52a504 100644
--- a/contents+he.po
+++ b/contents+he.po
@@ -3607,11 +3607,13 @@ msgid ""
"Onion services don't need open ports because they punch through NAT. They "
"only establish outgoing connections."
msgstr ""
+"שרותיי בצל אינם זקוקים לערוצים פתוחים כיון שהם ודרים דרך NAT. הם רק יוצרים "
+"קשרים מתמשכים."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
msgid "## The Onion Service Protocol: Overview"
-msgstr ""
+msgstr "## פרוטוקול שרות הבצל: כללי"
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
@@ -3619,6 +3621,7 @@ msgid ""
"Now the question becomes **what kind of protocol is needed to achieve all "
"these properties?**"
msgstr ""
+"כעת השאלה הופכת ל **איזה סוג פרוטוקול נדרש כדי להשיג את כל התכונות האלה?**"
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
@@ -3626,6 +3629,8 @@ msgid ""
"Usually, people connect to an IP address and are done, but how can you "
"connect to something that does not have an IP address?"
msgstr ""
+"בדרך כלל, אנשים מתחברים לכתובת IP וזהו זה, אך האם ניתן להתחברו למשהו שאין לו"
+" כתובת IP?"
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
@@ -3633,19 +3638,21 @@ msgid ""
"In particular, an onion service's address looks like this: "
"`vww6ybal4bd7szmgncyruucpgfkqahzddi37ktceo3ah7ngmcopnpyyd.onion`"
msgstr ""
+"בפרט, כתובת שרות בצל שנראית משהו כזה: "
+"`vww6ybal4bd7szmgncyruucpgfkqahzddi37ktceo3ah7ngmcopnpyyd.onion`"
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
msgid ""
"This looks weird and random because it's the _identity public key_ of the "
"onion service."
-msgstr ""
+msgstr "זה נראה מוזר ואקראי כיון שזהו ה _identity public key_ של שרות הבצל."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
msgid ""
"That's one of the reasons we can achieve the security properties above."
-msgstr ""
+msgstr "זוהי אחת הסיבות בגללה אנו מסוגלים להשיג את תכונות האבטחה הנ\"ל."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
@@ -3654,16 +3661,18 @@ msgid ""
"can introduce itself to the service (Bob), and then set up a rendezvous "
"point with the service over the Tor network."
msgstr ""
+"פרוטקול שרות הבצל משתמש ברשת Tor כדי שהלקוח (Alice) יכולה להציג את עצמה "
+"לשרות (Bob), ואז ליצור נקודת מפגש עם השרות מעל רשת Tor."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
msgid "Here is a detailed breakdown of how this happens:"
-msgstr ""
+msgstr "להלן פירוק מפורט של האופן בו הדבר מתבצע:"
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
msgid "### Act 1: Where the onion service sets up its introduction points"
-msgstr ""
+msgstr "### Act 1: שרות הבצל מגדיר את נקודות הגישה שלו."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
@@ -3671,6 +3680,8 @@ msgid ""
""
msgstr ""
+""
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
@@ -3679,6 +3690,8 @@ msgid ""
"of Tor relays and asks them to act as his _introduction points_, by "
"establishing long-term circuits to them."
msgstr ""
+"כצעד ראשון בפרוטוקול, Bob (שרות הבצל) מתקשר למספר ניתובי Tor ומבקש מהם לפעול"
+" כ _introduction points_ שלו, באמצעות יצירת מעגלים ארוכי טווח אליהם. "
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
@@ -3686,6 +3699,7 @@ msgid ""
"These circuits are anonymized circuits, so Bob does not reveal his locations"
" to his introduction points."
msgstr ""
+"המעגלים הנם אנונימיים, כך ש Bob אינו מגלה את המיקום שלו לנקודות הגישה."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
@@ -3694,11 +3708,14 @@ msgid ""
"\"authentication key\", so that if any clients come for introductions later "
"the introduction point can use that key to match them to Bob."
msgstr ""
+"כחלק מצעד זה, Bob נותן לנקודת הגישה שלו \"authentication key\" מיוחד, כדי "
+"שקליינט אחר שמגיע מאוחר יותר לנקודת המפגש יוכל להשתמש במפתח הזה כדי להתאימם "
+"עם Bob."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
msgid "### Act 2: Where the onion service publishes its descriptors"
-msgstr ""
+msgstr "### Act 2: היכן שרות הבצל מפרסם את המזהים שלו"
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
@@ -3706,6 +3723,8 @@ msgid ""
""
msgstr ""
+""
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
@@ -3713,6 +3732,7 @@ msgid ""
"Now that the introduction points are setup, we need to create a way for "
"clients to be able to find them."
msgstr ""
+"כעת כשנקודות המפגש הוגדרו, אנו צריכים ליצור אפשרות לקליינטים למצוא אותם."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
@@ -3721,6 +3741,9 @@ msgid ""
"list of his introduction points (and their \"authentication keys\"), and "
"signs this descriptor with his _identity private key_."
msgstr ""
+"מסיבה זו, Bob מרכז _onion service descriptor_, שכולל רשימה של נקודות "
+"הגישה שלו (וה \"authentication keys\" שלהם), וחותם על מציין זה עם _identity"
+" private key_ שלו."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
@@ -3728,6 +3751,8 @@ msgid ""
"The _identity private key_ used here is the private part of the **public key"
" that is encoded in the onion service address**."
msgstr ""
+"השימוש ב _identity private key_ כאן הנו המרכיב הפרטי של ה **מפתח הציבורי "
+"שמוצפן בתוך כתובת שרות הבצל**."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
@@ -3735,6 +3760,8 @@ msgid ""
"Now, Bob uploads that signed descriptor to a _distributed hash table_ which "
"is part of the Tor network, so that clients can also get it."
msgstr ""
+"כעת, בוב מעלה את המציין החתום אל _distributed hash table_ אשר הנה חלק מרשת "
+"Tor, כך שקליינטים יכולים גם כן לקבל אותו."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
@@ -3742,25 +3769,26 @@ msgid ""
"Bob uses an anonymized Tor circuit to do this upload, so that he does not "
"reveal his location."
msgstr ""
+"בוב משתמש במעגל Tor אנונימי כדי לבצע העלאה זו, כך שהוא אינו מגלה את מיקומו."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
msgid "### Act 3: Where a client wants to visit the onion service"
-msgstr ""
+msgstr "### Act 3: כאשר קליינט רוצה לבקר בשרות בצל"
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
msgid ""
"All the previous steps were just setup for the onion service so that it's "
"reachable by clients."
-msgstr ""
+msgstr "כל הצעדים הקודמים היו רק הכנה לשרות הבצל כדי שניתן יהיה להגיע אליו."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
msgid ""
"Now let's fast-forward to the point where an actual client wants to visit "
"the service:"
-msgstr ""
+msgstr "כעת נרוץ קדימה אל הנקודה בה קליינט מסוים רוצה לבקר בשרות:"
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
@@ -3768,6 +3796,8 @@ msgid ""
""
msgstr ""
+""
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
@@ -3775,6 +3805,8 @@ msgid ""
"In this case, Alice (the client) has the onion address of Bob and she wants "
"to visit it, so she connects to it with her Tor Browser."
msgstr ""
+"במקרה זה, Alice (הקליינט) בעלת כתובת בצל של Bob והיא רוצה לבקר שם, כך שהיא "
+"מתקשרת אליו עם דפדפן Tor שלה."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
1
0

[translation/communitytpo-contentspot] https://gitweb.torproject.org/translation.git/commit/?h=communitytpo-contentspot
by translation@torproject.org 08 Nov '20
by translation@torproject.org 08 Nov '20
08 Nov '20
commit 059acfee0e9041a4a487ccf4d979d900b537427e
Author: Translation commit bot <translation(a)torproject.org>
Date: Sun Nov 8 05:45:14 2020 +0000
https://gitweb.torproject.org/translation.git/commit/?h=communitytpo-conten…
---
contents+es-AR.po | 21 +++++++++++++++++--
contents+he.po | 63 ++++++++++++++++++++++++++++++++++++-------------------
2 files changed, 60 insertions(+), 24 deletions(-)
diff --git a/contents+es-AR.po b/contents+es-AR.po
index 3a1ff57f9d..60d8be5a6f 100644
--- a/contents+es-AR.po
+++ b/contents+es-AR.po
@@ -5482,11 +5482,14 @@ msgid ""
"user stories and finding patterns across them. It is how our Personas "
"emerged from our in field research."
msgstr ""
+"Con el Equipo Comunitario, hemos estado trabajando, recopilando y mapeando "
+"historias de usuarios reales, y encontrando patrones entre ellos. Así es "
+"como nuestras Personas emergieron de nuestra investigación de campo."
#: https//community.torproject.org/user-research/persona/
#: (content/user-research/persona/contents+en.lrpage.body)
msgid "### Tor Personas"
-msgstr ""
+msgstr "### Tor Personas"
#: https//community.torproject.org/user-research/persona/
#: (content/user-research/persona/contents+en.lrpage.body)
@@ -5494,6 +5497,8 @@ msgid ""
"* [Jelani, the human rights "
"defender](https://dip.torproject.org/torproject/ux/research/tree/master/per…"
msgstr ""
+"* [Jelani, el defensor de los derechos "
+"humanos](https://dip.torproject.org/torproject/ux/research/tree/master/pers…"
#: https//community.torproject.org/user-research/persona/
#: (content/user-research/persona/contents+en.lrpage.body)
@@ -5501,6 +5506,8 @@ msgid ""
"* [Aleisha, the privacy "
"looker](https://dip.torproject.org/torproject/ux/research/tree/master/perso…"
msgstr ""
+"* [Aleisha, la buscadora de "
+"privacidad](https://dip.torproject.org/torproject/ux/research/tree/master/p…"
#: https//community.torproject.org/user-research/persona/
#: (content/user-research/persona/contents+en.lrpage.body)
@@ -5508,6 +5515,8 @@ msgid ""
"* [Fernanda, the feminist "
"activist](https://dip.torproject.org/torproject/ux/research/tree/master/per…"
msgstr ""
+"* [Fernanda, la activista "
+"feminista](https://dip.torproject.org/torproject/ux/research/tree/master/pe…"
#: https//community.torproject.org/user-research/persona/
#: (content/user-research/persona/contents+en.lrpage.body)
@@ -5515,6 +5524,8 @@ msgid ""
"* [Fatima, the censored "
"user](https://dip.torproject.org/torproject/ux/research/tree/master/persona…"
msgstr ""
+"* [Fátima, la usuaria "
+"censurada](https://dip.torproject.org/torproject/ux/research/tree/master/pe…"
#: https//community.torproject.org/user-research/persona/
#: (content/user-research/persona/contents+en.lrpage.body)
@@ -5522,11 +5533,13 @@ msgid ""
"* [Alex, the fearless "
"journalist](https://dip.torproject.org/torproject/ux/research/tree/master/p…"
msgstr ""
+"* [Alex, le periodista "
+"intrépidx](https://dip.torproject.org/torproject/ux/research/tree/master/pe…"
#: https//community.torproject.org/user-research/open/
#: (content/user-research/open/contents+en.lrpage.title)
msgid "Open User Research"
-msgstr ""
+msgstr "Investigación de Usuario Abierta"
#: https//community.torproject.org/user-research/open/
#: (content/user-research/open/contents+en.lrpage.subtitle)
@@ -5536,6 +5549,10 @@ msgid ""
"what we are working on and start to run user research with your local "
"community."
msgstr ""
+"Ponemos a nuestros usuarios en el centro de nuestro proceso de desarrollo. "
+"Así es como llevamos tecnología de aumento de la privacidad a aquellos que "
+"más la necesitan. Explorá en lo que estamos trabajando y empezá a efectuar "
+"investigación de usuario con tu comunidad local."
#: https//community.torproject.org/user-research/open/
#: (content/user-research/open/contents+en.lrpage.body)
diff --git a/contents+he.po b/contents+he.po
index e32bc0c061..b853aee187 100644
--- a/contents+he.po
+++ b/contents+he.po
@@ -3323,7 +3323,7 @@ msgstr ""
#: https//community.torproject.org/outreach/meetup/
#: (content/outreach/meetup/contents+en.lrpage.body)
msgid "### Step 1"
-msgstr "### צעד 1"
+msgstr "### צעד 1 "
#: https//community.torproject.org/outreach/meetup/
#: (content/outreach/meetup/contents+en.lrpage.body)
@@ -3409,17 +3409,17 @@ msgstr ""
#: https//community.torproject.org/outreach/meetup/
#: (content/outreach/meetup/contents+en.lrpage.body)
msgid "If you have some printed materials and/or Tor swag, put it on a table."
-msgstr ""
+msgstr "אם יש לכם איזה חומר מודפס ו/או חפצים של Tor, הניוחו על השולחן."
#: https//community.torproject.org/outreach/meetup/
#: (content/outreach/meetup/contents+en.lrpage.body)
msgid "### Step 5"
-msgstr ""
+msgstr "### צעד 5"
#: https//community.torproject.org/outreach/meetup/
#: (content/outreach/meetup/contents+en.lrpage.body)
msgid "Load your presentation and wait a few minutes to people arrive."
-msgstr ""
+msgstr "העלו את המצגת והמתינו כמה דקות להגעת אנשים."
#: https//community.torproject.org/outreach/meetup/
#: (content/outreach/meetup/contents+en.lrpage.body)
@@ -3427,11 +3427,13 @@ msgid ""
"During the activity take notes about questions, how many knew about Tor "
"before, how many are relay operators, etc"
msgstr ""
+"במשך הפעילות רישומו הערות לגבי שאלות, כמה ידעו על Tor קודם לכן, כמה הם "
+"מפעילי ניתוב, וכמדוה."
#: https//community.torproject.org/outreach/meetup/
#: (content/outreach/meetup/contents+en.lrpage.body)
msgid "### Step 6"
-msgstr ""
+msgstr "### צעד 6"
#: https//community.torproject.org/outreach/meetup/
#: (content/outreach/meetup/contents+en.lrpage.body)
@@ -3440,11 +3442,14 @@ msgid ""
"notes to [Tor Community Team](https://lists.torproject.org/cgi-"
"bin/mailman/listinfo/tor-community-team) mailing list."
msgstr ""
+"לאחר המפגש, נקו את המרחב, הסירו את הפוסטרים והעלו את הרשימות שלכם אל [Tor "
+"Community Team](https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-"
+"community-team) mailing list."
#: https//community.torproject.org/outreach/talk/
#: (content/outreach/talk/contents+en.lrpage.title)
msgid "Talk about Tor"
-msgstr ""
+msgstr "דברו על Tor"
#: https//community.torproject.org/outreach/talk/
#: (content/outreach/talk/contents+en.lrpage.subtitle)
@@ -3452,11 +3457,13 @@ msgid ""
"Here you'll find materials on basic Tor explainers and concepts, ideas for "
"preparing a Tor talk, suggested social media posts, and more."
msgstr ""
+"כאן תמצאו חומרים שמסבירים את המושגים הבסיסיים של Tor, רעיונות להכנת שיחת "
+"Tor, הצעות לפוסטים הרשת החברתית, ועוד."
#: https//community.torproject.org/outreach/kit/
#: (content/outreach/kit/contents+en.lrpage.title)
msgid "Street team kit"
-msgstr ""
+msgstr "קיט לצוות רחוב"
#: https//community.torproject.org/outreach/kit/
#: (content/outreach/kit/contents+en.lrpage.subtitle)
@@ -3465,28 +3472,30 @@ msgid ""
"This kit includes printable flyers, stickers, and other materials to get "
"people excited about using Tor."
msgstr ""
+"הקיט הזה כולל פליירים מודפסים, סטיקרים, וחומרים אחרים להבאת אנשים להתלהב מ "
+"Tor."
#: https//community.torproject.org/outreach/kit/
#: (content/outreach/kit/contents+en.lrpage.body)
msgid "## Street Team Kit"
-msgstr ""
+msgstr "## קיט צוות רחוב"
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.title)
msgid "How do onion services work?"
-msgstr ""
+msgstr "כיצד שרותי בצל עובדים?"
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.subtitle)
msgid "Learn how onion services work."
-msgstr ""
+msgstr "לימדו כיצד שרותי בצל עובדים"
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
#: https//community.torproject.org/onion-services/talk/
#: (content/onion-services/talk/contents+en.lrpage.body)
msgid "Onion services are services that can only be accessed over Tor."
-msgstr ""
+msgstr "שרותי בצל הנם שרותים שניתן לגשת אליהם רק מ Tor."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
@@ -3496,27 +3505,29 @@ msgid ""
"Running an onion service gives your users all the security of HTTPS with the"
" added privacy benefits of Tor Browser."
msgstr ""
+"הפעלת שרות Tor מאפשרת למשתמשיך את כל האבטחה של HTTPS עם תוספת יתרונות "
+"הפרטיות של דפדפן Tor."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
msgid "## Why onion services?"
-msgstr ""
+msgstr "## מדוע שרותי בצל?"
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
msgid ""
"Onion services offer various privacy and security benefits to their users."
-msgstr ""
+msgstr "שרותי בצל מאפשרים מגוון יתרונות פרטיות ואבטחה למשתמשים שלהם."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
msgid "### Location hiding"
-msgstr ""
+msgstr "### הסתרת מיקום"
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
msgid "An onion service's IP address is protected."
-msgstr ""
+msgstr "כתובת ה IP של שרות בצל הנה מוגנת."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
@@ -3525,11 +3536,13 @@ msgid ""
"addresses are not even meaningful to onion services: they are not even used "
"in the protocol."
msgstr ""
+"שרותי בצל הנם שכבת רשת מעל TCP/IP, כך שבמובן מסוים כתובות IP אינן בכלל "
+"משמעותיות עבור שרותי בצל: הן אפילו אינן בשימוש בפרוטוקול."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
msgid "### End-to-end authentication"
-msgstr ""
+msgstr "### אותנתיקציה מקצה אל קצה"
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
@@ -3537,11 +3550,13 @@ msgid ""
"When a user visits a particular onion, they know that the content they are "
"seeing can only come from that particular onion."
msgstr ""
+"כאשר משתמשים מבקרים בבצל מסוים, הם יודעים שהתוכן שהם רואים יכול להגיע רק "
+"מהבצל הספציפי הזה. "
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
msgid "No impersonation is possible, which is generally not the case."
-msgstr ""
+msgstr "התחזות אינה אפשרית, שזה בדרך כלל לא המקרה."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
@@ -3549,31 +3564,33 @@ msgid ""
"Usually, reaching a website does not mean that a man-in-the-middle did not "
"reroute to some other location (e.g. DNS attacks)."
msgstr ""
+"בדרך כלל, הגעה לאתר אין משמעה שהאדם שבאמצע לא הסיט למיקום כלשהו אחר (כלומר "
+"מתקפות DNS)."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
msgid "### End-to-end encryption"
-msgstr ""
+msgstr "### הצפנה מקצה אל קצה"
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
msgid "Onion service traffic is encrypted from the client to the onion host."
-msgstr ""
+msgstr "תעבורת שרות בצל הנה מוצפנת מהלקוח עד מארח הבצל."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
msgid "This is like getting strong SSL/HTTPS for free."
-msgstr ""
+msgstr "זה כמו לקבל SSL/HTTPS חזק בחינם."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
msgid "### NAT punching"
-msgstr ""
+msgstr "### חדירת NAT"
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
msgid "Is your network filtered and you can't open ports on your firewall?"
-msgstr ""
+msgstr "האם הרשת שלך מסוננת ואינך יכול לפתוח ערוצים בחומת האש?"
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
@@ -3581,6 +3598,8 @@ msgid ""
"This could happen if you are in a university campus, an office, an airport, "
"or pretty much anywhere."
msgstr ""
+"הדבר יכול לקרות אם הנך בקמפוס האוניברסיטה, במשרד, בשדה תעופה, או פחות או "
+"יותר בכל מקום."
#: https//community.torproject.org/onion-services/overview/
#: (content/onion-services/overview/contents+en.lrpage.body)
1
0

[translation/communitytpo-contentspot] https://gitweb.torproject.org/translation.git/commit/?h=communitytpo-contentspot
by translation@torproject.org 08 Nov '20
by translation@torproject.org 08 Nov '20
08 Nov '20
commit 8cdcde7be16efb9c8245d5605689f3373470437d
Author: Translation commit bot <translation(a)torproject.org>
Date: Sun Nov 8 03:45:11 2020 +0000
https://gitweb.torproject.org/translation.git/commit/?h=communitytpo-conten…
---
contents+pt-BR.po | 45 +++++++++++++++++++++++++++------------------
1 file changed, 27 insertions(+), 18 deletions(-)
diff --git a/contents+pt-BR.po b/contents+pt-BR.po
index fd39daf0be..f88cfb1f5f 100644
--- a/contents+pt-BR.po
+++ b/contents+pt-BR.po
@@ -13482,6 +13482,8 @@ msgstr ""
#: (content/relay-operations/technical-setup/bridge/freebsd/contents+en.lrpage.body)
msgid "### 3. Ensure that the `random_id` sysctl setting is enabled:"
msgstr ""
+"### 3. Tenha certeza que a configuração do sysctl `random_id` está "
+"habilitada:"
#: https//community.torproject.org/relay/setup/bridge/freebsd/
#: (content/relay-operations/technical-setup/bridge/freebsd/contents+en.lrpage.body)
@@ -13489,6 +13491,7 @@ msgstr ""
#: (content/relay-operations/technical-setup/bridge/openbsd/contents+en.lrpage.body)
msgid "### 4. Start the tor daemon and make sure it starts at boot:"
msgstr ""
+"### 4. Inicie o daemon tor e tenha certeza que ele começa a rodar no boot:"
#: https//community.torproject.org/relay/setup/bridge/freebsd/
#: (content/relay-operations/technical-setup/bridge/freebsd/contents+en.lrpage.body)
@@ -13499,7 +13502,7 @@ msgstr ""
#: https//community.torproject.org/relay/setup/bridge/dragonflybsd/
#: (content/relay-operations/technical-setup/bridge/dragonflybsd/contents+en.lrpage.body)
msgid "### 5. Monitor your logs"
-msgstr ""
+msgstr "### 5. Monitore seus logs"
#: https//community.torproject.org/relay/setup/bridge/freebsd/
#: (content/relay-operations/technical-setup/bridge/freebsd/contents+en.lrpage.body)
@@ -13706,7 +13709,7 @@ msgstr "enabled: yes"
#: https//community.torproject.org/relay/setup/bridge/freebsd/
#: (content/relay-operations/technical-setup/bridge/freebsd/contents+en.lrpage.body)
msgid "### 7. Final notes"
-msgstr ""
+msgstr "### 7. Considerações finais"
#: https//community.torproject.org/relay/setup/bridge/freebsd/
#: (content/relay-operations/technical-setup/bridge/freebsd/contents+en.lrpage.body)
@@ -13775,7 +13778,7 @@ msgstr "pkg_add tor obfs4proxy"
#: https//community.torproject.org/relay/setup/bridge/openbsd/
#: (content/relay-operations/technical-setup/bridge/openbsd/contents+en.lrpage.body)
msgid "### 2. Edit your Tor config file"
-msgstr ""
+msgstr "### 2. Edite seu arquivo de configuração do Tor"
#: https//community.torproject.org/relay/setup/bridge/openbsd/
#: (content/relay-operations/technical-setup/bridge/openbsd/contents+en.lrpage.body)
@@ -13796,7 +13799,7 @@ msgstr "DataDirectory /var/tor"
#: (content/relay-operations/technical-setup/bridge/openbsd/contents+en.lrpage.body)
msgid ""
"### 3. Create the tor log directory and give it the correct permissions:"
-msgstr ""
+msgstr "### 3. Crie uma pasta para o log do tor e dê as permissões corretas:"
#: https//community.torproject.org/relay/setup/bridge/openbsd/
#: (content/relay-operations/technical-setup/bridge/openbsd/contents+en.lrpage.body)
@@ -13824,7 +13827,7 @@ msgstr ""
#: https//community.torproject.org/relay/setup/bridge/centos-rhel-opensuse/
#: (content/relay-operations/technical-setup/bridge/centos-rhel-opensuse/contents+en.lrpage.body)
msgid "### 6. Final notes"
-msgstr ""
+msgstr "### 6. Considerações finais"
#: https//community.torproject.org/relay/setup/bridge/debian-ubuntu/
#: (content/relay-operations/technical-setup/bridge/debian-ubuntu/contents+en.lrpage.title)
@@ -13839,7 +13842,7 @@ msgstr ""
#: https//community.torproject.org/relay/setup/bridge/debian-ubuntu/
#: (content/relay-operations/technical-setup/bridge/debian-ubuntu/contents+en.lrpage.body)
msgid "### 1. Install Tor"
-msgstr ""
+msgstr "### 1. Instale o Tor"
#: https//community.torproject.org/relay/setup/bridge/debian-ubuntu/
#: (content/relay-operations/technical-setup/bridge/debian-ubuntu/contents+en.lrpage.body)
@@ -13859,7 +13862,7 @@ msgstr ""
#: https//community.torproject.org/relay/setup/bridge/debian-ubuntu/
#: (content/relay-operations/technical-setup/bridge/debian-ubuntu/contents+en.lrpage.body)
msgid "### 2. Install obfs4proxy"
-msgstr ""
+msgstr "### 2. Instale obfs4proxy"
#: https//community.torproject.org/relay/setup/bridge/debian-ubuntu/
#: (content/relay-operations/technical-setup/bridge/debian-ubuntu/contents+en.lrpage.body)
@@ -13899,6 +13902,8 @@ msgid ""
"### 3. Edit your Tor config file, usually located at `/etc/tor/torrc` and "
"replace its content with:"
msgstr ""
+"### 3. Edite seu arquivo de configuração Tor, geralmente localizado em "
+"`/usr/local/etc/tor` e substitua seu conteúdo por:"
#: https//community.torproject.org/relay/setup/bridge/debian-ubuntu/
#: (content/relay-operations/technical-setup/bridge/debian-ubuntu/contents+en.lrpage.body)
@@ -14000,7 +14005,7 @@ msgstr ""
#: https//community.torproject.org/relay/setup/bridge/centos-rhel-opensuse/
#: (content/relay-operations/technical-setup/bridge/centos-rhel-opensuse/contents+en.lrpage.body)
msgid "### 4. Restart tor"
-msgstr ""
+msgstr "### 4. Reinicie o tor"
#: https//community.torproject.org/relay/setup/bridge/debian-ubuntu/
#: (content/relay-operations/technical-setup/bridge/debian-ubuntu/contents+en.lrpage.body)
@@ -14224,7 +14229,7 @@ msgstr ""
#: https//community.torproject.org/relay/setup/bridge/docker/
#: (content/relay-operations/technical-setup/bridge/docker/contents+en.lrpage.body)
msgid "### 2. Upgrade your container"
-msgstr ""
+msgstr "### 3. Atualize seu container"
#: https//community.torproject.org/relay/setup/bridge/docker/
#: (content/relay-operations/technical-setup/bridge/docker/contents+en.lrpage.body)
@@ -14257,7 +14262,7 @@ msgstr ""
#: https//community.torproject.org/relay/setup/bridge/docker/
#: (content/relay-operations/technical-setup/bridge/docker/contents+en.lrpage.body)
msgid "### 3. Monitor your logs"
-msgstr ""
+msgstr "### 3. Monitore seus logs"
#: https//community.torproject.org/relay/setup/bridge/docker/
#: (content/relay-operations/technical-setup/bridge/docker/contents+en.lrpage.body)
@@ -14322,7 +14327,7 @@ msgstr ""
#: https//community.torproject.org/relay/setup/bridge/netbsd/
#: (content/relay-operations/technical-setup/bridge/netbsd/contents+en.lrpage.body)
msgid "### 1. Setup `pkg_add`"
-msgstr ""
+msgstr "### 1. Configure `pkg_add`"
#: https//community.torproject.org/relay/setup/bridge/netbsd/
#: (content/relay-operations/technical-setup/bridge/netbsd/contents+en.lrpage.body)
@@ -14338,6 +14343,8 @@ msgstr "pkg_add obfs4proxy tor"
#: (content/relay-operations/technical-setup/bridge/netbsd/contents+en.lrpage.body)
msgid "### 2. Configure `/usr/pkg/etc/tor/torrc` to run **Tor** as a Bridge"
msgstr ""
+"### 2. Configure `/usr/pkg/etc/tor/torrc` para rodar o **Tor** como uma "
+"Ponte"
#: https//community.torproject.org/relay/setup/bridge/netbsd/
#: (content/relay-operations/technical-setup/bridge/netbsd/contents+en.lrpage.body)
@@ -14376,7 +14383,7 @@ msgstr ""
#: https//community.torproject.org/relay/setup/bridge/netbsd/
#: (content/relay-operations/technical-setup/bridge/netbsd/contents+en.lrpage.body)
msgid "### 4. Monitor your logs"
-msgstr ""
+msgstr "### 4. Monitore seus logs"
#: https//community.torproject.org/relay/setup/bridge/netbsd/
#: (content/relay-operations/technical-setup/bridge/netbsd/contents+en.lrpage.body)
@@ -14397,7 +14404,7 @@ msgstr "tail /var/log/messages"
#: https//community.torproject.org/relay/setup/bridge/netbsd/
#: (content/relay-operations/technical-setup/bridge/netbsd/contents+en.lrpage.body)
msgid "### 5. Final Notes"
-msgstr ""
+msgstr "### 5. Considerações finais"
#: https//community.torproject.org/relay/setup/bridge/netbsd/
#: (content/relay-operations/technical-setup/bridge/netbsd/contents+en.lrpage.body)
@@ -14420,7 +14427,7 @@ msgstr ""
#: https//community.torproject.org/relay/setup/bridge/centos-rhel-opensuse/
#: (content/relay-operations/technical-setup/bridge/centos-rhel-opensuse/contents+en.lrpage.body)
msgid "### 1. Install tor and dependencies"
-msgstr ""
+msgstr "### 1. Instale tor e suas dependências"
#: https//community.torproject.org/relay/setup/bridge/fedora/
#: (content/relay-operations/technical-setup/bridge/fedora/contents+en.lrpage.body)
@@ -14502,7 +14509,7 @@ msgstr "systemctl restart tor"
#: https//community.torproject.org/relay/setup/bridge/centos-rhel-opensuse/
#: (content/relay-operations/technical-setup/bridge/centos-rhel-opensuse/contents+en.lrpage.body)
msgid "### 5. Monitor your logs (usually in your syslog)"
-msgstr ""
+msgstr "### 5. Monitore seus logs (geralmente nos seu syslog)"
#: https//community.torproject.org/relay/setup/bridge/centos-rhel-opensuse/
#: (content/relay-operations/technical-setup/bridge/centos-rhel-opensuse/contents+en.lrpage.title)
@@ -14587,7 +14594,7 @@ msgstr ""
#: https//community.torproject.org/relay/setup/bridge/dragonflybsd/
#: (content/relay-operations/technical-setup/bridge/dragonflybsd/contents+en.lrpage.body)
msgid "##### 1.1. Recommended Steps to Setup `pkg`"
-msgstr ""
+msgstr "#### 1.1 Passos Recomendados para Configurar o `pkg` "
#: https//community.torproject.org/relay/setup/bridge/dragonflybsd/
#: (content/relay-operations/technical-setup/bridge/dragonflybsd/contents+en.lrpage.body)
@@ -14629,6 +14636,8 @@ msgstr "pkg install tor-devel obfs4proxy-tor"
#: (content/relay-operations/technical-setup/bridge/dragonflybsd/contents+en.lrpage.body)
msgid "### 3. Configure `/usr/local/etc/tor/torrc` to run **Tor** as a Bridge"
msgstr ""
+"### 3. Configure `/usr/pkg/etc/tor/torrc` para rodar o **Tor** como uma "
+"Ponte"
#: https//community.torproject.org/relay/setup/bridge/dragonflybsd/
#: (content/relay-operations/technical-setup/bridge/dragonflybsd/contents+en.lrpage.body)
@@ -14641,7 +14650,7 @@ msgstr ""
#: https//community.torproject.org/relay/setup/bridge/dragonflybsd/
#: (content/relay-operations/technical-setup/bridge/dragonflybsd/contents+en.lrpage.body)
msgid "### 4. Start `tor`:"
-msgstr ""
+msgstr "### 4. Inicie o `tor`:"
#: https//community.torproject.org/relay/setup/bridge/dragonflybsd/
#: (content/relay-operations/technical-setup/bridge/dragonflybsd/contents+en.lrpage.body)
@@ -14651,7 +14660,7 @@ msgstr "tail /var/log/tor/notices.log"
#: https//community.torproject.org/relay/setup/bridge/dragonflybsd/
#: (content/relay-operations/technical-setup/bridge/dragonflybsd/contents+en.lrpage.body)
msgid "### 6. Final Notes"
-msgstr ""
+msgstr "### 6. Considerações finais"
#: https//community.torproject.org/relay/community-resources/eff-tor-legal-faq/tor-dmca-response/
#: (content/relay-operations/community-resources/eff-tor-legal-faq/tor-dmca-response/contents+en.lrpage.title)
1
0

[translation/communitytpo-contentspot] https://gitweb.torproject.org/translation.git/commit/?h=communitytpo-contentspot
by translation@torproject.org 08 Nov '20
by translation@torproject.org 08 Nov '20
08 Nov '20
commit ce9d780573ab196acfdd72d0bdeeda79c30d79f6
Author: Translation commit bot <translation(a)torproject.org>
Date: Sun Nov 8 03:15:18 2020 +0000
https://gitweb.torproject.org/translation.git/commit/?h=communitytpo-conten…
---
contents+pt-BR.po | 45 +++++++++++++++++++++++++++++++++------------
1 file changed, 33 insertions(+), 12 deletions(-)
diff --git a/contents+pt-BR.po b/contents+pt-BR.po
index 143f688bb7..fd39daf0be 100644
--- a/contents+pt-BR.po
+++ b/contents+pt-BR.po
@@ -7659,6 +7659,8 @@ msgid ""
"### If you're part of an organization that will be running the exit relay "
"(ISP, university etc), consider teaching your legal people about Tor."
msgstr ""
+"### Se você faz parte de uma organização (universidade, provedor, etc.) que "
+"vai rodar o relay de saída, considere ensinar o setor jurídico sobre o Tor. "
#: https//community.torproject.org/relay/community-resources/tor-exit-guidelines/
#: (content/relay-operations/community-resources/tor-exit-guidelines/contents+en.lrpage.body)
@@ -7673,7 +7675,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/tor-exit-guidelines/
#: (content/relay-operations/community-resources/tor-exit-guidelines/contents+en.lrpage.body)
msgid "### If you're not part of an organization, think about starting one!"
-msgstr ""
+msgstr "### Se você não faz parte de uma organização, considere começar uma!"
#: https//community.torproject.org/relay/community-resources/tor-exit-guidelines/
#: (content/relay-operations/community-resources/tor-exit-guidelines/contents+en.lrpage.body)
@@ -7715,7 +7717,7 @@ msgstr ""
#: (content/relay-operations/community-resources/tor-exit-guidelines/contents+en.lrpage.body)
msgid ""
"### Consider preemptively teaching your local law enforcement about Tor."
-msgstr ""
+msgstr "### Considere proativamente ensinar sua polícia local sobre o Tor. "
#: https//community.torproject.org/relay/community-resources/tor-exit-guidelines/
#: (content/relay-operations/community-resources/tor-exit-guidelines/contents+en.lrpage.body)
@@ -7750,7 +7752,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/tor-exit-guidelines/
#: (content/relay-operations/community-resources/tor-exit-guidelines/contents+en.lrpage.body)
msgid "### Answering complaints"
-msgstr ""
+msgstr "### Respondendo queixas"
#: https//community.torproject.org/relay/community-resources/tor-exit-guidelines/
#: (content/relay-operations/community-resources/tor-exit-guidelines/contents+en.lrpage.body)
@@ -7765,6 +7767,8 @@ msgid ""
"### Answer to abuse complaints in a professional manner within a reasonable "
"time span."
msgstr ""
+"### Responda as queixas de abuso de forma profissional dentro de um tempo "
+"razoável."
#: https//community.torproject.org/relay/community-resources/tor-exit-guidelines/
#: (content/relay-operations/community-resources/tor-exit-guidelines/contents+en.lrpage.body)
@@ -7810,6 +7814,8 @@ msgid ""
"### If you receive a threatening letter from a lawyer about abusive use or a"
" DMCA complaint, also don't freak out."
msgstr ""
+"### Se você receber uma carta ameaçadora de um advogado sobre use abusivo ou"
+" um denúncia de copyright (DMCA), não perca a cabeça."
#: https//community.torproject.org/relay/community-resources/tor-exit-guidelines/
#: (content/relay-operations/community-resources/tor-exit-guidelines/contents+en.lrpage.body)
@@ -7849,7 +7855,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/tor-exit-guidelines/
#: (content/relay-operations/community-resources/tor-exit-guidelines/contents+en.lrpage.body)
msgid "### Make the WHOIS info point as close to you as possible."
-msgstr ""
+msgstr "### Faça a informação do WHOIS indicar você o mais preciso possível."
#: https//community.torproject.org/relay/community-resources/tor-exit-guidelines/
#: (content/relay-operations/community-resources/tor-exit-guidelines/contents+en.lrpage.body)
@@ -7892,6 +7898,8 @@ msgstr ""
#: (content/relay-operations/community-resources/tor-exit-guidelines/contents+en.lrpage.body)
msgid "### Register a phone number and a fax number as abuse contact."
msgstr ""
+"### Registre um número de telefone e um número de fax para contato sobre "
+"abuso."
#: https//community.torproject.org/relay/community-resources/tor-exit-guidelines/
#: (content/relay-operations/community-resources/tor-exit-guidelines/contents+en.lrpage.body)
@@ -7910,7 +7918,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/tor-exit-guidelines/
#: (content/relay-operations/community-resources/tor-exit-guidelines/contents+en.lrpage.body)
msgid "### Consider using the Reduced Exit Policy."
-msgstr ""
+msgstr "### Considere reduzir a sua política de saída."
#: https//community.torproject.org/relay/community-resources/tor-exit-guidelines/
#: (content/relay-operations/community-resources/tor-exit-guidelines/contents+en.lrpage.body)
@@ -10126,7 +10134,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/eff-tor-legal-faq/
#: (content/relay-operations/community-resources/eff-tor-legal-faq/contents+en.lrpage.body)
msgid "### How should I deal with a police visit/raid/interrogation?"
-msgstr ""
+msgstr "### Como lidar com uma visita/busca/interrogação policial?"
#: https//community.torproject.org/relay/community-resources/eff-tor-legal-faq/
#: (content/relay-operations/community-resources/eff-tor-legal-faq/contents+en.lrpage.body)
@@ -10194,6 +10202,9 @@ msgid ""
"### Should I contact the Tor developers when I have legal questions about "
"Tor or to inform them if I suspect Tor is being used for illegal purposes?"
msgstr ""
+"### Devo entrar em contato com os desenvolvedores do Tor quando eu ter "
+"dúvidas legais sobre o Tor ou informá-los se eu suspeitar que o Tor está "
+"sendo usado para fins ilegais?"
#: https//community.torproject.org/relay/community-resources/eff-tor-legal-faq/
#: (content/relay-operations/community-resources/eff-tor-legal-faq/contents+en.lrpage.body)
@@ -10225,6 +10236,8 @@ msgid ""
"### Do Tor's core developers make any promises about the trustworthiness or "
"reliability of Tor relays that are listed in their directory?"
msgstr ""
+"### Os desenvolvedores do Tor fazem alguma promessa sobre a confiabilidade "
+"dos relays Tor listados nos diretórios?"
#: https//community.torproject.org/relay/community-resources/eff-tor-legal-faq/
#: (content/relay-operations/community-resources/eff-tor-legal-faq/contents+en.lrpage.body)
@@ -10308,7 +10321,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/eff-tor-legal-faq/
#: (content/relay-operations/community-resources/eff-tor-legal-faq/contents+en.lrpage.body)
msgid "### Should I run an exit relay from my home?"
-msgstr ""
+msgstr "### Eu deveria usar minha casa para rodar um relay de saída?"
#: https//community.torproject.org/relay/community-resources/eff-tor-legal-faq/
#: (content/relay-operations/community-resources/eff-tor-legal-faq/contents+en.lrpage.body)
@@ -10365,6 +10378,8 @@ msgstr ""
#: (content/relay-operations/community-resources/eff-tor-legal-faq/contents+en.lrpage.body)
msgid "### Should I tell my ISP that I'm running an exit relay?"
msgstr ""
+"### Devo comunicar meu provedor de internet que estou rodando um relay de "
+"saída?"
#: https//community.torproject.org/relay/community-resources/eff-tor-legal-faq/
#: (content/relay-operations/community-resources/eff-tor-legal-faq/contents+en.lrpage.body)
@@ -10392,6 +10407,8 @@ msgstr ""
msgid ""
"### Is it a good idea to let others know that I'm running an exit relay?"
msgstr ""
+"### É uma boa ideia contar para os outros que estou rodando um relay de "
+"saída?"
#: https//community.torproject.org/relay/community-resources/eff-tor-legal-faq/
#: (content/relay-operations/community-resources/eff-tor-legal-faq/contents+en.lrpage.body)
@@ -10458,7 +10475,7 @@ msgstr ""
msgid ""
"### Should I snoop on the plaintext traffic that exits through my Tor "
"relay?"
-msgstr ""
+msgstr "### Eu posso xeretar o tráfego não cifrado que sai pelo meu relay?"
#: https//community.torproject.org/relay/community-resources/eff-tor-legal-faq/
#: (content/relay-operations/community-resources/eff-tor-legal-faq/contents+en.lrpage.body)
@@ -10552,6 +10569,8 @@ msgstr ""
msgid ""
"### My ISP, university, etc. just sent me a DMCA notice. What should I do?"
msgstr ""
+"### Meu provedor de internet, universidade, etc acabou de me mandar um aviso"
+" de violação de copyright (DMCA). O que devo fazer? "
#: https//community.torproject.org/relay/community-resources/eff-tor-legal-faq/
#: (content/relay-operations/community-resources/eff-tor-legal-faq/contents+en.lrpage.body)
@@ -11997,7 +12016,7 @@ msgstr "pkg update -f"
#: https//community.torproject.org/relay/setup/guard/freebsd/
#: (content/relay-operations/technical-setup/guard/freebsd/contents+en.lrpage.body)
msgid "### 2.1. Recommended Steps to Setup `pkg`"
-msgstr ""
+msgstr "### 2.1 Passos Recomendados para Configurar o `pkg` "
#: https//community.torproject.org/relay/setup/guard/freebsd/
#: (content/relay-operations/technical-setup/guard/freebsd/contents+en.lrpage.body)
@@ -12363,7 +12382,7 @@ msgstr "pkg_add tor"
#: https//community.torproject.org/relay/setup/guard/openbsd/
#: (content/relay-operations/technical-setup/guard/openbsd/contents+en.lrpage.body)
msgid "### 2.1. Recommended Steps to Install `tor` on OpenBSD"
-msgstr ""
+msgstr "### 2.1 Passos Recomendados para Instalar o `tor` no OpenBSD "
#: https//community.torproject.org/relay/setup/guard/openbsd/
#: (content/relay-operations/technical-setup/guard/openbsd/contents+en.lrpage.body)
@@ -12936,7 +12955,7 @@ msgstr "pkg-static install -y pkg"
#: https//community.torproject.org/relay/setup/guard/dragonflybsd/
#: (content/relay-operations/technical-setup/guard/dragonflybsd/contents+en.lrpage.body)
msgid "### 1.1. Recommended Steps to Setup `pkg`"
-msgstr ""
+msgstr "### 1.1 Passos Recomendados para Configurar o `pkg` "
#: https//community.torproject.org/relay/setup/guard/dragonflybsd/
#: (content/relay-operations/technical-setup/guard/dragonflybsd/contents+en.lrpage.body)
@@ -13053,7 +13072,7 @@ msgstr ""
#: https//community.torproject.org/relay/setup/bridge/openbsd/
#: (content/relay-operations/technical-setup/bridge/openbsd/contents+en.lrpage.body)
msgid "### 1. Install packages"
-msgstr ""
+msgstr "### 1. Instalar pacotes"
#: https//community.torproject.org/relay/setup/bridge/freebsd/
#: (content/relay-operations/technical-setup/bridge/freebsd/contents+en.lrpage.body)
@@ -13066,6 +13085,8 @@ msgid ""
"### 2. Edit your Tor config file, usually located at `/usr/local/etc/tor` "
"and replace its content with:"
msgstr ""
+"### 2. Edite seu arquivo de configuração Tor, geralmente localizado em "
+"`/usr/local/etc/tor` e substitua seu conteúdo por:"
#: https//community.torproject.org/relay/setup/bridge/freebsd/
#: (content/relay-operations/technical-setup/bridge/freebsd/contents+en.lrpage.body)
1
0

[translation/communitytpo-contentspot] https://gitweb.torproject.org/translation.git/commit/?h=communitytpo-contentspot
by translation@torproject.org 08 Nov '20
by translation@torproject.org 08 Nov '20
08 Nov '20
commit 5e1fad80bb0ca6977890c28756bb5be6122036d3
Author: Translation commit bot <translation(a)torproject.org>
Date: Sun Nov 8 02:45:10 2020 +0000
https://gitweb.torproject.org/translation.git/commit/?h=communitytpo-conten…
---
contents+pt-BR.po | 71 +++++++++++++++++++++++++++++--------------------------
1 file changed, 37 insertions(+), 34 deletions(-)
diff --git a/contents+pt-BR.po b/contents+pt-BR.po
index c549fb844c..143f688bb7 100644
--- a/contents+pt-BR.po
+++ b/contents+pt-BR.po
@@ -7477,7 +7477,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/tor-exit-guidelines/
#: (content/relay-operations/community-resources/tor-exit-guidelines/contents+en.lrpage.body)
msgid "### Tor at Universities: Find allies."
-msgstr ""
+msgstr "### Tor nas Universidades: Encontre aliados."
#: https//community.torproject.org/relay/community-resources/tor-exit-guidelines/
#: (content/relay-operations/community-resources/tor-exit-guidelines/contents+en.lrpage.body)
@@ -7514,7 +7514,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/tor-exit-guidelines/
#: (content/relay-operations/community-resources/tor-exit-guidelines/contents+en.lrpage.body)
msgid "### Find Tor-friendly ISPs."
-msgstr ""
+msgstr "### Encontre um provedor de internet amigável ao Tor"
#: https//community.torproject.org/relay/community-resources/tor-exit-guidelines/
#: (content/relay-operations/community-resources/tor-exit-guidelines/contents+en.lrpage.body)
@@ -8098,7 +8098,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/bad-relays/
#: (content/relay-operations/community-resources/bad-relays/contents+en.lrpage.body)
msgid "### What is a bad relay?"
-msgstr ""
+msgstr "### O que é um relay ruim?"
#: https//community.torproject.org/relay/community-resources/bad-relays/
#: (content/relay-operations/community-resources/bad-relays/contents+en.lrpage.body)
@@ -8181,7 +8181,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/bad-relays/
#: (content/relay-operations/community-resources/bad-relays/contents+en.lrpage.body)
msgid "### How do I report a bad relay?"
-msgstr ""
+msgstr "### Como eu reporto um relay ruim?"
#: https//community.torproject.org/relay/community-resources/bad-relays/
#: (content/relay-operations/community-resources/bad-relays/contents+en.lrpage.body)
@@ -8225,7 +8225,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/bad-relays/
#: (content/relay-operations/community-resources/bad-relays/contents+en.lrpage.body)
msgid "### What happens to bad relays?"
-msgstr ""
+msgstr "### O que acontece com um relay ruim?"
#: https//community.torproject.org/relay/community-resources/bad-relays/
#: (content/relay-operations/community-resources/bad-relays/contents+en.lrpage.body)
@@ -8270,7 +8270,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/bad-relays/
#: (content/relay-operations/community-resources/bad-relays/contents+en.lrpage.body)
msgid "### My relays was given the BadExit flag. What's up?"
-msgstr ""
+msgstr "### Meus relays receberam a flag BadExit. O que está acontecendo?"
#: https//community.torproject.org/relay/community-resources/bad-relays/
#: (content/relay-operations/community-resources/bad-relays/contents+en.lrpage.body)
@@ -8283,7 +8283,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/bad-relays/
#: (content/relay-operations/community-resources/bad-relays/contents+en.lrpage.body)
msgid "### Do you actively look for bad relays?"
-msgstr ""
+msgstr "### Vocês ativamente procuram por relays ruins?"
#: https//community.torproject.org/relay/community-resources/bad-relays/
#: (content/relay-operations/community-resources/bad-relays/contents+en.lrpage.body)
@@ -8365,7 +8365,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### Austria"
-msgstr ""
+msgstr "### Áustria "
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -8424,7 +8424,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### Bulgaria"
-msgstr ""
+msgstr "### Bulgária"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -8436,7 +8436,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### Canada"
-msgstr ""
+msgstr "### Canadá"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -8474,7 +8474,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### Czech Republic"
-msgstr ""
+msgstr "### República Tcheca"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -8484,7 +8484,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### France"
-msgstr ""
+msgstr "### França"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -8529,7 +8529,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### Finland"
-msgstr ""
+msgstr "### Finlândia"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -8548,7 +8548,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### Germany"
-msgstr ""
+msgstr "### Alemanha"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -8655,7 +8655,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### Hong Kong"
-msgstr ""
+msgstr "### Hong Kong"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -8668,7 +8668,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### Hungary"
-msgstr ""
+msgstr "### Hungria"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -8682,7 +8682,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### Iceland"
-msgstr ""
+msgstr "### Islândia"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -8707,7 +8707,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### Italy"
-msgstr ""
+msgstr "### Itália"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -8742,7 +8742,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### Latvia"
-msgstr ""
+msgstr "### Letônia"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -8756,7 +8756,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### Lithuania"
-msgstr ""
+msgstr "### Lituânia"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -8768,7 +8768,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### Mexico"
-msgstr ""
+msgstr "### México"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -8794,7 +8794,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### Moldova"
-msgstr ""
+msgstr "### Moldávia"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -8819,7 +8819,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### Netherlands"
-msgstr ""
+msgstr "### Holanda"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -8931,7 +8931,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### New Zealand and Australia"
-msgstr ""
+msgstr "### Nova Zelândia e Austrália"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -8953,7 +8953,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### Poland"
-msgstr ""
+msgstr "### Polônia"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -9012,7 +9012,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### Romania"
-msgstr ""
+msgstr "### Romênia"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -9045,7 +9045,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### Sweden"
-msgstr ""
+msgstr "### Suécia"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -9085,7 +9085,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### Switzerland"
-msgstr ""
+msgstr "### Suíça"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -9114,7 +9114,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### Slovenia"
-msgstr ""
+msgstr "### Eslovênia"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -9126,7 +9126,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### Ukraine"
-msgstr ""
+msgstr "### Ucrânia"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -9143,7 +9143,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### United Kingdom"
-msgstr ""
+msgstr "### Reino Unido"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -9177,7 +9177,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
msgid "### US"
-msgstr ""
+msgstr "### Estados Unidos"
#: https//community.torproject.org/relay/community-resources/good-bad-isps/
#: (content/relay-operations/community-resources/good-bad-isps/contents+en.lrpage.body)
@@ -9992,7 +9992,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/eff-tor-legal-faq/
#: (content/relay-operations/community-resources/eff-tor-legal-faq/contents+en.lrpage.body)
msgid "### Has anyone ever been sued or prosecuted for running Tor?"
-msgstr ""
+msgstr "### Alguém foi processado por usar Tor?"
#: https//community.torproject.org/relay/community-resources/eff-tor-legal-faq/
#: (content/relay-operations/community-resources/eff-tor-legal-faq/contents+en.lrpage.body)
@@ -10045,7 +10045,7 @@ msgstr ""
#: https//community.torproject.org/relay/community-resources/eff-tor-legal-faq/
#: (content/relay-operations/community-resources/eff-tor-legal-faq/contents+en.lrpage.body)
msgid "### Should I use Tor or encourage the use of Tor for illegal purposes?"
-msgstr ""
+msgstr "### Devo usar ou encorajar o uso do Tor para fins ilegais?"
#: https//community.torproject.org/relay/community-resources/eff-tor-legal-faq/
#: (content/relay-operations/community-resources/eff-tor-legal-faq/contents+en.lrpage.body)
@@ -10060,6 +10060,8 @@ msgstr ""
msgid ""
"### Can EFF promise that I won't get in trouble for running a Tor relay?"
msgstr ""
+"### A EFF pode prometer que eu não vou ter problemas por operar um relay "
+"Tor?"
#: https//community.torproject.org/relay/community-resources/eff-tor-legal-faq/
#: (content/relay-operations/community-resources/eff-tor-legal-faq/contents+en.lrpage.body)
@@ -10087,6 +10089,7 @@ msgstr ""
#: (content/relay-operations/community-resources/eff-tor-legal-faq/contents+en.lrpage.body)
msgid "### Will EFF represent me if I get in trouble for running a Tor relay?"
msgstr ""
+"#### A EFF vai me representar se eu tiver problemas por rodar um relay Tor?"
#: https//community.torproject.org/relay/community-resources/eff-tor-legal-faq/
#: (content/relay-operations/community-resources/eff-tor-legal-faq/contents+en.lrpage.body)
1
0
commit 7ce8a5e090fc95bfb874299d61c824638d5242f4
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sat Nov 7 17:18:53 2020 -0800
Remove Query's Synchronous usage
First step to remove our asyncio metaprogramming...
https://github.com/torproject/stem/issues/77
Our Query class now provides a run method for synchronous users, and run_async
for asyncio. This also adds a stop method that can cancel our download.
---
stem/descriptor/remote.py | 114 ++++++++++++++++++++++++++++++++---------
test/unit/descriptor/remote.py | 53 ++++++++++++++-----
2 files changed, 130 insertions(+), 37 deletions(-)
diff --git a/stem/descriptor/remote.py b/stem/descriptor/remote.py
index 136b9d15..50b3065c 100644
--- a/stem/descriptor/remote.py
+++ b/stem/descriptor/remote.py
@@ -100,8 +100,7 @@ import stem.util.tor_tools
from stem.descriptor import Compression
from stem.util import log, str_tools
-from stem.util.asyncio import Synchronous
-from typing import Any, AsyncIterator, Dict, List, Optional, Sequence, Tuple, Union
+from typing import Any, AsyncIterator, Dict, Iterator, List, Optional, Sequence, Tuple, Union
# Tor has a limited number of descriptors we can fetch explicitly by their
# fingerprint or hashes due to a limit on the url length by squid proxies.
@@ -227,7 +226,7 @@ def get_detached_signatures(**query_args: Any) -> 'stem.descriptor.remote.Query'
return get_instance().get_detached_signatures(**query_args)
-class Query(Synchronous):
+class Query(object):
"""
Asynchronous request for descriptor content from a directory authority or
mirror. These can either be made through the
@@ -369,7 +368,6 @@ class Query(Synchronous):
super(Query, self).__init__()
if not resource.startswith('/'):
- self.stop()
raise ValueError("Resources should start with a '/': %s" % resource)
if resource.endswith('.z'):
@@ -380,7 +378,6 @@ class Query(Synchronous):
elif isinstance(compression, stem.descriptor._Compression):
compression = [compression] # caller provided only a single option
else:
- self.stop()
raise ValueError('Compression should be a list of stem.descriptor.Compression, was %s (%s)' % (compression, type(compression).__name__))
if Compression.ZSTD in compression and not Compression.ZSTD.available:
@@ -404,7 +401,6 @@ class Query(Synchronous):
if isinstance(endpoint, (stem.ORPort, stem.DirPort)):
self.endpoints.append(endpoint)
else:
- self.stop()
raise ValueError("Endpoints must be an stem.ORPort or stem.DirPort. '%s' is a %s." % (endpoint, type(endpoint).__name__))
self.resource = resource
@@ -428,6 +424,12 @@ class Query(Synchronous):
self._downloader_task = None # type: Optional[asyncio.Task]
self._downloader_lock = threading.RLock()
+ # background thread if outside an asyncio context
+
+ self._loop = None # type: Optional[asyncio.AbstractEventLoop]
+ self._loop_thread = None # type: Optional[threading.Thread]
+ self._loop_lock = threading.RLock()
+
if start:
self.start()
@@ -441,9 +443,38 @@ class Query(Synchronous):
with self._downloader_lock:
if self._downloader_task is None:
- self._downloader_task = self._loop.create_task(Query._download_descriptors(self, self.retries, self.timeout))
+ with self._loop_lock:
+ if self._loop is None:
+ try:
+ self._loop = asyncio.get_running_loop()
+ except RuntimeError:
+ self._loop = asyncio.new_event_loop()
+ self._loop_thread = threading.Thread(
+ name = 'stem.descriptor.remote query',
+ target = self._loop.run_forever,
+ daemon = True,
+ )
+
+ self._loop_thread.start()
+
+ self._downloader_task = self._loop.create_task(self._download_descriptors(self.retries, self.timeout))
+
+ def stop(self) -> None:
+ """
+ Aborts our download if it's in progress, and cleans up underlying
+ resources.
+ """
- async def run(self, suppress: bool = False) -> List['stem.descriptor.Descriptor']:
+ with self._downloader_lock:
+ if self._downloader_task and not self._downloader_task.done():
+ self._downloader_task.cancel()
+
+ with self._loop_lock:
+ if self._loop_thread and self._loop_thread.is_alive():
+ self._loop.call_soon_threadsafe(self._loop.stop)
+ self._loop_thread.join()
+
+ def run(self, suppress: bool = False) -> List['stem.descriptor.Descriptor']:
"""
Blocks until our request is complete then provides the descriptors. If we
haven't yet started our request then this does so.
@@ -461,12 +492,43 @@ class Query(Synchronous):
* :class:`~stem.DownloadFailed` if our request fails
"""
- try:
- return [desc async for desc in self._run(suppress)]
- finally:
- self.stop()
+ if not self.downloaded and not self.error:
+ with self._loop_lock:
+ if self._loop is None:
+ self.start()
+
+ async def run_wrapper():
+ return [desc async for desc in self.run_async(suppress = True)]
+
+ asyncio.run_coroutine_threadsafe(run_wrapper(), self._loop).result()
+
+ self.stop()
+
+ if self.error:
+ if suppress:
+ return []
+
+ raise self.error
+ else:
+ return list(self.downloaded)
+
+ async def run_async(self, suppress: bool) -> AsyncIterator[stem.descriptor.Descriptor]:
+ """
+ Asynchronous counterpart of :func:`stem.descriptor.remote.Query.run`
+
+ :param suppress: avoids raising exceptions if **True**
+
+ :returns: iterator for the requested :class:`~stem.descriptor.__init__.Descriptor` instances
+
+ :raises:
+ Using the iterator can fail with the following if **suppress** is
+ **False**...
+
+ * **ValueError** if the descriptor contents is malformed
+ * :class:`~stem.DownloadTimeout` if our request timed out
+ * :class:`~stem.DownloadFailed` if our request fails
+ """
- async def _run(self, suppress: bool) -> AsyncIterator[stem.descriptor.Descriptor]:
with self._downloader_lock:
if not self.downloaded and not self.error:
if not self._downloader_task:
@@ -477,17 +539,21 @@ class Query(Synchronous):
except Exception as exc:
self.error = exc
- if self.error:
- if suppress:
- return
+ if self.error:
+ if suppress:
+ return
- raise self.error
- else:
- for desc in self.downloaded:
- yield desc
+ raise self.error
+ else:
+ for desc in self.downloaded:
+ yield desc
+
+ def __iter__(self) -> Iterator[stem.descriptor.Descriptor]:
+ for desc in self.run(True):
+ yield desc
async def __aiter__(self) -> AsyncIterator[stem.descriptor.Descriptor]:
- async for desc in self._run(True):
+ async for desc in self.run_async(True):
yield desc
def _pick_endpoint(self, use_authority: bool = False) -> stem.Endpoint:
@@ -620,7 +686,7 @@ class DescriptorDownloader(object):
directories = [auth for auth in stem.directory.Authority.from_cache().values() if auth.nickname not in DIR_PORT_BLACKLIST]
new_endpoints = set([stem.DirPort(directory.address, directory.dir_port) for directory in directories])
- consensus = list(self.get_consensus(document_handler = stem.descriptor.DocumentHandler.DOCUMENT).run())[0] # type: ignore
+ consensus = list(self.get_consensus(document_handler = stem.descriptor.DocumentHandler.DOCUMENT).run())[0]
for desc in consensus.routers.values():
if stem.Flag.V2DIR in desc.flags and desc.dir_port:
@@ -630,7 +696,7 @@ class DescriptorDownloader(object):
self._endpoints = list(new_endpoints)
- return consensus
+ return consensus # type: ignore
def their_server_descriptor(self, **query_args: Any) -> 'stem.descriptor.remote.Query':
"""
@@ -785,7 +851,7 @@ class DescriptorDownloader(object):
# authority key certificates
if consensus_query.validate and consensus_query.document_handler == stem.descriptor.DocumentHandler.DOCUMENT:
- consensus = list(consensus_query.run())[0] # type: ignore
+ consensus = list(consensus_query.run())[0]
key_certs = self.get_key_certificates(**query_args).run()
try:
diff --git a/test/unit/descriptor/remote.py b/test/unit/descriptor/remote.py
index 58c7276a..8635d6bd 100644
--- a/test/unit/descriptor/remote.py
+++ b/test/unit/descriptor/remote.py
@@ -2,6 +2,7 @@
Unit tests for stem.descriptor.remote.
"""
+import time
import unittest
import stem
@@ -87,12 +88,50 @@ class TestDescriptorDownloader(unittest.TestCase):
query = stem.descriptor.remote.get_server_descriptors('9695DFC35FFEB861329B9F1AB04C46397020CE31', start = False)
self.assertTrue(query._downloader_task is None)
- query.stop()
query = stem.descriptor.remote.get_server_descriptors('9695DFC35FFEB861329B9F1AB04C46397020CE31', start = True)
self.assertTrue(query._downloader_task is not None)
query.stop()
+ def test_stop(self):
+ """
+ Stop a complete, in-process, and unstarted query.
+ """
+
+ # stop a completed query
+
+ with mock_download(TEST_DESCRIPTOR):
+ query = stem.descriptor.remote.get_server_descriptors('9695DFC35FFEB861329B9F1AB04C46397020CE31')
+ self.assertTrue(query._loop_thread.is_alive())
+
+ query.run() # complete the query
+ self.assertFalse(query._loop_thread.is_alive())
+ self.assertFalse(query._downloader_task.cancelled())
+
+ query.stop() # nothing to do
+ self.assertFalse(query._loop_thread.is_alive())
+ self.assertFalse(query._downloader_task.cancelled())
+
+ # stop an in-process query
+
+ def pause(*args):
+ time.sleep(5)
+
+ with patch('stem.descriptor.remote.Query._download_from', Mock(side_effect = pause)):
+ query = stem.descriptor.remote.get_server_descriptors('9695DFC35FFEB861329B9F1AB04C46397020CE31')
+
+ query.stop() # terminates in-process query
+ self.assertFalse(query._loop_thread.is_alive())
+ self.assertTrue(query._downloader_task.cancelled())
+
+ # stop an unstarted query
+
+ query = stem.descriptor.remote.get_server_descriptors('9695DFC35FFEB861329B9F1AB04C46397020CE31', start = False)
+
+ query.stop() # nothing to do
+ self.assertTrue(query._loop_thread is None)
+ self.assertTrue(query._downloader_task is None)
+
@mock_download(TEST_DESCRIPTOR)
def test_download(self):
"""
@@ -115,8 +154,6 @@ class TestDescriptorDownloader(unittest.TestCase):
self.assertEqual('9695DFC35FFEB861329B9F1AB04C46397020CE31', desc.fingerprint)
self.assertEqual(TEST_DESCRIPTOR.rstrip(), desc.get_bytes())
- reply.stop()
-
def test_response_header_code(self):
"""
When successful Tor provides a '200 OK' status, but we should accept other 2xx
@@ -165,13 +202,11 @@ class TestDescriptorDownloader(unittest.TestCase):
descriptors = list(query)
self.assertEqual(1, len(descriptors))
self.assertEqual('moria1', descriptors[0].nickname)
- query.stop()
def test_gzip_url_override(self):
query = stem.descriptor.remote.Query(TEST_RESOURCE + '.z', compression = Compression.PLAINTEXT, start = False)
self.assertEqual([stem.descriptor.Compression.GZIP], query.compression)
self.assertEqual(TEST_RESOURCE, query.resource)
- query.stop()
@mock_download(read_resource('compressed_identity'), encoding = 'identity')
def test_compression_plaintext(self):
@@ -187,7 +222,6 @@ class TestDescriptorDownloader(unittest.TestCase):
)
descriptors = list(query)
- query.stop()
self.assertEqual(1, len(descriptors))
self.assertEqual('moria1', descriptors[0].nickname)
@@ -206,7 +240,6 @@ class TestDescriptorDownloader(unittest.TestCase):
)
descriptors = list(query)
- query.stop()
self.assertEqual(1, len(descriptors))
self.assertEqual('moria1', descriptors[0].nickname)
@@ -227,7 +260,6 @@ class TestDescriptorDownloader(unittest.TestCase):
)
descriptors = list(query)
- query.stop()
self.assertEqual(1, len(descriptors))
self.assertEqual('moria1', descriptors[0].nickname)
@@ -248,7 +280,6 @@ class TestDescriptorDownloader(unittest.TestCase):
)
descriptors = list(query)
- query.stop()
self.assertEqual(1, len(descriptors))
self.assertEqual('moria1', descriptors[0].nickname)
@@ -300,8 +331,6 @@ class TestDescriptorDownloader(unittest.TestCase):
self.assertRaises(ValueError, query.run)
- query.stop()
-
def test_query_with_invalid_endpoints(self):
invalid_endpoints = {
'hello': "'h' is a str.",
@@ -330,5 +359,3 @@ class TestDescriptorDownloader(unittest.TestCase):
self.assertEqual(1, len(list(query)))
self.assertEqual(1, len(list(query)))
self.assertEqual(1, len(list(query)))
-
- query.stop()
1
0

08 Nov '20
commit bb0d68bee8477f3963dbbfef9a2713e30bed85e7
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sat Oct 31 14:22:27 2020 -0700
Test that the Query class' 'start' argument works
Reading our Query class I became worried that our 'start' argument fails to get
honored because the start() method is asynchronous (so its invocation returns a
coroutine rather than running it).
I was wrong. It works because as a Synchronous subclass our metaprogramming
converts the call. That said, this is none the less a good thing to check.
---
test/unit/descriptor/remote.py | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/test/unit/descriptor/remote.py b/test/unit/descriptor/remote.py
index 7447fd16..58c7276a 100644
--- a/test/unit/descriptor/remote.py
+++ b/test/unit/descriptor/remote.py
@@ -78,6 +78,21 @@ class TestDescriptorDownloader(unittest.TestCase):
# prevent our mocks from impacting other tests
stem.descriptor.remote.SINGLETON_DOWNLOADER = None
+ @mock_download(TEST_DESCRIPTOR)
+ def test_initial_startup(self):
+ """
+ Check that the query can begin downloading in the background when first
+ constructed.
+ """
+
+ query = stem.descriptor.remote.get_server_descriptors('9695DFC35FFEB861329B9F1AB04C46397020CE31', start = False)
+ self.assertTrue(query._downloader_task is None)
+ query.stop()
+
+ query = stem.descriptor.remote.get_server_descriptors('9695DFC35FFEB861329B9F1AB04C46397020CE31', start = True)
+ self.assertTrue(query._downloader_task is not None)
+ query.stop()
+
@mock_download(TEST_DESCRIPTOR)
def test_download(self):
"""
1
0
commit 6a7ebd9f12f89aa359d2df32cb47a44707a61008
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sun Nov 1 15:15:47 2020 -0800
Cache parsed descriptors within Query
Our Query class cached the bytes we download rather than parsed descriptors.
This could be advantagous if a user downloads descriptors without caring
about the results (unlikely), but otherwise it's all downside...
* Slower: The Query class downloads asynchronously so we can parallelize.
By parsing when the results are requested we serialize that part of the
runtime.
* Memory: Caching bytes reduced the upfront memory usage, but multiplies
it upon retrieving the results because we create fresh Descriptor
objects upon each invocation.
* Duplication: Each invocation of our run method re-parsed the descriptors.
For larger documents like the consensus this duplicates a lot of work.
* Complexity: Caching bytes needlessly complicated the run method.
---
stem/descriptor/remote.py | 67 +++++++++++++++++++----------------------------
1 file changed, 27 insertions(+), 40 deletions(-)
diff --git a/stem/descriptor/remote.py b/stem/descriptor/remote.py
index e8367e8b..136b9d15 100644
--- a/stem/descriptor/remote.py
+++ b/stem/descriptor/remote.py
@@ -338,9 +338,8 @@ class Query(Synchronous):
:var bool fall_back_to_authority: when retrying request issues the last
request to a directory authority if **True**
- :var str content: downloaded descriptor content
+ :var list downloaded: downloaded descriptors, **None** if not yet retrieved
:var Exception error: exception if a problem occured
- :var bool is_done: flag that indicates if our request has finished
:var float start_time: unix timestamp when we first started running
:var dict reply_headers: headers provided in the response,
@@ -413,9 +412,8 @@ class Query(Synchronous):
self.retries = retries
self.fall_back_to_authority = fall_back_to_authority
- self.content = None # type: Optional[bytes]
+ self.downloaded = None # type: Optional[List[stem.descriptor.Descriptor]]
self.error = None # type: Optional[BaseException]
- self.is_done = False
self.download_url = None # type: Optional[str]
self.start_time = None # type: Optional[float]
@@ -470,8 +468,14 @@ class Query(Synchronous):
async def _run(self, suppress: bool) -> AsyncIterator[stem.descriptor.Descriptor]:
with self._downloader_lock:
- self.start()
- await self._downloader_task
+ if not self.downloaded and not self.error:
+ if not self._downloader_task:
+ self.start()
+
+ try:
+ self.downloaded = await self._downloader_task
+ except Exception as exc:
+ self.error = exc
if self.error:
if suppress:
@@ -479,30 +483,8 @@ class Query(Synchronous):
raise self.error
else:
- if self.content is None:
- if suppress:
- return
-
- raise ValueError('BUG: _download_descriptors() finished without either results or an error')
-
- try:
- results = stem.descriptor.parse_file(
- io.BytesIO(self.content),
- self.descriptor_type,
- validate = self.validate,
- document_handler = self.document_handler,
- **self.kwargs
- )
-
- for desc in results:
- yield desc
- except ValueError as exc:
- self.error = exc # encountered a parsing error
-
- if suppress:
- return
-
- raise self.error
+ for desc in self.downloaded:
+ yield desc
async def __aiter__(self) -> AsyncIterator[stem.descriptor.Descriptor]:
async for desc in self._run(True):
@@ -526,7 +508,7 @@ class Query(Synchronous):
else:
return random.choice(self.endpoints)
- async def _download_descriptors(self, retries: int, timeout: Optional[float]) -> None:
+ async def _download_descriptors(self, retries: int, timeout: Optional[float]) -> List['stem.descriptor.Descriptor']:
self.start_time = time.time()
retries = self.retries
@@ -545,17 +527,24 @@ class Query(Synchronous):
try:
response = await asyncio.wait_for(self._download_from(endpoint), time_remaining)
- self.content, self.reply_headers = _http_body_and_headers(response)
+ content, self.reply_headers = _http_body_and_headers(response)
- self.is_done = True
self.runtime = time.time() - self.start_time
log.trace('Descriptors retrieved from %s in %0.2fs' % (downloaded_from, self.runtime))
- return
+
+ try:
+ return list(stem.descriptor.parse_file(
+ io.BytesIO(content),
+ self.descriptor_type,
+ validate = self.validate,
+ document_handler = self.document_handler,
+ **self.kwargs
+ ))
+ except ValueError:
+ raise # parsing failed
except asyncio.TimeoutError as exc:
- self.is_done = True
- self.error = stem.DownloadTimeout(downloaded_from, exc, sys.exc_info()[2], self.timeout)
- return
+ raise stem.DownloadTimeout(downloaded_from, exc, sys.exc_info()[2], self.timeout)
except:
exception = sys.exc_info()[1]
retries -= 1
@@ -568,9 +557,7 @@ class Query(Synchronous):
else:
log.debug("Failed to download descriptors from '%s': %s" % (self.download_url, exception))
- self.is_done = True
- self.error = exception
- return
+ raise
async def _download_from(self, endpoint: stem.Endpoint) -> bytes:
http_request = '\r\n'.join((
1
0