tbb-commits
Threads by month
- ----- 2025 -----
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- 1 participants
- 18504 discussions

13 May '19
commit 68d7be6c41aa408c20cb87511efe59e7afa60357
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon May 13 09:49:32 2019 +0000
Bumping tor browser branch for 9.0
---
projects/firefox/config | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/projects/firefox/config b/projects/firefox/config
index c60ee8e..427033e 100644
--- a/projects/firefox/config
+++ b/projects/firefox/config
@@ -10,7 +10,7 @@ gpg_keyring: torbutton.gpg
var:
firefox_platform_version: 60.6.1
firefox_version: '[% c("var/firefox_platform_version") %]esr'
- torbrowser_branch: 8.5
+ torbrowser_branch: 9.0
torbrowser_update_channel: alpha
branding_directory: '[% IF c("var/android") %]mobile/android[% ELSE %]browser[% END %]/branding/alpha'
copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]'
1
0

[tor-browser-build/master] Bug 28044: Integrate Tor Launcher into tor-browser
by gk@torproject.org 13 May '19
by gk@torproject.org 13 May '19
13 May '19
commit 6d94f73dc055c1739a67ffd422f7f5bf29218723
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Feb 26 10:16:15 2019 -0500
Bug 28044: Integrate Tor Launcher into tor-browser
Place the Tor Launcher sources within browser/extension before
starting the Firefox build (instead of creating an .xpi which
was included during the tor-browser packaging step).
---
projects/firefox/build | 5 +++++
projects/firefox/config | 3 +++
projects/firefox/mozconfig-android-armv7 | 3 +++
projects/firefox/mozconfig-android-x86 | 3 +++
projects/tor-browser/build | 1 -
projects/tor-browser/config | 3 ---
projects/tor-launcher/build | 12 ++++--------
projects/tor-launcher/config | 2 +-
8 files changed, 19 insertions(+), 13 deletions(-)
diff --git a/projects/firefox/build b/projects/firefox/build
index 5cf86a4..3aa4a4d 100644
--- a/projects/firefox/build
+++ b/projects/firefox/build
@@ -151,6 +151,11 @@ fi
patch -p1 < $rootdir/1527534.patch
[% END -%]
+[% IF ! c("var/android") %]
+ # Place a copy of the Tor Launcher sources under browser/extensions
+ tar -C browser/extensions -xf $rootdir/[% c('input_files_by_name/tor-launcher') %]
+[% END -%]
+
rm -f configure
rm -f js/src/configure
diff --git a/projects/firefox/config b/projects/firefox/config
index 566cbc0..c60ee8e 100644
--- a/projects/firefox/config
+++ b/projects/firefox/config
@@ -149,6 +149,9 @@ input_files:
enable: '[% c("var/linux") %]'
- filename: start-firefox
enable: '[% c("var/linux") %]'
+ - project: tor-launcher
+ name: tor-launcher
+ enable: '[% ! c("var/android") %]'
- filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]'
name: gradle-dependencies
exec: '[% INCLUDE "fetch-gradle-dependencies" %]'
diff --git a/projects/firefox/mozconfig-android-armv7 b/projects/firefox/mozconfig-android-armv7
index dfa3aaf..6dde8b1 100644
--- a/projects/firefox/mozconfig-android-armv7
+++ b/projects/firefox/mozconfig-android-armv7
@@ -19,6 +19,9 @@ ac_add_options --with-clang-path=/var/tmp/dist/android-toolchain/android-ndk/arm
ac_add_options --with-android-distribution-directory=@TOPSRCDIR@/mobile/android/torbrowser
ac_add_options --with-l10n-base=/var/tmp/dist/locales
+# We do not use Tor Launcher on Android:
+ac_add_options --disable-tor-launcher
+
if [ -z "${TB_BUILD_WITH_UPDATER}" ]; then
# Because Google Play will likely be the primary distribution medium,
# we disable updating and rely on Google Play by default. The
diff --git a/projects/firefox/mozconfig-android-x86 b/projects/firefox/mozconfig-android-x86
index defe5c3..b332f52 100644
--- a/projects/firefox/mozconfig-android-x86
+++ b/projects/firefox/mozconfig-android-x86
@@ -19,6 +19,9 @@ ac_add_options --with-clang-path=/var/tmp/dist/android-toolchain/android-ndk/x86
ac_add_options --with-android-distribution-directory=@TOPSRCDIR@/mobile/android/torbrowser
ac_add_options --with-l10n-base=/var/tmp/dist/locales
+# We do not use Tor Launcher on Android:
+ac_add_options --disable-tor-launcher
+
if [ -z "${TB_BUILD_WITH_UPDATER}" ]; then
# Because Google Play will likely be the primary distribution medium,
# we disable updating and rely on Google Play by default. The
diff --git a/projects/tor-browser/build b/projects/tor-browser/build
index 1d73ff5..45dbb53 100644
--- a/projects/tor-browser/build
+++ b/projects/tor-browser/build
@@ -49,7 +49,6 @@ mkdir -p "$TBDIR/$MEEKPROFILEPATH/extensions"
unzip -d $rootdir $rootdir/[% c('input_files_by_name/firefox') %]/mar-tools-*.zip
MARTOOLS=$rootdir/mar-tools
-mv [% c('input_files_by_name/tor-launcher') %] "$TBDIR/$EXTSPATH/tor-launcher(a)torproject.org.xpi"
mv [% c('input_files_by_name/torbutton') %] "$TBDIR/$EXTSPATH/torbutton(a)torproject.org.xpi"
mv [% c('input_files_by_name/https-everywhere') %] "$TBDIR/$EXTSPATH/https-everywhere-eff(a)eff.org.xpi"
mv [% c('input_files_by_name/noscript') %] "$TBDIR/$EXTSPATH/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi"
diff --git a/projects/tor-browser/config b/projects/tor-browser/config
index 39093d4..ad382e2 100644
--- a/projects/tor-browser/config
+++ b/projects/tor-browser/config
@@ -60,9 +60,6 @@ input_files:
- project: firefox-langpacks
name: firefox-langpacks
enable: '[% ! c("var/testbuild") && ! c("var/android") %]'
- - project: tor-launcher
- name: tor-launcher
- enable: '[% ! c("var/android") %]'
- project: torbutton
name: torbutton
enable: '[% ! c("var/android") %]'
diff --git a/projects/tor-launcher/build b/projects/tor-launcher/build
index 90c5268..710416a 100644
--- a/projects/tor-launcher/build
+++ b/projects/tor-launcher/build
@@ -1,12 +1,8 @@
#!/bin/bash
[% c("var/set_default_env") -%]
tar xvf [% project %]-[% c('version') %].tar.gz
-cd [% project %]-[% c('version') %]
-make package
-mkdir pkg/tmp
-cd pkg/tmp
-unzip ../*.xpi
-[% c('zip', {
- zip_src => [ '.' ],
- zip_args => dest_dir _ '/' _ c('filename'),
+mv [% project %]-[% c("version") %] [% project %]
+[% c('tar', {
+ tar_src => [ project ],
+ tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
}) %]
diff --git a/projects/tor-launcher/config b/projects/tor-launcher/config
index 151f836..8ea0a08 100644
--- a/projects/tor-launcher/config
+++ b/projects/tor-launcher/config
@@ -4,7 +4,7 @@ git_url: https://git.torproject.org/tor-launcher.git
git_hash: '[% c("version") %]'
gpg_keyring: torbutton.gpg
tag_gpg_id: 1
-filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].xpi"
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
var:
container:
use_container: 1
1
0

[tor-launcher/master] Bug 28044: Integrate Tor Launcher into tor-browser
by gk@torproject.org 13 May '19
by gk@torproject.org 13 May '19
13 May '19
commit 864170b5c1e0626dbfe3707d48037010596c42e5
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Fri May 10 14:12:17 2019 -0400
Bug 28044: Integrate Tor Launcher into tor-browser
Update translations using our revised import-translations.sh script.
---
chrome.manifest | 170 +++++++++++++
jar.mn | 331 +++++++++++++++++++++++++
src/chrome/locale/ach/network-settings.dtd | 62 -----
src/chrome/locale/ach/torlauncher.properties | 94 -------
src/chrome/locale/ast/network-settings.dtd | 62 -----
src/chrome/locale/ast/torlauncher.properties | 94 -------
src/chrome/locale/ca-ES/torlauncher.properties | 49 ----
src/chrome/locale/en-GB/network-settings.dtd | 62 -----
src/chrome/locale/en-GB/torlauncher.properties | 94 -------
src/chrome/locale/ko/torlauncher.properties | 98 ++++----
src/chrome/locale/oc/network-settings.dtd | 62 -----
src/chrome/locale/oc/torlauncher.properties | 94 -------
src/chrome/locale/or/network-settings.dtd | 62 -----
src/chrome/locale/or/torlauncher.properties | 94 -------
src/chrome/locale/pt-PT/network-settings.dtd | 62 +++++
src/chrome/locale/pt-PT/torlauncher.properties | 94 +++++++
src/chrome/locale/son/network-settings.dtd | 62 -----
src/chrome/locale/son/torlauncher.properties | 94 -------
src/chrome/locale/ur/network-settings.dtd | 28 +--
19 files changed, 720 insertions(+), 1048 deletions(-)
diff --git a/chrome.manifest b/chrome.manifest
new file mode 100644
index 0000000..2f55271
--- /dev/null
+++ b/chrome.manifest
@@ -0,0 +1,170 @@
+### Copyright (c) 2019, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+content torlauncher chrome/content/
+
+skin torlauncher classic/1.0 chrome/skin/
+
+resource torlauncher ./
+
+# Firefox 4-style component registration
+component {4F476361-23FB-43EF-A427-B36A14D3208E} components/tl-protocol.js
+contract @torproject.org/torlauncher-protocol-service;1 {4F476361-23FB-43EF-A427-B36A14D3208E}
+
+component {FE7B4CAF-BCF4-4848-8BFF-EFA66C9AFDA1} components/tl-process.js
+contract @torproject.org/torlauncher-process-service;1 {FE7B4CAF-BCF4-4848-8BFF-EFA66C9AFDA1}
+category profile-after-change TorProcessService @torproject.org/torlauncher-process-service;1
+
+locale torlauncher en-US chrome/locale/en-US/
+locale torlauncher ady chrome/locale/ady/
+locale torlauncher af chrome/locale/af/
+locale torlauncher af-ZA chrome/locale/af-ZA/
+locale torlauncher ak chrome/locale/ak/
+locale torlauncher am chrome/locale/am/
+locale torlauncher am-ET chrome/locale/am-ET/
+locale torlauncher ar chrome/locale/ar/
+locale torlauncher arn chrome/locale/arn/
+locale torlauncher az chrome/locale/az/
+locale torlauncher be chrome/locale/be/
+locale torlauncher bg chrome/locale/bg/
+locale torlauncher bg-BG chrome/locale/bg-BG/
+locale torlauncher bn chrome/locale/bn/
+locale torlauncher bn-BD chrome/locale/bn-BD/
+locale torlauncher bn-IN chrome/locale/bn-IN/
+locale torlauncher bo chrome/locale/bo/
+locale torlauncher br chrome/locale/br/
+locale torlauncher bs chrome/locale/bs/
+locale torlauncher ca chrome/locale/ca/
+locale torlauncher ca@valencia chrome/locale/ca@valencia/
+locale torlauncher cs chrome/locale/cs/
+locale torlauncher cs-CZ chrome/locale/cs-CZ/
+locale torlauncher csb chrome/locale/csb/
+locale torlauncher cv chrome/locale/cv/
+locale torlauncher cy chrome/locale/cy/
+locale torlauncher da chrome/locale/da/
+locale torlauncher de chrome/locale/de/
+locale torlauncher dz chrome/locale/dz/
+locale torlauncher el chrome/locale/el/
+locale torlauncher el-GR chrome/locale/el-GR/
+locale torlauncher eo chrome/locale/eo/
+locale torlauncher es chrome/locale/es/
+locale torlauncher es-AR chrome/locale/es-AR/
+locale torlauncher es-CL chrome/locale/es-CL/
+locale torlauncher es-CO chrome/locale/es-CO/
+locale torlauncher es-MX chrome/locale/es-MX/
+locale torlauncher es-NI chrome/locale/es-NI/
+locale torlauncher et chrome/locale/et/
+locale torlauncher eu chrome/locale/eu/
+locale torlauncher fa chrome/locale/fa/
+locale torlauncher fi chrome/locale/fi/
+locale torlauncher fil chrome/locale/fil/
+locale torlauncher fo chrome/locale/fo/
+locale torlauncher fr chrome/locale/fr/
+locale torlauncher fr-CA chrome/locale/fr-CA/
+locale torlauncher fur chrome/locale/fur/
+locale torlauncher fy chrome/locale/fy/
+locale torlauncher ga chrome/locale/ga/
+locale torlauncher gl chrome/locale/gl/
+locale torlauncher gu chrome/locale/gu/
+locale torlauncher gu-IN chrome/locale/gu-IN/
+locale torlauncher gun chrome/locale/gun/
+locale torlauncher ha chrome/locale/ha/
+locale torlauncher he chrome/locale/he/
+locale torlauncher hi chrome/locale/hi/
+locale torlauncher hr chrome/locale/hr/
+locale torlauncher hr-HR chrome/locale/hr-HR/
+locale torlauncher ht chrome/locale/ht/
+locale torlauncher hu chrome/locale/hu/
+locale torlauncher hy chrome/locale/hy/
+locale torlauncher hy-AM chrome/locale/hy-AM/
+locale torlauncher ia chrome/locale/ia/
+locale torlauncher id chrome/locale/id/
+locale torlauncher is chrome/locale/is/
+locale torlauncher it chrome/locale/it/
+locale torlauncher ja chrome/locale/ja/
+locale torlauncher jv chrome/locale/jv/
+locale torlauncher ka chrome/locale/ka/
+locale torlauncher kk chrome/locale/kk/
+locale torlauncher km chrome/locale/km/
+locale torlauncher kn chrome/locale/kn/
+locale torlauncher ko chrome/locale/ko/
+locale torlauncher ko-KR chrome/locale/ko-KR/
+locale torlauncher ku chrome/locale/ku/
+locale torlauncher kw chrome/locale/kw/
+locale torlauncher ky chrome/locale/ky/
+locale torlauncher lb chrome/locale/lb/
+locale torlauncher lg chrome/locale/lg/
+locale torlauncher ln chrome/locale/ln/
+locale torlauncher lo chrome/locale/lo/
+locale torlauncher lt chrome/locale/lt/
+locale torlauncher lv chrome/locale/lv/
+locale torlauncher mg chrome/locale/mg/
+locale torlauncher mi chrome/locale/mi/
+locale torlauncher mk chrome/locale/mk/
+locale torlauncher ml chrome/locale/ml/
+locale torlauncher mn chrome/locale/mn/
+locale torlauncher mr chrome/locale/mr/
+locale torlauncher ms chrome/locale/ms/
+locale torlauncher ms-MY chrome/locale/ms-MY/
+locale torlauncher mt chrome/locale/mt/
+locale torlauncher my chrome/locale/my/
+locale torlauncher nah chrome/locale/nah/
+locale torlauncher nap chrome/locale/nap/
+locale torlauncher nb chrome/locale/nb/
+locale torlauncher nds chrome/locale/nds/
+locale torlauncher ne chrome/locale/ne/
+locale torlauncher nl chrome/locale/nl/
+locale torlauncher nl-BE chrome/locale/nl-BE/
+locale torlauncher nn chrome/locale/nn/
+locale torlauncher nso chrome/locale/nso/
+locale torlauncher pa chrome/locale/pa/
+locale torlauncher pap chrome/locale/pap/
+locale torlauncher pl chrome/locale/pl/
+locale torlauncher pl-PL chrome/locale/pl-PL/
+locale torlauncher pms chrome/locale/pms/
+locale torlauncher ps chrome/locale/ps/
+locale torlauncher pt chrome/locale/pt/
+locale torlauncher pt-BR chrome/locale/pt-BR/
+locale torlauncher pt-PT chrome/locale/pt-PT/
+locale torlauncher ro chrome/locale/ro/
+locale torlauncher ru chrome/locale/ru/
+locale torlauncher ru@petr1708 chrome/locale/ru@petr1708/
+locale torlauncher sco chrome/locale/sco/
+locale torlauncher si-LK chrome/locale/si-LK/
+locale torlauncher sk chrome/locale/sk/
+locale torlauncher sk-SK chrome/locale/sk-SK/
+locale torlauncher sl chrome/locale/sl/
+locale torlauncher sl-SI chrome/locale/sl-SI/
+locale torlauncher sn chrome/locale/sn/
+locale torlauncher so chrome/locale/so/
+locale torlauncher sq chrome/locale/sq/
+locale torlauncher sq-AL chrome/locale/sq-AL/
+locale torlauncher sr chrome/locale/sr/
+locale torlauncher sr@latin chrome/locale/sr@latin/
+locale torlauncher st chrome/locale/st/
+locale torlauncher su chrome/locale/su/
+locale torlauncher sv chrome/locale/sv/
+locale torlauncher sw chrome/locale/sw/
+locale torlauncher szl chrome/locale/szl/
+locale torlauncher ta chrome/locale/ta/
+locale torlauncher te chrome/locale/te/
+locale torlauncher te-IN chrome/locale/te-IN/
+locale torlauncher tg chrome/locale/tg/
+locale torlauncher th chrome/locale/th/
+locale torlauncher ti chrome/locale/ti/
+locale torlauncher tk chrome/locale/tk/
+locale torlauncher tr chrome/locale/tr/
+locale torlauncher uk chrome/locale/uk/
+locale torlauncher ur chrome/locale/ur/
+locale torlauncher ur-PK chrome/locale/ur-PK/
+locale torlauncher uz chrome/locale/uz/
+locale torlauncher ve chrome/locale/ve/
+locale torlauncher vi chrome/locale/vi/
+locale torlauncher wa chrome/locale/wa/
+locale torlauncher wo chrome/locale/wo/
+locale torlauncher zh chrome/locale/zh/
+locale torlauncher zh-CN chrome/locale/zh-CN/
+locale torlauncher zh-CN.GB2312 chrome/locale/zh-CN.GB2312/
+locale torlauncher zh-HK chrome/locale/zh-HK/
+locale torlauncher zh-TW chrome/locale/zh-TW/
+locale torlauncher zu chrome/locale/zu/
diff --git a/jar.mn b/jar.mn
new file mode 100644
index 0000000..b078202
--- /dev/null
+++ b/jar.mn
@@ -0,0 +1,331 @@
+#filter substitution
+### Copyright (c) 2019, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+torlauncher.jar:
+ components/ (src/components/*)
+
+% content torlauncher %content/
+ content/ (src/chrome/content/*)
+
+ modules/ (src/modules/*)
+
+% resource torlauncher %
+
+% skin torlauncher default %skin/
+ skin/ (src/chrome/skin/*)
+
+% component {4F476361-23FB-43EF-A427-B36A14D3208E} %components/tl-protocol.js
+% contract @torproject.org/torlauncher-protocol-service;1 {4F476361-23FB-43EF-A427-B36A14D3208E}
+
+% component {FE7B4CAF-BCF4-4848-8BFF-EFA66C9AFDA1} %components/tl-process.js
+% contract @torproject.org/torlauncher-process-service;1 {FE7B4CAF-BCF4-4848-8BFF-EFA66C9AFDA1}
+
+% category profile-after-change TorProcessService @torproject.org/torlauncher-process-service;1
+
+% locale torlauncher en-US %locale/en-US/
+ locale/en-US/ (src/chrome/locale/en-US/*)
+% locale torlauncher ady %locale/ady/
+ locale/ady/ (src/chrome/locale/ady/*)
+% locale torlauncher af %locale/af/
+ locale/af/ (src/chrome/locale/af/*)
+% locale torlauncher af-ZA %locale/af-ZA/
+ locale/af-ZA/ (src/chrome/locale/af-ZA/*)
+% locale torlauncher ak %locale/ak/
+ locale/ak/ (src/chrome/locale/ak/*)
+% locale torlauncher am %locale/am/
+ locale/am/ (src/chrome/locale/am/*)
+% locale torlauncher am-ET %locale/am-ET/
+ locale/am-ET/ (src/chrome/locale/am-ET/*)
+% locale torlauncher ar %locale/ar/
+ locale/ar/ (src/chrome/locale/ar/*)
+% locale torlauncher arn %locale/arn/
+ locale/arn/ (src/chrome/locale/arn/*)
+% locale torlauncher az %locale/az/
+ locale/az/ (src/chrome/locale/az/*)
+% locale torlauncher be %locale/be/
+ locale/be/ (src/chrome/locale/be/*)
+% locale torlauncher bg %locale/bg/
+ locale/bg/ (src/chrome/locale/bg/*)
+% locale torlauncher bg-BG %locale/bg-BG/
+ locale/bg-BG/ (src/chrome/locale/bg-BG/*)
+% locale torlauncher bn %locale/bn/
+ locale/bn/ (src/chrome/locale/bn/*)
+% locale torlauncher bn-BD %locale/bn-BD/
+ locale/bn-BD/ (src/chrome/locale/bn-BD/*)
+% locale torlauncher bn-IN %locale/bn-IN/
+ locale/bn-IN/ (src/chrome/locale/bn-IN/*)
+% locale torlauncher bo %locale/bo/
+ locale/bo/ (src/chrome/locale/bo/*)
+% locale torlauncher br %locale/br/
+ locale/br/ (src/chrome/locale/br/*)
+% locale torlauncher bs %locale/bs/
+ locale/bs/ (src/chrome/locale/bs/*)
+% locale torlauncher ca %locale/ca/
+ locale/ca/ (src/chrome/locale/ca/*)
+% locale torlauncher ca@valencia %locale/ca@valencia/
+ locale/ca@valencia/ (src/chrome/locale/ca@valencia/*)
+% locale torlauncher cs %locale/cs/
+ locale/cs/ (src/chrome/locale/cs/*)
+% locale torlauncher cs-CZ %locale/cs-CZ/
+ locale/cs-CZ/ (src/chrome/locale/cs-CZ/*)
+% locale torlauncher csb %locale/csb/
+ locale/csb/ (src/chrome/locale/csb/*)
+% locale torlauncher cv %locale/cv/
+ locale/cv/ (src/chrome/locale/cv/*)
+% locale torlauncher cy %locale/cy/
+ locale/cy/ (src/chrome/locale/cy/*)
+% locale torlauncher da %locale/da/
+ locale/da/ (src/chrome/locale/da/*)
+% locale torlauncher de %locale/de/
+ locale/de/ (src/chrome/locale/de/*)
+% locale torlauncher dz %locale/dz/
+ locale/dz/ (src/chrome/locale/dz/*)
+% locale torlauncher el %locale/el/
+ locale/el/ (src/chrome/locale/el/*)
+% locale torlauncher el-GR %locale/el-GR/
+ locale/el-GR/ (src/chrome/locale/el-GR/*)
+% locale torlauncher eo %locale/eo/
+ locale/eo/ (src/chrome/locale/eo/*)
+% locale torlauncher es %locale/es/
+ locale/es/ (src/chrome/locale/es/*)
+% locale torlauncher es-AR %locale/es-AR/
+ locale/es-AR/ (src/chrome/locale/es-AR/*)
+% locale torlauncher es-CL %locale/es-CL/
+ locale/es-CL/ (src/chrome/locale/es-CL/*)
+% locale torlauncher es-CO %locale/es-CO/
+ locale/es-CO/ (src/chrome/locale/es-CO/*)
+% locale torlauncher es-MX %locale/es-MX/
+ locale/es-MX/ (src/chrome/locale/es-MX/*)
+% locale torlauncher es-NI %locale/es-NI/
+ locale/es-NI/ (src/chrome/locale/es-NI/*)
+% locale torlauncher et %locale/et/
+ locale/et/ (src/chrome/locale/et/*)
+% locale torlauncher eu %locale/eu/
+ locale/eu/ (src/chrome/locale/eu/*)
+% locale torlauncher fa %locale/fa/
+ locale/fa/ (src/chrome/locale/fa/*)
+% locale torlauncher fi %locale/fi/
+ locale/fi/ (src/chrome/locale/fi/*)
+% locale torlauncher fil %locale/fil/
+ locale/fil/ (src/chrome/locale/fil/*)
+% locale torlauncher fo %locale/fo/
+ locale/fo/ (src/chrome/locale/fo/*)
+% locale torlauncher fr %locale/fr/
+ locale/fr/ (src/chrome/locale/fr/*)
+% locale torlauncher fr-CA %locale/fr-CA/
+ locale/fr-CA/ (src/chrome/locale/fr-CA/*)
+% locale torlauncher fur %locale/fur/
+ locale/fur/ (src/chrome/locale/fur/*)
+% locale torlauncher fy %locale/fy/
+ locale/fy/ (src/chrome/locale/fy/*)
+% locale torlauncher ga %locale/ga/
+ locale/ga/ (src/chrome/locale/ga/*)
+% locale torlauncher gl %locale/gl/
+ locale/gl/ (src/chrome/locale/gl/*)
+% locale torlauncher gu %locale/gu/
+ locale/gu/ (src/chrome/locale/gu/*)
+% locale torlauncher gu-IN %locale/gu-IN/
+ locale/gu-IN/ (src/chrome/locale/gu-IN/*)
+% locale torlauncher gun %locale/gun/
+ locale/gun/ (src/chrome/locale/gun/*)
+% locale torlauncher ha %locale/ha/
+ locale/ha/ (src/chrome/locale/ha/*)
+% locale torlauncher he %locale/he/
+ locale/he/ (src/chrome/locale/he/*)
+% locale torlauncher hi %locale/hi/
+ locale/hi/ (src/chrome/locale/hi/*)
+% locale torlauncher hr %locale/hr/
+ locale/hr/ (src/chrome/locale/hr/*)
+% locale torlauncher hr-HR %locale/hr-HR/
+ locale/hr-HR/ (src/chrome/locale/hr-HR/*)
+% locale torlauncher ht %locale/ht/
+ locale/ht/ (src/chrome/locale/ht/*)
+% locale torlauncher hu %locale/hu/
+ locale/hu/ (src/chrome/locale/hu/*)
+% locale torlauncher hy %locale/hy/
+ locale/hy/ (src/chrome/locale/hy/*)
+% locale torlauncher hy-AM %locale/hy-AM/
+ locale/hy-AM/ (src/chrome/locale/hy-AM/*)
+% locale torlauncher ia %locale/ia/
+ locale/ia/ (src/chrome/locale/ia/*)
+% locale torlauncher id %locale/id/
+ locale/id/ (src/chrome/locale/id/*)
+% locale torlauncher is %locale/is/
+ locale/is/ (src/chrome/locale/is/*)
+% locale torlauncher it %locale/it/
+ locale/it/ (src/chrome/locale/it/*)
+% locale torlauncher ja %locale/ja/
+ locale/ja/ (src/chrome/locale/ja/*)
+% locale torlauncher jv %locale/jv/
+ locale/jv/ (src/chrome/locale/jv/*)
+% locale torlauncher ka %locale/ka/
+ locale/ka/ (src/chrome/locale/ka/*)
+% locale torlauncher kk %locale/kk/
+ locale/kk/ (src/chrome/locale/kk/*)
+% locale torlauncher km %locale/km/
+ locale/km/ (src/chrome/locale/km/*)
+% locale torlauncher kn %locale/kn/
+ locale/kn/ (src/chrome/locale/kn/*)
+% locale torlauncher ko %locale/ko/
+ locale/ko/ (src/chrome/locale/ko/*)
+% locale torlauncher ko-KR %locale/ko-KR/
+ locale/ko-KR/ (src/chrome/locale/ko-KR/*)
+% locale torlauncher ku %locale/ku/
+ locale/ku/ (src/chrome/locale/ku/*)
+% locale torlauncher kw %locale/kw/
+ locale/kw/ (src/chrome/locale/kw/*)
+% locale torlauncher ky %locale/ky/
+ locale/ky/ (src/chrome/locale/ky/*)
+% locale torlauncher lb %locale/lb/
+ locale/lb/ (src/chrome/locale/lb/*)
+% locale torlauncher lg %locale/lg/
+ locale/lg/ (src/chrome/locale/lg/*)
+% locale torlauncher ln %locale/ln/
+ locale/ln/ (src/chrome/locale/ln/*)
+% locale torlauncher lo %locale/lo/
+ locale/lo/ (src/chrome/locale/lo/*)
+% locale torlauncher lt %locale/lt/
+ locale/lt/ (src/chrome/locale/lt/*)
+% locale torlauncher lv %locale/lv/
+ locale/lv/ (src/chrome/locale/lv/*)
+% locale torlauncher mg %locale/mg/
+ locale/mg/ (src/chrome/locale/mg/*)
+% locale torlauncher mi %locale/mi/
+ locale/mi/ (src/chrome/locale/mi/*)
+% locale torlauncher mk %locale/mk/
+ locale/mk/ (src/chrome/locale/mk/*)
+% locale torlauncher ml %locale/ml/
+ locale/ml/ (src/chrome/locale/ml/*)
+% locale torlauncher mn %locale/mn/
+ locale/mn/ (src/chrome/locale/mn/*)
+% locale torlauncher mr %locale/mr/
+ locale/mr/ (src/chrome/locale/mr/*)
+% locale torlauncher ms %locale/ms/
+ locale/ms/ (src/chrome/locale/ms/*)
+% locale torlauncher ms-MY %locale/ms-MY/
+ locale/ms-MY/ (src/chrome/locale/ms-MY/*)
+% locale torlauncher mt %locale/mt/
+ locale/mt/ (src/chrome/locale/mt/*)
+% locale torlauncher my %locale/my/
+ locale/my/ (src/chrome/locale/my/*)
+% locale torlauncher nah %locale/nah/
+ locale/nah/ (src/chrome/locale/nah/*)
+% locale torlauncher nap %locale/nap/
+ locale/nap/ (src/chrome/locale/nap/*)
+% locale torlauncher nb %locale/nb/
+ locale/nb/ (src/chrome/locale/nb/*)
+% locale torlauncher nds %locale/nds/
+ locale/nds/ (src/chrome/locale/nds/*)
+% locale torlauncher ne %locale/ne/
+ locale/ne/ (src/chrome/locale/ne/*)
+% locale torlauncher nl %locale/nl/
+ locale/nl/ (src/chrome/locale/nl/*)
+% locale torlauncher nl-BE %locale/nl-BE/
+ locale/nl-BE/ (src/chrome/locale/nl-BE/*)
+% locale torlauncher nn %locale/nn/
+ locale/nn/ (src/chrome/locale/nn/*)
+% locale torlauncher nso %locale/nso/
+ locale/nso/ (src/chrome/locale/nso/*)
+% locale torlauncher pa %locale/pa/
+ locale/pa/ (src/chrome/locale/pa/*)
+% locale torlauncher pap %locale/pap/
+ locale/pap/ (src/chrome/locale/pap/*)
+% locale torlauncher pl %locale/pl/
+ locale/pl/ (src/chrome/locale/pl/*)
+% locale torlauncher pl-PL %locale/pl-PL/
+ locale/pl-PL/ (src/chrome/locale/pl-PL/*)
+% locale torlauncher pms %locale/pms/
+ locale/pms/ (src/chrome/locale/pms/*)
+% locale torlauncher ps %locale/ps/
+ locale/ps/ (src/chrome/locale/ps/*)
+% locale torlauncher pt %locale/pt/
+ locale/pt/ (src/chrome/locale/pt/*)
+% locale torlauncher pt-BR %locale/pt-BR/
+ locale/pt-BR/ (src/chrome/locale/pt-BR/*)
+% locale torlauncher pt-PT %locale/pt-PT/
+ locale/pt-PT/ (src/chrome/locale/pt-PT/*)
+% locale torlauncher ro %locale/ro/
+ locale/ro/ (src/chrome/locale/ro/*)
+% locale torlauncher ru %locale/ru/
+ locale/ru/ (src/chrome/locale/ru/*)
+% locale torlauncher ru@petr1708 %locale/ru@petr1708/
+ locale/ru@petr1708/ (src/chrome/locale/ru@petr1708/*)
+% locale torlauncher sco %locale/sco/
+ locale/sco/ (src/chrome/locale/sco/*)
+% locale torlauncher si-LK %locale/si-LK/
+ locale/si-LK/ (src/chrome/locale/si-LK/*)
+% locale torlauncher sk %locale/sk/
+ locale/sk/ (src/chrome/locale/sk/*)
+% locale torlauncher sk-SK %locale/sk-SK/
+ locale/sk-SK/ (src/chrome/locale/sk-SK/*)
+% locale torlauncher sl %locale/sl/
+ locale/sl/ (src/chrome/locale/sl/*)
+% locale torlauncher sl-SI %locale/sl-SI/
+ locale/sl-SI/ (src/chrome/locale/sl-SI/*)
+% locale torlauncher sn %locale/sn/
+ locale/sn/ (src/chrome/locale/sn/*)
+% locale torlauncher so %locale/so/
+ locale/so/ (src/chrome/locale/so/*)
+% locale torlauncher sq %locale/sq/
+ locale/sq/ (src/chrome/locale/sq/*)
+% locale torlauncher sq-AL %locale/sq-AL/
+ locale/sq-AL/ (src/chrome/locale/sq-AL/*)
+% locale torlauncher sr %locale/sr/
+ locale/sr/ (src/chrome/locale/sr/*)
+% locale torlauncher sr@latin %locale/sr@latin/
+ locale/sr@latin/ (src/chrome/locale/sr@latin/*)
+% locale torlauncher st %locale/st/
+ locale/st/ (src/chrome/locale/st/*)
+% locale torlauncher su %locale/su/
+ locale/su/ (src/chrome/locale/su/*)
+% locale torlauncher sv %locale/sv/
+ locale/sv/ (src/chrome/locale/sv/*)
+% locale torlauncher sw %locale/sw/
+ locale/sw/ (src/chrome/locale/sw/*)
+% locale torlauncher szl %locale/szl/
+ locale/szl/ (src/chrome/locale/szl/*)
+% locale torlauncher ta %locale/ta/
+ locale/ta/ (src/chrome/locale/ta/*)
+% locale torlauncher te %locale/te/
+ locale/te/ (src/chrome/locale/te/*)
+% locale torlauncher te-IN %locale/te-IN/
+ locale/te-IN/ (src/chrome/locale/te-IN/*)
+% locale torlauncher tg %locale/tg/
+ locale/tg/ (src/chrome/locale/tg/*)
+% locale torlauncher th %locale/th/
+ locale/th/ (src/chrome/locale/th/*)
+% locale torlauncher ti %locale/ti/
+ locale/ti/ (src/chrome/locale/ti/*)
+% locale torlauncher tk %locale/tk/
+ locale/tk/ (src/chrome/locale/tk/*)
+% locale torlauncher tr %locale/tr/
+ locale/tr/ (src/chrome/locale/tr/*)
+% locale torlauncher uk %locale/uk/
+ locale/uk/ (src/chrome/locale/uk/*)
+% locale torlauncher ur %locale/ur/
+ locale/ur/ (src/chrome/locale/ur/*)
+% locale torlauncher ur-PK %locale/ur-PK/
+ locale/ur-PK/ (src/chrome/locale/ur-PK/*)
+% locale torlauncher uz %locale/uz/
+ locale/uz/ (src/chrome/locale/uz/*)
+% locale torlauncher ve %locale/ve/
+ locale/ve/ (src/chrome/locale/ve/*)
+% locale torlauncher vi %locale/vi/
+ locale/vi/ (src/chrome/locale/vi/*)
+% locale torlauncher wa %locale/wa/
+ locale/wa/ (src/chrome/locale/wa/*)
+% locale torlauncher wo %locale/wo/
+ locale/wo/ (src/chrome/locale/wo/*)
+% locale torlauncher zh %locale/zh/
+ locale/zh/ (src/chrome/locale/zh/*)
+% locale torlauncher zh-CN %locale/zh-CN/
+ locale/zh-CN/ (src/chrome/locale/zh-CN/*)
+% locale torlauncher zh-CN.GB2312 %locale/zh-CN.GB2312/
+ locale/zh-CN.GB2312/ (src/chrome/locale/zh-CN.GB2312/*)
+% locale torlauncher zh-HK %locale/zh-HK/
+ locale/zh-HK/ (src/chrome/locale/zh-HK/*)
+% locale torlauncher zh-TW %locale/zh-TW/
+ locale/zh-TW/ (src/chrome/locale/zh-TW/*)
+% locale torlauncher zu %locale/zu/
+ locale/zu/ (src/chrome/locale/zu/*)
diff --git a/src/chrome/locale/ach/network-settings.dtd b/src/chrome/locale/ach/network-settings.dtd
deleted file mode 100644
index c6c5687..0000000
--- a/src/chrome/locale/ach/network-settings.dtd
+++ /dev/null
@@ -1,62 +0,0 @@
-<!ENTITY torsettings.dialog.title "Tor Network Settings">
-<!ENTITY torsettings.wizard.title.default "Connect to Tor">
-<!ENTITY torsettings.wizard.title.configure "Tor Network Settings">
-<!ENTITY torsettings.wizard.title.connecting "Establishing a Connection">
-
-<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
-<!ENTITY torlauncher.localePicker.prompt "Please select a language.">
-
-<!-- For "first run" wizard: -->
-
-<!ENTITY torSettings.connectPrompt "Click “Connect” to connect to Tor.">
-<!ENTITY torSettings.configurePrompt "Click “Configure” to adjust network settings if you are in a country that censors Tor (such as Egypt, China, Turkey) or if you are connecting from a private network that requires a proxy.">
-<!ENTITY torSettings.configure "Configure">
-<!ENTITY torSettings.connect "Connect">
-
-<!-- Other: -->
-
-<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
-<!ENTITY torsettings.restartTor "Restart Tor">
-<!ENTITY torsettings.reconfigTor "Reconfigure">
-
-<!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.optional "Optional">
-
-<!ENTITY torsettings.useProxy.checkbox "I use a proxy to connect to the Internet">
-<!ENTITY torsettings.useProxy.type "Proxy Type:">
-<!ENTITY torsettings.useProxy.type.placeholder "select a proxy type">
-<!ENTITY torsettings.useProxy.address "Address:">
-<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
-<!ENTITY torsettings.useProxy.port "Port:">
-<!ENTITY torsettings.useProxy.username "Username:">
-<!ENTITY torsettings.useProxy.password "Password:">
-<!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 "This computer goes through a firewall that only allows connections to certain ports">
-<!ENTITY torsettings.firewall.allowedPorts "Allowed Ports:">
-<!ENTITY torsettings.useBridges.checkbox "Tor is censored in my country">
-<!ENTITY torsettings.useBridges.default "Select a built-in bridge">
-<!ENTITY torsettings.useBridges.default.placeholder "select a bridge">
-<!ENTITY torsettings.useBridges.bridgeDB "Request a bridge from torproject.org">
-<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Enter the characters from the image">
-<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Get a new challenge">
-<!ENTITY torsettings.useBridges.captchaSubmit "Submit">
-<!ENTITY torsettings.useBridges.custom "Provide a bridge I know">
-<!ENTITY torsettings.useBridges.label "Enter bridge information from a trusted source.">
-<!ENTITY torsettings.useBridges.placeholder "type address:port (one per line)">
-
-<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
-
-<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
-
-<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
-<!ENTITY torsettings.bridgeHelp2 "Because of how certain countries try to block Tor, certain bridges work in certain countries but not others.  If you are unsure about which bridges work in your country, visit torproject.org/about/contact.html#support">
-
-<!-- Progress -->
-<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.  This may take several minutes.">
diff --git a/src/chrome/locale/ach/torlauncher.properties b/src/chrome/locale/ach/torlauncher.properties
deleted file mode 100644
index ca9774b..0000000
--- a/src/chrome/locale/ach/torlauncher.properties
+++ /dev/null
@@ -1,94 +0,0 @@
-### Copyright (c) 2016, The Tor Project, Inc.
-### See LICENSE for licensing information.
-
-torlauncher.error_title=Tor Launcher
-
-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=Tor unexpectedly exited. This might be due to a bug in Tor itself, another program on your system, or faulty hardware. Until you restart Tor, the Tor Browser will not able to reach any websites. If the problem persists, please send a copy of your Tor Log to the support team.
-torlauncher.tor_exited2=Restarting Tor will not close your browser tabs.
-torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
-torlauncher.tor_failed_to_start=Tor failed to start.
-torlauncher.tor_control_failed=Failed to take control of Tor.
-torlauncher.tor_bootstrap_failed=Tor failed to establish a Tor network connection.
-torlauncher.tor_bootstrap_failed_details=%1$S failed (%2$S).
-
-torlauncher.unable_to_start_tor=Unable to start Tor.\n\n%S
-torlauncher.tor_missing=The Tor executable is missing.
-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.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_bridgedb_bridges_missing=Please request a bridge.
-torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
-
-torlauncher.bridge_suffix.meek-amazon=(works in China)
-torlauncher.bridge_suffix.meek-azure=(works in China)
-
-torlauncher.request_a_bridge=Request a Bridge…
-torlauncher.request_a_new_bridge=Request a New Bridge…
-torlauncher.contacting_bridgedb=Contacting BridgeDB. Please wait.
-torlauncher.captcha_prompt=Solve the CAPTCHA to request a bridge.
-torlauncher.bad_captcha_solution=The solution is not correct. Please try again.
-torlauncher.unable_to_get_bridge=Unable to obtain a bridge from BridgeDB.\n\n%S
-torlauncher.no_meek=This browser is not configured for meek, which is needed to obtain bridges.
-torlauncher.no_bridges_available=No bridges are available at this time. Sorry.
-
-torlauncher.connect=Connect
-torlauncher.restart_tor=Restart Tor
-torlauncher.quit=Quit
-torlauncher.quit_win=Exit
-torlauncher.done=Done
-
-torlauncher.forAssistance=For assistance, contact %S
-torlauncher.forAssistance2=For assistance, visit %S
-
-torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-
-torlauncher.bootstrapStatus.starting=Starting
-torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
-torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
-torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
-torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
-torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
-torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
-torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
-torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
-torlauncher.bootstrapStatus.requesting_status=Retrieving network status
-torlauncher.bootstrapStatus.loading_status=Loading network status
-torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
-torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
-torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
-torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
-torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
-torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
-torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
-torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
-torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
-torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
-torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
-torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
-torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
-torlauncher.bootstrapStatus.done=Connected to the Tor network!
-
-torlauncher.bootstrapWarning.done=done
-torlauncher.bootstrapWarning.connectrefused=connection refused
-torlauncher.bootstrapWarning.misc=miscellaneous
-torlauncher.bootstrapWarning.resourcelimit=insufficient resources
-torlauncher.bootstrapWarning.identity=identity mismatch
-torlauncher.bootstrapWarning.timeout=connection timeout
-torlauncher.bootstrapWarning.noroute=no route to host
-torlauncher.bootstrapWarning.ioerror=read/write error
-torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
-
-torlauncher.nsresult.NS_ERROR_NET_RESET=The connection to the server was lost.
-torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Could not connect to the server.
-torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Could not connect to the proxy.
diff --git a/src/chrome/locale/ast/network-settings.dtd b/src/chrome/locale/ast/network-settings.dtd
deleted file mode 100644
index c6c5687..0000000
--- a/src/chrome/locale/ast/network-settings.dtd
+++ /dev/null
@@ -1,62 +0,0 @@
-<!ENTITY torsettings.dialog.title "Tor Network Settings">
-<!ENTITY torsettings.wizard.title.default "Connect to Tor">
-<!ENTITY torsettings.wizard.title.configure "Tor Network Settings">
-<!ENTITY torsettings.wizard.title.connecting "Establishing a Connection">
-
-<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
-<!ENTITY torlauncher.localePicker.prompt "Please select a language.">
-
-<!-- For "first run" wizard: -->
-
-<!ENTITY torSettings.connectPrompt "Click “Connect” to connect to Tor.">
-<!ENTITY torSettings.configurePrompt "Click “Configure” to adjust network settings if you are in a country that censors Tor (such as Egypt, China, Turkey) or if you are connecting from a private network that requires a proxy.">
-<!ENTITY torSettings.configure "Configure">
-<!ENTITY torSettings.connect "Connect">
-
-<!-- Other: -->
-
-<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
-<!ENTITY torsettings.restartTor "Restart Tor">
-<!ENTITY torsettings.reconfigTor "Reconfigure">
-
-<!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.optional "Optional">
-
-<!ENTITY torsettings.useProxy.checkbox "I use a proxy to connect to the Internet">
-<!ENTITY torsettings.useProxy.type "Proxy Type:">
-<!ENTITY torsettings.useProxy.type.placeholder "select a proxy type">
-<!ENTITY torsettings.useProxy.address "Address:">
-<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
-<!ENTITY torsettings.useProxy.port "Port:">
-<!ENTITY torsettings.useProxy.username "Username:">
-<!ENTITY torsettings.useProxy.password "Password:">
-<!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 "This computer goes through a firewall that only allows connections to certain ports">
-<!ENTITY torsettings.firewall.allowedPorts "Allowed Ports:">
-<!ENTITY torsettings.useBridges.checkbox "Tor is censored in my country">
-<!ENTITY torsettings.useBridges.default "Select a built-in bridge">
-<!ENTITY torsettings.useBridges.default.placeholder "select a bridge">
-<!ENTITY torsettings.useBridges.bridgeDB "Request a bridge from torproject.org">
-<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Enter the characters from the image">
-<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Get a new challenge">
-<!ENTITY torsettings.useBridges.captchaSubmit "Submit">
-<!ENTITY torsettings.useBridges.custom "Provide a bridge I know">
-<!ENTITY torsettings.useBridges.label "Enter bridge information from a trusted source.">
-<!ENTITY torsettings.useBridges.placeholder "type address:port (one per line)">
-
-<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
-
-<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
-
-<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
-<!ENTITY torsettings.bridgeHelp2 "Because of how certain countries try to block Tor, certain bridges work in certain countries but not others.  If you are unsure about which bridges work in your country, visit torproject.org/about/contact.html#support">
-
-<!-- Progress -->
-<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.  This may take several minutes.">
diff --git a/src/chrome/locale/ast/torlauncher.properties b/src/chrome/locale/ast/torlauncher.properties
deleted file mode 100644
index ca9774b..0000000
--- a/src/chrome/locale/ast/torlauncher.properties
+++ /dev/null
@@ -1,94 +0,0 @@
-### Copyright (c) 2016, The Tor Project, Inc.
-### See LICENSE for licensing information.
-
-torlauncher.error_title=Tor Launcher
-
-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=Tor unexpectedly exited. This might be due to a bug in Tor itself, another program on your system, or faulty hardware. Until you restart Tor, the Tor Browser will not able to reach any websites. If the problem persists, please send a copy of your Tor Log to the support team.
-torlauncher.tor_exited2=Restarting Tor will not close your browser tabs.
-torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
-torlauncher.tor_failed_to_start=Tor failed to start.
-torlauncher.tor_control_failed=Failed to take control of Tor.
-torlauncher.tor_bootstrap_failed=Tor failed to establish a Tor network connection.
-torlauncher.tor_bootstrap_failed_details=%1$S failed (%2$S).
-
-torlauncher.unable_to_start_tor=Unable to start Tor.\n\n%S
-torlauncher.tor_missing=The Tor executable is missing.
-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.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_bridgedb_bridges_missing=Please request a bridge.
-torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
-
-torlauncher.bridge_suffix.meek-amazon=(works in China)
-torlauncher.bridge_suffix.meek-azure=(works in China)
-
-torlauncher.request_a_bridge=Request a Bridge…
-torlauncher.request_a_new_bridge=Request a New Bridge…
-torlauncher.contacting_bridgedb=Contacting BridgeDB. Please wait.
-torlauncher.captcha_prompt=Solve the CAPTCHA to request a bridge.
-torlauncher.bad_captcha_solution=The solution is not correct. Please try again.
-torlauncher.unable_to_get_bridge=Unable to obtain a bridge from BridgeDB.\n\n%S
-torlauncher.no_meek=This browser is not configured for meek, which is needed to obtain bridges.
-torlauncher.no_bridges_available=No bridges are available at this time. Sorry.
-
-torlauncher.connect=Connect
-torlauncher.restart_tor=Restart Tor
-torlauncher.quit=Quit
-torlauncher.quit_win=Exit
-torlauncher.done=Done
-
-torlauncher.forAssistance=For assistance, contact %S
-torlauncher.forAssistance2=For assistance, visit %S
-
-torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-
-torlauncher.bootstrapStatus.starting=Starting
-torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
-torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
-torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
-torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
-torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
-torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
-torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
-torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
-torlauncher.bootstrapStatus.requesting_status=Retrieving network status
-torlauncher.bootstrapStatus.loading_status=Loading network status
-torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
-torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
-torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
-torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
-torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
-torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
-torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
-torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
-torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
-torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
-torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
-torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
-torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
-torlauncher.bootstrapStatus.done=Connected to the Tor network!
-
-torlauncher.bootstrapWarning.done=done
-torlauncher.bootstrapWarning.connectrefused=connection refused
-torlauncher.bootstrapWarning.misc=miscellaneous
-torlauncher.bootstrapWarning.resourcelimit=insufficient resources
-torlauncher.bootstrapWarning.identity=identity mismatch
-torlauncher.bootstrapWarning.timeout=connection timeout
-torlauncher.bootstrapWarning.noroute=no route to host
-torlauncher.bootstrapWarning.ioerror=read/write error
-torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
-
-torlauncher.nsresult.NS_ERROR_NET_RESET=The connection to the server was lost.
-torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Could not connect to the server.
-torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Could not connect to the proxy.
diff --git a/src/chrome/locale/ca-ES/torlauncher.properties b/src/chrome/locale/ca-ES/torlauncher.properties
deleted file mode 100644
index 65407db..0000000
--- a/src/chrome/locale/ca-ES/torlauncher.properties
+++ /dev/null
@@ -1,49 +0,0 @@
-### Copyright (c) 2014, The Tor Project, Inc.
-### See LICENSE for licensing information.
-
-# torlauncher.error_title=Tor Launcher
-
-# torlauncher.tor_exited=Tor unexpectedly exited.
-# torlauncher.please_restart_app=Please restart this application.
-# torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
-# torlauncher.tor_failed_to_start=Tor failed to start.
-# torlauncher.tor_bootstrap_failed=Tor failed to establish a Tor network connection.
-# torlauncher.tor_bootstrap_failed_details=%1$S failed (%2$S).
-
-# torlauncher.unable_to_start_tor=Unable to start Tor.\n\n%S
-# torlauncher.tor_missing=The Tor executable is missing.
-# torlauncher.torrc_missing=The torrc file is missing.
-# torlauncher.datadir_missing=The Tor data directory does not exist.
-# 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.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.connect=Connect
-# torlauncher.quit=Quit
-# torlauncher.quit_win=Exit
-# torlauncher.done=Done
-
-# torlauncher.forAssistance=For assistance, contact %S
-
-# torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
-# torlauncher.bootstrapStatus.requesting_status=Retrieving network status
-# torlauncher.bootstrapStatus.loading_status=Loading network status
-# torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
-# torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
-# torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
-# torlauncher.bootstrapStatus.done=Connected to the Tor network!
-
-# torlauncher.bootstrapWarning.done=done
-# torlauncher.bootstrapWarning.connectrefused=connection refused
-# torlauncher.bootstrapWarning.misc=miscellaneous
-# torlauncher.bootstrapWarning.resourcelimit=insufficient resources
-# torlauncher.bootstrapWarning.identity=identity mismatch
-# torlauncher.bootstrapWarning.timeout=connection timeout
-# torlauncher.bootstrapWarning.noroute=no route to host
-# torlauncher.bootstrapWarning.ioerror=read/write error
diff --git a/src/chrome/locale/en-GB/network-settings.dtd b/src/chrome/locale/en-GB/network-settings.dtd
deleted file mode 100644
index c6c5687..0000000
--- a/src/chrome/locale/en-GB/network-settings.dtd
+++ /dev/null
@@ -1,62 +0,0 @@
-<!ENTITY torsettings.dialog.title "Tor Network Settings">
-<!ENTITY torsettings.wizard.title.default "Connect to Tor">
-<!ENTITY torsettings.wizard.title.configure "Tor Network Settings">
-<!ENTITY torsettings.wizard.title.connecting "Establishing a Connection">
-
-<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
-<!ENTITY torlauncher.localePicker.prompt "Please select a language.">
-
-<!-- For "first run" wizard: -->
-
-<!ENTITY torSettings.connectPrompt "Click “Connect” to connect to Tor.">
-<!ENTITY torSettings.configurePrompt "Click “Configure” to adjust network settings if you are in a country that censors Tor (such as Egypt, China, Turkey) or if you are connecting from a private network that requires a proxy.">
-<!ENTITY torSettings.configure "Configure">
-<!ENTITY torSettings.connect "Connect">
-
-<!-- Other: -->
-
-<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
-<!ENTITY torsettings.restartTor "Restart Tor">
-<!ENTITY torsettings.reconfigTor "Reconfigure">
-
-<!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.optional "Optional">
-
-<!ENTITY torsettings.useProxy.checkbox "I use a proxy to connect to the Internet">
-<!ENTITY torsettings.useProxy.type "Proxy Type:">
-<!ENTITY torsettings.useProxy.type.placeholder "select a proxy type">
-<!ENTITY torsettings.useProxy.address "Address:">
-<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
-<!ENTITY torsettings.useProxy.port "Port:">
-<!ENTITY torsettings.useProxy.username "Username:">
-<!ENTITY torsettings.useProxy.password "Password:">
-<!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 "This computer goes through a firewall that only allows connections to certain ports">
-<!ENTITY torsettings.firewall.allowedPorts "Allowed Ports:">
-<!ENTITY torsettings.useBridges.checkbox "Tor is censored in my country">
-<!ENTITY torsettings.useBridges.default "Select a built-in bridge">
-<!ENTITY torsettings.useBridges.default.placeholder "select a bridge">
-<!ENTITY torsettings.useBridges.bridgeDB "Request a bridge from torproject.org">
-<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Enter the characters from the image">
-<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Get a new challenge">
-<!ENTITY torsettings.useBridges.captchaSubmit "Submit">
-<!ENTITY torsettings.useBridges.custom "Provide a bridge I know">
-<!ENTITY torsettings.useBridges.label "Enter bridge information from a trusted source.">
-<!ENTITY torsettings.useBridges.placeholder "type address:port (one per line)">
-
-<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
-
-<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
-
-<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
-<!ENTITY torsettings.bridgeHelp2 "Because of how certain countries try to block Tor, certain bridges work in certain countries but not others.  If you are unsure about which bridges work in your country, visit torproject.org/about/contact.html#support">
-
-<!-- Progress -->
-<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.  This may take several minutes.">
diff --git a/src/chrome/locale/en-GB/torlauncher.properties b/src/chrome/locale/en-GB/torlauncher.properties
deleted file mode 100644
index ca9774b..0000000
--- a/src/chrome/locale/en-GB/torlauncher.properties
+++ /dev/null
@@ -1,94 +0,0 @@
-### Copyright (c) 2016, The Tor Project, Inc.
-### See LICENSE for licensing information.
-
-torlauncher.error_title=Tor Launcher
-
-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=Tor unexpectedly exited. This might be due to a bug in Tor itself, another program on your system, or faulty hardware. Until you restart Tor, the Tor Browser will not able to reach any websites. If the problem persists, please send a copy of your Tor Log to the support team.
-torlauncher.tor_exited2=Restarting Tor will not close your browser tabs.
-torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
-torlauncher.tor_failed_to_start=Tor failed to start.
-torlauncher.tor_control_failed=Failed to take control of Tor.
-torlauncher.tor_bootstrap_failed=Tor failed to establish a Tor network connection.
-torlauncher.tor_bootstrap_failed_details=%1$S failed (%2$S).
-
-torlauncher.unable_to_start_tor=Unable to start Tor.\n\n%S
-torlauncher.tor_missing=The Tor executable is missing.
-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.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_bridgedb_bridges_missing=Please request a bridge.
-torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
-
-torlauncher.bridge_suffix.meek-amazon=(works in China)
-torlauncher.bridge_suffix.meek-azure=(works in China)
-
-torlauncher.request_a_bridge=Request a Bridge…
-torlauncher.request_a_new_bridge=Request a New Bridge…
-torlauncher.contacting_bridgedb=Contacting BridgeDB. Please wait.
-torlauncher.captcha_prompt=Solve the CAPTCHA to request a bridge.
-torlauncher.bad_captcha_solution=The solution is not correct. Please try again.
-torlauncher.unable_to_get_bridge=Unable to obtain a bridge from BridgeDB.\n\n%S
-torlauncher.no_meek=This browser is not configured for meek, which is needed to obtain bridges.
-torlauncher.no_bridges_available=No bridges are available at this time. Sorry.
-
-torlauncher.connect=Connect
-torlauncher.restart_tor=Restart Tor
-torlauncher.quit=Quit
-torlauncher.quit_win=Exit
-torlauncher.done=Done
-
-torlauncher.forAssistance=For assistance, contact %S
-torlauncher.forAssistance2=For assistance, visit %S
-
-torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-
-torlauncher.bootstrapStatus.starting=Starting
-torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
-torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
-torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
-torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
-torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
-torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
-torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
-torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
-torlauncher.bootstrapStatus.requesting_status=Retrieving network status
-torlauncher.bootstrapStatus.loading_status=Loading network status
-torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
-torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
-torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
-torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
-torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
-torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
-torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
-torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
-torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
-torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
-torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
-torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
-torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
-torlauncher.bootstrapStatus.done=Connected to the Tor network!
-
-torlauncher.bootstrapWarning.done=done
-torlauncher.bootstrapWarning.connectrefused=connection refused
-torlauncher.bootstrapWarning.misc=miscellaneous
-torlauncher.bootstrapWarning.resourcelimit=insufficient resources
-torlauncher.bootstrapWarning.identity=identity mismatch
-torlauncher.bootstrapWarning.timeout=connection timeout
-torlauncher.bootstrapWarning.noroute=no route to host
-torlauncher.bootstrapWarning.ioerror=read/write error
-torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
-
-torlauncher.nsresult.NS_ERROR_NET_RESET=The connection to the server was lost.
-torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Could not connect to the server.
-torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Could not connect to the proxy.
diff --git a/src/chrome/locale/ko/torlauncher.properties b/src/chrome/locale/ko/torlauncher.properties
index 2e32da2..7b430b3 100644
--- a/src/chrome/locale/ko/torlauncher.properties
+++ b/src/chrome/locale/ko/torlauncher.properties
@@ -3,43 +3,43 @@
torlauncher.error_title=Tor 런처
-torlauncher.tor_exited_during_startup=시작하는 동안 Tor가 종료되었습니다. 이것은 torrc 파일의 오류, Tor 또는 시스템의 다른 프로그램의 버그 또는 하드웨어 결함으로 인한 것일 수 있습니다. 기본 문제를 해결하고 Tor를 다시 시작할 때까지 Tor 브라우저는 시작되지 않습니다.
+torlauncher.tor_exited_during_startup=시작하는 동안 Tor가 종료되었습니다. 이것은 torrc 파일의 오류, Tor 나 PC의 다른 프로그램의 버그, 혹은 하드웨어 결함으로 인한 것일 수 있습니다. 기본 문제를 해결하고 Tor를 다시 시작할 때까지 Tor 브라우저는 시작되지 않습니다.
torlauncher.tor_exited=Tor가 예기치 않게 종료되었습니다. 이것은 Tor 자체의 오류, 사용자 시스템의 타 프로그램 또는 하드웨어의 오류 때문일 수 있습니다. 사용자가 Tor를 재시작 하기 전까진, Tor 브라우저는 어떠한 웹사이트에 접속하지 않습니다. 문제가 계속된다면, 지원팀에게 당신의 Tor 로그를 보내주십시오.
-torlauncher.tor_exited2=Tor를 재시작해도 브라우저 탭은 닫히지 않음.
+torlauncher.tor_exited2=Tor를 재시작해도 브라우저 탭은 닫히지 않습니다.
torlauncher.tor_controlconn_failed=Tor 제어 포트에 연결할 수 없습니다.
-torlauncher.tor_failed_to_start=Tor 시작 실패.
+torlauncher.tor_failed_to_start=Tor 시작에 실패했습니다.
torlauncher.tor_control_failed=Tor 제어에 실패했습니다.
-torlauncher.tor_bootstrap_failed=Tor 네트워크 연결 설정 실패
+torlauncher.tor_bootstrap_failed=Tor 네트워크 연결에 실패했습니다.
torlauncher.tor_bootstrap_failed_details=%1$S 실패 (%2$S)
torlauncher.unable_to_start_tor=Tor를 시작할 수 없습니다.\n\n%S
torlauncher.tor_missing=Tor 실행 파일이 없습니다.
torlauncher.torrc_missing=torrc 파일이 사라졌으며 생성 할 수 없습니다.
torlauncher.datadir_missing=Tor 데이터 디렉토리가 존재하지 않으며 생성할 수 없습니다.
-torlauncher.password_hash_missing=해쉬 암호 획득 실패
+torlauncher.password_hash_missing=해쉬 암호을 얻어오지 못 하였습니다.
torlauncher.failed_to_get_settings=Tor 설정을 찾을 수 없습니다.\n\n%S
torlauncher.failed_to_save_settings=Tor 설정을 저장할 수 없습니다.\n\n%S
-torlauncher.ensure_tor_is_running=Tor가 실행중인 지 확인하여 주십시오.
+torlauncher.ensure_tor_is_running=Tor가 실행중인지 확인하여 주십시오.
-torlauncher.error_proxy_addr_missing=인터넷에 접속하기 위해 프록시를 사용한다면, Ip주소나 호스트 이름, 그리고 포트 번호를 입력해야 합니다.
+torlauncher.error_proxy_addr_missing=인터넷에 접속하기 위해 프록시를 사용한다면, IP주소나 호스트 이름, 그리고 포트 번호를 입력해야 합니다.
torlauncher.error_proxy_type_missing=프록시 유형을 선택해 주십시오.
torlauncher.error_bridges_missing=하나 이상의 bridge를 지정해야 합니다.
torlauncher.error_default_bridges_type_missing=제공된 브리지의 전송 유형을 선택해야합니다.
-torlauncher.error_bridgedb_bridges_missing=Please request a bridge.
-torlauncher.error_bridge_bad_default_type=전송 유형 %S가 제공 한 브리지 유효한 것이 아닙니다. 설정을 조정하십시오.
+torlauncher.error_bridgedb_bridges_missing=브릿지를 요청해주세요.
+torlauncher.error_bridge_bad_default_type=전송 유형 %S가 제공한 브리지는 유효하지 않습니다. 설정을 조정하십시오.
-torlauncher.bridge_suffix.meek-amazon=(works in China)
-torlauncher.bridge_suffix.meek-azure=(works in China)
+torlauncher.bridge_suffix.meek-amazon=(중국에서 일하기)
+torlauncher.bridge_suffix.meek-azure=(중국에서 일하기)
-torlauncher.request_a_bridge=Request a Bridge…
-torlauncher.request_a_new_bridge=Request a New Bridge…
-torlauncher.contacting_bridgedb=Contacting BridgeDB. Please wait.
-torlauncher.captcha_prompt=Solve the CAPTCHA to request a bridge.
-torlauncher.bad_captcha_solution=The solution is not correct. Please try again.
-torlauncher.unable_to_get_bridge=Unable to obtain a bridge from BridgeDB.\n\n%S
-torlauncher.no_meek=This browser is not configured for meek, which is needed to obtain bridges.
-torlauncher.no_bridges_available=No bridges are available at this time. Sorry.
+torlauncher.request_a_bridge=브릿지 요청하기
+torlauncher.request_a_new_bridge=새로운 브릿지 요청하기
+torlauncher.contacting_bridgedb=브릿지DB에 연결하고 있으니, 잠시 기다려주세요.
+torlauncher.captcha_prompt=브릿지를 요청하기 위해 CAPCHA를 풀어주세요.
+torlauncher.bad_captcha_solution=풀이가 맞지 않습니다. 다시 시도해주세요.
+torlauncher.unable_to_get_bridge=브릿지DB로터 브릿지를 얻어오지 못 하였습니다.\n\n%S
+torlauncher.no_meek=이 브라우저는 브릿지 확보에 필요한 온전한 기능을 위해 설정되어 있지 않습니다.
+torlauncher.no_bridges_available=지금은 사용할 수 있는 브릿지가 없습니다. 죄송합니다.
torlauncher.connect=연결
torlauncher.restart_tor=Tor 재시작
@@ -47,40 +47,40 @@ torlauncher.quit=끝내기
torlauncher.quit_win=종료
torlauncher.done=완료
-torlauncher.forAssistance=지원자 연결 %S
+torlauncher.forAssistance=도움이 필요하면, %S에 연락하십시오.
torlauncher.forAssistance2=도움이 필요하면 %S를 방문하십시오.
-torlauncher.copiedNLogMessages=복사 완료. %S Tor 로그 메시지는 텍스트 편집기 나 이메일 메시지에 붙여 넣을 수 있는 상태가 됩니다.
+torlauncher.copiedNLogMessages=복사 완료. %S Tor 로그 메시지는 텍스트 편집기나 이메일 메시지에 붙여넣을 수 있는 상태가 됩니다.
torlauncher.bootstrapStatus.starting=시작중
-torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
-torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
-torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
-torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
-torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
-torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
-torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
-torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.conn_pt=브릿지에 연결하고 있습니다.
+torlauncher.bootstrapStatus.conn_done_pt=브릿지에 연결되었습니다.
+torlauncher.bootstrapStatus.conn_proxy=프록시에 연결하고 있습니다.
+torlauncher.bootstrapStatus.conn_done_proxy=프록시에 연결되었습니다.
+torlauncher.bootstrapStatus.conn=Tor 릴레이에 연결하고 있습니다.
+torlauncher.bootstrapStatus.conn_done=Tor 릴레이에 연결되었습니다.
+torlauncher.bootstrapStatus.handshake=Tor 릴레이와 네고하고 있습니다.
+torlauncher.bootstrapStatus.handshake_done=Tor 릴레이와의 네고를 완료하였습니다.
torlauncher.bootstrapStatus.onehop_create=경로와의 연결을 암호화해서 만들고 있어요
-torlauncher.bootstrapStatus.requesting_status=네트워크의 상태를 가져오는중
-torlauncher.bootstrapStatus.loading_status=네트워크의 상태를 요청중
-torlauncher.bootstrapStatus.loading_keys=권한 인증서를 로딩중
-torlauncher.bootstrapStatus.requesting_descriptors=중계서버 정보를 요청중
-torlauncher.bootstrapStatus.loading_descriptors=중계서버 정보를 로딩중
-torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
-torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
-torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
-torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
-torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
-torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
-torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
-torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
-torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
-torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
-torlauncher.bootstrapStatus.done=Tor 네트워크에 연결 성공!
+torlauncher.bootstrapStatus.requesting_status=네트워크의 상태를 가져오고 있습니다.
+torlauncher.bootstrapStatus.loading_status=네트워크의 상태를 불러오고 있습니다.
+torlauncher.bootstrapStatus.loading_keys=인증서를 로딩하고 있습니다.
+torlauncher.bootstrapStatus.requesting_descriptors=중계서버 정보를 요청하고 있습니다.
+torlauncher.bootstrapStatus.loading_descriptors=중계서버 정보를 불러오고 있습니다.
+torlauncher.bootstrapStatus.enough_dirinfo=릴레이 정보 불러오기에 완료하였습니다.
+torlauncher.bootstrapStatus.ap_conn_pt=우회로 연결: 브릿지에 연결하고 있습니다.
+torlauncher.bootstrapStatus.ap_conn_done_pt=우회로 연결: 브릿지에 연결되었습니다.
+torlauncher.bootstrapStatus.ap_conn_proxy=우회로 연결: 프록시에 연결하고 있습니다.
+torlauncher.bootstrapStatus.ap_conn_done_proxy=우회로 연결: 프록시에 연결되었습니다.
+torlauncher.bootstrapStatus.ap_conn=우회로 연결: Tor 릴레이에 연결하고 있습니다.
+torlauncher.bootstrapStatus.ap_conn_done=우회로 연결: Tor 릴레이에 연결되었습니다.
+torlauncher.bootstrapStatus.ap_handshake=우회로 연결: Tor 릴레이와 네고하고 있습니다.
+torlauncher.bootstrapStatus.ap_handshake_done=우회로 연결: Tor 릴레이와의 네고가 끝났습니다.
+torlauncher.bootstrapStatus.circuit_create=우회로 연결: Tor 우회로가 연결되었습니다.
+torlauncher.bootstrapStatus.done=Tor 네트워크에 연결되었습니다.
torlauncher.bootstrapWarning.done=완료
-torlauncher.bootstrapWarning.connectrefused=연결이 거부됨
+torlauncher.bootstrapWarning.connectrefused=연결이 거부되었습니다.
torlauncher.bootstrapWarning.misc=기타
torlauncher.bootstrapWarning.resourcelimit=리소스 부족
torlauncher.bootstrapWarning.identity=계정 불일치
@@ -89,6 +89,6 @@ torlauncher.bootstrapWarning.noroute=호스트로의 연결 경로가 없음
torlauncher.bootstrapWarning.ioerror=읽기 / 쓰기 오류
torlauncher.bootstrapWarning.pt_missing=플러그가 가능한 전송을 찾을 수 없습니다
-torlauncher.nsresult.NS_ERROR_NET_RESET=The connection to the server was lost.
-torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Could not connect to the server.
-torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Could not connect to the proxy.
+torlauncher.nsresult.NS_ERROR_NET_RESET=서버와의 연결이 끊어졌습니다.
+torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=서버와 연결할 수 없습니다.
+torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=프록시와 연결할 수 없습니다.
diff --git a/src/chrome/locale/oc/network-settings.dtd b/src/chrome/locale/oc/network-settings.dtd
deleted file mode 100644
index c6c5687..0000000
--- a/src/chrome/locale/oc/network-settings.dtd
+++ /dev/null
@@ -1,62 +0,0 @@
-<!ENTITY torsettings.dialog.title "Tor Network Settings">
-<!ENTITY torsettings.wizard.title.default "Connect to Tor">
-<!ENTITY torsettings.wizard.title.configure "Tor Network Settings">
-<!ENTITY torsettings.wizard.title.connecting "Establishing a Connection">
-
-<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
-<!ENTITY torlauncher.localePicker.prompt "Please select a language.">
-
-<!-- For "first run" wizard: -->
-
-<!ENTITY torSettings.connectPrompt "Click “Connect” to connect to Tor.">
-<!ENTITY torSettings.configurePrompt "Click “Configure” to adjust network settings if you are in a country that censors Tor (such as Egypt, China, Turkey) or if you are connecting from a private network that requires a proxy.">
-<!ENTITY torSettings.configure "Configure">
-<!ENTITY torSettings.connect "Connect">
-
-<!-- Other: -->
-
-<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
-<!ENTITY torsettings.restartTor "Restart Tor">
-<!ENTITY torsettings.reconfigTor "Reconfigure">
-
-<!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.optional "Optional">
-
-<!ENTITY torsettings.useProxy.checkbox "I use a proxy to connect to the Internet">
-<!ENTITY torsettings.useProxy.type "Proxy Type:">
-<!ENTITY torsettings.useProxy.type.placeholder "select a proxy type">
-<!ENTITY torsettings.useProxy.address "Address:">
-<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
-<!ENTITY torsettings.useProxy.port "Port:">
-<!ENTITY torsettings.useProxy.username "Username:">
-<!ENTITY torsettings.useProxy.password "Password:">
-<!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 "This computer goes through a firewall that only allows connections to certain ports">
-<!ENTITY torsettings.firewall.allowedPorts "Allowed Ports:">
-<!ENTITY torsettings.useBridges.checkbox "Tor is censored in my country">
-<!ENTITY torsettings.useBridges.default "Select a built-in bridge">
-<!ENTITY torsettings.useBridges.default.placeholder "select a bridge">
-<!ENTITY torsettings.useBridges.bridgeDB "Request a bridge from torproject.org">
-<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Enter the characters from the image">
-<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Get a new challenge">
-<!ENTITY torsettings.useBridges.captchaSubmit "Submit">
-<!ENTITY torsettings.useBridges.custom "Provide a bridge I know">
-<!ENTITY torsettings.useBridges.label "Enter bridge information from a trusted source.">
-<!ENTITY torsettings.useBridges.placeholder "type address:port (one per line)">
-
-<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
-
-<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
-
-<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
-<!ENTITY torsettings.bridgeHelp2 "Because of how certain countries try to block Tor, certain bridges work in certain countries but not others.  If you are unsure about which bridges work in your country, visit torproject.org/about/contact.html#support">
-
-<!-- Progress -->
-<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.  This may take several minutes.">
diff --git a/src/chrome/locale/oc/torlauncher.properties b/src/chrome/locale/oc/torlauncher.properties
deleted file mode 100644
index ca9774b..0000000
--- a/src/chrome/locale/oc/torlauncher.properties
+++ /dev/null
@@ -1,94 +0,0 @@
-### Copyright (c) 2016, The Tor Project, Inc.
-### See LICENSE for licensing information.
-
-torlauncher.error_title=Tor Launcher
-
-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=Tor unexpectedly exited. This might be due to a bug in Tor itself, another program on your system, or faulty hardware. Until you restart Tor, the Tor Browser will not able to reach any websites. If the problem persists, please send a copy of your Tor Log to the support team.
-torlauncher.tor_exited2=Restarting Tor will not close your browser tabs.
-torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
-torlauncher.tor_failed_to_start=Tor failed to start.
-torlauncher.tor_control_failed=Failed to take control of Tor.
-torlauncher.tor_bootstrap_failed=Tor failed to establish a Tor network connection.
-torlauncher.tor_bootstrap_failed_details=%1$S failed (%2$S).
-
-torlauncher.unable_to_start_tor=Unable to start Tor.\n\n%S
-torlauncher.tor_missing=The Tor executable is missing.
-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.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_bridgedb_bridges_missing=Please request a bridge.
-torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
-
-torlauncher.bridge_suffix.meek-amazon=(works in China)
-torlauncher.bridge_suffix.meek-azure=(works in China)
-
-torlauncher.request_a_bridge=Request a Bridge…
-torlauncher.request_a_new_bridge=Request a New Bridge…
-torlauncher.contacting_bridgedb=Contacting BridgeDB. Please wait.
-torlauncher.captcha_prompt=Solve the CAPTCHA to request a bridge.
-torlauncher.bad_captcha_solution=The solution is not correct. Please try again.
-torlauncher.unable_to_get_bridge=Unable to obtain a bridge from BridgeDB.\n\n%S
-torlauncher.no_meek=This browser is not configured for meek, which is needed to obtain bridges.
-torlauncher.no_bridges_available=No bridges are available at this time. Sorry.
-
-torlauncher.connect=Connect
-torlauncher.restart_tor=Restart Tor
-torlauncher.quit=Quit
-torlauncher.quit_win=Exit
-torlauncher.done=Done
-
-torlauncher.forAssistance=For assistance, contact %S
-torlauncher.forAssistance2=For assistance, visit %S
-
-torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-
-torlauncher.bootstrapStatus.starting=Starting
-torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
-torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
-torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
-torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
-torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
-torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
-torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
-torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
-torlauncher.bootstrapStatus.requesting_status=Retrieving network status
-torlauncher.bootstrapStatus.loading_status=Loading network status
-torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
-torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
-torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
-torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
-torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
-torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
-torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
-torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
-torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
-torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
-torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
-torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
-torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
-torlauncher.bootstrapStatus.done=Connected to the Tor network!
-
-torlauncher.bootstrapWarning.done=done
-torlauncher.bootstrapWarning.connectrefused=connection refused
-torlauncher.bootstrapWarning.misc=miscellaneous
-torlauncher.bootstrapWarning.resourcelimit=insufficient resources
-torlauncher.bootstrapWarning.identity=identity mismatch
-torlauncher.bootstrapWarning.timeout=connection timeout
-torlauncher.bootstrapWarning.noroute=no route to host
-torlauncher.bootstrapWarning.ioerror=read/write error
-torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
-
-torlauncher.nsresult.NS_ERROR_NET_RESET=The connection to the server was lost.
-torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Could not connect to the server.
-torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Could not connect to the proxy.
diff --git a/src/chrome/locale/or/network-settings.dtd b/src/chrome/locale/or/network-settings.dtd
deleted file mode 100644
index c6c5687..0000000
--- a/src/chrome/locale/or/network-settings.dtd
+++ /dev/null
@@ -1,62 +0,0 @@
-<!ENTITY torsettings.dialog.title "Tor Network Settings">
-<!ENTITY torsettings.wizard.title.default "Connect to Tor">
-<!ENTITY torsettings.wizard.title.configure "Tor Network Settings">
-<!ENTITY torsettings.wizard.title.connecting "Establishing a Connection">
-
-<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
-<!ENTITY torlauncher.localePicker.prompt "Please select a language.">
-
-<!-- For "first run" wizard: -->
-
-<!ENTITY torSettings.connectPrompt "Click “Connect” to connect to Tor.">
-<!ENTITY torSettings.configurePrompt "Click “Configure” to adjust network settings if you are in a country that censors Tor (such as Egypt, China, Turkey) or if you are connecting from a private network that requires a proxy.">
-<!ENTITY torSettings.configure "Configure">
-<!ENTITY torSettings.connect "Connect">
-
-<!-- Other: -->
-
-<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
-<!ENTITY torsettings.restartTor "Restart Tor">
-<!ENTITY torsettings.reconfigTor "Reconfigure">
-
-<!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.optional "Optional">
-
-<!ENTITY torsettings.useProxy.checkbox "I use a proxy to connect to the Internet">
-<!ENTITY torsettings.useProxy.type "Proxy Type:">
-<!ENTITY torsettings.useProxy.type.placeholder "select a proxy type">
-<!ENTITY torsettings.useProxy.address "Address:">
-<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
-<!ENTITY torsettings.useProxy.port "Port:">
-<!ENTITY torsettings.useProxy.username "Username:">
-<!ENTITY torsettings.useProxy.password "Password:">
-<!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 "This computer goes through a firewall that only allows connections to certain ports">
-<!ENTITY torsettings.firewall.allowedPorts "Allowed Ports:">
-<!ENTITY torsettings.useBridges.checkbox "Tor is censored in my country">
-<!ENTITY torsettings.useBridges.default "Select a built-in bridge">
-<!ENTITY torsettings.useBridges.default.placeholder "select a bridge">
-<!ENTITY torsettings.useBridges.bridgeDB "Request a bridge from torproject.org">
-<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Enter the characters from the image">
-<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Get a new challenge">
-<!ENTITY torsettings.useBridges.captchaSubmit "Submit">
-<!ENTITY torsettings.useBridges.custom "Provide a bridge I know">
-<!ENTITY torsettings.useBridges.label "Enter bridge information from a trusted source.">
-<!ENTITY torsettings.useBridges.placeholder "type address:port (one per line)">
-
-<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
-
-<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
-
-<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
-<!ENTITY torsettings.bridgeHelp2 "Because of how certain countries try to block Tor, certain bridges work in certain countries but not others.  If you are unsure about which bridges work in your country, visit torproject.org/about/contact.html#support">
-
-<!-- Progress -->
-<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.  This may take several minutes.">
diff --git a/src/chrome/locale/or/torlauncher.properties b/src/chrome/locale/or/torlauncher.properties
deleted file mode 100644
index ca9774b..0000000
--- a/src/chrome/locale/or/torlauncher.properties
+++ /dev/null
@@ -1,94 +0,0 @@
-### Copyright (c) 2016, The Tor Project, Inc.
-### See LICENSE for licensing information.
-
-torlauncher.error_title=Tor Launcher
-
-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=Tor unexpectedly exited. This might be due to a bug in Tor itself, another program on your system, or faulty hardware. Until you restart Tor, the Tor Browser will not able to reach any websites. If the problem persists, please send a copy of your Tor Log to the support team.
-torlauncher.tor_exited2=Restarting Tor will not close your browser tabs.
-torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
-torlauncher.tor_failed_to_start=Tor failed to start.
-torlauncher.tor_control_failed=Failed to take control of Tor.
-torlauncher.tor_bootstrap_failed=Tor failed to establish a Tor network connection.
-torlauncher.tor_bootstrap_failed_details=%1$S failed (%2$S).
-
-torlauncher.unable_to_start_tor=Unable to start Tor.\n\n%S
-torlauncher.tor_missing=The Tor executable is missing.
-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.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_bridgedb_bridges_missing=Please request a bridge.
-torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
-
-torlauncher.bridge_suffix.meek-amazon=(works in China)
-torlauncher.bridge_suffix.meek-azure=(works in China)
-
-torlauncher.request_a_bridge=Request a Bridge…
-torlauncher.request_a_new_bridge=Request a New Bridge…
-torlauncher.contacting_bridgedb=Contacting BridgeDB. Please wait.
-torlauncher.captcha_prompt=Solve the CAPTCHA to request a bridge.
-torlauncher.bad_captcha_solution=The solution is not correct. Please try again.
-torlauncher.unable_to_get_bridge=Unable to obtain a bridge from BridgeDB.\n\n%S
-torlauncher.no_meek=This browser is not configured for meek, which is needed to obtain bridges.
-torlauncher.no_bridges_available=No bridges are available at this time. Sorry.
-
-torlauncher.connect=Connect
-torlauncher.restart_tor=Restart Tor
-torlauncher.quit=Quit
-torlauncher.quit_win=Exit
-torlauncher.done=Done
-
-torlauncher.forAssistance=For assistance, contact %S
-torlauncher.forAssistance2=For assistance, visit %S
-
-torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-
-torlauncher.bootstrapStatus.starting=Starting
-torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
-torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
-torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
-torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
-torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
-torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
-torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
-torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
-torlauncher.bootstrapStatus.requesting_status=Retrieving network status
-torlauncher.bootstrapStatus.loading_status=Loading network status
-torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
-torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
-torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
-torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
-torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
-torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
-torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
-torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
-torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
-torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
-torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
-torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
-torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
-torlauncher.bootstrapStatus.done=Connected to the Tor network!
-
-torlauncher.bootstrapWarning.done=done
-torlauncher.bootstrapWarning.connectrefused=connection refused
-torlauncher.bootstrapWarning.misc=miscellaneous
-torlauncher.bootstrapWarning.resourcelimit=insufficient resources
-torlauncher.bootstrapWarning.identity=identity mismatch
-torlauncher.bootstrapWarning.timeout=connection timeout
-torlauncher.bootstrapWarning.noroute=no route to host
-torlauncher.bootstrapWarning.ioerror=read/write error
-torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
-
-torlauncher.nsresult.NS_ERROR_NET_RESET=The connection to the server was lost.
-torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Could not connect to the server.
-torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Could not connect to the proxy.
diff --git a/src/chrome/locale/pt-PT/network-settings.dtd b/src/chrome/locale/pt-PT/network-settings.dtd
new file mode 100644
index 0000000..f62d4c8
--- /dev/null
+++ b/src/chrome/locale/pt-PT/network-settings.dtd
@@ -0,0 +1,62 @@
+<!ENTITY torsettings.dialog.title "Definições da Rede Tor">
+<!ENTITY torsettings.wizard.title.default "Ligar ao Tor">
+<!ENTITY torsettings.wizard.title.configure "Definições da Rede Tor">
+<!ENTITY torsettings.wizard.title.connecting "Estabelecer uma Ligação">
+
+<!-- For locale picker: -->
+<!ENTITY torlauncher.localePicker.title "Idioma do Tor Browser">
+<!ENTITY torlauncher.localePicker.prompt "Por favor, selecione um idioma.">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torSettings.connectPrompt "Clique em "Ligar" para ligar ao Tor.">
+<!ENTITY torSettings.configurePrompt "Clique em “Configurar” para ajustar as definições de rede se estiver num país que censura o Tor (tal como a China, o Egito, a Turquia) ou se estiver a ligar a partir de uma rede privada que requer um proxy.">
+<!ENTITY torSettings.configure "Configurar">
+<!ENTITY torSettings.connect "Ligar">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "A aguardar que o Tor inicie...">
+<!ENTITY torsettings.restartTor "Reiniciar o Tor">
+<!ENTITY torsettings.reconfigTor "Reconfigurar">
+
+<!ENTITY torsettings.discardSettings.prompt "Configurou as pontes do Tor ou inseriu as definições do proxy local.  Para efetuar uma ligação direta à rede Tor, estas definições devem ser removidas.">
+<!ENTITY torsettings.discardSettings.proceed "Remover Definições e Ligar">
+
+<!ENTITY torsettings.optional "Opcional">
+
+<!ENTITY torsettings.useProxy.checkbox "Eu utilizo um proxy para ligar à Internet">
+<!ENTITY torsettings.useProxy.type "Tipo de proxy:">
+<!ENTITY torsettings.useProxy.type.placeholder "selecionar um tipo de proxy">
+<!ENTITY torsettings.useProxy.address "Endereço:">
+<!ENTITY torsettings.useProxy.address.placeholder "Endereço de IP ou nome do hospedeiro">
+<!ENTITY torsettings.useProxy.port "Porta:">
+<!ENTITY torsettings.useProxy.username "Nome do utilizador:">
+<!ENTITY torsettings.useProxy.password "Palavra-passe:">
+<!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 "Este computador liga através de uma firewall que só permite ligações para determinadas portas">
+<!ENTITY torsettings.firewall.allowedPorts "Portas permitidas:">
+<!ENTITY torsettings.useBridges.checkbox "O Tor é censurado no meu país">
+<!ENTITY torsettings.useBridges.default "Selecionar uma ponte integrada">
+<!ENTITY torsettings.useBridges.default.placeholder "selecionar uma ponte">
+<!ENTITY torsettings.useBridges.bridgeDB "Solicitar uma ponte do torproject.org">
+<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Insira os carateres da imagem">
+<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Obter um novo desafio">
+<!ENTITY torsettings.useBridges.captchaSubmit "Submeter">
+<!ENTITY torsettings.useBridges.custom "Fornecer uma ponte que eu conheça">
+<!ENTITY torsettings.useBridges.label "Inserir a informação da ponte de uma fonte confiável.">
+<!ENTITY torsettings.useBridges.placeholder "digite address:port (uma por linha)">
+
+<!ENTITY torsettings.copyLog "Copiar o Registo do Tor para a Área de Transferência">
+
+<!ENTITY torsettings.proxyHelpTitle "Ajuda de Proxy">
+<!ENTITY torsettings.proxyHelp1 "Poderá ser necessário um proxy local ao ligar-se através de uma empresa, escola ou universidade. Se não tiver certeza se é necessário um proxy, verifique as definições da Internet noutro navegador ou verifique as definições da rede do seu sistema.">
+
+<!ENTITY torsettings.bridgeHelpTitle "Ajuda da Retransmissão de Ponte">
+<!ENTITY torsettings.bridgeHelp1 "As pontes são retransmissões não listadas que dificultam o bloqueio de ligações à Rede Tor.  Cada tipo de ponte utiliza um método diferente para evitar a censura.  Os "obfs" fazem com que o seu tráfego pareça um ruído aleatório, e os pacíficos fazem com que o seu tráfego pareça que está a ligar-se a esses serviço, em vez de ao Tor.">
+<!ENTITY torsettings.bridgeHelp2 "Por causa de como certos países tentam bloquear o Tor, certas pontes funcionam em certos países, mas não em outros. Se não tiver a certeza sobre quais as pontes que funcionam no seu país, visite torproject.org/about/contact.html#support.">
+
+<!-- Progress -->
+<!ENTITY torprogress.pleaseWait "Por favor, aguarde, enquanto nós estabelecemos uma ligação à rede Tor.  Isto pode demorar alguns minutos.">
diff --git a/src/chrome/locale/pt-PT/torlauncher.properties b/src/chrome/locale/pt-PT/torlauncher.properties
new file mode 100644
index 0000000..d010d6c
--- /dev/null
+++ b/src/chrome/locale/pt-PT/torlauncher.properties
@@ -0,0 +1,94 @@
+### Copyright (c) 2016, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+torlauncher.error_title=Tor Launcher
+
+torlauncher.tor_exited_during_startup=O Tor fechou-se durante o arranque. Isto pode ter acontecido devido a erro no seu ficheiro torrc, um erro no Tor ou outro programa no seu sistema, ou falha de hardware. Até que corrija o problema em causa reinicie o Tor, o Tor Browser não irá iniciar.
+torlauncher.tor_exited=O Tor fechou.se inesperadamente. Isto pode ter acontecido devido a um erro no Tor, outro programa no seu sistema, ou falha de hardware. Até que reinicie o Tor, o Tor Browser não irá poder aceder a quaisquer sites da Web. Se o problema persistir, por favor, envie uma cópia do 'Registo de Eventos' do seu Tor para a equipa de apoio.
+torlauncher.tor_exited2=Ao reiniciar o Tor não irá fechar os separadores do seu navegador.
+torlauncher.tor_controlconn_failed=Não foi possível ligar à porta de controlo do Tor.
+torlauncher.tor_failed_to_start=Falhou a inicialização do Tor.
+torlauncher.tor_control_failed=Não foi possível obter o controlo do Tor.
+torlauncher.tor_bootstrap_failed=O Tor não conseguiu estabelecer uma ligação à rede Tor.
+torlauncher.tor_bootstrap_failed_details=%1$S falhou (%2$S).
+
+torlauncher.unable_to_start_tor=Não é possível iniciar o Tor.\n\n %S
+torlauncher.tor_missing=O executável do Tor está em falta.
+torlauncher.torrc_missing=O ficheiro torrc está em falta e não foi possível criá-lo.
+torlauncher.datadir_missing=O diretório de dados do Tor não existe e não foi possível criá-lo.
+torlauncher.password_hash_missing=Não foi possível obter a palavra-passe "hashed".
+
+torlauncher.failed_to_get_settings=Não é possível obter as configurações do Tor\n\n %S
+torlauncher.failed_to_save_settings=Não é possível guardar as configurações do Tor\n\n %S
+torlauncher.ensure_tor_is_running=Por favor, certifique-se que o Tor está em execução.
+
+torlauncher.error_proxy_addr_missing=Deve especificar ambos, um endereço de IP ou o nome de hospedeiro e um número de porta para configurar o Tor, para utilizar um proxy para aceder à Internet.
+torlauncher.error_proxy_type_missing=Deve selecionar o tipo de proxy.
+torlauncher.error_bridges_missing=Deve especificar uma ou mais pontes.
+torlauncher.error_default_bridges_type_missing=Deve selecionar o tipo de transporte para as pontes fornecidas.
+torlauncher.error_bridgedb_bridges_missing=Por favor, solicite uma ponte.
+torlauncher.error_bridge_bad_default_type=Não estão disponíveis as pontes fornecidas que têm o tipo de transporte %S. Por favor, ajuste as suas configurações.
+
+torlauncher.bridge_suffix.meek-amazon=(funciona na China)
+torlauncher.bridge_suffix.meek-azure=(funciona na China)
+
+torlauncher.request_a_bridge=Solicitar uma Ponte...
+torlauncher.request_a_new_bridge=Solicitar uma Nova Ponte...
+torlauncher.contacting_bridgedb=A contactar a BridgeDB. Por favor, aguarde.
+torlauncher.captcha_prompt=Resolva o CAPTCHA para solicitar uma ponte.
+torlauncher.bad_captcha_solution=A solução não está correta. Por favor, tente novamente.
+torlauncher.unable_to_get_bridge=Não é possível obter uma ponte de BridgeDB.\n\n%S
+torlauncher.no_meek=Este navegador não está configurado para "meek", que é necessário para obter as pontes.
+torlauncher.no_bridges_available=De momento, não estão disponíveis pontes. Desculpe.
+
+torlauncher.connect=Ligar
+torlauncher.restart_tor=Reiniciar o Tor
+torlauncher.quit=Sair
+torlauncher.quit_win=Sair
+torlauncher.done=Concluído
+
+torlauncher.forAssistance=Para assistência, contacte %S
+torlauncher.forAssistance2=Para assistência, visite %S
+
+torlauncher.copiedNLogMessages=Cópia completa. Estão prontas %S mensagens do registo de eventos do Tor para serem coladas num editor de texto ou numa mensagem de correio eletrónico.
+
+torlauncher.bootstrapStatus.starting=A iniciar
+torlauncher.bootstrapStatus.conn_pt=A conectar à ponte
+torlauncher.bootstrapStatus.conn_done_pt=Conectado à ponte
+torlauncher.bootstrapStatus.conn_proxy=A conectar ao proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Conectado ao proxy
+torlauncher.bootstrapStatus.conn=A conectar a um retransmissor Tor
+torlauncher.bootstrapStatus.conn_done=Conectado a um retransmissor Tor
+torlauncher.bootstrapStatus.handshake=A negociar com um retransmissor Tor
+torlauncher.bootstrapStatus.handshake_done=Terminada a negociação com um retransmissor Tor
+torlauncher.bootstrapStatus.onehop_create=A estabelecer uma ligação de diretório encriptada
+torlauncher.bootstrapStatus.requesting_status=A obter o estado da rede
+torlauncher.bootstrapStatus.loading_status=A carregar o estado da rede
+torlauncher.bootstrapStatus.loading_keys=A carregar os certificados de autoridade
+torlauncher.bootstrapStatus.requesting_descriptors=A solicitar a informação do retransmissor
+torlauncher.bootstrapStatus.loading_descriptors=A carregar a informação do retransmissor
+torlauncher.bootstrapStatus.enough_dirinfo=Terminou o carregamento da informação do retransmissor
+torlauncher.bootstrapStatus.ap_conn_pt=Construir circuitos: a conectar a uma ponte
+torlauncher.bootstrapStatus.ap_conn_done_pt=Construir circuitos: conectado a uma ponte
+torlauncher.bootstrapStatus.ap_conn_proxy=Construir circuitos: a conectar a um proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Construir circuitos: conectado a um proxy
+torlauncher.bootstrapStatus.ap_conn=Construir circuitos: a conectar a um retransmissor Tor
+torlauncher.bootstrapStatus.ap_conn_done=Construir circuitos: conectado a um retransmissor Tor
+torlauncher.bootstrapStatus.ap_handshake=Construir circuitos: a negociar com um retransmissor Tor
+torlauncher.bootstrapStatus.ap_handshake_done=Construir circuitos: terminada a negociação com um retransmissor Tor
+torlauncher.bootstrapStatus.circuit_create=Construir circuitos: a estabelecer um circuito Tor
+torlauncher.bootstrapStatus.done=Ligado à rede Tor
+
+torlauncher.bootstrapWarning.done=finalizado
+torlauncher.bootstrapWarning.connectrefused=ligação recusada
+torlauncher.bootstrapWarning.misc=diversos
+torlauncher.bootstrapWarning.resourcelimit=recursos insuficientes
+torlauncher.bootstrapWarning.identity=identidade não correspondente
+torlauncher.bootstrapWarning.timeout=o tempo de ligação expirou
+torlauncher.bootstrapWarning.noroute=sem rota para o hospedeiro
+torlauncher.bootstrapWarning.ioerror=rrro de leitura/gravação
+torlauncher.bootstrapWarning.pt_missing=falta o transporte de ligação
+
+torlauncher.nsresult.NS_ERROR_NET_RESET=A ligação para o servidor foi perdida.
+torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Não foi possível ligar ao servidor.
+torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Não foi possível ligar ao proxy.
diff --git a/src/chrome/locale/son/network-settings.dtd b/src/chrome/locale/son/network-settings.dtd
deleted file mode 100644
index c6c5687..0000000
--- a/src/chrome/locale/son/network-settings.dtd
+++ /dev/null
@@ -1,62 +0,0 @@
-<!ENTITY torsettings.dialog.title "Tor Network Settings">
-<!ENTITY torsettings.wizard.title.default "Connect to Tor">
-<!ENTITY torsettings.wizard.title.configure "Tor Network Settings">
-<!ENTITY torsettings.wizard.title.connecting "Establishing a Connection">
-
-<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
-<!ENTITY torlauncher.localePicker.prompt "Please select a language.">
-
-<!-- For "first run" wizard: -->
-
-<!ENTITY torSettings.connectPrompt "Click “Connect” to connect to Tor.">
-<!ENTITY torSettings.configurePrompt "Click “Configure” to adjust network settings if you are in a country that censors Tor (such as Egypt, China, Turkey) or if you are connecting from a private network that requires a proxy.">
-<!ENTITY torSettings.configure "Configure">
-<!ENTITY torSettings.connect "Connect">
-
-<!-- Other: -->
-
-<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
-<!ENTITY torsettings.restartTor "Restart Tor">
-<!ENTITY torsettings.reconfigTor "Reconfigure">
-
-<!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.optional "Optional">
-
-<!ENTITY torsettings.useProxy.checkbox "I use a proxy to connect to the Internet">
-<!ENTITY torsettings.useProxy.type "Proxy Type:">
-<!ENTITY torsettings.useProxy.type.placeholder "select a proxy type">
-<!ENTITY torsettings.useProxy.address "Address:">
-<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
-<!ENTITY torsettings.useProxy.port "Port:">
-<!ENTITY torsettings.useProxy.username "Username:">
-<!ENTITY torsettings.useProxy.password "Password:">
-<!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 "This computer goes through a firewall that only allows connections to certain ports">
-<!ENTITY torsettings.firewall.allowedPorts "Allowed Ports:">
-<!ENTITY torsettings.useBridges.checkbox "Tor is censored in my country">
-<!ENTITY torsettings.useBridges.default "Select a built-in bridge">
-<!ENTITY torsettings.useBridges.default.placeholder "select a bridge">
-<!ENTITY torsettings.useBridges.bridgeDB "Request a bridge from torproject.org">
-<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Enter the characters from the image">
-<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Get a new challenge">
-<!ENTITY torsettings.useBridges.captchaSubmit "Submit">
-<!ENTITY torsettings.useBridges.custom "Provide a bridge I know">
-<!ENTITY torsettings.useBridges.label "Enter bridge information from a trusted source.">
-<!ENTITY torsettings.useBridges.placeholder "type address:port (one per line)">
-
-<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
-
-<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
-
-<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
-<!ENTITY torsettings.bridgeHelp2 "Because of how certain countries try to block Tor, certain bridges work in certain countries but not others.  If you are unsure about which bridges work in your country, visit torproject.org/about/contact.html#support">
-
-<!-- Progress -->
-<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.  This may take several minutes.">
diff --git a/src/chrome/locale/son/torlauncher.properties b/src/chrome/locale/son/torlauncher.properties
deleted file mode 100644
index ca9774b..0000000
--- a/src/chrome/locale/son/torlauncher.properties
+++ /dev/null
@@ -1,94 +0,0 @@
-### Copyright (c) 2016, The Tor Project, Inc.
-### See LICENSE for licensing information.
-
-torlauncher.error_title=Tor Launcher
-
-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=Tor unexpectedly exited. This might be due to a bug in Tor itself, another program on your system, or faulty hardware. Until you restart Tor, the Tor Browser will not able to reach any websites. If the problem persists, please send a copy of your Tor Log to the support team.
-torlauncher.tor_exited2=Restarting Tor will not close your browser tabs.
-torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
-torlauncher.tor_failed_to_start=Tor failed to start.
-torlauncher.tor_control_failed=Failed to take control of Tor.
-torlauncher.tor_bootstrap_failed=Tor failed to establish a Tor network connection.
-torlauncher.tor_bootstrap_failed_details=%1$S failed (%2$S).
-
-torlauncher.unable_to_start_tor=Unable to start Tor.\n\n%S
-torlauncher.tor_missing=The Tor executable is missing.
-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.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_bridgedb_bridges_missing=Please request a bridge.
-torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
-
-torlauncher.bridge_suffix.meek-amazon=(works in China)
-torlauncher.bridge_suffix.meek-azure=(works in China)
-
-torlauncher.request_a_bridge=Request a Bridge…
-torlauncher.request_a_new_bridge=Request a New Bridge…
-torlauncher.contacting_bridgedb=Contacting BridgeDB. Please wait.
-torlauncher.captcha_prompt=Solve the CAPTCHA to request a bridge.
-torlauncher.bad_captcha_solution=The solution is not correct. Please try again.
-torlauncher.unable_to_get_bridge=Unable to obtain a bridge from BridgeDB.\n\n%S
-torlauncher.no_meek=This browser is not configured for meek, which is needed to obtain bridges.
-torlauncher.no_bridges_available=No bridges are available at this time. Sorry.
-
-torlauncher.connect=Connect
-torlauncher.restart_tor=Restart Tor
-torlauncher.quit=Quit
-torlauncher.quit_win=Exit
-torlauncher.done=Done
-
-torlauncher.forAssistance=For assistance, contact %S
-torlauncher.forAssistance2=For assistance, visit %S
-
-torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-
-torlauncher.bootstrapStatus.starting=Starting
-torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
-torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
-torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
-torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
-torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
-torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
-torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
-torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
-torlauncher.bootstrapStatus.requesting_status=Retrieving network status
-torlauncher.bootstrapStatus.loading_status=Loading network status
-torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
-torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
-torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
-torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
-torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
-torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
-torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
-torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
-torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
-torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
-torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
-torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
-torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
-torlauncher.bootstrapStatus.done=Connected to the Tor network!
-
-torlauncher.bootstrapWarning.done=done
-torlauncher.bootstrapWarning.connectrefused=connection refused
-torlauncher.bootstrapWarning.misc=miscellaneous
-torlauncher.bootstrapWarning.resourcelimit=insufficient resources
-torlauncher.bootstrapWarning.identity=identity mismatch
-torlauncher.bootstrapWarning.timeout=connection timeout
-torlauncher.bootstrapWarning.noroute=no route to host
-torlauncher.bootstrapWarning.ioerror=read/write error
-torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
-
-torlauncher.nsresult.NS_ERROR_NET_RESET=The connection to the server was lost.
-torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Could not connect to the server.
-torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Could not connect to the proxy.
diff --git a/src/chrome/locale/ur/network-settings.dtd b/src/chrome/locale/ur/network-settings.dtd
index eeb35c3..02b715d 100644
--- a/src/chrome/locale/ur/network-settings.dtd
+++ b/src/chrome/locale/ur/network-settings.dtd
@@ -1,24 +1,24 @@
-<!ENTITY torsettings.dialog.title "طور نیٹ ورک کے سیٹنگز">
-<!ENTITY torsettings.wizard.title.default "Connect to Tor">
-<!ENTITY torsettings.wizard.title.configure "طور نیٹ ورک کے سیٹنگز">
-<!ENTITY torsettings.wizard.title.connecting "Establishing a Connection">
+<!ENTITY torsettings.dialog.title "ٹور نیٹ ورک ترتیبات">
+<!ENTITY torsettings.wizard.title.default "ٹور کے ساتھ منسلک ہوں">
+<!ENTITY torsettings.wizard.title.configure "ٹور نیٹ ورک ترتیبات">
+<!ENTITY torsettings.wizard.title.connecting "ربط قائم کیا جارہا ہے">
<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
-<!ENTITY torlauncher.localePicker.prompt "Please select a language.">
+<!ENTITY torlauncher.localePicker.title "ٹور براؤزر لغت">
+<!ENTITY torlauncher.localePicker.prompt "براہِ مہربانی لغت منتخب کیجئے">
<!-- For "first run" wizard: -->
-<!ENTITY torSettings.connectPrompt "Click “Connect” to connect to Tor.">
+<!ENTITY torSettings.connectPrompt "ٹور سے منسلک ہونے کے لئے "منسلک " پر کلک کریں">
<!ENTITY torSettings.configurePrompt "Click “Configure” to adjust network settings if you are in a country that censors Tor (such as Egypt, China, Turkey) or if you are connecting from a private network that requires a proxy.">
-<!ENTITY torSettings.configure "Configure">
-<!ENTITY torSettings.connect "Connect">
+<!ENTITY torSettings.configure "مرتب کریں">
+<!ENTITY torSettings.connect "منسلک">
<!-- Other: -->
-<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
-<!ENTITY torsettings.restartTor "Restart Tor">
-<!ENTITY torsettings.reconfigTor "Reconfigure">
+<!ENTITY torsettings.startingTor "ٹور چلنے کا انتظار ۔۔۔">
+<!ENTITY torsettings.restartTor "ٹور دوبارہ چلائیں">
+<!ENTITY torsettings.reconfigTor "دوبارہ مرتب کریں">
<!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">
@@ -31,8 +31,8 @@
<!ENTITY torsettings.useProxy.address "Address:">
<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
<!ENTITY torsettings.useProxy.port "Port:">
-<!ENTITY torsettings.useProxy.username "صارف کا نام">
-<!ENTITY torsettings.useProxy.password "پاس ورڈ ">
+<!ENTITY torsettings.useProxy.username "صارف کا نام:">
+<!ENTITY torsettings.useProxy.password "پاس ورڈ :">
<!ENTITY torsettings.useProxy.type.socks4 "SOCKS 4">
<!ENTITY torsettings.useProxy.type.socks5 "SOCKS 5">
<!ENTITY torsettings.useProxy.type.http "HTTP / HTTPS">
1
0

[tor-launcher/master] Bug 28044: Integrate Tor Launcher into tor-browser
by gk@torproject.org 13 May '19
by gk@torproject.org 13 May '19
13 May '19
commit ab7e47f4ab54626e8b7e6348aac25fc3436d166f
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Fri Feb 8 14:42:05 2019 -0500
Bug 28044: Integrate Tor Launcher into tor-browser
To avoid potential conflicts with other preference files, rename
our default preferences file from pref.js to torlauncher-prefs.js.
Do not load default preferences if the browser has already done so.
---
.../preferences/{prefs.js => torlauncher-prefs.js} | 0
src/modules/tl-util.jsm | 26 +++++++++++++++++++---
2 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/src/defaults/preferences/prefs.js b/src/defaults/preferences/torlauncher-prefs.js
similarity index 100%
rename from src/defaults/preferences/prefs.js
rename to src/defaults/preferences/torlauncher-prefs.js
diff --git a/src/modules/tl-util.jsm b/src/modules/tl-util.jsm
index 8b59afb..bac5eae 100644
--- a/src/modules/tl-util.jsm
+++ b/src/modules/tl-util.jsm
@@ -1,4 +1,4 @@
-// Copyright (c) 2018, The Tor Project, Inc.
+// Copyright (c) 2019, The Tor Project, Inc.
// See LICENSE for licensing information.
//
// vim: set sw=2 sts=2 ts=8 et syntax=javascript:
@@ -876,10 +876,30 @@ let TLUtilInternal = // Private
return this.mDefaultPreferencesLoaded;
}
+ // Check whether default preferences have already been loaded, e.g.,
+ // because Tor Launcher is integrated into the browser rather than
+ // running as an extension. This code assumes that a default value is
+ // defined for extensions.torlauncher.loglevel.
+ let prefName = "extensions.torlauncher.loglevel";
+ let val;
+ try
+ {
+ let defaultBranch = this._getPrefDefaultBranch(prefName);
+ val = defaultBranch.getIntPref("");
+ } catch (e) {}
+ if (val !== undefined)
+ {
+ this.mDefaultPreferencesLoaded = true;
+ return true;
+ }
+
+ // Use the JS subscript loaded in conjunction with our pref() function
+ // to load the default preferences.
+ const kPrefsURL =
+ "resource://torlauncher/defaults/preferences/torlauncher-prefs.js";
var loader = Cc["@mozilla.org/moz/jssubscript-loader;1"]
.getService(Ci.mozIJSSubScriptLoader);
- loader.loadSubScript(
- "resource://torlauncher/defaults/preferences/prefs.js", this);
+ loader.loadSubScript(kPrefsURL, this);
this.mDefaultPreferencesLoaded =
(this.mNumDefaultPrefsDefined == this.mNumDefaultPrefsLoaded);
1
0

[tor-launcher/master] Bug 28044: Integrate Tor Launcher into tor-browser
by gk@torproject.org 13 May '19
by gk@torproject.org 13 May '19
13 May '19
commit b46c6039d1a5bf95aa9cbd777a51220d1df80aa0
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Feb 12 12:02:27 2019 -0500
Bug 28044: Integrate Tor Launcher into tor-browser
Fix locale-related issues.
Renamed en locale to en-US (previously done during packaging).
Added moz.build for integration with the Firefox build process.
Enhanced the import-translations.sh script to omit incomplete locales
and to generate jar.mn and chrome.manifest.
Removed checking for incomplete locales from the pkg-prepare make target.
Improved the output generated by import-translations.sh and pkg-prepare.
---
Makefile | 32 ++++++------
README | 20 +++----
chrome.manifest.in | 4 +-
jar.mn.in | 27 ++++++++++
localization/import-translations.sh | 61 +++++++++++++++++++---
moz.build | 8 +++
.../locale/{en => en-US}/network-settings.dtd | 0
.../locale/{en => en-US}/torlauncher.properties | 0
8 files changed, 114 insertions(+), 38 deletions(-)
diff --git a/Makefile b/Makefile
index f629d52..44f9a2d 100644
--- a/Makefile
+++ b/Makefile
@@ -1,12 +1,15 @@
-### Copyright (c) 2014, The Tor Project, Inc.
+### Copyright (c) 2019, The Tor Project, Inc.
### See src/LICENSE for licensing information.
+# Makefile for packaging Tor Launcher outside of the browser build. The only
+# target in this file that is used by the Tor Browser build process is
+# import-translations.
+
EXT_NAME=tor-launcher
VERSION:=`grep em:version src/install.rdf | sed -e 's/[<>]/ /g' | cut -f3`
XPI_NAME:=$(shell echo "$(EXT_NAME)-$(VERSION).xpi")
STANDALONE_NAME=$(EXT_NAME)-standalone
STANDALONE_TARBALL=$(shell echo "$(STANDALONE_NAME)-$(VERSION).tar.gz")
-REQUIRED_TRANSLATION_FILES=$(shell ls -1 src/chrome/locale/en/)
AVAIL_TARGETS=help package standalone import-translations clean
@@ -36,23 +39,18 @@ pkg-prepare: clean
fi \
fi
@cp -a chrome.manifest.in "$(TMP)/$(EXT_NAME)"/chrome.manifest
- @mv "$(TMP)/$(EXT_NAME)"/chrome/locale/en \
- "$(TMP)/$(EXT_NAME)"/chrome/locale/en-US
@for d in "$(TMP)/$(EXT_NAME)"/chrome/locale/*; do \
- if [ "`basename "$${d}"`" = "en-US" ]; then \
+ locale="`basename $${d}`"; \
+ if [ "$${locale}" = "en-US" ]; then \
continue; \
fi; \
- for f in $(REQUIRED_TRANSLATION_FILES); do \
- if [ ! -e "$${d}/$${f}" ] || \
- ( \
- [ -n "$(BUNDLE_LOCALES)" ] && \
- ! echo $(BUNDLE_LOCALES) | grep -qw `basename "$${d}"` \
- ); then \
- echo "Removing locale $${d} (missing resource $${f})"; \
+ if [ -n "$(BUNDLE_LOCALES)" ]; then \
+ if ! echo $(BUNDLE_LOCALES) | grep -qw "$${locale}"; then \
rm -rf "$${d}"; \
- break; \
+ else \
+ echo "Including locale $${locale}"; \
fi \
- done \
+ fi \
done
@for l in $(BUNDLE_LOCALES); do \
if [ ! -d "$(TMP)/$(EXT_NAME)"/chrome/locale/"$${l}" ]; then \
@@ -62,8 +60,10 @@ pkg-prepare: clean
done
@for d in "$(TMP)/$(EXT_NAME)"/chrome/locale/*; do \
locale="`basename $${d}`"; \
- echo "locale torlauncher $${locale} chrome/locale/$${locale}/" >> \
- "$(TMP)/$(EXT_NAME)"/chrome.manifest; \
+ if [ "$${locale}" != "en-US" ]; then \
+ echo "locale torlauncher $${locale} chrome/locale/$${locale}/" >> \
+ "$(TMP)/$(EXT_NAME)"/chrome.manifest; \
+ fi; \
done
package: pkg-prepare
diff --git a/README b/README
index 568acc1..ac536a1 100644
--- a/README
+++ b/README
@@ -1,8 +1,7 @@
PLEASE NOTE:
- Tor Launcher is packaged with Tor Browser, Tor Messenger, and
- other Tor-enabled applications and is designed for those
- applications. You should not install and try to use it in
- Mozilla Firefox or another Firefox-based browser.
+ Tor Launcher is built into Tor Browser, and it may be built as a
+ XUL/XPCOM extension for use with TorBirdy. You should not install
+ and try to use it in Mozilla Firefox or another Firefox-based browser.
OVERVIEW
Tor Launcher is a browser extension that starts the tor process
@@ -32,18 +31,11 @@ for other product releases; e.g., maint-0.2.10 is a branch that is
used for releases in the Tor Browser 6.5 series.
BUILDING TOR LAUNCHER
-Official builds of Tor Launcher are done as part of a larger
-application build process. For example, look here for information
-about the Tor Browser build process:
+Official builds that use the Tor Launcher code are done as part of
+a larger application build process. For example, look here for
+information about the Tor Browser build process:
https://trac.torproject.org/projects/tor/wiki/doc/TorBrowser/Hacking
-If you want to build your own standalone copy of Tor Launcher in
-order to test a translation or code change that you have made, run
-the following command:
- make package
-
-The resulting xpi file is created in a subdirectory named pkg.
-
CONTACTING THE DEVELOPERS
To contact the Tor Launcher developers, use the #tor-dev channel
on irc.oftc.net or post a message to the tbb-dev mailing list (see
diff --git a/chrome.manifest.in b/chrome.manifest.in
index a869569..1800533 100644
--- a/chrome.manifest.in
+++ b/chrome.manifest.in
@@ -1,4 +1,4 @@
-### Copyright (c) 2013, The Tor Project, Inc.
+### Copyright (c) 2019, The Tor Project, Inc.
### See LICENSE for licensing information.
content torlauncher chrome/content/
@@ -14,3 +14,5 @@ contract @torproject.org/torlauncher-protocol-service;1 {4F476361-23FB-43EF-A427
component {FE7B4CAF-BCF4-4848-8BFF-EFA66C9AFDA1} components/tl-process.js
contract @torproject.org/torlauncher-process-service;1 {FE7B4CAF-BCF4-4848-8BFF-EFA66C9AFDA1}
category profile-after-change TorProcessService @torproject.org/torlauncher-process-service;1
+
+locale torlauncher en-US chrome/locale/en-US/
diff --git a/jar.mn.in b/jar.mn.in
new file mode 100644
index 0000000..9d0d0ee
--- /dev/null
+++ b/jar.mn.in
@@ -0,0 +1,27 @@
+#filter substitution
+### Copyright (c) 2019, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+torlauncher.jar:
+ components/ (src/components/*)
+
+% content torlauncher %content/
+ content/ (src/chrome/content/*)
+
+ modules/ (src/modules/*)
+
+% resource torlauncher %
+
+% skin torlauncher default %skin/
+ skin/ (src/chrome/skin/*)
+
+% component {4F476361-23FB-43EF-A427-B36A14D3208E} %components/tl-protocol.js
+% contract @torproject.org/torlauncher-protocol-service;1 {4F476361-23FB-43EF-A427-B36A14D3208E}
+
+% component {FE7B4CAF-BCF4-4848-8BFF-EFA66C9AFDA1} %components/tl-process.js
+% contract @torproject.org/torlauncher-process-service;1 {FE7B4CAF-BCF4-4848-8BFF-EFA66C9AFDA1}
+
+% category profile-after-change TorProcessService @torproject.org/torlauncher-process-service;1
+
+% locale torlauncher en-US %locale/en-US/
+ locale/en-US/ (src/chrome/locale/en-US/*)
diff --git a/localization/import-translations.sh b/localization/import-translations.sh
index f78df42..a1d9bd4 100755
--- a/localization/import-translations.sh
+++ b/localization/import-translations.sh
@@ -1,12 +1,16 @@
#!/bin/sh
+### Copyright (c) 2019, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
TRANSLATION_BRANCHES="
tor-launcher-network-settings
tor-launcher-properties
"
-if [ -d translation ];
-then
+# Import translated string files from the translation git repository.
+echo "Updating translated files"
+if [ -d translation ]; then
cd translation
git fetch origin
cd ..
@@ -17,16 +21,59 @@ fi
cd translation
for branch in ${TRANSLATION_BRANCHES}
do
- git checkout ${branch}
- git merge origin/${branch}
+ git checkout --quiet ${branch}
+ git merge --quiet origin/${branch}
for locale in *
do
- if [ ! -d "${locale}" ]
- then
+ target_locale=$(echo "${locale}" | tr _ -)
+ if [ "${target_locale}" = "en" -o "${target_locale}" = "en-US" \
+ -o ! -d "${locale}" ]; then
continue
fi
- target="../../src/chrome/locale/$(echo "${locale}" | tr _ -)"
+ target="../../src/chrome/locale/${target_locale}"
mkdir -p "${target}"
cp -f "${locale}"/* "${target}"/
done
done
+cd ..
+
+# Remove all locales that are missing one or more string files.
+# Remove all locales for which no translation has been done.
+# Re-create the chrome.manifest and jar.mn files by appending to templates.
+echo "Removing incomplete locales; updating chrome.manifest and jar.mn"
+cd ../src/chrome/locale
+CHROME_MANIFEST=../../../chrome.manifest
+JAR_MN=../../../jar.mn
+cp ${CHROME_MANIFEST}.in ${CHROME_MANIFEST}
+cp ${JAR_MN}.in ${JAR_MN}
+REQUIRED_TRANSLATION_FILES=`ls -1 en-US/`
+for locale in *; do
+ if [ "${locale}" = "en-US" ]; then
+ continue
+ fi
+ omit_locale=0
+ for f in ${REQUIRED_TRANSLATION_FILES}; do
+ if [ ! -e "${locale}/${f}" ]; then
+ echo "Removing locale ${locale} due to missing resource ${f}"
+ omit_locale=1
+ break
+ fi
+ done
+ if [ ${omit_locale} -eq 0 ]; then
+ diff -r en-US "${locale}" > /dev/null
+ if [ $? -eq 0 ]; then
+ echo "Removing locale ${locale} because it has the same content as en-US"
+ omit_locale=1
+ fi
+ fi
+ if [ ${omit_locale} -ne 0 ]; then
+ rm -rf "${locale}"
+ else
+ echo "locale torlauncher ${locale} chrome/locale/${locale}/" >> \
+ ${CHROME_MANIFEST}
+ echo "% locale torlauncher ${locale} %locale/${locale}/" >> \
+ ${JAR_MN}
+ echo " locale/${locale}/ (src/chrome/locale/${locale}/*)" >> \
+ ${JAR_MN}
+ fi
+done
diff --git a/moz.build b/moz.build
new file mode 100644
index 0000000..bf6d4a6
--- /dev/null
+++ b/moz.build
@@ -0,0 +1,8 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+### Copyright (c) 2019, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+JAR_MANIFESTS += ['jar.mn']
+
+JS_PREFERENCE_FILES += [ 'src/defaults/preferences/torlauncher-prefs.js' ]
diff --git a/src/chrome/locale/en/network-settings.dtd b/src/chrome/locale/en-US/network-settings.dtd
similarity index 100%
rename from src/chrome/locale/en/network-settings.dtd
rename to src/chrome/locale/en-US/network-settings.dtd
diff --git a/src/chrome/locale/en/torlauncher.properties b/src/chrome/locale/en-US/torlauncher.properties
similarity index 100%
rename from src/chrome/locale/en/torlauncher.properties
rename to src/chrome/locale/en-US/torlauncher.properties
1
0

[tor-browser/tor-browser-60.6.1esr-8.5-1] fixup! Bug 25741 - TBA: Add mobile-override of 000-tor-browser prefs
by gk@torproject.org 10 May '19
by gk@torproject.org 10 May '19
10 May '19
commit 22d7c0ae06cbc722dae7d0f685b671ae6af25731
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon Apr 29 10:05:33 2019 +0000
fixup! Bug 25741 - TBA: Add mobile-override of 000-tor-browser prefs
---
mobile/android/app/000-tor-browser-android.js | 3 +++
1 file changed, 3 insertions(+)
diff --git a/mobile/android/app/000-tor-browser-android.js b/mobile/android/app/000-tor-browser-android.js
index b2ee9d0ded00..2410706bb5f5 100644
--- a/mobile/android/app/000-tor-browser-android.js
+++ b/mobile/android/app/000-tor-browser-android.js
@@ -59,3 +59,6 @@ pref("dom.w3c_touch_events.enabled", 2);
// No HLS support for now due to browser freezing, see: #29859.
pref("media.hls.enabled", false);
+
+// Inherit locale from the OS, used for multi-locale builds
+pref("intl.locale.requested", "");
1
0

[torbutton/master] Bug 30069: Use slider and about:tor localizations
by gk@torproject.org 10 May '19
by gk@torproject.org 10 May '19
10 May '19
commit 8877c1ecb16aec821dea8aa2282c845452cef24f
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Apr 26 20:50:09 2019 +0000
Bug 30069: Use slider and about:tor localizations
The wildcard symbols don't get resolved during build. We therefore spell
out the locales we support.
---
src/jar.mn | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 60 insertions(+), 2 deletions(-)
diff --git a/src/jar.mn b/src/jar.mn
index 89c0386d..68fdb9ec 100644
--- a/src/jar.mn
+++ b/src/jar.mn
@@ -32,8 +32,66 @@ torbutton.jar:
# Strings for the about:tbupdate page
% override chrome://browser/locale/aboutTBUpdate.dtd chrome://torbutton/locale/aboutTBUpdate.dtd
-% locale torbutton @AB_CD@ %locale/@AB_CD@/
- locale/@AB_CD@/ (chrome/locale/@AB_CD@/*)
+% locale torbutton en-US %locale/en-US/
+ locale/en-US/ (chrome/locale/en-US/*)
+% locale torbutton ar %locale/ar/
+ locale/ar/ (chrome/locale/ar/*)
+% locale torbutton ca %locale/ca/
+ locale/ca/ (chrome/locale/ca/*)
+% locale torbutton cs %locale/cs/
+ locale/cs/ (chrome/locale/cs/*)
+% locale torbutton da %locale/da/
+ locale/da/ (chrome/locale/da/*)
+% locale torbutton de %locale/de/
+ locale/de/ (chrome/locale/de/*)
+% locale torbutton el %locale/el/
+ locale/el/ (chrome/locale/el/*)
+% locale torbutton es-AR %locale/es-AR/
+ locale/es-AR/ (chrome/locale/es-AR/*)
+% locale torbutton es-ES %locale/es-ES/
+ locale/es-ES/ (chrome/locale/es-ES/*)
+% locale torbutton fa %locale/fa/
+ locale/fa/ (chrome/locale/fa/*)
+% locale torbutton fr %locale/fr/
+ locale/fr/ (chrome/locale/fr/*)
+% locale torbutton ga-IE %locale/ga-IE/
+ locale/ga-IE/ (chrome/locale/ga-IE/*)
+% locale torbutton he %locale/he/
+ locale/he/ (chrome/locale/he/*)
+% locale torbutton hu %locale/hu/
+ locale/hu/ (chrome/locale/hu/*)
+% locale torbutton id %locale/id/
+ locale/id/ (chrome/locale/id/*)
+% locale torbutton is %locale/is/
+ locale/is/ (chrome/locale/is/*)
+% locale torbutton it %locale/it/
+ locale/it/ (chrome/locale/it/*)
+% locale torbutton ja %locale/ja/
+ locale/ja/ (chrome/locale/ja/*)
+% locale torbutton ka %locale/ka/
+ locale/ka/ (chrome/locale/ka/*)
+% locale torbutton ko %locale/ko/
+ locale/ko/ (chrome/locale/ko/*)
+% locale torbutton nb-NO %locale/nb-NO/
+ locale/nb-NO/ (chrome/locale/nb-NO/*)
+% locale torbutton nl %locale/nl/
+ locale/nl/ (chrome/locale/nl/*)
+% locale torbutton pl %locale/pl/
+ locale/pl/ (chrome/locale/pl/*)
+% locale torbutton pt-BR %locale/pt-BR/
+ locale/pt-BR/ (chrome/locale/pt-BR/*)
+% locale torbutton ru %locale/ru/
+ locale/ru/ (chrome/locale/ru/*)
+% locale torbutton sv-SE %locale/sv-SE/
+ locale/sv-SE/ (chrome/locale/sv-SE/*)
+% locale torbutton tr %locale/tr/
+ locale/tr/ (chrome/locale/tr/*)
+% locale torbutton vi %locale/vi/
+ locale/vi/ (chrome/locale/vi/*)
+% locale torbutton zh-CN %locale/zh-CN/
+ locale/zh-CN/ (chrome/locale/zh-CN/*)
+% locale torbutton zh-TW %locale/zh-TW/
+ locale/zh-TW/ (chrome/locale/zh-TW/*)
% skin torbutton classic/1.0 %skin/
% style chrome://global/content/customizeToolbar.xul chrome://torbutton/skin/torbutton.css
1
0

10 May '19
commit 8b4b0c76ef35a8adc59703ec2698a6be8985e37f
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri May 10 09:11:08 2019 +0000
Fold in changelogs of newly tagged versions
---
src/CHANGELOG | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/CHANGELOG b/src/CHANGELOG
index 2ebab88b..858e8f53 100644
--- a/src/CHANGELOG
+++ b/src/CHANGELOG
@@ -1,3 +1,9 @@
+2.1.7
+ * Bug 30388: Make sure the updated intermediate certificate keeps working
+
+2.0.13
+ * Bug 30388: Make sure the updated intermediate certificate is working
+
2.1.6
* Bug 22538+22513: Fix new circuit button for error pages
* Bug 29825: Intelligently add new Security Level button to taskbar
1
0

10 May '19
commit d45208876644a66c775c3ee2e5ea4dc4942e0e8c
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri May 10 09:08:11 2019 +0000
Fold in Changelogs of new releases
---
projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt b/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
index f49c142..29c4bb9 100644
--- a/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
+++ b/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
@@ -1,3 +1,19 @@
+Tor Browser 8.5a12 -- May 7 2019
+ * All platforms
+ * Update Torbutton to 2.1.7
+ * Bug 30388: Make sure the updated intermediate certificate keeps working
+ * Backport fixes for bug 1549010 and bug 1549061
+ * Bug 30388: Make sure the updated intermediate certificate keeps working
+
+Tor Browser 8.0.9 -- May 7 2019
+* All platforms
+ * Update Torbutton to 2.0.13
+ * Bug 30388: Make sure the updated intermediate certificate keeps working
+ * Backport fixes for bug 1549010 and bug 1549061
+ * Bug 30388: Make sure the updated intermediate certificate keeps working
+ * Update NoScript to 10.6.1
+ * Bug 29872: XSS popup with DuckDuckGo search on about:tor
+
Tor Browser 8.5a11 -- April 16 2019
* All platforms
* Update Torbutton to 2.1.6
1
0

[tor-browser/tor-browser-60.6.1esr-8.5-1] fixup! Bug 28329 - Part 4. Add new Tor Bootstrapping and configuration screens
by gk@torproject.org 10 May '19
by gk@torproject.org 10 May '19
10 May '19
commit 937038361e7529779f5bfce42b7e2e4007542503
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri May 10 07:54:23 2019 +0000
fixup! Bug 28329 - Part 4. Add new Tor Bootstrapping and configuration screens
---
.../mozilla/gecko/torbootstrap/TorPreferences.java | 25 ++++++++++++----------
1 file changed, 14 insertions(+), 11 deletions(-)
diff --git a/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorPreferences.java b/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorPreferences.java
index 87ce1ec4bec6..87b752ab5991 100644
--- a/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorPreferences.java
+++ b/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorPreferences.java
@@ -81,12 +81,12 @@ import static org.mozilla.gecko.preferences.GeckoPreferences.NON_PREF_PREFIX;
* PREFS_BRIDGES_ENABLED
* PREFS_BRIDGES_TYPE
* PREFS_BRIDGES_PROVIDE
- * pref_bridges_enabled (Orbot)
- * pref_bridges_list (Orbot)
+ * pref_bridges_enabled (tor-android-service)
+ * pref_bridges_list (tor-android-service)
*
* These may be in following three end states where PREFS_BRIDGES_ENABLED and
* pref_bridges_enabled must always match, and pref_bridges_list must either match
- * PREFS_BRIDGES_PROVIDE or contain a list of bridges of type PREFS_BRIDGES_TYPE.
+ * PREFS_BRIDGES_PROVIDE or contain type PREFS_BRIDGES_TYPE.
*
* PREFS_BRIDGES_ENABLED=false
* PREFS_BRIDGES_TYPE=null
@@ -98,7 +98,7 @@ import static org.mozilla.gecko.preferences.GeckoPreferences.NON_PREF_PREFIX;
* PREFS_BRIDGES_TYPE=T1
* PREFS_BRIDGES_PROVIDE=null
* pref_bridges_enabled=true
- * pref_bridges_list=X1
+ * pref_bridges_list=T1
*
* PREFS_BRIDGES_ENABLED=true
* PREFS_BRIDGES_TYPE=null
@@ -287,7 +287,8 @@ public class TorPreferences extends AppCompatPreferenceActivity {
// Save the bridgesType with the PREFS_BRIDGES_TYPE pref as the key
// (for future lookup). If bridgesType is null, then save the
// bridgesLines with the PREFS_BRIDGES_PROVIDE pref as the key, and
- // use Orbot's helper method and enable Orbot's bridge pref.
+ // use tor-android-service's helper method and enable
+ // tor-android-service's bridge pref.
protected boolean setBridges(SharedPreferences.Editor editor, String bridgesType, String bridgesLines) {
if (editor == null) {
Log.w(LOGTAG, "setBridges: editor is null");
@@ -310,12 +311,12 @@ public class TorPreferences extends AppCompatPreferenceActivity {
return false;
}
- // Set Orbot's preference
+ // Set tor-android service's preference
Prefs.setBridgesList(bridgesLines);
// If either of these are not null, then we're enabling bridges
boolean bridgesAreEnabled = (bridgesType != null) || (bridgesLines != null);
- // Inform Orbot bridges are enabled
+ // Inform tor-android-service bridges are enabled
Prefs.putBridgesEnabled(bridgesAreEnabled);
return true;
}
@@ -555,7 +556,7 @@ public class TorPreferences extends AppCompatPreferenceActivity {
// We follow this logic:
// If the bridgesEnabled switch is off, then false
- // If Orbot doesn't have bridges enabled, then false
+ // If tor-android-service doesn't have bridges enabled, then false
// If PREFS_BRIDGES_PROVIDE is not null, then true
// Else false
private boolean isBridgeProvided(SwitchPreference bridgesEnabled) {
@@ -733,8 +734,9 @@ public class TorPreferences extends AppCompatPreferenceActivity {
// so replace the string with only the pluggable transport name.
// This will need updating when another transport is "recommended".
//
- // Similarly, if meek-azure is chosen, substitute it with "meek" (Orbot
- // only handles these keywords specially if they are less than 5 characters).
+ // Similarly, if meek-azure is chosen, substitute it with "meek"
+ // (tor-android-service only handles these keywords specially if
+ // they are less than 5 characters).
if (bridgesType.contains("obfs4")) {
bridgesType = "obfs4";
} else if (bridgesType.contains("meek-azure")) {
@@ -963,7 +965,8 @@ public class TorPreferences extends AppCompatPreferenceActivity {
return;
}
- // Set the preferences (both our preference and Orbot's preference)
+ // Set the preferences (both our preference and
+ // tor-android-service's preference)
Log.w(LOGTAG, "Saving Bridge preference: " + bridgesLines);
if (!setBridges(bridgesProvide.getEditor(), null, bridgesLines)) {
// TODO inform the user
1
0