tbb-commits
Threads by month
- ----- 2025 -----
- 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 2017
- 3 participants
- 81 discussions

18 Jan '17
commit 2db14ba274f3fc1fc8a1ddaba4ca56ba4ea6e96e
Author: Georg Koppen <gk(a)torproject.org>
Date: Wed Jan 18 12:02:15 2017 +0000
Bump NoScript version to 2.9.5.3
---
gitian/versions.alpha | 4 ++--
gitian/versions.nightly | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index 14ed662..50c2158 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -77,7 +77,7 @@ NSIS_VER=2.51
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
GMP_PACKAGE=gmp-${GMP_VER}.tar.bz2
-NOSCRIPT_PACKAGE=noscript_security_suite-2.9.5.2-fx+sm.xpi
+NOSCRIPT_PACKAGE=noscript_security_suite-2.9.5.3-fx+sm.xpi
TOOLCHAIN4_OLD_PACKAGE=multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz
CCTOOLS_PACKAGE=cctools.tar.gz
OSXSDK_PACKAGE=MacOSX10.7.sdk.tar.gz
@@ -111,7 +111,7 @@ GMP_HASH=752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160
OSXSDK_HASH=da77bb0003fcca5ea8c4e8cb2da8828ded750c54afdcac29ec6f3b46ad5e3adf
OSXSDK_OLD_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
TOOLCHAIN4_OLD_HASH=65c1b2d302358a6b95a26c6828a66908a199276193bb0b268f2dcc1a997731e9
-NOSCRIPT_HASH=ed71ca922790e81bc5e8c6a87bb81f394a38676ac37d1fba518a6a428d128dd5
+NOSCRIPT_HASH=ce9779a3a5a2574b958f8e4d079a99d43a8f84193bef52c587c704ed81c2fbbd
CCTOOLS_HASH=e908fdebc2886ee5491ebfc7e7950af451b3c4e2439c2d7a923ed06ad05113e4
MSVCR100_HASH=1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067
PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
diff --git a/gitian/versions.nightly b/gitian/versions.nightly
index 1b1b346..0ca5ed6 100755
--- a/gitian/versions.nightly
+++ b/gitian/versions.nightly
@@ -84,7 +84,7 @@ NSIS_VER=2.51
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
GMP_PACKAGE=gmp-${GMP_VER}.tar.bz2
-NOSCRIPT_PACKAGE=noscript_security_suite-2.9.5.2-fx+sm.xpi
+NOSCRIPT_PACKAGE=noscript_security_suite-2.9.5.3-fx+sm.xpi
TOOLCHAIN4_OLD_PACKAGE=multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz
CCTOOLS_PACKAGE=cctools.tar.gz
OSXSDK_PACKAGE=MacOSX10.7.sdk.tar.gz
@@ -118,7 +118,7 @@ GMP_HASH=752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160
OSXSDK_HASH=da77bb0003fcca5ea8c4e8cb2da8828ded750c54afdcac29ec6f3b46ad5e3adf
OSXSDK_OLD_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
TOOLCHAIN4_OLD_HASH=65c1b2d302358a6b95a26c6828a66908a199276193bb0b268f2dcc1a997731e9
-NOSCRIPT_HASH=ed71ca922790e81bc5e8c6a87bb81f394a38676ac37d1fba518a6a428d128dd5
+NOSCRIPT_HASH=ce9779a3a5a2574b958f8e4d079a99d43a8f84193bef52c587c704ed81c2fbbd
CCTOOLS_HASH=e908fdebc2886ee5491ebfc7e7950af451b3c4e2439c2d7a923ed06ad05113e4
MSVCR100_HASH=1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067
PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
1
0

[torbutton/master] Bug 21243: Add links to es, fr, pt Tor Browser manual
by gk@torproject.org 18 Jan '17
by gk@torproject.org 18 Jan '17
18 Jan '17
commit 4e9c7c8ba121e0ec39d65deefd5cea3657dcc27d
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Tue Jan 17 17:42:12 2017 -0800
Bug 21243: Add links to es, fr, pt Tor Browser manual
---
src/chrome/content/menu-overlay.xul | 8 ++++----
src/chrome/content/torbutton.js | 10 +++-------
src/chrome/locale/en/aboutTor.dtd | 3 ++-
src/chrome/locale/en/torbutton.dtd | 2 --
src/chrome/locale/es/aboutTor.dtd | 3 ++-
src/chrome/locale/fr/aboutTor.dtd | 3 ++-
src/chrome/locale/pt-BR/aboutTor.dtd | 3 ++-
7 files changed, 15 insertions(+), 17 deletions(-)
diff --git a/src/chrome/content/menu-overlay.xul b/src/chrome/content/menu-overlay.xul
index 8067b5c..4970114 100644
--- a/src/chrome/content/menu-overlay.xul
+++ b/src/chrome/content/menu-overlay.xul
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- Mode: HTML -*- -->
-<!DOCTYPE overlay SYSTEM "chrome://torbutton/locale/torbutton.dtd">
+<!DOCTYPE overlay SYSTEM "chrome://torbutton/locale/aboutTor.dtd">
<overlay id="torbutton-menu-overlay"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
@@ -20,8 +20,8 @@
<menuitem name="torBrowserUserManual"
id="torBrowserUserManual"
position="1"
- label="&torbutton.torbrowser_user_manual.label;"
- accesskey="&torbutton.torbrowser_user_manual.accesskey;"
- oncommand="torbutton_open_torbrowser_user_manual()" />
+ label="&aboutTor.torbrowser_user_manual.label;"
+ accesskey="&aboutTor.torbrowser_user_manual.accesskey;"
+ oncommand="gBrowser.selectedTab = gBrowser.addTab('&aboutTor.torbrowser_user_manual.link;')" />
</menupopup>
</overlay>
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index dacc43e..62b9371 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -2440,15 +2440,11 @@ function torbutton_update_noscript_button()
}, 0);
}
-// Opens the Tor Browser User Manual in a new tab
-function torbutton_open_torbrowser_user_manual() {
- gBrowser.selectedTab = gBrowser.addTab("https://tb-manual.torproject.org");
-}
-
// Returns true if we should show the tor browser manual.
function torbutton_show_torbrowser_manual() {
- let locale = torbutton_get_general_useragent_locale();
- return locale.startsWith("en");
+ let availableLocales = ["en", "es", "fr", "pt"];
+ let shortLocale = torbutton_get_general_useragent_locale().substring(0, 2);
+ return availableLocales.indexOf(shortLocale) >= 0;
}
// Makes sure the item in the Help Menu and the link in about:tor
diff --git a/src/chrome/locale/en/aboutTor.dtd b/src/chrome/locale/en/aboutTor.dtd
index 4385ca8..3950ff9 100644
--- a/src/chrome/locale/en/aboutTor.dtd
+++ b/src/chrome/locale/en/aboutTor.dtd
@@ -29,8 +29,9 @@
<!ENTITY aboutTor.whatnextAnswer.label "Tor is NOT all you need to browse anonymously! You may need to change some of your browsing habits to ensure your identity stays safe.">
<!ENTITY aboutTor.whatnext.label "Tips On Staying Anonymous »">
<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser User Manual »">
-<!ENTITY aboutTor.torbrowser_user_manual.link "https://tb-manual.torproject.org">
+<!ENTITY aboutTor.torbrowser_user_manual.link "https://tb-manual.torproject.org/en-US">
<!ENTITY aboutTor.helpInfo1.label "You Can Help!">
<!ENTITY aboutTor.helpInfo2.label "There are many ways you can help make the Tor Network faster and stronger:">
<!ENTITY aboutTor.helpInfo3.label "Run a Tor Relay Node »">
diff --git a/src/chrome/locale/en/torbutton.dtd b/src/chrome/locale/en/torbutton.dtd
index c67ec6e..97a994f 100644
--- a/src/chrome/locale/en/torbutton.dtd
+++ b/src/chrome/locale/en/torbutton.dtd
@@ -59,5 +59,3 @@
<!ENTITY torbutton.prefs.sec_webfonts_desc "Some fonts and icons may display incorrectly.">
<!ENTITY torbutton.prefs.sec_webfonts_desc_tooltip "Website-provided font files are blocked.">
<!ENTITY torbutton.circuit_display.title "Tor circuit for this site">
-<!ENTITY torbutton.torbrowser_user_manual.label "Tor Browser User Manual">
-<!ENTITY torbutton.torbrowser_user_manual.accesskey "M">
diff --git a/src/chrome/locale/es/aboutTor.dtd b/src/chrome/locale/es/aboutTor.dtd
index 6983c83..0fddda4 100644
--- a/src/chrome/locale/es/aboutTor.dtd
+++ b/src/chrome/locale/es/aboutTor.dtd
@@ -29,8 +29,9 @@
<!ENTITY aboutTor.whatnextAnswer.label "¡Tor NO es todo lo que necesita para navegar anónimamente! Puede necesitar cambiar alguno de sus hábitos de navegación para asegurar que su identidad permanezca segura.">
<!ENTITY aboutTor.whatnext.label "Consejos para permenecer anónimo »">
<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
<!ENTITY aboutTor.torbrowser_user_manual.label "Manual de usuario del Navegador Tor »">
-<!ENTITY aboutTor.torbrowser_user_manual.link "https://tb-manual.torproject.org">
+<!ENTITY aboutTor.torbrowser_user_manual.link "https://tb-manual.torproject.org/es-ES">
<!ENTITY aboutTor.helpInfo1.label "¡Usted puede ayudar!">
<!ENTITY aboutTor.helpInfo2.label "Hay muchas formas en que las puede ayudar a hacer la red Tor más rápida y fuerte.">
<!ENTITY aboutTor.helpInfo3.label "Ejecutar un nodo de repetidor Tor »">
diff --git a/src/chrome/locale/fr/aboutTor.dtd b/src/chrome/locale/fr/aboutTor.dtd
index ad72a27..c2e990b 100644
--- a/src/chrome/locale/fr/aboutTor.dtd
+++ b/src/chrome/locale/fr/aboutTor.dtd
@@ -29,8 +29,9 @@
<!ENTITY aboutTor.whatnextAnswer.label "Tor n'est PAS tout ce dont vous avez besoin pour naviguer anonymement! Vous aurez peut-être à changer certaines de vos habitudes de navigation pour garder votre identité en sécurité.">
<!ENTITY aboutTor.whatnext.label "Conseils pour rester anonyme »">
<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html#warning">
+<!ENTITY aboutTor.torbrowser_user_manual.accesskey "G">
<!ENTITY aboutTor.torbrowser_user_manual.label "Le guide d'utilisation du navigateur Tor »">
-<!ENTITY aboutTor.torbrowser_user_manual.link "https://tb-manual.torproject.org">
+<!ENTITY aboutTor.torbrowser_user_manual.link "https://tb-manual.torproject.org/fr">
<!ENTITY aboutTor.helpInfo1.label "Vous pouvez aider !">
<!ENTITY aboutTor.helpInfo2.label "Vous pouvez aider à rendre le réseau Tor plus rapide et plus puissant de plusieurs façons :">
<!ENTITY aboutTor.helpInfo3.label "Faire tourner un nœud relais Tor »">
diff --git a/src/chrome/locale/pt-BR/aboutTor.dtd b/src/chrome/locale/pt-BR/aboutTor.dtd
index 04548e0..7991929 100644
--- a/src/chrome/locale/pt-BR/aboutTor.dtd
+++ b/src/chrome/locale/pt-BR/aboutTor.dtd
@@ -29,8 +29,9 @@
<!ENTITY aboutTor.whatnextAnswer.label "Tor NÃO é tudo o que você precisa para navegar anonimamente! Para isso, você precisará mudar alguns hábitos de utilização da Internet, que garantirão a proteção da sua identidade. ">
<!ENTITY aboutTor.whatnext.label "Dicas para garantir seu anonimato"">
<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
<!ENTITY aboutTor.torbrowser_user_manual.label "Manual de Uso do Navegador Tor » ">
-<!ENTITY aboutTor.torbrowser_user_manual.link "https://tb-manual.torproject.org">
+<!ENTITY aboutTor.torbrowser_user_manual.link "https://tb-manual.torproject.org/pt-BR">
<!ENTITY aboutTor.helpInfo1.label "Você pode ajudar!">
<!ENTITY aboutTor.helpInfo2.label "Existem várias maneiras de ajudar a rede Tor a tornar-se mais rápida e eficaz:">
<!ENTITY aboutTor.helpInfo3.label "Rodar um Nó de Retransmissor Tor »">
1
0

[tor-browser/tor-browser-45.6.0esr-6.5-1] Bug 20589: Adding new MAR signing key
by gk@torproject.org 18 Jan '17
by gk@torproject.org 18 Jan '17
18 Jan '17
commit d69306e9517d718a6019b6f4814ef93591185895
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Jan 12 09:43:22 2017 +0000
Bug 20589: Adding new MAR signing key
We make the certificate for the secondary key the new primary one,
partly due to #15532 and add the certificate for the new key as the
secondary one.
---
toolkit/mozapps/update/updater/release_primary.der | Bin 1229 -> 1229 bytes
toolkit/mozapps/update/updater/release_secondary.der | Bin 1229 -> 1229 bytes
2 files changed, 0 insertions(+), 0 deletions(-)
diff --git a/toolkit/mozapps/update/updater/release_primary.der b/toolkit/mozapps/update/updater/release_primary.der
index 542fb24..49a7c01 100644
Binary files a/toolkit/mozapps/update/updater/release_primary.der and b/toolkit/mozapps/update/updater/release_primary.der differ
diff --git a/toolkit/mozapps/update/updater/release_secondary.der b/toolkit/mozapps/update/updater/release_secondary.der
index 49a7c01..cce7860 100644
Binary files a/toolkit/mozapps/update/updater/release_secondary.der and b/toolkit/mozapps/update/updater/release_secondary.der differ
1
0
commit 7439de870b396a31bacddf7968e2a1c24ad523c7
Author: Georg Koppen <gk(a)torproject.org>
Date: Tue Jan 17 12:13:46 2017 +0000
Fold in missing 1.9.5 changelogs
---
src/CHANGELOG | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/src/CHANGELOG b/src/CHANGELOG
index 8120096..62901a5 100644
--- a/src/CHANGELOG
+++ b/src/CHANGELOG
@@ -1,6 +1,9 @@
1.9.6.9
* Bug 20947: Donation banner improvements
+1.9.5.13
+ * Bug 20947: Donation banner improvements
+
1.9.6.8
* Bug 16622: Timezone spoofing moved to tor-browser.git
* Bug 20701: Allow the directory listing stylesheet in the content policy
@@ -27,6 +30,10 @@
* Bug 20388+20399+20394: Code clean-up
* Translation updates
+1.9.5.12
+ * Bug 20414: Add donation banner on about:tor for 2016 campaign
+ * Translation updates
+
1.9.6.4
* Bug 17334: Move referrer spoofing for .onion domains into tor-browser.git
* Bug 17767: Make "JavaScript disabled" more visible in Security Slider
@@ -40,6 +47,10 @@
* Bug 14271: Make Torbutton work with Unix Domain Socket option
* Translation updates
+1.9.5.7
+ * Bug 18589: Clear site security settings during New Identity
+ * Bug 19906: "Maximizing Tor Browser" Notification can exist multiple times
+
1.9.6.1
* Bug 19206: Avoid SOCKS auth and NEWNYM collisions when sharing a tor client
* Bug 19417: Disable asm.js (but add code to clear on New Identity if enabled)
@@ -47,6 +58,13 @@
* Bug 19273: Improve external app launch handling and associated warnings
* Bug 8725: Block addon resource and url fingerprinting with nsIContentPolicy
+1.9.5.6
+ * Bug 19417: Disable asmjs for now
+ * Bug 19689: Use proper parent windows for plugin prompt
+
+1.9.5.5
+ * Bug 19417: Clear asmjscache
+
1.9.6
* Bug 18743: Pref to hide 'Sign in to Sync' button in hamburger menu
* Bug 18905: Hide unusable items from help menu
1
0

17 Jan '17
commit 5144d4e8d7156aae222a0ea4d57425d387eb62e9
Author: Georg Koppen <gk(a)torproject.org>
Date: Tue Jan 17 11:17:50 2017 +0000
Fix typos in macOS build script
---
gitian/mkbundle-mac.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gitian/mkbundle-mac.sh b/gitian/mkbundle-mac.sh
index eaec986..ed05b22 100755
--- a/gitian/mkbundle-mac.sh
+++ b/gitian/mkbundle-mac.sh
@@ -97,7 +97,7 @@ cd mac-desktop.dmg
rm -f $GITIAN_DIR/inputs/dmg-desktop.tar.xz
$WRAPPER_DIR/build-helpers/dtar.sh $GITIAN_DIR/inputs/dmg-desktop.tar.xz .
cd ../mac-applications.dmg
-rm -f $GITIAN_DIR/inputs/dmg-applications.tar-gz
+rm -f $GITIAN_DIR/inputs/dmg-applications.tar.xz
$WRAPPER_DIR/build-helpers/dtar.sh $GITIAN_DIR/inputs/dmg-applications.tar.xz .
cd $WRAPPER_DIR
1
0

[tor-browser-bundle/maint-6.5] No sandboxing on the stable series yet
by gk@torproject.org 17 Jan '17
by gk@torproject.org 17 Jan '17
17 Jan '17
commit 739843fe174510efe4cef427daab1f32b01cdcf4
Author: Georg Koppen <gk(a)torproject.org>
Date: Tue Jan 17 11:01:15 2017 +0000
No sandboxing on the stable series yet
---
gitian/versions.alpha | 3 ---
1 file changed, 3 deletions(-)
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index a8a08c1..585037b 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -41,9 +41,6 @@ GO_X_CRYPTO_TAG=4ed45ec682102c643324fae5dff8dab085b6c300
GO_X_NET_TAG=7dbad50ab5b31073856416cdcfeb2796d682f844
OBFS4_TAG=obfs4proxy-0.0.5
NOTOFONTS_TAG=720e34851382ee3c1ef024d8dffb68ffbfb234c2
-ERRORS_TAG=248dadf4e9068a0b3e79f02ed0a610d935de5302
-GB_TAG=06cc925cce6592e922dcc4839a8b44feb384e71e
-SANDBOX_TAG=sandboxed-tor-browser-0.0.2
GITIAN_TAG=tor-browser-builder-4-2
1
0

17 Jan '17
commit cc1fd58f8fc99d580e5d032ac113e08409f786be
Author: Georg Koppen <gk(a)torproject.org>
Date: Wed Jan 11 10:31:52 2017 +0000
Bug 21194: Show snowflake in the circuit display
---
src/modules/tor-control-port.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/modules/tor-control-port.js b/src/modules/tor-control-port.js
index b3d431a..3491efc 100644
--- a/src/modules/tor-control-port.js
+++ b/src/modules/tor-control-port.js
@@ -486,8 +486,8 @@ info.bridgeParser = function(bridgeLine) {
// Several bridge types have a similar format:
} else {
result.type = tokens[0];
- if (["flashproxy", "fte", "meek", "obfs3", "obfs4", "scramblesuit"]
- .indexOf(result.type) >= 0) {
+ if (["flashproxy", "fte", "meek", "obfs3", "obfs4", "scramblesuit",
+ "snowflake"].indexOf(result.type) >= 0) {
[result.address, result.ID] = tokens.slice(1);
}
}
1
0

[tor-launcher/maint-0.2.10] Bug 20951: Back out Unix domain socket related patches for Tor Browser 6.5
by gk@torproject.org 17 Jan '17
by gk@torproject.org 17 Jan '17
17 Jan '17
commit d99650b338f23d824cbd9d3cc91559ba607a465e
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Jan 10 12:03:41 2017 -0500
Bug 20951: Back out Unix domain socket related patches for Tor Browser 6.5
Revert the following commits, preserving the _strUnescape() fixes that
were made as part of Bug 20111:
8871259c966755233b134a5ddb2b4926539d25c6
Bug 14272: Make Tor Launcher work with Unix Domain Socket option
32ddac7015be571c336be686b4f901103d0d36f6
Fix typo
fa4e114a20067810af0c5cc6a57aa6e849386418
fixup! Bug 14272: Make Tor Launcher work with Unix Domain Socket option
8ca52414916c3d8bc2a2974017d759901ddc1736
Bug 20111: use Unix domain sockets for SOCKS port by default
4dd8f6130f931616cf014e0ded444c30e04c8bad
Bug 20185: Avoid using Unix domain socket paths that are too long
---
src/components/tl-process.js | 290 +++++++++++++++++++++-----
src/components/tl-protocol.js | 222 ++------------------
src/defaults/preferences/prefs.js | 25 +--
src/modules/tl-util.jsm | 415 +-------------------------------------
4 files changed, 254 insertions(+), 698 deletions(-)
diff --git a/src/components/tl-process.js b/src/components/tl-process.js
index 717c338..48be93d 100644
--- a/src/components/tl-process.js
+++ b/src/components/tl-process.js
@@ -16,6 +16,8 @@ XPCOMUtils.defineLazyModuleGetter(this, "TorLauncherUtil",
"resource://torlauncher/modules/tl-util.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "TorLauncherLogger",
"resource://torlauncher/modules/tl-logger.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "FileUtils",
+ "resource://gre/modules/FileUtils.jsm");
function TorProcessService()
{
@@ -29,6 +31,8 @@ TorProcessService.prototype =
{
kContractID : "@torproject.org/torlauncher-process-service;1",
kServiceName : "Tor Launcher Process Service",
+ kThunderbirdID: "{3550f703-e582-4d05-9a08-453d09bdfdc6}",
+ kInstantbirdID: "{33cb9019-c295-46dd-be21-8c4936574bee}",
kClassID: Components.ID("{FE7B4CAF-BCF4-4848-8BFF-EFA66C9AFDA1}"),
kTorLauncherExtPath: "tor-launcher(a)torproject.org", // This could vary.
@@ -142,11 +146,7 @@ TorProcessService.prototype =
this.mObsSvc.notifyObservers(null, "TorProcessExited", null);
- if (this.mIsQuitting)
- {
- TorLauncherUtil.cleanupTempDirectories();
- }
- else
+ if (!this.mIsQuitting)
{
this.mProtocolSvc.TorCleanupConnection();
@@ -311,6 +311,11 @@ TorProcessService.prototype =
mProtocolSvc: null,
mTorProcess: null, // nsIProcess
mTorProcessStartTime: null, // JS Date.now()
+ // mIsUserDataOutsideOfAppDir is true when TorBrowser-Data is used.
+ // (cached; access via this._isUserDataOutsideOfAppDir)
+ mIsUserDataOutsideOfAppDir: undefined,
+ mAppDir: null, // nsIFile (cached; access via this._appDir)
+ mDataDir: null, // nsIFile (cached; access via this._dataDir)
mControlConnTimer: null,
mControlConnDelayMS: 0,
mQuitSoon: false, // Quit was requested by the user; do so soon.
@@ -332,15 +337,11 @@ TorProcessService.prototype =
// Get the Tor data directory first so it is created before we try to
// construct paths to files that will be inside it.
- var dataDir = TorLauncherUtil.getTorFile("tordatadir", true);
- var exeFile = TorLauncherUtil.getTorFile("tor", false);
- var torrcFile = TorLauncherUtil.getTorFile("torrc", true);
- var torrcDefaultsFile =
- TorLauncherUtil.getTorFile("torrc-defaults", false);
+ var dataDir = this._getTorFile("tordatadir", true);
+ var exeFile = this._getTorFile("tor", false);
+ var torrcFile = this._getTorFile("torrc", true);
+ var torrcDefaultsFile = this._getTorFile("torrc-defaults", false);
var hashedPassword = this.mProtocolSvc.TorGetPassword(true);
- var controlIPCFile = this.mProtocolSvc.TorGetControlIPCFile();
- var controlPort = this.mProtocolSvc.TorGetControlPort();
- var socksPortInfo = this.mProtocolSvc.TorGetSOCKSPortInfo();
var detailsKey;
if (!exeFile)
@@ -362,6 +363,7 @@ TorProcessService.prototype =
return;
}
+
// The geoip and geoip6 files are in the same directory as torrc-defaults.
var geoipFile = torrcDefaultsFile.clone();
geoipFile.leafName = "geoip";
@@ -386,40 +388,6 @@ TorProcessService.prototype =
args.push("HashedControlPassword");
args.push(hashedPassword);
- // Include a ControlPort argument to support switching between
- // a TCP port and an IPC port (e.g., a Unix domain socket).
- let controlPortArg;
- if (controlIPCFile)
- controlPortArg = this._ipcPortArg(controlIPCFile);
- else if (controlPort)
- controlPortArg = "" + controlPort;
- if (controlPortArg)
- {
- args.push("ControlPort");
- args.push(controlPortArg);
- }
-
- // Include a SocksPort argument to support switching between
- // a TCP port and an IPC port (e.g., a Unix domain socket).
- if (socksPortInfo)
- {
- let socksPortArg;
- if (socksPortInfo.ipcFile)
- socksPortArg = this._ipcPortArg(socksPortInfo.ipcFile)
- else if (socksPortInfo.host && (socksPortInfo.port != 0))
- socksPortArg = socksPortInfo.host + ':' + socksPortInfo.port;
-
- if (socksPortArg)
- {
- let socksPortFlags = TorLauncherUtil.getCharPref(
- "extensions.torlauncher.socks_port_flags");
- if (socksPortFlags)
- socksPortArg += ' ' + socksPortFlags;
- args.push("SocksPort");
- args.push(socksPortArg);
- }
- }
-
var pid = this._getpid();
if (0 != pid)
{
@@ -489,13 +457,6 @@ TorProcessService.prototype =
}
}, // _startTor()
- // Return a ControlPort or SocksPort argument for aIPCFile (an nsIFile).
- // The result is unix:/path or unix:"/path with spaces" with appropriate
- // C-style escaping within the path portion.
- _ipcPortArg: function(aIPCFile)
- {
- return "unix:" + this.mProtocolSvc.TorEscapeString(aIPCFile.path);
- },
_controlTor: function()
{
@@ -715,6 +676,227 @@ TorProcessService.prototype =
return argsArray;
},
+ // Returns an nsIFile.
+ // If aCreate is true and the file doesn't exist, it is created.
+ _getTorFile: function(aTorFileType, aCreate)
+ {
+ if (!aTorFileType)
+ return null;
+
+ let isRelativePath = true;
+ let isUserData = (aTorFileType != "tor") &&
+ (aTorFileType != "torrc-defaults");
+ let prefName = "extensions.torlauncher." + aTorFileType + "_path";
+ let path = TorLauncherUtil.getCharPref(prefName);
+ if (path)
+ {
+ let re = (TorLauncherUtil.isWindows) ? /^[A-Za-z]:\\/ : /^\//;
+ isRelativePath = !re.test(path);
+ }
+ else
+ {
+ // Get default path.
+ if (this._isUserDataOutsideOfAppDir)
+ {
+ // This block is used for the TorBrowser-Data/ case.
+ if (TorLauncherUtil.isWindows)
+ {
+ if ("tor" == aTorFileType)
+ path = "TorBrowser\\Tor\\tor.exe";
+ else if ("torrc-defaults" == aTorFileType)
+ path = "TorBrowser\\Tor\\torrc-defaults";
+ else if ("torrc" == aTorFileType)
+ path = "Tor\\torrc";
+ else if ("tordatadir" == aTorFileType)
+ path = "Tor";
+ }
+ else if (TorLauncherUtil.isMac)
+ {
+ if ("tor" == aTorFileType)
+ path = "Contents/Resources/TorBrowser/Tor/tor";
+ else if ("torrc-defaults" == aTorFileType)
+ path = "Contents/Resources/TorBrowser/Tor/torrc-defaults";
+ else if ("torrc" == aTorFileType)
+ path = "Tor/torrc";
+ else if ("tordatadir" == aTorFileType)
+ path = "Tor";
+ }
+ else // Linux and others.
+ {
+ if ("tor" == aTorFileType)
+ path = "TorBrowser/Tor/tor";
+ else if ("torrc-defaults" == aTorFileType)
+ path = "TorBrowser/Tor/torrc-defaults";
+ else if ("torrc" == aTorFileType)
+ path = "Tor/torrc";
+ else if ("tordatadir" == aTorFileType)
+ path = "Tor";
+ }
+ }
+ else if (TorLauncherUtil.isWindows)
+ {
+ // This block is used for the non-TorBrowser-Data/ case.
+ if ("tor" == aTorFileType)
+ path = "Tor\\tor.exe";
+ else if ("torrc-defaults" == aTorFileType)
+ path = "Data\\Tor\\torrc-defaults";
+ else if ("torrc" == aTorFileType)
+ path = "Data\\Tor\\torrc";
+ else if ("tordatadir" == aTorFileType)
+ path = "Data\\Tor";
+ }
+ else // Linux, Mac OS and others.
+ {
+ // This block is also used for the non-TorBrowser-Data/ case.
+ if ("tor" == aTorFileType)
+ path = "Tor/tor";
+ else if ("torrc-defaults" == aTorFileType)
+ path = "Data/Tor/torrc-defaults";
+ else if ("torrc" == aTorFileType)
+ path = "Data/Tor/torrc";
+ else if ("tordatadir" == aTorFileType)
+ path = "Data/Tor";
+ }
+ }
+
+ if (!path)
+ return null;
+
+ try
+ {
+ let f;
+ if (isRelativePath)
+ {
+ // Turn 'path' into an absolute path.
+ if (this._isUserDataOutsideOfAppDir)
+ {
+ let baseDir = isUserData ? this._dataDir : this._appDir;
+ f = baseDir.clone();
+ }
+ else
+ {
+ f = this._appDir.clone();
+ f.append("TorBrowser");
+ }
+ f.appendRelativePath(path);
+ }
+ else
+ {
+ f = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
+ f.initWithPath(path);
+ }
+
+ if (!f.exists() && aCreate)
+ {
+ try
+ {
+ if ("tordatadir" == aTorFileType)
+ f.create(f.DIRECTORY_TYPE, FileUtils.PERMS_DIRECTORY);
+ else
+ f.create(f.NORMAL_FILE_TYPE, FileUtils.PERMS_FILE);
+ }
+ catch (e)
+ {
+ TorLauncherLogger.safelog(4, "unable to create " + f.path + ": ", e);
+ return null;
+ }
+ }
+
+ if (f.exists())
+ {
+ try { f.normalize(); } catch(e) {}
+
+ return f;
+ }
+
+ TorLauncherLogger.log(4, aTorFileType + " file not found: " + f.path);
+ }
+ catch(e)
+ {
+ TorLauncherLogger.safelog(4, "_getTorFile " + aTorFileType +
+ " failed for " + path + ": ", e);
+ }
+
+ return null; // File not found or error (logged above).
+ }, // _getTorFile()
+
+ get _isUserDataOutsideOfAppDir()
+ {
+ if (this.mIsUserDataOutsideOfAppDir == undefined)
+ {
+ // Determine if we are using a "side-by-side" data model by checking
+ // whether the user profile is outside of the app directory.
+ try
+ {
+ let ds = Cc["@mozilla.org/file/directory_service;1"]
+ .getService(Ci.nsIProperties);
+ let profDir = ds.get("ProfD", Ci.nsIFile);
+ this.mIsUserDataOutsideOfAppDir = !this._appDir.contains(profDir);
+ }
+ catch (e)
+ {
+ this.mIsUserDataOutsideOfAppDir = false;
+ }
+ }
+
+ return this.mIsUserDataOutsideOfAppDir;
+ }, // get _isUserDataOutsideOfAppDir
+
+ // Returns an nsIFile that points to the application directory.
+ // May throw.
+ get _appDir()
+ {
+ if (!this.mAppDir)
+ {
+ let topDir = Cc["@mozilla.org/file/directory_service;1"]
+ .getService(Ci.nsIProperties).get("CurProcD", Ci.nsIFile);
+ let appInfo = Cc["@mozilla.org/xre/app-info;1"]
+ .getService(Ci.nsIXULAppInfo);
+ // On Linux and Windows, we want to return the Browser/ directory.
+ // Because topDir ("CurProcD") points to Browser/browser on those
+ // platforms, we need to go up one level.
+ // On Mac OS, we want to return the TorBrowser.app/ directory.
+ // Because topDir points to Contents/Resources/browser on Mac OS,
+ // we need to go up 3 levels.
+ let tbbBrowserDepth = (TorLauncherUtil.isMac) ? 3 : 1;
+ if ((appInfo.ID == this.kThunderbirdID) ||
+ (appInfo.ID == this.kInstantbirdID))
+ {
+ // On Thunderbird/Instantbird, the topDir is the root dir and not
+ // browser/, so we need to iterate one level less than Firefox.
+ --tbbBrowserDepth;
+ }
+
+ while (tbbBrowserDepth > 0)
+ {
+ let didRemove = (topDir.leafName != ".");
+ topDir = topDir.parent;
+ if (didRemove)
+ tbbBrowserDepth--;
+ }
+
+ this.mAppDir = topDir;
+ }
+
+ return this.mAppDir;
+ }, // get _appDir
+
+ // Returns an nsIFile that points to the TorBrowser-Data/ directory.
+ // This function is only used when this._isUserDataOutsideOfAppDir == true.
+ // May throw.
+ get _dataDir()
+ {
+ if (!this.mDataDir)
+ {
+ let ds = Cc["@mozilla.org/file/directory_service;1"]
+ .getService(Ci.nsIProperties);
+ let profDir = ds.get("ProfD", Ci.nsIFile);
+ this.mDataDir = profDir.parent.parent;
+ }
+
+ return this.mDataDir;
+ }, // get _dataDir
+
_getpid: function()
{
// Use nsIXULRuntime.processID if it is available.
diff --git a/src/components/tl-protocol.js b/src/components/tl-protocol.js
index 12f3910..581327e 100644
--- a/src/components/tl-protocol.js
+++ b/src/components/tl-protocol.js
@@ -17,8 +17,6 @@ XPCOMUtils.defineLazyModuleGetter(this, "TorLauncherUtil",
"resource://torlauncher/modules/tl-util.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "TorLauncherLogger",
"resource://torlauncher/modules/tl-logger.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "FileUtils",
- "resource://gre/modules/FileUtils.jsm");
function TorProtocolService()
@@ -33,48 +31,28 @@ function TorProtocolService()
try
{
- let isWindows = TorLauncherUtil.isWindows;
- let env = Cc["@mozilla.org/process/environment;1"]
+ var env = Cc["@mozilla.org/process/environment;1"]
.getService(Ci.nsIEnvironment);
- // Determine how Tor Launcher will connect to the Tor control port.
- // Environment variables get top priority followed by preferences.
- if (!isWindows && env.exists("TOR_CONTROL_IPC_PATH"))
+
+ if (env.exists("TOR_CONTROL_HOST"))
+ this.mControlHost = env.get("TOR_CONTROL_HOST");
+ else
{
- let ipcPath = env.get("TOR_CONTROL_IPC_PATH");
- this.mControlIPCFile = new FileUtils.File(ipcPath);
+ this.mControlHost = TorLauncherUtil.getCharPref(
+ "extensions.torlauncher.control_host", "127.0.0.1");
}
+
+ if (env.exists("TOR_CONTROL_PORT"))
+ this.mControlPort = parseInt(env.get("TOR_CONTROL_PORT"), 10);
else
{
- // Check for TCP host and port environment variables.
- if (env.exists("TOR_CONTROL_HOST"))
- this.mControlHost = env.get("TOR_CONTROL_HOST");
- if (env.exists("TOR_CONTROL_PORT"))
- this.mControlPort = parseInt(env.get("TOR_CONTROL_PORT"), 10);
-
- let useIPC = !isWindows && TorLauncherUtil.getBoolPref(
- "extensions.torlauncher.control_port_use_ipc", true);
- if (!this.mControlHost && !this.mControlPort && useIPC)
- this.mControlIPCFile = TorLauncherUtil.getTorFile("control_ipc", false);
- else
- {
- if (!this.mControlHost)
- {
- this.mControlHost = TorLauncherUtil.getCharPref(
- "extensions.torlauncher.control_host", "127.0.0.1");
- }
- if (!this.mControlPort)
- {
- this.mControlPort = TorLauncherUtil.getIntPref(
+ this.mControlPort = TorLauncherUtil.getIntPref(
"extensions.torlauncher.control_port", 9151);
- }
- }
}
// Populate mControlPassword so it is available when starting tor.
if (env.exists("TOR_CONTROL_PASSWD"))
- {
this.mControlPassword = env.get("TOR_CONTROL_PASSWD");
- }
else if (env.exists("TOR_CONTROL_COOKIE_AUTH_FILE"))
{
// TODO: test this code path (TOR_CONTROL_COOKIE_AUTH_FILE).
@@ -85,117 +63,6 @@ function TorProtocolService()
if (!this.mControlPassword)
this.mControlPassword = this._generateRandomPassword();
-
- // Determine what kind of SOCKS port Tor and the browser will use.
- // On Windows (where Unix domain sockets are not supported), TCP is
- // always used.
- //
- // The following environment variables are supported and take
- // precedence over preferences:
- // TOR_SOCKS_IPC_PATH (file system path; ignored on Windows)
- // TOR_SOCKS_HOST
- // TOR_SOCKS_PORT
- //
- // The following preferences are consulted:
- // network.proxy.socks
- // network.proxy.socks_port
- // extensions.torlauncher.socks_port_use_ipc (Boolean)
- // extensions.torlauncher.socks_ipc_path (file system path)
- // If extensions.torlauncher.socks_ipc_path is empty, a default
- // path is used (<tor-data-directory>/socks.socket).
- //
- // When using TCP, if a value is not defined via an env variable it is
- // taken from the corresponding browser preference if possible. The
- // exceptions are:
- // If network.proxy.socks contains a file: URL, a default value of
- // "127.0.0.1" is used instead.
- // If the network.proxy.socks_port value is 0, a default value of
- // 9150 is used instead.
- //
- // Supported scenarios:
- // 1. By default, an IPC object at a default path is used.
- // 2. If extensions.torlauncher.socks_port_use_ipc is set to false,
- // a TCP socket at 127.0.0.1:9150 is used, unless different values
- // are set in network.proxy.socks and network.proxy.socks_port.
- // 3. If the TOR_SOCKS_IPC_PATH env var is set, an IPC object at that
- // path is used (e.g., a Unix domain socket).
- // 4. If the TOR_SOCKS_HOST and/or TOR_SOCKS_PORT env vars are set, TCP
- // is used. Values not set via env vars will be taken from the
- // network.proxy.socks and network.proxy.socks_port prefs as described
- // above.
- // 5. If extensions.torlauncher.socks_port_use_ipc is true and
- // extensions.torlauncher.socks_ipc_path is set, an IPC object at
- // the specified path is used.
- // 6. Tor Launcher is disabled. Torbutton will respect the env vars if
- // present; if not, the values in network.proxy.socks and
- // network.proxy.socks_port are used without modification.
-
- let useIPC;
- this.mSOCKSPortInfo = { ipcFile: undefined, host: undefined, port: 0 };
- if (!isWindows && env.exists("TOR_SOCKS_IPC_PATH"))
- {
- let ipcPath = env.get("TOR_SOCKS_IPC_PATH");
- this.mSOCKSPortInfo.ipcFile = new FileUtils.File(ipcPath);
- useIPC = true;
- }
- else
- {
- // Check for TCP host and port environment variables.
- if (env.exists("TOR_SOCKS_HOST"))
- {
- this.mSOCKSPortInfo.host = env.get("TOR_SOCKS_HOST");
- useIPC = false;
- }
- if (env.exists("TOR_SOCKS_PORT"))
- {
- this.mSOCKSPortInfo.port = parseInt(env.get("TOR_SOCKS_PORT"), 10);
- useIPC = false;
- }
- }
-
- if (useIPC === undefined)
- {
- useIPC = !isWindows && TorLauncherUtil.getBoolPref(
- "extensions.torlauncher.socks_port_use_ipc", true);
- }
-
- // Fill in missing SOCKS info from prefs.
- if (useIPC)
- {
- if (!this.mSOCKSPortInfo.ipcFile)
- {
- this.mSOCKSPortInfo.ipcFile =
- TorLauncherUtil.getTorFile("socks_ipc", false);
- }
- }
- else
- {
- if (!this.mSOCKSPortInfo.host)
- {
- let socksAddr = TorLauncherUtil.getCharPref("network.proxy.socks",
- "127.0.0.1");
- let socksAddrHasHost = (socksAddr && !socksAddr.startsWith("file:"));
- this.mSOCKSPortInfo.host = socksAddrHasHost ? socksAddr : "127.0.0.1";
- }
-
- if (!this.mSOCKSPortInfo.port)
- {
- let socksPort = TorLauncherUtil.getIntPref("network.proxy.socks_port",
- 0);
- this.mSOCKSPortInfo.port = (socksPort != 0) ? socksPort : 9150;
- }
- }
-
- TorLauncherLogger.log(3, "SOCKS port type: " + (useIPC ? "IPC" : "TCP"));
- if (useIPC)
- {
- TorLauncherLogger.log(3, "ipcFile: " + this.mSOCKSPortInfo.ipcFile.path);
- }
- else
- {
- TorLauncherLogger.log(3, "SOCKS host: " + this.mSOCKSPortInfo.host);
- TorLauncherLogger.log(3, "SOCKS port: " + this.mSOCKSPortInfo.port);
- }
}
catch(e)
{
@@ -274,19 +141,6 @@ TorProtocolService.prototype =
kCmdStatusOK: 250,
kCmdStatusEventNotification: 650,
- TorGetControlIPCFile: function()
- {
- if (!this.mControlIPCFile)
- return undefined;
-
- return this.mControlIPCFile.clone();
- },
-
- TorGetControlPort: function()
- {
- return this.mControlPort;
- },
-
// Returns Tor password string or null if an error occurs.
TorGetPassword: function(aPleaseHash)
{
@@ -294,18 +148,6 @@ TorProtocolService.prototype =
return (aPleaseHash) ? this._hashPassword(pw) : pw;
},
- TorGetSOCKSPortInfo: function()
- {
- return this.mSOCKSPortInfo;
- },
-
- // Escape non-ASCII characters for use within the Tor Control protocol.
- // Returns a string.
- TorEscapeString: function(aStr)
- {
- return this._strEscape(aStr);
- },
-
// NOTE: Many Tor protocol functions return a reply object, which is a
// a JavaScript object that has the following fields:
// reply.statusCode -- integer, e.g., 250
@@ -672,9 +514,7 @@ TorProtocolService.prototype =
mConsoleSvc: null,
mControlPort: null,
mControlHost: null,
- mControlIPCFile: null, // An nsIFile if using IPC for control port.
mControlPassword: null, // JS string that contains hex-encoded password.
- mSOCKSPortInfo: null, // An object that contains ipcFile, host, port.
mControlConnection: null, // This is cached and reused.
mEventMonitorConnection: null,
mEventMonitorBuffer: null,
@@ -722,44 +562,12 @@ TorProtocolService.prototype =
var conn;
try
{
- let sts = Cc["@mozilla.org/network/socket-transport-service;1"]
+ var sts = Cc["@mozilla.org/network/socket-transport-service;1"]
.getService(Ci.nsISocketTransportService);
- let socket;
- if (this.mControlIPCFile)
- {
- let exists = this.mControlIPCFile.exists();
- if (!exists)
- {
- TorLauncherLogger.log(5, "Control port IPC object does not exist: " +
- this.mControlIPCFile.path);
- }
- else
- {
- let isSpecial = this.mControlIPCFile.isSpecial();
- if (!isSpecial)
- {
- TorLauncherLogger.log(5,
- "Control port IPC object is not a special file: " +
- this.mControlIPCFile.path);
- }
- else
- {
- TorLauncherLogger.log(2, "Opening control connection to " +
- this.mControlIPCFile.path);
- socket = sts.createUnixDomainTransport(this.mControlIPCFile);
- }
- }
- }
- else
- {
- TorLauncherLogger.log(2, "Opening control connection to " +
+ TorLauncherLogger.log(2, "Opening control connection to " +
this.mControlHost + ":" + this.mControlPort);
- socket = sts.createTransport(null, 0, this.mControlHost,
- this.mControlPort, null);
- }
-
- if (!socket)
- return null;
+ var socket = sts.createTransport(null, 0, this.mControlHost,
+ this.mControlPort, null);
// Our event monitor connection is non-blocking and unbuffered (an
// asyncWait() call is used so we only read data when we know that
diff --git a/src/defaults/preferences/prefs.js b/src/defaults/preferences/prefs.js
index ea5ea80..ac1af21 100644
--- a/src/defaults/preferences/prefs.js
+++ b/src/defaults/preferences/prefs.js
@@ -1,33 +1,12 @@
-pref("extensions.torlauncher.start_tor", true);
-pref("extensions.torlauncher.prompt_at_startup", true);
-
pref("extensions.torlauncher.loglevel", 4); // 1=verbose, 2=debug, 3=info, 4=note, 5=warn
pref("extensions.torlauncher.logmethod", 1); // 0=stdout, 1=errorconsole, 2=debuglog
pref("extensions.torlauncher.max_tor_log_entries", 1000);
-// By default, an IPC object (e.g., a Unix domain socket) at a default
-// location is used for the Tor control port.
-// Change control_port_use_ipc to false to use a TCP connection instead, as
-// defined by control_host and control_port.
-// Modify control_ipc_path to override the default IPC object location. If a
-// relative path is used, it is handled like torrc_path (see below).
-pref("extensions.torlauncher.control_port_use_ipc", true);
-pref("extensions.torlauncher.control_ipc_path", "");
pref("extensions.torlauncher.control_host", "127.0.0.1");
pref("extensions.torlauncher.control_port", 9151);
-// By default, an IPC object (e.g., a Unix domain socket) at a default
-// location is used for the Tor SOCKS port.
-// Change socks_port_use_ipc to false to use a TCP connection. When a
-// TCP connection is used, the host is taken from the network.proxy.socks
-// pref and the port is taken from the network.proxy.socks_port pref.
-// Modify socks_ipc_path to override the default IPC object location. If a
-// relative path is used, it is handled like torrc_path (see below).
-// Modify socks_port_flags to use a different set of SocksPort flags (but be
-// careful).
-pref("extensions.torlauncher.socks_port_use_ipc", true);
-pref("extensions.torlauncher.socks_ipc_path", "");
-pref("extensions.torlauncher.socks_port_flags", "IPv6Traffic PreferIPv6 KeepAliveIsolateSOCKSAuth");
+pref("extensions.torlauncher.start_tor", true);
+pref("extensions.torlauncher.prompt_at_startup", true);
// The tor_path is relative to the application directory. On Linux and
// Windows this is the Browser/ directory that contains the firefox
diff --git a/src/modules/tl-util.jsm b/src/modules/tl-util.jsm
index 313a51b..3c7d80b 100644
--- a/src/modules/tl-util.jsm
+++ b/src/modules/tl-util.jsm
@@ -11,19 +11,14 @@ let EXPORTED_SYMBOLS = [ "TorLauncherUtil" ];
const Cc = Components.classes;
const Ci = Components.interfaces;
-const Cu = Components.utils;
const kPropBundleURI = "chrome://torlauncher/locale/torlauncher.properties";
const kPropNamePrefix = "torlauncher.";
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "TorLauncherLogger",
- "resource://torlauncher/modules/tl-logger.jsm");
-
let TorLauncherUtil = // Public
{
get isMac()
{
- return TLUtilInternal._isMac;
+ return ("Darwin" == TLUtilInternal._OS);
},
get isWindows()
@@ -247,14 +242,6 @@ let TorLauncherUtil = // Public
} catch (e) {}
},
- clearUserPref: function(aPrefName)
- {
- try
- {
- TLUtilInternal.mPrefsSvc.clearUserPref(aPrefName);
- } catch (e) {}
- },
-
// Currently, this returns a random permutation of an array, bridgeArray.
// Later, we might want to change this function to weight based on the
// bridges' bandwidths.
@@ -374,281 +361,6 @@ let TorLauncherUtil = // Public
return undefined;
},
-
- // Returns an nsIFile.
- // If aTorFileType is "control_ipc" or "socks_ipc", aCreate is ignored
- // and there is no requirement that the IPC object exists.
- // For all other file types, null is returned if the file does not exist
- // and it cannot be created (it will be created if aCreate is true).
- getTorFile: function(aTorFileType, aCreate)
- {
- if (!aTorFileType)
- return null;
-
- let torFile; // an nsIFile to be returned
- let path; // a relative or absolute path that will determine torFile
-
- let isRelativePath = false;
- let isUserData = (aTorFileType != "tor") &&
- (aTorFileType != "torrc-defaults");
- let isControlIPC = ("control_ipc" == aTorFileType);
- let isSOCKSIPC = ("socks_ipc" == aTorFileType);
- let isIPC = isControlIPC || isSOCKSIPC;
- let checkIPCPathLen = true;
-
- const kControlIPCFileName = "control.socket";
- const kSOCKSIPCFileName = "socks.socket";
- let extraIPCPathLen = (isSOCKSIPC) ? 2 : 0;
- let ipcFileName;
- if (isControlIPC)
- ipcFileName = kControlIPCFileName;
- else if (isSOCKSIPC)
- ipcFileName = kSOCKSIPCFileName;
-
- // If this is the first request for an IPC path during this browser
- // session, remove the old temporary directory. This helps to keep /tmp
- // clean if the browser crashes or is killed.
- let ipcDirPath;
- if (isIPC && TLUtilInternal.mIsFirstIPCPathRequest)
- {
- this.cleanupTempDirectories();
- TLUtilInternal.mIsFirstIPCPathRequest = false;
- }
- else
- {
- // Retrieve path for IPC objects (it may have already been determined).
- ipcDirPath = this.getCharPref(TLUtilInternal.kIPCDirPrefName);
- }
-
- // First, check the _path preference for this file type.
- let prefName = "extensions.torlauncher." + aTorFileType + "_path";
- path = this.getCharPref(prefName);
- if (path)
- {
- let re = (this.isWindows) ? /^[A-Za-z]:\\/ : /^\//;
- isRelativePath = !re.test(path);
- checkIPCPathLen = false; // always try to use path if provided in pref
- }
- else if (isIPC)
- {
- if (ipcDirPath)
- {
- // We have already determined where IPC objects will be placed.
- torFile = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
- torFile.initWithPath(ipcDirPath);
- torFile.append(ipcFileName);
- checkIPCPathLen = false; // already checked.
- }
- else
- {
- // If XDG_RUNTIME_DIR is set, use it as the base directory for IPC
- // objects (e.g., Unix domain sockets) -- assuming it is not too long.
- let env = Cc["@mozilla.org/process/environment;1"]
- .getService(Ci.nsIEnvironment);
- if (env.exists("XDG_RUNTIME_DIR"))
- {
- let ipcDir = TLUtilInternal._createUniqueIPCDir(
- env.get("XDG_RUNTIME_DIR"));
- if (ipcDir)
- {
- let f = ipcDir.clone();
- f.append(ipcFileName);
- if (TLUtilInternal._isIPCPathLengthOK(f.path, extraIPCPathLen))
- {
- torFile = f;
- checkIPCPathLen = false; // no need to check again.
-
- // Store directory path so it can be reused for other IPC objects
- // and so it can be removed during exit.
- this.setCharPref(TLUtilInternal.kIPCDirPrefName, ipcDir.path);
- }
- else
- {
- // too long; remove the directory that we just created.
- ipcDir.remove(false);
- }
- }
- }
- }
- }
-
- if (!path && !torFile)
- {
- // No preference and no pre-determined IPC path: use a default path.
- isRelativePath = true;
- if (TLUtilInternal._isUserDataOutsideOfAppDir)
- {
- // This block is used for the TorBrowser-Data/ case.
- if (this.isWindows)
- {
- if ("tor" == aTorFileType)
- path = "TorBrowser\\Tor\\tor.exe";
- else if ("torrc-defaults" == aTorFileType)
- path = "TorBrowser\\Tor\\torrc-defaults";
- else if ("torrc" == aTorFileType)
- path = "Tor\\torrc";
- else if ("tordatadir" == aTorFileType)
- path = "Tor";
- }
- else if (this.isMac)
- {
- if ("tor" == aTorFileType)
- path = "Contents/Resources/TorBrowser/Tor/tor";
- else if ("torrc-defaults" == aTorFileType)
- path = "Contents/Resources/TorBrowser/Tor/torrc-defaults";
- else if ("torrc" == aTorFileType)
- path = "Tor/torrc";
- else if ("tordatadir" == aTorFileType)
- path = "Tor";
- else if (isIPC)
- path = "Tor/" + ipcFileName;
- }
- else // Linux and others.
- {
- if ("tor" == aTorFileType)
- path = "TorBrowser/Tor/tor";
- else if ("torrc-defaults" == aTorFileType)
- path = "TorBrowser/Tor/torrc-defaults";
- else if ("torrc" == aTorFileType)
- path = "Tor/torrc";
- else if ("tordatadir" == aTorFileType)
- path = "Tor";
- else if (isIPC)
- path = "Tor/" + ipcFileName;
- }
- }
- else if (this.isWindows)
- {
- // This block is used for the non-TorBrowser-Data/ case.
- if ("tor" == aTorFileType)
- path = "Tor\\tor.exe";
- else if ("torrc-defaults" == aTorFileType)
- path = "Data\\Tor\\torrc-defaults";
- else if ("torrc" == aTorFileType)
- path = "Data\\Tor\\torrc";
- else if ("tordatadir" == aTorFileType)
- path = "Data\\Tor";
- }
- else // Linux, Mac OS and others.
- {
- // This block is also used for the non-TorBrowser-Data/ case.
- if ("tor" == aTorFileType)
- path = "Tor/tor";
- else if ("torrc-defaults" == aTorFileType)
- path = "Data/Tor/torrc-defaults";
- else if ("torrc" == aTorFileType)
- path = "Data/Tor/torrc";
- else if ("tordatadir" == aTorFileType)
- path = "Data/Tor";
- else if (isIPC)
- path = "Data/Tor/" + ipcFileName;
- }
-
- if (!path)
- return null;
- }
-
- try
- {
- if (path)
- {
- if (isRelativePath)
- {
- // Turn 'path' into an absolute path.
- if (TLUtilInternal._isUserDataOutsideOfAppDir)
- {
- let baseDir = isUserData ? TLUtilInternal._dataDir
- : TLUtilInternal._appDir;
- torFile = baseDir.clone();
- }
- else
- {
- torFile = TLUtilInternal._appDir.clone();
- torFile.append("TorBrowser");
- }
- torFile.appendRelativePath(path);
- }
- else
- {
- torFile = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
- torFile.initWithPath(path);
- }
-
- if (!torFile.exists() && !isIPC && aCreate)
- {
- try
- {
- if ("tordatadir" == aTorFileType)
- torFile.create(torFile.DIRECTORY_TYPE, 0700);
- else
- torFile.create(torFile.NORMAL_FILE_TYPE, 0600);
- }
- catch (e)
- {
- TorLauncherLogger.safelog(4,
- "unable to create " + torFile.path + ": ", e);
- return null;
- }
- }
- }
-
- // If the file exists or an IPC object was requested, normalize the path
- // and return a file object. The control and SOCKS IPC objects will be
- // created by tor.
- if (torFile.exists() || isIPC)
- {
- try { torFile.normalize(); } catch(e) {}
-
- // Ensure that the IPC path length is short enough for use by the
- // operating system. If not, create and use a unique directory under
- // /tmp for all IPC objects. The created directory path is stored in
- // a preference so it can be reused for other IPC objects and so it
- // can be removed during exit.
- if (isIPC && checkIPCPathLen &&
- !TLUtilInternal._isIPCPathLengthOK(torFile.path, extraIPCPathLen))
- {
- torFile = TLUtilInternal._createUniqueIPCDir("/tmp");
- if (!torFile)
- {
- TorLauncherLogger.log(4,
- "failed to create unique directory under /tmp");
- return null;
- }
-
- this.setCharPref(TLUtilInternal.kIPCDirPrefName, torFile.path);
- torFile.append(ipcFileName);
- }
-
- return torFile;
- }
-
- TorLauncherLogger.log(4, aTorFileType + " file not found: "
- + torFile.path);
- }
- catch(e)
- {
- TorLauncherLogger.safelog(4, "getTorFile " + aTorFileType +
- " failed for " + path + ": ", e);
- }
-
- return null; // File not found or error (logged above).
- }, // getTorFile()
-
- cleanupTempDirectories: function()
- {
- try
- {
- let dirPath = this.getCharPref(TLUtilInternal.kIPCDirPrefName);
- this.clearUserPref(TLUtilInternal.kIPCDirPrefName);
- if (dirPath)
- {
- let f = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
- f.initWithPath(dirPath);
- if (f.exists())
- f.remove(false); // Remove directory if it is empty
- }
- } catch(e) {}
- },
};
@@ -657,19 +369,9 @@ Object.freeze(TorLauncherUtil);
let TLUtilInternal = // Private
{
- kThunderbirdID: "{3550f703-e582-4d05-9a08-453d09bdfdc6}",
- kInstantbirdID: "{33cb9019-c295-46dd-be21-8c4936574bee}",
- kIPCDirPrefName: "extensions.torlauncher.tmp_ipc_dir",
-
mPrefsSvc : null,
mStringBundle : null,
mOS : "",
- // mIsUserDataOutsideOfAppDir is true when TorBrowser-Data is used.
- mIsUserDataOutsideOfAppDir: undefined, // Boolean (cached; access via
- // this._isUserDataOutsideOfAppDir)
- mAppDir: null, // nsIFile (cached; access via this._appDir)
- mDataDir: null, // nsIFile (cached; access via this._dataDir)
- mIsFirstIPCPathRequest : true,
_init: function()
{
@@ -699,121 +401,6 @@ let TLUtilInternal = // Private
return this.mOS;
},
-
- get _isMac()
- {
- return ("Darwin" == this._OS);
- },
-
- get _isUserDataOutsideOfAppDir()
- {
- if (this.mIsUserDataOutsideOfAppDir == undefined)
- {
- // Determine if we are using a "side-by-side" data model by checking
- // whether the user profile is outside of the app directory.
- try
- {
- let ds = Cc["@mozilla.org/file/directory_service;1"]
- .getService(Ci.nsIProperties);
- let profDir = ds.get("ProfD", Ci.nsIFile);
- this.mIsUserDataOutsideOfAppDir = !this._appDir.contains(profDir);
- }
- catch (e)
- {
- this.mIsUserDataOutsideOfAppDir = false;
- }
- }
-
- return this.mIsUserDataOutsideOfAppDir;
- }, // get _isUserDataOutsideOfAppDir
-
- // Returns an nsIFile that points to the application directory.
- // May throw.
- get _appDir()
- {
- if (!this.mAppDir)
- {
- let topDir = Cc["@mozilla.org/file/directory_service;1"]
- .getService(Ci.nsIProperties).get("CurProcD", Ci.nsIFile);
- let appInfo = Cc["@mozilla.org/xre/app-info;1"]
- .getService(Ci.nsIXULAppInfo);
- // On Linux and Windows, we want to return the Browser/ directory.
- // Because topDir ("CurProcD") points to Browser/browser on those
- // platforms, we need to go up one level.
- // On Mac OS, we want to return the TorBrowser.app/ directory.
- // Because topDir points to Contents/Resources/browser on Mac OS,
- // we need to go up 3 levels.
- let tbbBrowserDepth = (this._isMac) ? 3 : 1;
- if ((appInfo.ID == this.kThunderbirdID) ||
- (appInfo.ID == this.kInstantbirdID))
- {
- // On Thunderbird/Instantbird, the topDir is the root dir and not
- // browser/, so we need to iterate one level less than Firefox.
- --tbbBrowserDepth;
- }
-
- while (tbbBrowserDepth > 0)
- {
- let didRemove = (topDir.leafName != ".");
- topDir = topDir.parent;
- if (didRemove)
- tbbBrowserDepth--;
- }
-
- this.mAppDir = topDir;
- }
-
- return this.mAppDir;
- }, // get _appDir
-
- // Returns an nsIFile that points to the TorBrowser-Data/ directory.
- // This function is only used when this._isUserDataOutsideOfAppDir == true.
- // May throw.
- get _dataDir()
- {
- if (!this.mDataDir)
- {
- let ds = Cc["@mozilla.org/file/directory_service;1"]
- .getService(Ci.nsIProperties);
- let profDir = ds.get("ProfD", Ci.nsIFile);
- this.mDataDir = profDir.parent.parent;
- }
-
- return this.mDataDir;
- }, // get _dataDir
-
- // Return true if aPath is short enough to be used as an IPC object path,
- // e.g., for a Unix domain socket path. aExtraLen is the "delta" necessary
- // to accommodate other IPC objects that have longer names; it is used to
- // account for "control.socket" vs. "socks.socket" (we want to ensure that
- // all IPC objects are placed in the same parent directory unless the user
- // has set prefs or env vars to explicitly specify the path for an object).
- // We enforce a maximum length of 100 because all operating systems allow
- // at least 100 characters for Unix domain socket paths.
- _isIPCPathLengthOK: function(aPath, aExtraLen)
- {
- const kMaxIPCPathLen = 100;
- return aPath && ((aPath.length + aExtraLen) <= kMaxIPCPathLen);
- },
-
- // Returns an nsIFile or null if a unique directory could not be created.
- _createUniqueIPCDir: function(aBasePath)
- {
- try
- {
- let d = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
- d.initWithPath(aBasePath);
- d.append("Tor");
- d.createUnique(Ci.nsIFile.DIRECTORY_TYPE, 0700);
- return d;
- }
- catch (e)
- {
- TorLauncherLogger.safelog(4, "_createUniqueIPCDir failed for "
- + aBasePath + ": ", e);
- return null;
- }
- },
};
1
0
commit 49c4f6c519c3849cf6f3611c38cd2b38262a6fa7
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon Jan 16 14:12:01 2017 +0000
Translation updates
---
src/chrome/locale/de/network-settings.dtd | 2 +-
src/chrome/locale/es-MX/network-settings.dtd | 46 ++++++++--------
src/chrome/locale/es/network-settings.dtd | 16 +++---
src/chrome/locale/fr-CA/network-settings.dtd | 28 +++++-----
src/chrome/locale/fr-CA/torlauncher.properties | 32 +++++------
src/chrome/locale/fr/network-settings.dtd | 76 +++++++++++++-------------
src/chrome/locale/fr/progress.dtd | 2 +-
src/chrome/locale/fr/torlauncher.properties | 54 +++++++++---------
src/chrome/locale/is/torlauncher.properties | 14 ++---
src/chrome/locale/ko-KR/network-settings.dtd | 18 +++---
src/chrome/locale/lo/torlauncher.properties | 2 +-
src/chrome/locale/lt/torlauncher.properties | 6 +-
src/chrome/locale/nb/torlauncher.properties | 6 +-
src/chrome/locale/nn/network-settings.dtd | 2 +-
src/chrome/locale/nn/torlauncher.properties | 26 ++++-----
src/chrome/locale/pt-BR/network-settings.dtd | 8 +--
src/chrome/locale/pt-BR/torlauncher.properties | 10 ++--
src/chrome/locale/th/network-settings.dtd | 12 ++--
18 files changed, 180 insertions(+), 180 deletions(-)
diff --git a/src/chrome/locale/de/network-settings.dtd b/src/chrome/locale/de/network-settings.dtd
index 2124fff..c635745 100644
--- a/src/chrome/locale/de/network-settings.dtd
+++ b/src/chrome/locale/de/network-settings.dtd
@@ -69,7 +69,7 @@
<!ENTITY torsettings.bridgeHelp2Heading "Durch das Internet">
<!ENTITY torsettings.bridgeHelp2 "Benutzen Sie einen Browser und besuchen Sie https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Durch die automatische E-Mail-Antwort">
-<!ENTITY torsettings.bridgeHelp3.emailDesc "Schicken Sie eine E-Mail mit dem Text 'get bridges' an bridges(a)torproject.org. Um Missbrauch durch das Auslesen großer Mengen an Brücken zu erschweren, muss Ihre Anfrage jedoch von einem der folgenden E-Mail-Anbieter kommen:">
+<!ENTITY torsettings.bridgeHelp3.emailDesc "Schicken Sie eine E-Mail mit dem Text 'get bridges' an bridges(a)torproject.org. Um Missbrauch durch das Auslesen großer Mengen an Brücken zu erschweren, muss Ihre Anfrage jedoch von einem der folgenden E-Mail-Anbieter kommen (aufgelistet in der Reihenfolge der Präferenz):">
<!ENTITY torsettings.bridgeHelp3.emailList "https://www.riseup.net, https://mail.google.com, oder https://mail.yahoo.com">
<!ENTITY torsettings.bridgeHelp4Heading "Durch die Beratungsstelle">
<!ENTITY torsettings.bridgeHelp4 "Brückenadressen können auch mit Hilfe einer höflichen E-Mail an help(a)rt.torproject.org angefordert werden.  Bitte beachten Sie, dass jede Anfrage einzeln bearbeitet werden muss.">
diff --git a/src/chrome/locale/es-MX/network-settings.dtd b/src/chrome/locale/es-MX/network-settings.dtd
index 99d4197..6dca5f8 100644
--- a/src/chrome/locale/es-MX/network-settings.dtd
+++ b/src/chrome/locale/es-MX/network-settings.dtd
@@ -1,44 +1,44 @@
<!ENTITY torsettings.dialog.title "Configuración de red Tor">
<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
-<!ENTITY torlauncher.localePicker.prompt "Please select a language.">
+<!ENTITY torlauncher.localePicker.title "Lenguaje en el explorador de Tor">
+<!ENTITY torlauncher.localePicker.prompt "Por favor selecciona un lenguaje">
<!-- For "first run" wizard: -->
-<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+<!ENTITY torsettings.prompt "Antes de conectarte a la red de Tor, necesitas proveer información sobre la conexión de Internet de esta computadora. ">
<!ENTITY torSettings.yes "Si">
<!ENTITY torSettings.no "No">
-<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
-<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored or proxied.">
-<!ENTITY torSettings.configurePrompt2 "I need to configure bridge or local proxy settings before I connect to the Tor network.">
-<!ENTITY torSettings.configure "Configure">
-<!ENTITY torSettings.connectPrompt2 "I would like to make a direct connection to the Tor network.">
-<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.firstQuestion "Que describe mejor tu situación? Elige las opciones que apliquen. ">
+<!ENTITY torSettings.configurePrompt1 "La conexión de Internet de esta computadora esta censurada o en un proxy">
+<!ENTITY torSettings.configurePrompt2 "Necesito configurar un puente o ajustes del proxy local antes de que me conecte a la red Tor network.">
+<!ENTITY torSettings.configure "Configurar">
+<!ENTITY torSettings.connectPrompt2 "Me gustaría realizar una conexión directa a la red Tor. ">
+<!ENTITY torSettings.connectPrompt3 "Esto funcionara en la mayoría de las situaciones.">
<!ENTITY torSettings.connect "Conectar">
-<!ENTITY torSettings.proxyPageTitle "Local Proxy Configuration">
-<!ENTITY torSettings.proxyQuestion "Does this computer need to use a local proxy to access the Internet?">
+<!ENTITY torSettings.proxyPageTitle "Configuración del Proxy Local">
+<!ENTITY torSettings.proxyQuestion "Esta computadora necesita usar un proxy local para accesar el Internet?">
<!-- see https://www.torproject.org/docs/proxychain.html.en -->
-<!ENTITY torSettings.proxyExplanation1 "In most cases a local proxy is not needed, but it may be required when connecting through a company, school, or university network.">
-<!ENTITY torSettings.proxyExplanation2 "If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a local proxy is needed.">
-<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
-<!ENTITY torSettings.bridgePageTitle "Tor Bridges Configuration">
-<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeExplanation1 "If you are not sure how to answer this question, choose No (if you are unable to connect to the Tor network without a bridge, you can add one later).">
-<!ENTITY torSettings.bridgeExplanation2 "If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
-<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+<!ENTITY torSettings.proxyExplanation1 "La mayoría de los casos no requieren un proxy local, pero si podría ser requerido cuando te conectas por medio de una compañia, escuela, o red universitaria.">
+<!ENTITY torSettings.proxyExplanation2 "Si no estas seguro de como contestar esta pregunta, ve tu configuración de Internet en otro explorador o checa tu configuración de red del sistema para ver si necesitas un proxy local o no. ">
+<!ENTITY torSettings.enterProxy "Introduce la configuración de proxy">
+<!ENTITY torSettings.bridgePageTitle "Configuracion de puentes Tor">
+<!ENTITY torSettings.bridgeQuestion "Tu proveedor de servicio de Internet (ISP) bloquea o censura conexiones a la red de Tor?">
+<!ENTITY torSettings.bridgeExplanation1 "Si no estas seguro de como contestar la pregunta, escoge No (si no puedes conectarte a la red Tor sin un puente, puedes agregar uno despues).">
+<!ENTITY torSettings.bridgeExplanation2 "Si escoges Si, se te pedira configurar puentes Tor, los cuales son relés no registrados que hace que sea mas dificil bloquear las conexiones de la red Tor. ">
+<!ENTITY torSettings.bridgeSettingsPrompt "Puedes usar el conjunto de puentes o puedes obtener e introducir un conjunto personalizado de puentes.">
<!-- Other: -->
-<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.startingTor "Esperando a que Tor inicie...">
<!ENTITY torsettings.restartTor "Reiniciar Tor">
-<!ENTITY torsettings.reconfigTor "Reconfigure">
+<!ENTITY torsettings.reconfigTor "Reconfigurar">
-<!ENTITY torsettings.discardSettings.prompt "You have configured Tor bridges or you have entered local proxy settings.  To make a direct connection to the Tor network, these settings must be removed.">
-<!ENTITY torsettings.discardSettings.proceed "Remove Settings and Connect">
+<!ENTITY torsettings.discardSettings.prompt "Has configurado los puentes Tor o has introducido un proxy local settings.  Para hacer una conexión directa a la red Tor, esta configuración debe removerse. ">
+<!ENTITY torsettings.discardSettings.proceed "Remover configuración y conectarse">
<!ENTITY torsettings.optional "Optional">
diff --git a/src/chrome/locale/es/network-settings.dtd b/src/chrome/locale/es/network-settings.dtd
index ac15664..91a356a 100644
--- a/src/chrome/locale/es/network-settings.dtd
+++ b/src/chrome/locale/es/network-settings.dtd
@@ -13,7 +13,7 @@
<!ENTITY torSettings.firstQuestion "¿Cuál de las siguientes opciones describe mejor su situación?">
<!ENTITY torSettings.configurePrompt1 "La conexión a Internet de este equipo está censurada o proxificada.">
-<!ENTITY torSettings.configurePrompt2 "Necesito configurar bridge o los ajustes del proxy local antes de conectar a la red Tor. ">
+<!ENTITY torSettings.configurePrompt2 "Necesito configurar los ajustes de puente de red o proxy local antes de conectar a la red Tor. ">
<!ENTITY torSettings.configure "Configurar">
<!ENTITY torSettings.connectPrompt2 "Quisiera hacer una conexión directa a la red Tor.">
<!ENTITY torSettings.connectPrompt3 "Esto funcionará en la mayoría de las situaciones.">
@@ -25,11 +25,11 @@
<!ENTITY torSettings.proxyExplanation1 "En la mayoría de los casos no se requiere un proxy (interpuesto) local, pero puede ser necesario al realizar una conexión a través de una red de empresa, de escuela, o universitaria. ">
<!ENTITY torSettings.proxyExplanation2 "Si no está seguro de cómo responder a esta pregunta, mire la configuración de Internet en otro navegador o compruebe la configuración de red de su sistema para ver si un proxy local es necesario.">
<!ENTITY torSettings.enterProxy "Introduzca los ajustes del proxy.">
-<!ENTITY torSettings.bridgePageTitle "Configuración de puentes Tor">
+<!ENTITY torSettings.bridgePageTitle "Configuración de puentes de red Tor">
<!ENTITY torSettings.bridgeQuestion "Su proveedor de servicios de Internet (ISP) bloquea o censura de alguna forma las conexiones hacia la red Tor?">
-<!ENTITY torSettings.bridgeExplanation1 "Si no está seguro de cómo responder a esta pregunta, elija No (si no puede conectarse a la red Tor sin un puente (bridge), puede añadir uno más adelante).">
-<!ENTITY torSettings.bridgeExplanation2 "Si elige Sí, se le pedirá que configure los puentes (bridges) de Tor, que son repetidores no listados que dificultan el bloqueo de conexiones hacia la red Tor.">
-<!ENTITY torSettings.bridgeSettingsPrompt "Puede utilizar el conjunto de repetidores puente (bridge) proporcionado, o puede obtener e introducir un juego de puentes personalizado.">
+<!ENTITY torSettings.bridgeExplanation1 "Si no está seguro de cómo responder a esta pregunta, elija No (si no puede conectarse a la red Tor sin un puente de red (bridge), puede añadir uno más adelante).">
+<!ENTITY torSettings.bridgeExplanation2 "Si elige Sí, se le pedirá que configure los puentes de red (bridges) de Tor, que son repetidores no listados que dificultan el bloqueo de conexiones hacia la red Tor.">
+<!ENTITY torSettings.bridgeSettingsPrompt "Puede utilizar el conjunto de puentes de red (bridges) proporcionado, o puede obtener e introducir un juego de puentes personalizado.">
<!-- Other: -->
@@ -37,7 +37,7 @@
<!ENTITY torsettings.restartTor "Reiniciar Tor">
<!ENTITY torsettings.reconfigTor "Configurar de nuevo">
-<!ENTITY torsettings.discardSettings.prompt "Ha configurado los puentes (bridges) de Tor o ha introducido los ajustes para proxy (interpuesto) local.  Para realizar una conexión directa a la red Tor, estos ajustes deben ser borrados.">
+<!ENTITY torsettings.discardSettings.prompt "Ha configurado los puentes de red (bridges) de Tor o ha introducido los ajustes para proxy (interpuesto) local.  Para realizar una conexión directa a la red Tor, estos ajustes deben ser borrados.">
<!ENTITY torsettings.discardSettings.proceed "Eliminar ajustes y conectar">
<!ENTITY torsettings.optional "Opcional">
@@ -56,7 +56,7 @@
<!ENTITY torsettings.firewall.allowedPorts "Puertos permitidos:">
<!ENTITY torsettings.useBridges.checkbox "Mi Proveedor de Servicios de Internet (ISP) bloquea las conexiones a la red Tor">
<!ENTITY torsettings.useBridges.default "Conectar con los puentes proporcionados">
-<!ENTITY torsettings.useBridges.note "Cada tipo de puente (bridge) usa un método diferente para evitar la censura.  Si un repetidor puente no funciona, inténtelo de nuevo utilizando otro distinto.">
+<!ENTITY torsettings.useBridges.note "Cada tipo de puente de red usa un método diferente para evitar la censura.  Si un puente no funciona, inténtelo de nuevo utilizando otro distinto.">
<!ENTITY torsettings.useBridges.type "Tipo de transporte:">
<!ENTITY torsettings.useBridges.custom "Introducir puentes personalizados">
<!ENTITY torsettings.useBridges.label "Introduzca uno o más repetidores puente(uno por línea).">
@@ -65,7 +65,7 @@
<!ENTITY torsettings.copyLog "Copiar el registro de mensajes(log) de Tor al portapapeles">
<!ENTITY torsettings.bridgeHelpTitle "Ayuda de repetidores puente ('bridge relays')">
<!ENTITY torsettings.bridgeHelp1 "Si no puede conectarse a la red Tor, podría ser que su proveedor de servicios de Internet (ISP) u otra agencia, esté bloqueando Tor.  A menudo, puede evitar este problema usando puentes ('bridges') de Tor, que son repetidores ('relays') de salida de la red Tor que no son públicos, y es más difícil que sean bloqueados.">
-<!ENTITY torsettings.bridgeHelp1B "Puede usar el juego preconfigurado de direcciones de puentes proporcionado, o puede obtener un juego personalizado de direcciones usando uno de estos métodos:">
+<!ENTITY torsettings.bridgeHelp1B "Puede usar el juego preajustado de direcciones de puentes de red proporcionado, o puede obtener un juego personalizado de direcciones usando uno de estos métodos:">
<!ENTITY torsettings.bridgeHelp2Heading "Mediante la web">
<!ENTITY torsettings.bridgeHelp2 "Use un navegador web para visitar https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Mediante el correo electrónico automático">
diff --git a/src/chrome/locale/fr-CA/network-settings.dtd b/src/chrome/locale/fr-CA/network-settings.dtd
index 448a2d5..a4056e0 100644
--- a/src/chrome/locale/fr-CA/network-settings.dtd
+++ b/src/chrome/locale/fr-CA/network-settings.dtd
@@ -2,7 +2,7 @@
<!-- For locale picker: -->
<!ENTITY torlauncher.localePicker.title "Langue du navigateur Tor">
-<!ENTITY torlauncher.localePicker.prompt "Veuillez choisir une langue">
+<!ENTITY torlauncher.localePicker.prompt "Veuillez choisir une langue.">
<!-- For "first run" wizard: -->
@@ -16,18 +16,18 @@
<!ENTITY torSettings.configurePrompt2 "Je dois paramétrer un pont ou un mandataire local avant de me connecter au réseau Tor.">
<!ENTITY torSettings.configure "Configurer">
<!ENTITY torSettings.connectPrompt2 "J'aimerais établir une connexion directe vers le réseau Tor.">
-<!ENTITY torSettings.connectPrompt3 "Ceci fonctionnera dans la plupart des situations.">
+<!ENTITY torSettings.connectPrompt3 "Cela fonctionnera dans la plupart des situations.">
<!ENTITY torSettings.connect "Se connecter">
<!ENTITY torSettings.proxyPageTitle "Configuration du mandataire local">
<!ENTITY torSettings.proxyQuestion "Cet ordinateur doit-il utiliser un serveur mandataire local pour accéder à Internet?">
<!-- see https://www.torproject.org/docs/proxychain.html.en -->
<!ENTITY torSettings.proxyExplanation1 "Dans la plupart des cas, un serveur mandataire local n'est pas requis, mais il pourrait être exigé pour une connexion par un réseau d'entreprise, d'école ou d'université.">
-<!ENTITY torSettings.proxyExplanation2 "Si vous n'êtes pas certain de savoir comment répondre à cette question, vérifier les paramètres Internet d'un autre navigateur ou vérifier les paramètres réseau de votre système pour voir si un serveur mandataire local est requis.">
+<!ENTITY torSettings.proxyExplanation2 "Si vous n'êtes pas certain de savoir comment répondre à cette question, vérifiez les paramètres Internet d'un autre navigateur ou les paramètres réseau de votre système pour voir si un serveur mandataire local est requis.">
<!ENTITY torSettings.enterProxy "Saisir les paramètres du serveur mandataire.">
<!ENTITY torSettings.bridgePageTitle "Configuration des ponts Tor">
-<!ENTITY torSettings.bridgeQuestion "Votre fournisseur de service Internet (FSI) bloque-t-il ou censure-t-il vos connexions au réseau Tor?">
-<!ENTITY torSettings.bridgeExplanation1 "Si vous n'êtes pas certain de savoir comment répondre à cette question, choisir Non (si vous n'arrivez pas à vous connecter au réseau Tor sans pont, pour pourrez en ajouter un ultérieurement).">
+<!ENTITY torSettings.bridgeQuestion "Votre fournisseur d'accès à Internet (FAI) bloque-t-il ou censure-t-il vos connexions au réseau Tor?">
+<!ENTITY torSettings.bridgeExplanation1 "Si vous n'êtes pas certain de savoir comment répondre à cette question, choisissez Non (si vous n'arrivez pas à vous connecter au réseau Tor sans pont, pour pourrez en ajouter un ultérieurement).">
<!ENTITY torSettings.bridgeExplanation2 "Si vous choisissez Oui, l'on vous demandera de configurer des ponts Tor, qui sont des relais non répertoriés rendant le blocage des connexions au réseau Tor plus difficile.">
<!ENTITY torSettings.bridgeSettingsPrompt "Vous pouvez utiliser le jeu de ponts fourni ou vous pouvez obtenir et saisir un jeu de ponts personnalisé.">
@@ -40,7 +40,7 @@
<!ENTITY torsettings.discardSettings.prompt "Vous avez configuré des ponts Tor ou vous avez saisi des paramètres de mandataire local.  Pour établir une connexion directe vers le réseau Tor, ces paramètres doivent être supprimés.">
<!ENTITY torsettings.discardSettings.proceed "Supprimer les paramètres et se connecter">
-<!ENTITY torsettings.optional "Optionnel">
+<!ENTITY torsettings.optional "Facultatif">
<!ENTITY torsettings.useProxy.checkbox "Cet ordinateur doit utiliser un mandataire local pour accéder à Internet">
<!ENTITY torsettings.useProxy.type "Type de mandataire :">
@@ -54,22 +54,22 @@
<!ENTITY torsettings.useProxy.type.http "HTTP / HTTPS">
<!ENTITY torsettings.firewall.checkbox "Cet ordinateur passe par un pare-feu qui n'autorise que les connexions à certains ports">
<!ENTITY torsettings.firewall.allowedPorts "Ports autorisés :">
-<!ENTITY torsettings.useBridges.checkbox "Mon fournisseur d'accès à Internet (FAI) bloque les connexions au réseau Tor">
+<!ENTITY torsettings.useBridges.checkbox "Mon fournisseur d'accès à Internet (FAI) bloque les connexions vers le réseau Tor">
<!ENTITY torsettings.useBridges.default "Se connecter avec les ponts fournis">
-<!ENTITY torsettings.useBridges.note "Chaque type de pont utilise une méthode différente pour contourner la censure.  Si un pont ne fonctionne pas, ressayer en utilisant un autre type.">
+<!ENTITY torsettings.useBridges.note "Chaque type de pont utilise une méthode différente pour contourner la censure.  Si un pont ne fonctionne pas, ressayez en utilisant un autre type.">
<!ENTITY torsettings.useBridges.type "Type de transport :">
<!ENTITY torsettings.useBridges.custom "Saisir les ponts personnalisés">
<!ENTITY torsettings.useBridges.label "Saisir un ou plusieurs relais-ponts (un par ligne).">
<!ENTITY torsettings.useBridges.placeholder "type adresse:port">
-<!ENTITY torsettings.copyLog "Copier le journal de Tor dans le presse-papier">
-<!ENTITY torsettings.bridgeHelpTitle "Aide pour les relais-ponts">
+<!ENTITY torsettings.copyLog "Copier le journal de Tor dans le presse-papiers">
+<!ENTITY torsettings.bridgeHelpTitle "Aide sur les relais-ponts">
<!ENTITY torsettings.bridgeHelp1 "Si vous ne pouvez pas vous connecter au réseau Tor, il se peut que votre fournisseur d'accès à Internet (FAI) ou une autre organisme bloque Tor.  Vous pouvez souvent le contourner en utilisant des ponts Tor qui sont des relais non répertoriés, plus difficiles à bloquer.">
<!ENTITY torsettings.bridgeHelp1B "Vous pouvez utiliser le jeu préconfiguré d'adresses de ponts fourni ou vous pouvez obtenir un jeu personnalisé d'adresses en utilisant une de ces méthodes :">
-<!ENTITY torsettings.bridgeHelp2Heading "par le Web">
-<!ENTITY torsettings.bridgeHelp2 "en utilisant un navigateur Web pour visiter https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp2Heading "Par le Web">
+<!ENTITY torsettings.bridgeHelp2 "En utilisant un navigateur Web pour visiter https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Par le répondeur automatique de courriel">
-<!ENTITY torsettings.bridgeHelp3.emailDesc "Envoyez un courriel à bridges(a)torproject.org avec la ligne « get bridges » seule dans le corps du message.  Cependant, afin que cela soit plus difficile pour un attaqueur de découvrir de nombreuses adresses de ponts, vous devez envoyer cette demande à partir d'un des fournisseurs de courriel suivants (listés par ordre de préférence) :">
+<!ENTITY torsettings.bridgeHelp3.emailDesc "Envoyez un courriel à bridges(a)torproject.org avec la ligne « get bridges » seule dans le corps du message.  Cependant, afin qu'il soit plus difficile pour un attaquant de découvrir de nombreuses adresses de ponts, vous devez envoyer cette demande à partir d'un des fournisseurs de courriel suivants (listés par ordre de préférence) :">
<!ENTITY torsettings.bridgeHelp3.emailList "https://www.riseup.net, https://mail.google.com ou https://mail.yahoo.com">
-<!ENTITY torsettings.bridgeHelp4Heading "par le centre d'assistance">
+<!ENTITY torsettings.bridgeHelp4Heading "Par le centre d'assistance">
<!ENTITY torsettings.bridgeHelp4 "En dernier recours, vous pouvez demander des adresses de ponts en envoyant un courriel poli à help(a)rt.torproject.org.  Veuillez remarquer qu'une personne devra répondre à chaque demande.">
diff --git a/src/chrome/locale/fr-CA/torlauncher.properties b/src/chrome/locale/fr-CA/torlauncher.properties
index c2d4216..e213ea0 100644
--- a/src/chrome/locale/fr-CA/torlauncher.properties
+++ b/src/chrome/locale/fr-CA/torlauncher.properties
@@ -3,8 +3,8 @@
torlauncher.error_title=Lanceur Tor
-torlauncher.tor_exited_during_startup=Tor s'est fermé pendant le démarrage. Ceci peut être dû à une erreur dans votre fichier torrc, un bogue dans Tor ou dans un autre programme de votre système, ou encore à un matériel défectueux. Jusqu'à ce que vous corrigiez le problème sous-jacent et redémarriez Tor, le navigateur Tor ne démarrera pas.
-torlauncher.tor_exited=Tor a quitté de manière imprévue. Ceci peut être dû à un bogue dans Tor même, un autre programme dans votre système ou un matériel défectueux. Jusqu'à ce que vous redémarriez Tor, le navigateur Tor ne sera capable d'atteindre aucun site. Si le problème persiste, veuillez envoyer une copie de votre journal de Tor à l'équipe de soutien.
+torlauncher.tor_exited_during_startup=Tor s'est fermé pendant le démarrage. Cela peut être dû à une erreur dans votre fichier torrc, un bogue dans Tor ou dans un autre programme de votre système, ou encore à un matériel défectueux. Jusqu'à ce que vous corrigiez le problème sous-jacent et redémarriez Tor, le navigateur Tor ne démarrera pas.
+torlauncher.tor_exited=Tor s'est fermé de manière imprévue. Cela peut être dû à un bogue dans Tor même, un autre programme dans votre système ou un matériel défectueux. Jusqu'à ce que vous redémarriez Tor, le navigateur Tor ne pourra atteindre aucun site. Si le problème persiste, veuillez envoyer une copie de votre journal de Tor à l'équipe de soutien.
torlauncher.tor_exited2=Redémarrer Tor ne fermera par les onglets de votre navigateur.
torlauncher.tor_controlconn_failed=Impossible de se connecter au port de contrôle de Tor.
torlauncher.tor_failed_to_start=Tor n'a pas pu démarrer.
@@ -13,30 +13,30 @@ torlauncher.tor_bootstrap_failed=Échec lors de la connexion de Tor au réseau T
torlauncher.tor_bootstrap_failed_details=%1$S a échoué (%2$S).
torlauncher.unable_to_start_tor=Impossible de démarrer Tor.\n\n%S
-torlauncher.tor_missing=L'exécutable Tor est manquant.
-torlauncher.torrc_missing=Le fichier torrc est manquant et n'a pas pu être créé.
-torlauncher.datadir_missing=Le répertoire de données Tor n'existe pas et n'a pas pu être créé.
+torlauncher.tor_missing=Il manque l'exécutable Tor.
+torlauncher.torrc_missing=Le fichier torrc manque et n'a pas pu être créé.
+torlauncher.datadir_missing=Le répertoire de données de Tor n'existe pas et n'a pas pu être créé.
torlauncher.password_hash_missing=Impossible d'obtenir le mot de passe haché.
torlauncher.failed_to_get_settings=Impossible de récupérer les paramètres de Tor.\n\n%S
-torlauncher.failed_to_save_settings=Impossible de sauvegarder les paramètres de Tor.\n\n%S
-torlauncher.ensure_tor_is_running=Veuillez-vous assurer que Tor tourne.
+torlauncher.failed_to_save_settings=Impossible d'enregistrer les paramètres de Tor.\n\n%S
+torlauncher.ensure_tor_is_running=Veuillez-vous assurer que Tor fonctionne.
-torlauncher.error_proxy_addr_missing=Vous devez spécifier à la fois une adresse IP ou un nom d'hôte et un numéro de port afin de configurer Tor à l'usage d'un mandataire pour accéder à Internet.
+torlauncher.error_proxy_addr_missing=Vous devez spécifier à la fois une adresse IP ou un nom d'hôte et un numéro de port afin de configurer Tor pour qu'il utilise un mandataire pour accéder à Internet.
torlauncher.error_proxy_type_missing=Vous devez choisir le type de mandataire.
torlauncher.error_bridges_missing=Vous devez spécifier un ou plusieurs ponts.
torlauncher.error_default_bridges_type_missing=Vous devez choisir un type de transport pour les ponts fournis.
-torlauncher.error_bridge_bad_default_type=Aucun pont n'est disponible pour le type de transport %S, Veuillez ajuster vos paramètres.
+torlauncher.error_bridge_bad_default_type=Aucun des pont fournis n'est disponible pour le type de transport %S, Veuillez ajuster vos paramètres.
torlauncher.recommended_bridge=(recommandé)
torlauncher.connect=Se connecter
torlauncher.restart_tor=Redémarrer Tor
torlauncher.quit=Quitter
-torlauncher.quit_win=Sortir
-torlauncher.done=Fait
+torlauncher.quit_win=Sortie
+torlauncher.done=Terminé
-torlauncher.forAssistance=Pour l'assistance, contacter %S
+torlauncher.forAssistance=Pour de l'assistance, contacter %S
torlauncher.forAssistance2=Pour de l'assistance, visiter %S
torlauncher.copiedNLogMessages=La copie est terminée. %S messages de journalisation de Tor sont prêts à être coller dans un éditeur de texte ou un courriel.
@@ -46,11 +46,11 @@ torlauncher.bootstrapStatus.handshake_dir=Mise en place d'une connexion chiffré
torlauncher.bootstrapStatus.requesting_status=Récupération de l'état du réseau
torlauncher.bootstrapStatus.loading_status=Chargement de l'état du réseau
torlauncher.bootstrapStatus.loading_keys=Chargement des certificats d'autorité
-torlauncher.bootstrapStatus.requesting_descriptors=Demande des informations de relais
-torlauncher.bootstrapStatus.loading_descriptors=Chargement des informations de relais
+torlauncher.bootstrapStatus.requesting_descriptors=Demande d'informations sur le relais
+torlauncher.bootstrapStatus.loading_descriptors=Chargement des informations sur le relais
torlauncher.bootstrapStatus.conn_or=Connexion au réseau Tor
torlauncher.bootstrapStatus.handshake_or=Mise en place d'un circuit Tor
-torlauncher.bootstrapStatus.done=Connecté au réseau Tor!
+torlauncher.bootstrapStatus.done=Vous êtes connecté au réseau Tor!
torlauncher.bootstrapWarning.done=effectué
torlauncher.bootstrapWarning.connectrefused=connexion refusée
@@ -60,4 +60,4 @@ torlauncher.bootstrapWarning.identity=mauvaise concordance de l'identité
torlauncher.bootstrapWarning.timeout=expiration du temps de connexion
torlauncher.bootstrapWarning.noroute=pas de route vers l'hôte
torlauncher.bootstrapWarning.ioerror=erreur de lecture/écriture
-torlauncher.bootstrapWarning.pt_missing=transport enfichable manquant
+torlauncher.bootstrapWarning.pt_missing=le transport enfichable manque
diff --git a/src/chrome/locale/fr/network-settings.dtd b/src/chrome/locale/fr/network-settings.dtd
index 859c2ee..078424e 100644
--- a/src/chrome/locale/fr/network-settings.dtd
+++ b/src/chrome/locale/fr/network-settings.dtd
@@ -1,49 +1,49 @@
<!ENTITY torsettings.dialog.title "Paramètres du réseau Tor">
<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Langue du Navigateur Tor">
-<!ENTITY torlauncher.localePicker.prompt "Merci de sélectionner une langue.">
+<!ENTITY torlauncher.localePicker.title "Langue du navigateur Tor">
+<!ENTITY torlauncher.localePicker.prompt "Veuillez choisir une langue.">
<!-- For "first run" wizard: -->
-<!ENTITY torsettings.prompt "Vous devez fournir des informations concernant la connexion à Internet de cet ordinateur afin de pouvoir vous connecter au réseau Tor.">
+<!ENTITY torsettings.prompt "Avant de vous connecter au réseau Tor, vous devez fournir des informations sur la connexion Internet de cet ordinateur.">
<!ENTITY torSettings.yes "Oui">
<!ENTITY torSettings.no "Non">
-<!ENTITY torSettings.firstQuestion "Laquelle des phrases suivantes décrit le mieux votre situation ?">
-<!ENTITY torSettings.configurePrompt1 "Le connexion internet de cet ordinateur est restreinte (censurée) ou passe par un proxy.">
-<!ENTITY torSettings.configurePrompt2 "Je dois configurer le bridge ou les paramètres du proxy avant de me connecter au réseau Tor.">
+<!ENTITY torSettings.firstQuestion "Laquelle des suivantes décrit le mieux votre situation ?javascript:;">
+<!ENTITY torSettings.configurePrompt1 "La connexion Internet de cet ordinateur est censurée ou relayée.">
+<!ENTITY torSettings.configurePrompt2 "Je dois paramétrer un pont ou un mandataire local avant de me connecter au réseau Tor.">
<!ENTITY torSettings.configure "Configurer">
-<!ENTITY torSettings.connectPrompt2 "Je voudrais faire une connexion directe au réseau Tor.">
+<!ENTITY torSettings.connectPrompt2 "J'aimerais établir une connexion directe vers le réseau Tor.">
<!ENTITY torSettings.connectPrompt3 "Cela fonctionnera dans la plupart des situations.">
<!ENTITY torSettings.connect "Se connecter">
-<!ENTITY torSettings.proxyPageTitle "Configuration du proxy local">
-<!ENTITY torSettings.proxyQuestion "Est-ce que cet ordinateur a besoin d'utiliser un proxy pour accéder à internet ?">
+<!ENTITY torSettings.proxyPageTitle "Configuration du mandataire local">
+<!ENTITY torSettings.proxyQuestion "Cet ordinateur doit-il utiliser un serveur mandataire local pour accéder à Internet ?">
<!-- see https://www.torproject.org/docs/proxychain.html.en -->
-<!ENTITY torSettings.proxyExplanation1 "Dans la plupart des cas le proxy local n'est pas nécessaire, mais il peut être exigé pour une connexion dans un réseau d'entreprise, d'école ou universitaire.">
-<!ENTITY torSettings.proxyExplanation2 "Si vous n'êtes pas certain de savoir comment répondre à cette question, regardez les paramètres Internet d'un autre navigateur ou les paramètres réseaux de votre système afin de vérifier si vous avez besoin d'un proxy.">
-<!ENTITY torSettings.enterProxy "Entrez les paramètres de votre proxy.">
-<!ENTITY torSettings.bridgePageTitle "Configuration des relais TOR">
-<!ENTITY torSettings.bridgeQuestion "Est-ce que votre Fournisseur d'Accès Internet (FAI) bloque les connexions au réseau Tor ?">
-<!ENTITY torSettings.bridgeExplanation1 "Si vous ne savez par comment répondre à cette question, choisissez Non (si vous ne pouvez pas vous connecter au réseau Tor sans un bridge, vous pourrez le rajouter plus tard).">
-<!ENTITY torSettings.bridgeExplanation2 "Si vous choisissez Oui, il vous sera demandé de configurer les bridges Tor qui sont des relais non listés et qui rendent plus difficile le blocage du réseau Tor.">
-<!ENTITY torSettings.bridgeSettingsPrompt "Vous pouvez utiliser les bridges fournis ou bien saisir votre liste de bridges personnels.">
+<!ENTITY torSettings.proxyExplanation1 "Dans la plupart des cas, un serveur mandataire local n'est pas requis, mais il pourrait être exigé pour une connexion par un réseau d'entreprise, d'école ou d'université.">
+<!ENTITY torSettings.proxyExplanation2 "Si vous n'êtes pas certain de savoir comment répondre à cette question, vérifiez les paramètres Internet d'un autre navigateur ou les paramètres réseau de votre système pour voir si un serveur mandataire local est requis.">
+<!ENTITY torSettings.enterProxy "Saisir les paramètres du serveur mandataire.">
+<!ENTITY torSettings.bridgePageTitle "Configuration des ponts Tor">
+<!ENTITY torSettings.bridgeQuestion "Votre fournisseur d'accès à Internet (FAI) bloque-t-il ou censure-t-il vos connexions au réseau Tor ?">
+<!ENTITY torSettings.bridgeExplanation1 "Si vous n'êtes pas certain de savoir comment répondre à cette question, choisissez Non (si vous n'arrivez pas à vous connecter au réseau Tor sans pont, pour pourrez en ajouter un ultérieurement).">
+<!ENTITY torSettings.bridgeExplanation2 "Si vous choisissez Oui, il vous sera demandé de configurer des ponts Tor, qui sont des relais non répertoriés et qui rendent plus difficile le blocage du réseau Tor.">
+<!ENTITY torSettings.bridgeSettingsPrompt "Vous pouvez utiliser le jeu de ponts fourni ou vous pouvez obtenir et saisir un jeu de ponts personnalisé.">
<!-- Other: -->
<!ENTITY torsettings.startingTor "En attente du démarrage de Tor...">
-<!ENTITY torsettings.restartTor "Relancer Tor">
+<!ENTITY torsettings.restartTor "Redémarrer Tor">
<!ENTITY torsettings.reconfigTor "Reconfigurer">
-<!ENTITY torsettings.discardSettings.prompt "Vous avez configuré les bridges Tor ou vous avez entré les paramètres de proxy local. Pour faire une connexion directe avec le réseau Tor, ces configurations doivent être supprimés.">
+<!ENTITY torsettings.discardSettings.prompt "Vous avez configuré des ponts Tor ou vous avez saisi des paramètres de mandataire local.  Pour établir une connexion directe vers le réseau Tor, ces paramètres doivent être supprimés.">
<!ENTITY torsettings.discardSettings.proceed "Supprimer les paramètres et se connecter">
-<!ENTITY torsettings.optional "Optionnel">
+<!ENTITY torsettings.optional "Facultatif">
-<!ENTITY torsettings.useProxy.checkbox "Cet ordinateur a besoin d'utiliser un proxy pour accéder à internet.">
-<!ENTITY torsettings.useProxy.type "Type de proxy :">
+<!ENTITY torsettings.useProxy.checkbox "Cet ordinateur doit utiliser un mandataire local pour accéder à Internet">
+<!ENTITY torsettings.useProxy.type "Type de mandataire :">
<!ENTITY torsettings.useProxy.address "Adresse :">
<!ENTITY torsettings.useProxy.address.placeholder "Adresse IP ou nom d'hôte">
<!ENTITY torsettings.useProxy.port "Port :">
@@ -52,24 +52,24 @@
<!ENTITY torsettings.useProxy.type.socks4 "SOCKS 4">
<!ENTITY torsettings.useProxy.type.socks5 "SOCKS 5">
<!ENTITY torsettings.useProxy.type.http "HTTP / HTTPS">
-<!ENTITY torsettings.firewall.checkbox "Cet ordinateur passe par un pare-feu qui autorise uniquement les connexions à certains ports">
+<!ENTITY torsettings.firewall.checkbox "Cet ordinateur passe par un pare-feu qui n'autorise que les connexions à certains ports">
<!ENTITY torsettings.firewall.allowedPorts "Ports autorisés :">
-<!ENTITY torsettings.useBridges.checkbox "Mon Fournisseur d'Accès à Internet (FAI) bloque les connexions au réseau Tor">
-<!ENTITY torsettings.useBridges.default "Se connecter en utilisant les bridges pré-configurés">
-<!ENTITY torsettings.useBridges.note "Chaque type de bridge utilise une méthode différente pour éviter la censure. Si un bridge ne marche pas, essayez de nouveau avec un autre.">
-<!ENTITY torsettings.useBridges.type "Mode de transport:">
-<!ENTITY torsettings.useBridges.custom "Entrez vos ponts personnels">
-<!ENTITY torsettings.useBridges.label "Saisir un ou davantage de relais bridges (un par ligne).">
-<!ENTITY torsettings.useBridges.placeholder "tapez adresse:port">
+<!ENTITY torsettings.useBridges.checkbox "Mon fournisseur d'accès à Internet (FAI) bloque les connexions vers le réseau Tor">
+<!ENTITY torsettings.useBridges.default "Se connecter avec les ponts fournis">
+<!ENTITY torsettings.useBridges.note "Chaque type de pont utilise une méthode différente pour contourner la censure.  Si un pont ne fonctionne pas, ressayez en utilisant un autre type.">
+<!ENTITY torsettings.useBridges.type "Type de transport :">
+<!ENTITY torsettings.useBridges.custom "Saisir les ponts personnalisés">
+<!ENTITY torsettings.useBridges.label "Saisir un ou plusieurs relais-ponts (un par ligne).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
-<!ENTITY torsettings.copyLog "Copier le journal des messages de Tor dans le presse-papier">
-<!ENTITY torsettings.bridgeHelpTitle "Aide pour les bridges">
-<!ENTITY torsettings.bridgeHelp1 "Si vous ne pouvez pas vous connecter au réseau Tor, il se pourrait que votre fournisseur d'accès à Internet (FAI) ou une autre agence bloque le Tor.  Souvent, vous pouvez contourner ce problème en utilisant des bridges Tor, qui sont des relais non listés qui sont plus difficiles à bloquer.">
-<!ENTITY torsettings.bridgeHelp1B "Vous pouvez utiliser la liste fournie et pré-configurée d'adresses de bridges, ou alors obtenir une liste personnalisée d'adresses en utilisant une de ces méthodes :">
+<!ENTITY torsettings.copyLog "Copier le journal de Tor dans le presse-papiers">
+<!ENTITY torsettings.bridgeHelpTitle "Aide sur les relais-ponts">
+<!ENTITY torsettings.bridgeHelp1 "Si vous ne pouvez pas vous connecter au réseau Tor, il se peut que votre fournisseur d'accès à Internet (FAI) ou une autre organisme bloque Tor.  Vous pouvez souvent le contourner en utilisant des ponts Tor qui sont des relais non répertoriés, plus difficiles à bloquer.">
+<!ENTITY torsettings.bridgeHelp1B "Vous pouvez utiliser le jeu préconfiguré d'adresses de ponts fourni ou vous pouvez obtenir un jeu personnalisé d'adresses en utilisant une de ces méthodes :">
<!ENTITY torsettings.bridgeHelp2Heading "Par le Web">
-<!ENTITY torsettings.bridgeHelp2 "Utilisez un navigateur web pour visiter https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp2 "En utilisant un navigateur Web pour visiter https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Par le répondeur automatique de courriel">
-<!ENTITY torsettings.bridgeHelp3.emailDesc "Envoyez un courriel à bridges(a)torproject.org avec la ligne « get bridges » seule dans le corps du message.  Cependant, afin que cela soit plus difficile pour un attaqueur de découvrir de nombreuses adresses de ponts, vous devez envoyer cette demande à partir d'un des fournisseurs de courriel suivants (listés par ordre de préférence) :">
-<!ENTITY torsettings.bridgeHelp3.emailList "https://www.riseup.net, https://mail.google.com, ou https://mail.yahoo.com">
-<!ENTITY torsettings.bridgeHelp4Heading "Par le bureau d'aide">
+<!ENTITY torsettings.bridgeHelp3.emailDesc "Envoyez un courriel à bridges(a)torproject.org avec la ligne « get bridges » seule dans le corps du message.  Cependant, afin qu'il soit plus difficile pour un attaquant de découvrir de nombreuses adresses de ponts, vous devez envoyer cette demande à partir d'un des fournisseurs de courriel suivants (listés par ordre de préférence) :">
+<!ENTITY torsettings.bridgeHelp3.emailList "https://www.riseup.net, https://mail.google.com ou https://mail.yahoo.com">
+<!ENTITY torsettings.bridgeHelp4Heading "Par le centre d'assistance">
<!ENTITY torsettings.bridgeHelp4 "En dernier recours, vous pouvez demander des adresses de ponts en envoyant un courriel poli à help(a)rt.torproject.org.  Veuillez remarquer qu'une personne devra répondre à chaque demande.">
diff --git a/src/chrome/locale/fr/progress.dtd b/src/chrome/locale/fr/progress.dtd
index a7d1857..39a0643 100644
--- a/src/chrome/locale/fr/progress.dtd
+++ b/src/chrome/locale/fr/progress.dtd
@@ -1,4 +1,4 @@
<!ENTITY torprogress.dialog.title "État de Tor">
<!ENTITY torprogress.openSettings "Ouvrir les paramètres">
<!ENTITY torprogress.heading "Connexion au réseau Tor">
-<!ENTITY torprogress.pleaseWait "Veuillez patienter pendant que la connexion au réseau Tor s'établit. Cela peut prendre quelques minutes.">
+<!ENTITY torprogress.pleaseWait "Veuillez patienter pendant que nous établissons une connexion vers le réseau Tor.  Cela pourrait prendre plusieurs minutes.">
diff --git a/src/chrome/locale/fr/torlauncher.properties b/src/chrome/locale/fr/torlauncher.properties
index db5ab28..1b25457 100644
--- a/src/chrome/locale/fr/torlauncher.properties
+++ b/src/chrome/locale/fr/torlauncher.properties
@@ -3,61 +3,61 @@
torlauncher.error_title=Lanceur Tor
-torlauncher.tor_exited_during_startup=Tor s'est terminé durant le démarrage. Cela peut être dû à une erreur dans votre fichier torrc, un bug dans Tor ou un autre programme sur votre système, ou un matériel défaillant. Tant que le problème sous-jacent n'est pas réglé et Tor redémarré, TorBrowser ne démarrera pas.
-torlauncher.tor_exited=Tor s'est terminé de manière inattendue. Cela pourrait être dû à un bogue dans Tor même, à un autre logiciel sur votre système, ou à un défaut matériel. Jusqu'à ce que vous redémarriez Tor, le navigateur Tor sera incapable d'atteindre un site Web. Si le problème persiste, veuillez envoyer une copie de votre historique Tor à l'équipe d'assistance.
-torlauncher.tor_exited2=Redémarrer Tor ne fermera pas les onglets de votre navigateur
+torlauncher.tor_exited_during_startup=Tor s'est fermé pendant le démarrage. Cela peut être dû à une erreur dans votre fichier torrc, un bogue dans Tor ou dans un autre programme de votre système, ou encore à un matériel défectueux. Jusqu'à ce que vous corrigiez le problème sous-jacent et redémarriez Tor, le navigateur Tor ne démarrera pas.
+torlauncher.tor_exited=Tor s'est fermé de manière imprévue. Cela peut être dû à un bogue dans Tor même, un autre programme dans votre système ou un matériel défectueux. Jusqu'à ce que vous redémarriez Tor, le navigateur Tor ne pourra atteindre aucun site. Si le problème persiste, veuillez envoyer une copie de votre journal de Tor à l'équipe de soutien.
+torlauncher.tor_exited2=Redémarrer Tor ne fermera pas les onglets de votre navigateur.
torlauncher.tor_controlconn_failed=Impossible de se connecter au port de contrôle de Tor.
torlauncher.tor_failed_to_start=Tor n'a pas pu démarrer.
-torlauncher.tor_control_failed=Échec lors de la prise de contrôle de Tor.
-torlauncher.tor_bootstrap_failed=Tor n'a pas réussi à établir une connexion au réseau Tor.
-torlauncher.tor_bootstrap_failed_details=%1$S échoué (%2$S).
+torlauncher.tor_control_failed=La prise de contrôle de Tor a échoué.
+torlauncher.tor_bootstrap_failed=Échec lors de la connexion de Tor au réseau Tor.
+torlauncher.tor_bootstrap_failed_details=%1$S a échoué (%2$S).
torlauncher.unable_to_start_tor=Impossible de démarrer Tor.\n\n%S
-torlauncher.tor_missing=L'exécutable Tor est introuvable.
-torlauncher.torrc_missing=Le fichier torrc est manquant et n'a pas pu être créé.
-torlauncher.datadir_missing=Le dossier de données de Tor n'existe pas et n'a pas pu être créé.
-torlauncher.password_hash_missing=Impossible d'obtenir le mot de passe chiffré.
+torlauncher.tor_missing=Il manque l'exécutable Tor.
+torlauncher.torrc_missing=Le fichier torrc manque et n'a pas pu être créé.
+torlauncher.datadir_missing=Le répertoire de données de Tor n'existe pas et n'a pas pu être créé.
+torlauncher.password_hash_missing=Impossible d'obtenir le mot de passe haché.
torlauncher.failed_to_get_settings=Impossible de récupérer les paramètres de Tor.\n\n%S
-torlauncher.failed_to_save_settings=Impossible de sauvegarder les paramètres de Tor.\n\n%S
-torlauncher.ensure_tor_is_running=Veuillez-vous assurer que Tor est lancé.
+torlauncher.failed_to_save_settings=Impossible d'enregistrer les paramètres de Tor.\n\n%S
+torlauncher.ensure_tor_is_running=Veuillez-vous assurer que Tor fonctionne.
-torlauncher.error_proxy_addr_missing=Pour configurer Tor afin qu'il utilise un proxy, vous devez spécifier une adresse IP ou un nom d'hôte ainsi qu'un numéro de port.
-torlauncher.error_proxy_type_missing=Vous devez sélectionner un type de proxy.
-torlauncher.error_bridges_missing=Vous devez spécifier un ou plusieurs bridges.
-torlauncher.error_default_bridges_type_missing=Vous devez sélectionner un type de transport pour les bridges fournis.
-torlauncher.error_bridge_bad_default_type=Aucun des bridges fournis n'a le type de transport %S. Merci d'ajuster vos paramètres.
+torlauncher.error_proxy_addr_missing=Vous devez spécifier à la fois une adresse IP ou un nom d'hôte et un numéro de port afin de configurer Tor pour qu'il utilise un mandataire pour accéder à Internet.
+torlauncher.error_proxy_type_missing=Vous devez choisir le type de mandataire.
+torlauncher.error_bridges_missing=Vous devez spécifier un ou plusieurs ponts.
+torlauncher.error_default_bridges_type_missing=Vous devez sélectionner un type de transport pour les ponts fournis.
+torlauncher.error_bridge_bad_default_type=Aucun des pont fournis n'est disponible pour le type de transport %S, Veuillez ajuster vos paramètres.
torlauncher.recommended_bridge=(recommandé)
torlauncher.connect=Se connecter
-torlauncher.restart_tor=Relancer Tor
+torlauncher.restart_tor=Redémarrer Tor
torlauncher.quit=Quitter
-torlauncher.quit_win=Sortir
+torlauncher.quit_win=Sortie
torlauncher.done=Terminé
-torlauncher.forAssistance=Pour obtenir de l'aide, contactez %S
-torlauncher.forAssistance2=Pour obtenir de l'aide, visiter %S
+torlauncher.forAssistance=Pour de l'assistance, contacter %S
+torlauncher.forAssistance2=Pour de l'assistance, visiter %S
torlauncher.copiedNLogMessages=La copie est terminée. %S messages de journalisation de Tor sont prêts à être coller dans un éditeur de texte ou un courriel.
torlauncher.bootstrapStatus.conn_dir=Connexion à un annuaire de relais
-torlauncher.bootstrapStatus.handshake_dir=Établissement d'une connexion annuaire chiffrée
+torlauncher.bootstrapStatus.handshake_dir=Mise en place d'une connexion chiffrée à l'annuaire
torlauncher.bootstrapStatus.requesting_status=Récupération de l'état du réseau
torlauncher.bootstrapStatus.loading_status=Chargement de l'état du réseau
torlauncher.bootstrapStatus.loading_keys=Chargement des certificats d'autorité
torlauncher.bootstrapStatus.requesting_descriptors=Demande d'informations sur le relais
torlauncher.bootstrapStatus.loading_descriptors=Chargement des informations sur le relais
torlauncher.bootstrapStatus.conn_or=Connexion au réseau Tor
-torlauncher.bootstrapStatus.handshake_or=Réalisation d'un circuit Tor
-torlauncher.bootstrapStatus.done=Connecté au réseau Tor !
+torlauncher.bootstrapStatus.handshake_or=Mise en place d'un circuit Tor
+torlauncher.bootstrapStatus.done=Vous êtes connecté au réseau Tor !
torlauncher.bootstrapWarning.done=effectué
torlauncher.bootstrapWarning.connectrefused=connexion refusée
torlauncher.bootstrapWarning.misc=divers
torlauncher.bootstrapWarning.resourcelimit=ressources insuffisantes
-torlauncher.bootstrapWarning.identity=identité incorrecte
-torlauncher.bootstrapWarning.timeout=temps de connexion expiré
+torlauncher.bootstrapWarning.identity=mauvaise concordance de l'identité
+torlauncher.bootstrapWarning.timeout=expiration du temps de connexion
torlauncher.bootstrapWarning.noroute=pas de route vers l'hôte
torlauncher.bootstrapWarning.ioerror=erreur de lecture/écriture
-torlauncher.bootstrapWarning.pt_missing=un transport câblé est manquant
+torlauncher.bootstrapWarning.pt_missing=le transport enfichable manque
diff --git a/src/chrome/locale/is/torlauncher.properties b/src/chrome/locale/is/torlauncher.properties
index a1d419a..c2ac7ef 100644
--- a/src/chrome/locale/is/torlauncher.properties
+++ b/src/chrome/locale/is/torlauncher.properties
@@ -23,8 +23,8 @@ torlauncher.failed_to_save_settings=Unable to save Tor settings.\n\n%S
torlauncher.ensure_tor_is_running=Please ensure that Tor is running.
torlauncher.error_proxy_addr_missing=You must specify both an IP address or hostname and a port number to configure Tor to use a proxy to access the Internet.
-torlauncher.error_proxy_type_missing=You must select the proxy type.
-torlauncher.error_bridges_missing=You must specify one or more bridges.
+torlauncher.error_proxy_type_missing=Þú verður að velja tegund milliþjóns.
+torlauncher.error_bridges_missing=Þú verður að tilgreina eina eða fleiri brýr.
torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
@@ -37,25 +37,25 @@ torlauncher.quit_win=Fara út
torlauncher.done=Búið
torlauncher.forAssistance=Til að fá hjálp, hafðu samband við %S
-torlauncher.forAssistance2=For assistance, visit %S
+torlauncher.forAssistance2=Til að fá hjálp, heimsæktu %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
-torlauncher.bootstrapStatus.requesting_status=Retrieving network status
-torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.requesting_status=Næ í stöðu netkerfis
+torlauncher.bootstrapStatus.loading_status=Hleð inn stöðu netkerfis
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
torlauncher.bootstrapStatus.conn_or=Tengist Tor-netinu
-torlauncher.bootstrapStatus.handshake_or=Establishing a Tor circuit
+torlauncher.bootstrapStatus.handshake_or=Kem á Tor-rás
torlauncher.bootstrapStatus.done=Tengdur við Tor-netið!
torlauncher.bootstrapWarning.done=búið
torlauncher.bootstrapWarning.connectrefused=tengingu hafnað
torlauncher.bootstrapWarning.misc=ýmislegt
-torlauncher.bootstrapWarning.resourcelimit=insufficient resources
+torlauncher.bootstrapWarning.resourcelimit=ekki nægileg tilföng
torlauncher.bootstrapWarning.identity=auðkenni samsvara ekki
torlauncher.bootstrapWarning.timeout=tenging féll á tíma
torlauncher.bootstrapWarning.noroute=no route to host
diff --git a/src/chrome/locale/ko-KR/network-settings.dtd b/src/chrome/locale/ko-KR/network-settings.dtd
index 1fdc20b..e6e9760 100644
--- a/src/chrome/locale/ko-KR/network-settings.dtd
+++ b/src/chrome/locale/ko-KR/network-settings.dtd
@@ -13,20 +13,20 @@
<!ENTITY torSettings.firstQuestion "무엇이 당신의 상황과 가장 가까운가요?">
<!ENTITY torSettings.configurePrompt1 "이 컴퓨터의 인터넷 연결은 검열 또는 프록시에 연결되어 있습니다.">
-<!ENTITY torSettings.configurePrompt2 "I need to configure bridge or local proxy settings before I connect to the Tor network.">
-<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.configurePrompt2 "저는  Tor 네트워크에 접속하는 데 브릿지나 로컬 프록시 설정을 필요로 합니다.">
+<!ENTITY torSettings.configure "구성">
<!ENTITY torSettings.connectPrompt2 "나는 Tor 네트워크와 직접적인 연결을 하고 싶습니다.">
<!ENTITY torSettings.connectPrompt3 "이것은 대부분의 상황에서 동작할 것입니다.">
<!ENTITY torSettings.connect "연결">
-<!ENTITY torSettings.proxyPageTitle "Local Proxy Configuration">
-<!ENTITY torSettings.proxyQuestion "Does this computer need to use a local proxy to access the Internet?">
+<!ENTITY torSettings.proxyPageTitle "로컬 프록시 구성">
+<!ENTITY torSettings.proxyQuestion "이 컴퓨터로 인터넷에 접근할 때 로컬 프록시를 사용해야 하나요?">
<!-- see https://www.torproject.org/docs/proxychain.html.en -->
-<!ENTITY torSettings.proxyExplanation1 "In most cases a local proxy is not needed, but it may be required when connecting through a company, school, or university network.">
-<!ENTITY torSettings.proxyExplanation2 "If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a local proxy is needed.">
-<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
-<!ENTITY torSettings.bridgePageTitle "Tor Bridges Configuration">
-<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.proxyExplanation1 "당신이 회사, 학교 네트워크에서 접속하지 않는다면, 웬만하면 로컬 프록시는 필요하지 않습니다.">
+<!ENTITY torSettings.proxyExplanation2 "당신이 이에 대해 잘 모른다면, 다른 브라우저의 인터넷 설정이나 시스템 네트워크 설정에서 로컬 프록시가 필요한 지 확인하세요.">
+<!ENTITY torSettings.enterProxy "프록시 정보를 입력하세요.">
+<!ENTITY torSettings.bridgePageTitle "Tor 브릿지 구성">
+<!ENTITY torSettings.bridgeQuestion "당신의 인터넷 서비스 제공자 (ISP)가 Tor 네트워크 연결을 차단 혹은 검열합니까?">
<!ENTITY torSettings.bridgeExplanation1 "If you are not sure how to answer this question, choose No (if you are unable to connect to the Tor network without a bridge, you can add one later).">
<!ENTITY torSettings.bridgeExplanation2 "If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
diff --git a/src/chrome/locale/lo/torlauncher.properties b/src/chrome/locale/lo/torlauncher.properties
index 9959bfb..ce43346 100644
--- a/src/chrome/locale/lo/torlauncher.properties
+++ b/src/chrome/locale/lo/torlauncher.properties
@@ -34,7 +34,7 @@ torlauncher.connect=ເຊື່ອມຕໍ່
torlauncher.restart_tor=Restart Tor
torlauncher.quit=Quit
torlauncher.quit_win=Exit
-torlauncher.done=Done
+torlauncher.done=ແລ້ວໆ
torlauncher.forAssistance=For assistance, contact %S
torlauncher.forAssistance2=For assistance, visit %S
diff --git a/src/chrome/locale/lt/torlauncher.properties b/src/chrome/locale/lt/torlauncher.properties
index 7d85680..ccdb8a8 100644
--- a/src/chrome/locale/lt/torlauncher.properties
+++ b/src/chrome/locale/lt/torlauncher.properties
@@ -3,7 +3,7 @@
torlauncher.error_title=Tor Leistuvas
-torlauncher.tor_exited_during_startup=Tor exited during startup. This might be due to an error in your torrc file, a bug in Tor or another program on your system, or faulty hardware. Until you fix the underlying problem and restart Tor, Tor Browser will not start.
+torlauncher.tor_exited_during_startup=Tor nustojo veikti paleisties metu. Taip galėjo nutikti dėl klaidos jūsų torrc faile, klaidos Tor ar kitoje jūsų sistemos programoje, arba dėl aparatinės įrangos kaltės. Tor naršyklė nepasileis tol, kol neištaisysite slypinčios problemos ir iš naujo nepaleisite Tor.
torlauncher.tor_exited=Tor netikėtai nustojo veikti. Taip galėjo atsitikti arba dėl klaidos Tor arba kitoje programoje, Jūsų sistemoje arba dėl sugedusios techninės įrangos. Kol iš naujo nepaleisite Tor, Tor Naršyklė negalės prisijungti prie jokių interneto tinklalapių. Jei problema kartojasi, prašome išsiųsti Tor įvykių žurnalo kopiją paramos grupei.
torlauncher.tor_exited2=Pakartotinai paleidus Tor naršyklės kortelės nebus uždarytos.
torlauncher.tor_controlconn_failed=Nepavyko prisijungti prie Tor valdymo prievado.
@@ -14,8 +14,8 @@ torlauncher.tor_bootstrap_failed_details=%1$S nepavyko (%2$S).
torlauncher.unable_to_start_tor=Nepavyksta paleisti Tor.\n\n%S
torlauncher.tor_missing=Trūksta Tor vykdomojo failo.
-torlauncher.torrc_missing=The torrc file is missing and could not be created.
-torlauncher.datadir_missing=The Tor data directory does not exist and could not be created.
+torlauncher.torrc_missing=Trūksta torrc failo ir nepavyko jo sukurti.
+torlauncher.datadir_missing=Nėra Tor duomenų katalogo ir nepavyko jo sukurti.
torlauncher.password_hash_missing=Nepavyko perskaityti slaptažodžio santrumpos
torlauncher.failed_to_get_settings=Nepavyko perskaityti Tor nustatymo parametrų.\n\n%S
diff --git a/src/chrome/locale/nb/torlauncher.properties b/src/chrome/locale/nb/torlauncher.properties
index b064dbd..a7c890e 100644
--- a/src/chrome/locale/nb/torlauncher.properties
+++ b/src/chrome/locale/nb/torlauncher.properties
@@ -16,7 +16,7 @@ torlauncher.unable_to_start_tor=Kunne ikke starte Tor.\n\n%S
torlauncher.tor_missing=Den kjørbare Tor-filen finnes ikke.
torlauncher.torrc_missing=torrc-fila mangler og kunne ikke opprettes.
torlauncher.datadir_missing=Datakatalogen til Tor finnes ikke og kunne ikke opprettes.
-torlauncher.password_hash_missing=Kunne ikke hente kryptert passord.
+torlauncher.password_hash_missing=Kunne ikke hente nøkkel-passord.
torlauncher.failed_to_get_settings=Kunne ikke hente Tor-innstillinger.\n\n%S
torlauncher.failed_to_save_settings=Kunne ikke lagre Tor-innstillinger.\n\n%S
@@ -59,5 +59,5 @@ torlauncher.bootstrapWarning.resourcelimit=ikke nok resursser
torlauncher.bootstrapWarning.identity=feil identitet
torlauncher.bootstrapWarning.timeout=forbindelse tidsavbrutt
torlauncher.bootstrapWarning.noroute=ingen rute til vert
-torlauncher.bootstrapWarning.ioerror=lese/skrive feil
-torlauncher.bootstrapWarning.pt_missing=Pluggable Transport mangler
+torlauncher.bootstrapWarning.ioerror=lese/skrive -feil
+torlauncher.bootstrapWarning.pt_missing=pluggbar transport mangler
diff --git a/src/chrome/locale/nn/network-settings.dtd b/src/chrome/locale/nn/network-settings.dtd
index 120bbf4..3b23940 100644
--- a/src/chrome/locale/nn/network-settings.dtd
+++ b/src/chrome/locale/nn/network-settings.dtd
@@ -66,7 +66,7 @@
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these methods:">
-<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2Heading "Gjennom nettet">
<!ENTITY torsettings.bridgeHelp2 "Nytt ein nettlesar for å vitja https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
<!ENTITY torsettings.bridgeHelp3.emailDesc "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from one of the following email providers (listed in order of preference):">
diff --git a/src/chrome/locale/nn/torlauncher.properties b/src/chrome/locale/nn/torlauncher.properties
index 31e5d68..f6b3dd3 100644
--- a/src/chrome/locale/nn/torlauncher.properties
+++ b/src/chrome/locale/nn/torlauncher.properties
@@ -8,24 +8,24 @@ torlauncher.tor_exited=Tor unexpectedly exited. This might be due to a bug in To
torlauncher.tor_exited2=Restarting Tor will not close your browser tabs.
torlauncher.tor_controlconn_failed=Kunne ikkje kopla til Tor-kontrollport.
torlauncher.tor_failed_to_start=Tor klarte ikkje å starta opp.
-torlauncher.tor_control_failed=Failed to take control of Tor.
+torlauncher.tor_control_failed=Klarte ikkje å ta kontroll over Tor.
torlauncher.tor_bootstrap_failed=Tor klarte ikkje å kopla til eit samband med Tor-nettverket.
torlauncher.tor_bootstrap_failed_details=%1$S feila (%2$S).
torlauncher.unable_to_start_tor=Tor kunne ikkje starta.\n\n%S
-torlauncher.tor_missing=The Tor executable is missing.
+torlauncher.tor_missing=Tor køyrbar manglar.
torlauncher.torrc_missing=The torrc file is missing and could not be created.
torlauncher.datadir_missing=The Tor data directory does not exist and could not be created.
torlauncher.password_hash_missing=Failed to get hashed password.
-torlauncher.failed_to_get_settings=Unable to retrieve Tor settings.\n\n%S
-torlauncher.failed_to_save_settings=Unable to save Tor settings.\n\n%S
-torlauncher.ensure_tor_is_running=Please ensure that Tor is running.
+torlauncher.failed_to_get_settings=Klarer ikkje å hente Tor-innstillingar\n\n%S
+torlauncher.failed_to_save_settings=Klarer ikkje å lagre Tor-innstillingar.\n\n%S
+torlauncher.ensure_tor_is_running=Forsikre deg om at Tor køyrer.
torlauncher.error_proxy_addr_missing=You must specify both an IP address or hostname and a port number to configure Tor to use a proxy to access the Internet.
torlauncher.error_proxy_type_missing=You must select the proxy type.
torlauncher.error_bridges_missing=You must specify one or more bridges.
-torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_default_bridges_type_missing=DU må velje ei transporttype for dei medfølgjande bruene.
torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
torlauncher.recommended_bridge=(tilrådd)
@@ -43,21 +43,21 @@ torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to b
torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
-torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.requesting_status=Hentar nettverksstatus
torlauncher.bootstrapStatus.loading_status=Lastar nettverkstatus
-torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
-torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
-torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.loading_keys=Lastar autoritetssertifikat
+torlauncher.bootstrapStatus.requesting_descriptors=Ber om relae-informasjon
+torlauncher.bootstrapStatus.loading_descriptors=Lastar relae-informasjon
torlauncher.bootstrapStatus.conn_or=Koplar til Tor-nettverket
-torlauncher.bootstrapStatus.handshake_or=Establishing a Tor circuit
+torlauncher.bootstrapStatus.handshake_or=Opprettar ein Tor-krets
torlauncher.bootstrapStatus.done=Kopla til Tor-nettverket!
torlauncher.bootstrapWarning.done=ferdig
torlauncher.bootstrapWarning.connectrefused=tilkopling avslått
torlauncher.bootstrapWarning.misc=ymse
-torlauncher.bootstrapWarning.resourcelimit=insufficient resources
+torlauncher.bootstrapWarning.resourcelimit=Mangelfulle resursar
torlauncher.bootstrapWarning.identity=identity mismatch
-torlauncher.bootstrapWarning.timeout=connection timeout
+torlauncher.bootstrapWarning.timeout=tidsavbrot i sambandet
torlauncher.bootstrapWarning.noroute=no route to host
torlauncher.bootstrapWarning.ioerror=lese/skrive-feil
torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/pt-BR/network-settings.dtd b/src/chrome/locale/pt-BR/network-settings.dtd
index bc39531..f7cf95b 100644
--- a/src/chrome/locale/pt-BR/network-settings.dtd
+++ b/src/chrome/locale/pt-BR/network-settings.dtd
@@ -28,7 +28,7 @@
<!ENTITY torSettings.bridgePageTitle "Configuração de Pontes Tor">
<!ENTITY torSettings.bridgeQuestion "Seu provedor de serviços de internet (ISP) bloqueia ou censura conexões à rede Tor?">
<!ENTITY torSettings.bridgeExplanation1 "Se você não tem certeza de como responder essa questão, escolha Não (se você não conseguir conectar à rede Tor sem uma conexão de ponte, você pode adicionar uma mais tarde).">
-<!ENTITY torSettings.bridgeExplanation2 "Se você escolher Sim, será solicitado que você configure Conexões de Ponte Tor, que são transmissores não-listados que dificultam mais o bloqueio de conexões à Rede Tor.">
+<!ENTITY torSettings.bridgeExplanation2 "Ao escolher Sim, o próximo passo a seguir será configurar Tor Bridges, que são transmissores não listados que dificultam o bloqueio de conexões à rede Tor.">
<!ENTITY torSettings.bridgeSettingsPrompt "Você pode usar o conjunto de pontes fornecidas ou obter e adicionar um conjunto de pontes personalizadas. ">
<!-- Other: -->
@@ -59,12 +59,12 @@
<!ENTITY torsettings.useBridges.note "Cada tipo de conexão de ponte usa um método diferente para evitar censura.  Se uma não funcionar, tente novamente usando uma diferente.">
<!ENTITY torsettings.useBridges.type "Tipo de transporte:">
<!ENTITY torsettings.useBridges.custom "Adicionar pontes personalizadas">
-<!ENTITY torsettings.useBridges.label "Insira um ou mais relés de pontes (um por linha).">
+<!ENTITY torsettings.useBridges.label "Inserir um ou mais retransmissores de pontes (um por linha).">
<!ENTITY torsettings.useBridges.placeholder "tipo de endereço:porta">
<!ENTITY torsettings.copyLog "Copiar o registro do Tor na área de transferência">
-<!ENTITY torsettings.bridgeHelpTitle "Ajuda Relé de Ponte">
-<!ENTITY torsettings.bridgeHelp1 "Se for impossível conectar-se à rede Tor, talvez o seu Provedor de Internet (ISP) ou outra instância esteja bloqueando o Tor. . Normalmente, é possível contornar esse problema utilizando Pontes Tor, que são relés ocultos (não listados), mais difíceis de bloquear.">
+<!ENTITY torsettings.bridgeHelpTitle "Ajuda Retransmissor de Ponte">
+<!ENTITY torsettings.bridgeHelp1 "Se for impossível conectar-se à rede Tor, talvez o seu Provedor de Internet (ISP) ou outra instância esteja bloqueando o Tor. . Normalmente, é possível contornar esse problema utilizando Pontes Tor, que são retransmissores não listados, mais difíceis de bloquear.">
<!ENTITY torsettings.bridgeHelp1B "Você pode usar o conjunto de endereços de pontes fornecido, já pré-configurado, ou pode obter um conjunto de endereços personalizados utilizando um dos métodos indicados abaixo:">
<!ENTITY torsettings.bridgeHelp2Heading "Através da Web">
<!ENTITY torsettings.bridgeHelp2 "Use um navegador internet para visitar https://bridges.torproject.org">
diff --git a/src/chrome/locale/pt-BR/torlauncher.properties b/src/chrome/locale/pt-BR/torlauncher.properties
index eafba56..20cb37a 100644
--- a/src/chrome/locale/pt-BR/torlauncher.properties
+++ b/src/chrome/locale/pt-BR/torlauncher.properties
@@ -36,18 +36,18 @@ torlauncher.quit=Encerrar
torlauncher.quit_win=Sair
torlauncher.done=Terminado
-torlauncher.forAssistance=Para assistência, contacte
+torlauncher.forAssistance=Para assistência, contactar %S
torlauncher.forAssistance2=Se você precisar de assistência, por favor visite %S
torlauncher.copiedNLogMessages=Cópia concluída. As mensagens %S do Tor log estão prontas para ser copiadas em um editor de texto ou em uma mensagem de e-mail.
-torlauncher.bootstrapStatus.conn_dir=Conectando a um diretório de relés
+torlauncher.bootstrapStatus.conn_dir=Conectando a um diretório de retransmissores
torlauncher.bootstrapStatus.handshake_dir=Estabelecendo uma conexão de diretório criptografado
torlauncher.bootstrapStatus.requesting_status=Recebendo estado da rede
torlauncher.bootstrapStatus.loading_status=Carregando estado da rede
torlauncher.bootstrapStatus.loading_keys=Carregando certificados de autoridade
-torlauncher.bootstrapStatus.requesting_descriptors=Requisitando informações do relé
-torlauncher.bootstrapStatus.loading_descriptors=Carregando informações do relé
+torlauncher.bootstrapStatus.requesting_descriptors=Requisitando informações do retransmissor
+torlauncher.bootstrapStatus.loading_descriptors=Carregando informações do retransmissor
torlauncher.bootstrapStatus.conn_or=Conectando à rede Tor
torlauncher.bootstrapStatus.handshake_or=Estabelecendo um circuito Tor
torlauncher.bootstrapStatus.done=Conectado à rede Tor!
@@ -60,4 +60,4 @@ torlauncher.bootstrapWarning.identity=identidade conflitante
torlauncher.bootstrapWarning.timeout=tempo limite da conexão excedido
torlauncher.bootstrapWarning.noroute=sem rota para o host
torlauncher.bootstrapWarning.ioerror=erro de leitura/gravação
-torlauncher.bootstrapWarning.pt_missing=transporte plugável ausente
+torlauncher.bootstrapWarning.pt_missing=transportador plugável ausente
diff --git a/src/chrome/locale/th/network-settings.dtd b/src/chrome/locale/th/network-settings.dtd
index 0a4b839..240e71b 100644
--- a/src/chrome/locale/th/network-settings.dtd
+++ b/src/chrome/locale/th/network-settings.dtd
@@ -1,7 +1,7 @@
<!ENTITY torsettings.dialog.title "ตั้งค่าเครือข่าย Tor">
<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
+<!ENTITY torlauncher.localePicker.title "ภาษาของทอร์เบราว์เซอร์">
<!ENTITY torlauncher.localePicker.prompt "โปรดเลือกภาษา">
<!-- For "first run" wizard: -->
@@ -15,7 +15,7 @@
<!ENTITY torSettings.configurePrompt1 "การเชื่อมต่ออินเตอร์เน็ตของคอมพิวเตอร์เครื่องนี้ถูกตรวจสอบหรือมีการใช้พร็อกซี่">
<!ENTITY torSettings.configurePrompt2 "I need to configure bridge or local proxy settings before I connect to the Tor network.">
<!ENTITY torSettings.configure "กำหนดค่า">
-<!ENTITY torSettings.connectPrompt2 "I would like to make a direct connection to the Tor network.">
+<!ENTITY torSettings.connectPrompt2 "ฉันต้องการสร้างการเชื่อมต่อโดยตรงไปยังเครือข่ายทอร์.">
<!ENTITY torSettings.connectPrompt3 "นี่จะทำงานในสถานการณ์ส่วนใหญ่">
<!ENTITY torSettings.connect "เชื่อมต่อ">
@@ -25,7 +25,7 @@
<!ENTITY torSettings.proxyExplanation1 "In most cases a local proxy is not needed, but it may be required when connecting through a company, school, or university network.">
<!ENTITY torSettings.proxyExplanation2 "If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a local proxy is needed.">
<!ENTITY torSettings.enterProxy "ใส่ค่าติดตั้งพร็อกซี">
-<!ENTITY torSettings.bridgePageTitle "Tor Bridges Configuration">
+<!ENTITY torSettings.bridgePageTitle "การตั้งค่า Tor Bridges">
<!ENTITY torSettings.bridgeQuestion "ผู้ให้บริการอินเตอร์เน็ต (ISP) ของคุณปิดกั้นหรือคัดกรองการเชื่อมต่อไปยังเครือข่าย Tor หรือไม่?">
<!ENTITY torSettings.bridgeExplanation1 "If you are not sure how to answer this question, choose No (if you are unable to connect to the Tor network without a bridge, you can add one later).">
<!ENTITY torSettings.bridgeExplanation2 "If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
@@ -60,14 +60,14 @@
<!ENTITY torsettings.useBridges.type "Transport type:">
<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
<!ENTITY torsettings.useBridges.label "ใส่สะพานรีเลย์อย่างน้อยหนึ่งอัน (บรรทัดละอัน)">
-<!ENTITY torsettings.useBridges.placeholder "type address:port">
+<!ENTITY torsettings.useBridges.placeholder "พิมพ์ address:port">
<!ENTITY torsettings.copyLog "คัดลอกปูม Tor ไปที่คลิปบอร์ด">
<!ENTITY torsettings.bridgeHelpTitle "การช่วยเหลือรีเลย์สะพาน">
<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these methods:">
-<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
-<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp2Heading "ผ่านทางเว็บ">
+<!ENTITY torsettings.bridgeHelp2 "ใช้เว็บเบราว์เซอร์เพื่อเข้าชม https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
<!ENTITY torsettings.bridgeHelp3.emailDesc "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from one of the following email providers (listed in order of preference):">
<!ENTITY torsettings.bridgeHelp3.emailList "https://www.riseup.net, https://mail.google.com, or https://mail.yahoo.com">
1
0
commit ed9bda9376fc0b85e5594e7893ae65a79999eb50
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon Jan 16 14:12:01 2017 +0000
Translation updates
---
src/chrome/locale/de/network-settings.dtd | 2 +-
src/chrome/locale/es-MX/network-settings.dtd | 46 ++++++++--------
src/chrome/locale/es/network-settings.dtd | 16 +++---
src/chrome/locale/fr-CA/network-settings.dtd | 28 +++++-----
src/chrome/locale/fr-CA/torlauncher.properties | 32 +++++------
src/chrome/locale/fr/network-settings.dtd | 76 +++++++++++++-------------
src/chrome/locale/fr/progress.dtd | 2 +-
src/chrome/locale/fr/torlauncher.properties | 54 +++++++++---------
src/chrome/locale/is/torlauncher.properties | 14 ++---
src/chrome/locale/ko-KR/network-settings.dtd | 18 +++---
src/chrome/locale/lo/torlauncher.properties | 2 +-
src/chrome/locale/lt/torlauncher.properties | 6 +-
src/chrome/locale/nb/torlauncher.properties | 6 +-
src/chrome/locale/nn/network-settings.dtd | 2 +-
src/chrome/locale/nn/torlauncher.properties | 26 ++++-----
src/chrome/locale/pt-BR/network-settings.dtd | 8 +--
src/chrome/locale/pt-BR/torlauncher.properties | 10 ++--
src/chrome/locale/th/network-settings.dtd | 12 ++--
18 files changed, 180 insertions(+), 180 deletions(-)
diff --git a/src/chrome/locale/de/network-settings.dtd b/src/chrome/locale/de/network-settings.dtd
index 2124fff..c635745 100644
--- a/src/chrome/locale/de/network-settings.dtd
+++ b/src/chrome/locale/de/network-settings.dtd
@@ -69,7 +69,7 @@
<!ENTITY torsettings.bridgeHelp2Heading "Durch das Internet">
<!ENTITY torsettings.bridgeHelp2 "Benutzen Sie einen Browser und besuchen Sie https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Durch die automatische E-Mail-Antwort">
-<!ENTITY torsettings.bridgeHelp3.emailDesc "Schicken Sie eine E-Mail mit dem Text 'get bridges' an bridges(a)torproject.org. Um Missbrauch durch das Auslesen großer Mengen an Brücken zu erschweren, muss Ihre Anfrage jedoch von einem der folgenden E-Mail-Anbieter kommen:">
+<!ENTITY torsettings.bridgeHelp3.emailDesc "Schicken Sie eine E-Mail mit dem Text 'get bridges' an bridges(a)torproject.org. Um Missbrauch durch das Auslesen großer Mengen an Brücken zu erschweren, muss Ihre Anfrage jedoch von einem der folgenden E-Mail-Anbieter kommen (aufgelistet in der Reihenfolge der Präferenz):">
<!ENTITY torsettings.bridgeHelp3.emailList "https://www.riseup.net, https://mail.google.com, oder https://mail.yahoo.com">
<!ENTITY torsettings.bridgeHelp4Heading "Durch die Beratungsstelle">
<!ENTITY torsettings.bridgeHelp4 "Brückenadressen können auch mit Hilfe einer höflichen E-Mail an help(a)rt.torproject.org angefordert werden.  Bitte beachten Sie, dass jede Anfrage einzeln bearbeitet werden muss.">
diff --git a/src/chrome/locale/es-MX/network-settings.dtd b/src/chrome/locale/es-MX/network-settings.dtd
index 99d4197..6dca5f8 100644
--- a/src/chrome/locale/es-MX/network-settings.dtd
+++ b/src/chrome/locale/es-MX/network-settings.dtd
@@ -1,44 +1,44 @@
<!ENTITY torsettings.dialog.title "Configuración de red Tor">
<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
-<!ENTITY torlauncher.localePicker.prompt "Please select a language.">
+<!ENTITY torlauncher.localePicker.title "Lenguaje en el explorador de Tor">
+<!ENTITY torlauncher.localePicker.prompt "Por favor selecciona un lenguaje">
<!-- For "first run" wizard: -->
-<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+<!ENTITY torsettings.prompt "Antes de conectarte a la red de Tor, necesitas proveer información sobre la conexión de Internet de esta computadora. ">
<!ENTITY torSettings.yes "Si">
<!ENTITY torSettings.no "No">
-<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
-<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored or proxied.">
-<!ENTITY torSettings.configurePrompt2 "I need to configure bridge or local proxy settings before I connect to the Tor network.">
-<!ENTITY torSettings.configure "Configure">
-<!ENTITY torSettings.connectPrompt2 "I would like to make a direct connection to the Tor network.">
-<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.firstQuestion "Que describe mejor tu situación? Elige las opciones que apliquen. ">
+<!ENTITY torSettings.configurePrompt1 "La conexión de Internet de esta computadora esta censurada o en un proxy">
+<!ENTITY torSettings.configurePrompt2 "Necesito configurar un puente o ajustes del proxy local antes de que me conecte a la red Tor network.">
+<!ENTITY torSettings.configure "Configurar">
+<!ENTITY torSettings.connectPrompt2 "Me gustaría realizar una conexión directa a la red Tor. ">
+<!ENTITY torSettings.connectPrompt3 "Esto funcionara en la mayoría de las situaciones.">
<!ENTITY torSettings.connect "Conectar">
-<!ENTITY torSettings.proxyPageTitle "Local Proxy Configuration">
-<!ENTITY torSettings.proxyQuestion "Does this computer need to use a local proxy to access the Internet?">
+<!ENTITY torSettings.proxyPageTitle "Configuración del Proxy Local">
+<!ENTITY torSettings.proxyQuestion "Esta computadora necesita usar un proxy local para accesar el Internet?">
<!-- see https://www.torproject.org/docs/proxychain.html.en -->
-<!ENTITY torSettings.proxyExplanation1 "In most cases a local proxy is not needed, but it may be required when connecting through a company, school, or university network.">
-<!ENTITY torSettings.proxyExplanation2 "If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a local proxy is needed.">
-<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
-<!ENTITY torSettings.bridgePageTitle "Tor Bridges Configuration">
-<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeExplanation1 "If you are not sure how to answer this question, choose No (if you are unable to connect to the Tor network without a bridge, you can add one later).">
-<!ENTITY torSettings.bridgeExplanation2 "If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
-<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+<!ENTITY torSettings.proxyExplanation1 "La mayoría de los casos no requieren un proxy local, pero si podría ser requerido cuando te conectas por medio de una compañia, escuela, o red universitaria.">
+<!ENTITY torSettings.proxyExplanation2 "Si no estas seguro de como contestar esta pregunta, ve tu configuración de Internet en otro explorador o checa tu configuración de red del sistema para ver si necesitas un proxy local o no. ">
+<!ENTITY torSettings.enterProxy "Introduce la configuración de proxy">
+<!ENTITY torSettings.bridgePageTitle "Configuracion de puentes Tor">
+<!ENTITY torSettings.bridgeQuestion "Tu proveedor de servicio de Internet (ISP) bloquea o censura conexiones a la red de Tor?">
+<!ENTITY torSettings.bridgeExplanation1 "Si no estas seguro de como contestar la pregunta, escoge No (si no puedes conectarte a la red Tor sin un puente, puedes agregar uno despues).">
+<!ENTITY torSettings.bridgeExplanation2 "Si escoges Si, se te pedira configurar puentes Tor, los cuales son relés no registrados que hace que sea mas dificil bloquear las conexiones de la red Tor. ">
+<!ENTITY torSettings.bridgeSettingsPrompt "Puedes usar el conjunto de puentes o puedes obtener e introducir un conjunto personalizado de puentes.">
<!-- Other: -->
-<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.startingTor "Esperando a que Tor inicie...">
<!ENTITY torsettings.restartTor "Reiniciar Tor">
-<!ENTITY torsettings.reconfigTor "Reconfigure">
+<!ENTITY torsettings.reconfigTor "Reconfigurar">
-<!ENTITY torsettings.discardSettings.prompt "You have configured Tor bridges or you have entered local proxy settings.  To make a direct connection to the Tor network, these settings must be removed.">
-<!ENTITY torsettings.discardSettings.proceed "Remove Settings and Connect">
+<!ENTITY torsettings.discardSettings.prompt "Has configurado los puentes Tor o has introducido un proxy local settings.  Para hacer una conexión directa a la red Tor, esta configuración debe removerse. ">
+<!ENTITY torsettings.discardSettings.proceed "Remover configuración y conectarse">
<!ENTITY torsettings.optional "Optional">
diff --git a/src/chrome/locale/es/network-settings.dtd b/src/chrome/locale/es/network-settings.dtd
index ac15664..91a356a 100644
--- a/src/chrome/locale/es/network-settings.dtd
+++ b/src/chrome/locale/es/network-settings.dtd
@@ -13,7 +13,7 @@
<!ENTITY torSettings.firstQuestion "¿Cuál de las siguientes opciones describe mejor su situación?">
<!ENTITY torSettings.configurePrompt1 "La conexión a Internet de este equipo está censurada o proxificada.">
-<!ENTITY torSettings.configurePrompt2 "Necesito configurar bridge o los ajustes del proxy local antes de conectar a la red Tor. ">
+<!ENTITY torSettings.configurePrompt2 "Necesito configurar los ajustes de puente de red o proxy local antes de conectar a la red Tor. ">
<!ENTITY torSettings.configure "Configurar">
<!ENTITY torSettings.connectPrompt2 "Quisiera hacer una conexión directa a la red Tor.">
<!ENTITY torSettings.connectPrompt3 "Esto funcionará en la mayoría de las situaciones.">
@@ -25,11 +25,11 @@
<!ENTITY torSettings.proxyExplanation1 "En la mayoría de los casos no se requiere un proxy (interpuesto) local, pero puede ser necesario al realizar una conexión a través de una red de empresa, de escuela, o universitaria. ">
<!ENTITY torSettings.proxyExplanation2 "Si no está seguro de cómo responder a esta pregunta, mire la configuración de Internet en otro navegador o compruebe la configuración de red de su sistema para ver si un proxy local es necesario.">
<!ENTITY torSettings.enterProxy "Introduzca los ajustes del proxy.">
-<!ENTITY torSettings.bridgePageTitle "Configuración de puentes Tor">
+<!ENTITY torSettings.bridgePageTitle "Configuración de puentes de red Tor">
<!ENTITY torSettings.bridgeQuestion "Su proveedor de servicios de Internet (ISP) bloquea o censura de alguna forma las conexiones hacia la red Tor?">
-<!ENTITY torSettings.bridgeExplanation1 "Si no está seguro de cómo responder a esta pregunta, elija No (si no puede conectarse a la red Tor sin un puente (bridge), puede añadir uno más adelante).">
-<!ENTITY torSettings.bridgeExplanation2 "Si elige Sí, se le pedirá que configure los puentes (bridges) de Tor, que son repetidores no listados que dificultan el bloqueo de conexiones hacia la red Tor.">
-<!ENTITY torSettings.bridgeSettingsPrompt "Puede utilizar el conjunto de repetidores puente (bridge) proporcionado, o puede obtener e introducir un juego de puentes personalizado.">
+<!ENTITY torSettings.bridgeExplanation1 "Si no está seguro de cómo responder a esta pregunta, elija No (si no puede conectarse a la red Tor sin un puente de red (bridge), puede añadir uno más adelante).">
+<!ENTITY torSettings.bridgeExplanation2 "Si elige Sí, se le pedirá que configure los puentes de red (bridges) de Tor, que son repetidores no listados que dificultan el bloqueo de conexiones hacia la red Tor.">
+<!ENTITY torSettings.bridgeSettingsPrompt "Puede utilizar el conjunto de puentes de red (bridges) proporcionado, o puede obtener e introducir un juego de puentes personalizado.">
<!-- Other: -->
@@ -37,7 +37,7 @@
<!ENTITY torsettings.restartTor "Reiniciar Tor">
<!ENTITY torsettings.reconfigTor "Configurar de nuevo">
-<!ENTITY torsettings.discardSettings.prompt "Ha configurado los puentes (bridges) de Tor o ha introducido los ajustes para proxy (interpuesto) local.  Para realizar una conexión directa a la red Tor, estos ajustes deben ser borrados.">
+<!ENTITY torsettings.discardSettings.prompt "Ha configurado los puentes de red (bridges) de Tor o ha introducido los ajustes para proxy (interpuesto) local.  Para realizar una conexión directa a la red Tor, estos ajustes deben ser borrados.">
<!ENTITY torsettings.discardSettings.proceed "Eliminar ajustes y conectar">
<!ENTITY torsettings.optional "Opcional">
@@ -56,7 +56,7 @@
<!ENTITY torsettings.firewall.allowedPorts "Puertos permitidos:">
<!ENTITY torsettings.useBridges.checkbox "Mi Proveedor de Servicios de Internet (ISP) bloquea las conexiones a la red Tor">
<!ENTITY torsettings.useBridges.default "Conectar con los puentes proporcionados">
-<!ENTITY torsettings.useBridges.note "Cada tipo de puente (bridge) usa un método diferente para evitar la censura.  Si un repetidor puente no funciona, inténtelo de nuevo utilizando otro distinto.">
+<!ENTITY torsettings.useBridges.note "Cada tipo de puente de red usa un método diferente para evitar la censura.  Si un puente no funciona, inténtelo de nuevo utilizando otro distinto.">
<!ENTITY torsettings.useBridges.type "Tipo de transporte:">
<!ENTITY torsettings.useBridges.custom "Introducir puentes personalizados">
<!ENTITY torsettings.useBridges.label "Introduzca uno o más repetidores puente(uno por línea).">
@@ -65,7 +65,7 @@
<!ENTITY torsettings.copyLog "Copiar el registro de mensajes(log) de Tor al portapapeles">
<!ENTITY torsettings.bridgeHelpTitle "Ayuda de repetidores puente ('bridge relays')">
<!ENTITY torsettings.bridgeHelp1 "Si no puede conectarse a la red Tor, podría ser que su proveedor de servicios de Internet (ISP) u otra agencia, esté bloqueando Tor.  A menudo, puede evitar este problema usando puentes ('bridges') de Tor, que son repetidores ('relays') de salida de la red Tor que no son públicos, y es más difícil que sean bloqueados.">
-<!ENTITY torsettings.bridgeHelp1B "Puede usar el juego preconfigurado de direcciones de puentes proporcionado, o puede obtener un juego personalizado de direcciones usando uno de estos métodos:">
+<!ENTITY torsettings.bridgeHelp1B "Puede usar el juego preajustado de direcciones de puentes de red proporcionado, o puede obtener un juego personalizado de direcciones usando uno de estos métodos:">
<!ENTITY torsettings.bridgeHelp2Heading "Mediante la web">
<!ENTITY torsettings.bridgeHelp2 "Use un navegador web para visitar https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Mediante el correo electrónico automático">
diff --git a/src/chrome/locale/fr-CA/network-settings.dtd b/src/chrome/locale/fr-CA/network-settings.dtd
index 448a2d5..a4056e0 100644
--- a/src/chrome/locale/fr-CA/network-settings.dtd
+++ b/src/chrome/locale/fr-CA/network-settings.dtd
@@ -2,7 +2,7 @@
<!-- For locale picker: -->
<!ENTITY torlauncher.localePicker.title "Langue du navigateur Tor">
-<!ENTITY torlauncher.localePicker.prompt "Veuillez choisir une langue">
+<!ENTITY torlauncher.localePicker.prompt "Veuillez choisir une langue.">
<!-- For "first run" wizard: -->
@@ -16,18 +16,18 @@
<!ENTITY torSettings.configurePrompt2 "Je dois paramétrer un pont ou un mandataire local avant de me connecter au réseau Tor.">
<!ENTITY torSettings.configure "Configurer">
<!ENTITY torSettings.connectPrompt2 "J'aimerais établir une connexion directe vers le réseau Tor.">
-<!ENTITY torSettings.connectPrompt3 "Ceci fonctionnera dans la plupart des situations.">
+<!ENTITY torSettings.connectPrompt3 "Cela fonctionnera dans la plupart des situations.">
<!ENTITY torSettings.connect "Se connecter">
<!ENTITY torSettings.proxyPageTitle "Configuration du mandataire local">
<!ENTITY torSettings.proxyQuestion "Cet ordinateur doit-il utiliser un serveur mandataire local pour accéder à Internet?">
<!-- see https://www.torproject.org/docs/proxychain.html.en -->
<!ENTITY torSettings.proxyExplanation1 "Dans la plupart des cas, un serveur mandataire local n'est pas requis, mais il pourrait être exigé pour une connexion par un réseau d'entreprise, d'école ou d'université.">
-<!ENTITY torSettings.proxyExplanation2 "Si vous n'êtes pas certain de savoir comment répondre à cette question, vérifier les paramètres Internet d'un autre navigateur ou vérifier les paramètres réseau de votre système pour voir si un serveur mandataire local est requis.">
+<!ENTITY torSettings.proxyExplanation2 "Si vous n'êtes pas certain de savoir comment répondre à cette question, vérifiez les paramètres Internet d'un autre navigateur ou les paramètres réseau de votre système pour voir si un serveur mandataire local est requis.">
<!ENTITY torSettings.enterProxy "Saisir les paramètres du serveur mandataire.">
<!ENTITY torSettings.bridgePageTitle "Configuration des ponts Tor">
-<!ENTITY torSettings.bridgeQuestion "Votre fournisseur de service Internet (FSI) bloque-t-il ou censure-t-il vos connexions au réseau Tor?">
-<!ENTITY torSettings.bridgeExplanation1 "Si vous n'êtes pas certain de savoir comment répondre à cette question, choisir Non (si vous n'arrivez pas à vous connecter au réseau Tor sans pont, pour pourrez en ajouter un ultérieurement).">
+<!ENTITY torSettings.bridgeQuestion "Votre fournisseur d'accès à Internet (FAI) bloque-t-il ou censure-t-il vos connexions au réseau Tor?">
+<!ENTITY torSettings.bridgeExplanation1 "Si vous n'êtes pas certain de savoir comment répondre à cette question, choisissez Non (si vous n'arrivez pas à vous connecter au réseau Tor sans pont, pour pourrez en ajouter un ultérieurement).">
<!ENTITY torSettings.bridgeExplanation2 "Si vous choisissez Oui, l'on vous demandera de configurer des ponts Tor, qui sont des relais non répertoriés rendant le blocage des connexions au réseau Tor plus difficile.">
<!ENTITY torSettings.bridgeSettingsPrompt "Vous pouvez utiliser le jeu de ponts fourni ou vous pouvez obtenir et saisir un jeu de ponts personnalisé.">
@@ -40,7 +40,7 @@
<!ENTITY torsettings.discardSettings.prompt "Vous avez configuré des ponts Tor ou vous avez saisi des paramètres de mandataire local.  Pour établir une connexion directe vers le réseau Tor, ces paramètres doivent être supprimés.">
<!ENTITY torsettings.discardSettings.proceed "Supprimer les paramètres et se connecter">
-<!ENTITY torsettings.optional "Optionnel">
+<!ENTITY torsettings.optional "Facultatif">
<!ENTITY torsettings.useProxy.checkbox "Cet ordinateur doit utiliser un mandataire local pour accéder à Internet">
<!ENTITY torsettings.useProxy.type "Type de mandataire :">
@@ -54,22 +54,22 @@
<!ENTITY torsettings.useProxy.type.http "HTTP / HTTPS">
<!ENTITY torsettings.firewall.checkbox "Cet ordinateur passe par un pare-feu qui n'autorise que les connexions à certains ports">
<!ENTITY torsettings.firewall.allowedPorts "Ports autorisés :">
-<!ENTITY torsettings.useBridges.checkbox "Mon fournisseur d'accès à Internet (FAI) bloque les connexions au réseau Tor">
+<!ENTITY torsettings.useBridges.checkbox "Mon fournisseur d'accès à Internet (FAI) bloque les connexions vers le réseau Tor">
<!ENTITY torsettings.useBridges.default "Se connecter avec les ponts fournis">
-<!ENTITY torsettings.useBridges.note "Chaque type de pont utilise une méthode différente pour contourner la censure.  Si un pont ne fonctionne pas, ressayer en utilisant un autre type.">
+<!ENTITY torsettings.useBridges.note "Chaque type de pont utilise une méthode différente pour contourner la censure.  Si un pont ne fonctionne pas, ressayez en utilisant un autre type.">
<!ENTITY torsettings.useBridges.type "Type de transport :">
<!ENTITY torsettings.useBridges.custom "Saisir les ponts personnalisés">
<!ENTITY torsettings.useBridges.label "Saisir un ou plusieurs relais-ponts (un par ligne).">
<!ENTITY torsettings.useBridges.placeholder "type adresse:port">
-<!ENTITY torsettings.copyLog "Copier le journal de Tor dans le presse-papier">
-<!ENTITY torsettings.bridgeHelpTitle "Aide pour les relais-ponts">
+<!ENTITY torsettings.copyLog "Copier le journal de Tor dans le presse-papiers">
+<!ENTITY torsettings.bridgeHelpTitle "Aide sur les relais-ponts">
<!ENTITY torsettings.bridgeHelp1 "Si vous ne pouvez pas vous connecter au réseau Tor, il se peut que votre fournisseur d'accès à Internet (FAI) ou une autre organisme bloque Tor.  Vous pouvez souvent le contourner en utilisant des ponts Tor qui sont des relais non répertoriés, plus difficiles à bloquer.">
<!ENTITY torsettings.bridgeHelp1B "Vous pouvez utiliser le jeu préconfiguré d'adresses de ponts fourni ou vous pouvez obtenir un jeu personnalisé d'adresses en utilisant une de ces méthodes :">
-<!ENTITY torsettings.bridgeHelp2Heading "par le Web">
-<!ENTITY torsettings.bridgeHelp2 "en utilisant un navigateur Web pour visiter https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp2Heading "Par le Web">
+<!ENTITY torsettings.bridgeHelp2 "En utilisant un navigateur Web pour visiter https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Par le répondeur automatique de courriel">
-<!ENTITY torsettings.bridgeHelp3.emailDesc "Envoyez un courriel à bridges(a)torproject.org avec la ligne « get bridges » seule dans le corps du message.  Cependant, afin que cela soit plus difficile pour un attaqueur de découvrir de nombreuses adresses de ponts, vous devez envoyer cette demande à partir d'un des fournisseurs de courriel suivants (listés par ordre de préférence) :">
+<!ENTITY torsettings.bridgeHelp3.emailDesc "Envoyez un courriel à bridges(a)torproject.org avec la ligne « get bridges » seule dans le corps du message.  Cependant, afin qu'il soit plus difficile pour un attaquant de découvrir de nombreuses adresses de ponts, vous devez envoyer cette demande à partir d'un des fournisseurs de courriel suivants (listés par ordre de préférence) :">
<!ENTITY torsettings.bridgeHelp3.emailList "https://www.riseup.net, https://mail.google.com ou https://mail.yahoo.com">
-<!ENTITY torsettings.bridgeHelp4Heading "par le centre d'assistance">
+<!ENTITY torsettings.bridgeHelp4Heading "Par le centre d'assistance">
<!ENTITY torsettings.bridgeHelp4 "En dernier recours, vous pouvez demander des adresses de ponts en envoyant un courriel poli à help(a)rt.torproject.org.  Veuillez remarquer qu'une personne devra répondre à chaque demande.">
diff --git a/src/chrome/locale/fr-CA/torlauncher.properties b/src/chrome/locale/fr-CA/torlauncher.properties
index c2d4216..e213ea0 100644
--- a/src/chrome/locale/fr-CA/torlauncher.properties
+++ b/src/chrome/locale/fr-CA/torlauncher.properties
@@ -3,8 +3,8 @@
torlauncher.error_title=Lanceur Tor
-torlauncher.tor_exited_during_startup=Tor s'est fermé pendant le démarrage. Ceci peut être dû à une erreur dans votre fichier torrc, un bogue dans Tor ou dans un autre programme de votre système, ou encore à un matériel défectueux. Jusqu'à ce que vous corrigiez le problème sous-jacent et redémarriez Tor, le navigateur Tor ne démarrera pas.
-torlauncher.tor_exited=Tor a quitté de manière imprévue. Ceci peut être dû à un bogue dans Tor même, un autre programme dans votre système ou un matériel défectueux. Jusqu'à ce que vous redémarriez Tor, le navigateur Tor ne sera capable d'atteindre aucun site. Si le problème persiste, veuillez envoyer une copie de votre journal de Tor à l'équipe de soutien.
+torlauncher.tor_exited_during_startup=Tor s'est fermé pendant le démarrage. Cela peut être dû à une erreur dans votre fichier torrc, un bogue dans Tor ou dans un autre programme de votre système, ou encore à un matériel défectueux. Jusqu'à ce que vous corrigiez le problème sous-jacent et redémarriez Tor, le navigateur Tor ne démarrera pas.
+torlauncher.tor_exited=Tor s'est fermé de manière imprévue. Cela peut être dû à un bogue dans Tor même, un autre programme dans votre système ou un matériel défectueux. Jusqu'à ce que vous redémarriez Tor, le navigateur Tor ne pourra atteindre aucun site. Si le problème persiste, veuillez envoyer une copie de votre journal de Tor à l'équipe de soutien.
torlauncher.tor_exited2=Redémarrer Tor ne fermera par les onglets de votre navigateur.
torlauncher.tor_controlconn_failed=Impossible de se connecter au port de contrôle de Tor.
torlauncher.tor_failed_to_start=Tor n'a pas pu démarrer.
@@ -13,30 +13,30 @@ torlauncher.tor_bootstrap_failed=Échec lors de la connexion de Tor au réseau T
torlauncher.tor_bootstrap_failed_details=%1$S a échoué (%2$S).
torlauncher.unable_to_start_tor=Impossible de démarrer Tor.\n\n%S
-torlauncher.tor_missing=L'exécutable Tor est manquant.
-torlauncher.torrc_missing=Le fichier torrc est manquant et n'a pas pu être créé.
-torlauncher.datadir_missing=Le répertoire de données Tor n'existe pas et n'a pas pu être créé.
+torlauncher.tor_missing=Il manque l'exécutable Tor.
+torlauncher.torrc_missing=Le fichier torrc manque et n'a pas pu être créé.
+torlauncher.datadir_missing=Le répertoire de données de Tor n'existe pas et n'a pas pu être créé.
torlauncher.password_hash_missing=Impossible d'obtenir le mot de passe haché.
torlauncher.failed_to_get_settings=Impossible de récupérer les paramètres de Tor.\n\n%S
-torlauncher.failed_to_save_settings=Impossible de sauvegarder les paramètres de Tor.\n\n%S
-torlauncher.ensure_tor_is_running=Veuillez-vous assurer que Tor tourne.
+torlauncher.failed_to_save_settings=Impossible d'enregistrer les paramètres de Tor.\n\n%S
+torlauncher.ensure_tor_is_running=Veuillez-vous assurer que Tor fonctionne.
-torlauncher.error_proxy_addr_missing=Vous devez spécifier à la fois une adresse IP ou un nom d'hôte et un numéro de port afin de configurer Tor à l'usage d'un mandataire pour accéder à Internet.
+torlauncher.error_proxy_addr_missing=Vous devez spécifier à la fois une adresse IP ou un nom d'hôte et un numéro de port afin de configurer Tor pour qu'il utilise un mandataire pour accéder à Internet.
torlauncher.error_proxy_type_missing=Vous devez choisir le type de mandataire.
torlauncher.error_bridges_missing=Vous devez spécifier un ou plusieurs ponts.
torlauncher.error_default_bridges_type_missing=Vous devez choisir un type de transport pour les ponts fournis.
-torlauncher.error_bridge_bad_default_type=Aucun pont n'est disponible pour le type de transport %S, Veuillez ajuster vos paramètres.
+torlauncher.error_bridge_bad_default_type=Aucun des pont fournis n'est disponible pour le type de transport %S, Veuillez ajuster vos paramètres.
torlauncher.recommended_bridge=(recommandé)
torlauncher.connect=Se connecter
torlauncher.restart_tor=Redémarrer Tor
torlauncher.quit=Quitter
-torlauncher.quit_win=Sortir
-torlauncher.done=Fait
+torlauncher.quit_win=Sortie
+torlauncher.done=Terminé
-torlauncher.forAssistance=Pour l'assistance, contacter %S
+torlauncher.forAssistance=Pour de l'assistance, contacter %S
torlauncher.forAssistance2=Pour de l'assistance, visiter %S
torlauncher.copiedNLogMessages=La copie est terminée. %S messages de journalisation de Tor sont prêts à être coller dans un éditeur de texte ou un courriel.
@@ -46,11 +46,11 @@ torlauncher.bootstrapStatus.handshake_dir=Mise en place d'une connexion chiffré
torlauncher.bootstrapStatus.requesting_status=Récupération de l'état du réseau
torlauncher.bootstrapStatus.loading_status=Chargement de l'état du réseau
torlauncher.bootstrapStatus.loading_keys=Chargement des certificats d'autorité
-torlauncher.bootstrapStatus.requesting_descriptors=Demande des informations de relais
-torlauncher.bootstrapStatus.loading_descriptors=Chargement des informations de relais
+torlauncher.bootstrapStatus.requesting_descriptors=Demande d'informations sur le relais
+torlauncher.bootstrapStatus.loading_descriptors=Chargement des informations sur le relais
torlauncher.bootstrapStatus.conn_or=Connexion au réseau Tor
torlauncher.bootstrapStatus.handshake_or=Mise en place d'un circuit Tor
-torlauncher.bootstrapStatus.done=Connecté au réseau Tor!
+torlauncher.bootstrapStatus.done=Vous êtes connecté au réseau Tor!
torlauncher.bootstrapWarning.done=effectué
torlauncher.bootstrapWarning.connectrefused=connexion refusée
@@ -60,4 +60,4 @@ torlauncher.bootstrapWarning.identity=mauvaise concordance de l'identité
torlauncher.bootstrapWarning.timeout=expiration du temps de connexion
torlauncher.bootstrapWarning.noroute=pas de route vers l'hôte
torlauncher.bootstrapWarning.ioerror=erreur de lecture/écriture
-torlauncher.bootstrapWarning.pt_missing=transport enfichable manquant
+torlauncher.bootstrapWarning.pt_missing=le transport enfichable manque
diff --git a/src/chrome/locale/fr/network-settings.dtd b/src/chrome/locale/fr/network-settings.dtd
index 859c2ee..078424e 100644
--- a/src/chrome/locale/fr/network-settings.dtd
+++ b/src/chrome/locale/fr/network-settings.dtd
@@ -1,49 +1,49 @@
<!ENTITY torsettings.dialog.title "Paramètres du réseau Tor">
<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Langue du Navigateur Tor">
-<!ENTITY torlauncher.localePicker.prompt "Merci de sélectionner une langue.">
+<!ENTITY torlauncher.localePicker.title "Langue du navigateur Tor">
+<!ENTITY torlauncher.localePicker.prompt "Veuillez choisir une langue.">
<!-- For "first run" wizard: -->
-<!ENTITY torsettings.prompt "Vous devez fournir des informations concernant la connexion à Internet de cet ordinateur afin de pouvoir vous connecter au réseau Tor.">
+<!ENTITY torsettings.prompt "Avant de vous connecter au réseau Tor, vous devez fournir des informations sur la connexion Internet de cet ordinateur.">
<!ENTITY torSettings.yes "Oui">
<!ENTITY torSettings.no "Non">
-<!ENTITY torSettings.firstQuestion "Laquelle des phrases suivantes décrit le mieux votre situation ?">
-<!ENTITY torSettings.configurePrompt1 "Le connexion internet de cet ordinateur est restreinte (censurée) ou passe par un proxy.">
-<!ENTITY torSettings.configurePrompt2 "Je dois configurer le bridge ou les paramètres du proxy avant de me connecter au réseau Tor.">
+<!ENTITY torSettings.firstQuestion "Laquelle des suivantes décrit le mieux votre situation ?javascript:;">
+<!ENTITY torSettings.configurePrompt1 "La connexion Internet de cet ordinateur est censurée ou relayée.">
+<!ENTITY torSettings.configurePrompt2 "Je dois paramétrer un pont ou un mandataire local avant de me connecter au réseau Tor.">
<!ENTITY torSettings.configure "Configurer">
-<!ENTITY torSettings.connectPrompt2 "Je voudrais faire une connexion directe au réseau Tor.">
+<!ENTITY torSettings.connectPrompt2 "J'aimerais établir une connexion directe vers le réseau Tor.">
<!ENTITY torSettings.connectPrompt3 "Cela fonctionnera dans la plupart des situations.">
<!ENTITY torSettings.connect "Se connecter">
-<!ENTITY torSettings.proxyPageTitle "Configuration du proxy local">
-<!ENTITY torSettings.proxyQuestion "Est-ce que cet ordinateur a besoin d'utiliser un proxy pour accéder à internet ?">
+<!ENTITY torSettings.proxyPageTitle "Configuration du mandataire local">
+<!ENTITY torSettings.proxyQuestion "Cet ordinateur doit-il utiliser un serveur mandataire local pour accéder à Internet ?">
<!-- see https://www.torproject.org/docs/proxychain.html.en -->
-<!ENTITY torSettings.proxyExplanation1 "Dans la plupart des cas le proxy local n'est pas nécessaire, mais il peut être exigé pour une connexion dans un réseau d'entreprise, d'école ou universitaire.">
-<!ENTITY torSettings.proxyExplanation2 "Si vous n'êtes pas certain de savoir comment répondre à cette question, regardez les paramètres Internet d'un autre navigateur ou les paramètres réseaux de votre système afin de vérifier si vous avez besoin d'un proxy.">
-<!ENTITY torSettings.enterProxy "Entrez les paramètres de votre proxy.">
-<!ENTITY torSettings.bridgePageTitle "Configuration des relais TOR">
-<!ENTITY torSettings.bridgeQuestion "Est-ce que votre Fournisseur d'Accès Internet (FAI) bloque les connexions au réseau Tor ?">
-<!ENTITY torSettings.bridgeExplanation1 "Si vous ne savez par comment répondre à cette question, choisissez Non (si vous ne pouvez pas vous connecter au réseau Tor sans un bridge, vous pourrez le rajouter plus tard).">
-<!ENTITY torSettings.bridgeExplanation2 "Si vous choisissez Oui, il vous sera demandé de configurer les bridges Tor qui sont des relais non listés et qui rendent plus difficile le blocage du réseau Tor.">
-<!ENTITY torSettings.bridgeSettingsPrompt "Vous pouvez utiliser les bridges fournis ou bien saisir votre liste de bridges personnels.">
+<!ENTITY torSettings.proxyExplanation1 "Dans la plupart des cas, un serveur mandataire local n'est pas requis, mais il pourrait être exigé pour une connexion par un réseau d'entreprise, d'école ou d'université.">
+<!ENTITY torSettings.proxyExplanation2 "Si vous n'êtes pas certain de savoir comment répondre à cette question, vérifiez les paramètres Internet d'un autre navigateur ou les paramètres réseau de votre système pour voir si un serveur mandataire local est requis.">
+<!ENTITY torSettings.enterProxy "Saisir les paramètres du serveur mandataire.">
+<!ENTITY torSettings.bridgePageTitle "Configuration des ponts Tor">
+<!ENTITY torSettings.bridgeQuestion "Votre fournisseur d'accès à Internet (FAI) bloque-t-il ou censure-t-il vos connexions au réseau Tor ?">
+<!ENTITY torSettings.bridgeExplanation1 "Si vous n'êtes pas certain de savoir comment répondre à cette question, choisissez Non (si vous n'arrivez pas à vous connecter au réseau Tor sans pont, pour pourrez en ajouter un ultérieurement).">
+<!ENTITY torSettings.bridgeExplanation2 "Si vous choisissez Oui, il vous sera demandé de configurer des ponts Tor, qui sont des relais non répertoriés et qui rendent plus difficile le blocage du réseau Tor.">
+<!ENTITY torSettings.bridgeSettingsPrompt "Vous pouvez utiliser le jeu de ponts fourni ou vous pouvez obtenir et saisir un jeu de ponts personnalisé.">
<!-- Other: -->
<!ENTITY torsettings.startingTor "En attente du démarrage de Tor...">
-<!ENTITY torsettings.restartTor "Relancer Tor">
+<!ENTITY torsettings.restartTor "Redémarrer Tor">
<!ENTITY torsettings.reconfigTor "Reconfigurer">
-<!ENTITY torsettings.discardSettings.prompt "Vous avez configuré les bridges Tor ou vous avez entré les paramètres de proxy local. Pour faire une connexion directe avec le réseau Tor, ces configurations doivent être supprimés.">
+<!ENTITY torsettings.discardSettings.prompt "Vous avez configuré des ponts Tor ou vous avez saisi des paramètres de mandataire local.  Pour établir une connexion directe vers le réseau Tor, ces paramètres doivent être supprimés.">
<!ENTITY torsettings.discardSettings.proceed "Supprimer les paramètres et se connecter">
-<!ENTITY torsettings.optional "Optionnel">
+<!ENTITY torsettings.optional "Facultatif">
-<!ENTITY torsettings.useProxy.checkbox "Cet ordinateur a besoin d'utiliser un proxy pour accéder à internet.">
-<!ENTITY torsettings.useProxy.type "Type de proxy :">
+<!ENTITY torsettings.useProxy.checkbox "Cet ordinateur doit utiliser un mandataire local pour accéder à Internet">
+<!ENTITY torsettings.useProxy.type "Type de mandataire :">
<!ENTITY torsettings.useProxy.address "Adresse :">
<!ENTITY torsettings.useProxy.address.placeholder "Adresse IP ou nom d'hôte">
<!ENTITY torsettings.useProxy.port "Port :">
@@ -52,24 +52,24 @@
<!ENTITY torsettings.useProxy.type.socks4 "SOCKS 4">
<!ENTITY torsettings.useProxy.type.socks5 "SOCKS 5">
<!ENTITY torsettings.useProxy.type.http "HTTP / HTTPS">
-<!ENTITY torsettings.firewall.checkbox "Cet ordinateur passe par un pare-feu qui autorise uniquement les connexions à certains ports">
+<!ENTITY torsettings.firewall.checkbox "Cet ordinateur passe par un pare-feu qui n'autorise que les connexions à certains ports">
<!ENTITY torsettings.firewall.allowedPorts "Ports autorisés :">
-<!ENTITY torsettings.useBridges.checkbox "Mon Fournisseur d'Accès à Internet (FAI) bloque les connexions au réseau Tor">
-<!ENTITY torsettings.useBridges.default "Se connecter en utilisant les bridges pré-configurés">
-<!ENTITY torsettings.useBridges.note "Chaque type de bridge utilise une méthode différente pour éviter la censure. Si un bridge ne marche pas, essayez de nouveau avec un autre.">
-<!ENTITY torsettings.useBridges.type "Mode de transport:">
-<!ENTITY torsettings.useBridges.custom "Entrez vos ponts personnels">
-<!ENTITY torsettings.useBridges.label "Saisir un ou davantage de relais bridges (un par ligne).">
-<!ENTITY torsettings.useBridges.placeholder "tapez adresse:port">
+<!ENTITY torsettings.useBridges.checkbox "Mon fournisseur d'accès à Internet (FAI) bloque les connexions vers le réseau Tor">
+<!ENTITY torsettings.useBridges.default "Se connecter avec les ponts fournis">
+<!ENTITY torsettings.useBridges.note "Chaque type de pont utilise une méthode différente pour contourner la censure.  Si un pont ne fonctionne pas, ressayez en utilisant un autre type.">
+<!ENTITY torsettings.useBridges.type "Type de transport :">
+<!ENTITY torsettings.useBridges.custom "Saisir les ponts personnalisés">
+<!ENTITY torsettings.useBridges.label "Saisir un ou plusieurs relais-ponts (un par ligne).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
-<!ENTITY torsettings.copyLog "Copier le journal des messages de Tor dans le presse-papier">
-<!ENTITY torsettings.bridgeHelpTitle "Aide pour les bridges">
-<!ENTITY torsettings.bridgeHelp1 "Si vous ne pouvez pas vous connecter au réseau Tor, il se pourrait que votre fournisseur d'accès à Internet (FAI) ou une autre agence bloque le Tor.  Souvent, vous pouvez contourner ce problème en utilisant des bridges Tor, qui sont des relais non listés qui sont plus difficiles à bloquer.">
-<!ENTITY torsettings.bridgeHelp1B "Vous pouvez utiliser la liste fournie et pré-configurée d'adresses de bridges, ou alors obtenir une liste personnalisée d'adresses en utilisant une de ces méthodes :">
+<!ENTITY torsettings.copyLog "Copier le journal de Tor dans le presse-papiers">
+<!ENTITY torsettings.bridgeHelpTitle "Aide sur les relais-ponts">
+<!ENTITY torsettings.bridgeHelp1 "Si vous ne pouvez pas vous connecter au réseau Tor, il se peut que votre fournisseur d'accès à Internet (FAI) ou une autre organisme bloque Tor.  Vous pouvez souvent le contourner en utilisant des ponts Tor qui sont des relais non répertoriés, plus difficiles à bloquer.">
+<!ENTITY torsettings.bridgeHelp1B "Vous pouvez utiliser le jeu préconfiguré d'adresses de ponts fourni ou vous pouvez obtenir un jeu personnalisé d'adresses en utilisant une de ces méthodes :">
<!ENTITY torsettings.bridgeHelp2Heading "Par le Web">
-<!ENTITY torsettings.bridgeHelp2 "Utilisez un navigateur web pour visiter https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp2 "En utilisant un navigateur Web pour visiter https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Par le répondeur automatique de courriel">
-<!ENTITY torsettings.bridgeHelp3.emailDesc "Envoyez un courriel à bridges(a)torproject.org avec la ligne « get bridges » seule dans le corps du message.  Cependant, afin que cela soit plus difficile pour un attaqueur de découvrir de nombreuses adresses de ponts, vous devez envoyer cette demande à partir d'un des fournisseurs de courriel suivants (listés par ordre de préférence) :">
-<!ENTITY torsettings.bridgeHelp3.emailList "https://www.riseup.net, https://mail.google.com, ou https://mail.yahoo.com">
-<!ENTITY torsettings.bridgeHelp4Heading "Par le bureau d'aide">
+<!ENTITY torsettings.bridgeHelp3.emailDesc "Envoyez un courriel à bridges(a)torproject.org avec la ligne « get bridges » seule dans le corps du message.  Cependant, afin qu'il soit plus difficile pour un attaquant de découvrir de nombreuses adresses de ponts, vous devez envoyer cette demande à partir d'un des fournisseurs de courriel suivants (listés par ordre de préférence) :">
+<!ENTITY torsettings.bridgeHelp3.emailList "https://www.riseup.net, https://mail.google.com ou https://mail.yahoo.com">
+<!ENTITY torsettings.bridgeHelp4Heading "Par le centre d'assistance">
<!ENTITY torsettings.bridgeHelp4 "En dernier recours, vous pouvez demander des adresses de ponts en envoyant un courriel poli à help(a)rt.torproject.org.  Veuillez remarquer qu'une personne devra répondre à chaque demande.">
diff --git a/src/chrome/locale/fr/progress.dtd b/src/chrome/locale/fr/progress.dtd
index a7d1857..39a0643 100644
--- a/src/chrome/locale/fr/progress.dtd
+++ b/src/chrome/locale/fr/progress.dtd
@@ -1,4 +1,4 @@
<!ENTITY torprogress.dialog.title "État de Tor">
<!ENTITY torprogress.openSettings "Ouvrir les paramètres">
<!ENTITY torprogress.heading "Connexion au réseau Tor">
-<!ENTITY torprogress.pleaseWait "Veuillez patienter pendant que la connexion au réseau Tor s'établit. Cela peut prendre quelques minutes.">
+<!ENTITY torprogress.pleaseWait "Veuillez patienter pendant que nous établissons une connexion vers le réseau Tor.  Cela pourrait prendre plusieurs minutes.">
diff --git a/src/chrome/locale/fr/torlauncher.properties b/src/chrome/locale/fr/torlauncher.properties
index db5ab28..1b25457 100644
--- a/src/chrome/locale/fr/torlauncher.properties
+++ b/src/chrome/locale/fr/torlauncher.properties
@@ -3,61 +3,61 @@
torlauncher.error_title=Lanceur Tor
-torlauncher.tor_exited_during_startup=Tor s'est terminé durant le démarrage. Cela peut être dû à une erreur dans votre fichier torrc, un bug dans Tor ou un autre programme sur votre système, ou un matériel défaillant. Tant que le problème sous-jacent n'est pas réglé et Tor redémarré, TorBrowser ne démarrera pas.
-torlauncher.tor_exited=Tor s'est terminé de manière inattendue. Cela pourrait être dû à un bogue dans Tor même, à un autre logiciel sur votre système, ou à un défaut matériel. Jusqu'à ce que vous redémarriez Tor, le navigateur Tor sera incapable d'atteindre un site Web. Si le problème persiste, veuillez envoyer une copie de votre historique Tor à l'équipe d'assistance.
-torlauncher.tor_exited2=Redémarrer Tor ne fermera pas les onglets de votre navigateur
+torlauncher.tor_exited_during_startup=Tor s'est fermé pendant le démarrage. Cela peut être dû à une erreur dans votre fichier torrc, un bogue dans Tor ou dans un autre programme de votre système, ou encore à un matériel défectueux. Jusqu'à ce que vous corrigiez le problème sous-jacent et redémarriez Tor, le navigateur Tor ne démarrera pas.
+torlauncher.tor_exited=Tor s'est fermé de manière imprévue. Cela peut être dû à un bogue dans Tor même, un autre programme dans votre système ou un matériel défectueux. Jusqu'à ce que vous redémarriez Tor, le navigateur Tor ne pourra atteindre aucun site. Si le problème persiste, veuillez envoyer une copie de votre journal de Tor à l'équipe de soutien.
+torlauncher.tor_exited2=Redémarrer Tor ne fermera pas les onglets de votre navigateur.
torlauncher.tor_controlconn_failed=Impossible de se connecter au port de contrôle de Tor.
torlauncher.tor_failed_to_start=Tor n'a pas pu démarrer.
-torlauncher.tor_control_failed=Échec lors de la prise de contrôle de Tor.
-torlauncher.tor_bootstrap_failed=Tor n'a pas réussi à établir une connexion au réseau Tor.
-torlauncher.tor_bootstrap_failed_details=%1$S échoué (%2$S).
+torlauncher.tor_control_failed=La prise de contrôle de Tor a échoué.
+torlauncher.tor_bootstrap_failed=Échec lors de la connexion de Tor au réseau Tor.
+torlauncher.tor_bootstrap_failed_details=%1$S a échoué (%2$S).
torlauncher.unable_to_start_tor=Impossible de démarrer Tor.\n\n%S
-torlauncher.tor_missing=L'exécutable Tor est introuvable.
-torlauncher.torrc_missing=Le fichier torrc est manquant et n'a pas pu être créé.
-torlauncher.datadir_missing=Le dossier de données de Tor n'existe pas et n'a pas pu être créé.
-torlauncher.password_hash_missing=Impossible d'obtenir le mot de passe chiffré.
+torlauncher.tor_missing=Il manque l'exécutable Tor.
+torlauncher.torrc_missing=Le fichier torrc manque et n'a pas pu être créé.
+torlauncher.datadir_missing=Le répertoire de données de Tor n'existe pas et n'a pas pu être créé.
+torlauncher.password_hash_missing=Impossible d'obtenir le mot de passe haché.
torlauncher.failed_to_get_settings=Impossible de récupérer les paramètres de Tor.\n\n%S
-torlauncher.failed_to_save_settings=Impossible de sauvegarder les paramètres de Tor.\n\n%S
-torlauncher.ensure_tor_is_running=Veuillez-vous assurer que Tor est lancé.
+torlauncher.failed_to_save_settings=Impossible d'enregistrer les paramètres de Tor.\n\n%S
+torlauncher.ensure_tor_is_running=Veuillez-vous assurer que Tor fonctionne.
-torlauncher.error_proxy_addr_missing=Pour configurer Tor afin qu'il utilise un proxy, vous devez spécifier une adresse IP ou un nom d'hôte ainsi qu'un numéro de port.
-torlauncher.error_proxy_type_missing=Vous devez sélectionner un type de proxy.
-torlauncher.error_bridges_missing=Vous devez spécifier un ou plusieurs bridges.
-torlauncher.error_default_bridges_type_missing=Vous devez sélectionner un type de transport pour les bridges fournis.
-torlauncher.error_bridge_bad_default_type=Aucun des bridges fournis n'a le type de transport %S. Merci d'ajuster vos paramètres.
+torlauncher.error_proxy_addr_missing=Vous devez spécifier à la fois une adresse IP ou un nom d'hôte et un numéro de port afin de configurer Tor pour qu'il utilise un mandataire pour accéder à Internet.
+torlauncher.error_proxy_type_missing=Vous devez choisir le type de mandataire.
+torlauncher.error_bridges_missing=Vous devez spécifier un ou plusieurs ponts.
+torlauncher.error_default_bridges_type_missing=Vous devez sélectionner un type de transport pour les ponts fournis.
+torlauncher.error_bridge_bad_default_type=Aucun des pont fournis n'est disponible pour le type de transport %S, Veuillez ajuster vos paramètres.
torlauncher.recommended_bridge=(recommandé)
torlauncher.connect=Se connecter
-torlauncher.restart_tor=Relancer Tor
+torlauncher.restart_tor=Redémarrer Tor
torlauncher.quit=Quitter
-torlauncher.quit_win=Sortir
+torlauncher.quit_win=Sortie
torlauncher.done=Terminé
-torlauncher.forAssistance=Pour obtenir de l'aide, contactez %S
-torlauncher.forAssistance2=Pour obtenir de l'aide, visiter %S
+torlauncher.forAssistance=Pour de l'assistance, contacter %S
+torlauncher.forAssistance2=Pour de l'assistance, visiter %S
torlauncher.copiedNLogMessages=La copie est terminée. %S messages de journalisation de Tor sont prêts à être coller dans un éditeur de texte ou un courriel.
torlauncher.bootstrapStatus.conn_dir=Connexion à un annuaire de relais
-torlauncher.bootstrapStatus.handshake_dir=Établissement d'une connexion annuaire chiffrée
+torlauncher.bootstrapStatus.handshake_dir=Mise en place d'une connexion chiffrée à l'annuaire
torlauncher.bootstrapStatus.requesting_status=Récupération de l'état du réseau
torlauncher.bootstrapStatus.loading_status=Chargement de l'état du réseau
torlauncher.bootstrapStatus.loading_keys=Chargement des certificats d'autorité
torlauncher.bootstrapStatus.requesting_descriptors=Demande d'informations sur le relais
torlauncher.bootstrapStatus.loading_descriptors=Chargement des informations sur le relais
torlauncher.bootstrapStatus.conn_or=Connexion au réseau Tor
-torlauncher.bootstrapStatus.handshake_or=Réalisation d'un circuit Tor
-torlauncher.bootstrapStatus.done=Connecté au réseau Tor !
+torlauncher.bootstrapStatus.handshake_or=Mise en place d'un circuit Tor
+torlauncher.bootstrapStatus.done=Vous êtes connecté au réseau Tor !
torlauncher.bootstrapWarning.done=effectué
torlauncher.bootstrapWarning.connectrefused=connexion refusée
torlauncher.bootstrapWarning.misc=divers
torlauncher.bootstrapWarning.resourcelimit=ressources insuffisantes
-torlauncher.bootstrapWarning.identity=identité incorrecte
-torlauncher.bootstrapWarning.timeout=temps de connexion expiré
+torlauncher.bootstrapWarning.identity=mauvaise concordance de l'identité
+torlauncher.bootstrapWarning.timeout=expiration du temps de connexion
torlauncher.bootstrapWarning.noroute=pas de route vers l'hôte
torlauncher.bootstrapWarning.ioerror=erreur de lecture/écriture
-torlauncher.bootstrapWarning.pt_missing=un transport câblé est manquant
+torlauncher.bootstrapWarning.pt_missing=le transport enfichable manque
diff --git a/src/chrome/locale/is/torlauncher.properties b/src/chrome/locale/is/torlauncher.properties
index a1d419a..c2ac7ef 100644
--- a/src/chrome/locale/is/torlauncher.properties
+++ b/src/chrome/locale/is/torlauncher.properties
@@ -23,8 +23,8 @@ torlauncher.failed_to_save_settings=Unable to save Tor settings.\n\n%S
torlauncher.ensure_tor_is_running=Please ensure that Tor is running.
torlauncher.error_proxy_addr_missing=You must specify both an IP address or hostname and a port number to configure Tor to use a proxy to access the Internet.
-torlauncher.error_proxy_type_missing=You must select the proxy type.
-torlauncher.error_bridges_missing=You must specify one or more bridges.
+torlauncher.error_proxy_type_missing=Þú verður að velja tegund milliþjóns.
+torlauncher.error_bridges_missing=Þú verður að tilgreina eina eða fleiri brýr.
torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
@@ -37,25 +37,25 @@ torlauncher.quit_win=Fara út
torlauncher.done=Búið
torlauncher.forAssistance=Til að fá hjálp, hafðu samband við %S
-torlauncher.forAssistance2=For assistance, visit %S
+torlauncher.forAssistance2=Til að fá hjálp, heimsæktu %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
-torlauncher.bootstrapStatus.requesting_status=Retrieving network status
-torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.requesting_status=Næ í stöðu netkerfis
+torlauncher.bootstrapStatus.loading_status=Hleð inn stöðu netkerfis
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
torlauncher.bootstrapStatus.conn_or=Tengist Tor-netinu
-torlauncher.bootstrapStatus.handshake_or=Establishing a Tor circuit
+torlauncher.bootstrapStatus.handshake_or=Kem á Tor-rás
torlauncher.bootstrapStatus.done=Tengdur við Tor-netið!
torlauncher.bootstrapWarning.done=búið
torlauncher.bootstrapWarning.connectrefused=tengingu hafnað
torlauncher.bootstrapWarning.misc=ýmislegt
-torlauncher.bootstrapWarning.resourcelimit=insufficient resources
+torlauncher.bootstrapWarning.resourcelimit=ekki nægileg tilföng
torlauncher.bootstrapWarning.identity=auðkenni samsvara ekki
torlauncher.bootstrapWarning.timeout=tenging féll á tíma
torlauncher.bootstrapWarning.noroute=no route to host
diff --git a/src/chrome/locale/ko-KR/network-settings.dtd b/src/chrome/locale/ko-KR/network-settings.dtd
index 1fdc20b..e6e9760 100644
--- a/src/chrome/locale/ko-KR/network-settings.dtd
+++ b/src/chrome/locale/ko-KR/network-settings.dtd
@@ -13,20 +13,20 @@
<!ENTITY torSettings.firstQuestion "무엇이 당신의 상황과 가장 가까운가요?">
<!ENTITY torSettings.configurePrompt1 "이 컴퓨터의 인터넷 연결은 검열 또는 프록시에 연결되어 있습니다.">
-<!ENTITY torSettings.configurePrompt2 "I need to configure bridge or local proxy settings before I connect to the Tor network.">
-<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.configurePrompt2 "저는  Tor 네트워크에 접속하는 데 브릿지나 로컬 프록시 설정을 필요로 합니다.">
+<!ENTITY torSettings.configure "구성">
<!ENTITY torSettings.connectPrompt2 "나는 Tor 네트워크와 직접적인 연결을 하고 싶습니다.">
<!ENTITY torSettings.connectPrompt3 "이것은 대부분의 상황에서 동작할 것입니다.">
<!ENTITY torSettings.connect "연결">
-<!ENTITY torSettings.proxyPageTitle "Local Proxy Configuration">
-<!ENTITY torSettings.proxyQuestion "Does this computer need to use a local proxy to access the Internet?">
+<!ENTITY torSettings.proxyPageTitle "로컬 프록시 구성">
+<!ENTITY torSettings.proxyQuestion "이 컴퓨터로 인터넷에 접근할 때 로컬 프록시를 사용해야 하나요?">
<!-- see https://www.torproject.org/docs/proxychain.html.en -->
-<!ENTITY torSettings.proxyExplanation1 "In most cases a local proxy is not needed, but it may be required when connecting through a company, school, or university network.">
-<!ENTITY torSettings.proxyExplanation2 "If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a local proxy is needed.">
-<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
-<!ENTITY torSettings.bridgePageTitle "Tor Bridges Configuration">
-<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.proxyExplanation1 "당신이 회사, 학교 네트워크에서 접속하지 않는다면, 웬만하면 로컬 프록시는 필요하지 않습니다.">
+<!ENTITY torSettings.proxyExplanation2 "당신이 이에 대해 잘 모른다면, 다른 브라우저의 인터넷 설정이나 시스템 네트워크 설정에서 로컬 프록시가 필요한 지 확인하세요.">
+<!ENTITY torSettings.enterProxy "프록시 정보를 입력하세요.">
+<!ENTITY torSettings.bridgePageTitle "Tor 브릿지 구성">
+<!ENTITY torSettings.bridgeQuestion "당신의 인터넷 서비스 제공자 (ISP)가 Tor 네트워크 연결을 차단 혹은 검열합니까?">
<!ENTITY torSettings.bridgeExplanation1 "If you are not sure how to answer this question, choose No (if you are unable to connect to the Tor network without a bridge, you can add one later).">
<!ENTITY torSettings.bridgeExplanation2 "If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
diff --git a/src/chrome/locale/lo/torlauncher.properties b/src/chrome/locale/lo/torlauncher.properties
index 9959bfb..ce43346 100644
--- a/src/chrome/locale/lo/torlauncher.properties
+++ b/src/chrome/locale/lo/torlauncher.properties
@@ -34,7 +34,7 @@ torlauncher.connect=ເຊື່ອມຕໍ່
torlauncher.restart_tor=Restart Tor
torlauncher.quit=Quit
torlauncher.quit_win=Exit
-torlauncher.done=Done
+torlauncher.done=ແລ້ວໆ
torlauncher.forAssistance=For assistance, contact %S
torlauncher.forAssistance2=For assistance, visit %S
diff --git a/src/chrome/locale/lt/torlauncher.properties b/src/chrome/locale/lt/torlauncher.properties
index 7d85680..ccdb8a8 100644
--- a/src/chrome/locale/lt/torlauncher.properties
+++ b/src/chrome/locale/lt/torlauncher.properties
@@ -3,7 +3,7 @@
torlauncher.error_title=Tor Leistuvas
-torlauncher.tor_exited_during_startup=Tor exited during startup. This might be due to an error in your torrc file, a bug in Tor or another program on your system, or faulty hardware. Until you fix the underlying problem and restart Tor, Tor Browser will not start.
+torlauncher.tor_exited_during_startup=Tor nustojo veikti paleisties metu. Taip galėjo nutikti dėl klaidos jūsų torrc faile, klaidos Tor ar kitoje jūsų sistemos programoje, arba dėl aparatinės įrangos kaltės. Tor naršyklė nepasileis tol, kol neištaisysite slypinčios problemos ir iš naujo nepaleisite Tor.
torlauncher.tor_exited=Tor netikėtai nustojo veikti. Taip galėjo atsitikti arba dėl klaidos Tor arba kitoje programoje, Jūsų sistemoje arba dėl sugedusios techninės įrangos. Kol iš naujo nepaleisite Tor, Tor Naršyklė negalės prisijungti prie jokių interneto tinklalapių. Jei problema kartojasi, prašome išsiųsti Tor įvykių žurnalo kopiją paramos grupei.
torlauncher.tor_exited2=Pakartotinai paleidus Tor naršyklės kortelės nebus uždarytos.
torlauncher.tor_controlconn_failed=Nepavyko prisijungti prie Tor valdymo prievado.
@@ -14,8 +14,8 @@ torlauncher.tor_bootstrap_failed_details=%1$S nepavyko (%2$S).
torlauncher.unable_to_start_tor=Nepavyksta paleisti Tor.\n\n%S
torlauncher.tor_missing=Trūksta Tor vykdomojo failo.
-torlauncher.torrc_missing=The torrc file is missing and could not be created.
-torlauncher.datadir_missing=The Tor data directory does not exist and could not be created.
+torlauncher.torrc_missing=Trūksta torrc failo ir nepavyko jo sukurti.
+torlauncher.datadir_missing=Nėra Tor duomenų katalogo ir nepavyko jo sukurti.
torlauncher.password_hash_missing=Nepavyko perskaityti slaptažodžio santrumpos
torlauncher.failed_to_get_settings=Nepavyko perskaityti Tor nustatymo parametrų.\n\n%S
diff --git a/src/chrome/locale/nb/torlauncher.properties b/src/chrome/locale/nb/torlauncher.properties
index b064dbd..a7c890e 100644
--- a/src/chrome/locale/nb/torlauncher.properties
+++ b/src/chrome/locale/nb/torlauncher.properties
@@ -16,7 +16,7 @@ torlauncher.unable_to_start_tor=Kunne ikke starte Tor.\n\n%S
torlauncher.tor_missing=Den kjørbare Tor-filen finnes ikke.
torlauncher.torrc_missing=torrc-fila mangler og kunne ikke opprettes.
torlauncher.datadir_missing=Datakatalogen til Tor finnes ikke og kunne ikke opprettes.
-torlauncher.password_hash_missing=Kunne ikke hente kryptert passord.
+torlauncher.password_hash_missing=Kunne ikke hente nøkkel-passord.
torlauncher.failed_to_get_settings=Kunne ikke hente Tor-innstillinger.\n\n%S
torlauncher.failed_to_save_settings=Kunne ikke lagre Tor-innstillinger.\n\n%S
@@ -59,5 +59,5 @@ torlauncher.bootstrapWarning.resourcelimit=ikke nok resursser
torlauncher.bootstrapWarning.identity=feil identitet
torlauncher.bootstrapWarning.timeout=forbindelse tidsavbrutt
torlauncher.bootstrapWarning.noroute=ingen rute til vert
-torlauncher.bootstrapWarning.ioerror=lese/skrive feil
-torlauncher.bootstrapWarning.pt_missing=Pluggable Transport mangler
+torlauncher.bootstrapWarning.ioerror=lese/skrive -feil
+torlauncher.bootstrapWarning.pt_missing=pluggbar transport mangler
diff --git a/src/chrome/locale/nn/network-settings.dtd b/src/chrome/locale/nn/network-settings.dtd
index 120bbf4..3b23940 100644
--- a/src/chrome/locale/nn/network-settings.dtd
+++ b/src/chrome/locale/nn/network-settings.dtd
@@ -66,7 +66,7 @@
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these methods:">
-<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2Heading "Gjennom nettet">
<!ENTITY torsettings.bridgeHelp2 "Nytt ein nettlesar for å vitja https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
<!ENTITY torsettings.bridgeHelp3.emailDesc "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from one of the following email providers (listed in order of preference):">
diff --git a/src/chrome/locale/nn/torlauncher.properties b/src/chrome/locale/nn/torlauncher.properties
index 31e5d68..f6b3dd3 100644
--- a/src/chrome/locale/nn/torlauncher.properties
+++ b/src/chrome/locale/nn/torlauncher.properties
@@ -8,24 +8,24 @@ torlauncher.tor_exited=Tor unexpectedly exited. This might be due to a bug in To
torlauncher.tor_exited2=Restarting Tor will not close your browser tabs.
torlauncher.tor_controlconn_failed=Kunne ikkje kopla til Tor-kontrollport.
torlauncher.tor_failed_to_start=Tor klarte ikkje å starta opp.
-torlauncher.tor_control_failed=Failed to take control of Tor.
+torlauncher.tor_control_failed=Klarte ikkje å ta kontroll over Tor.
torlauncher.tor_bootstrap_failed=Tor klarte ikkje å kopla til eit samband med Tor-nettverket.
torlauncher.tor_bootstrap_failed_details=%1$S feila (%2$S).
torlauncher.unable_to_start_tor=Tor kunne ikkje starta.\n\n%S
-torlauncher.tor_missing=The Tor executable is missing.
+torlauncher.tor_missing=Tor køyrbar manglar.
torlauncher.torrc_missing=The torrc file is missing and could not be created.
torlauncher.datadir_missing=The Tor data directory does not exist and could not be created.
torlauncher.password_hash_missing=Failed to get hashed password.
-torlauncher.failed_to_get_settings=Unable to retrieve Tor settings.\n\n%S
-torlauncher.failed_to_save_settings=Unable to save Tor settings.\n\n%S
-torlauncher.ensure_tor_is_running=Please ensure that Tor is running.
+torlauncher.failed_to_get_settings=Klarer ikkje å hente Tor-innstillingar\n\n%S
+torlauncher.failed_to_save_settings=Klarer ikkje å lagre Tor-innstillingar.\n\n%S
+torlauncher.ensure_tor_is_running=Forsikre deg om at Tor køyrer.
torlauncher.error_proxy_addr_missing=You must specify both an IP address or hostname and a port number to configure Tor to use a proxy to access the Internet.
torlauncher.error_proxy_type_missing=You must select the proxy type.
torlauncher.error_bridges_missing=You must specify one or more bridges.
-torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_default_bridges_type_missing=DU må velje ei transporttype for dei medfølgjande bruene.
torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
torlauncher.recommended_bridge=(tilrådd)
@@ -43,21 +43,21 @@ torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to b
torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
-torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.requesting_status=Hentar nettverksstatus
torlauncher.bootstrapStatus.loading_status=Lastar nettverkstatus
-torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
-torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
-torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.loading_keys=Lastar autoritetssertifikat
+torlauncher.bootstrapStatus.requesting_descriptors=Ber om relae-informasjon
+torlauncher.bootstrapStatus.loading_descriptors=Lastar relae-informasjon
torlauncher.bootstrapStatus.conn_or=Koplar til Tor-nettverket
-torlauncher.bootstrapStatus.handshake_or=Establishing a Tor circuit
+torlauncher.bootstrapStatus.handshake_or=Opprettar ein Tor-krets
torlauncher.bootstrapStatus.done=Kopla til Tor-nettverket!
torlauncher.bootstrapWarning.done=ferdig
torlauncher.bootstrapWarning.connectrefused=tilkopling avslått
torlauncher.bootstrapWarning.misc=ymse
-torlauncher.bootstrapWarning.resourcelimit=insufficient resources
+torlauncher.bootstrapWarning.resourcelimit=Mangelfulle resursar
torlauncher.bootstrapWarning.identity=identity mismatch
-torlauncher.bootstrapWarning.timeout=connection timeout
+torlauncher.bootstrapWarning.timeout=tidsavbrot i sambandet
torlauncher.bootstrapWarning.noroute=no route to host
torlauncher.bootstrapWarning.ioerror=lese/skrive-feil
torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/pt-BR/network-settings.dtd b/src/chrome/locale/pt-BR/network-settings.dtd
index bc39531..f7cf95b 100644
--- a/src/chrome/locale/pt-BR/network-settings.dtd
+++ b/src/chrome/locale/pt-BR/network-settings.dtd
@@ -28,7 +28,7 @@
<!ENTITY torSettings.bridgePageTitle "Configuração de Pontes Tor">
<!ENTITY torSettings.bridgeQuestion "Seu provedor de serviços de internet (ISP) bloqueia ou censura conexões à rede Tor?">
<!ENTITY torSettings.bridgeExplanation1 "Se você não tem certeza de como responder essa questão, escolha Não (se você não conseguir conectar à rede Tor sem uma conexão de ponte, você pode adicionar uma mais tarde).">
-<!ENTITY torSettings.bridgeExplanation2 "Se você escolher Sim, será solicitado que você configure Conexões de Ponte Tor, que são transmissores não-listados que dificultam mais o bloqueio de conexões à Rede Tor.">
+<!ENTITY torSettings.bridgeExplanation2 "Ao escolher Sim, o próximo passo a seguir será configurar Tor Bridges, que são transmissores não listados que dificultam o bloqueio de conexões à rede Tor.">
<!ENTITY torSettings.bridgeSettingsPrompt "Você pode usar o conjunto de pontes fornecidas ou obter e adicionar um conjunto de pontes personalizadas. ">
<!-- Other: -->
@@ -59,12 +59,12 @@
<!ENTITY torsettings.useBridges.note "Cada tipo de conexão de ponte usa um método diferente para evitar censura.  Se uma não funcionar, tente novamente usando uma diferente.">
<!ENTITY torsettings.useBridges.type "Tipo de transporte:">
<!ENTITY torsettings.useBridges.custom "Adicionar pontes personalizadas">
-<!ENTITY torsettings.useBridges.label "Insira um ou mais relés de pontes (um por linha).">
+<!ENTITY torsettings.useBridges.label "Inserir um ou mais retransmissores de pontes (um por linha).">
<!ENTITY torsettings.useBridges.placeholder "tipo de endereço:porta">
<!ENTITY torsettings.copyLog "Copiar o registro do Tor na área de transferência">
-<!ENTITY torsettings.bridgeHelpTitle "Ajuda Relé de Ponte">
-<!ENTITY torsettings.bridgeHelp1 "Se for impossível conectar-se à rede Tor, talvez o seu Provedor de Internet (ISP) ou outra instância esteja bloqueando o Tor. . Normalmente, é possível contornar esse problema utilizando Pontes Tor, que são relés ocultos (não listados), mais difíceis de bloquear.">
+<!ENTITY torsettings.bridgeHelpTitle "Ajuda Retransmissor de Ponte">
+<!ENTITY torsettings.bridgeHelp1 "Se for impossível conectar-se à rede Tor, talvez o seu Provedor de Internet (ISP) ou outra instância esteja bloqueando o Tor. . Normalmente, é possível contornar esse problema utilizando Pontes Tor, que são retransmissores não listados, mais difíceis de bloquear.">
<!ENTITY torsettings.bridgeHelp1B "Você pode usar o conjunto de endereços de pontes fornecido, já pré-configurado, ou pode obter um conjunto de endereços personalizados utilizando um dos métodos indicados abaixo:">
<!ENTITY torsettings.bridgeHelp2Heading "Através da Web">
<!ENTITY torsettings.bridgeHelp2 "Use um navegador internet para visitar https://bridges.torproject.org">
diff --git a/src/chrome/locale/pt-BR/torlauncher.properties b/src/chrome/locale/pt-BR/torlauncher.properties
index eafba56..20cb37a 100644
--- a/src/chrome/locale/pt-BR/torlauncher.properties
+++ b/src/chrome/locale/pt-BR/torlauncher.properties
@@ -36,18 +36,18 @@ torlauncher.quit=Encerrar
torlauncher.quit_win=Sair
torlauncher.done=Terminado
-torlauncher.forAssistance=Para assistência, contacte
+torlauncher.forAssistance=Para assistência, contactar %S
torlauncher.forAssistance2=Se você precisar de assistência, por favor visite %S
torlauncher.copiedNLogMessages=Cópia concluída. As mensagens %S do Tor log estão prontas para ser copiadas em um editor de texto ou em uma mensagem de e-mail.
-torlauncher.bootstrapStatus.conn_dir=Conectando a um diretório de relés
+torlauncher.bootstrapStatus.conn_dir=Conectando a um diretório de retransmissores
torlauncher.bootstrapStatus.handshake_dir=Estabelecendo uma conexão de diretório criptografado
torlauncher.bootstrapStatus.requesting_status=Recebendo estado da rede
torlauncher.bootstrapStatus.loading_status=Carregando estado da rede
torlauncher.bootstrapStatus.loading_keys=Carregando certificados de autoridade
-torlauncher.bootstrapStatus.requesting_descriptors=Requisitando informações do relé
-torlauncher.bootstrapStatus.loading_descriptors=Carregando informações do relé
+torlauncher.bootstrapStatus.requesting_descriptors=Requisitando informações do retransmissor
+torlauncher.bootstrapStatus.loading_descriptors=Carregando informações do retransmissor
torlauncher.bootstrapStatus.conn_or=Conectando à rede Tor
torlauncher.bootstrapStatus.handshake_or=Estabelecendo um circuito Tor
torlauncher.bootstrapStatus.done=Conectado à rede Tor!
@@ -60,4 +60,4 @@ torlauncher.bootstrapWarning.identity=identidade conflitante
torlauncher.bootstrapWarning.timeout=tempo limite da conexão excedido
torlauncher.bootstrapWarning.noroute=sem rota para o host
torlauncher.bootstrapWarning.ioerror=erro de leitura/gravação
-torlauncher.bootstrapWarning.pt_missing=transporte plugável ausente
+torlauncher.bootstrapWarning.pt_missing=transportador plugável ausente
diff --git a/src/chrome/locale/th/network-settings.dtd b/src/chrome/locale/th/network-settings.dtd
index 0a4b839..240e71b 100644
--- a/src/chrome/locale/th/network-settings.dtd
+++ b/src/chrome/locale/th/network-settings.dtd
@@ -1,7 +1,7 @@
<!ENTITY torsettings.dialog.title "ตั้งค่าเครือข่าย Tor">
<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
+<!ENTITY torlauncher.localePicker.title "ภาษาของทอร์เบราว์เซอร์">
<!ENTITY torlauncher.localePicker.prompt "โปรดเลือกภาษา">
<!-- For "first run" wizard: -->
@@ -15,7 +15,7 @@
<!ENTITY torSettings.configurePrompt1 "การเชื่อมต่ออินเตอร์เน็ตของคอมพิวเตอร์เครื่องนี้ถูกตรวจสอบหรือมีการใช้พร็อกซี่">
<!ENTITY torSettings.configurePrompt2 "I need to configure bridge or local proxy settings before I connect to the Tor network.">
<!ENTITY torSettings.configure "กำหนดค่า">
-<!ENTITY torSettings.connectPrompt2 "I would like to make a direct connection to the Tor network.">
+<!ENTITY torSettings.connectPrompt2 "ฉันต้องการสร้างการเชื่อมต่อโดยตรงไปยังเครือข่ายทอร์.">
<!ENTITY torSettings.connectPrompt3 "นี่จะทำงานในสถานการณ์ส่วนใหญ่">
<!ENTITY torSettings.connect "เชื่อมต่อ">
@@ -25,7 +25,7 @@
<!ENTITY torSettings.proxyExplanation1 "In most cases a local proxy is not needed, but it may be required when connecting through a company, school, or university network.">
<!ENTITY torSettings.proxyExplanation2 "If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a local proxy is needed.">
<!ENTITY torSettings.enterProxy "ใส่ค่าติดตั้งพร็อกซี">
-<!ENTITY torSettings.bridgePageTitle "Tor Bridges Configuration">
+<!ENTITY torSettings.bridgePageTitle "การตั้งค่า Tor Bridges">
<!ENTITY torSettings.bridgeQuestion "ผู้ให้บริการอินเตอร์เน็ต (ISP) ของคุณปิดกั้นหรือคัดกรองการเชื่อมต่อไปยังเครือข่าย Tor หรือไม่?">
<!ENTITY torSettings.bridgeExplanation1 "If you are not sure how to answer this question, choose No (if you are unable to connect to the Tor network without a bridge, you can add one later).">
<!ENTITY torSettings.bridgeExplanation2 "If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
@@ -60,14 +60,14 @@
<!ENTITY torsettings.useBridges.type "Transport type:">
<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
<!ENTITY torsettings.useBridges.label "ใส่สะพานรีเลย์อย่างน้อยหนึ่งอัน (บรรทัดละอัน)">
-<!ENTITY torsettings.useBridges.placeholder "type address:port">
+<!ENTITY torsettings.useBridges.placeholder "พิมพ์ address:port">
<!ENTITY torsettings.copyLog "คัดลอกปูม Tor ไปที่คลิปบอร์ด">
<!ENTITY torsettings.bridgeHelpTitle "การช่วยเหลือรีเลย์สะพาน">
<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these methods:">
-<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
-<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp2Heading "ผ่านทางเว็บ">
+<!ENTITY torsettings.bridgeHelp2 "ใช้เว็บเบราว์เซอร์เพื่อเข้าชม https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
<!ENTITY torsettings.bridgeHelp3.emailDesc "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from one of the following email providers (listed in order of preference):">
<!ENTITY torsettings.bridgeHelp3.emailList "https://www.riseup.net, https://mail.google.com, or https://mail.yahoo.com">
1
0