tbb-commits
Threads by month
- ----- 2025 -----
- July
- 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
- 18685 discussions

[tor-browser-bundle/master] Bug 10120: Part 4: Refactor PT descriptors.
by gk@torproject.org 22 May '14
by gk@torproject.org 22 May '14
22 May '14
commit 90d598f9dcd0758fd9c72f4b30286982017dd18d
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu May 22 12:06:04 2014 +0000
Bug 10120: Part 4: Refactor PT descriptors.
We build GMP separately and preserve it now as well. Apart from that
we use the already built OpenSSL in the PT descriptors and leave other
requirements for PTs alone: the overhead building them every time is
not that high and they might be changing more often than the other
utilities we preserve.
Additionally, the descriptors got cleaned-up a bit.
---
.../linux/gitian-pluggable-transports.yml | 81 +++++-----
gitian/descriptors/linux/gitian-tor.yml | 11 +-
gitian/descriptors/linux/gitian-utils.yml | 20 ++-
.../mac/gitian-pluggable-transports.yml | 111 +++++++-------
gitian/descriptors/mac/gitian-tor.yml | 1 +
gitian/descriptors/mac/gitian-utils.yml | 13 ++
.../windows/gitian-pluggable-transports.yml | 154 ++++++++++----------
gitian/descriptors/windows/gitian-tor.yml | 8 +-
gitian/descriptors/windows/gitian-utils.yml | 12 +-
gitian/mkbundle-linux.sh | 8 +-
gitian/mkbundle-mac.sh | 5 +-
gitian/mkbundle-windows.sh | 5 +-
12 files changed, 231 insertions(+), 198 deletions(-)
diff --git a/gitian/descriptors/linux/gitian-pluggable-transports.yml b/gitian/descriptors/linux/gitian-pluggable-transports.yml
index eb9ca16..b2d57c0 100644
--- a/gitian/descriptors/linux/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/linux/gitian-pluggable-transports.yml
@@ -5,7 +5,7 @@ suites:
architectures:
- "i386"
- "amd64"
-packages:
+packages:
- "git-core"
- "unzip"
- "zip"
@@ -30,8 +30,6 @@ remotes:
- "url": "https://github.com/habnabit/txsocksx.git"
"dir": "txsocksx"
files:
-- "openssl.tar.gz"
-- "gmp.tar.bz2"
- "pycrypto.tar.gz"
- "argparse.tar.gz"
- "pyyaml.tar.gz"
@@ -40,77 +38,81 @@ files:
- "m2crypto.tar.gz"
- "parsley.tar.gz"
- "dzip.sh"
+- "gmp-linux32-utils.zip"
+- "gmp-linux64-utils.zip"
+- "openssl-linux32-utils.zip"
+- "openssl-linux64-utils.zip"
script: |
INSTDIR="$HOME/install"
PTDIR="$INSTDIR/Tor/PluggableTransports"
- export LIBRARY_PATH="$INSTDIR/lib"
+ mkdir -p $PTDIR
+ mkdir -p $INSTDIR/Debug/
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
export FAKETIME=$REFERENCE_DATETIME
export TZ=UTC
export LC_ALL=C
export PYTHON=python2
umask 0022
- #
+
# Config options for hardening-wrapper
export DEB_BUILD_HARDENING=1
export DEB_BUILD_HARDENING_STACKPROTECTOR=1
export DEB_BUILD_HARDENING_FORTIFY=1
export DEB_BUILD_HARDENING_FORMAT=1
export DEB_BUILD_HARDENING_PIE=1
- #
- mkdir -p $PTDIR
- mkdir -p $INSTDIR/Debug/
- #
- tar xvf gmp.tar.bz2
- cd gmp-*
- find -type f | xargs touch --date="$REFERENCE_DATETIME"
- ./configure --prefix=$INSTDIR/gmp --disable-static --enable-shared --enable-cxx
- make
- make install
- cp -an $INSTDIR/gmp/lib/*.so* $INSTDIR/Tor
- cd ..
- #
+
+ unzip -d $INSTDIR gmp-linux$GBUILD_BITS-utils.zip
+ unzip -d $INSTDIR openssl-linux$GBUILD_BITS-utils.zip
+ cp $INSTDIR/gmp/lib/*.so* $INSTDIR/Tor
+
+ # Building pyptlib
cd pyptlib
find -type f | xargs touch --date="$REFERENCE_DATETIME"
$PYTHON setup.py build --build-lib build
cp -a build/pyptlib $PTDIR/
cd ..
- #
+
+ # Building PyCrypto
tar xzf pycrypto.tar.gz
cd pycrypto-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
$PYTHON setup.py build --build-lib build
cp -a build/Crypto $PTDIR/
cd ..
- #
+
+ # Building argparse
tar xzf argparse.tar.gz
cd argparse-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
$PYTHON setup.py build --build-lib build
cp -a build/argparse.py $PTDIR/
cd ..
- #
+
+ # Building Zope interfaces
unzip zope.interface.zip
cd zope.interface-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
$PYTHON setup.py build --build-lib build
cp -a build/zope $PTDIR/
cd ..
- #
+
+ # Building PyYAML
tar xzf pyyaml.tar.gz
cd PyYAML-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
$PYTHON setup.py build --build-lib build
cp -a build/yaml $PTDIR/
cd ..
- #
+
+ # Building Twisted
tar xjf twisted.tar.bz2
cd Twisted-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
$PYTHON setup.py build --build-lib build
cp -a build/twisted $PTDIR/
cd ..
- #
+
+ # Building Parsley
tar xzf parsley.tar.gz
cd Parsley-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
@@ -119,7 +121,8 @@ script: |
cp -a build/ometa $PTDIR/
cp -a build/terml $PTDIR/
cd ..
- #
+
+ # Building txsocksx
cd txsocksx
find -type f | xargs touch --date="$REFERENCE_DATETIME"
# Let's pretend we have the setup dependency already as we don't want to get
@@ -130,7 +133,8 @@ script: |
$PYTHON setup.py build --build-lib build
cp -a build/txsocksx $PTDIR/
cd ..
- #
+
+ # Building obfsproxy
cd obfsproxy
find -type f | xargs touch --date="$REFERENCE_DATETIME"
$PYTHON setup.py build --build-lib build
@@ -139,16 +143,8 @@ script: |
mkdir -p $INSTDIR/Docs/Obfsproxy
cp -a {LICENSE,README} $INSTDIR/Docs/Obfsproxy
cd ..
- #
- tar xzf openssl.tar.gz
- cd openssl-*
- find -type f | xargs touch --date="$REFERENCE_DATETIME"
- #./Configure -shared --prefix=$INSTDIR/openssl linux-elf
- ./config -shared --prefix=$INSTDIR/openssl
- make
- make install
- cd ..
- #
+
+ # Building M2Crypto
tar xzf m2crypto.tar.gz
cd M2Crypto-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
@@ -156,7 +152,8 @@ script: |
$PYTHON setup.py build --build-lib build
cp -a build/M2Crypto $PTDIR/
cd ..
- #
+
+ # Building flashproxy
cd flashproxy
find -type f | xargs touch --date="$REFERENCE_DATETIME"
make dist DISTNAME=flashproxy-client
@@ -164,7 +161,8 @@ script: |
mkdir -p $INSTDIR/Docs/FlashProxy
cp -a {doc/*,README,LICENSE,ChangeLog} $INSTDIR/Docs/FlashProxy
cd ..
- #
+
+ # Building libfte
cd libfte
ln -s $INSTDIR/gmp thirdparty/gmp
find -type f | xargs touch --date="$REFERENCE_DATETIME"
@@ -174,7 +172,8 @@ script: |
cp -a {LICENSE,README.md} $INSTDIR/Docs/libfte
cp -a thirdparty/re2/LICENSE $INSTDIR/Docs/libfte/LICENSE.re2
cd ..
- #
+
+ # Building fteproxy
cd fteproxy
find -type f | xargs touch --date="$REFERENCE_DATETIME"
cp -a bin/fteproxy $PTDIR/fteproxy.bin
@@ -182,9 +181,9 @@ script: |
mkdir -p $INSTDIR/Docs/fteproxy
cp -a {COPYING,README.md} $INSTDIR/Docs/fteproxy
cd ..
- #
+
+ # Grabbing the results
cd $INSTDIR
- #
~/build/dzip.sh pluggable-transports-linux$GBUILD_BITS-gbuilt.zip Tor/ Docs/
~/build/dzip.sh pluggable-transports-linux$GBUILD_BITS-debug.zip Debug/
cp pluggable-transports-linux$GBUILD_BITS-gbuilt.zip $OUTDIR/
diff --git a/gitian/descriptors/linux/gitian-tor.yml b/gitian/descriptors/linux/gitian-tor.yml
index 44c2b1f..4a8f08e 100644
--- a/gitian/descriptors/linux/gitian-tor.yml
+++ b/gitian/descriptors/linux/gitian-tor.yml
@@ -44,14 +44,14 @@ script: |
export TZ=UTC
export LC_ALL=C
umask 0022
- #
+
# Config options for hardening-wrapper
export DEB_BUILD_HARDENING=1
export DEB_BUILD_HARDENING_STACKPROTECTOR=1
export DEB_BUILD_HARDENING_FORTIFY=1
export DEB_BUILD_HARDENING_FORMAT=1
export DEB_BUILD_HARDENING_PIE=1
- #
+
mkdir -p $INSTDIR/Data/Tor/
mkdir -p $INSTDIR/Tor/
mkdir -p $INSTDIR/Debug/Tor/
@@ -60,9 +60,9 @@ script: |
cp $INSTDIR/openssl/lib/libssl.so.1.0.0 $INSTDIR/Tor/
cp $INSTDIR/openssl/lib/libcrypto.so.1.0.0 $INSTDIR/Tor/
cp $INSTDIR/libevent/lib/libevent-2.0.so.5 $INSTDIR/Tor/
- #
chmod 700 $INSTDIR/Tor/*so*
- #
+
+ # Building tor
cd tor
git update-index --refresh -q
export GIT_COMMITTER_NAME="nobody"
@@ -106,7 +106,8 @@ script: |
strip $INSTDIR/Tor/$LIB
objcopy --add-gnu-debuglink=./Debug/Tor/$LIB $INSTDIR/Tor/$LIB
done
- #
+
+ # Grabbing the results
~/build/dzip.sh tor-linux$GBUILD_BITS-gbuilt.zip Data/ Tor/
~/build/dzip.sh tor-linux$GBUILD_BITS-debug.zip Debug/
cp tor-linux$GBUILD_BITS-gbuilt.zip $OUTDIR/
diff --git a/gitian/descriptors/linux/gitian-utils.yml b/gitian/descriptors/linux/gitian-utils.yml
index 9bbae76..34b1672 100644
--- a/gitian/descriptors/linux/gitian-utils.yml
+++ b/gitian/descriptors/linux/gitian-utils.yml
@@ -25,11 +25,12 @@ remotes:
- "url": "https://github.com/libevent/libevent.git"
"dir": "libevent"
files:
-- "versions"
-- "dzip.sh"
- "openssl.tar.gz"
- "python.tar.bz2"
- "lxml.tar.gz"
+- "gmp.tar.bz2"
+- "versions"
+- "dzip.sh"
script: |
INSTDIR="$HOME/install"
source versions
@@ -38,7 +39,7 @@ script: |
export TZ=UTC
export LC_ALL=C
umask 0022
- #
+
# Config options for hardening-wrapper
export DEB_BUILD_HARDENING=1
export DEB_BUILD_HARDENING_STACKPROTECTOR=1
@@ -80,7 +81,7 @@ script: |
make $MAKEOPTS altinstall prefix=$INSTDIR/python exec-prefix=$INSTDIR/python
cd ..
- # Building the Python lxml module
+ # Building lxml
tar xzf lxml.tar.gz
cd lxml-*
# Make sure we use our freshly built python binary here. Otherwise bad things
@@ -92,10 +93,19 @@ script: |
cp *utils.zip $OUTDIR
cd ../../../
+ # Building GMP
+ tar xjf gmp.tar.bz2
+ cd gmp-*
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
+ ./configure --prefix=$INSTDIR/gmp --disable-static --enable-shared --enable-cxx
+ make
+ make install
+ cd ..
+
# Grabbing the remaining results
cd $INSTDIR
~/build/dzip.sh openssl-$OPENSSL_VER-linux$GBUILD_BITS-utils.zip openssl
~/build/dzip.sh libevent-${LIBEVENT_TAG#release-}-linux$GBUILD_BITS-utils.zip libevent
~/build/dzip.sh python-$PYTHON_VER-linux$GBUILD_BITS-utils.zip python
-
+ ~/build/dzip.sh gmp-$GMP_VER-linux$GBUILD_BITS-utils.zip gmp
cp *utils.zip $OUTDIR/
diff --git a/gitian/descriptors/mac/gitian-pluggable-transports.yml b/gitian/descriptors/mac/gitian-pluggable-transports.yml
index 48521d8..52dd403 100644
--- a/gitian/descriptors/mac/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/mac/gitian-pluggable-transports.yml
@@ -4,7 +4,7 @@ suites:
- "precise"
architectures:
- "i386"
-packages:
+packages:
- "git-core"
- "unzip"
- "zip"
@@ -14,7 +14,6 @@ packages:
- "python-dev"
- "faketime"
- "libtool"
-#- "libssl0.9.8"
reference_datetime: "2000-01-01 00:00:00"
remotes:
- "url": "https://git.torproject.org/pluggable-transports/pyptlib.git"
@@ -30,8 +29,6 @@ remotes:
- "url": "https://github.com/habnabit/txsocksx.git"
"dir": "txsocksx"
files:
-- "openssl.tar.gz"
-- "gmp.tar.bz2"
- "pycrypto.tar.gz"
- "argparse.tar.gz"
- "pyyaml.tar.gz"
@@ -42,56 +39,45 @@ files:
- "apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb"
- "multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz"
- "dzip.sh"
-#- "apple-x86-gcc_4.2.1~5646.1flosoft2_i386.deb"
-#- "apple-x86-odcctools_758.159-0flosoft11_i386.deb"
+- "gmp-mac32-utils.zip"
+- "openssl-mac32-utils.zip"
script: |
INSTDIR="$HOME/install"
PTDIR="$INSTDIR/TorBrowserBundle.app/Tor/PluggableTransports"
- export LIBRARY_PATH="$INSTDIR/lib"
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
export FAKETIME=$REFERENCE_DATETIME
export TZ=UTC
export LC_ALL=C
umask 0022
#
- #export CFLAGS="-isysroot /usr/lib/apple/SDKs/MacOSX10.6.sdk/"
- #export CXXFLAGS=$CFLAGS
- #export LDFLAGS=$CFLAGS
- export PATH="$PATH:/usr/apple-osx/bin/"
- export AR=/usr/apple-osx/bin/i686-apple-darwin11-ar
- export CC=/usr/apple-osx/bin/i686-apple-darwin11-gcc
- export CXX=/usr/apple-osx/bin/i686-apple-darwin11-g++
- # http://bugs.python.org/issue9437
- export LDSHARED="$CC -pthread -shared"
- export CFLAGS="-I/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/include/ -I/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/ -I. -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -F/usr/lib/apple/SDKs/MacOSX10.6.sdk/System/Library/Frameworks -mmacosx-version-min=10.5 -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/i686-apple-darwin10/4.2.1 -I$INSTDIR/gmp/include -L$INSTDIR/gmp/lib"
- export CXXFLAGS="-I/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/include/ -I/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/ -I. -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -F/usr/lib/apple/SDKs/MacOSX10.6.sdk/System/Library/Frameworks -mmacosx-version-min=10.5 -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/i686-apple-darwin10/4.2.1 -I$INSTDIR/gmp/include -L$INSTDIR/gmp/lib"
- export LDFLAGS="-L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -F/usr/lib/apple/SDKs/MacOSX10.6.sdk/System/Library/Frameworks -mmacosx-version-min=10.5"
- #
mkdir -p $PTDIR/
mkdir -p $OUTDIR/
#
sudo dpkg -i *.deb
- cd /usr
- sudo tar -Jxvf /home/ubuntu/build/multiarch-darwin*tar.xz
- cd ~/build
- # For OpenSSL
- sudo ln -s /usr/apple-osx/bin/apple-osx-gcc /usr/apple-osx/bin/i686-apple-darwin11-cc
- #
- tar xvf gmp.tar.bz2
- cd gmp-*
- find -type f | xargs touch --date="$REFERENCE_DATETIME"
- ./configure --host=i686-apple-darwin11 --prefix=$INSTDIR/gmp --disable-static --enable-shared --enable-cxx
- make
- make install
+ tar xaf multiarch-darwin*tar.xz
+ export PATH="$PATH:$HOME/build/apple-osx/bin/"
+ unzip -d $INSTDIR gmp-mac32-utils.zip
+ unzip -d $INSTDIR openssl-mac32-utils.zip
cp $INSTDIR/gmp/lib/*dylib* $INSTDIR/TorBrowserBundle.app/Tor/
- cd ..
#
+ export AR=$HOME/build/apple-osx/bin/i686-apple-darwin11-ar
+ export CC=$HOME/build/apple-osx/bin/i686-apple-darwin11-gcc
+ export CXX=$HOME/build/apple-osx/bin/i686-apple-darwin11-g++
+ # http://bugs.python.org/issue9437
+ export LDSHARED="$CC -pthread -shared"
+ # XXX Clean up these flags?
+ export CFLAGS="-I/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/include/ -I/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/ -I. -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -F/usr/lib/apple/SDKs/MacOSX10.6.sdk/System/Library/Frameworks -mmacosx-version-min=10.5 -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/i686-apple-darwin10/4.2.1 -I$INSTDIR/gmp/include -L$INSTDIR/gmp/lib"
+ export CXXFLAGS="-I/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/include/ -I/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/ -I. -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -F/usr/lib/apple/SDKs/MacOSX10.6.sdk/System/Library/Frameworks -mmacosx-version-min=10.5 -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/i686-apple-darwin10/4.2.1 -I$INSTDIR/gmp/include -L$INSTDIR/gmp/lib"
+ export LDFLAGS="-L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -F/usr/lib/apple/SDKs/MacOSX10.6.sdk/System/Library/Frameworks -mmacosx-version-min=10.5"
+
+ # Building pyptlib
cd pyptlib
find -type f | xargs touch --date="$REFERENCE_DATETIME"
python setup.py build --build-lib build
cp -a build/pyptlib $PTDIR/
cd ..
- #
+
+ # Building PyCrypto
tar xzf pycrypto.tar.gz
cd pycrypto-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
@@ -101,28 +87,32 @@ script: |
python setup.py build --build-lib build
cp -a build/Crypto $PTDIR/
cd ..
- #
+
+ # Building argparse
tar xzf argparse.tar.gz
cd argparse-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
python setup.py build --build-lib build
cp -a build/argparse.py $PTDIR/
cd ..
- #
- tar xzf pyyaml.tar.gz
- cd PyYAML-*
- find -type f | xargs touch --date="$REFERENCE_DATETIME"
- python setup.py build --build-lib build
- cp -a build/yaml $PTDIR/
- cd ..
- #
+
+ # Building Zope interfaces
unzip zope.interface.zip
cd zope.interface-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
python setup.py build --build-lib build
cp -a build/zope $PTDIR/
cd ..
- #
+
+ # Building PyYAML
+ tar xzf pyyaml.tar.gz
+ cd PyYAML-*
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
+ python setup.py build --build-lib build
+ cp -a build/yaml $PTDIR/
+ cd ..
+
+ # Building Twisted
tar xjf twisted.tar.bz2
cd Twisted-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
@@ -130,7 +120,8 @@ script: |
python setup.py build --build-lib build
cp -a build/twisted $PTDIR/
cd ..
- #
+
+ # Building Parsley
tar xzf parsley.tar.gz
cd Parsley-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
@@ -139,7 +130,8 @@ script: |
cp -a build/ometa $PTDIR/
cp -a build/terml $PTDIR/
cd ..
- #
+
+ # Building txsocksx
cd txsocksx
find -type f | xargs touch --date="$REFERENCE_DATETIME"
# Let's pretend we have the setup dependency already as we don't want to get
@@ -150,7 +142,8 @@ script: |
python setup.py build --build-lib build
cp -a build/txsocksx $PTDIR/
cd ..
- #
+
+ # Building obfsproxy
cd obfsproxy
find -type f | xargs touch --date="$REFERENCE_DATETIME"
python setup.py build --build-lib build
@@ -159,16 +152,8 @@ script: |
mkdir -p $INSTDIR/TorBrowserBundle.app/Docs/Obfsproxy
cp -a {LICENSE,README} $INSTDIR/TorBrowserBundle.app/Docs/Obfsproxy
cd ..
- #
- tar xzf openssl.tar.gz
- cd openssl-*
- find -type f | xargs touch --date="$REFERENCE_DATETIME"
- CC=cc ./Configure --cross-compile-prefix=i686-apple-darwin11- $CFLAGS darwin-i386-cc --prefix=$INSTDIR/openssl
- make # SHARED_LDFLAGS="-shared -dynamiclib -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/"
- make install
- #cp $INSTDIR/openssl/lib/*.dylib $INSTDIR/TorBrowserBundle.app/Tor/
- cd ..
- #
+
+ # Building M2Crypto
tar xzf m2crypto.tar.gz
cd M2Crypto-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
@@ -182,7 +167,8 @@ script: |
python setup.py build --build-lib build
cp -a build/M2Crypto $PTDIR/
cd ..
- #
+
+ # Building flashproxy
cd flashproxy
find -type f | xargs touch --date="$REFERENCE_DATETIME"
make dist DISTNAME=flashproxy-client
@@ -190,7 +176,8 @@ script: |
mkdir -p $INSTDIR/TorBrowserBundle.app/Docs/FlashProxy
cp -a {doc/*,README,LICENSE,ChangeLog} $INSTDIR/TorBrowserBundle.app/Docs/FlashProxy
cd ..
- #
+
+ # Building libfte
cd libfte
find -type f | xargs touch --date="$REFERENCE_DATETIME"
CFLAGS="-L$INSTDIR/Tor -I$INSTDIR/gmp/include $CFLAGS" CXXFLAGS="-L$INSTDIR/Tor -I$INSTDIR/gmp/include $CXXFLAGS" make
@@ -199,7 +186,8 @@ script: |
cp -a {LICENSE,README.md} $INSTDIR/TorBrowserBundle.app/Docs/libfte
cp -an thirdparty/re2/LICENSE $INSTDIR/TorBrowserBundle.app/Docs/libfte/LICENSE.re2
cd ..
- #
+
+ # Building fteproxy
cd fteproxy
find -type f | xargs touch --date="$REFERENCE_DATETIME"
cp -a bin/fteproxy $PTDIR/fteproxy.bin
@@ -207,7 +195,8 @@ script: |
mkdir -p $INSTDIR/TorBrowserBundle.app/Docs/fteproxy
cp -a {COPYING,README.md} $INSTDIR/TorBrowserBundle.app/Docs/fteproxy
cd ..
- #
+
+ # Grabbing the result
cd $INSTDIR
~/build/dzip.sh pluggable-transports-mac$GBUILD_BITS-gbuilt.zip TorBrowserBundle.app
cp pluggable-transports-mac$GBUILD_BITS-gbuilt.zip $OUTDIR/
diff --git a/gitian/descriptors/mac/gitian-tor.yml b/gitian/descriptors/mac/gitian-tor.yml
index b8a761b..90f56e0 100644
--- a/gitian/descriptors/mac/gitian-tor.yml
+++ b/gitian/descriptors/mac/gitian-tor.yml
@@ -55,6 +55,7 @@ script: |
cp $INSTDIR/libevent/lib/libevent-*.dylib $INSTDIR/TorBrowserBundle.app/Tor/
LIBEVENT_FILE=`basename $INSTDIR/libevent/lib/libevent-*.dylib`
#
+ # XXX Clean up these flags?
export CFLAGS="-I/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/include/ -I/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/ -I. -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -mmacosx-version-min=10.5"
export LDFLAGS="-L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -mmacosx-version-min=10.5"
cd tor
diff --git a/gitian/descriptors/mac/gitian-utils.yml b/gitian/descriptors/mac/gitian-utils.yml
index 1caf8f0..3c6e4a7 100644
--- a/gitian/descriptors/mac/gitian-utils.yml
+++ b/gitian/descriptors/mac/gitian-utils.yml
@@ -21,6 +21,7 @@ files:
- "apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb"
- "multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz"
- "openssl.tar.gz"
+- "gmp.tar.bz2"
- "versions"
- "dzip.sh"
script: |
@@ -38,7 +39,9 @@ script: |
# For OpenSSL
ln -s ~/build/apple-osx/bin/apple-osx-gcc ~/build/apple-osx/bin/i686-apple-darwin11-cc
+ # XXX Clean up these flags?
export CFLAGS="-I/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/include/ -I/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/ -I. -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -mmacosx-version-min=10.5"
+ export CXXFLAGS="-I/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/include/ -I/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/ -I. -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/i686-apple-darwin10/4.2.1 -mmacosx-version-min=10.5"
export LDFLAGS="-L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -mmacosx-version-min=10.5"
# Building Libevent
@@ -62,9 +65,19 @@ script: |
make install
cd ..
+ # Building GMP
+ tar xjf gmp.tar.bz2
+ cd gmp-*
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
+ ./configure --host=i686-apple-darwin11 --prefix=$INSTDIR/gmp --disable-static --enable-shared --enable-cxx
+ make
+ make install
+ cd ..
+
# Grabbing the results
cd $INSTDIR
~/build/dzip.sh openssl-$OPENSSL_VER-mac32-utils.zip openssl
~/build/dzip.sh libevent-${LIBEVENT_TAG#release-}-mac32-utils.zip libevent
+ ~/build/dzip.sh gmp-$GMP_VER-mac32-utils.zip gmp
cp *utils.zip $OUTDIR/
diff --git a/gitian/descriptors/windows/gitian-pluggable-transports.yml b/gitian/descriptors/windows/gitian-pluggable-transports.yml
index 1637b23..6af344c 100644
--- a/gitian/descriptors/windows/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/windows/gitian-pluggable-transports.yml
@@ -31,8 +31,6 @@ remotes:
- "url": "https://github.com/habnabit/txsocksx.git"
"dir": "txsocksx"
files:
-- "openssl.tar.gz"
-- "gmp.tar.bz2"
- "setuptools.tar.gz"
- "pycrypto.tar.gz"
- "argparse.tar.gz"
@@ -47,16 +45,38 @@ files:
- "py2exe.exe"
- "dzip.sh"
- "pyc-timestamp.sh"
+- "openssl-win32-utils.zip"
+- "gmp-win32-utils.zip"
script: |
+ # Set the timestamp on every .pyc file in a zip file, and re-dzip the zip file.
+ function py2exe_zip_timestomp {
+ ZIPFILE="$1"
+ local tmpdir="$(mktemp -d)"
+ local tmpzip="$(mktemp -u)"
+ unzip -d "$tmpdir" "$ZIPFILE"
+ cd "$tmpdir"
+ find . -name '*.pyc' -print0 | xargs -0 ~/build/pyc-timestamp.sh "$REFERENCE_DATETIME"
+ ~/build/dzip.sh "$tmpzip" .
+ cd -
+ mv -f "$tmpzip" "$ZIPFILE"
+ rm -rf "$tmpdir"
+ }
+
INSTDIR="$HOME/install"
PTDIR="$INSTDIR/Tor/PluggableTransports"
- export LIBRARY_PATH="$INSTDIR/lib"
+ mkdir -p $INSTDIR/bin/
+ mkdir -p $PTDIR/
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
export FAKETIME=$REFERENCE_DATETIME
export TZ=UTC
export LC_ALL=C
export CFLAGS="-mwindows"
export LDFLAGS="-mwindows"
+ umask 0022
+
+ unzip -d $INSTDIR gmp-win32-utils.zip
+ unzip -d $INSTDIR openssl-win32-utils.zip
+ cp $INSTDIR/gmp/bin/*dll* $INSTDIR/Tor
# We need at least Wine 1.5.29 which is not in Ubuntu's main repository (see
# below). Thus, we resort to a PPA and need therefore to determine the correct
@@ -69,47 +89,13 @@ script: |
# KVM
MIRROR_HOST=10.0.2.2
fi
-
+ # Install a Wine new enough to have a fix for
+ # http://bugs.winehq.org/show_bug.cgi?id=29764; otherwise Python run under
+ # Wine constantly crashes in _PyVerify_fd, which is called by such common
+ # operations as io.open and os.fstat (anything involving a file descriptor
+ # number). Ubuntu's main repository only has wine1.4, and the issue was fixed
+ # in 1.5.29.
WINEROOT=$HOME/.wine/drive_c
- # XXX: Hardening options cause the exe's to crash.. not sure why
- #export CFLAGS="-mwindows -fstack-protector-all -fPIE -Wstack-protector --param ssp-buffer-size=4 -fno-strict-overflow -Wno-missing-field-initializers -Wformat-security"
- #export LDFLAGS="-mwindows -Wl,--dynamicbase -Wl,--nxcompat -lssp -L/usr/lib/gcc/i686-w64-mingw32/4.6/"
- umask 0022
- #
- mkdir -p $INSTDIR/bin/
- mkdir -p $PTDIR/
- mkdir -p $OUTDIR/
- #
- # Set the timestamp on every .pyc file in a zip file, and re-dzip the zip file.
- function py2exe_zip_timestomp {
- ZIPFILE="$1"
- local tmpdir="$(mktemp -d)"
- local tmpzip="$(mktemp -u)"
- unzip -d "$tmpdir" "$ZIPFILE"
- cd "$tmpdir"
- find . -name '*.pyc' -print0 | xargs -0 ~/build/pyc-timestamp.sh "$REFERENCE_DATETIME"
- ~/build/dzip.sh "$tmpzip" .
- cd -
- mv -f "$tmpzip" "$ZIPFILE"
- rm -rf "$tmpdir"
- }
- #
- #
- tar xvf gmp.tar.bz2
- cd gmp-*
- find -type f | xargs touch --date="$REFERENCE_DATETIME"
- ./configure --prefix=$INSTDIR/gmp --host=i686-w64-mingw32 --enable-cxx --disable-static --enable-shared
- make
- make install
- cp -an $INSTDIR/gmp/bin/*dll* $INSTDIR/Tor
- cd ..
- #
- #
- # Install a Wine new enough to have a fix for http://bugs.winehq.org/show_bug.cgi?id=29764;
- # otherwise Python run under Wine constantly crashes in _PyVerify_fd, which is
- # called by such common operations as io.open and os.fstat (anything involving
- # a file descriptor number). Ubuntu's main repository only has wine1.4, and
- # the issue was fixed in 1.5.29.
sudo -s sh -c "echo deb http://$MIRROR_HOST:3142/ppa.launchpad.net/ubuntu-wine/ppa/ubuntu precise main >> /etc/apt/sources.list"
# This key is from https://launchpad.net/~ubuntu-wine/+archive/ppa and
# http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x5A9A06AEF9CB8D….
@@ -140,40 +126,40 @@ script: |
LD_PRELOAD= $INSTPYTHON setup.py py2exe
cp -a dist/gcc.exe dist/g++.exe dist/dllwrap.exe dist/swig.exe $WINEROOT/windows/
cd ..
- #
+
+ # Building setuptools
tar xzf setuptools.tar.gz
cd setuptools-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
LD_PRELOAD= $INSTPYTHON setup.py install
cd ..
- #
+
+ # Bulding pyptlib
cd pyptlib
find -type f | xargs touch --date="$REFERENCE_DATETIME"
LD_PRELOAD= $INSTPYTHON setup.py install --single-version-externally-managed --record /dev/null
cd ..
- #
+
+ # Building PyCrypto
tar xzf pycrypto.tar.gz
cd pycrypto-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
- # This is bogus, that we run the configure script in the build environment, but it seems to work.
- # https://bugs.launchpad.net/pycrypto/+bug/1096207 for ac_cv_func_malloc_0_nonnull.
+ # This is bogus, that we run the configure script in the build environment,
+ # but it seems to work. https://bugs.launchpad.net/pycrypto/+bug/1096207 for
+ # ac_cv_func_malloc_0_nonnull.
ac_cv_func_malloc_0_nonnull=yes sh configure --host=i686-w64-mingw32
LD_PRELOAD= $INSTPYTHON setup.py build_ext -c mingw32
LD_PRELOAD= $INSTPYTHON setup.py install
cd ..
- #
+
+ # Building argparse
tar xzf argparse.tar.gz
cd argparse-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
LD_PRELOAD= $INSTPYTHON setup.py install
cd ..
- #
- tar xzf pyyaml.tar.gz
- cd PyYAML-*
- find -type f | xargs touch --date="$REFERENCE_DATETIME"
- LD_PRELOAD= $INSTPYTHON setup.py install
- cd ..
- #
+
+ # Building Zope interfaces
unzip zope.interface.zip
cd zope.interface-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
@@ -182,11 +168,20 @@ script: |
# Must create this file in order for py2exe to find the package.
touch $INSTDIR/python/Lib/site-packages/zope/__init__.py
cd ..
- #
+
+ # Building PyYAML
+ tar xzf pyyaml.tar.gz
+ cd PyYAML-*
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
+ LD_PRELOAD= $INSTPYTHON setup.py install
+ cd ..
+
+ # Building Twisted
tar xjf twisted.tar.bz2
cd Twisted-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
- # twisted/internet/iocpreactor/iocpsupport/iocpsupport.c includes "python.h" rather than "Python.h".
+ # twisted/internet/iocpreactor/iocpsupport/iocpsupport.c includes "python.h"
+ # rather than "Python.h".
ln -sf Python.h $INSTDIR/python/include/python.h
# We need to set the "mingw32" compiler to avoid an error in build_ext, but
# Twisted's "install" command calls build_ext unconditionally, whether the
@@ -196,13 +191,18 @@ script: |
echo $'[build_ext]\ncompiler=mingw32' > setup.cfg
LD_PRELOAD= $INSTPYTHON setup.py install --single-version-externally-managed --record /dev/null
cd ..
- #
+ # py2exe byte-compiles to .pyc files, which embed the mtime of the parent .py
+ # file.
+ find $INSTDIR/python -type f | xargs touch --date="$REFERENCE_DATETIME"
+
+ # Building Parsley
tar xzf parsley.tar.gz
cd Parsley-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
LD_PRELOAD= $INSTPYTHON setup.py install
cd ..
- #
+
+ # Building txsocksx
cd txsocksx
find -type f | xargs touch --date="$REFERENCE_DATETIME"
# Let's pretend we have the setup dependency already as we don't want to get
@@ -212,10 +212,8 @@ script: |
mkdir vcversioner-1.14.1.1-py2.7.egg
LD_PRELOAD= $INSTPYTHON setup.py install
cd ..
- #
- # py2exe byte-compiles to .pyc files, which embed the mtime of the parent .py file.
- find $INSTDIR/python -type f | xargs touch --date="$REFERENCE_DATETIME"
- #
+
+ # Building obfsproxy
cd obfsproxy
find -type f | xargs touch --date="$REFERENCE_DATETIME"
LD_PRELOAD= $INSTPYTHON setup_py2exe.py py2exe
@@ -225,24 +223,19 @@ script: |
mkdir -p $INSTDIR/Docs/Obfsproxy
cp {LICENSE,README} $INSTDIR/Docs/Obfsproxy
cd ..
- #
- tar xzf openssl.tar.gz
- cd openssl-*
- find -type f | xargs touch --date="$REFERENCE_DATETIME"
- ./Configure -shared --cross-compile-prefix=i686-w64-mingw32- mingw --prefix=$INSTDIR/openssl
- make
- make install
- cd ..
- #
+
+ # Building M2Crypto
tar xzf m2crypto.tar.gz
cd M2Crypto-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
LD_PRELOAD= $INSTPYTHON setup.py build_ext -c mingw32 --openssl $INSTDIR/openssl/ -lssl.dll,crypto.dll
LD_PRELOAD= $INSTPYTHON setup.py install --single-version-externally-managed --record /dev/null
cd ..
- #
+ # py2exe byte-compiles to .pyc files, which embed the mtime of the parent .py
+ # file.
find $INSTDIR/python -type f | xargs touch --date="$REFERENCE_DATETIME"
- #
+
+ # Building flashproxy
cd flashproxy
find -type f | xargs touch --date="$REFERENCE_DATETIME"
make dist-exe DISTNAME=flashproxy-client PYTHON="LD_PRELOAD= $INSTPYTHON"
@@ -251,7 +244,8 @@ script: |
mkdir -p $INSTDIR/Docs/FlashProxy
cp dist/flashproxy-client-win32/{doc/*,README,LICENSE,ChangeLog} $INSTDIR/Docs/FlashProxy
cd ..
- #
+
+ # Building libfte
cd libfte
ln -s $INSTDIR/gmp thirdparty/gmp
cp -a $INSTDIR/gmp/bin/libgmp-*.dll .
@@ -262,7 +256,8 @@ script: |
cp -an {LICENSE,README.md} $INSTDIR/Docs/libfte
cp -an thirdparty/re2/LICENSE $INSTDIR/Docs/libfte/LICENSE.re2
cd ..
- #
+
+ # Building fteproxy
cd fteproxy
find -type f | xargs touch --date="$REFERENCE_DATETIME"
LD_PRELOAD= $INSTPYTHON setup_tbb.py py2exe
@@ -275,10 +270,11 @@ script: |
mkdir -p $INSTDIR/Docs/fteproxy
cp -an {COPYING,README.md} $INSTDIR/Docs/fteproxy
cd ..
- #
+
# http://bugs.winehq.org/show_bug.cgi?id=3591
cp -a $INSTDIR/python/python27.dll $PTDIR/
- #
+
+ # Grabbing the result
cd $INSTDIR
~/build/dzip.sh pluggable-transports-win32-gbuilt.zip Tor/ Docs/
cp pluggable-transports-win32-gbuilt.zip $OUTDIR/
diff --git a/gitian/descriptors/windows/gitian-tor.yml b/gitian/descriptors/windows/gitian-tor.yml
index abfd8bb..19c4acd 100644
--- a/gitian/descriptors/windows/gitian-tor.yml
+++ b/gitian/descriptors/windows/gitian-tor.yml
@@ -43,7 +43,7 @@ script: |
export TZ=UTC
export LC_ALL=C
umask 0022
- #
+
mkdir -p $INSTDIR/bin/
mkdir -p $INSTDIR/Tor/
mkdir -p $INSTDIR/Data/Tor/
@@ -58,7 +58,8 @@ script: |
# See the we-need-only-the-binutils-comment in gitian-utils.yml for the
# reasoning behind the "mingw-w64" dir instead of an expected "binutils" one.
export PATH=$INSTDIR/mingw-w64/bin:$PATH
- #
+
+ # Building tor
cd tor
git update-index --refresh -q
export GIT_COMMITTER_NAME="nobody"
@@ -98,7 +99,8 @@ script: |
# XXX: Geoip files..
cp -a /usr/lib/gcc/i686-w64-mingw32/4.6/libgcc_s_sjlj-1.dll $INSTDIR/Tor/
cp -a /usr/lib/gcc/i686-w64-mingw32/4.6/libssp*.dll $INSTDIR/Tor/
- #
+
+ # Grabbing the result
cd $INSTDIR
~/build/dzip.sh tor-win32-gbuilt.zip Tor/ Data/
cp tor-win32-gbuilt.zip $OUTDIR/
diff --git a/gitian/descriptors/windows/gitian-utils.yml b/gitian/descriptors/windows/gitian-utils.yml
index 4e321a0..530e716 100644
--- a/gitian/descriptors/windows/gitian-utils.yml
+++ b/gitian/descriptors/windows/gitian-utils.yml
@@ -30,6 +30,7 @@ files:
- "binutils.tar.bz2"
- "gcc.tar.bz2"
- "openssl.tar.gz"
+- "gmp.tar.bz2"
- "versions"
- "dzip.sh"
script: |
@@ -135,11 +136,20 @@ script: |
make install
cd ..
+ # Building GMP
+ tar xjf gmp.tar.bz2
+ cd gmp-*
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
+ ./configure --prefix=$INSTDIR/gmp --host=i686-w64-mingw32 --enable-cxx --disable-static --enable-shared
+ make
+ make install
+ cd ..
+
# Grabbing the remaining results
cd $INSTDIR
~/build/dzip.sh mingw-w64-$GCC_VER-win32-utils.zip mingw-w64
~/build/dzip.sh zlib-${ZLIB_TAG#v}-win32-utils.zip zlib
~/build/dzip.sh libevent-${LIBEVENT_TAG#release-}-win32-utils.zip libevent
~/build/dzip.sh openssl-$OPENSSL_VER-win32-utils.zip openssl
-
+ ~/build/dzip.sh gmp-$GMP_VER-win32-utils.zip gmp
cp *-utils.zip $OUTDIR/
diff --git a/gitian/mkbundle-linux.sh b/gitian/mkbundle-linux.sh
index 992a23a..330e475 100755
--- a/gitian/mkbundle-linux.sh
+++ b/gitian/mkbundle-linux.sh
@@ -105,7 +105,9 @@ if [ ! -f inputs/openssl-$OPENSSL_VER-linux32-utils.zip -o \
! -f inputs/python-$PYTHON_VER-linux32-utils.zip -o \
! -f inputs/python-$PYTHON_VER-linux64-utils.zip -o \
! -f inputs/lxml-$LXML_VER-linux32-utils.zip -o \
- ! -f inputs/lxml-$LXML_VER-linux64-utils.zip ];
+ ! -f inputs/lxml-$LXML_VER-linux64-utils.zip -o \
+ ! -f inputs/gmp-$GMP_VER-linux32-utils.zip -o \
+ ! -f inputs/gmp-$GMP_VER-linux64-utils.zip ];
then
echo
echo "****** Starting Utilities Component of Linux Bundle (1/5 for Linux) ******"
@@ -128,6 +130,8 @@ then
ln -sf python-$PYTHON_VER-linux64-utils.zip python-linux64-utils.zip
ln -sf lxml-$LXML_VER-linux32-utils.zip lxml-linux32-utils.zip
ln -sf lxml-$LXML_VER-linux64-utils.zip lxml-linux64-utils.zip
+ ln -sf gmp-$GMP_VER-linux32-utils.zip gmp-linux32-utils.zip
+ ln -sf gmp-$GMP_VER-linux64-utils.zip gmp-linux64-utils.zip
cd ..
#cp -a result/utils-linux-res.yml inputs/
else
@@ -145,6 +149,8 @@ else
ln -sf python-$PYTHON_VER-linux64-utils.zip python-linux64-utils.zip
ln -sf lxml-$LXML_VER-linux32-utils.zip lxml-linux32-utils.zip
ln -sf lxml-$LXML_VER-linux64-utils.zip lxml-linux64-utils.zip
+ ln -sf gmp-$GMP_VER-linux32-utils.zip gmp-linux32-utils.zip
+ ln -sf gmp-$GMP_VER-linux64-utils.zip gmp-linux64-utils.zip
cd ..
fi
diff --git a/gitian/mkbundle-mac.sh b/gitian/mkbundle-mac.sh
index fb1d32f..e852989 100755
--- a/gitian/mkbundle-mac.sh
+++ b/gitian/mkbundle-mac.sh
@@ -106,7 +106,8 @@ fi
cd $GITIAN_DIR
if [ ! -f inputs/openssl-$OPENSSL_VER-mac32-utils.zip -o \
- ! -f inputs/libevent-${LIBEVENT_TAG_ORIG#release-}-mac32-utils.zip ];
+ ! -f inputs/libevent-${LIBEVENT_TAG_ORIG#release-}-mac32-utils.zip -o \
+ ! -f inputs/gmp-$GMP_VER-mac32-utils.zip ];
then
echo
echo "****** Starting Utilities Component of Mac Bundle (1/5 for Max) ******"
@@ -122,6 +123,7 @@ then
cp -a ../build/out/*-utils.zip .
ln -sf openssl-$OPENSSL_VER-mac32-utils.zip openssl-mac32-utils.zip
ln -sf libevent-${LIBEVENT_TAG_ORIG#release-}-mac32-utils.zip libevent-mac32-utils.zip
+ ln -sf gmp-$GMP_VER-mac32-utils.zip gmp-mac32-utils.zip
cd ..
#cp -a result/utils-mac-res.yml inputs/
else
@@ -134,6 +136,7 @@ else
cd inputs
ln -sf openssl-$OPENSSL_VER-mac32-utils.zip openssl-mac32-utils.zip
ln -sf libevent-${LIBEVENT_TAG_ORIG#release-}-mac32-utils.zip libevent-mac32-utils.zip
+ ln -sf gmp-$GMP_VER-mac32-utils.zip gmp-mac32-utils.zip
cd ..
fi
diff --git a/gitian/mkbundle-windows.sh b/gitian/mkbundle-windows.sh
index 198fe87..ecabeae 100755
--- a/gitian/mkbundle-windows.sh
+++ b/gitian/mkbundle-windows.sh
@@ -104,7 +104,8 @@ if [ ! -f inputs/binutils-$BINUTILS_VER-win32-utils.zip -o \
! -f inputs/mingw-w64-$GCC_VER-win32-utils.zip -o \
! -f inputs/zlib-${ZLIB_TAG_ORIG#v}-win32-utils.zip -o \
! -f inputs/libevent-${LIBEVENT_TAG_ORIG#release-}-win32-utils.zip -o \
- ! -f inputs/openssl-$OPENSSL_VER-win32-utils.zip ];
+ ! -f inputs/openssl-$OPENSSL_VER-win32-utils.zip -o \
+ ! -f inputs/gmp-$GMP_VER-win32-utils.zip ];
then
echo
echo "****** Starting Utilities Component of Windows Bundle (1/5 for Windows) ******"
@@ -124,6 +125,7 @@ then
ln -sf zlib-${ZLIB_TAG_ORIG#v}-win32-utils.zip zlib-win32-utils.zip
ln -sf libevent-${LIBEVENT_TAG_ORIG#release-}-win32-utils.zip libevent-win32-utils.zip
ln -sf openssl-$OPENSSL_VER-win32-utils.zip openssl-win32-utils.zip
+ ln -sf gmp-$GMP_VER-win32-utils.zip gmp-win32-utils.zip
cd ..
#cp -a result/utils-win-res.yml inputs/
else
@@ -138,6 +140,7 @@ else
ln -sf zlib-${ZLIB_TAG_ORIG#v}-win32-utils.zip zlib-win32-utils.zip
ln -sf libevent-${LIBEVENT_TAG_ORIG#release-}-win32-utils.zip libevent-win32-utils.zip
ln -sf openssl-$OPENSSL_VER-win32-utils.zip openssl-win32-utils.zip
+ ln -sf gmp-$GMP_VER-win32-utils.zip gmp-win32-utils.zip
cd ..
fi
1
0

[tor-browser-bundle/master] Rebased Yawning's patch against latest tor master.
by gk@torproject.org 21 May '14
by gk@torproject.org 21 May '14
21 May '14
commit 175b010a0c84e55947e759c63606b224d38bafce
Author: Georg Koppen <gk(a)torproject.org>
Date: Wed May 21 10:14:02 2014 +0000
Rebased Yawning's patch against latest tor master.
---
gitian/patches/bug8402-master.patch | 75 +++++++++--------------------------
1 file changed, 18 insertions(+), 57 deletions(-)
diff --git a/gitian/patches/bug8402-master.patch b/gitian/patches/bug8402-master.patch
index d5e7b37..5a6386a 100644
--- a/gitian/patches/bug8402-master.patch
+++ b/gitian/patches/bug8402-master.patch
@@ -1,4 +1,4 @@
-From 2c9bcdf79a9ba98b79feba10a8000f5609de36e6 Mon Sep 17 00:00:00 2001
+From 9d7410ac5837658efa9b2d7d85c0c71f09a7a759 Mon Sep 17 00:00:00 2001
From: Yawning Angel <yawning(a)schwanenlied.me>
Date: Tue, 25 Mar 2014 07:21:22 +0000
Subject: [PATCH 1/5] Allow ClientTransportPlugins to use proxies
@@ -9,38 +9,18 @@ pluggable transport specification.
This fixes bug #8402.
---
- src/or/config.c | 24 +++++++----
+ src/or/config.c | 13 ++++--
src/or/connection.c | 62 +++++++++++++++++++++--------
src/or/transports.c | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++--
src/or/transports.h | 6 +++
src/test/test_pt.c | 81 +++++++++++++++++++++++++++++++++++++
- 5 files changed, 258 insertions(+), 27 deletions(-)
+ 5 files changed, 251 insertions(+), 23 deletions(-)
diff --git a/src/or/config.c b/src/or/config.c
-index 1faf138..614e779 100644
+index 0f7b1d2..b33098e 100644
--- a/src/or/config.c
+++ b/src/or/config.c
-@@ -536,7 +536,9 @@ static int options_transition_affects_descriptor(
- const or_options_t *old_options, const or_options_t *new_options);
- static int check_nickname_list(char **lst, const char *name, char **msg);
-
--static int parse_client_transport_line(const char *line, int validate_only);
-+static int parse_client_transport_line(const or_options_t *options,
-+ const char *line,
-+ int validate_only);
-
- static int parse_server_transport_line(const char *line, int validate_only);
- static char *get_bindaddr_from_transport_listen_line(const char *line,
-@@ -1426,7 +1428,7 @@ options_act(const or_options_t *old_options)
- pt_prepare_proxy_list_for_config_read();
- if (options->ClientTransportPlugin) {
- for (cl = options->ClientTransportPlugin; cl; cl = cl->next) {
-- if (parse_client_transport_line(cl->value, 0)<0) {
-+ if (parse_client_transport_line(options, cl->value, 0)<0) {
- log_warn(LD_BUG,
- "Previously validated ClientTransportPlugin line "
- "could not be added!");
-@@ -3169,11 +3171,11 @@ options_validate(or_options_t *old_options, or_options_t *options,
+@@ -3174,11 +3174,11 @@ options_validate(or_options_t *old_options, or_options_t *options,
}
}
@@ -55,26 +35,7 @@ index 1faf138..614e779 100644
/* Check if the proxies will give surprising behavior. */
if (options->HTTPProxy && !(options->Socks4Proxy ||
-@@ -3284,7 +3286,7 @@ options_validate(or_options_t *old_options, or_options_t *options,
- }
-
- for (cl = options->ClientTransportPlugin; cl; cl = cl->next) {
-- if (parse_client_transport_line(cl->value, 1)<0)
-+ if (parse_client_transport_line(options, cl->value, 1)<0)
- REJECT("Transport line did not parse. See logs for details.");
- }
-
-@@ -4734,7 +4736,8 @@ parse_bridge_line(const char *line)
- * our internal transport list.
- * - If it's a managed proxy line, launch the managed proxy. */
- static int
--parse_client_transport_line(const char *line, int validate_only)
-+parse_client_transport_line(const or_options_t *options, const char *line,
-+ int validate_only)
- {
- smartlist_t *items = NULL;
- int r;
-@@ -4825,6 +4828,13 @@ parse_client_transport_line(const char *line, int validate_only)
+@@ -4842,6 +4842,13 @@ parse_client_transport_line(const or_options_t *options,
pt_kickstart_client_proxy(transport_list, proxy_argv);
}
} else { /* external */
@@ -89,7 +50,7 @@ index 1faf138..614e779 100644
log_warn(LD_CONFIG, "You can't have an external proxy with "
"more than one transports.");
diff --git a/src/or/connection.c b/src/or/connection.c
-index 3cc4e09..a9c5596 100644
+index cef9172..b32cddf 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -86,6 +86,8 @@ static int connection_read_https_proxy_response(connection_t *conn);
@@ -517,10 +478,10 @@ index f71627d..788d420 100644
};
--
-2.0.0.rc0
+2.0.0.rc2
-From d1f3631335cc2757e2319055348a1614a00fa7b2 Mon Sep 17 00:00:00 2001
+From 92eecbfee128b22b07bcc97ac36ecdd5183c2da7 Mon Sep 17 00:00:00 2001
From: Yawning Angel <yawning(a)schwanenlied.me>
Date: Mon, 14 Apr 2014 21:51:34 +0000
Subject: [PATCH 2/5] Fixed the test build with --enable-gcc-warnings
@@ -609,10 +570,10 @@ index 788d420..cfbd084 100644
done:
if (uri)
--
-2.0.0.rc0
+2.0.0.rc2
-From e2b63cda85ba08b1675c7cf376d21700ca34bcf5 Mon Sep 17 00:00:00 2001
+From 8361223c10eb929b570e72853a5d9e51b67fd6c3 Mon Sep 17 00:00:00 2001
From: Yawning Angel <yawning(a)schwanenlied.me>
Date: Thu, 1 May 2014 03:30:09 +0000
Subject: [PATCH 3/5] Remove get_bridge_pt_addrport().
@@ -629,7 +590,7 @@ being used, it is PT/proxy-less.
1 file changed, 12 insertions(+), 34 deletions(-)
diff --git a/src/or/connection.c b/src/or/connection.c
-index a9c5596..4bb2683 100644
+index b32cddf..ff8cdf1 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -86,8 +86,6 @@ static int connection_read_https_proxy_response(connection_t *conn);
@@ -708,10 +669,10 @@ index a9c5596..4bb2683 100644
tor_addr_make_unspec(addr);
--
-2.0.0.rc0
+2.0.0.rc2
-From ae0174c6e1da1051403c51fa881f66d57cc22acd Mon Sep 17 00:00:00 2001
+From 68184b317d3f4dc14e758e451377e4e3996bd0ab Mon Sep 17 00:00:00 2001
From: Yawning Angel <yawning(a)schwanenlied.me>
Date: Thu, 1 May 2014 03:43:53 +0000
Subject: [PATCH 4/5] Log the correct proxy type on failure.
@@ -724,7 +685,7 @@ config.
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/or/connection.c b/src/or/connection.c
-index 4bb2683..cfa6ee5 100644
+index ff8cdf1..5069ed6 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -4841,7 +4841,7 @@ log_failed_proxy_connection(connection_t *conn)
@@ -737,10 +698,10 @@ index 4bb2683..cfa6ee5 100644
}
--
-2.0.0.rc0
+2.0.0.rc2
-From 378e6f7f8521ed0c35dc1afc91840117713498fb Mon Sep 17 00:00:00 2001
+From 34200a44fbbd3f158ea17043c2bcd21d0e382b89 Mon Sep 17 00:00:00 2001
From: Yawning Angel <yawning(a)schwanenlied.me>
Date: Thu, 1 May 2014 18:58:53 +0000
Subject: [PATCH 5/5] Improve the log message when a transport doesn't support
@@ -767,5 +728,5 @@ index b810315..eee159d 100644
break;
}
--
-2.0.0.rc0
+2.0.0.rc2
1
0

[tor-browser-bundle/master] Bug 10120: Part 3: Refactor Mac descriptors.
by gk@torproject.org 15 May '14
by gk@torproject.org 15 May '14
15 May '14
commit e0ef86ec6822abfb17554defaf287e926f3a8206
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu May 15 14:23:43 2014 +0000
Bug 10120: Part 3: Refactor Mac descriptors.
We build the tools needed for the Mac descriptors separately and
preserve them. This does not include the tools in the Pluggable
Transports descriptor. Using our newly built OpenSSL there, e.g.,
will happen in an other commit.
---
gitian/descriptors/mac/gitian-tor.yml | 76 +++++-------------
gitian/descriptors/mac/gitian-utils.yml | 70 +++++++++++++++++
gitian/mkbundle-mac.sh | 131 +++++++++++++++++++------------
3 files changed, 170 insertions(+), 107 deletions(-)
diff --git a/gitian/descriptors/mac/gitian-tor.yml b/gitian/descriptors/mac/gitian-tor.yml
index 68905e7..b8a761b 100644
--- a/gitian/descriptors/mac/gitian-tor.yml
+++ b/gitian/descriptors/mac/gitian-tor.yml
@@ -4,7 +4,7 @@ suites:
- "precise"
architectures:
- "i386"
-packages:
+packages:
- "git-core"
- "unzip"
- "zip"
@@ -13,18 +13,12 @@ packages:
- "automake"
- "faketime"
- "libtool"
-#- "libssl0.9.8"
reference_datetime: "2000-01-01 00:00:00"
remotes:
- "url": "https://git.torproject.org/tor.git"
"dir": "tor"
-- "url": "https://github.com/libevent/libevent.git"
- "dir": "libevent"
-- "url": "https://github.com/madler/zlib.git"
- "dir": "zlib"
files:
- "versions"
-- "openssl.tar.gz"
- "bug10297.patch"
- "bug5018.patch"
- "bug9229.patch"
@@ -37,63 +31,32 @@ files:
- "apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb"
- "multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz"
- "dzip.sh"
-#- "apple-x86-gcc_4.2.1~5646.1flosoft2_i386.deb"
-#- "apple-x86-odcctools_758.159-0flosoft11_i386.deb"
+- "openssl-mac32-utils.zip"
+- "libevent-mac32-utils.zip"
script: |
INSTDIR="$HOME/install"
source versions
- export LIBRARY_PATH="$INSTDIR/lib"
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
export FAKETIME=$REFERENCE_DATETIME
export TZ=UTC
export LC_ALL=C
umask 0022
#
- #export CFLAGS="-isysroot /usr/lib/apple/SDKs/MacOSX10.6.sdk/"
- #export CXXFLAGS=$CFLAGS
- #export LDFLAGS=$CFLAGS
- export PATH="$PATH:/usr/apple-osx/bin/"
- export CFLAGS="-I/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/include/ -I/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/ -I. -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -mmacosx-version-min=10.5"
- export LDFLAGS="-L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -mmacosx-version-min=10.5"
- #
mkdir -p $INSTDIR/bin/
mkdir -p $INSTDIR/TorBrowserBundle.app/Tor/
mkdir -p $INSTDIR/TorBrowserBundle.app/Data/Tor/
mkdir -p $OUTDIR/
#
sudo dpkg -i *.deb
- cd /usr
- sudo tar -Jxvf /home/ubuntu/build/multiarch-darwin*tar.xz
- cd ~/build
- # For OpenSSL
- sudo ln -s /usr/apple-osx/bin/apple-osx-gcc /usr/apple-osx/bin/i686-apple-darwin11-cc
- #
- #cd zlib
- #find -type f | xargs touch --date="$REFERENCE_DATETIME"
- #make BINARY_PATH=$INSTDIR/zlib/lib INCLUDE_PATH=$INSTDIR/zlib/include LIBRARY_PATH=$INSTDIR/zlib/lib PREFIX=i686-apple-darwin10- $MAKEOPTS SHARED_MODE=1
- #make BINARY_PATH=$INSTDIR/zlib/lib INCLUDE_PATH=$INSTDIR/zlib/include LIBRARY_PATH=$INSTDIR/zlib/lib PREFIX=i686-apple-darwin10- $MAKEOPTS SHARED_MODE=1 install
- #cp $INSTDIR/zlib/lib/*.dylib $INSTDIR/Tor/
- #cd ..
- #
- tar xzf openssl.tar.gz
- cd openssl-*
- find -type f | xargs touch --date="$REFERENCE_DATETIME"
- ./Configure --cross-compile-prefix=i686-apple-darwin11- $CFLAGS darwin-i386-cc --prefix=$INSTDIR/openssl #enable-ec_nistp_64_gcc_128
- make # SHARED_LDFLAGS="-shared -dynamiclib -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/"
- make install
- #cp $INSTDIR/openssl/lib/*.dylib $INSTDIR/TorBrowserBundle.app/Tor/
- cd ..
- #
- cd libevent
- ./autogen.sh
- find -type f | xargs touch --date="$REFERENCE_DATETIME"
- ./configure --disable-static --host=i686-apple-darwin11 --prefix=$INSTDIR/libevent
- make $MAKEOPTS
- make install
+ tar xaf multiarch-darwin*tar.xz
+ export PATH="$PATH:$HOME/build/apple-osx/bin/"
+ unzip -d $INSTDIR openssl-mac32-utils.zip
+ unzip -d $INSTDIR libevent-mac32-utils.zip
cp $INSTDIR/libevent/lib/libevent-*.dylib $INSTDIR/TorBrowserBundle.app/Tor/
LIBEVENT_FILE=`basename $INSTDIR/libevent/lib/libevent-*.dylib`
- cd ..
#
+ export CFLAGS="-I/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/include/ -I/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/ -I. -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -mmacosx-version-min=10.5"
+ export LDFLAGS="-L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -mmacosx-version-min=10.5"
cd tor
git update-index --refresh -q
export GIT_COMMITTER_NAME="nobody"
@@ -118,22 +81,19 @@ script: |
fi
fi
mkdir -p $OUTDIR/src
- git archive HEAD | tar -x -C $OUTDIR/src
+ #git archive HEAD | tar -x -C $OUTDIR/src
./autogen.sh
find -type f | xargs touch --date="$REFERENCE_DATETIME"
- ./configure --enable-static-openssl --disable-asciidoc --host=i686-apple-darwin11 --with-libevent-dir=$INSTDIR/libevent --with-openssl-dir=$INSTDIR/openssl --prefix=$INSTDIR --with-zlib-dir=$INSTDIR/zlib/
+ ./configure --enable-static-openssl --disable-asciidoc --host=i686-apple-darwin11 --with-libevent-dir=$INSTDIR/libevent --with-openssl-dir=$INSTDIR/openssl --prefix=$INSTDIR
make $MAKEOPTS
make install
- cd ..
- cp $INSTDIR/bin/tor $INSTDIR/TorBrowserBundle.app/Tor/
- cp $INSTDIR/share/tor/geoip $INSTDIR/TorBrowserBundle.app/Data/Tor/
- cd $INSTDIR/TorBrowserBundle.app/Tor/
- i686-apple-darwin11-install_name_tool -change /home/ubuntu/install/libevent/lib/$LIBEVENT_FILE @executable_path/$LIBEVENT_FILE tor
+ cd $INSTDIR
+ cp bin/tor TorBrowserBundle.app/Tor/
+ cp share/tor/geoip TorBrowserBundle.app/Data/Tor/
+ cd TorBrowserBundle.app/Tor/
+ i686-apple-darwin11-install_name_tool -change $INSTDIR/libevent/lib/$LIBEVENT_FILE @executable_path/$LIBEVENT_FILE tor
# XXX: Geoip files..
#
- #cp -a /usr/lib/gcc/i686-apple-darwin10/4.6/libgcc_s_sjlj-1.dll $INSTDIR/Tor/
- #cp -a /usr/lib/gcc/i686-apple-darwin10/4.6/libssp*.dll $INSTDIR/Tor/
- #
cd $INSTDIR
- ~/build/dzip.sh tor-mac$GBUILD_BITS-gbuilt.zip TorBrowserBundle.app
- cp tor-mac$GBUILD_BITS-gbuilt.zip $OUTDIR/
+ ~/build/dzip.sh tor-mac32-gbuilt.zip TorBrowserBundle.app
+ cp tor-mac32-gbuilt.zip $OUTDIR/
diff --git a/gitian/descriptors/mac/gitian-utils.yml b/gitian/descriptors/mac/gitian-utils.yml
new file mode 100644
index 0000000..1caf8f0
--- /dev/null
+++ b/gitian/descriptors/mac/gitian-utils.yml
@@ -0,0 +1,70 @@
+---
+name: "utils-mac"
+suites:
+- "precise"
+architectures:
+- "i386"
+packages:
+- "git-core"
+- "unzip"
+- "zip"
+- "autoconf"
+- "autoconf2.13"
+- "automake"
+- "faketime"
+- "libtool"
+reference_datetime: "2000-01-01 00:00:00"
+remotes:
+- "url": "https://github.com/libevent/libevent.git"
+ "dir": "libevent"
+files:
+- "apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb"
+- "multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz"
+- "openssl.tar.gz"
+- "versions"
+- "dzip.sh"
+script: |
+ INSTDIR="$HOME/install"
+ source versions
+ export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
+ export FAKETIME=$REFERENCE_DATETIME
+ export TZ=UTC
+ export LC_ALL=C
+ umask 0022
+
+ sudo dpkg -i *.deb
+ tar xaf multiarch-darwin*tar.xz
+ export PATH="$PATH:$HOME/build/apple-osx/bin/"
+ # For OpenSSL
+ ln -s ~/build/apple-osx/bin/apple-osx-gcc ~/build/apple-osx/bin/i686-apple-darwin11-cc
+
+ export CFLAGS="-I/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/include/ -I/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/ -I. -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -mmacosx-version-min=10.5"
+ export LDFLAGS="-L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/ -L/usr/lib/apple/SDKs/MacOSX10.6.sdk/usr/lib/system/ -mmacosx-version-min=10.5"
+
+ # Building Libevent
+ cd libevent
+ ./autogen.sh
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
+ ./configure --disable-static --host=i686-apple-darwin11 --prefix=$INSTDIR/libevent
+ make $MAKEOPTS
+ make install
+ cd ..
+
+ # Building OpenSSL
+ tar xzf openssl.tar.gz
+ cd openssl-*
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
+ # TODO: Add enable-ec_nistp_64_gcc_128 for 64bit OS X.
+ ./Configure --cross-compile-prefix=i686-apple-darwin11- $CFLAGS darwin-i386-cc --prefix=$INSTDIR/openssl
+ # Using $MAKEOPTS breaks the build. Might be the issue mentioned on
+ # http://cblfs.cross-lfs.org/index.php/OpenSSL.
+ make
+ make install
+ cd ..
+
+ # Grabbing the results
+ cd $INSTDIR
+ ~/build/dzip.sh openssl-$OPENSSL_VER-mac32-utils.zip openssl
+ ~/build/dzip.sh libevent-${LIBEVENT_TAG#release-}-mac32-utils.zip libevent
+
+ cp *utils.zip $OUTDIR/
diff --git a/gitian/mkbundle-mac.sh b/gitian/mkbundle-mac.sh
index d34002d..fb1d32f 100755
--- a/gitian/mkbundle-mac.sh
+++ b/gitian/mkbundle-mac.sh
@@ -42,7 +42,7 @@ fi
cd $GITIAN_DIR
export PATH=$PATH:$PWD/libexec
-echo "pref(\"torbrowser.version\", \"$TORBROWSER_VERSION-MacOS\");" > $GITIAN_DIR/inputs/torbrowser.version
+echo "pref(\"torbrowser.version\", \"$TORBROWSER_VERSION-MacOS\");" > $GITIAN_DIR/inputs/torbrowser.version
echo "$TORBROWSER_VERSION" > $GITIAN_DIR/inputs/bare-version
cp -a $WRAPPER_DIR/$VERSIONS_FILE $GITIAN_DIR/inputs/versions
@@ -51,7 +51,7 @@ cp $WRAPPER_DIR/patches/* $GITIAN_DIR/inputs/
cd $WRAPPER_DIR/..
rm -f $GITIAN_DIR/inputs/relativelink-src.zip
-$WRAPPER_DIR/build-helpers/dzip.sh $GITIAN_DIR/inputs/relativelink-src.zip ./RelativeLink/
+$WRAPPER_DIR/build-helpers/dzip.sh $GITIAN_DIR/inputs/relativelink-src.zip ./RelativeLink/
cd ./Bundle-Data/
rm -f $GITIAN_DIR/inputs/tbb-docs.zip
@@ -79,6 +79,11 @@ die_msg() {
exit 1
}
+# Let's preserve the original $FOO for creating proper symlinks after building
+# the utils both if we verify tags and if we don't.
+
+LIBEVENT_TAG_ORIG=$LIBEVENT_TAG
+
if [ "z$VERIFY_TAGS" = "z1" ];
then
./verify-tags.sh $GITIAN_DIR/inputs $VERSIONS_FILE || die_msg "You should run 'make prep' to ensure your inputs are up to date"
@@ -100,32 +105,64 @@ fi
cd $GITIAN_DIR
-if [ ! -f $GITIAN_DIR/inputs/tor-mac32-gbuilt.zip ];
+if [ ! -f inputs/openssl-$OPENSSL_VER-mac32-utils.zip -o \
+ ! -f inputs/libevent-${LIBEVENT_TAG_ORIG#release-}-mac32-utils.zip ];
+then
+ echo
+ echo "****** Starting Utilities Component of Mac Bundle (1/5 for Max) ******"
+ echo
+ ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit libevent=$LIBEVENT_TAG $DESCRIPTOR_DIR/mac/gitian-utils.yml
+ if [ $? -ne 0 ];
+ then
+ #mv var/build.log ./utils-fail-mac.log.`date +%Y%m%d%H%M%S`
+ exit 1
+ fi
+
+ cd inputs
+ cp -a ../build/out/*-utils.zip .
+ ln -sf openssl-$OPENSSL_VER-mac32-utils.zip openssl-mac32-utils.zip
+ ln -sf libevent-${LIBEVENT_TAG_ORIG#release-}-mac32-utils.zip libevent-mac32-utils.zip
+ cd ..
+ #cp -a result/utils-mac-res.yml inputs/
+else
+ echo
+ echo "****** SKIPPING already built Utilities Component of Mac Bundle (1/5 for
+ Mac) ******"
+ echo
+ # We might have built the utilities in the past but maybe the links are
+ # pointing to the wrong version. Refresh them.
+ cd inputs
+ ln -sf openssl-$OPENSSL_VER-mac32-utils.zip openssl-mac32-utils.zip
+ ln -sf libevent-${LIBEVENT_TAG_ORIG#release-}-mac32-utils.zip libevent-mac32-utils.zip
+ cd ..
+fi
+
+if [ ! -f inputs/tor-mac32-gbuilt.zip ];
then
- echo
- echo "****** Starting Tor Component of Mac Bundle (1/4 for Mac) ******"
- echo
+ echo
+ echo "****** Starting Tor Component of Mac Bundle (2/5 for Mac) ******"
+ echo
- ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit zlib=$ZLIB_TAG,libevent=$LIBEVENT_TAG,tor=$TOR_TAG $DESCRIPTOR_DIR/mac/gitian-tor.yml
+ ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit tor=$TOR_TAG $DESCRIPTOR_DIR/mac/gitian-tor.yml
if [ $? -ne 0 ];
then
#mv var/build.log ./tor-fail-mac.log.`date +%Y%m%d%H%M%S`
exit 1
fi
-
- cp -a build/out/tor-mac*-gbuilt.zip $GITIAN_DIR/inputs/
- #cp -a result/tor-mac-res.yml $GITIAN_DIR/inputs/
+
+ cp -a build/out/tor-mac*-gbuilt.zip inputs/
+ #cp -a result/tor-mac-res.yml inputs/
else
- echo
- echo "****** SKIPPING already built Tor Component of Mac Bundle (1/4 for Mac) ******"
- echo
+ echo
+ echo "****** SKIPPING already built Tor Component of Mac Bundle (2/5 for Mac) ******"
+ echo
fi
-if [ ! -f $GITIAN_DIR/inputs/tor-browser-mac32-gbuilt.zip ];
+if [ ! -f inputs/tor-browser-mac32-gbuilt.zip ];
then
- echo
- echo "****** Starting TorBrowser Component of Mac Bundle (2/4 for Mac) ******"
- echo
+ echo
+ echo "****** Starting TorBrowser Component of Mac Bundle (3/5 for Mac) ******"
+ echo
./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit tor-browser=$TORBROWSER_TAG $DESCRIPTOR_DIR/mac/gitian-firefox.yml
if [ $? -ne 0 ];
@@ -134,19 +171,19 @@ then
exit 1
fi
- cp -a build/out/tor-browser-mac*-gbuilt.zip $GITIAN_DIR/inputs/
- #cp -a result/torbrowser-mac-res.yml $GITIAN_DIR/inputs/
+ cp -a build/out/tor-browser-mac*-gbuilt.zip inputs/
+ #cp -a result/torbrowser-mac-res.yml inputs/
else
- echo
- echo "****** SKIPPING already built TorBrowser Component of Mac Bundle (2/4 for Mac) ******"
- echo
+ echo
+ echo "****** SKIPPING already built TorBrowser Component of Mac Bundle (3/5 for Mac) ******"
+ echo
fi
-if [ ! -f $GITIAN_DIR/inputs/pluggable-transports-mac32-gbuilt.zip ];
+if [ ! -f inputs/pluggable-transports-mac32-gbuilt.zip ];
then
- echo
- echo "****** Starting Pluggable Transports Component of Mac Bundle (3/4 for Mac) ******"
- echo
+ echo
+ echo "****** Starting Pluggable Transports Component of Mac Bundle (4/5 for Mac) ******"
+ echo
./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit pyptlib=$PYPTLIB_TAG,obfsproxy=$OBFSPROXY_TAG,flashproxy=$FLASHPROXY_TAG,libfte=$LIBFTE_TAG,fteproxy=$FTEPROXY_TAG,txsocksx=$TXSOCKSX_TAG $DESCRIPTOR_DIR/mac/gitian-pluggable-transports.yml
if [ $? -ne 0 ];
@@ -155,44 +192,40 @@ then
exit 1
fi
- cp -a build/out/pluggable-transports-mac*-gbuilt.zip $GITIAN_DIR/inputs/
- #cp -a result/pluggable-transports-mac-res.yml $GITIAN_DIR/inputs/
+ cp -a build/out/pluggable-transports-mac*-gbuilt.zip inputs/
+ #cp -a result/pluggable-transports-mac-res.yml inputs/
else
- echo
- echo "****** SKIPPING already built Pluggable Transports Component of Mac Bundle (3/4 for Mac) ******"
- echo
+ echo
+ echo "****** SKIPPING already built Pluggable Transports Component of Mac Bundle (4/5 for Mac) ******"
+ echo
fi
-if [ ! -f $GITIAN_DIR/inputs/bundle-mac.gbuilt ];
-then
- echo
- echo "****** Starting Bundling+Localization Component of Mac Bundle (4/4 for Mac) ******"
- echo
-
+if [ ! -f inputs/bundle-mac.gbuilt ];
+then
+ echo
+ echo "****** Starting Bundling+Localization Component of Mac Bundle (5/5 for Mac) ******"
+ echo
+
cd $WRAPPER_DIR && ./record-inputs.sh $VERSIONS_FILE && cd $GITIAN_DIR
-
+
./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit libdmg-hfsplus=$LIBDMG_TAG,https-everywhere=$HTTPSE_TAG,torbutton=$TORBUTTON_TAG,tor-launcher=$TORLAUNCHER_TAG $DESCRIPTOR_DIR/mac/gitian-bundle.yml
if [ $? -ne 0 ];
then
#mv var/build.log ./bundle-fail-mac.log.`date +%Y%m%d%H%M%S`
exit 1
fi
-
- #cp -a build/out/*.dmg $WRAPPER_DIR
+
mkdir -p $WRAPPER_DIR/$TORBROWSER_VERSION/
cp -a build/out/* $WRAPPER_DIR/$TORBROWSER_VERSION/ || exit 1
- touch $GITIAN_DIR/inputs/bundle-mac.gbuilt
+ touch inputs/bundle-mac.gbuilt
else
- echo
- echo "****** SKIPPING already built Bundling+Localization Component of Mac Bundle (4/4 for Mac) ******"
- echo
+ echo
+ echo "****** SKIPPING already built Bundling+Localization Component of Mac Bundle (5/5 for Mac) ******"
+ echo
fi
-echo
+echo
echo "****** Mac Bundle complete ******"
-echo
-
-
-# FIXME: docs
+echo
1
0

[tor-browser-bundle/master] Bug 11919: Avoid console window popping up.
by gk@torproject.org 13 May '14
by gk@torproject.org 13 May '14
13 May '14
commit 75b64c8cbc39c7bed5a1865d978bceb2cc041302
Author: Georg Koppen <gk(a)torproject.org>
Date: Tue May 13 12:04:17 2014 +0000
Bug 11919: Avoid console window popping up.
This is a regression due to c67075a87a05505d083a648a47adfbba46f79eff.
---
gitian/descriptors/windows/gitian-tor.yml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/gitian/descriptors/windows/gitian-tor.yml b/gitian/descriptors/windows/gitian-tor.yml
index 3263b48..abfd8bb 100644
--- a/gitian/descriptors/windows/gitian-tor.yml
+++ b/gitian/descriptors/windows/gitian-tor.yml
@@ -84,6 +84,9 @@ script: |
fi
mkdir -p $OUTDIR/src
#git archive HEAD | tar -x -C $OUTDIR/src
+ # Let's avoid the console window popping up.
+ export CFLAGS="-mwindows"
+ export LDFLAGS="-mwindows"
./autogen.sh
find -type f | xargs touch --date="$REFERENCE_DATETIME"
./configure --disable-asciidoc --host=i686-w64-mingw32 --with-libevent-dir=$INSTDIR/libevent --with-openssl-dir=$INSTDIR/openssl --prefix=$INSTDIR --with-zlib-dir=$INSTDIR/zlib/
1
0

[tor-browser-bundle/master] Bug 11629: Merge changes due to fteproxy 0.2.14.
by gk@torproject.org 11 May '14
by gk@torproject.org 11 May '14
11 May '14
commit 682f8f4d26d7df1b49a23c40dd7e7ca18f44ab90
Author: Georg Koppen <gk(a)torproject.org>
Date: Sun May 11 20:27:21 2014 +0000
Bug 11629: Merge changes due to fteproxy 0.2.14.
---
.../PTConfigs/linux/torrc-defaults-appendix | 2 +-
Bundle-Data/PTConfigs/mac/torrc-defaults-appendix | 2 +-
.../linux/gitian-pluggable-transports.yml | 14 +++++++++--
.../mac/gitian-pluggable-transports.yml | 14 +++++++++--
.../windows/gitian-pluggable-transports.yml | 25 +++++++++++++-------
gitian/fetch-inputs.sh | 1 +
gitian/mkbundle-linux.sh | 2 +-
gitian/mkbundle-mac.sh | 2 +-
gitian/mkbundle-windows.sh | 2 +-
gitian/verify-tags.sh | 1 +
gitian/versions | 7 +++---
gitian/versions.alpha | 5 ++--
gitian/versions.beta | 3 ++-
gitian/versions.nightly | 3 ++-
14 files changed, 58 insertions(+), 25 deletions(-)
diff --git a/Bundle-Data/PTConfigs/linux/torrc-defaults-appendix b/Bundle-Data/PTConfigs/linux/torrc-defaults-appendix
index d0f621e..87108bd 100644
--- a/Bundle-Data/PTConfigs/linux/torrc-defaults-appendix
+++ b/Bundle-Data/PTConfigs/linux/torrc-defaults-appendix
@@ -1,5 +1,5 @@
## fteproxy configuration
-ClientTransportPlugin fte exec ./Tor/PluggableTransports/fteproxy --managed
+ClientTransportPlugin fte exec ./Tor/PluggableTransports/fteproxy.bin --managed
## obfsproxy configuration
ClientTransportPlugin obfs2,obfs3 exec ./Tor/PluggableTransports/obfsproxy.bin managed
diff --git a/Bundle-Data/PTConfigs/mac/torrc-defaults-appendix b/Bundle-Data/PTConfigs/mac/torrc-defaults-appendix
index e1ada73..7c6e6a5 100644
--- a/Bundle-Data/PTConfigs/mac/torrc-defaults-appendix
+++ b/Bundle-Data/PTConfigs/mac/torrc-defaults-appendix
@@ -1,5 +1,5 @@
## fteproxy configuration
-ClientTransportPlugin fte exec PluggableTransports/fteproxy --managed
+ClientTransportPlugin fte exec PluggableTransports/fteproxy.bin --managed
## obfsproxy configuration
ClientTransportPlugin obfs2,obfs3 exec PluggableTransports/obfsproxy.bin managed
diff --git a/gitian/descriptors/linux/gitian-pluggable-transports.yml b/gitian/descriptors/linux/gitian-pluggable-transports.yml
index 25109b8..eb9ca16 100644
--- a/gitian/descriptors/linux/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/linux/gitian-pluggable-transports.yml
@@ -23,6 +23,8 @@ remotes:
"dir": "obfsproxy"
- "url": "https://git.torproject.org/flashproxy.git"
"dir": "flashproxy"
+- "url": "https://github.com/kpdyer/libfte.git"
+ "dir": "libfte"
- "url": "https://github.com/kpdyer/fteproxy.git"
"dir": "fteproxy"
- "url": "https://github.com/habnabit/txsocksx.git"
@@ -163,12 +165,20 @@ script: |
cp -a {doc/*,README,LICENSE,ChangeLog} $INSTDIR/Docs/FlashProxy
cd ..
#
- cd fteproxy
+ cd libfte
ln -s $INSTDIR/gmp thirdparty/gmp
find -type f | xargs touch --date="$REFERENCE_DATETIME"
make
- cp -a bin/fteproxy $PTDIR/
cp -ra fte $PTDIR/
+ mkdir -p $INSTDIR/Docs/libfte
+ cp -a {LICENSE,README.md} $INSTDIR/Docs/libfte
+ cp -a thirdparty/re2/LICENSE $INSTDIR/Docs/libfte/LICENSE.re2
+ cd ..
+ #
+ cd fteproxy
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
+ cp -a bin/fteproxy $PTDIR/fteproxy.bin
+ cp -ra fteproxy $PTDIR/
mkdir -p $INSTDIR/Docs/fteproxy
cp -a {COPYING,README.md} $INSTDIR/Docs/fteproxy
cd ..
diff --git a/gitian/descriptors/mac/gitian-pluggable-transports.yml b/gitian/descriptors/mac/gitian-pluggable-transports.yml
index 6895c87..48521d8 100644
--- a/gitian/descriptors/mac/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/mac/gitian-pluggable-transports.yml
@@ -23,6 +23,8 @@ remotes:
"dir": "obfsproxy"
- "url": "https://git.torproject.org/flashproxy.git"
"dir": "flashproxy"
+- "url": "https://github.com/kpdyer/libfte.git"
+ "dir": "libfte"
- "url": "https://github.com/kpdyer/fteproxy.git"
"dir": "fteproxy"
- "url": "https://github.com/habnabit/txsocksx.git"
@@ -189,11 +191,19 @@ script: |
cp -a {doc/*,README,LICENSE,ChangeLog} $INSTDIR/TorBrowserBundle.app/Docs/FlashProxy
cd ..
#
- cd fteproxy
+ cd libfte
find -type f | xargs touch --date="$REFERENCE_DATETIME"
CFLAGS="-L$INSTDIR/Tor -I$INSTDIR/gmp/include $CFLAGS" CXXFLAGS="-L$INSTDIR/Tor -I$INSTDIR/gmp/include $CXXFLAGS" make
- cp -a bin/fteproxy $PTDIR/
cp -ra fte $PTDIR/
+ mkdir -p $INSTDIR/TorBrowserBundle.app/Docs/libfte
+ cp -a {LICENSE,README.md} $INSTDIR/TorBrowserBundle.app/Docs/libfte
+ cp -an thirdparty/re2/LICENSE $INSTDIR/TorBrowserBundle.app/Docs/libfte/LICENSE.re2
+ cd ..
+ #
+ cd fteproxy
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
+ cp -a bin/fteproxy $PTDIR/fteproxy.bin
+ cp -ra fteproxy $PTDIR/
mkdir -p $INSTDIR/TorBrowserBundle.app/Docs/fteproxy
cp -a {COPYING,README.md} $INSTDIR/TorBrowserBundle.app/Docs/fteproxy
cd ..
diff --git a/gitian/descriptors/windows/gitian-pluggable-transports.yml b/gitian/descriptors/windows/gitian-pluggable-transports.yml
index f1505bb..1637b23 100644
--- a/gitian/descriptors/windows/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/windows/gitian-pluggable-transports.yml
@@ -24,6 +24,8 @@ remotes:
"dir": "obfsproxy"
- "url": "https://git.torproject.org/flashproxy.git"
"dir": "flashproxy"
+- "url": "https://github.com/kpdyer/libfte.git"
+ "dir": "libfte"
- "url": "https://github.com/kpdyer/fteproxy.git"
"dir": "fteproxy"
- "url": "https://github.com/habnabit/txsocksx.git"
@@ -250,21 +252,26 @@ script: |
cp dist/flashproxy-client-win32/{doc/*,README,LICENSE,ChangeLog} $INSTDIR/Docs/FlashProxy
cd ..
#
- cd fteproxy
+ cd libfte
ln -s $INSTDIR/gmp thirdparty/gmp
cp -a $INSTDIR/gmp/bin/libgmp-*.dll .
find -type f | xargs touch --date="$REFERENCE_DATETIME"
- WINDOWS_BUILD=1 CROSS_COMPILE=1 make thirdparty/re2/obj/libre2.a
- LD_PRELOAD= $INSTPYTHON setup_tbb.py build_ext -c mingw32
+ LD_PRELOAD= WINDOWS_BUILD=1 CROSS_COMPILE=1 PYTHON=$INSTPYTHON make
+ LD_PRELOAD= $INSTPYTHON setup.py install
+ mkdir -p $INSTDIR/Docs/libfte
+ cp -an {LICENSE,README.md} $INSTDIR/Docs/libfte
+ cp -an thirdparty/re2/LICENSE $INSTDIR/Docs/libfte/LICENSE.re2
+ cd ..
+ #
+ cd fteproxy
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
LD_PRELOAD= $INSTPYTHON setup_tbb.py py2exe
py2exe_zip_timestomp dist/fteproxy.zip
cp -an dist/{*.pyd,*.exe,*.zip} $PTDIR/
- mkdir -p $PTDIR/fte
- cp -a fte/VERSION $PTDIR/fte
- mkdir -p $PTDIR/fte/defs
- cp -a fte/defs/*.json $PTDIR/fte/defs
- mkdir -p $PTDIR/fte/tests/dfas
- cp -a fte/tests/dfas/{*.dfa,*.regex} $PTDIR/fte/tests/dfas
+ mkdir -p $PTDIR/fteproxy
+ cp -a fteproxy/VERSION $PTDIR/fteproxy
+ mkdir -p $PTDIR/fteproxy/defs
+ cp -a fteproxy/defs/*.json $PTDIR/fteproxy/defs
mkdir -p $INSTDIR/Docs/fteproxy
cp -an {COPYING,README.md} $INSTDIR/Docs/fteproxy
cd ..
diff --git a/gitian/fetch-inputs.sh b/gitian/fetch-inputs.sh
index c89d340..77356d7 100755
--- a/gitian/fetch-inputs.sh
+++ b/gitian/fetch-inputs.sh
@@ -307,6 +307,7 @@ tor-browser https://git.torproject.org/tor-browser.git $TORBR
pyptlib https://git.torproject.org/pluggable-transports/pyptlib.git $PYPTLIB_TAG
obfsproxy https://git.torproject.org/pluggable-transports/obfsproxy.git $OBFSPROXY_TAG
flashproxy https://git.torproject.org/flashproxy.git $FLASHPROXY_TAG
+libfte https://github.com/kpdyer/libfte.git $LIBFTE_TAG
fteproxy https://github.com/kpdyer/fteproxy.git $FTEPROXY_TAG
libdmg-hfsplus https://github.com/vasi/libdmg-hfsplus.git $LIBDMG_TAG
txsocksx https://github.com/habnabit/txsocksx.git $TXSOCKSX_TAG
diff --git a/gitian/mkbundle-linux.sh b/gitian/mkbundle-linux.sh
index 574f578..992a23a 100755
--- a/gitian/mkbundle-linux.sh
+++ b/gitian/mkbundle-linux.sh
@@ -202,7 +202,7 @@ then
echo "****** Starting Pluggable Transports Component of Linux Bundle (4/5 for Linux) ******"
echo
- ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit pyptlib=$PYPTLIB_TAG,obfsproxy=$OBFSPROXY_TAG,flashproxy=$FLASHPROXY_TAG,fteproxy=$FTEPROXY_TAG,txsocksx=$TXSOCKSX_TAG $DESCRIPTOR_DIR/linux/gitian-pluggable-transports.yml
+ ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit pyptlib=$PYPTLIB_TAG,obfsproxy=$OBFSPROXY_TAG,flashproxy=$FLASHPROXY_TAG,libfte=$LIBFTE_TAG,fteproxy=$FTEPROXY_TAG,txsocksx=$TXSOCKSX_TAG $DESCRIPTOR_DIR/linux/gitian-pluggable-transports.yml
if [ $? -ne 0 ];
then
#mv var/build.log ./pluggable-transports-fail-linux.log.`date +%Y%m%d%H%M%S`
diff --git a/gitian/mkbundle-mac.sh b/gitian/mkbundle-mac.sh
index a7752a9..d34002d 100755
--- a/gitian/mkbundle-mac.sh
+++ b/gitian/mkbundle-mac.sh
@@ -148,7 +148,7 @@ then
echo "****** Starting Pluggable Transports Component of Mac Bundle (3/4 for Mac) ******"
echo
- ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit pyptlib=$PYPTLIB_TAG,obfsproxy=$OBFSPROXY_TAG,flashproxy=$FLASHPROXY_TAG,fteproxy=$FTEPROXY_TAG,txsocksx=$TXSOCKSX_TAG $DESCRIPTOR_DIR/mac/gitian-pluggable-transports.yml
+ ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit pyptlib=$PYPTLIB_TAG,obfsproxy=$OBFSPROXY_TAG,flashproxy=$FLASHPROXY_TAG,libfte=$LIBFTE_TAG,fteproxy=$FTEPROXY_TAG,txsocksx=$TXSOCKSX_TAG $DESCRIPTOR_DIR/mac/gitian-pluggable-transports.yml
if [ $? -ne 0 ];
then
#mv var/build.log ./firefox-fail-mac.log.`date +%Y%m%d%H%M%S`
diff --git a/gitian/mkbundle-windows.sh b/gitian/mkbundle-windows.sh
index dcb9012..198fe87 100755
--- a/gitian/mkbundle-windows.sh
+++ b/gitian/mkbundle-windows.sh
@@ -189,7 +189,7 @@ then
echo "****** Starting Pluggable Transports Component of Windows Bundle (4/5 for Windows) ******"
echo
- ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit pyptlib=$PYPTLIB_TAG,obfsproxy=$OBFSPROXY_TAG,flashproxy=$FLASHPROXY_TAG,fteproxy=$FTEPROXY_TAG,txsocksx=$TXSOCKSX_TAG $DESCRIPTOR_DIR/windows/gitian-pluggable-transports.yml
+ ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit pyptlib=$PYPTLIB_TAG,obfsproxy=$OBFSPROXY_TAG,flashproxy=$FLASHPROXY_TAG,libfte=$LIBFTE_TAG,fteproxy=$FTEPROXY_TAG,txsocksx=$TXSOCKSX_TAG $DESCRIPTOR_DIR/windows/gitian-pluggable-transports.yml
if [ $? -ne 0 ];
then
#mv var/build.log ./pluggable-transports-fail-win32.log.`date +%Y%m%d%H%M%S`
diff --git a/gitian/verify-tags.sh b/gitian/verify-tags.sh
index e5e9f3f..324a27a 100755
--- a/gitian/verify-tags.sh
+++ b/gitian/verify-tags.sh
@@ -106,6 +106,7 @@ while read dir commit; do
check_git_hash "$dir" "$commit"
done << EOF
libdmg-hfsplus $LIBDMG_TAG
+libfte $LIBFTE_TAG
fteproxy $FTEPROXY_TAG
txsocksx $TXSOCKSX_TAG
EOF
diff --git a/gitian/versions b/gitian/versions
index b5410b3..a9e033f 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -15,10 +15,11 @@ NSIS_TAG=v0.1
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
MINGW_REV=6184
-PYPTLIB_TAG=pyptlib-0.0.5
-OBFSPROXY_TAG=obfsproxy-0.2.4
+PYPTLIB_TAG=pyptlib-0.0.6
+OBFSPROXY_TAG=obfsproxy-0.2.9
FLASHPROXY_TAG=1.6
-FTEPROXY_TAG=55d81d2f0a4fab759c1ed8aca78dd3a5db6e75c6 # unsigned 0.2.13
+LIBFTE_TAG=19f6b8ffafca2ec8fffbc418bc0f88518cea22ac # tag 0.0.2
+FTEPROXY_TAG=b5d7fba5c505907693fd2b5321f2aa57d4390cfa # tag 0.2.14
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
TXSOCKSX_TAG=216eb0894a1755872f4789f9458aa6cf543b8433 # unsigned habnabit/1.13.0.2
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index 3ca3442..702c1e4 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -16,9 +16,10 @@ ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
MINGW_REV=6184
PYPTLIB_TAG=pyptlib-0.0.5
-OBFSPROXY_TAG=obfsproxy-0.2.8
+OBFSPROXY_TAG=obfsproxy-0.2.9
FLASHPROXY_TAG=1.6
-FTEPROXY_TAG=0.2.13
+LIBFTE_TAG=0.0.2
+FTEPROXY_TAG=0.2.14
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
GITIAN_TAG=tor-browser-builder-3.x-5
diff --git a/gitian/versions.beta b/gitian/versions.beta
index cafe6da..817a880 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -18,7 +18,8 @@ MINGW_REV=6184
PYPTLIB_TAG=pyptlib-0.0.6
OBFSPROXY_TAG=obfsproxy-0.2.9
FLASHPROXY_TAG=1.6
-FTEPROXY_TAG=55d81d2f0a4fab759c1ed8aca78dd3a5db6e75c6 # unsigned 0.2.13
+LIBFTE_TAG=19f6b8ffafca2ec8fffbc418bc0f88518cea22ac # tag 0.0.2
+FTEPROXY_TAG=b5d7fba5c505907693fd2b5321f2aa57d4390cfa # tag 0.2.14
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
TXSOCKSX_TAG=216eb0894a1755872f4789f9458aa6cf543b8433 # unsigned habnabit/1.13.0.2
diff --git a/gitian/versions.nightly b/gitian/versions.nightly
index 8238aa6..03f4f2f 100755
--- a/gitian/versions.nightly
+++ b/gitian/versions.nightly
@@ -18,7 +18,8 @@ MINGW_REV=6184
PYPTLIB_TAG=master
OBFSPROXY_TAG=master
FLASHPROXY_TAG=master
-FTEPROXY_TAG=55d81d2f0a4fab759c1ed8aca78dd3a5db6e75c6 # unsigned 0.2.13
+LIBFTE_TAG=master
+FTEPROXY_TAG=master
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
TXSOCKSX_TAG=216eb0894a1755872f4789f9458aa6cf543b8433 # unsigned habnabit/1.13.0.2
1
0

[tor-browser-bundle/master] Include Docs/ pluggable-transports-win32-gbuilt.zip.
by gk@torproject.org 09 May '14
by gk@torproject.org 09 May '14
09 May '14
commit dc9fb94873d8e0b7eff7a99ff177c666d91ab1cd
Author: David Fifield <david(a)bamsoftware.com>
Date: Thu May 8 11:45:00 2014 -0700
Include Docs/ pluggable-transports-win32-gbuilt.zip.
Pluggable transport docs were missing on windows.
---
gitian/descriptors/windows/gitian-pluggable-transports.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gitian/descriptors/windows/gitian-pluggable-transports.yml b/gitian/descriptors/windows/gitian-pluggable-transports.yml
index cf7595e..3fdaf85 100644
--- a/gitian/descriptors/windows/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/windows/gitian-pluggable-transports.yml
@@ -274,5 +274,5 @@ script: |
cp -a $INSTDIR/python/python27.dll $PTDIR/
#
cd $INSTDIR
- ~/build/dzip.sh pluggable-transports-win32-gbuilt.zip Tor/ Data/
+ ~/build/dzip.sh pluggable-transports-win32-gbuilt.zip Tor/ Data/ Docs/
cp pluggable-transports-win32-gbuilt.zip $OUTDIR/
1
0

09 May '14
commit 43a8ecaf1ca987cd02bf2c46f8886749d4986773
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri May 9 09:39:08 2014 +0000
No need for a Data/ directory here.
---
gitian/descriptors/windows/gitian-pluggable-transports.yml | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/gitian/descriptors/windows/gitian-pluggable-transports.yml b/gitian/descriptors/windows/gitian-pluggable-transports.yml
index 3fdaf85..f1505bb 100644
--- a/gitian/descriptors/windows/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/windows/gitian-pluggable-transports.yml
@@ -4,7 +4,7 @@ suites:
- "precise"
architectures:
- "i386"
-packages:
+packages:
- "git-core"
- "unzip"
- "zip"
@@ -73,10 +73,9 @@ script: |
#export CFLAGS="-mwindows -fstack-protector-all -fPIE -Wstack-protector --param ssp-buffer-size=4 -fno-strict-overflow -Wno-missing-field-initializers -Wformat-security"
#export LDFLAGS="-mwindows -Wl,--dynamicbase -Wl,--nxcompat -lssp -L/usr/lib/gcc/i686-w64-mingw32/4.6/"
umask 0022
- #
+ #
mkdir -p $INSTDIR/bin/
mkdir -p $PTDIR/
- mkdir -p $INSTDIR/Data/Tor/
mkdir -p $OUTDIR/
#
# Set the timestamp on every .pyc file in a zip file, and re-dzip the zip file.
@@ -274,5 +273,5 @@ script: |
cp -a $INSTDIR/python/python27.dll $PTDIR/
#
cd $INSTDIR
- ~/build/dzip.sh pluggable-transports-win32-gbuilt.zip Tor/ Data/ Docs/
+ ~/build/dzip.sh pluggable-transports-win32-gbuilt.zip Tor/ Docs/
cp pluggable-transports-win32-gbuilt.zip $OUTDIR/
1
0

[tor-browser-bundle/master] Install fteproxy docs to the right place in the mac descriptor.
by gk@torproject.org 09 May '14
by gk@torproject.org 09 May '14
09 May '14
commit f7e0b712fcd54503a8a421eaa1b363183b67482d
Author: David Fifield <david(a)bamsoftware.com>
Date: Thu May 8 11:54:54 2014 -0700
Install fteproxy docs to the right place in the mac descriptor.
---
gitian/descriptors/mac/gitian-pluggable-transports.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gitian/descriptors/mac/gitian-pluggable-transports.yml b/gitian/descriptors/mac/gitian-pluggable-transports.yml
index df73197..6895c87 100644
--- a/gitian/descriptors/mac/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/mac/gitian-pluggable-transports.yml
@@ -194,8 +194,8 @@ script: |
CFLAGS="-L$INSTDIR/Tor -I$INSTDIR/gmp/include $CFLAGS" CXXFLAGS="-L$INSTDIR/Tor -I$INSTDIR/gmp/include $CXXFLAGS" make
cp -a bin/fteproxy $PTDIR/
cp -ra fte $PTDIR/
- mkdir -p $INSTDIR/Docs/fteproxy
- cp -a {COPYING,README.md} $INSTDIR/Docs/fteproxy
+ mkdir -p $INSTDIR/TorBrowserBundle.app/Docs/fteproxy
+ cp -a {COPYING,README.md} $INSTDIR/TorBrowserBundle.app/Docs/fteproxy
cd ..
#
cd $INSTDIR
1
0

[tor-browser-bundle/master] Go back to tag 0.2.13 as FTE master is broken.
by gk@torproject.org 08 May '14
by gk@torproject.org 08 May '14
08 May '14
commit 20f5b691785566fe6b227d7e716f26eaf7cac151
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu May 8 20:27:46 2014 +0000
Go back to tag 0.2.13 as FTE master is broken.
---
gitian/versions.nightly | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gitian/versions.nightly b/gitian/versions.nightly
index 93ee6a7..8238aa6 100755
--- a/gitian/versions.nightly
+++ b/gitian/versions.nightly
@@ -18,7 +18,7 @@ MINGW_REV=6184
PYPTLIB_TAG=master
OBFSPROXY_TAG=master
FLASHPROXY_TAG=master
-FTEPROXY_TAG=master
+FTEPROXY_TAG=55d81d2f0a4fab759c1ed8aca78dd3a5db6e75c6 # unsigned 0.2.13
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
TXSOCKSX_TAG=216eb0894a1755872f4789f9458aa6cf543b8433 # unsigned habnabit/1.13.0.2
1
0

[tor-browser-bundle/master] Don't break stable and beta due to c67075a.
by gk@torproject.org 08 May '14
by gk@torproject.org 08 May '14
08 May '14
commit 62590be461bf88c0d8f4cc7ed86d83ae360df075
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu May 8 15:14:01 2014 +0000
Don't break stable and beta due to c67075a.
---
gitian/versions | 2 +-
gitian/versions.beta | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/gitian/versions b/gitian/versions
index 8f939f7..b5410b3 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -6,7 +6,7 @@ VERIFY_TAGS=1
FIREFOX_VERSION=24.5.0esr
-TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build3
+TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build4
TOR_TAG=tor-0.2.4.21
TORLAUNCHER_TAG=0.2.5.4
TORBUTTON_TAG=1.6.9.0
diff --git a/gitian/versions.beta b/gitian/versions.beta
index 1f30a41..cafe6da 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -6,7 +6,7 @@ VERIFY_TAGS=1
FIREFOX_VERSION=24.5.0esr
-TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build3
+TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build4
TOR_TAG=tor-0.2.4.21
TORLAUNCHER_TAG=0.2.5.4
TORBUTTON_TAG=1.6.9.0
1
0

[tor-browser-bundle/master] Bug 10120: Part 2: Refactor Windows descriptors.
by gk@torproject.org 08 May '14
by gk@torproject.org 08 May '14
08 May '14
commit c67075a87a05505d083a648a47adfbba46f79eff
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu May 8 14:08:20 2014 +0000
Bug 10120: Part 2: Refactor Windows descriptors.
We build the tools needed for the Windows descriptors separately and
preserve them. This does not (yet) include the tools in the Pluggable
Transports descriptor which will happen in an other commit.
---
gitian/descriptors/windows/gitian-firefox.yml | 104 +++---------------
gitian/descriptors/windows/gitian-tor.yml | 62 +++--------
gitian/descriptors/windows/gitian-utils.yml | 145 +++++++++++++++++++++++++
gitian/mkbundle-linux.sh | 10 +-
gitian/mkbundle-windows.sh | 141 +++++++++++++++---------
5 files changed, 272 insertions(+), 190 deletions(-)
diff --git a/gitian/descriptors/windows/gitian-firefox.yml b/gitian/descriptors/windows/gitian-firefox.yml
index fefb677..94b5eef 100644
--- a/gitian/descriptors/windows/gitian-firefox.yml
+++ b/gitian/descriptors/windows/gitian-firefox.yml
@@ -12,24 +12,18 @@ packages:
- "autoconf2.13"
- "faketime"
- "yasm"
-- "mingw-w64"
-- "g++-mingw-w64-i686"
-- "mingw-w64-tools"
-- "libmpc-dev"
reference_datetime: "2000-01-01 00:00:00"
remotes:
- "url": "https://git.torproject.org/tor-browser.git"
"dir": "tor-browser"
files:
-# XXX: we need to make this input tarball deterministic :/
-- "mingw-w64-svn-snapshot.zip"
-- "binutils.tar.bz2"
-- "gcc.tar.bz2"
+- "mingw-w64-win32-utils.zip"
- "re-dzip.sh"
- "dzip.sh"
-- "i686-w64-mingw32-gcc"
-- "i686-w64-mingw32-g++"
-- "i686-w64-mingw32-ld"
+# TODO: Hardening.
+#- "i686-w64-mingw32-gcc"
+#- "i686-w64-mingw32-g++"
+#- "i686-w64-mingw32-ld"
- "msvcr100.dll"
- "versions"
script: |
@@ -43,80 +37,14 @@ script: |
#
mkdir -p $INSTDIR/Browser/
mkdir -p $OUTDIR/
- # If we ever find out that the 12.04 mingw is buggy/insufficient:
- #sudo bash -c 'echo "deb http://archive.ubuntu.com/ubuntu raring main restricted universe multiverse" >> /etc/apt/sources.list'
- #sudo apt-get update
- #sudo apt-get install -y g++-mingw-w64-i686 mingw-w64-tools mingw-w64
-
- # Build the latest MinGW-w64 headers, CRT and runtime libraries to get Tor
- # Browser going on all Windows platforms >= XP. In order to do so we link
- # against msvcr100 (which we ship with the browser) as msvcrt on Windows XP
- # does not contain the secure functions Firefox uses. That in turn makes it
- # necessary to re-compile the mingw-w64 runtime libraries as well as they are
- # linked against msvcrt by default. See bug 9084 for a more detailed
- # discussion.
-
- # FIXME: We need sudo for all of this because otherwise
- # the toolchain can't find the alternate prefix for the CRT headers :/
-
+ unzip -d $INSTDIR mingw-w64-win32-utils.zip
+ # Make sure our custom mingw gets used.
+ export PATH=$INSTDIR/mingw-w64/bin:$PATH
# We don't want to link against msvcrt.dll due to bug 9084.
i686-w64-mingw32-g++ -dumpspecs > msvcr100.spec
sed 's/msvcrt/msvcr100/' -i msvcr100.spec
- mkdir binutils
- cd binutils
- tar -xjvf ../binutils.tar.bz2
- sed 's/= extern_rt_rel_d;/= extern_rt_rel_d;\n memset (extern_rt_rel_d, 0, PE_IDATA5_SIZE);/' -i binutils-*/ld/pe-dll.c
- binutils-*/configure --prefix=/usr --target=i686-w64-mingw32 --disable-multilib
- make
- sudo make install
- cd ..
-
- mkdir mingw-w64
- cd mingw-w64
- unzip ../mingw-w64-svn-snapshot.zip
- #
- mkdir mingw-w64-headers32 && cd mingw-w64-headers32
- ../mingw-w64-svn/mingw-w64-headers/configure --host=i686-w64-mingw32 --prefix=/usr/i686-w64-mingw32/ --enable-sdk=all --enable-secure-api --enable-idl
- sudo make install
- sudo ln -s /usr/i686-w64-mingw32 /usr/mingw
- sudo mkdir -p /usr/i686-w64-mingw32/lib
- cd ..
- cd ..
- # First stage of gcc compilation
- mkdir gcc
- cd gcc
- tar -xjvf ../gcc.tar.bz2
- # Linking libgcc against msvcrt is hard-coded...
- sed 's/msvcrt/msvcr100/' -i gcc-*/gcc/config/i386/t-mingw-w32
- # LDFLAGS_FOR_TARGET does not work for some reason. Thus, we take
- # CFLAGS_FOR_TARGET.
- export CFLAGS_FOR_TARGET="-specs=/home/ubuntu/build/msvcr100.spec"
- gcc-*/configure --prefix=/usr --target=i686-w64-mingw32 --disable-multilib --enable-languages=c,c++
- make all-gcc
- sudo make install-gcc
- cd ..
- #
- cd mingw-w64
- mkdir mingw-w64-crt32 && cd mingw-w64-crt32
- ../mingw-w64-svn/mingw-w64-crt/configure --host=i686-w64-mingw32 --prefix=/usr/i686-w64-mingw32
- make
- sudo make install
- cd ..
- #
- mkdir widl32 && cd widl32
- ../mingw-w64-svn/mingw-w64-tools/widl/configure --prefix=/usr --target=i686-w64-mingw32
- make
- sudo make install
- cd ..
- cd ..
- # Second stage of gcc compilation
- cd gcc
- make
- sudo make install
- #
- cd ..
- #
+ # Building the browser
cd tor-browser
mv .mozconfig-mingw .mozconfig
# FIXME
@@ -130,7 +58,7 @@ script: |
# is therefore just a workaround which should get fixed but is at least
# justified as the signature of _strcmpi and _stricmp is the same, see:
# http://msdn.microsoft.com/en-us/library/k59z8dwe.aspx.
- sed 's/strcmpi/stricmp/' -i nsprpub/pr/src/linking/prlink.c
+ sed 's/strcmpi/stricmp/' -i nsprpub/pr/src/linking/prlink.c
export HOST_LDFLAGS=" "
export LDFLAGS="-specs=/home/ubuntu/build/msvcr100.spec"
# Our flags don't get passed to NSS. We need to do that manually using an
@@ -170,14 +98,12 @@ script: |
# Stripping again updates the PE header checksums to be correct
i686-w64-mingw32-strip $INSTDIR/Browser/gkmedias.dll
i686-w64-mingw32-strip $INSTDIR/Browser/xul.dll
- #
+
+ # Making the .ja files deterministic and grabbing the results
cd $INSTDIR
~/build/re-dzip.sh Browser/omni.ja
- if [ -f Browser/webapprt/omni.ja ]; then
- ~/build/re-dzip.sh Browser/webapprt/omni.ja
- fi
- if [ -f Browser/browser/omni.ja ]; then
- ~/build/re-dzip.sh Browser/browser/omni.ja
- fi
+ ~/build/re-dzip.sh Browser/webapprt/omni.ja
+ ~/build/re-dzip.sh Browser/browser/omni.ja
~/build/dzip.sh tor-browser-win32-gbuilt.zip Browser
+
cp tor-browser-win32-gbuilt.zip $OUTDIR
diff --git a/gitian/descriptors/windows/gitian-tor.yml b/gitian/descriptors/windows/gitian-tor.yml
index bb6998b..3263b48 100644
--- a/gitian/descriptors/windows/gitian-tor.yml
+++ b/gitian/descriptors/windows/gitian-tor.yml
@@ -4,7 +4,7 @@ suites:
- "precise"
architectures:
- "i386"
-packages:
+packages:
- "git-core"
- "unzip"
- "zip"
@@ -18,10 +18,6 @@ reference_datetime: "2000-01-01 00:00:00"
remotes:
- "url": "https://git.torproject.org/tor.git"
"dir": "tor"
-- "url": "https://github.com/libevent/libevent.git"
- "dir": "libevent"
-- "url": "https://github.com/madler/zlib.git"
- "dir": "zlib"
files:
- "versions"
- "bug10297.patch"
@@ -35,60 +31,33 @@ files:
- "bug8402-master.patch"
- "binutils.tar.bz2"
- "dzip.sh"
-- "openssl.tar.gz"
+- "binutils-win32-utils.zip"
+- "openssl-win32-utils.zip"
+- "libevent-win32-utils.zip"
+- "zlib-win32-utils.zip"
script: |
INSTDIR="$HOME/install"
source versions
- export LIBRARY_PATH="$INSTDIR/lib"
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
export FAKETIME=$REFERENCE_DATETIME
export TZ=UTC
export LC_ALL=C
- # XXX: Hardening options cause the exe's to crash.. not sure why
- #export CFLAGS="-mwindows -fstack-protector-all -fPIE -Wstack-protector --param ssp-buffer-size=4 -fno-strict-overflow -Wno-missing-field-initializers -Wformat-security"
- #export LDFLAGS="-mwindows -Wl,--dynamicbase -Wl,--nxcompat -lssp -L/usr/lib/gcc/i686-w64-mingw32/4.6/"
umask 0022
- #
+ #
mkdir -p $INSTDIR/bin/
mkdir -p $INSTDIR/Tor/
mkdir -p $INSTDIR/Data/Tor/
- mkdir -p $OUTDIR/
- #
- mkdir binutils
- cd binutils
- tar -xjvf ../binutils.tar.bz2
- sed 's/= extern_rt_rel_d;/= extern_rt_rel_d;\n memset (extern_rt_rel_d, 0, PE_IDATA5_SIZE);/' -i binutils-*/ld/pe-dll.c
- binutils-*/configure --prefix=/usr --target=i686-w64-mingw32 --disable-multilib
- make
- sudo make install
- cd ..
- #
- export CFLAGS="-mwindows"
- export LDFLAGS="-mwindows"
- cd zlib
- find -type f | xargs touch --date="$REFERENCE_DATETIME"
- make BINARY_PATH=$INSTDIR/zlib/lib INCLUDE_PATH=$INSTDIR/zlib/include LIBRARY_PATH=$INSTDIR/zlib/lib -f win32/Makefile.gcc PREFIX=i686-w64-mingw32- $MAKEOPTS SHARED_MODE=1
- make BINARY_PATH=$INSTDIR/zlib/lib INCLUDE_PATH=$INSTDIR/zlib/include LIBRARY_PATH=$INSTDIR/zlib/lib -f win32/Makefile.gcc PREFIX=i686-w64-mingw32- $MAKEOPTS SHARED_MODE=1 install
+ unzip -d $INSTDIR binutils-win32-utils.zip
+ unzip -d $INSTDIR zlib-win32-utils.zip
+ unzip -d $INSTDIR libevent-win32-utils.zip
+ unzip -d $INSTDIR openssl-win32-utils.zip
cp $INSTDIR/zlib/lib/*.dll $INSTDIR/Tor/
- cd ..
- #
- cd libevent
- ./autogen.sh
- find -type f | xargs touch --date="$REFERENCE_DATETIME"
- ./configure --disable-static --host=i686-w64-mingw32 --prefix=$INSTDIR/libevent
- make $MAKEOPTS
- make install
cp $INSTDIR/libevent/bin/*.dll $INSTDIR/Tor/
- cd ..
- #
- tar xzf openssl.tar.gz
- cd openssl-*
- find -type f | xargs touch --date="$REFERENCE_DATETIME"
- ./Configure -shared --cross-compile-prefix=i686-w64-mingw32- mingw --prefix=$INSTDIR/openssl #enable-ec_nistp_64_gcc_128
- make
- make install
cp $INSTDIR/openssl/bin/*.dll $INSTDIR/Tor/
- cd ..
+ # Make sure our custom ld gets used.
+ # See the we-need-only-the-binutils-comment in gitian-utils.yml for the
+ # reasoning behind the "mingw-w64" dir instead of an expected "binutils" one.
+ export PATH=$INSTDIR/mingw-w64/bin:$PATH
#
cd tor
git update-index --refresh -q
@@ -114,7 +83,7 @@ script: |
fi
fi
mkdir -p $OUTDIR/src
- git archive HEAD | tar -x -C $OUTDIR/src
+ #git archive HEAD | tar -x -C $OUTDIR/src
./autogen.sh
find -type f | xargs touch --date="$REFERENCE_DATETIME"
./configure --disable-asciidoc --host=i686-w64-mingw32 --with-libevent-dir=$INSTDIR/libevent --with-openssl-dir=$INSTDIR/openssl --prefix=$INSTDIR --with-zlib-dir=$INSTDIR/zlib/
@@ -124,7 +93,6 @@ script: |
install -s $INSTDIR/bin/tor.exe $INSTDIR/Tor/
cp $INSTDIR/share/tor/geoip $INSTDIR/Data/Tor/
# XXX: Geoip files..
- #
cp -a /usr/lib/gcc/i686-w64-mingw32/4.6/libgcc_s_sjlj-1.dll $INSTDIR/Tor/
cp -a /usr/lib/gcc/i686-w64-mingw32/4.6/libssp*.dll $INSTDIR/Tor/
#
diff --git a/gitian/descriptors/windows/gitian-utils.yml b/gitian/descriptors/windows/gitian-utils.yml
new file mode 100644
index 0000000..4e321a0
--- /dev/null
+++ b/gitian/descriptors/windows/gitian-utils.yml
@@ -0,0 +1,145 @@
+---
+name: "utils-windows"
+suites:
+- "precise"
+architectures:
+- "i386"
+packages:
+- "git-core"
+- "unzip"
+- "zip"
+- "autoconf"
+- "autoconf2.13"
+- "automake"
+- "mingw-w64"
+- "faketime"
+- "libtool"
+# XXX: Only needed to dump the spec.
+- "g++-mingw-w64-i686"
+# Needed for compiling gcc.
+- "libmpc-dev"
+reference_datetime: "2000-01-01 00:00:00"
+remotes:
+- "url": "https://github.com/libevent/libevent.git"
+ "dir": "libevent"
+- "url": "https://github.com/madler/zlib.git"
+ "dir": "zlib"
+files:
+# XXX: we need to make this input tarball deterministic :/
+- "mingw-w64-svn-snapshot.zip"
+- "binutils.tar.bz2"
+- "gcc.tar.bz2"
+- "openssl.tar.gz"
+- "versions"
+- "dzip.sh"
+script: |
+ INSTDIR="$HOME/install"
+ source versions
+ export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
+ export FAKETIME=$REFERENCE_DATETIME
+ export TZ=UTC
+ export LC_ALL=C
+ umask 0022
+
+ # Building binutils
+ tar xjf binutils.tar.bz2
+ cd binutils*
+ # XXX: This is needed due to bug 10102.
+ sed 's/= extern_rt_rel_d;/= extern_rt_rel_d;\n memset (extern_rt_rel_d, 0, PE_IDATA5_SIZE);/' -i ld/pe-dll.c
+ ./configure --prefix=$INSTDIR/mingw-w64 --target=i686-w64-mingw32 --disable-multilib
+ make $MAKEOPTS
+ make install
+ # XXX: We currently do this as we are not using our own compiler but only our
+ # own binutils for compiling tor. See bug 10077. Nevertheless, we need both
+ # for cross-compiling Tor Browser.
+ cd $INSTDIR
+ ~/build/dzip.sh binutils-$BINUTILS_VER-win32-utils.zip mingw-w64
+ # Make sure our ld etc. is found and used.
+ export PATH=$INSTDIR/mingw-w64/bin:$PATH
+ cd ~/build
+
+ # Building mingw-w64
+ mkdir -p mingw-w64/mingw-w64-headers32
+ cd mingw-w64
+ unzip ../mingw-w64-svn-snapshot.zip
+ cd mingw-w64-headers32
+ ../mingw-w64-svn/mingw-w64-headers/configure --host=i686-w64-mingw32 --prefix=$INSTDIR/mingw-w64/i686-w64-mingw32 --enable-sdk=all --enable-secure-api --enable-idl
+ make install
+ cd ..
+ cd ..
+ # First stage of gcc compilation
+ mkdir gcc
+ cd gcc
+ tar -xjvf ../gcc.tar.bz2
+ # We don't want to link against msvcrt.dll due to bug 9084.
+ i686-w64-mingw32-g++ -dumpspecs > ~/build/msvcr100.spec
+ sed 's/msvcrt/msvcr100/' -i ~/build/msvcr100.spec
+ # Linking libgcc against msvcrt is hard-coded...
+ sed 's/msvcrt/msvcr100/' -i gcc-*/gcc/config/i386/t-mingw-w32
+ # LDFLAGS_FOR_TARGET does not work for some reason. Thus, we take
+ # CFLAGS_FOR_TARGET.
+ export CFLAGS_FOR_TARGET="-specs=/home/ubuntu/build/msvcr100.spec"
+ gcc-*/configure --prefix=$INSTDIR/mingw-w64 --target=i686-w64-mingw32 --disable-multilib --enable-languages=c,c++
+ # XXX: Using $MAKEOPTS (tested with -j4) breaks the build which does not
+ # happen in a non-gitian environment. This is probably related to bug 11459.
+ make all-gcc
+ make install-gcc
+ cd ..
+ #
+ cd mingw-w64
+ mkdir mingw-w64-crt32 && cd mingw-w64-crt32
+ ../mingw-w64-svn/mingw-w64-crt/configure --host=i686-w64-mingw32 --prefix=$INSTDIR/mingw-w64/i686-w64-mingw32
+ make $MAKEOPTS
+ make install
+ cd ..
+ #
+ mkdir widl32 && cd widl32
+ ../mingw-w64-svn/mingw-w64-tools/widl/configure --prefix=$INSTDIR/mingw-w64 --target=i686-w64-mingw32
+ make $MAKEOPTS
+ make install
+ cd ..
+ cd ..
+ # Second stage of gcc compilation
+ cd gcc
+ make $MAKEOPTS
+ make install
+ cd ..
+
+ # Building zlib
+ export CFLAGS="-mwindows"
+ export LDFLAGS="-mwindows"
+ cd zlib
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
+ make BINARY_PATH=$INSTDIR/zlib/lib INCLUDE_PATH=$INSTDIR/zlib/include LIBRARY_PATH=$INSTDIR/zlib/lib -f win32/Makefile.gcc PREFIX=i686-w64-mingw32- $MAKEOPTS SHARED_MODE=1
+ make BINARY_PATH=$INSTDIR/zlib/lib INCLUDE_PATH=$INSTDIR/zlib/include LIBRARY_PATH=$INSTDIR/zlib/lib -f win32/Makefile.gcc PREFIX=i686-w64-mingw32- $MAKEOPTS SHARED_MODE=1 install
+ cd ..
+
+ # Building Libevent
+ cd libevent
+ ./autogen.sh
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
+ ./configure --disable-static --host=i686-w64-mingw32 --prefix=$INSTDIR/libevent
+ make $MAKEOPTS
+ make install
+ cd ..
+
+ # Building OpenSSL
+ tar xzf openssl.tar.gz
+ cd openssl-*
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
+ # TODO: Add enable-ec_nistp_64_gcc_128 for 64bit Windows.
+ ./Configure -shared --cross-compile-prefix=i686-w64-mingw32- mingw --prefix=$INSTDIR/openssl
+ # Using $MAKEOPTS breaks the build. Might be the issue mentioned on
+ # http://cblfs.cross-lfs.org/index.php/OpenSSL.
+ make
+ make install
+ cd ..
+
+ # Grabbing the remaining results
+ cd $INSTDIR
+ ~/build/dzip.sh mingw-w64-$GCC_VER-win32-utils.zip mingw-w64
+ ~/build/dzip.sh zlib-${ZLIB_TAG#v}-win32-utils.zip zlib
+ ~/build/dzip.sh libevent-${LIBEVENT_TAG#release-}-win32-utils.zip libevent
+ ~/build/dzip.sh openssl-$OPENSSL_VER-win32-utils.zip openssl
+
+ cp *-utils.zip $OUTDIR/
diff --git a/gitian/mkbundle-linux.sh b/gitian/mkbundle-linux.sh
index 4c9de72..574f578 100755
--- a/gitian/mkbundle-linux.sh
+++ b/gitian/mkbundle-linux.sh
@@ -114,7 +114,7 @@ then
./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit libevent=$LIBEVENT_TAG $DESCRIPTOR_DIR/linux/gitian-utils.yml
if [ $? -ne 0 ];
then
- #mv var/build.log ./tor-fail-linux.log.`date +%Y%m%d%H%M%S`
+ #mv var/build.log ./utils-fail-linux.log.`date +%Y%m%d%H%M%S`
exit 1
fi
@@ -129,7 +129,7 @@ then
ln -sf lxml-$LXML_VER-linux32-utils.zip lxml-linux32-utils.zip
ln -sf lxml-$LXML_VER-linux64-utils.zip lxml-linux64-utils.zip
cd ..
- #cp -a result/tor-linux-res.yml $GITIAN_DIR/inputs/
+ #cp -a result/utils-linux-res.yml inputs/
else
echo
echo "****** SKIPPING already built Utilities Component of Linux Bundle (1/5 for Linux) ******"
@@ -164,7 +164,7 @@ then
cp -a build/out/tor-linux*-gbuilt.zip inputs/
cp -a build/out/tor-linux*-debug.zip inputs/
- #cp -a result/tor-linux-res.yml $GITIAN_DIR/inputs/
+ #cp -a result/tor-linux-res.yml inputs/
else
echo
echo "****** SKIPPING already built Tor Component of Linux Bundle (2/5 for Linux) ******"
@@ -188,7 +188,7 @@ then
cp -a build/out/tor-browser-linux*-gbuilt.zip inputs/
cp -a build/out/tor-browser-linux*-debug.zip inputs/
- #cp -a result/torbrowser-linux-res.yml $GITIAN_DIR/inputs/
+ #cp -a result/torbrowser-linux-res.yml inputs/
else
echo
echo "****** SKIPPING already built TorBrowser Component of Linux Bundle (3/5 for Linux) ******"
@@ -211,7 +211,7 @@ then
cp -a build/out/pluggable-transports-linux*-gbuilt.zip inputs/
cp -a build/out/pluggable-transports-linux*-debug.zip inputs/
- #cp -a result/pluggable-transports-linux-res.yml $GITIAN_DIR/inputs/
+ #cp -a result/pluggable-transports-linux-res.yml inputs/
else
echo
echo "****** SKIPPING already built Pluggable Transports Component of Linux Bundle (4/5 for Linux) ******"
diff --git a/gitian/mkbundle-windows.sh b/gitian/mkbundle-windows.sh
index f93fb57..dcb9012 100755
--- a/gitian/mkbundle-windows.sh
+++ b/gitian/mkbundle-windows.sh
@@ -17,7 +17,6 @@ fi
. $VERSIONS_FILE
-
WRAPPER_DIR=$PWD
GITIAN_DIR=$PWD/../../gitian-builder
DESCRIPTOR_DIR=$PWD/descriptors/
@@ -43,7 +42,7 @@ fi
cd $GITIAN_DIR
export PATH=$PATH:$PWD/libexec
-echo "pref(\"torbrowser.version\", \"$TORBROWSER_VERSION-Windows\");" > $GITIAN_DIR/inputs/torbrowser.version
+echo "pref(\"torbrowser.version\", \"$TORBROWSER_VERSION-Windows\");" > $GITIAN_DIR/inputs/torbrowser.version
echo "$TORBROWSER_VERSION" > $GITIAN_DIR/inputs/bare-version
cp -a $WRAPPER_DIR/$VERSIONS_FILE $GITIAN_DIR/inputs/versions
@@ -53,7 +52,7 @@ cp $WRAPPER_DIR/gpg/ubuntu-wine.gpg $GITIAN_DIR/inputs/
cd $WRAPPER_DIR/..
rm -f $GITIAN_DIR/inputs/relativelink-src.zip
-$WRAPPER_DIR/build-helpers/dzip.sh $GITIAN_DIR/inputs/relativelink-src.zip ./RelativeLink/
+$WRAPPER_DIR/build-helpers/dzip.sh $GITIAN_DIR/inputs/relativelink-src.zip ./RelativeLink/
cd ./Bundle-Data/
rm -f $GITIAN_DIR/inputs/tbb-docs.zip
@@ -74,6 +73,12 @@ die_msg() {
exit 1
}
+# Let's preserve the original $FOO for creating proper symlinks after building
+# the utils both if we verify tags and if we don't.
+
+LIBEVENT_TAG_ORIG=$LIBEVENT_TAG
+ZLIB_TAG_ORIG=$ZLIB_TAG
+
if [ "z$VERIFY_TAGS" = "z1" ];
then
./verify-tags.sh $GITIAN_DIR/inputs $VERSIONS_FILE || die_msg "You should run 'make prep' to ensure your inputs are up to date"
@@ -95,32 +100,73 @@ fi
cd $GITIAN_DIR
-if [ ! -f $GITIAN_DIR/inputs/tor-win32-gbuilt.zip ];
+if [ ! -f inputs/binutils-$BINUTILS_VER-win32-utils.zip -o \
+ ! -f inputs/mingw-w64-$GCC_VER-win32-utils.zip -o \
+ ! -f inputs/zlib-${ZLIB_TAG_ORIG#v}-win32-utils.zip -o \
+ ! -f inputs/libevent-${LIBEVENT_TAG_ORIG#release-}-win32-utils.zip -o \
+ ! -f inputs/openssl-$OPENSSL_VER-win32-utils.zip ];
then
- echo
- echo "****** Starting Tor Component of Windows Bundle (1/4 for Windows) ******"
- echo
+ echo
+ echo "****** Starting Utilities Component of Windows Bundle (1/5 for Windows) ******"
+ echo
- ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit zlib=$ZLIB_TAG,libevent=$LIBEVENT_TAG,tor=$TOR_TAG $DESCRIPTOR_DIR/windows/gitian-tor.yml
+ ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit zlib=$ZLIB_TAG,libevent=$LIBEVENT_TAG $DESCRIPTOR_DIR/windows/gitian-utils.yml
+ if [ $? -ne 0 ];
+ then
+ #mv var/build.log ./utils-fail-win.log.`date +%Y%m%d%H%M%S`
+ exit 1
+ fi
+
+ cd inputs
+ cp -a ../build/out/*-utils.zip .
+ ln -sf binutils-$BINUTILS_VER-win32-utils.zip binutils-win32-utils.zip
+ ln -sf mingw-w64-$GCC_VER-win32-utils.zip mingw-w64-win32-utils.zip
+ ln -sf zlib-${ZLIB_TAG_ORIG#v}-win32-utils.zip zlib-win32-utils.zip
+ ln -sf libevent-${LIBEVENT_TAG_ORIG#release-}-win32-utils.zip libevent-win32-utils.zip
+ ln -sf openssl-$OPENSSL_VER-win32-utils.zip openssl-win32-utils.zip
+ cd ..
+ #cp -a result/utils-win-res.yml inputs/
+else
+ echo
+ echo "****** SKIPPING already built Utilities Component of Windows Bundle (1/5 for Windows) ******"
+ echo
+ # We might have built the utilities in the past but maybe the links are
+ # pointing to the wrong version. Refresh them.
+ cd inputs
+ ln -sf binutils-$BINUTILS_VER-win32-utils.zip binutils-win32-utils.zip
+ ln -sf mingw-w64-$GCC_VER-win32-utils.zip mingw-w64-win32-utils.zip
+ ln -sf zlib-${ZLIB_TAG_ORIG#v}-win32-utils.zip zlib-win32-utils.zip
+ ln -sf libevent-${LIBEVENT_TAG_ORIG#release-}-win32-utils.zip libevent-win32-utils.zip
+ ln -sf openssl-$OPENSSL_VER-win32-utils.zip openssl-win32-utils.zip
+ cd ..
+fi
+
+if [ ! -f inputs/tor-win32-gbuilt.zip ];
+then
+ echo
+ echo "****** Starting Tor Component of Windows Bundle (2/5 for Windows) ******"
+ echo
+
+ ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit tor=$TOR_TAG $DESCRIPTOR_DIR/windows/gitian-tor.yml
if [ $? -ne 0 ];
then
#mv var/build.log ./tor-fail-win32.log.`date +%Y%m%d%H%M%S`
exit 1
fi
-
- cp -a build/out/tor-win32-gbuilt.zip $GITIAN_DIR/inputs/
- #cp -a result/tor-windows-res.yml $GITIAN_DIR/inputs/
+
+ cp -a build/out/tor-win32-gbuilt.zip inputs/
+ #cp -a result/tor-windows-res.yml inputs/
else
- echo
- echo "****** SKIPPING already built Tor Component of Windows Bundle (1/4 for Windows) ******"
- echo
+ echo
+ echo "****** SKIPPING already built Tor Component of Windows Bundle (2/5 for Windows) ******"
+ echo
fi
-if [ ! -f $GITIAN_DIR/inputs/tor-browser-win32-gbuilt.zip ];
+if [ ! -f inputs/tor-browser-win32-gbuilt.zip ];
then
- echo
- echo "****** Starting Torbrowser Component of Windows Bundle (2/4 for Windows) ******"
- echo
+ echo
+ echo "****** Starting Torbrowser Component of Windows Bundle (3/5 for Windows) ******"
+ echo
./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit tor-browser=$TORBROWSER_TAG $DESCRIPTOR_DIR/windows/gitian-firefox.yml
if [ $? -ne 0 ];
@@ -129,19 +175,19 @@ then
exit 1
fi
- cp -a build/out/tor-browser-win32-gbuilt.zip $GITIAN_DIR/inputs/
- #cp -a result/torbrowser-windows-res.yml $GITIAN_DIR/inputs/
+ cp -a build/out/tor-browser-win32-gbuilt.zip inputs/
+ #cp -a result/torbrowser-windows-res.yml inputs/
else
- echo
- echo "****** SKIPPING already built Torbrowser Component of Windows Bundle (2/4 for Windows) ******"
- echo
+ echo
+ echo "****** SKIPPING already built Torbrowser Component of Windows Bundle (3/5 for Windows) ******"
+ echo
fi
-if [ ! -f $GITIAN_DIR/inputs/pluggable-transports-win32-gbuilt.zip ];
+if [ ! -f inputs/pluggable-transports-win32-gbuilt.zip ];
then
- echo
- echo "****** Starting Pluggable Transports Component of Windows Bundle (3/4 for Windows) ******"
- echo
+ echo
+ echo "****** Starting Pluggable Transports Component of Windows Bundle (4/5 for Windows) ******"
+ echo
./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit pyptlib=$PYPTLIB_TAG,obfsproxy=$OBFSPROXY_TAG,flashproxy=$FLASHPROXY_TAG,fteproxy=$FTEPROXY_TAG,txsocksx=$TXSOCKSX_TAG $DESCRIPTOR_DIR/windows/gitian-pluggable-transports.yml
if [ $? -ne 0 ];
@@ -150,42 +196,39 @@ then
exit 1
fi
- cp -a build/out/pluggable-transports-win32-gbuilt.zip $GITIAN_DIR/inputs/
- #cp -a result/pluggable-transports-windows-res.yml $GITIAN_DIR/inputs/
+ cp -a build/out/pluggable-transports-win32-gbuilt.zip inputs/
+ #cp -a result/pluggable-transports-windows-res.yml inputs/
else
- echo
- echo "****** SKIPPING already built Pluggable Transports Component of Windows Bundle (3/4 for Windows) ******"
- echo
+ echo
+ echo "****** SKIPPING already built Pluggable Transports Component of Windows Bundle (4/5 for Windows) ******"
+ echo
fi
-if [ ! -f $GITIAN_DIR/inputs/bundle-windows.gbuilt ];
-then
- echo
- echo "****** Starting Bundling+Localization of Windows Bundle (4/4 for Windows) ******"
- echo
-
- cp -a $WRAPPER_DIR/$VERSIONS_FILE $GITIAN_DIR/inputs/versions
+if [ ! -f inputs/bundle-windows.gbuilt ];
+then
+ echo
+ echo "****** Starting Bundling+Localization of Windows Bundle (5/5 for Windows) ******"
+ echo
+
cd $WRAPPER_DIR && ./record-inputs.sh $VERSIONS_FILE && cd $GITIAN_DIR
-
+
./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit https-everywhere=$HTTPSE_TAG,torbutton=$TORBUTTON_TAG,tor-launcher=$TORLAUNCHER_TAG,tbb-windows-installer=$NSIS_TAG $DESCRIPTOR_DIR/windows/gitian-bundle.yml
if [ $? -ne 0 ];
then
#mv var/build.log ./bundle-fail-win32.log.`date +%Y%m%d%H%M%S`
exit 1
fi
-
+
mkdir -p $WRAPPER_DIR/$TORBROWSER_VERSION/
cp -a build/out/*.exe $WRAPPER_DIR/$TORBROWSER_VERSION/ || exit 1
- touch $GITIAN_DIR/inputs/bundle-windows.gbuilt
+ touch inputs/bundle-windows.gbuilt
else
- echo
- echo "****** SKIPPING Bundling+Localization of Windows Bundle (4/4 for Windows) ******"
- echo
+ echo
+ echo "****** SKIPPING Bundling+Localization of Windows Bundle (5/5 for Windows) ******"
+ echo
fi
-echo
+echo
echo "****** Windows Bundle complete ******"
-echo
-
-# FIXME: docs
+echo
1
0

[tor-browser/tor-browser-24.5.0esr-1] fixup! Tor Browser's Firefox preference overrides.
by mikeperry@torproject.org 08 May '14
by mikeperry@torproject.org 08 May '14
08 May '14
commit 90a58a42063dcd56e29435656237bf4b976d83b8
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Thu May 8 05:51:11 2014 -0700
fixup! Tor Browser's Firefox preference overrides.
Bug 11817: Don't send startup time information to Mozilla.
---
browser/app/profile/000-tor-browser.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/browser/app/profile/000-tor-browser.js b/browser/app/profile/000-tor-browser.js
index 4198843..b6b9252 100644
--- a/browser/app/profile/000-tor-browser.js
+++ b/browser/app/profile/000-tor-browser.js
@@ -49,6 +49,7 @@ pref("browser.syncPromoViewsLeftMap", "{\"addons\":0, \"passwords\":0, \"bookmar
pref("services.sync.engine.prefs", false); // Never sync prefs, addons, or tabs with other browsers
pref("services.sync.engine.addons", false);
pref("services.sync.engine.tabs", false);
+pref("extensions.getAddons.cache.enabled", false); // https://blog.mozilla.org/addons/how-to-opt-out-of-add-on-metadata-updates/
// Fingerprinting
pref("webgl.min_capability_mode", true);
1
0

[tor-browser/tor-browser-24.5.0esr-1] fixup! Tor Browser's official .mozconfigs.
by mikeperry@torproject.org 08 May '14
by mikeperry@torproject.org 08 May '14
08 May '14
commit 5de848c3020ce157c8743af710dea282f22202d4
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Thu May 8 05:48:10 2014 -0700
fixup! Tor Browser's official .mozconfigs.
Bug 11816: We don't need to specify a path to MIDL anymore.
---
.mozconfig-mingw | 1 -
1 file changed, 1 deletion(-)
diff --git a/.mozconfig-mingw b/.mozconfig-mingw
index 2cfcf09..78f9a06 100644
--- a/.mozconfig-mingw
+++ b/.mozconfig-mingw
@@ -1,6 +1,5 @@
#Specify the cross compile
export CROSS_COMPILE=1
-export MIDL=/usr/bin/i686-w64-mingw32-widl
ac_add_options --enable-application=browser
ac_add_options --target=i686-w64-mingw32
1
0

[tor-browser-bundle/master] Revert stable twisted hash back to 13.1.0.
by mikeperry@torproject.org 08 May '14
by mikeperry@torproject.org 08 May '14
08 May '14
commit 74f1f46a0267e75ee4fcfa27b41ed9b07ffc0290
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Thu May 8 04:54:06 2014 -0700
Revert stable twisted hash back to 13.1.0.
---
gitian/versions | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gitian/versions b/gitian/versions
index c436fe4..8f939f7 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -81,7 +81,7 @@ PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
ARGPARSE_HASH=ddaf4b0a618335a32b6664d4ae038a1de8fbada3b25033f9021510ed2b3941a4
PYYAML_HASH=c36c938a872e5ff494938b33b14aaa156cb439ec67548fcab3535bb78b0846e8
ZOPEINTERFACE_HASH=1a7c84716bbd9981915b64a81d8a3f076a5934a8c8df4224655469b3564940cc
-TWISTED_HASH=095175638c019ac7c0604f4c291724a16ff1acd062e181b01293bf4dcbc62cf3
+TWISTED_HASH=110e957dd8fc4c6eaba8abe4f0477e60b2873e3cf1c260325863fd2ef69341c6
M2CRYPTO_HASH=25b94498505c2d800ee465db0cc1aff097b1615adc3ac042a1c85ceca264fc0a
PY2EXE_HASH=610a8800de3d973ed5ed4ac505ab42ad058add18a68609ac09e6cf3598ef056c
SETUPTOOLS_HASH=75d288687066ed124311d6ca5f40ffa92a0e81adcd7fff318c6e84082713cf39
1
0

[tor-browser-bundle/master] Add (unused) parsley and txsocksx vars so 'stable' can still build.
by mikeperry@torproject.org 08 May '14
by mikeperry@torproject.org 08 May '14
08 May '14
commit ca0939201a199d95cb522c0ea3eba221227e1901
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Thu May 8 04:46:36 2014 -0700
Add (unused) parsley and txsocksx vars so 'stable' can still build.
It doesn't use them, but the fetch and verify scripts expect them.
---
gitian/versions | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/gitian/versions b/gitian/versions
index c3faa7b..c436fe4 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -20,6 +20,7 @@ OBFSPROXY_TAG=obfsproxy-0.2.4
FLASHPROXY_TAG=1.6
FTEPROXY_TAG=55d81d2f0a4fab759c1ed8aca78dd3a5db6e75c6 # unsigned 0.2.13
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
+TXSOCKSX_TAG=216eb0894a1755872f4789f9458aa6cf543b8433 # unsigned habnabit/1.13.0.2
GITIAN_TAG=tor-browser-builder-3.x-5
@@ -38,6 +39,7 @@ M2CRYPTO_VER=0.21.1
PY2EXE_VER=0.6.9
SETUPTOOLS_VER=1.4
LXML_VER=3.3.5
+PARSLEY_VER=1.2
HTTPSE_VER=3.5.1
## File names for the source packages
@@ -63,6 +65,7 @@ M2CRYPTO_PACKAGE=M2Crypto-${M2CRYPTO_VER}.tar.gz
PY2EXE_PACKAGE=py2exe-${PY2EXE_VER}.win32-py2.7.exe
SETUPTOOLS_PACKAGE=setuptools-${SETUPTOOLS_VER}.tar.gz
LXML_PACKAGE=lxml-${LXML_VER}.tar.gz
+PARSLEY_PACKAGE=Parsley-${PARSLEY_VER}.tar.gz
# Hashes for packages with weak sigs or no sigs
OPENSSL_HASH=53cb818c3b90e507a8348f4f5eaedb05d8bfe5358aabb508b7263cc670c3e028
@@ -78,10 +81,11 @@ PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
ARGPARSE_HASH=ddaf4b0a618335a32b6664d4ae038a1de8fbada3b25033f9021510ed2b3941a4
PYYAML_HASH=c36c938a872e5ff494938b33b14aaa156cb439ec67548fcab3535bb78b0846e8
ZOPEINTERFACE_HASH=1a7c84716bbd9981915b64a81d8a3f076a5934a8c8df4224655469b3564940cc
-TWISTED_HASH=110e957dd8fc4c6eaba8abe4f0477e60b2873e3cf1c260325863fd2ef69341c6
+TWISTED_HASH=095175638c019ac7c0604f4c291724a16ff1acd062e181b01293bf4dcbc62cf3
M2CRYPTO_HASH=25b94498505c2d800ee465db0cc1aff097b1615adc3ac042a1c85ceca264fc0a
PY2EXE_HASH=610a8800de3d973ed5ed4ac505ab42ad058add18a68609ac09e6cf3598ef056c
SETUPTOOLS_HASH=75d288687066ed124311d6ca5f40ffa92a0e81adcd7fff318c6e84082713cf39
+PARSLEY_HASH=50d30cee70770fd44db7cea421cb2fb75af247c3a1cd54885c06b30a7c85dd23
## Non-git package URLs
OPENSSL_URL=https://www.openssl.org/source/${OPENSSL_PACKAGE}
@@ -105,3 +109,4 @@ M2CRYPTO_URL=https://pypi.python.org/packages/source/M/M2Crypto/${M2CRYPTO_…
PY2EXE_URL=http://softlayer-dal.dl.sourceforge.net/project/py2exe/py2exe/${…
SETUPTOOLS_URL=https://pypi.python.org/packages/source/s/setuptools/${SETUP…
LXML_URL=https://pypi.python.org/packages/source/l/lxml/${LXML_PACKAGE}
+PARSLEY_URL=https://pypi.python.org/packages/source/P/Parsley/${PARSLEY_PACKAGE}
1
0

[tor-browser-bundle/master] Document txsocksx commit version.
by mikeperry@torproject.org 08 May '14
by mikeperry@torproject.org 08 May '14
08 May '14
commit ca9d7cc1990d9bf75f4a9819c4dc9014e934583b
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Thu May 8 04:43:21 2014 -0700
Document txsocksx commit version.
---
gitian/versions.beta | 2 +-
gitian/versions.nightly | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/gitian/versions.beta b/gitian/versions.beta
index d10c87a..1f30a41 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -20,7 +20,7 @@ OBFSPROXY_TAG=obfsproxy-0.2.9
FLASHPROXY_TAG=1.6
FTEPROXY_TAG=55d81d2f0a4fab759c1ed8aca78dd3a5db6e75c6 # unsigned 0.2.13
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
-TXSOCKSX_TAG=216eb0894a1755872f4789f9458aa6cf543b8433
+TXSOCKSX_TAG=216eb0894a1755872f4789f9458aa6cf543b8433 # unsigned habnabit/1.13.0.2
GITIAN_TAG=tor-browser-builder-3.x-5
diff --git a/gitian/versions.nightly b/gitian/versions.nightly
index 635fa70..93ee6a7 100755
--- a/gitian/versions.nightly
+++ b/gitian/versions.nightly
@@ -20,7 +20,7 @@ OBFSPROXY_TAG=master
FLASHPROXY_TAG=master
FTEPROXY_TAG=master
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
-TXSOCKSX_TAG=216eb0894a1755872f4789f9458aa6cf543b8433
+TXSOCKSX_TAG=216eb0894a1755872f4789f9458aa6cf543b8433 # unsigned habnabit/1.13.0.2
GITIAN_TAG=tor-browser-builder-3.x-5
1
0

[tor-browser-bundle/master] Extract Libevent version properly; code clean-up.
by gk@torproject.org 08 May '14
by gk@torproject.org 08 May '14
08 May '14
commit b0e00cbdc9af37becdb4fba568e9fb7218fdda03
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu May 8 12:23:55 2014 +0000
Extract Libevent version properly; code clean-up.
---
gitian/descriptors/linux/gitian-utils.yml | 7 +++----
gitian/mkbundle-linux.sh | 14 ++++++--------
2 files changed, 9 insertions(+), 12 deletions(-)
diff --git a/gitian/descriptors/linux/gitian-utils.yml b/gitian/descriptors/linux/gitian-utils.yml
index 427e69b..9bbae76 100644
--- a/gitian/descriptors/linux/gitian-utils.yml
+++ b/gitian/descriptors/linux/gitian-utils.yml
@@ -89,14 +89,13 @@ script: |
$INSTDIR/python/bin/python2.7 setup.py build
cd build/lib*
~/build/dzip.sh lxml-$LXML_VER-linux$GBUILD_BITS-utils.zip lxml
- cp *-utils.zip $OUTDIR
+ cp *utils.zip $OUTDIR
cd ../../../
# Grabbing the remaining results
cd $INSTDIR
~/build/dzip.sh openssl-$OPENSSL_VER-linux$GBUILD_BITS-utils.zip openssl
- # TODO: It is not guaranteed we have a X.X.XX-style version.
- ~/build/dzip.sh libevent-${LIBEVENT_TAG:8:6}-linux$GBUILD_BITS-utils.zip libevent
+ ~/build/dzip.sh libevent-${LIBEVENT_TAG#release-}-linux$GBUILD_BITS-utils.zip libevent
~/build/dzip.sh python-$PYTHON_VER-linux$GBUILD_BITS-utils.zip python
- cp $INSTDIR/*-utils.zip $OUTDIR/
+ cp *utils.zip $OUTDIR/
diff --git a/gitian/mkbundle-linux.sh b/gitian/mkbundle-linux.sh
index d6186d2..4c9de72 100755
--- a/gitian/mkbundle-linux.sh
+++ b/gitian/mkbundle-linux.sh
@@ -100,8 +100,8 @@ cd $GITIAN_DIR
if [ ! -f inputs/openssl-$OPENSSL_VER-linux32-utils.zip -o \
! -f inputs/openssl-$OPENSSL_VER-linux64-utils.zip -o \
- ! -f inputs/libevent-${LIBEVENT_TAG_ORIG:8:6}-linux32-utils.zip -o \
- ! -f inputs/libevent-${LIBEVENT_TAG_ORIG:8:6}-linux64-utils.zip -o \
+ ! -f inputs/libevent-${LIBEVENT_TAG_ORIG#release-}-linux32-utils.zip -o \
+ ! -f inputs/libevent-${LIBEVENT_TAG_ORIG#release-}-linux64-utils.zip -o \
! -f inputs/python-$PYTHON_VER-linux32-utils.zip -o \
! -f inputs/python-$PYTHON_VER-linux64-utils.zip -o \
! -f inputs/lxml-$LXML_VER-linux32-utils.zip -o \
@@ -122,9 +122,8 @@ then
cp -a ../build/out/*-utils.zip .
ln -sf openssl-$OPENSSL_VER-linux32-utils.zip openssl-linux32-utils.zip
ln -sf openssl-$OPENSSL_VER-linux64-utils.zip openssl-linux64-utils.zip
- # TODO: It is not guaranteed we have a X.X.XX-style version.
- ln -sf libevent-${LIBEVENT_TAG_ORIG:8:6}-linux32-utils.zip libevent-linux32-utils.zip
- ln -sf libevent-${LIBEVENT_TAG_ORIG:8:6}-linux64-utils.zip libevent-linux64-utils.zip
+ ln -sf libevent-${LIBEVENT_TAG_ORIG#release-}-linux32-utils.zip libevent-linux32-utils.zip
+ ln -sf libevent-${LIBEVENT_TAG_ORIG#release-}-linux64-utils.zip libevent-linux64-utils.zip
ln -sf python-$PYTHON_VER-linux32-utils.zip python-linux32-utils.zip
ln -sf python-$PYTHON_VER-linux64-utils.zip python-linux64-utils.zip
ln -sf lxml-$LXML_VER-linux32-utils.zip lxml-linux32-utils.zip
@@ -140,9 +139,8 @@ else
cd inputs
ln -sf openssl-$OPENSSL_VER-linux32-utils.zip openssl-linux32-utils.zip
ln -sf openssl-$OPENSSL_VER-linux64-utils.zip openssl-linux64-utils.zip
- # TODO: It is not guaranteed we have a X.X.XX-style version.
- ln -sf libevent-${LIBEVENT_TAG_ORIG:8:6}-linux32-utils.zip libevent-linux32-utils.zip
- ln -sf libevent-${LIBEVENT_TAG_ORIG:8:6}-linux64-utils.zip libevent-linux64-utils.zip
+ ln -sf libevent-${LIBEVENT_TAG_ORIG#release-}-linux32-utils.zip libevent-linux32-utils.zip
+ ln -sf libevent-${LIBEVENT_TAG_ORIG#release-}-linux64-utils.zip libevent-linux64-utils.zip
ln -sf python-$PYTHON_VER-linux32-utils.zip python-linux32-utils.zip
ln -sf python-$PYTHON_VER-linux64-utils.zip python-linux64-utils.zip
ln -sf lxml-$LXML_VER-linux32-utils.zip lxml-linux32-utils.zip
1
0

[tor-browser-bundle/master] Rebased Yawning's patch to fix build bustage.
by gk@torproject.org 08 May '14
by gk@torproject.org 08 May '14
08 May '14
commit c4554e3f021c66729cebaff5c320da61cfc7b895
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu May 8 10:44:55 2014 +0000
Rebased Yawning's patch to fix build bustage.
---
gitian/patches/bug8402-master.patch | 112 ++++++++++++++++++-----------------
1 file changed, 58 insertions(+), 54 deletions(-)
diff --git a/gitian/patches/bug8402-master.patch b/gitian/patches/bug8402-master.patch
index 33d6e20..d5e7b37 100644
--- a/gitian/patches/bug8402-master.patch
+++ b/gitian/patches/bug8402-master.patch
@@ -1,4 +1,4 @@
-From 7476a5c00aabdb2b2b4cd29f3029a7fa3afc657d Mon Sep 17 00:00:00 2001
+From 2c9bcdf79a9ba98b79feba10a8000f5609de36e6 Mon Sep 17 00:00:00 2001
From: Yawning Angel <yawning(a)schwanenlied.me>
Date: Tue, 25 Mar 2014 07:21:22 +0000
Subject: [PATCH 1/5] Allow ClientTransportPlugins to use proxies
@@ -17,10 +17,10 @@ This fixes bug #8402.
5 files changed, 258 insertions(+), 27 deletions(-)
diff --git a/src/or/config.c b/src/or/config.c
-index da6aec0..91e8410 100644
+index 1faf138..614e779 100644
--- a/src/or/config.c
+++ b/src/or/config.c
-@@ -535,7 +535,9 @@ static int options_transition_affects_descriptor(
+@@ -536,7 +536,9 @@ static int options_transition_affects_descriptor(
const or_options_t *old_options, const or_options_t *new_options);
static int check_nickname_list(char **lst, const char *name, char **msg);
@@ -31,7 +31,7 @@ index da6aec0..91e8410 100644
static int parse_server_transport_line(const char *line, int validate_only);
static char *get_bindaddr_from_transport_listen_line(const char *line,
-@@ -1399,7 +1401,7 @@ options_act(const or_options_t *old_options)
+@@ -1426,7 +1428,7 @@ options_act(const or_options_t *old_options)
pt_prepare_proxy_list_for_config_read();
if (options->ClientTransportPlugin) {
for (cl = options->ClientTransportPlugin; cl; cl = cl->next) {
@@ -40,7 +40,7 @@ index da6aec0..91e8410 100644
log_warn(LD_BUG,
"Previously validated ClientTransportPlugin line "
"could not be added!");
-@@ -3120,11 +3122,11 @@ options_validate(or_options_t *old_options, or_options_t *options,
+@@ -3169,11 +3171,11 @@ options_validate(or_options_t *old_options, or_options_t *options,
}
}
@@ -55,7 +55,7 @@ index da6aec0..91e8410 100644
/* Check if the proxies will give surprising behavior. */
if (options->HTTPProxy && !(options->Socks4Proxy ||
-@@ -3237,7 +3239,7 @@ options_validate(or_options_t *old_options, or_options_t *options,
+@@ -3284,7 +3286,7 @@ options_validate(or_options_t *old_options, or_options_t *options,
}
for (cl = options->ClientTransportPlugin; cl; cl = cl->next) {
@@ -64,7 +64,7 @@ index da6aec0..91e8410 100644
REJECT("Transport line did not parse. See logs for details.");
}
-@@ -4609,7 +4611,8 @@ parse_bridge_line(const char *line)
+@@ -4734,7 +4736,8 @@ parse_bridge_line(const char *line)
* our internal transport list.
* - If it's a managed proxy line, launch the managed proxy. */
static int
@@ -74,7 +74,7 @@ index da6aec0..91e8410 100644
{
smartlist_t *items = NULL;
int r;
-@@ -4700,6 +4703,13 @@ parse_client_transport_line(const char *line, int validate_only)
+@@ -4825,6 +4828,13 @@ parse_client_transport_line(const char *line, int validate_only)
pt_kickstart_client_proxy(transport_list, proxy_argv);
}
} else { /* external */
@@ -89,7 +89,7 @@ index da6aec0..91e8410 100644
log_warn(LD_CONFIG, "You can't have an external proxy with "
"more than one transports.");
diff --git a/src/or/connection.c b/src/or/connection.c
-index 8c697d6..93d164c 100644
+index 3cc4e09..a9c5596 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -86,6 +86,8 @@ static int connection_read_https_proxy_response(connection_t *conn);
@@ -101,7 +101,7 @@ index 8c697d6..93d164c 100644
/** The last addresses that our network interface seemed to have been
* binding to. We use this as one way to detect when our IP changes.
-@@ -1671,14 +1673,14 @@ get_proxy_type(void)
+@@ -1689,14 +1691,14 @@ get_proxy_type(void)
{
const or_options_t *options = get_options();
@@ -119,7 +119,7 @@ index 8c697d6..93d164c 100644
else
return PROXY_NONE;
}
-@@ -4733,6 +4735,35 @@ assert_connection_ok(connection_t *conn, time_t now)
+@@ -4771,6 +4773,35 @@ assert_connection_ok(connection_t *conn, time_t now)
}
/** Fills <b>addr</b> and <b>port</b> with the details of the global
@@ -155,7 +155,7 @@ index 8c697d6..93d164c 100644
* proxy server we are using.
* <b>conn</b> contains the connection we are using the proxy for.
*
-@@ -4744,6 +4775,16 @@ get_proxy_addrport(tor_addr_t *addr, uint16_t *port, int *proxy_type,
+@@ -4782,6 +4813,16 @@ get_proxy_addrport(tor_addr_t *addr, uint16_t *port, int *proxy_type,
{
const or_options_t *options = get_options();
@@ -172,7 +172,7 @@ index 8c697d6..93d164c 100644
if (options->HTTPSProxy) {
tor_addr_copy(addr, &options->HTTPSProxyAddr);
*port = options->HTTPSProxyPort;
-@@ -4759,19 +4800,8 @@ get_proxy_addrport(tor_addr_t *addr, uint16_t *port, int *proxy_type,
+@@ -4797,19 +4838,8 @@ get_proxy_addrport(tor_addr_t *addr, uint16_t *port, int *proxy_type,
*port = options->Socks5ProxyPort;
*proxy_type = PROXY_SOCKS5;
return 0;
@@ -193,12 +193,12 @@ index 8c697d6..93d164c 100644
+ return get_bridge_pt_addrport(addr, port, proxy_type, conn);
}
- *proxy_type = PROXY_NONE;
+ tor_addr_make_unspec(addr);
diff --git a/src/or/transports.c b/src/or/transports.c
-index 8b4a118..8e82a41 100644
+index dc30754..b810315 100644
--- a/src/or/transports.c
+++ b/src/or/transports.c
-@@ -122,6 +122,8 @@ static INLINE void free_execve_args(char **arg);
+@@ -124,6 +124,8 @@ static INLINE void free_execve_args(char **arg);
#define PROTO_SMETHOD_ERROR "SMETHOD-ERROR"
#define PROTO_CMETHODS_DONE "CMETHODS DONE"
#define PROTO_SMETHODS_DONE "SMETHODS DONE"
@@ -207,7 +207,7 @@ index 8b4a118..8e82a41 100644
/** The first and only supported - at the moment - configuration
protocol version. */
-@@ -437,6 +439,17 @@ add_transport_to_proxy(const char *transport, managed_proxy_t *mp)
+@@ -439,6 +441,17 @@ add_transport_to_proxy(const char *transport, managed_proxy_t *mp)
static int
proxy_needs_restart(const managed_proxy_t *mp)
{
@@ -225,7 +225,7 @@ index 8b4a118..8e82a41 100644
/* mp->transport_to_launch is populated with the names of the
transports that must be launched *after* the SIGHUP.
mp->transports is populated with the transports that were
-@@ -457,10 +470,10 @@ proxy_needs_restart(const managed_proxy_t *mp)
+@@ -459,10 +472,10 @@ proxy_needs_restart(const managed_proxy_t *mp)
} SMARTLIST_FOREACH_END(t);
@@ -240,7 +240,7 @@ index 8b4a118..8e82a41 100644
}
/** Managed proxy <b>mp</b> must be restarted. Do all the necessary
-@@ -491,6 +504,11 @@ proxy_prepare_for_restart(managed_proxy_t *mp)
+@@ -493,6 +506,11 @@ proxy_prepare_for_restart(managed_proxy_t *mp)
SMARTLIST_FOREACH(mp->transports, transport_t *, t, transport_free(t));
smartlist_clear(mp->transports);
@@ -252,7 +252,7 @@ index 8b4a118..8e82a41 100644
/* flag it as an infant proxy so that it gets launched on next tick */
mp->conf_state = PT_PROTO_INFANT;
unconfigured_proxies_n++;
-@@ -725,12 +743,52 @@ managed_proxy_destroy(managed_proxy_t *mp,
+@@ -727,12 +745,52 @@ managed_proxy_destroy(managed_proxy_t *mp,
/* free the argv */
free_execve_args(mp->argv);
@@ -305,7 +305,7 @@ index 8b4a118..8e82a41 100644
/** Handle a configured or broken managed proxy <b>mp</b>. */
static void
handle_finished_proxy(managed_proxy_t *mp)
-@@ -743,6 +801,12 @@ handle_finished_proxy(managed_proxy_t *mp)
+@@ -745,6 +803,12 @@ handle_finished_proxy(managed_proxy_t *mp)
managed_proxy_destroy(mp, 0); /* destroy it but don't terminate */
break;
case PT_PROTO_CONFIGURED: /* if configured correctly: */
@@ -318,7 +318,7 @@ index 8b4a118..8e82a41 100644
register_proxy(mp); /* register its transports */
mp->conf_state = PT_PROTO_COMPLETED; /* and mark it as completed. */
break;
-@@ -860,6 +924,22 @@ handle_proxy_line(const char *line, managed_proxy_t *mp)
+@@ -862,6 +926,22 @@ handle_proxy_line(const char *line, managed_proxy_t *mp)
goto err;
return;
@@ -341,7 +341,7 @@ index 8b4a118..8e82a41 100644
} else if (!strcmpstart(line, SPAWN_ERROR_MESSAGE)) {
/* managed proxy launch failed: parse error message to learn why. */
int retval, child_state, saved_errno;
-@@ -1126,6 +1206,21 @@ parse_cmethod_line(const char *line, managed_proxy_t *mp)
+@@ -1128,6 +1208,21 @@ parse_cmethod_line(const char *line, managed_proxy_t *mp)
return r;
}
@@ -363,7 +363,7 @@ index 8b4a118..8e82a41 100644
/** Return a newly allocated string that tor should place in
* TOR_PT_SERVER_TRANSPORT_OPTIONS while configuring the server
* manged proxy in <b>mp</b>. Return NULL if no such options are found. */
-@@ -1286,6 +1381,14 @@ create_managed_proxy_environment(const managed_proxy_t *mp)
+@@ -1292,6 +1387,14 @@ create_managed_proxy_environment(const managed_proxy_t *mp)
} else {
smartlist_add_asprintf(envs, "TOR_PT_EXTENDED_SERVER_PORT=");
}
@@ -378,7 +378,7 @@ index 8b4a118..8e82a41 100644
}
SMARTLIST_FOREACH_BEGIN(envs, const char *, env_var) {
-@@ -1318,6 +1421,7 @@ managed_proxy_create(const smartlist_t *transport_list,
+@@ -1324,6 +1427,7 @@ managed_proxy_create(const smartlist_t *transport_list,
mp->is_server = is_server;
mp->argv = proxy_argv;
mp->transports = smartlist_new();
@@ -387,7 +387,7 @@ index 8b4a118..8e82a41 100644
mp->transports_to_launch = smartlist_new();
SMARTLIST_FOREACH(transport_list, const char *, transport,
diff --git a/src/or/transports.h b/src/or/transports.h
-index 7b524f2..5b8144b 100644
+index 1365ead..bc2331d 100644
--- a/src/or/transports.h
+++ b/src/or/transports.h
@@ -81,6 +81,9 @@ typedef struct {
@@ -418,11 +418,11 @@ index 7b524f2..5b8144b 100644
#endif
diff --git a/src/test/test_pt.c b/src/test/test_pt.c
-index 3277921..ada8dbe 100644
+index f71627d..788d420 100644
--- a/src/test/test_pt.c
+++ b/src/test/test_pt.c
-@@ -435,6 +435,85 @@ test_pt_configure_proxy(void *arg)
- }
+@@ -450,6 +450,85 @@ test_pt_configure_proxy(void *arg)
+ tor_free(mp);
}
+/* Test the get_pt_proxy_uri() function. */
@@ -507,7 +507,7 @@ index 3277921..ada8dbe 100644
#define PT_LEGACY(name) \
{ #name, legacy_test_helper, 0, &legacy_setup, test_pt_ ## name }
-@@ -447,6 +526,8 @@ struct testcase_t pt_tests[] = {
+@@ -462,6 +541,8 @@ struct testcase_t pt_tests[] = {
NULL, NULL },
{ "configure_proxy",test_pt_configure_proxy, TT_FORK,
NULL, NULL },
@@ -517,9 +517,10 @@ index 3277921..ada8dbe 100644
};
--
-1.8.1.2
+2.0.0.rc0
+
-From bc59556e87a0b0ebaf2adfc57147522f05b3f974 Mon Sep 17 00:00:00 2001
+From d1f3631335cc2757e2319055348a1614a00fa7b2 Mon Sep 17 00:00:00 2001
From: Yawning Angel <yawning(a)schwanenlied.me>
Date: Mon, 14 Apr 2014 21:51:34 +0000
Subject: [PATCH 2/5] Fixed the test build with --enable-gcc-warnings
@@ -529,10 +530,10 @@ Subject: [PATCH 2/5] Fixed the test build with --enable-gcc-warnings
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/src/test/test_pt.c b/src/test/test_pt.c
-index ada8dbe..ac604eb 100644
+index 788d420..cfbd084 100644
--- a/src/test/test_pt.c
+++ b/src/test/test_pt.c
-@@ -449,7 +449,7 @@ test_get_pt_proxy_uri(void *arg)
+@@ -464,7 +464,7 @@ test_get_pt_proxy_uri(void *arg)
tt_assert(uri == NULL);
/* Test with a SOCKS4 proxy. */
@@ -541,7 +542,7 @@ index ada8dbe..ac604eb 100644
ret = tor_addr_port_lookup(options->Socks4Proxy,
&options->Socks4ProxyAddr,
&options->Socks4ProxyPort);
-@@ -457,11 +457,10 @@ test_get_pt_proxy_uri(void *arg)
+@@ -472,11 +472,10 @@ test_get_pt_proxy_uri(void *arg)
uri = get_pt_proxy_uri();
tt_str_op(uri, ==, "socks4a://192.0.2.1:1080");
tor_free(uri);
@@ -555,7 +556,7 @@ index ada8dbe..ac604eb 100644
ret = tor_addr_port_lookup(options->Socks5Proxy,
&options->Socks5ProxyAddr,
&options->Socks5ProxyPort);
-@@ -471,16 +470,17 @@ test_get_pt_proxy_uri(void *arg)
+@@ -486,16 +485,17 @@ test_get_pt_proxy_uri(void *arg)
tor_free(uri);
/* Test with a SOCKS5 proxy, with username/password. */
@@ -578,7 +579,7 @@ index ada8dbe..ac604eb 100644
ret = tor_addr_port_lookup(options->HTTPSProxy,
&options->HTTPSProxyAddr,
&options->HTTPSProxyPort);
-@@ -490,15 +490,15 @@ test_get_pt_proxy_uri(void *arg)
+@@ -505,15 +505,15 @@ test_get_pt_proxy_uri(void *arg)
tor_free(uri);
/* Test with a HTTPS proxy, with authenticator. */
@@ -598,7 +599,7 @@ index ada8dbe..ac604eb 100644
ret = tor_addr_port_lookup(options->Socks4Proxy,
&options->Socks4ProxyAddr,
&options->Socks4ProxyPort);
-@@ -506,7 +506,7 @@ test_get_pt_proxy_uri(void *arg)
+@@ -521,7 +521,7 @@ test_get_pt_proxy_uri(void *arg)
uri = get_pt_proxy_uri();
tt_str_op(uri, ==, "socks4a://[2001:db8::1]:1080");
tor_free(uri);
@@ -608,9 +609,10 @@ index ada8dbe..ac604eb 100644
done:
if (uri)
--
-1.8.1.2
+2.0.0.rc0
-From 3c991178926f39ffacef1d86e403f5d360d30404 Mon Sep 17 00:00:00 2001
+
+From e2b63cda85ba08b1675c7cf376d21700ca34bcf5 Mon Sep 17 00:00:00 2001
From: Yawning Angel <yawning(a)schwanenlied.me>
Date: Thu, 1 May 2014 03:30:09 +0000
Subject: [PATCH 3/5] Remove get_bridge_pt_addrport().
@@ -627,7 +629,7 @@ being used, it is PT/proxy-less.
1 file changed, 12 insertions(+), 34 deletions(-)
diff --git a/src/or/connection.c b/src/or/connection.c
-index 93d164c..9a766d6 100644
+index a9c5596..4bb2683 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -86,8 +86,6 @@ static int connection_read_https_proxy_response(connection_t *conn);
@@ -639,7 +641,7 @@ index 93d164c..9a766d6 100644
/** The last addresses that our network interface seemed to have been
* binding to. We use this as one way to detect when our IP changes.
-@@ -4735,35 +4733,6 @@ assert_connection_ok(connection_t *conn, time_t now)
+@@ -4773,35 +4771,6 @@ assert_connection_ok(connection_t *conn, time_t now)
}
/** Fills <b>addr</b> and <b>port</b> with the details of the global
@@ -675,7 +677,7 @@ index 93d164c..9a766d6 100644
* proxy server we are using.
* <b>conn</b> contains the connection we are using the proxy for.
*
-@@ -4781,8 +4750,19 @@ get_proxy_addrport(tor_addr_t *addr, uint16_t *port, int *proxy_type,
+@@ -4819,8 +4788,19 @@ get_proxy_addrport(tor_addr_t *addr, uint16_t *port, int *proxy_type,
* the config to have unused ClientTransportPlugin entries.
*/
if (options->ClientTransportPlugin) {
@@ -696,7 +698,7 @@ index 93d164c..9a766d6 100644
}
if (options->HTTPSProxy) {
-@@ -4800,8 +4780,6 @@ get_proxy_addrport(tor_addr_t *addr, uint16_t *port, int *proxy_type,
+@@ -4838,8 +4818,6 @@ get_proxy_addrport(tor_addr_t *addr, uint16_t *port, int *proxy_type,
*port = options->Socks5ProxyPort;
*proxy_type = PROXY_SOCKS5;
return 0;
@@ -704,11 +706,12 @@ index 93d164c..9a766d6 100644
- return get_bridge_pt_addrport(addr, port, proxy_type, conn);
}
- *proxy_type = PROXY_NONE;
+ tor_addr_make_unspec(addr);
--
-1.8.1.2
+2.0.0.rc0
+
-From c4c41bb8e31ab39f2c7fe3c8f11ee727a65c3e09 Mon Sep 17 00:00:00 2001
+From ae0174c6e1da1051403c51fa881f66d57cc22acd Mon Sep 17 00:00:00 2001
From: Yawning Angel <yawning(a)schwanenlied.me>
Date: Thu, 1 May 2014 03:43:53 +0000
Subject: [PATCH 4/5] Log the correct proxy type on failure.
@@ -721,10 +724,10 @@ config.
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/or/connection.c b/src/or/connection.c
-index 9a766d6..b2e6a69 100644
+index 4bb2683..cfa6ee5 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
-@@ -4801,7 +4801,7 @@ log_failed_proxy_connection(connection_t *conn)
+@@ -4841,7 +4841,7 @@ log_failed_proxy_connection(connection_t *conn)
log_warn(LD_NET,
"The connection to the %s proxy server at %s just failed. "
"Make sure that the proxy server is up and running.",
@@ -734,9 +737,10 @@ index 9a766d6..b2e6a69 100644
}
--
-1.8.1.2
+2.0.0.rc0
+
-From e3b5b7f4b9e5ef4637f0719d54be9f534e41019c Mon Sep 17 00:00:00 2001
+From 378e6f7f8521ed0c35dc1afc91840117713498fb Mon Sep 17 00:00:00 2001
From: Yawning Angel <yawning(a)schwanenlied.me>
Date: Thu, 1 May 2014 18:58:53 +0000
Subject: [PATCH 5/5] Improve the log message when a transport doesn't support
@@ -749,10 +753,10 @@ does not acknowledge the configured outgoing proxy.
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/or/transports.c b/src/or/transports.c
-index 8e82a41..3991bd3 100644
+index b810315..eee159d 100644
--- a/src/or/transports.c
+++ b/src/or/transports.c
-@@ -803,7 +803,8 @@ handle_finished_proxy(managed_proxy_t *mp)
+@@ -805,7 +805,8 @@ handle_finished_proxy(managed_proxy_t *mp)
case PT_PROTO_CONFIGURED: /* if configured correctly: */
if (mp->proxy_uri && !mp->proxy_supported) {
log_warn(LD_CONFIG, "Managed proxy '%s' did not configure the "
@@ -763,5 +767,5 @@ index 8e82a41..3991bd3 100644
break;
}
--
-1.8.1.2
+2.0.0.rc0
1
0

08 May '14
commit b83b504594a1de3359aea4afceb80837408bc99f
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu May 8 09:57:49 2014 +0000
Bug 11535: Add txsocksx dependency.
We not only add the txsocksx dependency but Parsley as well as it is
needed by txsocksx. We further avoid downloading vcversioner during
build time (that is during running the gitian-pluggable-transport build
script) pretending we already have it locally.
---
.../linux/gitian-pluggable-transports.yml | 23 ++++++++++++++++++++
.../mac/gitian-pluggable-transports.yml | 23 ++++++++++++++++++++
.../windows/gitian-pluggable-transports.yml | 19 ++++++++++++++++
gitian/fetch-inputs.sh | 6 +++--
gitian/mkbundle-linux.sh | 2 +-
gitian/mkbundle-mac.sh | 2 +-
gitian/mkbundle-windows.sh | 2 +-
gitian/verify-tags.sh | 3 ++-
gitian/versions.beta | 13 +++++++----
gitian/versions.nightly | 14 +++++++-----
10 files changed, 92 insertions(+), 15 deletions(-)
diff --git a/gitian/descriptors/linux/gitian-pluggable-transports.yml b/gitian/descriptors/linux/gitian-pluggable-transports.yml
index 4423b50..25109b8 100644
--- a/gitian/descriptors/linux/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/linux/gitian-pluggable-transports.yml
@@ -25,6 +25,8 @@ remotes:
"dir": "flashproxy"
- "url": "https://github.com/kpdyer/fteproxy.git"
"dir": "fteproxy"
+- "url": "https://github.com/habnabit/txsocksx.git"
+ "dir": "txsocksx"
files:
- "openssl.tar.gz"
- "gmp.tar.bz2"
@@ -34,6 +36,7 @@ files:
- "zope.interface.zip"
- "twisted.tar.bz2"
- "m2crypto.tar.gz"
+- "parsley.tar.gz"
- "dzip.sh"
script: |
INSTDIR="$HOME/install"
@@ -106,6 +109,26 @@ script: |
cp -a build/twisted $PTDIR/
cd ..
#
+ tar xzf parsley.tar.gz
+ cd Parsley-*
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
+ $PYTHON setup.py build --build-lib build
+ cp -a build/parsley.py $PTDIR/
+ cp -a build/ometa $PTDIR/
+ cp -a build/terml $PTDIR/
+ cd ..
+ #
+ cd txsocksx
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
+ # Let's pretend we have the setup dependency already as we don't want to get
+ # it downloaded during building. Just pretending and thus avoiding another
+ # dependency should be fine here as txsocksx catches the exception due to
+ # missing __version__ and __sha__ .
+ mkdir vcversioner-1.14.1.1-py2.6.egg
+ $PYTHON setup.py build --build-lib build
+ cp -a build/txsocksx $PTDIR/
+ cd ..
+ #
cd obfsproxy
find -type f | xargs touch --date="$REFERENCE_DATETIME"
$PYTHON setup.py build --build-lib build
diff --git a/gitian/descriptors/mac/gitian-pluggable-transports.yml b/gitian/descriptors/mac/gitian-pluggable-transports.yml
index 920b231..df73197 100644
--- a/gitian/descriptors/mac/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/mac/gitian-pluggable-transports.yml
@@ -25,6 +25,8 @@ remotes:
"dir": "flashproxy"
- "url": "https://github.com/kpdyer/fteproxy.git"
"dir": "fteproxy"
+- "url": "https://github.com/habnabit/txsocksx.git"
+ "dir": "txsocksx"
files:
- "openssl.tar.gz"
- "gmp.tar.bz2"
@@ -34,6 +36,7 @@ files:
- "zope.interface.zip"
- "twisted.tar.bz2"
- "m2crypto.tar.gz"
+- "parsley.tar.gz"
- "apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb"
- "multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz"
- "dzip.sh"
@@ -126,6 +129,26 @@ script: |
cp -a build/twisted $PTDIR/
cd ..
#
+ tar xzf parsley.tar.gz
+ cd Parsley-*
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
+ python setup.py build --build-lib build
+ cp -a build/parsley.py $PTDIR/
+ cp -a build/ometa $PTDIR/
+ cp -a build/terml $PTDIR/
+ cd ..
+ #
+ cd txsocksx
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
+ # Let's pretend we have the setup dependency already as we don't want to get
+ # it downloaded during building. Just pretending and thus avoiding another
+ # dependency should be fine here as txsocksx catches the exception due to
+ # missing __version__ and __sha__ .
+ mkdir vcversioner-1.14.1.1-py2.7.egg
+ python setup.py build --build-lib build
+ cp -a build/txsocksx $PTDIR/
+ cd ..
+ #
cd obfsproxy
find -type f | xargs touch --date="$REFERENCE_DATETIME"
python setup.py build --build-lib build
diff --git a/gitian/descriptors/windows/gitian-pluggable-transports.yml b/gitian/descriptors/windows/gitian-pluggable-transports.yml
index 3624d04..cf7595e 100644
--- a/gitian/descriptors/windows/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/windows/gitian-pluggable-transports.yml
@@ -26,6 +26,8 @@ remotes:
"dir": "flashproxy"
- "url": "https://github.com/kpdyer/fteproxy.git"
"dir": "fteproxy"
+- "url": "https://github.com/habnabit/txsocksx.git"
+ "dir": "txsocksx"
files:
- "openssl.tar.gz"
- "gmp.tar.bz2"
@@ -36,6 +38,7 @@ files:
- "zope.interface.zip"
- "twisted.tar.bz2"
- "m2crypto.tar.gz"
+- "parsley.tar.gz"
- "ubuntu-wine.gpg"
- "wine-wrappers"
- "python.msi"
@@ -193,6 +196,22 @@ script: |
LD_PRELOAD= $INSTPYTHON setup.py install --single-version-externally-managed --record /dev/null
cd ..
#
+ tar xzf parsley.tar.gz
+ cd Parsley-*
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
+ LD_PRELOAD= $INSTPYTHON setup.py install
+ cd ..
+ #
+ cd txsocksx
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
+ # Let's pretend we have the setup dependency already as we don't want to get
+ # it downloaded during building. Just pretending and thus avoiding another
+ # dependency should be fine here as txsocksx catches the exception due to
+ # missing __version__ and __sha__ .
+ mkdir vcversioner-1.14.1.1-py2.7.egg
+ LD_PRELOAD= $INSTPYTHON setup.py install
+ cd ..
+ #
# py2exe byte-compiles to .pyc files, which embed the mtime of the parent .py file.
find $INSTDIR/python -type f | xargs touch --date="$REFERENCE_DATETIME"
#
diff --git a/gitian/fetch-inputs.sh b/gitian/fetch-inputs.sh
index 03827b6..c89d340 100755
--- a/gitian/fetch-inputs.sh
+++ b/gitian/fetch-inputs.sh
@@ -178,7 +178,7 @@ do
get "${!PACKAGE}" "${MIRROR_URL_ASN}${!PACKAGE}"
done
-for i in ZOPEINTERFACE TWISTED PY2EXE SETUPTOOLS
+for i in ZOPEINTERFACE TWISTED PY2EXE SETUPTOOLS PARSLEY
do
URL="${i}_URL"
PACKAGE="${i}_PACKAGE"
@@ -229,7 +229,7 @@ fi
# Verify packages with weak or no signatures via direct sha256 check
# (OpenSSL is signed with MD5, and OSXSDK is not signed at all)
-for i in OSXSDK TOOLCHAIN4 TOOLCHAIN4_OLD NOSCRIPT HTTPSE MINGW MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED M2CRYPTO SETUPTOOLS OPENSSL GMP
+for i in OSXSDK TOOLCHAIN4 TOOLCHAIN4_OLD NOSCRIPT HTTPSE MINGW MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED M2CRYPTO SETUPTOOLS OPENSSL GMP PARSLEY
do
PACKAGE="${i}_PACKAGE"
HASH="${i}_HASH"
@@ -281,6 +281,7 @@ ln -sf "$PY2EXE_PACKAGE" py2exe.exe
ln -sf "$SETUPTOOLS_PACKAGE" setuptools.tar.gz
ln -sf "$GMP_PACKAGE" gmp.tar.bz2
ln -sf "$LXML_PACKAGE" lxml.tar.gz
+ln -sf "$PARSLEY_PACKAGE" parsley.tar.gz
# Fetch latest gitian-builder itself
# XXX - this is broken if a non-standard inputs dir is selected using the command line flag.
@@ -308,6 +309,7 @@ obfsproxy https://git.torproject.org/pluggable-transports/obfsproxy.git $OBFSPRO
flashproxy https://git.torproject.org/flashproxy.git $FLASHPROXY_TAG
fteproxy https://github.com/kpdyer/fteproxy.git $FTEPROXY_TAG
libdmg-hfsplus https://github.com/vasi/libdmg-hfsplus.git $LIBDMG_TAG
+txsocksx https://github.com/habnabit/txsocksx.git $TXSOCKSX_TAG
EOF
exit 0
diff --git a/gitian/mkbundle-linux.sh b/gitian/mkbundle-linux.sh
index fc88092..d6186d2 100755
--- a/gitian/mkbundle-linux.sh
+++ b/gitian/mkbundle-linux.sh
@@ -204,7 +204,7 @@ then
echo "****** Starting Pluggable Transports Component of Linux Bundle (4/5 for Linux) ******"
echo
- ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit pyptlib=$PYPTLIB_TAG,obfsproxy=$OBFSPROXY_TAG,flashproxy=$FLASHPROXY_TAG,fteproxy=$FTEPROXY_TAG $DESCRIPTOR_DIR/linux/gitian-pluggable-transports.yml
+ ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit pyptlib=$PYPTLIB_TAG,obfsproxy=$OBFSPROXY_TAG,flashproxy=$FLASHPROXY_TAG,fteproxy=$FTEPROXY_TAG,txsocksx=$TXSOCKSX_TAG $DESCRIPTOR_DIR/linux/gitian-pluggable-transports.yml
if [ $? -ne 0 ];
then
#mv var/build.log ./pluggable-transports-fail-linux.log.`date +%Y%m%d%H%M%S`
diff --git a/gitian/mkbundle-mac.sh b/gitian/mkbundle-mac.sh
index 8d3c73e..a7752a9 100755
--- a/gitian/mkbundle-mac.sh
+++ b/gitian/mkbundle-mac.sh
@@ -148,7 +148,7 @@ then
echo "****** Starting Pluggable Transports Component of Mac Bundle (3/4 for Mac) ******"
echo
- ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit pyptlib=$PYPTLIB_TAG,obfsproxy=$OBFSPROXY_TAG,flashproxy=$FLASHPROXY_TAG,fteproxy=$FTEPROXY_TAG $DESCRIPTOR_DIR/mac/gitian-pluggable-transports.yml
+ ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit pyptlib=$PYPTLIB_TAG,obfsproxy=$OBFSPROXY_TAG,flashproxy=$FLASHPROXY_TAG,fteproxy=$FTEPROXY_TAG,txsocksx=$TXSOCKSX_TAG $DESCRIPTOR_DIR/mac/gitian-pluggable-transports.yml
if [ $? -ne 0 ];
then
#mv var/build.log ./firefox-fail-mac.log.`date +%Y%m%d%H%M%S`
diff --git a/gitian/mkbundle-windows.sh b/gitian/mkbundle-windows.sh
index 4a176bf..f93fb57 100755
--- a/gitian/mkbundle-windows.sh
+++ b/gitian/mkbundle-windows.sh
@@ -143,7 +143,7 @@ then
echo "****** Starting Pluggable Transports Component of Windows Bundle (3/4 for Windows) ******"
echo
- ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit pyptlib=$PYPTLIB_TAG,obfsproxy=$OBFSPROXY_TAG,flashproxy=$FLASHPROXY_TAG,fteproxy=$FTEPROXY_TAG $DESCRIPTOR_DIR/windows/gitian-pluggable-transports.yml
+ ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit pyptlib=$PYPTLIB_TAG,obfsproxy=$OBFSPROXY_TAG,flashproxy=$FLASHPROXY_TAG,fteproxy=$FTEPROXY_TAG,txsocksx=$TXSOCKSX_TAG $DESCRIPTOR_DIR/windows/gitian-pluggable-transports.yml
if [ $? -ne 0 ];
then
#mv var/build.log ./pluggable-transports-fail-win32.log.`date +%Y%m%d%H%M%S`
diff --git a/gitian/verify-tags.sh b/gitian/verify-tags.sh
index 8829b9d..e5e9f3f 100755
--- a/gitian/verify-tags.sh
+++ b/gitian/verify-tags.sh
@@ -107,6 +107,7 @@ while read dir commit; do
done << EOF
libdmg-hfsplus $LIBDMG_TAG
fteproxy $FTEPROXY_TAG
+txsocksx $TXSOCKSX_TAG
EOF
# Verify signatures on signed packages
@@ -130,7 +131,7 @@ done
# Verify packages with weak or no signatures via direct sha256 check
# (OpenSSL is signed with MD5, and OSXSDK is not signed at all)
-for i in OSXSDK TOOLCHAIN4 TOOLCHAIN4_OLD NOSCRIPT HTTPSE MINGW MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED M2CRYPTO SETUPTOOLS OPENSSL GMP
+for i in OSXSDK TOOLCHAIN4 TOOLCHAIN4_OLD NOSCRIPT HTTPSE MINGW MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED M2CRYPTO SETUPTOOLS OPENSSL GMP PARSLEY
do
PACKAGE="${i}_PACKAGE"
HASH="${i}_HASH"
diff --git a/gitian/versions.beta b/gitian/versions.beta
index c3faa7b..d10c87a 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -15,11 +15,12 @@ NSIS_TAG=v0.1
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
MINGW_REV=6184
-PYPTLIB_TAG=pyptlib-0.0.5
-OBFSPROXY_TAG=obfsproxy-0.2.4
+PYPTLIB_TAG=pyptlib-0.0.6
+OBFSPROXY_TAG=obfsproxy-0.2.9
FLASHPROXY_TAG=1.6
FTEPROXY_TAG=55d81d2f0a4fab759c1ed8aca78dd3a5db6e75c6 # unsigned 0.2.13
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
+TXSOCKSX_TAG=216eb0894a1755872f4789f9458aa6cf543b8433
GITIAN_TAG=tor-browser-builder-3.x-5
@@ -33,11 +34,12 @@ PYCRYPTO_VER=2.6.1
ARGPARSE_VER=1.2.1
PYYAML_VER=3.11
ZOPEINTERFACE_VER=4.0.5
-TWISTED_VER=13.1.0
+TWISTED_VER=13.2.0
M2CRYPTO_VER=0.21.1
PY2EXE_VER=0.6.9
SETUPTOOLS_VER=1.4
LXML_VER=3.3.5
+PARSLEY_VER=1.2
HTTPSE_VER=3.5.1
## File names for the source packages
@@ -63,6 +65,7 @@ M2CRYPTO_PACKAGE=M2Crypto-${M2CRYPTO_VER}.tar.gz
PY2EXE_PACKAGE=py2exe-${PY2EXE_VER}.win32-py2.7.exe
SETUPTOOLS_PACKAGE=setuptools-${SETUPTOOLS_VER}.tar.gz
LXML_PACKAGE=lxml-${LXML_VER}.tar.gz
+PARSLEY_PACKAGE=Parsley-${PARSLEY_VER}.tar.gz
# Hashes for packages with weak sigs or no sigs
OPENSSL_HASH=53cb818c3b90e507a8348f4f5eaedb05d8bfe5358aabb508b7263cc670c3e028
@@ -78,10 +81,11 @@ PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
ARGPARSE_HASH=ddaf4b0a618335a32b6664d4ae038a1de8fbada3b25033f9021510ed2b3941a4
PYYAML_HASH=c36c938a872e5ff494938b33b14aaa156cb439ec67548fcab3535bb78b0846e8
ZOPEINTERFACE_HASH=1a7c84716bbd9981915b64a81d8a3f076a5934a8c8df4224655469b3564940cc
-TWISTED_HASH=110e957dd8fc4c6eaba8abe4f0477e60b2873e3cf1c260325863fd2ef69341c6
+TWISTED_HASH=095175638c019ac7c0604f4c291724a16ff1acd062e181b01293bf4dcbc62cf3
M2CRYPTO_HASH=25b94498505c2d800ee465db0cc1aff097b1615adc3ac042a1c85ceca264fc0a
PY2EXE_HASH=610a8800de3d973ed5ed4ac505ab42ad058add18a68609ac09e6cf3598ef056c
SETUPTOOLS_HASH=75d288687066ed124311d6ca5f40ffa92a0e81adcd7fff318c6e84082713cf39
+PARSLEY_HASH=50d30cee70770fd44db7cea421cb2fb75af247c3a1cd54885c06b30a7c85dd23
## Non-git package URLs
OPENSSL_URL=https://www.openssl.org/source/${OPENSSL_PACKAGE}
@@ -105,3 +109,4 @@ M2CRYPTO_URL=https://pypi.python.org/packages/source/M/M2Crypto/${M2CRYPTO_…
PY2EXE_URL=http://softlayer-dal.dl.sourceforge.net/project/py2exe/py2exe/${…
SETUPTOOLS_URL=https://pypi.python.org/packages/source/s/setuptools/${SETUP…
LXML_URL=https://pypi.python.org/packages/source/l/lxml/${LXML_PACKAGE}
+PARSLEY_URL=https://pypi.python.org/packages/source/P/Parsley/${PARSLEY_PACKAGE}
diff --git a/gitian/versions.nightly b/gitian/versions.nightly
index 355b68a..635fa70 100755
--- a/gitian/versions.nightly
+++ b/gitian/versions.nightly
@@ -16,11 +16,11 @@ ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
MINGW_REV=6184
PYPTLIB_TAG=master
-# Hardcoding this commit until #11535 is fixed
-OBFSPROXY_TAG=b58fd9e1ef264796b6bddbde5db117472fb674a0
+OBFSPROXY_TAG=master
FLASHPROXY_TAG=master
-FTEPROXY_TAG=0.2.13
+FTEPROXY_TAG=master
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
+TXSOCKSX_TAG=216eb0894a1755872f4789f9458aa6cf543b8433
GITIAN_TAG=tor-browser-builder-3.x-5
@@ -34,12 +34,13 @@ PYCRYPTO_VER=2.6.1
ARGPARSE_VER=1.2.1
PYYAML_VER=3.11
ZOPEINTERFACE_VER=4.0.5
-TWISTED_VER=13.1.0
+TWISTED_VER=13.2.0
M2CRYPTO_VER=0.21.1
PY2EXE_VER=0.6.9
SETUPTOOLS_VER=1.4
LXML_VER=3.3.5
HTTPSE_VER=3.5.1
+PARSLEY_VER=1.2
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
@@ -64,6 +65,7 @@ M2CRYPTO_PACKAGE=M2Crypto-${M2CRYPTO_VER}.tar.gz
PY2EXE_PACKAGE=py2exe-${PY2EXE_VER}.win32-py2.7.exe
SETUPTOOLS_PACKAGE=setuptools-${SETUPTOOLS_VER}.tar.gz
LXML_PACKAGE=lxml-${LXML_VER}.tar.gz
+PARSLEY_PACKAGE=Parsley-${PARSLEY_VER}.tar.gz
# Hashes for packages with weak sigs or no sigs
OPENSSL_HASH=53cb818c3b90e507a8348f4f5eaedb05d8bfe5358aabb508b7263cc670c3e028
@@ -79,10 +81,11 @@ PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
ARGPARSE_HASH=ddaf4b0a618335a32b6664d4ae038a1de8fbada3b25033f9021510ed2b3941a4
PYYAML_HASH=c36c938a872e5ff494938b33b14aaa156cb439ec67548fcab3535bb78b0846e8
ZOPEINTERFACE_HASH=1a7c84716bbd9981915b64a81d8a3f076a5934a8c8df4224655469b3564940cc
-TWISTED_HASH=110e957dd8fc4c6eaba8abe4f0477e60b2873e3cf1c260325863fd2ef69341c6
+TWISTED_HASH=095175638c019ac7c0604f4c291724a16ff1acd062e181b01293bf4dcbc62cf3
M2CRYPTO_HASH=25b94498505c2d800ee465db0cc1aff097b1615adc3ac042a1c85ceca264fc0a
PY2EXE_HASH=610a8800de3d973ed5ed4ac505ab42ad058add18a68609ac09e6cf3598ef056c
SETUPTOOLS_HASH=75d288687066ed124311d6ca5f40ffa92a0e81adcd7fff318c6e84082713cf39
+PARSLEY_HASH=50d30cee70770fd44db7cea421cb2fb75af247c3a1cd54885c06b30a7c85dd23
## Non-git package URLs
OPENSSL_URL=https://www.openssl.org/source/${OPENSSL_PACKAGE}
@@ -106,3 +109,4 @@ M2CRYPTO_URL=https://pypi.python.org/packages/source/M/M2Crypto/${M2CRYPTO_…
PY2EXE_URL=http://softlayer-dal.dl.sourceforge.net/project/py2exe/py2exe/${…
SETUPTOOLS_URL=https://pypi.python.org/packages/source/s/setuptools/${SETUP…
LXML_URL=https://pypi.python.org/packages/source/l/lxml/${LXML_PACKAGE}
+PARSLEY_URL=https://pypi.python.org/packages/source/P/Parsley/${PARSLEY_PACKAGE}
1
0

[tor-browser-bundle/master] Make PT tags explicitly be git tag refs.
by mikeperry@torproject.org 06 May '14
by mikeperry@torproject.org 06 May '14
06 May '14
commit d1c5a171239d9a2a0a42b3d751ad38fee5bc6a90
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Tue May 6 07:57:56 2014 -0700
Make PT tags explicitly be git tag refs.
Otherwise, alternate named refs can be inserted and used instead.
---
gitian/mkbundle-linux.sh | 3 +++
gitian/mkbundle-mac.sh | 3 +++
gitian/mkbundle-windows.sh | 3 +++
3 files changed, 9 insertions(+)
diff --git a/gitian/mkbundle-linux.sh b/gitian/mkbundle-linux.sh
index 6101971..fc88092 100755
--- a/gitian/mkbundle-linux.sh
+++ b/gitian/mkbundle-linux.sh
@@ -91,6 +91,9 @@ then
HTTPSE_TAG=refs/tags/$HTTPSE_TAG
ZLIB_TAG=refs/tags/$ZLIB_TAG
LIBEVENT_TAG=refs/tags/$LIBEVENT_TAG
+ PYPTLIB_TAG=refs/tags/$PYPTLIB_TAG
+ OBFSPROXY_TAG=refs/tags/$OBFSPROXY_TAG
+ FLASHPROXY_TAG=refs/tags/$FLASHPROXY_TAG
fi
cd $GITIAN_DIR
diff --git a/gitian/mkbundle-mac.sh b/gitian/mkbundle-mac.sh
index 7681ed4..8d3c73e 100755
--- a/gitian/mkbundle-mac.sh
+++ b/gitian/mkbundle-mac.sh
@@ -93,6 +93,9 @@ then
HTTPSE_TAG=refs/tags/$HTTPSE_TAG
ZLIB_TAG=refs/tags/$ZLIB_TAG
LIBEVENT_TAG=refs/tags/$LIBEVENT_TAG
+ PYPTLIB_TAG=refs/tags/$PYPTLIB_TAG
+ OBFSPROXY_TAG=refs/tags/$OBFSPROXY_TAG
+ FLASHPROXY_TAG=refs/tags/$FLASHPROXY_TAG
fi
cd $GITIAN_DIR
diff --git a/gitian/mkbundle-windows.sh b/gitian/mkbundle-windows.sh
index bf6a5d4..4a176bf 100755
--- a/gitian/mkbundle-windows.sh
+++ b/gitian/mkbundle-windows.sh
@@ -88,6 +88,9 @@ then
HTTPSE_TAG=refs/tags/$HTTPSE_TAG
ZLIB_TAG=refs/tags/$ZLIB_TAG
LIBEVENT_TAG=refs/tags/$LIBEVENT_TAG
+ PYPTLIB_TAG=refs/tags/$PYPTLIB_TAG
+ OBFSPROXY_TAG=refs/tags/$OBFSPROXY_TAG
+ FLASHPROXY_TAG=refs/tags/$FLASHPROXY_TAG
fi
cd $GITIAN_DIR
1
0

[tor-browser-bundle/master] Bug 11771: Verify all tags/hashes prior to each build invocation.
by mikeperry@torproject.org 06 May '14
by mikeperry@torproject.org 06 May '14
06 May '14
commit 0f6800a9fe4225915014140077e4ea1ec5919eb5
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Tue May 6 07:14:49 2014 -0700
Bug 11771: Verify all tags/hashes prior to each build invocation.
Only if VERIFY_TAGS=1 is set from the versions file though.
---
gitian/fetch-inputs.sh | 2 ++
gitian/mkbundle-linux.sh | 9 +++++-
gitian/mkbundle-mac.sh | 9 +++++-
gitian/mkbundle-windows.sh | 9 +++++-
gitian/verify-tags.sh | 76 ++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 102 insertions(+), 3 deletions(-)
diff --git a/gitian/fetch-inputs.sh b/gitian/fetch-inputs.sh
index b542cf0..03827b6 100755
--- a/gitian/fetch-inputs.sh
+++ b/gitian/fetch-inputs.sh
@@ -44,6 +44,8 @@ cd "$INPUTS_DIR"
CLEANUP=$(tempfile)
trap "bash '$CLEANUP'; rm -f '$CLEANUP'" EXIT
+# FIXME: This code is copied to verify-tags.sh.. Should we make a bash
+# function library?
verify() {
local file="$1"; shift
local keyring="$1"; shift
diff --git a/gitian/mkbundle-linux.sh b/gitian/mkbundle-linux.sh
index 1328a9c..6101971 100755
--- a/gitian/mkbundle-linux.sh
+++ b/gitian/mkbundle-linux.sh
@@ -65,6 +65,13 @@ $WRAPPER_DIR/build-helpers/dzip.sh $GITIAN_DIR/inputs/linux-skeleton.zip .
cd $WRAPPER_DIR
+# FIXME: Library function?
+die_msg() {
+ local msg="$1"; shift
+ printf "\n\n$msg\n"
+ exit 1
+}
+
# Let's preserve the original $FOO for creating proper symlinks after building
# the utils both if we verify tags and if we don't.
@@ -72,7 +79,7 @@ LIBEVENT_TAG_ORIG=$LIBEVENT_TAG
if [ "z$VERIFY_TAGS" = "z1" ];
then
- ./verify-tags.sh $GITIAN_DIR/inputs $VERSIONS_FILE || exit 1
+ ./verify-tags.sh $GITIAN_DIR/inputs $VERSIONS_FILE || die_msg "You should run 'make prep' to ensure your inputs are up to date"
# If we're verifying tags, be explicit to gitian that we
# want to build from tags.
NSIS_TAG=refs/tags/$NSIS_TAG
diff --git a/gitian/mkbundle-mac.sh b/gitian/mkbundle-mac.sh
index a9cbacb..7681ed4 100755
--- a/gitian/mkbundle-mac.sh
+++ b/gitian/mkbundle-mac.sh
@@ -72,9 +72,16 @@ $WRAPPER_DIR/build-helpers/dtar.sh $GITIAN_DIR/inputs/dmg-applications.tar.xz .
cd $WRAPPER_DIR
+# FIXME: Library function?
+die_msg() {
+ local msg="$1"; shift
+ printf "\n\n$msg\n"
+ exit 1
+}
+
if [ "z$VERIFY_TAGS" = "z1" ];
then
- ./verify-tags.sh $GITIAN_DIR/inputs $VERSIONS_FILE || exit 1
+ ./verify-tags.sh $GITIAN_DIR/inputs $VERSIONS_FILE || die_msg "You should run 'make prep' to ensure your inputs are up to date"
# If we're verifying tags, be explicit to gitian that we
# want to build from tags.
NSIS_TAG=refs/tags/$NSIS_TAG
diff --git a/gitian/mkbundle-windows.sh b/gitian/mkbundle-windows.sh
index 7ab0aa6..bf6a5d4 100755
--- a/gitian/mkbundle-windows.sh
+++ b/gitian/mkbundle-windows.sh
@@ -67,9 +67,16 @@ $WRAPPER_DIR/build-helpers/dzip.sh $GITIAN_DIR/inputs/windows-skeleton.zip .
cd $WRAPPER_DIR
+# FIXME: Library function?
+die_msg() {
+ local msg="$1"; shift
+ printf "\n\n$msg\n"
+ exit 1
+}
+
if [ "z$VERIFY_TAGS" = "z1" ];
then
- ./verify-tags.sh $GITIAN_DIR/inputs $VERSIONS_FILE || exit 1
+ ./verify-tags.sh $GITIAN_DIR/inputs $VERSIONS_FILE || die_msg "You should run 'make prep' to ensure your inputs are up to date"
# If we're verifying tags, be explicit to gitian that we
# want to build from tags.
NSIS_TAG=refs/tags/$NSIS_TAG
diff --git a/gitian/verify-tags.sh b/gitian/verify-tags.sh
index 28c16f1..8829b9d 100755
--- a/gitian/verify-tags.sh
+++ b/gitian/verify-tags.sh
@@ -48,6 +48,43 @@ verify_git() {
popd
}
+# FIXME: This code is copied from fetch-inputs.sh.. Should we make a bash
+# function library?
+verify() {
+ local file="$1"; shift
+ local keyring="$1"; shift
+ local suffix="$1"; shift
+
+ local f
+ for f in "$file" "$file.$suffix" "$keyring"; do
+ if ! [ -e "$f" ]; then
+ echo >&2 "Error: Required file $f does not exist."; exit 1
+ fi
+ done
+
+ local tmpfile=$(tempfile)
+ echo "rm -f '$tmpfile'" >> "$CLEANUP"
+ local gpghome=$(mktemp -d)
+ echo "rm -rf '$gpghome'" >> "$CLEANUP"
+ exec 3> "$tmpfile"
+
+ GNUPGHOME="$gpghome" gpg --no-options --no-default-keyring --trust-model=always --keyring="$keyring" --status-fd=3 --verify "$file.$suffix" "$file" >/dev/null 2>&1
+ if grep -q '^\[GNUPG:\] GOODSIG ' "$tmpfile"; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+check_git_hash() {
+ local dir="$1"; shift
+ local commit="${1:-}"
+
+ if [ -n "$commit" ]; then
+ (cd "$dir" && git checkout "$commit")
+ fi
+}
+
while read dir keyring tag; do
verify_git "$dir" "$WRAPPER_DIR/gpg/$keyring" "$tag"
@@ -65,6 +102,45 @@ obfsproxy obfsproxy.gpg $OBFSPROXY_TAG
flashproxy flashproxy.gpg $FLASHPROXY_TAG
EOF
+while read dir commit; do
+ check_git_hash "$dir" "$commit"
+done << EOF
+libdmg-hfsplus $LIBDMG_TAG
+fteproxy $FTEPROXY_TAG
+EOF
+
+# Verify signatures on signed packages
+for i in BINUTILS GCC PYTHON PYCRYPTO M2CRYPTO PYTHON_MSI GMP LXML
+do
+ PACKAGE="${i}_PACKAGE"
+ URL="${i}_URL"
+ if [ "${i}" == "PYTHON" -o "${i}" == "PYCRYPTO" -o "${i}" == "M2CRYPTO" -o \
+ "${i}" == "PYTHON_MSI" -o "${i}" == "LXML" ]; then
+ SUFFIX="asc"
+ else
+ SUFFIX="sig"
+ fi
+
+ if ! verify "${!PACKAGE}" "$WRAPPER_DIR/gpg/$i.gpg" $SUFFIX; then
+ echo "$i: GPG signature is broken for ${!URL}"
+ mv "${!PACKAGE}" "${!PACKAGE}.badgpg"
+ exit 1
+ fi
+done
+
+# Verify packages with weak or no signatures via direct sha256 check
+# (OpenSSL is signed with MD5, and OSXSDK is not signed at all)
+for i in OSXSDK TOOLCHAIN4 TOOLCHAIN4_OLD NOSCRIPT HTTPSE MINGW MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED M2CRYPTO SETUPTOOLS OPENSSL GMP
+do
+ PACKAGE="${i}_PACKAGE"
+ HASH="${i}_HASH"
+ if ! echo "${!HASH} ${!PACKAGE}" | sha256sum -c -; then
+ echo "Package hash for ${!PACKAGE} differs from our locally stored sha256!"
+ exit 1
+ fi
+done
+
+
cd "$INPUTS_DIR"
verify_git "." "$WRAPPER_DIR/gpg/torbutton.gpg" "$GITIAN_TAG"
git checkout "$GITIAN_TAG"
1
0

[tor-browser-bundle/master] Add a tor-master version of #8402 for nightly testing.
by mikeperry@torproject.org 06 May '14
by mikeperry@torproject.org 06 May '14
06 May '14
commit 14c8ff18ccdaccdf8ddf8287dea48b9da03b72dd
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Fri May 2 10:14:43 2014 -0700
Add a tor-master version of #8402 for nightly testing.
---
gitian/descriptors/linux/gitian-tor.yml | 3 +
gitian/descriptors/mac/gitian-tor.yml | 3 +
gitian/descriptors/windows/gitian-tor.yml | 3 +
gitian/patches/bug8402-master.patch | 767 +++++++++++++++++++++++++++++
4 files changed, 776 insertions(+)
diff --git a/gitian/descriptors/linux/gitian-tor.yml b/gitian/descriptors/linux/gitian-tor.yml
index 8b1644e..44c2b1f 100644
--- a/gitian/descriptors/linux/gitian-tor.yml
+++ b/gitian/descriptors/linux/gitian-tor.yml
@@ -30,6 +30,7 @@ files:
- "bug11069.patch"
- "bug9665.patch"
- "bug8402.patch"
+- "bug8402-master.patch"
- "dzip.sh"
- "openssl-linux32-utils.zip"
- "openssl-linux64-utils.zip"
@@ -81,6 +82,8 @@ script: |
git am ~/build/bug9665.patch
git am ~/build/bug11200.patch
git am ~/build/bug8402.patch
+ else
+ git am ~/build/bug8402-master.patch
fi
fi
mkdir -p $OUTDIR/src
diff --git a/gitian/descriptors/mac/gitian-tor.yml b/gitian/descriptors/mac/gitian-tor.yml
index ca938fc..68905e7 100644
--- a/gitian/descriptors/mac/gitian-tor.yml
+++ b/gitian/descriptors/mac/gitian-tor.yml
@@ -33,6 +33,7 @@ files:
- "bug11069.patch"
- "bug9665.patch"
- "bug8402.patch"
+- "bug8402-master.patch"
- "apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb"
- "multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz"
- "dzip.sh"
@@ -112,6 +113,8 @@ script: |
git am ~/build/bug9665.patch
git am ~/build/bug11200.patch
git am ~/build/bug8402.patch
+ else
+ git am ~/build/bug8402-master.patch
fi
fi
mkdir -p $OUTDIR/src
diff --git a/gitian/descriptors/windows/gitian-tor.yml b/gitian/descriptors/windows/gitian-tor.yml
index 61fc9b5..bb6998b 100644
--- a/gitian/descriptors/windows/gitian-tor.yml
+++ b/gitian/descriptors/windows/gitian-tor.yml
@@ -32,6 +32,7 @@ files:
- "bug11069.patch"
- "bug9665.patch"
- "bug8402.patch"
+- "bug8402-master.patch"
- "binutils.tar.bz2"
- "dzip.sh"
- "openssl.tar.gz"
@@ -108,6 +109,8 @@ script: |
git am ~/build/bug9665.patch
git am ~/build/bug11200.patch
git am ~/build/bug8402.patch
+ else
+ git am ~/build/bug8402-master.patch
fi
fi
mkdir -p $OUTDIR/src
diff --git a/gitian/patches/bug8402-master.patch b/gitian/patches/bug8402-master.patch
new file mode 100644
index 0000000..33d6e20
--- /dev/null
+++ b/gitian/patches/bug8402-master.patch
@@ -0,0 +1,767 @@
+From 7476a5c00aabdb2b2b4cd29f3029a7fa3afc657d Mon Sep 17 00:00:00 2001
+From: Yawning Angel <yawning(a)schwanenlied.me>
+Date: Tue, 25 Mar 2014 07:21:22 +0000
+Subject: [PATCH 1/5] Allow ClientTransportPlugins to use proxies
+
+This change allows using Socks4Proxy, Socks5Proxy and HTTPSProxy with
+ClientTransportPlugins via the TOR_PT_PROXY extension to the
+pluggable transport specification.
+
+This fixes bug #8402.
+---
+ src/or/config.c | 24 +++++++----
+ src/or/connection.c | 62 +++++++++++++++++++++--------
+ src/or/transports.c | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++--
+ src/or/transports.h | 6 +++
+ src/test/test_pt.c | 81 +++++++++++++++++++++++++++++++++++++
+ 5 files changed, 258 insertions(+), 27 deletions(-)
+
+diff --git a/src/or/config.c b/src/or/config.c
+index da6aec0..91e8410 100644
+--- a/src/or/config.c
++++ b/src/or/config.c
+@@ -535,7 +535,9 @@ static int options_transition_affects_descriptor(
+ const or_options_t *old_options, const or_options_t *new_options);
+ static int check_nickname_list(char **lst, const char *name, char **msg);
+
+-static int parse_client_transport_line(const char *line, int validate_only);
++static int parse_client_transport_line(const or_options_t *options,
++ const char *line,
++ int validate_only);
+
+ static int parse_server_transport_line(const char *line, int validate_only);
+ static char *get_bindaddr_from_transport_listen_line(const char *line,
+@@ -1399,7 +1401,7 @@ options_act(const or_options_t *old_options)
+ pt_prepare_proxy_list_for_config_read();
+ if (options->ClientTransportPlugin) {
+ for (cl = options->ClientTransportPlugin; cl; cl = cl->next) {
+- if (parse_client_transport_line(cl->value, 0)<0) {
++ if (parse_client_transport_line(options, cl->value, 0)<0) {
+ log_warn(LD_BUG,
+ "Previously validated ClientTransportPlugin line "
+ "could not be added!");
+@@ -3120,11 +3122,11 @@ options_validate(or_options_t *old_options, or_options_t *options,
+ }
+ }
+
+- /* Check if more than one proxy type has been enabled. */
++ /* Check if more than one exclusive proxy type has been enabled. */
+ if (!!options->Socks4Proxy + !!options->Socks5Proxy +
+- !!options->HTTPSProxy + !!options->ClientTransportPlugin > 1)
++ !!options->HTTPSProxy > 1)
+ REJECT("You have configured more than one proxy type. "
+- "(Socks4Proxy|Socks5Proxy|HTTPSProxy|ClientTransportPlugin)");
++ "(Socks4Proxy|Socks5Proxy|HTTPSProxy)");
+
+ /* Check if the proxies will give surprising behavior. */
+ if (options->HTTPProxy && !(options->Socks4Proxy ||
+@@ -3237,7 +3239,7 @@ options_validate(or_options_t *old_options, or_options_t *options,
+ }
+
+ for (cl = options->ClientTransportPlugin; cl; cl = cl->next) {
+- if (parse_client_transport_line(cl->value, 1)<0)
++ if (parse_client_transport_line(options, cl->value, 1)<0)
+ REJECT("Transport line did not parse. See logs for details.");
+ }
+
+@@ -4609,7 +4611,8 @@ parse_bridge_line(const char *line)
+ * our internal transport list.
+ * - If it's a managed proxy line, launch the managed proxy. */
+ static int
+-parse_client_transport_line(const char *line, int validate_only)
++parse_client_transport_line(const or_options_t *options, const char *line,
++ int validate_only)
+ {
+ smartlist_t *items = NULL;
+ int r;
+@@ -4700,6 +4703,13 @@ parse_client_transport_line(const char *line, int validate_only)
+ pt_kickstart_client_proxy(transport_list, proxy_argv);
+ }
+ } else { /* external */
++ /* ClientTransportPlugins connecting through a proxy is managed only. */
++ if (options->Socks4Proxy || options->Socks5Proxy || options->HTTPSProxy) {
++ log_warn(LD_CONFIG, "You have configured an external proxy with another "
++ "proxy type. (Socks4Proxy|Socks5Proxy|HTTPSProxy)");
++ goto err;
++ }
++
+ if (smartlist_len(transport_list) != 1) {
+ log_warn(LD_CONFIG, "You can't have an external proxy with "
+ "more than one transports.");
+diff --git a/src/or/connection.c b/src/or/connection.c
+index 8c697d6..93d164c 100644
+--- a/src/or/connection.c
++++ b/src/or/connection.c
+@@ -86,6 +86,8 @@ static int connection_read_https_proxy_response(connection_t *conn);
+ static void connection_send_socks5_connect(connection_t *conn);
+ static const char *proxy_type_to_string(int proxy_type);
+ static int get_proxy_type(void);
++static int get_bridge_pt_addrport(tor_addr_t *addr, uint16_t *port,
++ int *proxy_type, const connection_t *conn);
+
+ /** The last addresses that our network interface seemed to have been
+ * binding to. We use this as one way to detect when our IP changes.
+@@ -1671,14 +1673,14 @@ get_proxy_type(void)
+ {
+ const or_options_t *options = get_options();
+
+- if (options->HTTPSProxy)
++ if (options->ClientTransportPlugin)
++ return PROXY_PLUGGABLE;
++ else if (options->HTTPSProxy)
+ return PROXY_CONNECT;
+ else if (options->Socks4Proxy)
+ return PROXY_SOCKS4;
+ else if (options->Socks5Proxy)
+ return PROXY_SOCKS5;
+- else if (options->ClientTransportPlugin)
+- return PROXY_PLUGGABLE;
+ else
+ return PROXY_NONE;
+ }
+@@ -4733,6 +4735,35 @@ assert_connection_ok(connection_t *conn, time_t now)
+ }
+
+ /** Fills <b>addr</b> and <b>port</b> with the details of the global
++ * pluggable transport or bridge we are using.
++ * <b>conn</b> contains the connection we are using the PT/bridge for.
++ *
++ * Return 0 on success, -1 on failure.
++ */
++static int
++get_bridge_pt_addrport(tor_addr_t *addr, uint16_t *port, int *proxy_type,
++ const connection_t *conn)
++{
++ const or_options_t *options = get_options();
++
++ if (options->ClientTransportPlugin || options->Bridges) {
++ const transport_t *transport = NULL;
++ int r;
++ r = get_transport_by_bridge_addrport(&conn->addr, conn->port, &transport);
++ if (r<0)
++ return -1;
++ if (transport) { /* transport found */
++ tor_addr_copy(addr, &transport->addr);
++ *port = transport->port;
++ *proxy_type = transport->socks_version;
++ return 0;
++ }
++ }
++
++ return -1;
++}
++
++/** Fills <b>addr</b> and <b>port</b> with the details of the global
+ * proxy server we are using.
+ * <b>conn</b> contains the connection we are using the proxy for.
+ *
+@@ -4744,6 +4775,16 @@ get_proxy_addrport(tor_addr_t *addr, uint16_t *port, int *proxy_type,
+ {
+ const or_options_t *options = get_options();
+
++ /* Client Transport Plugins can use another proxy, but that should be hidden
++ * from the rest of tor (as the plugin is responsible for dealing with the
++ * proxy), check it first, then check the rest of the proxy types to allow
++ * the config to have unused ClientTransportPlugin entries.
++ */
++ if (options->ClientTransportPlugin) {
++ if (get_bridge_pt_addrport(addr, port, proxy_type, conn) == 0)
++ return 0;
++ }
++
+ if (options->HTTPSProxy) {
+ tor_addr_copy(addr, &options->HTTPSProxyAddr);
+ *port = options->HTTPSProxyPort;
+@@ -4759,19 +4800,8 @@ get_proxy_addrport(tor_addr_t *addr, uint16_t *port, int *proxy_type,
+ *port = options->Socks5ProxyPort;
+ *proxy_type = PROXY_SOCKS5;
+ return 0;
+- } else if (options->ClientTransportPlugin ||
+- options->Bridges) {
+- const transport_t *transport = NULL;
+- int r;
+- r = get_transport_by_bridge_addrport(&conn->addr, conn->port, &transport);
+- if (r<0)
+- return -1;
+- if (transport) { /* transport found */
+- tor_addr_copy(addr, &transport->addr);
+- *port = transport->port;
+- *proxy_type = transport->socks_version;
+- return 0;
+- }
++ } else if (options->Bridges) {
++ return get_bridge_pt_addrport(addr, port, proxy_type, conn);
+ }
+
+ *proxy_type = PROXY_NONE;
+diff --git a/src/or/transports.c b/src/or/transports.c
+index 8b4a118..8e82a41 100644
+--- a/src/or/transports.c
++++ b/src/or/transports.c
+@@ -122,6 +122,8 @@ static INLINE void free_execve_args(char **arg);
+ #define PROTO_SMETHOD_ERROR "SMETHOD-ERROR"
+ #define PROTO_CMETHODS_DONE "CMETHODS DONE"
+ #define PROTO_SMETHODS_DONE "SMETHODS DONE"
++#define PROTO_PROXY_DONE "PROXY DONE"
++#define PROTO_PROXY_ERROR "PROXY-ERROR"
+
+ /** The first and only supported - at the moment - configuration
+ protocol version. */
+@@ -437,6 +439,17 @@ add_transport_to_proxy(const char *transport, managed_proxy_t *mp)
+ static int
+ proxy_needs_restart(const managed_proxy_t *mp)
+ {
++ int ret = 1;
++ char* proxy_uri;
++
++ /* If the PT proxy config has changed, then all existing pluggable transports
++ * should be restarted.
++ */
++
++ proxy_uri = get_pt_proxy_uri();
++ if (strcmp_opt(proxy_uri, mp->proxy_uri) != 0)
++ goto needs_restart;
++
+ /* mp->transport_to_launch is populated with the names of the
+ transports that must be launched *after* the SIGHUP.
+ mp->transports is populated with the transports that were
+@@ -457,10 +470,10 @@ proxy_needs_restart(const managed_proxy_t *mp)
+
+ } SMARTLIST_FOREACH_END(t);
+
+- return 0;
+-
+- needs_restart:
+- return 1;
++ ret = 0;
++needs_restart:
++ tor_free(proxy_uri);
++ return ret;
+ }
+
+ /** Managed proxy <b>mp</b> must be restarted. Do all the necessary
+@@ -491,6 +504,11 @@ proxy_prepare_for_restart(managed_proxy_t *mp)
+ SMARTLIST_FOREACH(mp->transports, transport_t *, t, transport_free(t));
+ smartlist_clear(mp->transports);
+
++ /* Reset the proxy's HTTPS/SOCKS proxy */
++ tor_free(mp->proxy_uri);
++ mp->proxy_uri = get_pt_proxy_uri();
++ mp->proxy_supported = 0;
++
+ /* flag it as an infant proxy so that it gets launched on next tick */
+ mp->conf_state = PT_PROTO_INFANT;
+ unconfigured_proxies_n++;
+@@ -725,12 +743,52 @@ managed_proxy_destroy(managed_proxy_t *mp,
+ /* free the argv */
+ free_execve_args(mp->argv);
+
++ /* free the outgoing proxy URI */
++ tor_free(mp->proxy_uri);
++
+ tor_process_handle_destroy(mp->process_handle, also_terminate_process);
+ mp->process_handle = NULL;
+
+ tor_free(mp);
+ }
+
++/** Convert the tor proxy options to a URI suitable for TOR_PT_PROXY. */
++STATIC char *
++get_pt_proxy_uri(void)
++{
++ const or_options_t *options = get_options();
++ char *uri = NULL;
++
++ if (options->Socks4Proxy || options->Socks5Proxy || options->HTTPSProxy) {
++ char addr[TOR_ADDR_BUF_LEN+1];
++
++ if (options->Socks4Proxy) {
++ tor_addr_to_str(addr, &options->Socks4ProxyAddr, sizeof(addr), 1);
++ tor_asprintf(&uri, "socks4a://%s:%d", addr, options->Socks4ProxyPort);
++ } else if (options->Socks5Proxy) {
++ tor_addr_to_str(addr, &options->Socks5ProxyAddr, sizeof(addr), 1);
++ if (!options->Socks5ProxyUsername && !options->Socks5ProxyPassword) {
++ tor_asprintf(&uri, "socks5://%s:%d", addr, options->Socks5ProxyPort);
++ } else {
++ tor_asprintf(&uri, "socks5://%s:%s@%s:%d",
++ options->Socks5ProxyUsername,
++ options->Socks5ProxyPassword,
++ addr, options->Socks5ProxyPort);
++ }
++ } else if (options->HTTPSProxy) {
++ tor_addr_to_str(addr, &options->HTTPSProxyAddr, sizeof(addr), 1);
++ if (!options->HTTPSProxyAuthenticator) {
++ tor_asprintf(&uri, "http://%s:%d", addr, options->HTTPSProxyPort);
++ } else {
++ tor_asprintf(&uri, "http://%s@%s:%d", options->HTTPSProxyAuthenticator,
++ addr, options->HTTPSProxyPort);
++ }
++ }
++ }
++
++ return uri;
++}
++
+ /** Handle a configured or broken managed proxy <b>mp</b>. */
+ static void
+ handle_finished_proxy(managed_proxy_t *mp)
+@@ -743,6 +801,12 @@ handle_finished_proxy(managed_proxy_t *mp)
+ managed_proxy_destroy(mp, 0); /* destroy it but don't terminate */
+ break;
+ case PT_PROTO_CONFIGURED: /* if configured correctly: */
++ if (mp->proxy_uri && !mp->proxy_supported) {
++ log_warn(LD_CONFIG, "Managed proxy '%s' did not configure the "
++ "specified outgoing proxy.", mp->argv[0]);
++ managed_proxy_destroy(mp, 1); /* annihilate it. */
++ break;
++ }
+ register_proxy(mp); /* register its transports */
+ mp->conf_state = PT_PROTO_COMPLETED; /* and mark it as completed. */
+ break;
+@@ -860,6 +924,22 @@ handle_proxy_line(const char *line, managed_proxy_t *mp)
+ goto err;
+
+ return;
++ } else if (!strcmpstart(line, PROTO_PROXY_DONE)) {
++ if (mp->conf_state != PT_PROTO_ACCEPTING_METHODS)
++ goto err;
++
++ if (mp->proxy_uri) {
++ mp->proxy_supported = 1;
++ return;
++ }
++
++ /* No proxy was configured, this should log */
++ } else if (!strcmpstart(line, PROTO_PROXY_ERROR)) {
++ if (mp->conf_state != PT_PROTO_ACCEPTING_METHODS)
++ goto err;
++
++ parse_proxy_error(line);
++ goto err;
+ } else if (!strcmpstart(line, SPAWN_ERROR_MESSAGE)) {
+ /* managed proxy launch failed: parse error message to learn why. */
+ int retval, child_state, saved_errno;
+@@ -1126,6 +1206,21 @@ parse_cmethod_line(const char *line, managed_proxy_t *mp)
+ return r;
+ }
+
++/** Parses an PROXY-ERROR <b>line</b> and warns the user accordingly. */
++STATIC void
++parse_proxy_error(const char *line)
++{
++ /* (Length of the protocol string) plus (a space) and (the first char of
++ the error message) */
++ if (strlen(line) < (strlen(PROTO_PROXY_ERROR) + 2))
++ log_notice(LD_CONFIG, "Managed proxy sent us an %s without an error "
++ "message.", PROTO_PROXY_ERROR);
++
++ log_warn(LD_CONFIG, "Managed proxy failed to configure the "
++ "pluggable transport's outgoing proxy. (%s)",
++ line+strlen(PROTO_PROXY_ERROR)+1);
++}
++
+ /** Return a newly allocated string that tor should place in
+ * TOR_PT_SERVER_TRANSPORT_OPTIONS while configuring the server
+ * manged proxy in <b>mp</b>. Return NULL if no such options are found. */
+@@ -1286,6 +1381,14 @@ create_managed_proxy_environment(const managed_proxy_t *mp)
+ } else {
+ smartlist_add_asprintf(envs, "TOR_PT_EXTENDED_SERVER_PORT=");
+ }
++ } else {
++ /* If ClientTransportPlugin has a HTTPS/SOCKS proxy configured, set the
++ * TOR_PT_PROXY line.
++ */
++
++ if (mp->proxy_uri) {
++ smartlist_add_asprintf(envs, "TOR_PT_PROXY=%s", mp->proxy_uri);
++ }
+ }
+
+ SMARTLIST_FOREACH_BEGIN(envs, const char *, env_var) {
+@@ -1318,6 +1421,7 @@ managed_proxy_create(const smartlist_t *transport_list,
+ mp->is_server = is_server;
+ mp->argv = proxy_argv;
+ mp->transports = smartlist_new();
++ mp->proxy_uri = get_pt_proxy_uri();
+
+ mp->transports_to_launch = smartlist_new();
+ SMARTLIST_FOREACH(transport_list, const char *, transport,
+diff --git a/src/or/transports.h b/src/or/transports.h
+index 7b524f2..5b8144b 100644
+--- a/src/or/transports.h
++++ b/src/or/transports.h
+@@ -81,6 +81,9 @@ typedef struct {
+ char **argv; /* the cli arguments of this proxy */
+ int conf_protocol; /* the configuration protocol version used */
+
++ char *proxy_uri; /* the outgoing proxy in TOR_PT_PROXY URI format */
++ int proxy_supported : 1; /* the proxy claims to honor TOR_PT_PROXY */
++
+ int is_server; /* is it a server proxy? */
+
+ /* A pointer to the process handle of this managed proxy. */
+@@ -112,6 +115,7 @@ STATIC int parse_smethod_line(const char *line, managed_proxy_t *mp);
+
+ STATIC int parse_version(const char *line, managed_proxy_t *mp);
+ STATIC void parse_env_error(const char *line);
++STATIC void parse_proxy_error(const char *line);
+ STATIC void handle_proxy_line(const char *line, managed_proxy_t *mp);
+ STATIC char *get_transport_options_for_server_proxy(const managed_proxy_t *mp);
+
+@@ -123,6 +127,8 @@ STATIC managed_proxy_t *managed_proxy_create(const smartlist_t *transport_list,
+
+ STATIC int configure_proxy(managed_proxy_t *mp);
+
++STATIC char* get_pt_proxy_uri(void);
++
+ #endif
+
+ #endif
+diff --git a/src/test/test_pt.c b/src/test/test_pt.c
+index 3277921..ada8dbe 100644
+--- a/src/test/test_pt.c
++++ b/src/test/test_pt.c
+@@ -435,6 +435,85 @@ test_pt_configure_proxy(void *arg)
+ }
+ }
+
++/* Test the get_pt_proxy_uri() function. */
++static void
++test_get_pt_proxy_uri(void *arg)
++{
++ or_options_t *options = get_options_mutable();
++ char *uri = NULL;
++ int ret;
++ (void) arg;
++
++ /* Test with no proxy. */
++ uri = get_pt_proxy_uri();
++ tt_assert(uri == NULL);
++
++ /* Test with a SOCKS4 proxy. */
++ options->Socks4Proxy = "192.0.2.1:1080";
++ ret = tor_addr_port_lookup(options->Socks4Proxy,
++ &options->Socks4ProxyAddr,
++ &options->Socks4ProxyPort);
++ tt_assert(ret == 0);
++ uri = get_pt_proxy_uri();
++ tt_str_op(uri, ==, "socks4a://192.0.2.1:1080");
++ tor_free(uri);
++
++ options->Socks4Proxy = NULL;
++
++ /* Test with a SOCKS5 proxy, no username/password. */
++ options->Socks5Proxy = "192.0.2.1:1080";
++ ret = tor_addr_port_lookup(options->Socks5Proxy,
++ &options->Socks5ProxyAddr,
++ &options->Socks5ProxyPort);
++ tt_assert(ret == 0);
++ uri = get_pt_proxy_uri();
++ tt_str_op(uri, ==, "socks5://192.0.2.1:1080");
++ tor_free(uri);
++
++ /* Test with a SOCKS5 proxy, with username/password. */
++ options->Socks5ProxyUsername = "hwest";
++ options->Socks5ProxyPassword = "r34n1m470r";
++ uri = get_pt_proxy_uri();
++ tt_str_op(uri, ==, "socks5://hwest:r34n1m470r@192.0.2.1:1080");
++ tor_free(uri);
++
++ options->Socks5Proxy = NULL;
++
++ /* Test with a HTTPS proxy, no authenticator. */
++ options->HTTPSProxy = "192.0.2.1:80";
++ ret = tor_addr_port_lookup(options->HTTPSProxy,
++ &options->HTTPSProxyAddr,
++ &options->HTTPSProxyPort);
++ tt_assert(ret == 0);
++ uri = get_pt_proxy_uri();
++ tt_str_op(uri, ==, "http://192.0.2.1:80");
++ tor_free(uri);
++
++ /* Test with a HTTPS proxy, with authenticator. */
++ options->HTTPSProxyAuthenticator = "hwest:r34n1m470r";
++ uri = get_pt_proxy_uri();
++ tt_str_op(uri, ==, "http://hwest:r34n1m470r@192.0.2.1:80");
++ tor_free(uri);
++
++ options->HTTPSProxy = NULL;
++
++ /* Token nod to the fact that IPv6 exists. */
++ options->Socks4Proxy = "[2001:db8::1]:1080";
++ ret = tor_addr_port_lookup(options->Socks4Proxy,
++ &options->Socks4ProxyAddr,
++ &options->Socks4ProxyPort);
++ tt_assert(ret == 0);
++ uri = get_pt_proxy_uri();
++ tt_str_op(uri, ==, "socks4a://[2001:db8::1]:1080");
++ tor_free(uri);
++
++
++ done:
++ if (uri)
++ tor_free(uri);
++}
++
++
+ #define PT_LEGACY(name) \
+ { #name, legacy_test_helper, 0, &legacy_setup, test_pt_ ## name }
+
+@@ -447,6 +526,8 @@ struct testcase_t pt_tests[] = {
+ NULL, NULL },
+ { "configure_proxy",test_pt_configure_proxy, TT_FORK,
+ NULL, NULL },
++ { "get_pt_proxy_uri", test_get_pt_proxy_uri, TT_FORK,
++ NULL, NULL },
+ END_OF_TESTCASES
+ };
+
+--
+1.8.1.2
+
+From bc59556e87a0b0ebaf2adfc57147522f05b3f974 Mon Sep 17 00:00:00 2001
+From: Yawning Angel <yawning(a)schwanenlied.me>
+Date: Mon, 14 Apr 2014 21:51:34 +0000
+Subject: [PATCH 2/5] Fixed the test build with --enable-gcc-warnings
+
+---
+ src/test/test_pt.c | 28 ++++++++++++++--------------
+ 1 file changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/src/test/test_pt.c b/src/test/test_pt.c
+index ada8dbe..ac604eb 100644
+--- a/src/test/test_pt.c
++++ b/src/test/test_pt.c
+@@ -449,7 +449,7 @@ test_get_pt_proxy_uri(void *arg)
+ tt_assert(uri == NULL);
+
+ /* Test with a SOCKS4 proxy. */
+- options->Socks4Proxy = "192.0.2.1:1080";
++ options->Socks4Proxy = tor_strdup("192.0.2.1:1080");
+ ret = tor_addr_port_lookup(options->Socks4Proxy,
+ &options->Socks4ProxyAddr,
+ &options->Socks4ProxyPort);
+@@ -457,11 +457,10 @@ test_get_pt_proxy_uri(void *arg)
+ uri = get_pt_proxy_uri();
+ tt_str_op(uri, ==, "socks4a://192.0.2.1:1080");
+ tor_free(uri);
+-
+- options->Socks4Proxy = NULL;
++ tor_free(options->Socks4Proxy);
+
+ /* Test with a SOCKS5 proxy, no username/password. */
+- options->Socks5Proxy = "192.0.2.1:1080";
++ options->Socks5Proxy = tor_strdup("192.0.2.1:1080");
+ ret = tor_addr_port_lookup(options->Socks5Proxy,
+ &options->Socks5ProxyAddr,
+ &options->Socks5ProxyPort);
+@@ -471,16 +470,17 @@ test_get_pt_proxy_uri(void *arg)
+ tor_free(uri);
+
+ /* Test with a SOCKS5 proxy, with username/password. */
+- options->Socks5ProxyUsername = "hwest";
+- options->Socks5ProxyPassword = "r34n1m470r";
++ options->Socks5ProxyUsername = tor_strdup("hwest");
++ options->Socks5ProxyPassword = tor_strdup("r34n1m470r");
+ uri = get_pt_proxy_uri();
+ tt_str_op(uri, ==, "socks5://hwest:r34n1m470r@192.0.2.1:1080");
+ tor_free(uri);
+-
+- options->Socks5Proxy = NULL;
++ tor_free(options->Socks5Proxy);
++ tor_free(options->Socks5ProxyUsername);
++ tor_free(options->Socks5ProxyPassword);
+
+ /* Test with a HTTPS proxy, no authenticator. */
+- options->HTTPSProxy = "192.0.2.1:80";
++ options->HTTPSProxy = tor_strdup("192.0.2.1:80");
+ ret = tor_addr_port_lookup(options->HTTPSProxy,
+ &options->HTTPSProxyAddr,
+ &options->HTTPSProxyPort);
+@@ -490,15 +490,15 @@ test_get_pt_proxy_uri(void *arg)
+ tor_free(uri);
+
+ /* Test with a HTTPS proxy, with authenticator. */
+- options->HTTPSProxyAuthenticator = "hwest:r34n1m470r";
++ options->HTTPSProxyAuthenticator = tor_strdup("hwest:r34n1m470r");
+ uri = get_pt_proxy_uri();
+ tt_str_op(uri, ==, "http://hwest:r34n1m470r@192.0.2.1:80");
+ tor_free(uri);
+-
+- options->HTTPSProxy = NULL;
++ tor_free(options->HTTPSProxy);
++ tor_free(options->HTTPSProxyAuthenticator);
+
+ /* Token nod to the fact that IPv6 exists. */
+- options->Socks4Proxy = "[2001:db8::1]:1080";
++ options->Socks4Proxy = tor_strdup("[2001:db8::1]:1080");
+ ret = tor_addr_port_lookup(options->Socks4Proxy,
+ &options->Socks4ProxyAddr,
+ &options->Socks4ProxyPort);
+@@ -506,7 +506,7 @@ test_get_pt_proxy_uri(void *arg)
+ uri = get_pt_proxy_uri();
+ tt_str_op(uri, ==, "socks4a://[2001:db8::1]:1080");
+ tor_free(uri);
+-
++ tor_free(options->Socks4Proxy);
+
+ done:
+ if (uri)
+--
+1.8.1.2
+
+From 3c991178926f39ffacef1d86e403f5d360d30404 Mon Sep 17 00:00:00 2001
+From: Yawning Angel <yawning(a)schwanenlied.me>
+Date: Thu, 1 May 2014 03:30:09 +0000
+Subject: [PATCH 3/5] Remove get_bridge_pt_addrport().
+
+The code was not disambiguating ClientTransportPlugin configured and
+not used, and ClientTransportPlugin configured, but in a failed state.
+
+The right thing to do is to undo moving the get_transport_by_addrport()
+call back into get_proxy_addrport(), and remove and explicit check for
+using a Bridge since by the time the check is made, if a Bridge is
+being used, it is PT/proxy-less.
+---
+ src/or/connection.c | 46 ++++++++++++----------------------------------
+ 1 file changed, 12 insertions(+), 34 deletions(-)
+
+diff --git a/src/or/connection.c b/src/or/connection.c
+index 93d164c..9a766d6 100644
+--- a/src/or/connection.c
++++ b/src/or/connection.c
+@@ -86,8 +86,6 @@ static int connection_read_https_proxy_response(connection_t *conn);
+ static void connection_send_socks5_connect(connection_t *conn);
+ static const char *proxy_type_to_string(int proxy_type);
+ static int get_proxy_type(void);
+-static int get_bridge_pt_addrport(tor_addr_t *addr, uint16_t *port,
+- int *proxy_type, const connection_t *conn);
+
+ /** The last addresses that our network interface seemed to have been
+ * binding to. We use this as one way to detect when our IP changes.
+@@ -4735,35 +4733,6 @@ assert_connection_ok(connection_t *conn, time_t now)
+ }
+
+ /** Fills <b>addr</b> and <b>port</b> with the details of the global
+- * pluggable transport or bridge we are using.
+- * <b>conn</b> contains the connection we are using the PT/bridge for.
+- *
+- * Return 0 on success, -1 on failure.
+- */
+-static int
+-get_bridge_pt_addrport(tor_addr_t *addr, uint16_t *port, int *proxy_type,
+- const connection_t *conn)
+-{
+- const or_options_t *options = get_options();
+-
+- if (options->ClientTransportPlugin || options->Bridges) {
+- const transport_t *transport = NULL;
+- int r;
+- r = get_transport_by_bridge_addrport(&conn->addr, conn->port, &transport);
+- if (r<0)
+- return -1;
+- if (transport) { /* transport found */
+- tor_addr_copy(addr, &transport->addr);
+- *port = transport->port;
+- *proxy_type = transport->socks_version;
+- return 0;
+- }
+- }
+-
+- return -1;
+-}
+-
+-/** Fills <b>addr</b> and <b>port</b> with the details of the global
+ * proxy server we are using.
+ * <b>conn</b> contains the connection we are using the proxy for.
+ *
+@@ -4781,8 +4750,19 @@ get_proxy_addrport(tor_addr_t *addr, uint16_t *port, int *proxy_type,
+ * the config to have unused ClientTransportPlugin entries.
+ */
+ if (options->ClientTransportPlugin) {
+- if (get_bridge_pt_addrport(addr, port, proxy_type, conn) == 0)
++ const transport_t *transport = NULL;
++ int r;
++ r = get_transport_by_bridge_addrport(&conn->addr, conn->port, &transport);
++ if (r<0)
++ return -1;
++ if (transport) { /* transport found */
++ tor_addr_copy(addr, &transport->addr);
++ *port = transport->port;
++ *proxy_type = transport->socks_version;
+ return 0;
++ }
++
++ /* Unused ClientTransportPlugin. */
+ }
+
+ if (options->HTTPSProxy) {
+@@ -4800,8 +4780,6 @@ get_proxy_addrport(tor_addr_t *addr, uint16_t *port, int *proxy_type,
+ *port = options->Socks5ProxyPort;
+ *proxy_type = PROXY_SOCKS5;
+ return 0;
+- } else if (options->Bridges) {
+- return get_bridge_pt_addrport(addr, port, proxy_type, conn);
+ }
+
+ *proxy_type = PROXY_NONE;
+--
+1.8.1.2
+
+From c4c41bb8e31ab39f2c7fe3c8f11ee727a65c3e09 Mon Sep 17 00:00:00 2001
+From: Yawning Angel <yawning(a)schwanenlied.me>
+Date: Thu, 1 May 2014 03:43:53 +0000
+Subject: [PATCH 4/5] Log the correct proxy type on failure.
+
+get_proxy_addrport fills in proxy_type with the correct value, so there
+is no point in logging something that's a "best guess" based off the
+config.
+---
+ src/or/connection.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/or/connection.c b/src/or/connection.c
+index 9a766d6..b2e6a69 100644
+--- a/src/or/connection.c
++++ b/src/or/connection.c
+@@ -4801,7 +4801,7 @@ log_failed_proxy_connection(connection_t *conn)
+ log_warn(LD_NET,
+ "The connection to the %s proxy server at %s just failed. "
+ "Make sure that the proxy server is up and running.",
+- proxy_type_to_string(get_proxy_type()),
++ proxy_type_to_string(proxy_type),
+ fmt_addrport(&proxy_addr, proxy_port));
+ }
+
+--
+1.8.1.2
+
+From e3b5b7f4b9e5ef4637f0719d54be9f534e41019c Mon Sep 17 00:00:00 2001
+From: Yawning Angel <yawning(a)schwanenlied.me>
+Date: Thu, 1 May 2014 18:58:53 +0000
+Subject: [PATCH 5/5] Improve the log message when a transport doesn't support
+ proxies.
+
+Per feedback, explicltly note that the transport will be killed when it
+does not acknowledge the configured outgoing proxy.
+---
+ src/or/transports.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/or/transports.c b/src/or/transports.c
+index 8e82a41..3991bd3 100644
+--- a/src/or/transports.c
++++ b/src/or/transports.c
+@@ -803,7 +803,8 @@ handle_finished_proxy(managed_proxy_t *mp)
+ case PT_PROTO_CONFIGURED: /* if configured correctly: */
+ if (mp->proxy_uri && !mp->proxy_supported) {
+ log_warn(LD_CONFIG, "Managed proxy '%s' did not configure the "
+- "specified outgoing proxy.", mp->argv[0]);
++ "specified outgoing proxy and will be terminated.",
++ mp->argv[0]);
+ managed_proxy_destroy(mp, 1); /* annihilate it. */
+ break;
+ }
+--
+1.8.1.2
+
1
0

[tor-launcher/master] Bug #11772: Proxy Type menu not set correctly
by brade@torproject.org 06 May '14
by brade@torproject.org 06 May '14
06 May '14
commit da9c9ad4b61ed0ce002b5e771f50991640bc9f43
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue May 6 09:53:06 2014 -0400
Bug #11772: Proxy Type menu not set correctly
Fixed problem where the Proxy Type menu was not restored to the
configured value after restarting the browser.
---
src/chrome/content/network-settings.js | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/chrome/content/network-settings.js b/src/chrome/content/network-settings.js
index 98028e2..c6b6cf2 100644
--- a/src/chrome/content/network-settings.js
+++ b/src/chrome/content/network-settings.js
@@ -1186,27 +1186,27 @@ function setElemValue(aID, aValue)
var elem = document.getElementById(aID);
if (elem)
{
+ var val = aValue;
switch (elem.tagName)
{
case "checkbox":
- elem.checked = aValue;
+ elem.checked = val;
toggleElemUI(elem);
break;
case "textbox":
- var s = aValue;
if (Array.isArray(aValue))
{
- s = "";
+ val = "";
for (var i = 0; i < aValue.length; ++i)
{
- if (s.length > 0)
- s += '\n';
- s += aValue[i];
+ if (val.length > 0)
+ val += '\n';
+ val += aValue[i];
}
}
// fallthru
case "menulist":
- elem.value = (s) ? s : "";
+ elem.value = (val) ? val : "";
break;
}
}
1
0

[tor-browser-bundle/master] Make 3.6.x officially the 'stable' series.
by mikeperry@torproject.org 06 May '14
by mikeperry@torproject.org 06 May '14
06 May '14
commit 1259ad85be7f7299b94da14f53f850d544b6cd12
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Tue May 6 05:23:47 2014 -0700
Make 3.6.x officially the 'stable' series.
---
gitian/versions | 21 +++++++++++++--------
1 file changed, 13 insertions(+), 8 deletions(-)
diff --git a/gitian/versions b/gitian/versions
index a410fff..c3faa7b 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -1,5 +1,6 @@
-TORBROWSER_VERSION=3.5.5-pre
-BUNDLE_LOCALES="ar de es-ES fa fr it ko nl pl pt-PT ru vi zh-CN"
+TORBROWSER_VERSION=3.6.1
+BUNDLE_LOCALES="ar de es-ES fa fr it ko nl pl pt-PT ru tr vi zh-CN"
+BUILD_PT_BUNDLES=1
VERIFY_TAGS=1
@@ -7,17 +8,17 @@ FIREFOX_VERSION=24.5.0esr
TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build3
TOR_TAG=tor-0.2.4.21
-TORLAUNCHER_TAG=0.2.4.4
-TORBUTTON_TAG=1.6.7.0
+TORLAUNCHER_TAG=0.2.5.4
+TORBUTTON_TAG=1.6.9.0
HTTPSE_TAG=3.4.5
NSIS_TAG=v0.1
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
MINGW_REV=6184
PYPTLIB_TAG=pyptlib-0.0.5
-OBFSPROXY_TAG=obfsproxy-0.2.8
+OBFSPROXY_TAG=obfsproxy-0.2.4
FLASHPROXY_TAG=1.6
-FTEPROXY_TAG=0.2.13
+FTEPROXY_TAG=55d81d2f0a4fab759c1ed8aca78dd3a5db6e75c6 # unsigned 0.2.13
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
GITIAN_TAG=tor-browser-builder-3.x-5
@@ -37,11 +38,13 @@ M2CRYPTO_VER=0.21.1
PY2EXE_VER=0.6.9
SETUPTOOLS_VER=1.4
LXML_VER=3.3.5
+HTTPSE_VER=3.5.1
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
GMP_PACKAGE=gmp-${GMP_VER}.tar.bz2
-NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.20-fn+fx+sm.xpi
+NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.22-sm+fx+fn.xpi
+HTTPSE_PACKAGE=https-everywhere-${HTTPSE_VER}.xpi
TOOLCHAIN4_PACKAGE=x86_64-apple-darwin10.tar.xz
TOOLCHAIN4_OLD_PACKAGE=multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz
OSXSDK_PACKAGE=apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
@@ -67,7 +70,8 @@ GMP_HASH=752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160
OSXSDK_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
TOOLCHAIN4_HASH=7b71bfe02820409b994c5c33a7eab81a81c72550f5da85ff7af70da3da244645
TOOLCHAIN4_OLD_HASH=65c1b2d302358a6b95a26c6828a66908a199276193bb0b268f2dcc1a997731e9
-NOSCRIPT_HASH=dae2abeb3c57240168c1fdfbf6c6664fa64859fb430ca1a05c218f81371f5ad1
+NOSCRIPT_HASH=5ec75d2f6fbf3ff7950a8eea2c7878d887ed3916aa89f99ec76b322b1e140c08
+HTTPSE_HASH=62ac6560bb224a8f5557722153a72fb245b30b345940c537423bfbb7d8144e29
MINGW_HASH=a5b03d0448a309341be4cf34c6ad3016d04c89952dca5243254b4d6c738b164f
MSVCR100_HASH=1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067
PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
@@ -88,6 +92,7 @@ OSXSDK_URL=https://launchpad.net/~flosoft/+archive/cross-apple/+files/${OSX…
BINUTILS_URL=https://ftp.gnu.org/gnu/binutils/${BINUTILS_PACKAGE}
GCC_URL=https://ftp.gnu.org/gnu/gcc/gcc-${GCC_VER}/${GCC_PACKAGE}
NOSCRIPT_URL=https://addons.cdn.mozilla.net/storage/public-staging/722/${NO…
+HTTPSE_URL=https://www.eff.org/files/${HTTPSE_PACKAGE}
PYTHON_URL=http://www.python.org/ftp/python/${PYTHON_VER}/${PYTHON_PACKAGE}
PYTHON_MSI_URL=http://www.python.org/ftp/python/${PYTHON_VER}/${PYTHON_MSI_…
PYCRYPTO_URL=https://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/${PYCRYPTO_PAC…
1
0

[tor-launcher/master] Bug #11699: Change & #160 to   in network-settings.dtd
by brade@torproject.org 05 May '14
by brade@torproject.org 05 May '14
05 May '14
commit bc1edfcd37df551c13e8750d384eeb05b91699ff
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Mon May 5 14:32:06 2014 -0400
Bug #11699: Change &#160 to   in network-settings.dtd
---
src/chrome/locale/ach/network-settings.dtd | 8 ++++----
src/chrome/locale/ady/network-settings.dtd | 8 ++++----
src/chrome/locale/af-ZA/network-settings.dtd | 8 ++++----
src/chrome/locale/af/network-settings.dtd | 8 ++++----
src/chrome/locale/ak/network-settings.dtd | 8 ++++----
src/chrome/locale/am-ET/network-settings.dtd | 8 ++++----
src/chrome/locale/am/network-settings.dtd | 8 ++++----
src/chrome/locale/ar/network-settings.dtd | 4 ++--
src/chrome/locale/arn/network-settings.dtd | 8 ++++----
src/chrome/locale/ast/network-settings.dtd | 8 ++++----
src/chrome/locale/az/network-settings.dtd | 8 ++++----
src/chrome/locale/be/network-settings.dtd | 8 ++++----
src/chrome/locale/bg-BG/network-settings.dtd | 8 ++++----
src/chrome/locale/bg/network-settings.dtd | 8 ++++----
src/chrome/locale/bn-BD/network-settings.dtd | 8 ++++----
src/chrome/locale/bn-IN/network-settings.dtd | 8 ++++----
src/chrome/locale/bn/network-settings.dtd | 8 ++++----
src/chrome/locale/bo/network-settings.dtd | 8 ++++----
src/chrome/locale/br/network-settings.dtd | 8 ++++----
src/chrome/locale/bs/network-settings.dtd | 8 ++++----
src/chrome/locale/ca-ES/network-settings.dtd | 8 ++++----
src/chrome/locale/ca/network-settings.dtd | 8 ++++----
src/chrome/locale/cs-CZ/network-settings.dtd | 8 ++++----
src/chrome/locale/cs/network-settings.dtd | 8 ++++----
src/chrome/locale/csb/network-settings.dtd | 8 ++++----
src/chrome/locale/cv/network-settings.dtd | 8 ++++----
src/chrome/locale/cy/network-settings.dtd | 8 ++++----
src/chrome/locale/da/network-settings.dtd | 8 ++++----
src/chrome/locale/de/network-settings.dtd | 8 ++++----
src/chrome/locale/dz/network-settings.dtd | 8 ++++----
src/chrome/locale/el-GR/network-settings.dtd | 8 ++++----
src/chrome/locale/el/network-settings.dtd | 8 ++++----
src/chrome/locale/en-GB/network-settings.dtd | 8 ++++----
src/chrome/locale/en/network-settings.dtd | 8 ++++----
src/chrome/locale/eo/network-settings.dtd | 8 ++++----
src/chrome/locale/es-AR/network-settings.dtd | 8 ++++----
src/chrome/locale/es-CL/network-settings.dtd | 8 ++++----
src/chrome/locale/es-CO/network-settings.dtd | 8 ++++----
src/chrome/locale/es-MX/network-settings.dtd | 8 ++++----
src/chrome/locale/es-NI/network-settings.dtd | 8 ++++----
src/chrome/locale/es/network-settings.dtd | 8 ++++----
src/chrome/locale/et/network-settings.dtd | 8 ++++----
src/chrome/locale/eu/network-settings.dtd | 8 ++++----
src/chrome/locale/fa/network-settings.dtd | 8 ++++----
src/chrome/locale/fi/network-settings.dtd | 8 ++++----
src/chrome/locale/fil/network-settings.dtd | 8 ++++----
src/chrome/locale/fo/network-settings.dtd | 8 ++++----
src/chrome/locale/fr-CA/network-settings.dtd | 8 ++++----
src/chrome/locale/fr/network-settings.dtd | 8 ++++----
src/chrome/locale/fur/network-settings.dtd | 8 ++++----
src/chrome/locale/fy/network-settings.dtd | 8 ++++----
src/chrome/locale/ga/network-settings.dtd | 8 ++++----
src/chrome/locale/gl/network-settings.dtd | 8 ++++----
src/chrome/locale/gu-IN/network-settings.dtd | 8 ++++----
src/chrome/locale/gu/network-settings.dtd | 8 ++++----
src/chrome/locale/gun/network-settings.dtd | 8 ++++----
src/chrome/locale/ha/network-settings.dtd | 8 ++++----
src/chrome/locale/he/network-settings.dtd | 8 ++++----
src/chrome/locale/hi/network-settings.dtd | 8 ++++----
src/chrome/locale/hr-HR/network-settings.dtd | 8 ++++----
src/chrome/locale/hr/network-settings.dtd | 8 ++++----
src/chrome/locale/ht/network-settings.dtd | 8 ++++----
src/chrome/locale/hu/network-settings.dtd | 8 ++++----
src/chrome/locale/hy-AM/network-settings.dtd | 8 ++++----
src/chrome/locale/hy/network-settings.dtd | 8 ++++----
src/chrome/locale/ia/network-settings.dtd | 8 ++++----
src/chrome/locale/id/network-settings.dtd | 8 ++++----
src/chrome/locale/is/network-settings.dtd | 8 ++++----
src/chrome/locale/it/network-settings.dtd | 8 ++++----
src/chrome/locale/ja/network-settings.dtd | 8 ++++----
src/chrome/locale/jv/network-settings.dtd | 8 ++++----
src/chrome/locale/ka/network-settings.dtd | 8 ++++----
src/chrome/locale/kk/network-settings.dtd | 8 ++++----
src/chrome/locale/km/network-settings.dtd | 8 ++++----
src/chrome/locale/kn/network-settings.dtd | 8 ++++----
src/chrome/locale/ko-KR/network-settings.dtd | 8 ++++----
src/chrome/locale/ko/network-settings.dtd | 8 ++++----
src/chrome/locale/ku/network-settings.dtd | 8 ++++----
src/chrome/locale/kw/network-settings.dtd | 8 ++++----
src/chrome/locale/ky/network-settings.dtd | 8 ++++----
src/chrome/locale/lb/network-settings.dtd | 8 ++++----
src/chrome/locale/lg/network-settings.dtd | 8 ++++----
src/chrome/locale/ln/network-settings.dtd | 8 ++++----
src/chrome/locale/lo/network-settings.dtd | 8 ++++----
src/chrome/locale/lt/network-settings.dtd | 8 ++++----
src/chrome/locale/lv/network-settings.dtd | 8 ++++----
src/chrome/locale/mg/network-settings.dtd | 8 ++++----
src/chrome/locale/mi/network-settings.dtd | 8 ++++----
src/chrome/locale/mk/network-settings.dtd | 8 ++++----
src/chrome/locale/ml/network-settings.dtd | 8 ++++----
src/chrome/locale/mn/network-settings.dtd | 8 ++++----
src/chrome/locale/mr/network-settings.dtd | 8 ++++----
src/chrome/locale/ms-MY/network-settings.dtd | 8 ++++----
src/chrome/locale/mt/network-settings.dtd | 8 ++++----
src/chrome/locale/my/network-settings.dtd | 8 ++++----
src/chrome/locale/nah/network-settings.dtd | 8 ++++----
src/chrome/locale/nap/network-settings.dtd | 8 ++++----
src/chrome/locale/nb/network-settings.dtd | 8 ++++----
src/chrome/locale/nds/network-settings.dtd | 8 ++++----
src/chrome/locale/ne/network-settings.dtd | 8 ++++----
src/chrome/locale/nl-BE/network-settings.dtd | 8 ++++----
src/chrome/locale/nl/network-settings.dtd | 8 ++++----
src/chrome/locale/nn/network-settings.dtd | 8 ++++----
src/chrome/locale/nso/network-settings.dtd | 8 ++++----
src/chrome/locale/oc/network-settings.dtd | 8 ++++----
src/chrome/locale/or/network-settings.dtd | 8 ++++----
src/chrome/locale/pa/network-settings.dtd | 8 ++++----
src/chrome/locale/pap/network-settings.dtd | 8 ++++----
src/chrome/locale/pl/network-settings.dtd | 8 ++++----
src/chrome/locale/pms/network-settings.dtd | 8 ++++----
src/chrome/locale/ps/network-settings.dtd | 8 ++++----
src/chrome/locale/pt-BR/network-settings.dtd | 8 ++++----
src/chrome/locale/pt/network-settings.dtd | 8 ++++----
src/chrome/locale/ro/network-settings.dtd | 8 ++++----
src/chrome/locale/ru/network-settings.dtd | 8 ++++----
src/chrome/locale/ru(a)petr1708/network-settings.dtd | 8 ++++----
src/chrome/locale/sco/network-settings.dtd | 8 ++++----
src/chrome/locale/si-LK/network-settings.dtd | 8 ++++----
src/chrome/locale/si/network-settings.dtd | 8 ++++----
src/chrome/locale/sk-SK/network-settings.dtd | 8 ++++----
src/chrome/locale/sk/network-settings.dtd | 8 ++++----
src/chrome/locale/sl-SI/network-settings.dtd | 8 ++++----
src/chrome/locale/sl/network-settings.dtd | 8 ++++----
src/chrome/locale/sn/network-settings.dtd | 8 ++++----
src/chrome/locale/so/network-settings.dtd | 8 ++++----
src/chrome/locale/son/network-settings.dtd | 8 ++++----
src/chrome/locale/sq-AL/network-settings.dtd | 8 ++++----
src/chrome/locale/sq/network-settings.dtd | 8 ++++----
src/chrome/locale/sr/network-settings.dtd | 8 ++++----
src/chrome/locale/sr(a)latin/network-settings.dtd | 8 ++++----
src/chrome/locale/st/network-settings.dtd | 8 ++++----
src/chrome/locale/su/network-settings.dtd | 8 ++++----
src/chrome/locale/sv/network-settings.dtd | 8 ++++----
src/chrome/locale/sw/network-settings.dtd | 8 ++++----
src/chrome/locale/szl/network-settings.dtd | 8 ++++----
src/chrome/locale/ta/network-settings.dtd | 8 ++++----
src/chrome/locale/te-IN/network-settings.dtd | 8 ++++----
src/chrome/locale/te/network-settings.dtd | 8 ++++----
src/chrome/locale/tg/network-settings.dtd | 8 ++++----
src/chrome/locale/th/network-settings.dtd | 8 ++++----
src/chrome/locale/ti/network-settings.dtd | 8 ++++----
src/chrome/locale/tk/network-settings.dtd | 8 ++++----
src/chrome/locale/tr/network-settings.dtd | 8 ++++----
src/chrome/locale/uk/network-settings.dtd | 8 ++++----
src/chrome/locale/ur-PK/network-settings.dtd | 8 ++++----
src/chrome/locale/ur/network-settings.dtd | 8 ++++----
src/chrome/locale/uz/network-settings.dtd | 8 ++++----
src/chrome/locale/ve/network-settings.dtd | 8 ++++----
src/chrome/locale/vi/network-settings.dtd | 4 ++--
src/chrome/locale/wa/network-settings.dtd | 8 ++++----
src/chrome/locale/wo/network-settings.dtd | 8 ++++----
src/chrome/locale/zh-CN.GB2312/network-settings.dtd | 8 ++++----
src/chrome/locale/zh-HK/network-settings.dtd | 8 ++++----
src/chrome/locale/zh-TW/network-settings.dtd | 8 ++++----
src/chrome/locale/zh/network-settings.dtd | 8 ++++----
src/chrome/locale/zu/network-settings.dtd | 8 ++++----
156 files changed, 620 insertions(+), 620 deletions(-)
diff --git a/src/chrome/locale/ach/network-settings.dtd b/src/chrome/locale/ach/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/ach/network-settings.dtd
+++ b/src/chrome/locale/ach/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ady/network-settings.dtd b/src/chrome/locale/ady/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/ady/network-settings.dtd
+++ b/src/chrome/locale/ady/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/af-ZA/network-settings.dtd b/src/chrome/locale/af-ZA/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/af-ZA/network-settings.dtd
+++ b/src/chrome/locale/af-ZA/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/af/network-settings.dtd b/src/chrome/locale/af/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/af/network-settings.dtd
+++ b/src/chrome/locale/af/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ak/network-settings.dtd b/src/chrome/locale/ak/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/ak/network-settings.dtd
+++ b/src/chrome/locale/ak/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/am-ET/network-settings.dtd b/src/chrome/locale/am-ET/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/am-ET/network-settings.dtd
+++ b/src/chrome/locale/am-ET/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/am/network-settings.dtd b/src/chrome/locale/am/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/am/network-settings.dtd
+++ b/src/chrome/locale/am/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ar/network-settings.dtd b/src/chrome/locale/ar/network-settings.dtd
index a2cbdb6..508b47a 100644
--- a/src/chrome/locale/ar/network-settings.dtd
+++ b/src/chrome/locale/ar/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "إذا لم تكن متأكدا من كيفية الإجابة على هذا السؤال، اختار لا. إذا واجهتك مشاكل في الاتصال بشبكة تور, غيير هذا الإعداد.">
<!ENTITY torSettings.enterFirewall "إدخل قائمة مفصولة بفواصل من المنافذ التي يسمح بها جدار الحماية.">
<!ENTITY torSettings.bridgeQuestion "هل يقوم مقدم خدمة الإنترنت (ISP) الذي تتعامل معه بحجب الاتصالات بشبكة Tor أو مراقبتها بطريقة أخرى؟">
-<!ENTITY torSettings.bridgeHelp "إذا لم تكن متأكدا من إجابة هذا السؤال، قم باختيار لا. &#160; إذا قمت باختيار نعم، فسيطلب منك تكوين جسور Tor والتي هي منافذ ترحيل غير مدرجة تصعب عملية حظر الاتصالات بشبكة Tor.">
+<!ENTITY torSettings.bridgeHelp "إذا لم تكن متأكدا من إجابة هذا السؤال، قم باختيار لا.   إذا قمت باختيار نعم، فسيطلب منك تكوين جسور Tor والتي هي منافذ ترحيل غير مدرجة تصعب عملية حظر الاتصالات بشبكة Tor.">
<!ENTITY torSettings.bridgeSettingsPrompt "يمكنك استخدام مجموعة الجسور المتوفرة أو الحصول على مجموعة مخصصة من الجسور.">
<!-- Other: -->
@@ -61,4 +61,4 @@
<!ENTITY torsettings.bridgeHelp3Heading "من خلال المستجيب التلقائي للبريد الإلكتروني">
<!ENTITY torsettings.bridgeHelp3 "ارسل بريد إلكتروني إلى bridges(a)torproject.org يحتوي علي 'get bridges' في قلب البريد. و حتي تضمن وصول ذلك البريد لنا بنجاح استخدم إما gmail.com أو yahoo.com">
<!ENTITY torsettings.bridgeHelp4Heading "من خلال مكتب المساعدة">
-<!ENTITY torsettings.bridgeHelp4 "يمكنك طلب عناوين الجسر، كحل أخير، من خلال إرسال رسالة بريد إلكتروني مهذبة إلى help(a)rt.torproject.org.&#160; يرجى ملاحظة أنه يجب أن يرد شخص ما على كل طلب.">
+<!ENTITY torsettings.bridgeHelp4 "يمكنك طلب عناوين الجسر، كحل أخير، من خلال إرسال رسالة بريد إلكتروني مهذبة إلى help(a)rt.torproject.org.  يرجى ملاحظة أنه يجب أن يرد شخص ما على كل طلب.">
diff --git a/src/chrome/locale/arn/network-settings.dtd b/src/chrome/locale/arn/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/arn/network-settings.dtd
+++ b/src/chrome/locale/arn/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ast/network-settings.dtd b/src/chrome/locale/ast/network-settings.dtd
index 2935543..7518bd5 100644
--- a/src/chrome/locale/ast/network-settings.dtd
+++ b/src/chrome/locale/ast/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/az/network-settings.dtd b/src/chrome/locale/az/network-settings.dtd
index 2ca5dcf..1677528 100644
--- a/src/chrome/locale/az/network-settings.dtd
+++ b/src/chrome/locale/az/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/be/network-settings.dtd b/src/chrome/locale/be/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/be/network-settings.dtd
+++ b/src/chrome/locale/be/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/bg-BG/network-settings.dtd b/src/chrome/locale/bg-BG/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/bg-BG/network-settings.dtd
+++ b/src/chrome/locale/bg-BG/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/bg/network-settings.dtd b/src/chrome/locale/bg/network-settings.dtd
index 2ad9e78..3cd0c05 100644
--- a/src/chrome/locale/bg/network-settings.dtd
+++ b/src/chrome/locale/bg/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Ако не сте сигурни как да отговорите на въпроса,изберете Не.Ако срещнете проблеми при свързване към Tor мрежата променете тези настройки.">
<!ENTITY torSettings.enterFirewall "Въведете списък с портове разделени със запетая,които са позволени от firewall.">
<!ENTITY torSettings.bridgeQuestion "Блокирани или цензурирани ли са връзките към Tor Мрежата от вашият Интернет Доставчик(ISP)?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Копирай Tor лога в клипборда">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "През Web">
<!ENTITY torsettings.bridgeHelp2 "Използвайте уеб браузър за да посетите https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/bn-BD/network-settings.dtd b/src/chrome/locale/bn-BD/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/bn-BD/network-settings.dtd
+++ b/src/chrome/locale/bn-BD/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/bn-IN/network-settings.dtd b/src/chrome/locale/bn-IN/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/bn-IN/network-settings.dtd
+++ b/src/chrome/locale/bn-IN/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/bn/network-settings.dtd b/src/chrome/locale/bn/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/bn/network-settings.dtd
+++ b/src/chrome/locale/bn/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/bo/network-settings.dtd b/src/chrome/locale/bo/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/bo/network-settings.dtd
+++ b/src/chrome/locale/bo/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/br/network-settings.dtd b/src/chrome/locale/br/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/br/network-settings.dtd
+++ b/src/chrome/locale/br/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/bs/network-settings.dtd b/src/chrome/locale/bs/network-settings.dtd
index 7c76eb9..e460c45 100644
--- a/src/chrome/locale/bs/network-settings.dtd
+++ b/src/chrome/locale/bs/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ca-ES/network-settings.dtd b/src/chrome/locale/ca-ES/network-settings.dtd
index 56487e1..3c3433e 100644
--- a/src/chrome/locale/ca-ES/network-settings.dtd
+++ b/src/chrome/locale/ca-ES/network-settings.dtd
@@ -22,7 +22,7 @@
<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
-<!ENTITY torSettings.bridgeQuestion "If this computer's Internet connection is censored, you will need to obtain and use bridge relays.&#160; If not, just click Connect.">
+<!ENTITY torSettings.bridgeQuestion "If this computer's Internet connection is censored, you will need to obtain and use bridge relays.  If not, just click Connect.">
<!-- Other: -->
@@ -49,11 +49,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "Here are three ways to obtain bridge addresses:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ca/network-settings.dtd b/src/chrome/locale/ca/network-settings.dtd
index 83e3aca..51008c8 100644
--- a/src/chrome/locale/ca/network-settings.dtd
+++ b/src/chrome/locale/ca/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -55,11 +55,11 @@
<!ENTITY torsettings.copyLog "Copiar el Log al portapapers">
<!ENTITY torsettings.bridgeHelpTitle "Ajuda Repetidors">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/cs-CZ/network-settings.dtd b/src/chrome/locale/cs-CZ/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/cs-CZ/network-settings.dtd
+++ b/src/chrome/locale/cs-CZ/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/cs/network-settings.dtd b/src/chrome/locale/cs/network-settings.dtd
index fa15d07..1e08971 100644
--- a/src/chrome/locale/cs/network-settings.dtd
+++ b/src/chrome/locale/cs/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Jestli si nejste jisti, jak odpovědět na otázku, odpovězte NE. Jestliže narazíte na problémy s připojením k Tor síti, změňte toto nastavení.">
<!ENTITY torSettings.enterFirewall "Zadejte čárkami oddělený seznam portů, které jsou povoleny firewallem.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Zkopíruj logový soubor Toru do schránky">
<!ENTITY torsettings.bridgeHelpTitle "Nápověda o mostních relé">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/csb/network-settings.dtd b/src/chrome/locale/csb/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/csb/network-settings.dtd
+++ b/src/chrome/locale/csb/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/cv/network-settings.dtd b/src/chrome/locale/cv/network-settings.dtd
index 8ea68ee..6213708 100644
--- a/src/chrome/locale/cv/network-settings.dtd
+++ b/src/chrome/locale/cv/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/cy/network-settings.dtd b/src/chrome/locale/cy/network-settings.dtd
index 861e527..be1f716 100644
--- a/src/chrome/locale/cy/network-settings.dtd
+++ b/src/chrome/locale/cy/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copio Cofnod Tor i'r Clipfwrdd">
<!ENTITY torsettings.bridgeHelpTitle "Cymorth Pont Relái">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/da/network-settings.dtd b/src/chrome/locale/da/network-settings.dtd
index 8680520..e5f79db 100644
--- a/src/chrome/locale/da/network-settings.dtd
+++ b/src/chrome/locale/da/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Hvis du ikke er sikker på hvordan du skal svare på dette spørgsmål, vælg Nej. Hvis du løber ind i problemer med at forbinde til Tor netværket, skal du ændre denne indstilling.">
<!ENTITY torSettings.enterFirewall "Indtast en komma-separeret liste over porte der er tilladt på firewallen.">
<!ENTITY torSettings.bridgeQuestion "Blokerer eller censurerer din internetudbyder (ISP) forbindelser til Tor netværket?">
-<!ENTITY torSettings.bridgeHelp "Hvis du er usikker på svaret til dette spørgsmål, vælg No.&#160; Hvis du vælger Ja, vil du blive bedt om at konfigurere Tor Broer, der er ulistede relays, som gør det sværere at blokere forbindelser til Tor Netværket.">
+<!ENTITY torSettings.bridgeHelp "Hvis du er usikker på svaret til dette spørgsmål, vælg No.  Hvis du vælger Ja, vil du blive bedt om at konfigurere Tor Broer, der er ulistede relays, som gør det sværere at blokere forbindelser til Tor Netværket.">
<!ENTITY torSettings.bridgeSettingsPrompt "Du kan bruge det tildelte sæt broer eller du kan hente og indtaste et skræddersyet sæt broer.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Kopier Tor loggen til udklipsholderen">
<!ENTITY torsettings.bridgeHelpTitle "Bro-relæ hjælp">
-<!ENTITY torsettings.bridgeHelp1 "Hvis du ikke kan forbinde dig til Tor netværket er det muligt at din internet udbyder (ISP) eller anden myndighed blokerer Tor. &#160; Det er ofte muligt at komme rundt om en blokade ved at bruge en Tor bro. En bro er et relæ som ikke er på den offentliggjorte liste og som derfor er sværere at blokkere.">
+<!ENTITY torsettings.bridgeHelp1 "Hvis du ikke kan forbinde dig til Tor netværket er det muligt at din internet udbyder (ISP) eller anden myndighed blokerer Tor.   Det er ofte muligt at komme rundt om en blokade ved at bruge en Tor bro. En bro er et relæ som ikke er på den offentliggjorte liste og som derfor er sværere at blokkere.">
<!ENTITY torsettings.bridgeHelp1B "Du kan bruge det pre-konfigurerede tildelte sæt af bro-adresser eller du kan hente et skræddersyet sæt adresser ved at bruge en af følgende tre metoder:">
<!ENTITY torsettings.bridgeHelp2Heading "På nettet">
<!ENTITY torsettings.bridgeHelp2 "Brug en browser og besøg https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Via den automatiske email service">
-<!ENTITY torsettings.bridgeHelp3 "Send en email til bridges(a)torproject.org kun bestående af linjen 'get bridges' i indholdet.&#160; For at gøre det sværere at få kendskab til alle bro adresser med henblik på blokering er det kun muligt at sende fra en gmail.com eller yahoo.com email adresse.">
+<!ENTITY torsettings.bridgeHelp3 "Send en email til bridges(a)torproject.org kun bestående af linjen 'get bridges' i indholdet.  For at gøre det sværere at få kendskab til alle bro adresser med henblik på blokering er det kun muligt at sende fra en gmail.com eller yahoo.com email adresse.">
<!ENTITY torsettings.bridgeHelp4Heading "Via vores Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "Som en sidste mulighed kan du bede om at få en bro adresse tilsendt ved at sende en venlig email to help(a)rt.torproject.org.&#160; Bemærk venligst at alle emails besvares manuelt.">
+<!ENTITY torsettings.bridgeHelp4 "Som en sidste mulighed kan du bede om at få en bro adresse tilsendt ved at sende en venlig email to help(a)rt.torproject.org.  Bemærk venligst at alle emails besvares manuelt.">
diff --git a/src/chrome/locale/de/network-settings.dtd b/src/chrome/locale/de/network-settings.dtd
index 3275ec5..c7d747c 100644
--- a/src/chrome/locale/de/network-settings.dtd
+++ b/src/chrome/locale/de/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Wenn Sie sich nicht sicher sind, wählen Sie Nein. Wenn Sie dann Probleme haben eine Verbindung zum Tor-Netzwerk herzustellen, ändern Sie diese Einstellung.">
<!ENTITY torSettings.enterFirewall "Geben Sie hier die Anschlüsse ein, die von der Firewall erlaubt werden. Trennen Sie die Anschlüsse jeweils mit einem Komma.">
<!ENTITY torSettings.bridgeQuestion "Blockiert oder zensiert Ihr Internetdienstanbieter (ISP) Verbindungen zum Tor-Netzwerk?">
-<!ENTITY torSettings.bridgeHelp "Wenn Sie sich nicht sicher sind, wie Sie diese Frage beantworten sollen, wählen Sie Nr.&#160; Wenn Sie Ja wählen, werden Sie aufgefordert, die Torbrücken zu konfigurieren. Die nicht aufgeführte Relais sind, was es schwieriger macht, Verbindungen zum Tor-Netzwerk zu blockieren.">
+<!ENTITY torSettings.bridgeHelp "Wenn Sie sich nicht sicher sind, wie Sie diese Frage beantworten sollen, wählen Sie Nr.  Wenn Sie Ja wählen, werden Sie aufgefordert, die Torbrücken zu konfigurieren. Die nicht aufgeführte Relais sind, was es schwieriger macht, Verbindungen zum Tor-Netzwerk zu blockieren.">
<!ENTITY torSettings.bridgeSettingsPrompt "Sie könne den bereitgestellten Satz an Brücken verwenden oder Sie können welche erhalten, und geben einen benutzerdefinierten Satz an Brücken ein.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Tor-Protokoll in die Zwischenablage kopieren">
<!ENTITY torsettings.bridgeHelpTitle "Hilfe zum Brückenrelais">
-<!ENTITY torsettings.bridgeHelp1 "Sollten Sie sich nicht mit dem Tor-Netzwerk verbinden können, ist es möglich, dass Ihr Internetdienstanbieter (ISP) oder eine andere Organisation, Tor blockiert.&#160; Dieses Problem kann meist mit der Benutzung von Torbrücken umgangen werden, das sind versteckte Relais und damit schwerer zu blocken.">
+<!ENTITY torsettings.bridgeHelp1 "Sollten Sie sich nicht mit dem Tor-Netzwerk verbinden können, ist es möglich, dass Ihr Internetdienstanbieter (ISP) oder eine andere Organisation, Tor blockiert.  Dieses Problem kann meist mit der Benutzung von Torbrücken umgangen werden, das sind versteckte Relais und damit schwerer zu blocken.">
<!ENTITY torsettings.bridgeHelp1B "Sie können den vorkonfigurierten und bereitgestellten Satz an Brückenadressen verwenden, oder Sie können einen benutzerdefinierten Satz von Adressen, mit einer dieser drei Methoden erhalten:">
<!ENTITY torsettings.bridgeHelp2Heading "Durch das Internet">
<!ENTITY torsettings.bridgeHelp2 "Benutzen Sie einen Browser und besuchen Sie https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Durch die automatische E-Mail-Antwort">
-<!ENTITY torsettings.bridgeHelp3 "Schreiben Sie eine E-Mail an bridges(a)torproject.org mit dem Nachrichteninhalt »get bridges«.&#160; Doch um es schwieriger für einen Angreifer zu machen, eine Menge von Brückenadressen zu erfahren, müssen Sie diese Anfrage von einer gmail.com oder yahoo.com E-Mail-Adresse schicken.">
+<!ENTITY torsettings.bridgeHelp3 "Schreiben Sie eine E-Mail an bridges(a)torproject.org mit dem Nachrichteninhalt »get bridges«.  Doch um es schwieriger für einen Angreifer zu machen, eine Menge von Brückenadressen zu erfahren, müssen Sie diese Anfrage von einer gmail.com oder yahoo.com E-Mail-Adresse schicken.">
<!ENTITY torsettings.bridgeHelp4Heading "Durch die Beratungsstelle">
-<!ENTITY torsettings.bridgeHelp4 "Brückenadressen können auch mit Hilfe einer höflichen E-Mail an help(a)rt.torproject.org angefordert werden.&#160; Bitte beachten Sie, dass jede Anfrage einzeln bearbeitet werden muss.">
+<!ENTITY torsettings.bridgeHelp4 "Brückenadressen können auch mit Hilfe einer höflichen E-Mail an help(a)rt.torproject.org angefordert werden.  Bitte beachten Sie, dass jede Anfrage einzeln bearbeitet werden muss.">
diff --git a/src/chrome/locale/dz/network-settings.dtd b/src/chrome/locale/dz/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/dz/network-settings.dtd
+++ b/src/chrome/locale/dz/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/el-GR/network-settings.dtd b/src/chrome/locale/el-GR/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/el-GR/network-settings.dtd
+++ b/src/chrome/locale/el-GR/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/el/network-settings.dtd b/src/chrome/locale/el/network-settings.dtd
index 3f58109..c7e6443 100644
--- a/src/chrome/locale/el/network-settings.dtd
+++ b/src/chrome/locale/el/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Εάν δεν είστε βέβαιοι πώς να απαντήσετε στο ερώτημα αυτό, επιλέξτε Όχι. Εάν αντιμετωπίζετε προβλήματα με τη σύνδεση με το δίκτυο Tor, αλλάξτε αυτή τη ρύθμιση. ">
<!ENTITY torSettings.enterFirewall "Πληκτρολογήστε μια λίστα διαχωρισμένη με κόμματα των θυρών που επιτρέπονται από το firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Αντιγραφή στο πρόχειρο">
<!ENTITY torsettings.bridgeHelpTitle "Γεφυρες αναμεταδοτων Βοηθεια">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/en-GB/network-settings.dtd b/src/chrome/locale/en-GB/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/en-GB/network-settings.dtd
+++ b/src/chrome/locale/en-GB/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/en/network-settings.dtd b/src/chrome/locale/en/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/en/network-settings.dtd
+++ b/src/chrome/locale/en/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/eo/network-settings.dtd b/src/chrome/locale/eo/network-settings.dtd
index 94ee6ca..d3d0327 100644
--- a/src/chrome/locale/eo/network-settings.dtd
+++ b/src/chrome/locale/eo/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/es-AR/network-settings.dtd b/src/chrome/locale/es-AR/network-settings.dtd
index 1e43f92..5ada2f1 100644
--- a/src/chrome/locale/es-AR/network-settings.dtd
+++ b/src/chrome/locale/es-AR/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/es-CL/network-settings.dtd b/src/chrome/locale/es-CL/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/es-CL/network-settings.dtd
+++ b/src/chrome/locale/es-CL/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/es-CO/network-settings.dtd b/src/chrome/locale/es-CO/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/es-CO/network-settings.dtd
+++ b/src/chrome/locale/es-CO/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/es-MX/network-settings.dtd b/src/chrome/locale/es-MX/network-settings.dtd
index 1e43f92..5ada2f1 100644
--- a/src/chrome/locale/es-MX/network-settings.dtd
+++ b/src/chrome/locale/es-MX/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/es-NI/network-settings.dtd b/src/chrome/locale/es-NI/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/es-NI/network-settings.dtd
+++ b/src/chrome/locale/es-NI/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/es/network-settings.dtd b/src/chrome/locale/es/network-settings.dtd
index 7b1a881..2bce6c5 100644
--- a/src/chrome/locale/es/network-settings.dtd
+++ b/src/chrome/locale/es/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Si no está seguro de cómo responder a esta pregunta, elija No. Si encuentra problemas conectando a la red Tor, cambie esta configuración.">
<!ENTITY torSettings.enterFirewall "Introduzca una lista de puertos separada por comas que esté permitida por el cortafuegos ('firewall').">
<!ENTITY torSettings.bridgeQuestion "Su proveedor de servicios de Internet (ISP) bloquea o censura de alguna forma las conexiones hacia la red Tor?">
-<!ENTITY torSettings.bridgeHelp "Si no está seguro como responder a esta pregunta, elija No.&#160; Si usted elige Sí, se le pedirá configurar puentes Tor, los cuales son repetidores no listados que hacen más difícil el bloqueo de conexiones hacia la red Tor.">
+<!ENTITY torSettings.bridgeHelp "Si no está seguro como responder a esta pregunta, elija No.  Si usted elige Sí, se le pedirá configurar puentes Tor, los cuales son repetidores no listados que hacen más difícil el bloqueo de conexiones hacia la red Tor.">
<!ENTITY torSettings.bridgeSettingsPrompt "Puede usar el juego de repetidores puente ('bridge') proporcionado, o puede obtener e introducir un juego de puentes personalizado.">
<!-- Other: -->
@@ -54,12 +54,12 @@
<!ENTITY torsettings.copyLog "Copiar el registro de mensajes ('log') de Tor al portapapeles">
<!ENTITY torsettings.bridgeHelpTitle "Ayuda de Repetidores Puente ('Bridge Relays')">
-<!ENTITY torsettings.bridgeHelp1 "Si no puede conectar a la red Tor, podría ser que su proveedor de servicios de Internet (ISP) u otra agencia, esté bloqueando Tor.&#160; A menudo, puede evitar este problema usando puentes ('bridges') de Tor, que son repetidores ('relays') de salida de la red Tor que no son publicitados, y es más difícil que sean bloqueados.">
+<!ENTITY torsettings.bridgeHelp1 "Si no puede conectar a la red Tor, podría ser que su proveedor de servicios de Internet (ISP) u otra agencia, esté bloqueando Tor.  A menudo, puede evitar este problema usando puentes ('bridges') de Tor, que son repetidores ('relays') de salida de la red Tor que no son publicitados, y es más difícil que sean bloqueados.">
<!ENTITY torsettings.bridgeHelp1B "Puede usar el juego de direcciones de repetidores puente ('bridge') preconfigurado proporcionado, o puede obtener un juego de direcciones personalizado usando uno de estos tres métodos:">
<!ENTITY torsettings.bridgeHelp2Heading "Mediante la web">
<!ENTITY torsettings.bridgeHelp2 "Use un navegador web para visitar https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Mediante el correo electrónico automático">
-<!ENTITY torsettings.bridgeHelp3 "Envíe un correo a bridges(a)torproject.org con la línea 'get bridges' por si misma en el cuerpo del mensaje.&#160; Sin embargo, para hacer más difícil a un atacante aprender muchas direcciones de puentes, ha de enviar esta solicitud desde una dirección de correo de gmail.com o yahoo.com .">
+<!ENTITY torsettings.bridgeHelp3 "Envíe un correo a bridges(a)torproject.org con la línea 'get bridges' por si misma en el cuerpo del mensaje.  Sin embargo, para hacer más difícil a un atacante aprender muchas direcciones de puentes, ha de enviar esta solicitud desde una dirección de correo de gmail.com o yahoo.com .">
<!ENTITY torsettings.bridgeHelp4Heading "Mediante el gabinete de ayuda">
-<!ENTITY torsettings.bridgeHelp4 "Como último recurso, puede pedir direcciones de repetidores puente enviando un cortés mensaje de correo a help(a)rt.torproject.org .&#160;
+<!ENTITY torsettings.bridgeHelp4 "Como último recurso, puede pedir direcciones de repetidores puente enviando un cortés mensaje de correo a help(a)rt.torproject.org . 
Por favor observe que es una persona la que tendrá que responder a cada petición.">
diff --git a/src/chrome/locale/et/network-settings.dtd b/src/chrome/locale/et/network-settings.dtd
index 07308ca..9c2007a 100644
--- a/src/chrome/locale/et/network-settings.dtd
+++ b/src/chrome/locale/et/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/eu/network-settings.dtd b/src/chrome/locale/eu/network-settings.dtd
index 6047b4d..c390194 100644
--- a/src/chrome/locale/eu/network-settings.dtd
+++ b/src/chrome/locale/eu/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Galdera hau nola erantzuteaz zalantzan bazaude, hautatu Ez. Tor sarera konektatzen arazoak aurkitzen badituzu, aldatu ezarpen hau.">
<!ENTITY torSettings.enterFirewall "Suetenak baimendutako eta komaz banandutako ataka zerrenda bat sar ezazu ">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Kopiatu Tor erregistroa arbelera">
<!ENTITY torsettings.bridgeHelpTitle "Zubi errele laguntza">
-<!ENTITY torsettings.bridgeHelp1 "Tor sarera konektatu ezin bazara, baliteke zure Internet Zerbitzu Hornitzaileak (ISP ingeleraz) edo beste agentziaren batek Tor blokeatzen egotea.&#160; Askotan, arazo honen inguruan Tor zubiak, ezkutatuta dauden eta blokeatzeko zailagoak diren erreleak erabiliz lan egin dezakezu.">
+<!ENTITY torsettings.bridgeHelp1 "Tor sarera konektatu ezin bazara, baliteke zure Internet Zerbitzu Hornitzaileak (ISP ingeleraz) edo beste agentziaren batek Tor blokeatzen egotea.  Askotan, arazo honen inguruan Tor zubiak, ezkutatuta dauden eta blokeatzeko zailagoak diren erreleak erabiliz lan egin dezakezu.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Webean bidez">
<!ENTITY torsettings.bridgeHelp2 "Erabili ezazu web nabigatzaile bat https://bridges.torproject.org bisitatzeko">
<!ENTITY torsettings.bridgeHelp3Heading "Email erantzule automatikoaren bidez">
-<!ENTITY torsettings.bridgeHelp3 "Bidali ezazu mezu bat bridges(a)torproject.org-era mezuaren gorputzean 'get bridges' esaldiarekin.&#160; Hala ere, erasotzaile batentzat zubi helbide asko ikastea zailago izan dadin, eskakizun hau hurrengo domeinuetako eposta helbide batetik bidali behar duzu: gmail.com edo yahoo.com.">
+<!ENTITY torsettings.bridgeHelp3 "Bidali ezazu mezu bat bridges(a)torproject.org-era mezuaren gorputzean 'get bridges' esaldiarekin.  Hala ere, erasotzaile batentzat zubi helbide asko ikastea zailago izan dadin, eskakizun hau hurrengo domeinuetako eposta helbide batetik bidali behar duzu: gmail.com edo yahoo.com.">
<!ENTITY torsettings.bridgeHelp4Heading "Laguntza mahaiaren bidez">
-<!ENTITY torsettings.bridgeHelp4 "Azken aukera bezala, zubi erreleak eska ditzakezu mezu adeitsu bat help(a)rt.torproject.org-era bidaliz.&#160; Mesedez, kontuan izan pertsona batek eskarea bakoitza erantzun beharko duela.">
+<!ENTITY torsettings.bridgeHelp4 "Azken aukera bezala, zubi erreleak eska ditzakezu mezu adeitsu bat help(a)rt.torproject.org-era bidaliz.  Mesedez, kontuan izan pertsona batek eskarea bakoitza erantzun beharko duela.">
diff --git a/src/chrome/locale/fa/network-settings.dtd b/src/chrome/locale/fa/network-settings.dtd
index 8d1c25b..634ca22 100644
--- a/src/chrome/locale/fa/network-settings.dtd
+++ b/src/chrome/locale/fa/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "اگر مطمئن نیستید چه جوابی به این سوال دهید، «نه» و یا «خیر» را انتخاب کنید. سپس اگر مشکلی در ارتباط با شبکه تور داشتید، این مورد را تغییر دهید.">
<!ENTITY torSettings.enterFirewall "یک لیست جداشده با ویرگول از پورتهایی که توسط فایروال مجاز هستند.">
<!ENTITY torSettings.bridgeQuestion "آیا شرکتی که از آن اینترنت گرفته اید (ISP)، دسترسی به شبکه تور را فیلتر، سانسور و یا مسدود می کند؟">
-<!ENTITY torSettings.bridgeHelp "اگر مطمئن نیستید چطور به این سوال پاسخ دهید، «نه» یا انتخاب کنید.&#160; اگر «بله» را انتخاب کنید، می بایست تنظیمات مربوط به «پل های» تور را انجام دهید. پل ها مسیرهای دور زدن فیلتر هستند که لیست مشخصی از آن ها وجود ندارد و فیلتر کردن آن ها بسیار مشکل است.">
+<!ENTITY torSettings.bridgeHelp "اگر مطمئن نیستید چطور به این سوال پاسخ دهید، «نه» یا انتخاب کنید.  اگر «بله» را انتخاب کنید، می بایست تنظیمات مربوط به «پل های» تور را انجام دهید. پل ها مسیرهای دور زدن فیلتر هستند که لیست مشخصی از آن ها وجود ندارد و فیلتر کردن آن ها بسیار مشکل است.">
<!ENTITY torSettings.bridgeSettingsPrompt "شما میتوانید از مجموعهای از پلهای آماده و یا پلهای شخصی خودتان استفاده کنید.">
<!-- Other: -->
@@ -54,12 +54,12 @@
<!ENTITY torsettings.copyLog "کپی گزارش وقایع تور">
<!ENTITY torsettings.bridgeHelpTitle "کمک برای پل ارتباطی">
-<!ENTITY torsettings.bridgeHelp1 "اگر نمی توانید به شبکه تور متصل شوید، ممکن است به این دلیل باشد که شرکت ارایه کننده اینترنت شما(ISP) و یا سازمان های دیگر شبکه تور را بسته اند.&#160;
+<!ENTITY torsettings.bridgeHelp1 "اگر نمی توانید به شبکه تور متصل شوید، ممکن است به این دلیل باشد که شرکت ارایه کننده اینترنت شما(ISP) و یا سازمان های دیگر شبکه تور را بسته اند. 
غالباً می توانید این محدودیت را با استفاده از «پل» های تور دور بزنید. پل ها مسیرهای اضافی دور زدن فیلتر هستند که لیست آن در دسترس نیست و فیلتر کردن آن ها بسیار مشکل است.">
<!ENTITY torsettings.bridgeHelp1B "شما میتوانید از پلهای موجود استفاده کنید و یا برای بهدست آوردن مجموعهای از پلهای شخصی از یکی از سه روش زیر بهره بگیرید:">
<!ENTITY torsettings.bridgeHelp2Heading "از طریق اینترنت">
<!ENTITY torsettings.bridgeHelp2 "با استفاده از یک مرورگر به آدرس https://bridges.torproject.org بروید.">
<!ENTITY torsettings.bridgeHelp3Heading "از طریق آدرس ایمیل پاسخگوی خودکار">
-<!ENTITY torsettings.bridgeHelp3 "یک ایمیل حاوی عبارت 'get bridges' به آدرس bridges(a)torproject.org ارسال کنید.&#160; برای اینکه بتوانیم جلوی فیلتر شدن پل ها را بگیریم، مجبوریم شما را محدود کنیم تا فقط از یک آدرس ایمیل yahoo.com و یا gmail.com درخواست خود را ارسال کنید. لطفاً صبور باشید. از چند دقیقه تا چند ساعت طول خواهد کشید تا به طور خودکار پل ها برای شما ارسال شوند.">
+<!ENTITY torsettings.bridgeHelp3 "یک ایمیل حاوی عبارت 'get bridges' به آدرس bridges(a)torproject.org ارسال کنید.  برای اینکه بتوانیم جلوی فیلتر شدن پل ها را بگیریم، مجبوریم شما را محدود کنیم تا فقط از یک آدرس ایمیل yahoo.com و یا gmail.com درخواست خود را ارسال کنید. لطفاً صبور باشید. از چند دقیقه تا چند ساعت طول خواهد کشید تا به طور خودکار پل ها برای شما ارسال شوند.">
<!ENTITY torsettings.bridgeHelp4Heading "از طریق واحد کمک رسانی">
-<!ENTITY torsettings.bridgeHelp4 "اگر از طریق هیچ کدام از راه حل های فوق به نتیجه نرسیدید، یک درخواست مودبانه به آدرس help(a)rt.torproject.org ارسال کنید.&#160; در نظر داشته باشید که یک نفر باید ایمیل شما را بخواند و به آن پاسخ دهد. پس صبور باشید.">
+<!ENTITY torsettings.bridgeHelp4 "اگر از طریق هیچ کدام از راه حل های فوق به نتیجه نرسیدید، یک درخواست مودبانه به آدرس help(a)rt.torproject.org ارسال کنید.  در نظر داشته باشید که یک نفر باید ایمیل شما را بخواند و به آن پاسخ دهد. پس صبور باشید.">
diff --git a/src/chrome/locale/fi/network-settings.dtd b/src/chrome/locale/fi/network-settings.dtd
index 24f28b7..19cc04f 100644
--- a/src/chrome/locale/fi/network-settings.dtd
+++ b/src/chrome/locale/fi/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Ellet ole varma kuinka vastata tähän kysymykseen, valitse Ei. Muuta tätä asetusta jos yhteyden saamisessa Tor-verkkoon on ongelmia.">
<!ENTITY torSettings.enterFirewall "Luettele pilkuin erotettuina ne portit, jotka palomuuri sallii. ">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/fil/network-settings.dtd b/src/chrome/locale/fil/network-settings.dtd
index a6ffa87..b839b79 100644
--- a/src/chrome/locale/fil/network-settings.dtd
+++ b/src/chrome/locale/fil/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/fo/network-settings.dtd b/src/chrome/locale/fo/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/fo/network-settings.dtd
+++ b/src/chrome/locale/fo/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/fr-CA/network-settings.dtd b/src/chrome/locale/fr-CA/network-settings.dtd
index 479fc33..6a5c2ca 100644
--- a/src/chrome/locale/fr-CA/network-settings.dtd
+++ b/src/chrome/locale/fr-CA/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Si vous ne savez par comment répondre à cette question, choisissez Non. Si vous éprouvez des difficultés à vous connecter au réseau Tor, changer ce paramètre.">
<!ENTITY torSettings.enterFirewall "Saisir une liste de ports, séparés par des virgules, qui sont autorisés par le pare-feu.">
<!ENTITY torSettings.bridgeQuestion "Votre fournisseur de service Internet (FSI) bloque-t-il ou censure-t-il vos connexions au réseau Tor?">
-<!ENTITY torSettings.bridgeHelp "Si vous ne savez pas comment répondre à cette question, choisissez Non.&#160; Si vous choisissez Oui, on vous demandera de configurer les ponts Tor qui sont des relais non listés rendant le bloquage des connexions au réseau Tor plus difficile.">
+<!ENTITY torSettings.bridgeHelp "Si vous ne savez pas comment répondre à cette question, choisissez Non.  Si vous choisissez Oui, on vous demandera de configurer les ponts Tor qui sont des relais non listés rendant le bloquage des connexions au réseau Tor plus difficile.">
<!ENTITY torSettings.bridgeSettingsPrompt "Vous pouvez utiliser le jeu de ponts fourni ou vous pouvez obtenir et saisir un jeu de ponts personnalisé.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copier le journal de Tor dans le presse-papier">
<!ENTITY torsettings.bridgeHelpTitle "Aide pour les relais-ponts">
-<!ENTITY torsettings.bridgeHelp1 "Si vous ne pouvez pas vous connecter au réseau Tor, il se peut que votre fournisseur d'accès à Internet (FAI) ou une autre agence bloque Tor.&#160; Vous pouvez souvent le contourner en utilisant des ponts Tor qui sont des relais non répertoriés, plus difficiles à bloquer.">
+<!ENTITY torsettings.bridgeHelp1 "Si vous ne pouvez pas vous connecter au réseau Tor, il se peut que votre fournisseur d'accès à Internet (FAI) ou une autre agence bloque Tor.  Vous pouvez souvent le contourner en utilisant des ponts Tor qui sont des relais non répertoriés, plus difficiles à bloquer.">
<!ENTITY torsettings.bridgeHelp1B "Vous pouvez utiliser le jeu préconfiguré d'adresses de ponts fourni ou vous pouvez obtenir un jeu personnalisé d'adresses en utilisant une de ces trois méthodes :">
<!ENTITY torsettings.bridgeHelp2Heading "par le Web">
<!ENTITY torsettings.bridgeHelp2 "en utilisant un navigateur Web pour visiter https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "par le répondeur automatique de courriel">
-<!ENTITY torsettings.bridgeHelp3 "en envoyant un courriel à bridges(a)torproject.org avec la ligne « get bridges » seule dans le corps du message.&#160; Cependant pour compliquer l'obtention des ces adresses de ponts pour un attaqueur, vous devez envoyer la demande depuis une adresse courriel gmail.com ou yahoo.com.">
+<!ENTITY torsettings.bridgeHelp3 "en envoyant un courriel à bridges(a)torproject.org avec la ligne « get bridges » seule dans le corps du message.  Cependant pour compliquer l'obtention des ces adresses de ponts pour un attaqueur, vous devez envoyer la demande depuis une adresse courriel gmail.com ou yahoo.com.">
<!ENTITY torsettings.bridgeHelp4Heading "par le centre d'assistance">
-<!ENTITY torsettings.bridgeHelp4 "en dernier recours, vous pouvez demander des adresses de ponts en envoyant un courriel poli à help(a)rt.torproject.org.&#160; Veuillez remarquer qu'une personne devra répondre à chaque demande.">
+<!ENTITY torsettings.bridgeHelp4 "en dernier recours, vous pouvez demander des adresses de ponts en envoyant un courriel poli à help(a)rt.torproject.org.  Veuillez remarquer qu'une personne devra répondre à chaque demande.">
diff --git a/src/chrome/locale/fr/network-settings.dtd b/src/chrome/locale/fr/network-settings.dtd
index f93148c..2a4b64e 100644
--- a/src/chrome/locale/fr/network-settings.dtd
+++ b/src/chrome/locale/fr/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Si vous ne savez par comment répondre à cette question, choisissez Non. Vous pourrez changer ce paramètre plus tard en cas de problèmes de connexion au réseau Tor.">
<!ENTITY torSettings.enterFirewall "Entrez la liste de ports, séparés par des virgules, qui sont autorisés par le pare-feu.">
<!ENTITY torSettings.bridgeQuestion "Est-ce que votre Fournisseur d'Accès Internet (FAI) bloque les connexions au réseau Tor ?">
-<!ENTITY torSettings.bridgeHelp "Si vous ne savez pas comment répondre à cette question, choisissez Non.&#160; Si vous choisissez Oui, il vous sera demandé de configurer les bridges Tor qui sont des relais non listés et qui rendent plus difficile le blocage du réseau Tor.">
+<!ENTITY torSettings.bridgeHelp "Si vous ne savez pas comment répondre à cette question, choisissez Non.  Si vous choisissez Oui, il vous sera demandé de configurer les bridges Tor qui sont des relais non listés et qui rendent plus difficile le blocage du réseau Tor.">
<!ENTITY torSettings.bridgeSettingsPrompt "Vous pouvez utiliser les bridges fournis ou bien saisir votre liste de bridges personnels.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copier le journal des messages de Tor dans le presse-papier">
<!ENTITY torsettings.bridgeHelpTitle "Aide pour les bridges">
-<!ENTITY torsettings.bridgeHelp1 "Si vous ne pouvez pas vous connecter au réseau Tor, il se pourrait que votre fournisseur d'accès à Internet (FAI) ou une autre agence bloque le Tor.&#160; Souvent, vous pouvez contourner ce problème en utilisant des ponts Tor, qui sont des relais non listés qui sont plus difficiles à bloquer.">
+<!ENTITY torsettings.bridgeHelp1 "Si vous ne pouvez pas vous connecter au réseau Tor, il se pourrait que votre fournisseur d'accès à Internet (FAI) ou une autre agence bloque le Tor.  Souvent, vous pouvez contourner ce problème en utilisant des ponts Tor, qui sont des relais non listés qui sont plus difficiles à bloquer.">
<!ENTITY torsettings.bridgeHelp1B "Vous pouvez utiliser les liste de bridges préconfigurés par défaut ou en obtenir une liste personnalisée d'adresses en utilisant l'une des trois méthodes ci-dessous :">
<!ENTITY torsettings.bridgeHelp2Heading "Par le Web">
<!ENTITY torsettings.bridgeHelp2 "Utilisez un navigateur web pour visiter https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Par l'auto-répondeur de courrier électronique">
-<!ENTITY torsettings.bridgeHelp3 "Envoyer un email à bridges(a)torproject.org avec la ligne 'get bridges' en elle-même obtiennent dans le corps du message.&#160; Cependant, pour rendre plus difficile à un attaquant d'apprendre beaucoup d'adresses de pont, vous devez envoyer cette demande depuis une adresse électronique gmail.com ou yahoo.com.">
+<!ENTITY torsettings.bridgeHelp3 "Envoyer un email à bridges(a)torproject.org avec la ligne 'get bridges' en elle-même obtiennent dans le corps du message.  Cependant, pour rendre plus difficile à un attaquant d'apprendre beaucoup d'adresses de pont, vous devez envoyer cette demande depuis une adresse électronique gmail.com ou yahoo.com.">
<!ENTITY torsettings.bridgeHelp4Heading "Par le bureau d'aide">
-<!ENTITY torsettings.bridgeHelp4 "En dernier ressort, vous pouvez demander des adresses de pont en envoyant un message électronique poli à help(a)rt.torproject.org.&#160; Veuillez noter qu'une personne devra répondre à chaque demande.">
+<!ENTITY torsettings.bridgeHelp4 "En dernier ressort, vous pouvez demander des adresses de pont en envoyant un message électronique poli à help(a)rt.torproject.org.  Veuillez noter qu'une personne devra répondre à chaque demande.">
diff --git a/src/chrome/locale/fur/network-settings.dtd b/src/chrome/locale/fur/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/fur/network-settings.dtd
+++ b/src/chrome/locale/fur/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/fy/network-settings.dtd b/src/chrome/locale/fy/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/fy/network-settings.dtd
+++ b/src/chrome/locale/fy/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ga/network-settings.dtd b/src/chrome/locale/ga/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/ga/network-settings.dtd
+++ b/src/chrome/locale/ga/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/gl/network-settings.dtd b/src/chrome/locale/gl/network-settings.dtd
index d896817..e99e31f 100644
--- a/src/chrome/locale/gl/network-settings.dtd
+++ b/src/chrome/locale/gl/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Se non está seguro de como responder a esta pregunta, seleccione Non. Se atopa problemas para conectarse á rede Tor, cambie esta configuración.">
<!ENTITY torSettings.enterFirewall "Escriba unha lista separada por comas de portos permitidos pola devasa (firewall).">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copia o rexistro do Tor ao portapapeis">
<!ENTITY torsettings.bridgeHelpTitle "Axuda do Repetidor Ponte">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/gu-IN/network-settings.dtd b/src/chrome/locale/gu-IN/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/gu-IN/network-settings.dtd
+++ b/src/chrome/locale/gu-IN/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/gu/network-settings.dtd b/src/chrome/locale/gu/network-settings.dtd
index ee0098d..dd7aa29 100644
--- a/src/chrome/locale/gu/network-settings.dtd
+++ b/src/chrome/locale/gu/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/gun/network-settings.dtd b/src/chrome/locale/gun/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/gun/network-settings.dtd
+++ b/src/chrome/locale/gun/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ha/network-settings.dtd b/src/chrome/locale/ha/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/ha/network-settings.dtd
+++ b/src/chrome/locale/ha/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/he/network-settings.dtd b/src/chrome/locale/he/network-settings.dtd
index b935cff..9f715b1 100644
--- a/src/chrome/locale/he/network-settings.dtd
+++ b/src/chrome/locale/he/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "העתק את יומן Tor אל לוח גזירה">
<!ENTITY torsettings.bridgeHelpTitle "עזרת ממסר גשר">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/hi/network-settings.dtd b/src/chrome/locale/hi/network-settings.dtd
index b43b9f7..9688f72 100644
--- a/src/chrome/locale/hi/network-settings.dtd
+++ b/src/chrome/locale/hi/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/hr-HR/network-settings.dtd b/src/chrome/locale/hr-HR/network-settings.dtd
index 42ed11e..220d7e0 100644
--- a/src/chrome/locale/hr-HR/network-settings.dtd
+++ b/src/chrome/locale/hr-HR/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Ako niste sigurni kako odgovoriti na ovo pitanje, odaberite "Ne". Ako uočite probleme pri spajanju na Tor mrežu, promijenite ovu postavku.">
<!ENTITY torSettings.enterFirewall "Unesite popis portova, odvojenih zarezom, koji su dopušteni na vatrozidu.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Kopiraj Tor zapisnik u međuspremnik">
<!ENTITY torsettings.bridgeHelpTitle "Pomoć za bridge relej">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/hr/network-settings.dtd b/src/chrome/locale/hr/network-settings.dtd
index 1991074..17b36fc 100644
--- a/src/chrome/locale/hr/network-settings.dtd
+++ b/src/chrome/locale/hr/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ht/network-settings.dtd b/src/chrome/locale/ht/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/ht/network-settings.dtd
+++ b/src/chrome/locale/ht/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/hu/network-settings.dtd b/src/chrome/locale/hu/network-settings.dtd
index 9075d38..8443763 100644
--- a/src/chrome/locale/hu/network-settings.dtd
+++ b/src/chrome/locale/hu/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Nem biztos abban, hogy hogyan válaszoljon erre a kérdésre, válassza a 'Nem'-et. Ha problémákba ütközik a Tor hálózathoz való csatlakozáskor, változtassa meg ezt a beállítást.">
<!ENTITY torSettings.enterFirewall "Gépelj be egy vesszővel elválasztott listát a portokról amik engedélyezve vannak a tűzfal által.">
<!ENTITY torSettings.bridgeQuestion "Az internet szolgáltatód (ISP) blokkolja vagy cenzúrázza a kapcsolatot a Tor hálózathoz?">
-<!ENTITY torSettings.bridgeHelp "Ha nem vagy biztos a válaszban, válaszd a Nem-et.&#160; Ha az Igen-t választod neked kell konfigurálni a Tor bridges amik nem listázott átjátszók és nehezebbé teszik a Tor hálózat kapcsolódásának a blokkolását.">
+<!ENTITY torSettings.bridgeHelp "Ha nem vagy biztos a válaszban, válaszd a Nem-et.  Ha az Igen-t választod neked kell konfigurálni a Tor bridges amik nem listázott átjátszók és nehezebbé teszik a Tor hálózat kapcsolódásának a blokkolását.">
<!ENTITY torSettings.bridgeSettingsPrompt "Használhatod a szolgáltatott bridge címeket vagy beszerezhetsz egyedi bridge címeket.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "A Tor log Vágólapra másolása">
<!ENTITY torsettings.bridgeHelpTitle "Híd kapcsoló súgó">
-<!ENTITY torsettings.bridgeHelp1 "Ha nem tudsz csatlakozni a Tor.&#160; hálózathoz, akkor valószínű az internet szolgáltató (ISP) vagy egy másik szervezet blokkolja. Gyakran megkerülhető a probléma Tor bridges használatával. Ezek nem listázott átjátszók amiket sokkal nehezebb blokkolni.">
+<!ENTITY torsettings.bridgeHelp1 "Ha nem tudsz csatlakozni a Tor.  hálózathoz, akkor valószínű az internet szolgáltató (ISP) vagy egy másik szervezet blokkolja. Gyakran megkerülhető a probléma Tor bridges használatával. Ezek nem listázott átjátszók amiket sokkal nehezebb blokkolni.">
<!ENTITY torsettings.bridgeHelp1B "Használhatod az előre beállított bridge címeket vagy beszerezhetsz egyedi címeket ezzel a három módszerrel:">
<!ENTITY torsettings.bridgeHelp2Heading "Interneten keresztül">
<!ENTITY torsettings.bridgeHelp2 "Használj egy böngészőt megnézni ezt az oldalt: https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Az automata email válaszok által.">
-<!ENTITY torsettings.bridgeHelp3 "Küldj emailt a bridges(a)torproject.org -ra a következő szöveggel: "get bridges" az emailben.&#160; Hogy egy esetleges támadó információ szerzési esélyét nehezítse ezt az emailt egy gmail.com vagy yahoo.com email címről küldd.">
+<!ENTITY torsettings.bridgeHelp3 "Küldj emailt a bridges(a)torproject.org -ra a következő szöveggel: "get bridges" az emailben.  Hogy egy esetleges támadó információ szerzési esélyét nehezítse ezt az emailt egy gmail.com vagy yahoo.com email címről küldd.">
<!ENTITY torsettings.bridgeHelp4Heading "A támogatáson keresztül.">
-<!ENTITY torsettings.bridgeHelp4 "Utolsó lehetőségként küldj egy udvarias bridge igénylő emailt ide: help(a)rt.torproject.org.&#160; Légyszíves vedd figyelembe az adott személynek több emailt kell megválaszolnia.">
+<!ENTITY torsettings.bridgeHelp4 "Utolsó lehetőségként küldj egy udvarias bridge igénylő emailt ide: help(a)rt.torproject.org.  Légyszíves vedd figyelembe az adott személynek több emailt kell megválaszolnia.">
diff --git a/src/chrome/locale/hy-AM/network-settings.dtd b/src/chrome/locale/hy-AM/network-settings.dtd
index 1324a5f..345d5d9 100644
--- a/src/chrome/locale/hy-AM/network-settings.dtd
+++ b/src/chrome/locale/hy-AM/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/hy/network-settings.dtd b/src/chrome/locale/hy/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/hy/network-settings.dtd
+++ b/src/chrome/locale/hy/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ia/network-settings.dtd b/src/chrome/locale/ia/network-settings.dtd
index 6e2fba4..25f686e 100644
--- a/src/chrome/locale/ia/network-settings.dtd
+++ b/src/chrome/locale/ia/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/id/network-settings.dtd b/src/chrome/locale/id/network-settings.dtd
index 83042c0..8b090d4 100644
--- a/src/chrome/locale/id/network-settings.dtd
+++ b/src/chrome/locale/id/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Jika anda tidak yakin atas jawaban pertanyaan ini, pilih Tidak. Jika anda mendapatkan masalah dalam menghubungi network Tor, ubah pengaturan ini.">
<!ENTITY torSettings.enterFirewall "Masukkan port-port (pisahkan dengan koma) yang diperbolehkan oleh firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Salin Log Tor Ke Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bantuan Bridge Relay">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/is/network-settings.dtd b/src/chrome/locale/is/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/is/network-settings.dtd
+++ b/src/chrome/locale/is/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/it/network-settings.dtd b/src/chrome/locale/it/network-settings.dtd
index 007240c..09b068f 100644
--- a/src/chrome/locale/it/network-settings.dtd
+++ b/src/chrome/locale/it/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Se non sei sicuro su come rispondere a questa domanda, seleziona No. Nel caso in cui si verifichino problemi di connessione alla rete Tor, cambia queste impostazioni.">
<!ENTITY torSettings.enterFirewall "Inserisci una lista di porte consentite dal firewall, separate da una virgola.">
<!ENTITY torSettings.bridgeQuestion "Il tuo fornitore di servizi internet (ISP) blocca o censura la connessione alla rete Tor?">
-<!ENTITY torSettings.bridgeHelp "Se non sei sicuro di come rispondere alla domanda, scegli No.&#160; Se scegli Sì, ti verrà chiesto di configurare Tor Bridges, che consiste in relay non elencati che rendono più difficile bloccare le connessioni alla Rete Tor.">
+<!ENTITY torSettings.bridgeHelp "Se non sei sicuro di come rispondere alla domanda, scegli No.  Se scegli Sì, ti verrà chiesto di configurare Tor Bridges, che consiste in relay non elencati che rendono più difficile bloccare le connessioni alla Rete Tor.">
<!ENTITY torSettings.bridgeSettingsPrompt "Puoi usare il set preconfigurato di bridge o ottenere ed inserire un set personale di bridge.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copia il log di Tor negli "appunti" di sistema">
<!ENTITY torsettings.bridgeHelpTitle "Aiuto per i ponti relé">
-<!ENTITY torsettings.bridgeHelp1 "Se non ti riesci a connettere alla rete Tor, è possibile che il tuo Internet Service Provider (ISP) o una qualche altra agenzia stiano bloccando Tor.&#160; Spesso puoi aggirare questo problema utilizzando un Bridge Tor, che è un relay non tracciato più difficile da bloccare.">
+<!ENTITY torsettings.bridgeHelp1 "Se non ti riesci a connettere alla rete Tor, è possibile che il tuo Internet Service Provider (ISP) o una qualche altra agenzia stiano bloccando Tor.  Spesso puoi aggirare questo problema utilizzando un Bridge Tor, che è un relay non tracciato più difficile da bloccare.">
<!ENTITY torsettings.bridgeHelp1B "Puoi usare il set preconfigurato di indirizzi bridge o ottenere un set personale di indirizzi attraverso uno di questi tre metodi:">
<!ENTITY torsettings.bridgeHelp2Heading "Attraverso il web">
<!ENTITY torsettings.bridgeHelp2 "Usa un browser per visitare https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Attraverso l'autorisponditore Email">
-<!ENTITY torsettings.bridgeHelp3 "Manda una mail a bridges(a)torproject.org con scritto 'get bridges' nel corpo del messaggio.&#160; Tuttavia, per rendere più difficile il riconoscimento di molti indirizzi bridge, manda questa richiesta da un account gmail.com o yahoo.com.">
+<!ENTITY torsettings.bridgeHelp3 "Manda una mail a bridges(a)torproject.org con scritto 'get bridges' nel corpo del messaggio.  Tuttavia, per rendere più difficile il riconoscimento di molti indirizzi bridge, manda questa richiesta da un account gmail.com o yahoo.com.">
<!ENTITY torsettings.bridgeHelp4Heading "Attraverso l'Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "Come ultima spiaggia, puoi richiedere un indirizzo bridge mandando una cortese mail a help(a)rt.torproject.org.&#160; Tieni conto che una persona dovrà rispondere ad ogni singola richiesta.">
+<!ENTITY torsettings.bridgeHelp4 "Come ultima spiaggia, puoi richiedere un indirizzo bridge mandando una cortese mail a help(a)rt.torproject.org.  Tieni conto che una persona dovrà rispondere ad ogni singola richiesta.">
diff --git a/src/chrome/locale/ja/network-settings.dtd b/src/chrome/locale/ja/network-settings.dtd
index b7ea058..4fe84c4 100644
--- a/src/chrome/locale/ja/network-settings.dtd
+++ b/src/chrome/locale/ja/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "この質問にどう答えるべきか確信が持てなければ、いいえを選択してください。 Torネットワークへ接続する時に問題に遭遇したなら、この設定を変更してください。">
<!ENTITY torSettings.enterFirewall "ファイアーウォールによって許可されているポートのコンマ区切りのリストを入力してください。">
<!ENTITY torSettings.bridgeQuestion "あなたのインターネットサービスプロバイダー (ISP) は Tor ネットワークへの接続をブロックしているか、あるいは別のやり方で検閲していますか?">
-<!ENTITY torSettings.bridgeHelp "この質問にどう答えるべきかよくわからない場合は、いいえを選択してください。&#160; はいを選択すると、Tor ネットワークへの接続をブロックすることをさらに困難にするリスト化されていないリレーである Tor Bridges を構成することが求められます。">
+<!ENTITY torSettings.bridgeHelp "この質問にどう答えるべきかよくわからない場合は、いいえを選択してください。  はいを選択すると、Tor ネットワークへの接続をブロックすることをさらに困難にするリスト化されていないリレーである Tor Bridges を構成することが求められます。">
<!ENTITY torSettings.bridgeSettingsPrompt "提供されたブリッジのセットを使用するか、あるいはカスタムのブリッジのセットを取得して入力することができます。">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Torのログをクリップボードにコピー">
<!ENTITY torsettings.bridgeHelpTitle "ブリッジリレーのヘルプ">
-<!ENTITY torsettings.bridgeHelp1 "Tor ネットワークに接続できないなら、あなたのインターネットサービスプロバイダー(ISP)や別の機関が Tor をブロックしている可能性があります。&#160; ブロックが比較的困難なリストされていないリレーである Tor ブリッジを使用することでこの問題を回避できることもあります。">
+<!ENTITY torsettings.bridgeHelp1 "Tor ネットワークに接続できないなら、あなたのインターネットサービスプロバイダー(ISP)や別の機関が Tor をブロックしている可能性があります。  ブロックが比較的困難なリストされていないリレーである Tor ブリッジを使用することでこの問題を回避できることもあります。">
<!ENTITY torsettings.bridgeHelp1B "事前設定された提供されたブリッジアドレスのセットを使用するか、あるいは以下の3つの方法のいずれかを用いてカスタムのアドレスのセットを取得することができます。">
<!ENTITY torsettings.bridgeHelp2Heading "ウェブ経由">
<!ENTITY torsettings.bridgeHelp2 "ウェブを使用して、https://bridges.torproject.orgを開く">
<!ENTITY torsettings.bridgeHelp3Heading "メール自動応答システム経由">
-<!ENTITY torsettings.bridgeHelp3 "メッセージの本文に 'get bridges' という行を付けて bridges(a)torproject.org にメールを送信する。.&#160;ただし、攻撃者が多くのブリッジアドレスを把握するのを困難にするために、 gmail.com または yahoo.com のメールアドレスからこのリクエストを送信する必要があります。">
+<!ENTITY torsettings.bridgeHelp3 "メッセージの本文に 'get bridges' という行を付けて bridges(a)torproject.org にメールを送信する。. ただし、攻撃者が多くのブリッジアドレスを把握するのを困難にするために、 gmail.com または yahoo.com のメールアドレスからこのリクエストを送信する必要があります。">
<!ENTITY torsettings.bridgeHelp4Heading "ヘルプデスク経由">
-<!ENTITY torsettings.bridgeHelp4 "最後の頼みの綱として、 help(a)rt.torproject.org に丁寧なメールメッセージを送信して、ブリッジアドレスをリクエストすることができます。&#160; 人間が各リクエストに対応する必要があることにご注意ください。">
+<!ENTITY torsettings.bridgeHelp4 "最後の頼みの綱として、 help(a)rt.torproject.org に丁寧なメールメッセージを送信して、ブリッジアドレスをリクエストすることができます。  人間が各リクエストに対応する必要があることにご注意ください。">
diff --git a/src/chrome/locale/jv/network-settings.dtd b/src/chrome/locale/jv/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/jv/network-settings.dtd
+++ b/src/chrome/locale/jv/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ka/network-settings.dtd b/src/chrome/locale/ka/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/ka/network-settings.dtd
+++ b/src/chrome/locale/ka/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/kk/network-settings.dtd b/src/chrome/locale/kk/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/kk/network-settings.dtd
+++ b/src/chrome/locale/kk/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/km/network-settings.dtd b/src/chrome/locale/km/network-settings.dtd
index a435e66..f1b6799 100644
--- a/src/chrome/locale/km/network-settings.dtd
+++ b/src/chrome/locale/km/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "បើអ្នកមិនប្រាកដវិធីឆ្លើយតសំណួរនេះ ជ្រើស ទេ។ បើអ្នកមានបញ្ហាក្នុងការភ្ជាប់ទៅបណ្ដាញ Tor ប្ដូរការកំណត់នេះ។">
<!ENTITY torSettings.enterFirewall "បញ្ជីបញ្ជីច្រកដែលបំបែកដោយសញ្ញាក្បៀសដែលត្រូវបានអនុញ្ញាតដោយជញ្ជាំងភ្លើង។">
<!ENTITY torSettings.bridgeQuestion "តើក្រុមហ៊ុនផ្ដល់អ៊ីនធឺណិតរបស់អ្នក (ISP) ទប់ស្កាត់ ឬបើមិនដូច្នេះទេការភ្ជាប់ឧបករណ៍ចាប់សញ្ញាទៅបណ្ដាញ Tor ?">
-<!ENTITY torSettings.bridgeHelp "បើអ្នកប្រាកដពីវិធីឆ្លើយសំណួរនេះ ជ្រើសទេ។ &#160; បើអ្នកជ្រើសបាទ/ចាស អ្នកនឹងត្រូវបានស្នើឲ្យកំណត់រចនាសម្ព័ន្ធប៊្រីត Tor ដែលជាការបញ្ជូនបន្តមិនបានរាយដែលធ្វើឲ្យវាកាន់តែលំបាកក្នុងការទប់ស្កាត់ការភ្ជាប់ទៅបណ្ដាញ Tor ។">
+<!ENTITY torSettings.bridgeHelp "បើអ្នកប្រាកដពីវិធីឆ្លើយសំណួរនេះ ជ្រើសទេ។   បើអ្នកជ្រើសបាទ/ចាស អ្នកនឹងត្រូវបានស្នើឲ្យកំណត់រចនាសម្ព័ន្ធប៊្រីត Tor ដែលជាការបញ្ជូនបន្តមិនបានរាយដែលធ្វើឲ្យវាកាន់តែលំបាកក្នុងការទប់ស្កាត់ការភ្ជាប់ទៅបណ្ដាញ Tor ។">
<!ENTITY torSettings.bridgeSettingsPrompt "អ្នកអាចប្រើការកំណត់ប៊្រីតដែលបានផ្ដល់ ឬអ្នកអាចយក និងបញ្ចូលការកំណត់ប៊្រីតផ្ទាល់ខ្លួន។">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "ចម្លងកំណត់ហេតុ Tor ទៅក្ដារតម្បៀតខ្ទាស់">
<!ENTITY torsettings.bridgeHelpTitle "ជំនួយបញ្ជូនប្រ៊ីតបន្ត">
-<!ENTITY torsettings.bridgeHelp1 "បើអ្នកមិនអាចភ្ជាប់ទៅបណ្ដាញ Tor វាអាចមកពីក្រុមហ៊ុនផ្ដល់សេវាកម្មអ៊ីនធឺណិត (ISP) ឬភ្នាក់ងារផ្សេងកំពុងទប់ស្កាត់ Tor ។ &#160; ជារឿយៗអ្នកអាចស្វែងយល់ពីបញ្ហានេះ ដោយប្រើប៊្រីត Tor ដែលត្រូវបានលាក់ការបញ្ជូនបន្តដែលពិបាកទប់ស្កាត់។">
+<!ENTITY torsettings.bridgeHelp1 "បើអ្នកមិនអាចភ្ជាប់ទៅបណ្ដាញ Tor វាអាចមកពីក្រុមហ៊ុនផ្ដល់សេវាកម្មអ៊ីនធឺណិត (ISP) ឬភ្នាក់ងារផ្សេងកំពុងទប់ស្កាត់ Tor ។   ជារឿយៗអ្នកអាចស្វែងយល់ពីបញ្ហានេះ ដោយប្រើប៊្រីត Tor ដែលត្រូវបានលាក់ការបញ្ជូនបន្តដែលពិបាកទប់ស្កាត់។">
<!ENTITY torsettings.bridgeHelp1B "អ្នកអាចប្រើការកំណត់រចនាសម្ព័ន្ធជាមុន ការកំណត់អាសយដ្ឋានប៊្រីតដែលបានផ្ដល់ ឬអ្នកអាចយកការកំណត់អាសយដ្ឋានផ្ទាល់ខ្លួនដោយប្រើវិធីមួយក្នុងចំណោមវិធីសាស្ត្រទាំងបី៖">
<!ENTITY torsettings.bridgeHelp2Heading "តាមរយៈបណ្ដាញ">
<!ENTITY torsettings.bridgeHelp2 "ប្រើកម្មវិធីរុករកបណ្ដាញ ដើម្បីមើល https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "តាមរយៈការឆ្លើយតបដោយស្វ័យប្រវត្តិរបស់អ៊ីមែល">
-<!ENTITY torsettings.bridgeHelp3 "ផ្ញើអ៊ីមែលទៅ bridges(a)torproject.org ដោយមានឃ្លា 'get bridges' ដោយខ្លួនវាក្នុងតួសារ។&#160; ទោះជាយ៉ាងណាក៏ដោយ ដើម្បីធ្វើឲ្យវាកាន់តែពិបាកសម្រាប់អ្នកវាយប្រហារ ដើម្បីសិក្សាច្រើនអំពីអាសយដ្ឋានប៊្រីត អ្នកត្រូវផ្ញើសំណើនេះពីអាសយដ្ឋាន gmail.com ឬ yahoo.com ។">
+<!ENTITY torsettings.bridgeHelp3 "ផ្ញើអ៊ីមែលទៅ bridges(a)torproject.org ដោយមានឃ្លា 'get bridges' ដោយខ្លួនវាក្នុងតួសារ។  ទោះជាយ៉ាងណាក៏ដោយ ដើម្បីធ្វើឲ្យវាកាន់តែពិបាកសម្រាប់អ្នកវាយប្រហារ ដើម្បីសិក្សាច្រើនអំពីអាសយដ្ឋានប៊្រីត អ្នកត្រូវផ្ញើសំណើនេះពីអាសយដ្ឋាន gmail.com ឬ yahoo.com ។">
<!ENTITY torsettings.bridgeHelp4Heading "តាមរយៈជំនួយ">
-<!ENTITY torsettings.bridgeHelp4 "នៅជម្រើសចុងក្រោយ អ្នកអាចស្នើអាសយដ្ឋានប៊្រីតដោយផ្ញើសារអ៊ីមែលគួរសមទៅ help(a)rt.torproject.org.&#160; សូមចំណាំថា មនុស្សម្នាក់នឹងត្រូវឆ្លើយតបទៅសំណើនីមួយៗ។">
+<!ENTITY torsettings.bridgeHelp4 "នៅជម្រើសចុងក្រោយ អ្នកអាចស្នើអាសយដ្ឋានប៊្រីតដោយផ្ញើសារអ៊ីមែលគួរសមទៅ help(a)rt.torproject.org.  សូមចំណាំថា មនុស្សម្នាក់នឹងត្រូវឆ្លើយតបទៅសំណើនីមួយៗ។">
diff --git a/src/chrome/locale/kn/network-settings.dtd b/src/chrome/locale/kn/network-settings.dtd
index 4195d7e..114814b 100644
--- a/src/chrome/locale/kn/network-settings.dtd
+++ b/src/chrome/locale/kn/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ko-KR/network-settings.dtd b/src/chrome/locale/ko-KR/network-settings.dtd
index ee9d699..14f6303 100644
--- a/src/chrome/locale/ko-KR/network-settings.dtd
+++ b/src/chrome/locale/ko-KR/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ko/network-settings.dtd b/src/chrome/locale/ko/network-settings.dtd
index 9b4465d..2af691c 100644
--- a/src/chrome/locale/ko/network-settings.dtd
+++ b/src/chrome/locale/ko/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "이 질문에 어떻게 대답해야 할지 확신이 서지 않으면 아니오를 선택하세요. Tor 네트워크에 접속할 때 문제를 만났다면 이 설정을 변경해 주세요.">
<!ENTITY torSettings.enterFirewall "방화벽에 따라 허가되고 있는 포트 목록 입력해 주세요. 포트 번호는 콤마로 구분됩니다.">
<!ENTITY torSettings.bridgeQuestion "인터넷 서비스 공급자(ISP)가 Tor 네트워크 접속을 차단하거나 검열하고 있나요?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Tor log를 클립보드에 복사하기">
<!ENTITY torsettings.bridgeHelpTitle "브릿지 중계 서버 도움말">
-<!ENTITY torsettings.bridgeHelp1 "Tor 네트워크에 접속할 수 없는 경우, 귀하의 인터넷 서비스 공급자(ISP)나 별도의 기관이 Tor를 차단하고 있을 가능성이 있습니다.&#160; 그럴 때는 숨겨진 중계 서버를 통해 Tor 브릿지를 사용함으로써 이 문제를 해결할 수도 있습니다.">
+<!ENTITY torsettings.bridgeHelp1 "Tor 네트워크에 접속할 수 없는 경우, 귀하의 인터넷 서비스 공급자(ISP)나 별도의 기관이 Tor를 차단하고 있을 가능성이 있습니다.  그럴 때는 숨겨진 중계 서버를 통해 Tor 브릿지를 사용함으로써 이 문제를 해결할 수도 있습니다.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "https://bridges.torproject.org 를 방문하십시오.">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "공개 브릿지 주소를 찾는 또 하나의 방법은 본문에 'get bridges'라고 적은 E-mail을 bridges(a)torproject.org 앞으로 보내는 것입니다.&#160; 단, 브릿지 주소를 크래커들이 수집하기 어렵게 하기 위해 gmail.com 이나 yahoo.com 으로 보내주시면 감사하겠습니다.">
+<!ENTITY torsettings.bridgeHelp3 "공개 브릿지 주소를 찾는 또 하나의 방법은 본문에 'get bridges'라고 적은 E-mail을 bridges(a)torproject.org 앞으로 보내는 것입니다.  단, 브릿지 주소를 크래커들이 수집하기 어렵게 하기 위해 gmail.com 이나 yahoo.com 으로 보내주시면 감사하겠습니다.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ku/network-settings.dtd b/src/chrome/locale/ku/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/ku/network-settings.dtd
+++ b/src/chrome/locale/ku/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/kw/network-settings.dtd b/src/chrome/locale/kw/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/kw/network-settings.dtd
+++ b/src/chrome/locale/kw/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ky/network-settings.dtd b/src/chrome/locale/ky/network-settings.dtd
index dd496ee..20eb780 100644
--- a/src/chrome/locale/ky/network-settings.dtd
+++ b/src/chrome/locale/ky/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/lb/network-settings.dtd b/src/chrome/locale/lb/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/lb/network-settings.dtd
+++ b/src/chrome/locale/lb/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/lg/network-settings.dtd b/src/chrome/locale/lg/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/lg/network-settings.dtd
+++ b/src/chrome/locale/lg/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ln/network-settings.dtd b/src/chrome/locale/ln/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/ln/network-settings.dtd
+++ b/src/chrome/locale/ln/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/lo/network-settings.dtd b/src/chrome/locale/lo/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/lo/network-settings.dtd
+++ b/src/chrome/locale/lo/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/lt/network-settings.dtd b/src/chrome/locale/lt/network-settings.dtd
index f53fee8..a619211 100644
--- a/src/chrome/locale/lt/network-settings.dtd
+++ b/src/chrome/locale/lt/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/lv/network-settings.dtd b/src/chrome/locale/lv/network-settings.dtd
index 1da65a6..65a23ca 100644
--- a/src/chrome/locale/lv/network-settings.dtd
+++ b/src/chrome/locale/lv/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Ja neesat pārliecināts par pareizo atbildi, izvēlieties atbildi "Nē". Ja rodas problēmas pievienojoties tīklam Tor, mainiet šo iestatījumu.">
<!ENTITY torSettings.enterFirewall "Ievadiet ar komatiem atdalītu ugusnmūra atļauto portu sarakstu.">
<!ENTITY torSettings.bridgeQuestion "Vai Jūsu interneta pakalpojumu sniedzējs (ISP) bloķē vai savādāk cenzē savienojumus ar tīklu Tor?">
-<!ENTITY torSettings.bridgeHelp "Ja nezināt atbildi, izvēlieties No.&#160; ja izvēlēsities Jā, Jums lūgs konfigurēt Tor tiltus jeb Tor Bridges, proti, neuzskaitītus retranslatorus, kuri apgrūtina savienojumu bloķēšanu ar tīklu Tor.">
+<!ENTITY torSettings.bridgeHelp "Ja nezināt atbildi, izvēlieties No.  ja izvēlēsities Jā, Jums lūgs konfigurēt Tor tiltus jeb Tor Bridges, proti, neuzskaitītus retranslatorus, kuri apgrūtina savienojumu bloķēšanu ar tīklu Tor.">
<!ENTITY torSettings.bridgeSettingsPrompt "Jūs varat izmantot piedāvāto tiltu kopumu vai varat ievadīt tiltu pielāgotu sarakstu. ">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Kopēt Tor žurnālu starpliktuvē">
<!ENTITY torsettings.bridgeHelpTitle "Palīdzība par tiltu retranslatoriem">
-<!ENTITY torsettings.bridgeHelp1 "Ja nevarat izveidot savienojumu ar tīklu Tor, tad, iespējams, ka Jūsu interneta pakalpojumu sniedzējs (ISP) vai cita iestāde bloķē Tor.&#160; Bieži, šo problemu var apiet izmantojot Tor tiltus jeb Tor Bridges, proti, neuzskaitītus retranslatorus, kurus grūtāk bloķēt.">
+<!ENTITY torsettings.bridgeHelp1 "Ja nevarat izveidot savienojumu ar tīklu Tor, tad, iespējams, ka Jūsu interneta pakalpojumu sniedzējs (ISP) vai cita iestāde bloķē Tor.  Bieži, šo problemu var apiet izmantojot Tor tiltus jeb Tor Bridges, proti, neuzskaitītus retranslatorus, kurus grūtāk bloķēt.">
<!ENTITY torsettings.bridgeHelp1B "Jūs varat izmantot iepriekš nokonfigurētas un piedāvātas tiltu adreses vai varat iegūt pielāgotu adrešu kopumu, sekojot vienai no trim metodēm:">
<!ENTITY torsettings.bridgeHelp2Heading "Caur tīmekli">
<!ENTITY torsettings.bridgeHelp2 "Izmanto pārlūkprogrammu lai apmeklētu https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Caur E-pasta Auto-atbildētāju">
-<!ENTITY torsettings.bridgeHelp3 "Sūtiet e-pastu uz bridges(a)torproject.org ar rindu 'get bridges' teksta korpusā.&#160; Taču, lai uzbrucējam būtu sarežģītāk uzzināt daudz tiltu adrešu, Jums jāsūta šis pieprasījums no gmail.com vai yahoo.com e-pasta adreses.">
+<!ENTITY torsettings.bridgeHelp3 "Sūtiet e-pastu uz bridges(a)torproject.org ar rindu 'get bridges' teksta korpusā.  Taču, lai uzbrucējam būtu sarežģītāk uzzināt daudz tiltu adrešu, Jums jāsūta šis pieprasījums no gmail.com vai yahoo.com e-pasta adreses.">
<!ENTITY torsettings.bridgeHelp4Heading "Caur Palīdzības Centru">
-<!ENTITY torsettings.bridgeHelp4 "Pēdējās instances palīdzība tiltu adrešu pieprasījumiem ir sūtīt pieklājīgu e-pasta adresi uz help(a)rt.torproject.org.&#160; Lūdzu, ņemiet vērā, ka ikvienu pieprasījumu izskata cilvēks.">
+<!ENTITY torsettings.bridgeHelp4 "Pēdējās instances palīdzība tiltu adrešu pieprasījumiem ir sūtīt pieklājīgu e-pasta adresi uz help(a)rt.torproject.org.  Lūdzu, ņemiet vērā, ka ikvienu pieprasījumu izskata cilvēks.">
diff --git a/src/chrome/locale/mg/network-settings.dtd b/src/chrome/locale/mg/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/mg/network-settings.dtd
+++ b/src/chrome/locale/mg/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/mi/network-settings.dtd b/src/chrome/locale/mi/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/mi/network-settings.dtd
+++ b/src/chrome/locale/mi/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/mk/network-settings.dtd b/src/chrome/locale/mk/network-settings.dtd
index 6750c88..6d7d35c 100644
--- a/src/chrome/locale/mk/network-settings.dtd
+++ b/src/chrome/locale/mk/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ml/network-settings.dtd b/src/chrome/locale/ml/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/ml/network-settings.dtd
+++ b/src/chrome/locale/ml/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/mn/network-settings.dtd b/src/chrome/locale/mn/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/mn/network-settings.dtd
+++ b/src/chrome/locale/mn/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/mr/network-settings.dtd b/src/chrome/locale/mr/network-settings.dtd
index 0e06f38..e72eb5f 100644
--- a/src/chrome/locale/mr/network-settings.dtd
+++ b/src/chrome/locale/mr/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ms-MY/network-settings.dtd b/src/chrome/locale/ms-MY/network-settings.dtd
index b416d22..ff872c9 100644
--- a/src/chrome/locale/ms-MY/network-settings.dtd
+++ b/src/chrome/locale/ms-MY/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Jika anda tidak pasti bagaimana untuk menjawab soalan ini, pilih Tidak. Jika anda menghadapi masalah untuk menyambung kepada rangkaian Tor, tukar tetapan ini.">
<!ENTITY torSettings.enterFirewall "Masukkan senarai port yang dipisahkan melalui koma yang dibenarkan oleh firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Salin log Tor ke clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bantuan Bridge Relay">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/mt/network-settings.dtd b/src/chrome/locale/mt/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/mt/network-settings.dtd
+++ b/src/chrome/locale/mt/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/my/network-settings.dtd b/src/chrome/locale/my/network-settings.dtd
index b5233ac..20e74bc 100644
--- a/src/chrome/locale/my/network-settings.dtd
+++ b/src/chrome/locale/my/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/nah/network-settings.dtd b/src/chrome/locale/nah/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/nah/network-settings.dtd
+++ b/src/chrome/locale/nah/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/nap/network-settings.dtd b/src/chrome/locale/nap/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/nap/network-settings.dtd
+++ b/src/chrome/locale/nap/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/nb/network-settings.dtd b/src/chrome/locale/nb/network-settings.dtd
index e065b65..6162491 100644
--- a/src/chrome/locale/nb/network-settings.dtd
+++ b/src/chrome/locale/nb/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Hvis du ikke er sikker på hvordan du skal svare på dette spørsmålet, velg nei. Hvis du støter på problemer med å koble til Tor-nettverket, endrer du denne innstillingen.">
<!ENTITY torSettings.enterFirewall "Skriv inn en liste, adskilt med komma, over porter som er tillatt av brannmuren.">
<!ENTITY torSettings.bridgeQuestion "Blokkerer eller sensurerer internettleverandøren (ISP) din tilkoblinger til Tor-nettverket?">
-<!ENTITY torSettings.bridgeHelp "Hvis du er usikker på hva du skal svare på dette spørsmålet, velg Nei.&#160; Hvis du velger Ja, vil du bli bedt om å konfigurere Tor-broer, som er ulistede reléer som gjør det vanskeligere å blokkere tilkoblinger til Tor-nettverket.">
+<!ENTITY torSettings.bridgeHelp "Hvis du er usikker på hva du skal svare på dette spørsmålet, velg Nei.  Hvis du velger Ja, vil du bli bedt om å konfigurere Tor-broer, som er ulistede reléer som gjør det vanskeligere å blokkere tilkoblinger til Tor-nettverket.">
<!ENTITY torSettings.bridgeSettingsPrompt "Du kan bruke de angitte broene eller du kan skaffe og oppgi egendefinerte broer.">
<!-- Other: -->
@@ -54,13 +54,13 @@
<!ENTITY torsettings.copyLog "Kopier Torloggen til Utklippstavlen">
<!ENTITY torsettings.bridgeHelpTitle "Bro-relé Hjelp">
-<!ENTITY torsettings.bridgeHelp1 "Hvis du ikke får koblet til Tor-nettverket, kan det være at internettleverandøren din (ISP), eller et annet byrå/institusjon/etat blokkerer Tor.&#160; Som regel kan du omgå dette problemet ved å bruke Tor-broer, som er ulistede reléer og derfor vanskeligere å blokkere.">
+<!ENTITY torsettings.bridgeHelp1 "Hvis du ikke får koblet til Tor-nettverket, kan det være at internettleverandøren din (ISP), eller et annet byrå/institusjon/etat blokkerer Tor.  Som regel kan du omgå dette problemet ved å bruke Tor-broer, som er ulistede reléer og derfor vanskeligere å blokkere.">
<!ENTITY torsettings.bridgeHelp1B "Du kan bruke de prekonfigurerte, angitte bro-adressene eller du kan skaffe deg egendefinerte adresser ved å bruke en av følgende tre metoder:">
<!ENTITY torsettings.bridgeHelp2Heading "Via nettet">
<!ENTITY torsettings.bridgeHelp2 "Bruk en nettleser for å besøke https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Via e-post autosvar">
-<!ENTITY torsettings.bridgeHelp3 "Send e-post til bridges(a)torproject.org med tekstlinjen 'get bridges' som eneste innhold i e-posten.&#160;
+<!ENTITY torsettings.bridgeHelp3 "Send e-post til bridges(a)torproject.org med tekstlinjen 'get bridges' som eneste innhold i e-posten. 
Men, for å gjøre det vanskeligere for en angriper å lære seg en masse bro-adresser, må du sende denne forespørselen fra en gmail.com eller yahoo.com adresse.">
<!ENTITY torsettings.bridgeHelp4Heading "Via supporten">
-<!ENTITY torsettings.bridgeHelp4 "Som en siste utvei, kan du be om bro-adresser ved å sende en høflig e-post til help(a)rt.torproject.org.&#160;
+<!ENTITY torsettings.bridgeHelp4 "Som en siste utvei, kan du be om bro-adresser ved å sende en høflig e-post til help(a)rt.torproject.org. 
Tenk over at en person må svare på hver slik forespørsel.">
diff --git a/src/chrome/locale/nds/network-settings.dtd b/src/chrome/locale/nds/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/nds/network-settings.dtd
+++ b/src/chrome/locale/nds/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ne/network-settings.dtd b/src/chrome/locale/ne/network-settings.dtd
index d0cd2c8..3a527c2 100644
--- a/src/chrome/locale/ne/network-settings.dtd
+++ b/src/chrome/locale/ne/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/nl-BE/network-settings.dtd b/src/chrome/locale/nl-BE/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/nl-BE/network-settings.dtd
+++ b/src/chrome/locale/nl-BE/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/nl/network-settings.dtd b/src/chrome/locale/nl/network-settings.dtd
index 8d04d0a..c362a5f 100644
--- a/src/chrome/locale/nl/network-settings.dtd
+++ b/src/chrome/locale/nl/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Als je niet zeker bent hoe je deze vraag moet beantwoorden, kies dan Nee. Als je op problemen botst tijdens het verbinden met het Tor netwerk, verander dan deze instelling.">
<!ENTITY torSettings.enterFirewall "Voer de poorten in die toegestaan zijn door de firewall, gescheiden door komma's.">
<!ENTITY torSettings.bridgeQuestion "Doet je Internet Service Provider (ISP) het Tor netwerk verbieden of filteren?">
-<!ENTITY torSettings.bridgeHelp "Als je niet zeker weet hoe je deze vraag moet beantwoorden, kies dan Nee.&#160; Als je Ja kiest, moet je Tor bridges instellen, die doordat ze geen bekende relays zijn het dus moeilijker maken om verbinding te maken met het Tor Netwerk. ">
+<!ENTITY torSettings.bridgeHelp "Als je niet zeker weet hoe je deze vraag moet beantwoorden, kies dan Nee.  Als je Ja kiest, moet je Tor bridges instellen, die doordat ze geen bekende relays zijn het dus moeilijker maken om verbinding te maken met het Tor Netwerk. ">
<!ENTITY torSettings.bridgeSettingsPrompt "Je kunt de ingegeven bridges gebruiken, of je kunt een eigen bridge instellen. ">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Kopieer Tor log naar het klembord">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Hulp">
-<!ENTITY torsettings.bridgeHelp1 "Indien u geen verbinding kan maken met het Tor netwerk, zou het kunnen dat uw Internet Service Provider (ISP) of dergelijke Tor blokkeert.&#160; Vaak kan u dit voorkomen door gebruikt te maken van Tor Bridges, dit zijn ongeregistreerde routers die moeilijker te blokkeren zijn.">
+<!ENTITY torsettings.bridgeHelp1 "Indien u geen verbinding kan maken met het Tor netwerk, zou het kunnen dat uw Internet Service Provider (ISP) of dergelijke Tor blokkeert.  Vaak kan u dit voorkomen door gebruikt te maken van Tor Bridges, dit zijn ongeregistreerde routers die moeilijker te blokkeren zijn.">
<!ENTITY torsettings.bridgeHelp1B "Je kan de voor geconfigureerde bridge adres instellingen gebruiken, of je kan hier zelf een eigen adres instellen met 1 van de volgende 3 methodes: ">
<!ENTITY torsettings.bridgeHelp2Heading "Door middel van het Web">
<!ENTITY torsettings.bridgeHelp2 "Gebruik een browser om https://bridges.torproject.org te bezoeken">
<!ENTITY torsettings.bridgeHelp3Heading "Door middel van de E-mail Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Zend een e-mail naar bridges(a)torproject.org met als inhoud van de mail de tekst 'get bridges'.&#160; Let wel, om het aanvallers te bemoeilijken informatie te krijgen over bridge adressen, dient u uw aanvraag te versturen van een gmail.com of yahoo.com e-mailadres.">
+<!ENTITY torsettings.bridgeHelp3 "Zend een e-mail naar bridges(a)torproject.org met als inhoud van de mail de tekst 'get bridges'.  Let wel, om het aanvallers te bemoeilijken informatie te krijgen over bridge adressen, dient u uw aanvraag te versturen van een gmail.com of yahoo.com e-mailadres.">
<!ENTITY torsettings.bridgeHelp4Heading "Door middel van de helpdesk">
-<!ENTITY torsettings.bridgeHelp4 "Als laatste redmiddel, kan u bridge adressen aanvraag door een zeer vriendelijke e-mail te sturen naar help(a)rt.torproject.org.&#160; Houd er wel rekening mee dat deze persoon elke aanvraag moet behandelen.">
+<!ENTITY torsettings.bridgeHelp4 "Als laatste redmiddel, kan u bridge adressen aanvraag door een zeer vriendelijke e-mail te sturen naar help(a)rt.torproject.org.  Houd er wel rekening mee dat deze persoon elke aanvraag moet behandelen.">
diff --git a/src/chrome/locale/nn/network-settings.dtd b/src/chrome/locale/nn/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/nn/network-settings.dtd
+++ b/src/chrome/locale/nn/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/nso/network-settings.dtd b/src/chrome/locale/nso/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/nso/network-settings.dtd
+++ b/src/chrome/locale/nso/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/oc/network-settings.dtd b/src/chrome/locale/oc/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/oc/network-settings.dtd
+++ b/src/chrome/locale/oc/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/or/network-settings.dtd b/src/chrome/locale/or/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/or/network-settings.dtd
+++ b/src/chrome/locale/or/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/pa/network-settings.dtd b/src/chrome/locale/pa/network-settings.dtd
index bb781e4..0ac00e2 100644
--- a/src/chrome/locale/pa/network-settings.dtd
+++ b/src/chrome/locale/pa/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/pap/network-settings.dtd b/src/chrome/locale/pap/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/pap/network-settings.dtd
+++ b/src/chrome/locale/pap/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/pl/network-settings.dtd b/src/chrome/locale/pl/network-settings.dtd
index 435536a..312be05 100644
--- a/src/chrome/locale/pl/network-settings.dtd
+++ b/src/chrome/locale/pl/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Jeśli nie jesteś pewien jak odpowiedzieć na to pytanie, wybierz Nie. W przypadku wystąpienia problemów z połączeniem, zmień tą opcję.">
<!ENTITY torSettings.enterFirewall "Wprowadź listę portów dozwolonych przez zaporę (kolejne porty oddzielaj przecinkiem).">
<!ENTITY torSettings.bridgeQuestion "Czy Twój dostawca usług internetowych (ISP) blokuje lub cenzuruje połączenia sieci Tor?">
-<!ENTITY torSettings.bridgeHelp "Jeśli nie jesteś pewny odpowiedzi na to pytanie proszę wybrać odpowiedź Nie.&#160; Jeśli wybierzesz Tak, to będziesz poproszony o skonfigurowanie mostków Tora, które nie są publicznie wymienione, dzięki czemu będzie trudniej zablokować połączenia do sieci Tor.">
+<!ENTITY torSettings.bridgeHelp "Jeśli nie jesteś pewny odpowiedzi na to pytanie proszę wybrać odpowiedź Nie.  Jeśli wybierzesz Tak, to będziesz poproszony o skonfigurowanie mostków Tora, które nie są publicznie wymienione, dzięki czemu będzie trudniej zablokować połączenia do sieci Tor.">
<!ENTITY torSettings.bridgeSettingsPrompt "Możesz wybrać dostępny zestaw mostków, albo możesz uzyskać i wprowadzić niestandardowy zestaw mostów.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Skopiuj log do schowka">
<!ENTITY torsettings.bridgeHelpTitle "Pomoc Przekaźników Mostkowych">
-<!ENTITY torsettings.bridgeHelp1 "Jeśli nie jesteś w stanie połączyć się z siecią Tor, może to oznaczać, że Twój Dostawca Usług Internetowych (ISP) lub inna agencja blokuje dostęp do sieci Tor.&#160; Często można obejść ten problem używając Mostów Tor, które są nienotowanymi przekaźnikami, dzięki czemu trudniej je zablokować.">
+<!ENTITY torsettings.bridgeHelp1 "Jeśli nie jesteś w stanie połączyć się z siecią Tor, może to oznaczać, że Twój Dostawca Usług Internetowych (ISP) lub inna agencja blokuje dostęp do sieci Tor.  Często można obejść ten problem używając Mostów Tor, które są nienotowanymi przekaźnikami, dzięki czemu trudniej je zablokować.">
<!ENTITY torsettings.bridgeHelp1B "Możesz użyć wstępnie skonfigurowany, domyślny zestaw adresów mostów lub możesz uzyskać własny zestaw adresów za pomocą jednej z tych trzech metod:">
<!ENTITY torsettings.bridgeHelp2Heading "Za pośrednictwem sieci Web">
<!ENTITY torsettings.bridgeHelp2 "Użyj przeglądarki internetowej do odwiedzenia https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Poprzez Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Wyślij e-mail do bridges(a)torproject.org z linią "get bridges" w treści wiadomości.&#160; Aby jednak, utrudnić napastnikom naukę o adresach mostów, należy wysłać prośbę z adresu email gmail.com lub yahoo.com.">
+<!ENTITY torsettings.bridgeHelp3 "Wyślij e-mail do bridges(a)torproject.org z linią "get bridges" w treści wiadomości.  Aby jednak, utrudnić napastnikom naukę o adresach mostów, należy wysłać prośbę z adresu email gmail.com lub yahoo.com.">
<!ENTITY torsettings.bridgeHelp4Heading "Przez Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "W ostateczności, można zażądać adresów mostów, wysyłając uprzejmą wiadomość e-mail do help(a)rt.torproject.org.&#160; Należy pamiętać, że osoba będzie musiała odpowiedzieć na każde żądanie.">
+<!ENTITY torsettings.bridgeHelp4 "W ostateczności, można zażądać adresów mostów, wysyłając uprzejmą wiadomość e-mail do help(a)rt.torproject.org.  Należy pamiętać, że osoba będzie musiała odpowiedzieć na każde żądanie.">
diff --git a/src/chrome/locale/pms/network-settings.dtd b/src/chrome/locale/pms/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/pms/network-settings.dtd
+++ b/src/chrome/locale/pms/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ps/network-settings.dtd b/src/chrome/locale/ps/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/ps/network-settings.dtd
+++ b/src/chrome/locale/ps/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/pt-BR/network-settings.dtd b/src/chrome/locale/pt-BR/network-settings.dtd
index 5ba3f69..21c75e9 100644
--- a/src/chrome/locale/pt-BR/network-settings.dtd
+++ b/src/chrome/locale/pt-BR/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Se você não tiver certeza sobre como responder a esta questão, escolha Não. Em caso de dificuldades de conexão à rede Tor, modifique esta configuração.">
<!ENTITY torSettings.enterFirewall "Insira, separando-a por vírgulas, uma lista de portas habilitadas pelo firewall. ">
<!ENTITY torSettings.bridgeQuestion "Seu provedor de serviços de internet (ISP) bloqueiam ou censuram conexões à rede Tor?">
-<!ENTITY torSettings.bridgeHelp "Se você não está seguro de como responder esta questão, escolha No.&#160; Se você escolher Sim, você será perguntado para configurar pontes Tor, que são relays não listados que dificultam o bloqueio a rede Tor.">
+<!ENTITY torSettings.bridgeHelp "Se você não está seguro de como responder esta questão, escolha No.  Se você escolher Sim, você será perguntado para configurar pontes Tor, que são relays não listados que dificultam o bloqueio a rede Tor.">
<!ENTITY torSettings.bridgeSettingsPrompt "Você pode usar o conjunto de bridges fornecido ou pode obter e digitar um personalizado.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copiar o Log do Tor na área de transferência">
<!ENTITY torsettings.bridgeHelpTitle "Ajuda Retransmissor de Ponte">
-<!ENTITY torsettings.bridgeHelp1 "Se for impossível conectar-se à rede Tor, talvez o seu Provedor de Internet (ISP) ou outra instância esteja bloqueando o Tor.&#160; Normalmente, é possível contornar esse problema utilizando Pontes Tor, que são retransmissores ocultos, mais difíceis de bloquear.">
+<!ENTITY torsettings.bridgeHelp1 "Se for impossível conectar-se à rede Tor, talvez o seu Provedor de Internet (ISP) ou outra instância esteja bloqueando o Tor.  Normalmente, é possível contornar esse problema utilizando Pontes Tor, que são retransmissores ocultos, mais difíceis de bloquear.">
<!ENTITY torsettings.bridgeHelp1B "Você pode usar o conjunto fornecido pré-configurado de endereços de bridges ou pode obter um personalizado usando um desses três métodos:">
<!ENTITY torsettings.bridgeHelp2Heading "Através da Web">
<!ENTITY torsettings.bridgeHelp2 "Use um navegador de internet e visite ">
<!ENTITY torsettings.bridgeHelp3Heading "Através do Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Envie um e-mail para bridges(a)torproject.org com a mensagem 'get bridges'.&#160; Contudo, para tornar mais difícil para um invasor descobrir uma grande quantidade de endereços, você deve enviar esse pedido a partir do gmail.com ou yahoo.com.">
+<!ENTITY torsettings.bridgeHelp3 "Envie um e-mail para bridges(a)torproject.org com a mensagem 'get bridges'.  Contudo, para tornar mais difícil para um invasor descobrir uma grande quantidade de endereços, você deve enviar esse pedido a partir do gmail.com ou yahoo.com.">
<!ENTITY torsettings.bridgeHelp4Heading "Através do ">
-<!ENTITY torsettings.bridgeHelp4 "Como última opção, você pode requisitar endereços de pontes enviando uma mensagem de e-mail educada para help(a)rt.torproject.org.&#160; Note que uma pessoa terá que responder a cada requisição.">
+<!ENTITY torsettings.bridgeHelp4 "Como última opção, você pode requisitar endereços de pontes enviando uma mensagem de e-mail educada para help(a)rt.torproject.org.  Note que uma pessoa terá que responder a cada requisição.">
diff --git a/src/chrome/locale/pt/network-settings.dtd b/src/chrome/locale/pt/network-settings.dtd
index 57bd038..c231e10 100644
--- a/src/chrome/locale/pt/network-settings.dtd
+++ b/src/chrome/locale/pt/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Se não tem a certeza de como responder esta questão, escolha Não. Se encontrar quaisquer problemas ao ligar-se à rede Tor, mude esta definição.">
<!ENTITY torSettings.enterFirewall "Introduza uma lista de portos separada por vírgulas que são permitidas pela firewall.">
<!ENTITY torSettings.bridgeQuestion "O seu fornecedor de serviços de internet bloqueia ou censura ligações à rede Tor ?">
-<!ENTITY torSettings.bridgeHelp "Se não tem a certeza de como responder a esta questão, escolha o Nº.&#160; Se escolher Sim, vai-lhe ser pedido para configurar as Tor Bridges, que são pontos de passagem não listados mais difíceis de bloquear ligações à rede Tor.">
+<!ENTITY torSettings.bridgeHelp "Se não tem a certeza de como responder a esta questão, escolha o Nº.  Se escolher Sim, vai-lhe ser pedido para configurar as Tor Bridges, que são pontos de passagem não listados mais difíceis de bloquear ligações à rede Tor.">
<!ENTITY torSettings.bridgeSettingsPrompt "Pode usar o conjunto de bridges pré-configurado fornecido, ou pode obter um conjunto de bridges personalizadas.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copiar o log Tor para a Área de Transferência">
<!ENTITY torsettings.bridgeHelpTitle "Ajuda Bridge Relay">
-<!ENTITY torsettings.bridgeHelp1 "Se não consegue ligar-se à rede Tor, pode ser devido a algum bloqueio do seu provedor de internet (ISP) ou outro intermediário está a bloquear o Tor.&#160; Normalmente, pode contornar este problema usando Tor Bridges, que são pontos de passagem não listados mais difíceis de bloquear.">
+<!ENTITY torsettings.bridgeHelp1 "Se não consegue ligar-se à rede Tor, pode ser devido a algum bloqueio do seu provedor de internet (ISP) ou outro intermediário está a bloquear o Tor.  Normalmente, pode contornar este problema usando Tor Bridges, que são pontos de passagem não listados mais difíceis de bloquear.">
<!ENTITY torsettings.bridgeHelp1B "Pode usar o conjunto de bridges pré-configurado fornecido, ou pode obter um conjunto de endereços personalizados usando um dos três métodos:">
<!ENTITY torsettings.bridgeHelp2Heading "Pela rede">
<!ENTITY torsettings.bridgeHelp2 "Use um navegador internet para visitar https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Pelo respondedor de email automático">
-<!ENTITY torsettings.bridgeHelp3 "Envie um email para bridges(a)torproject.org com a linha 'get bridges' no próprio corpo da mensagem.&#160; No entanto, para tornar mais difícil para um atacante apreender o conjunto de endereços de bridge, tem que enviar este pedido de uma conta gmail.com ou yahoo.com.">
+<!ENTITY torsettings.bridgeHelp3 "Envie um email para bridges(a)torproject.org com a linha 'get bridges' no próprio corpo da mensagem.  No entanto, para tornar mais difícil para um atacante apreender o conjunto de endereços de bridge, tem que enviar este pedido de uma conta gmail.com ou yahoo.com.">
<!ENTITY torsettings.bridgeHelp4Heading "Pelo Helpdesk">
-<!ENTITY torsettings.bridgeHelp4 "Em último caso, pode pedir endereços bridge enviando um email cordial para help(a)rt.torproject.org.&#160; Por favor tenha em conta que cada pedido será respondido por uma pessoa.">
+<!ENTITY torsettings.bridgeHelp4 "Em último caso, pode pedir endereços bridge enviando um email cordial para help(a)rt.torproject.org.  Por favor tenha em conta que cada pedido será respondido por uma pessoa.">
diff --git a/src/chrome/locale/ro/network-settings.dtd b/src/chrome/locale/ro/network-settings.dtd
index 297aca2..42f9cf9 100644
--- a/src/chrome/locale/ro/network-settings.dtd
+++ b/src/chrome/locale/ro/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ru/network-settings.dtd b/src/chrome/locale/ru/network-settings.dtd
index e8edaf2..ea2ee82 100644
--- a/src/chrome/locale/ru/network-settings.dtd
+++ b/src/chrome/locale/ru/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Если вы не уверены как отвечать, выберите нет. Если возникнут проблемы соединения с сетью Tor, измените эту настройку.">
<!ENTITY torSettings.enterFirewall "Введите список портов через запятую, которые брандмауэр не блокирует.">
<!ENTITY torSettings.bridgeQuestion "Ваш провайдер (ISP) блокирует или как-либо цензурирует подключения к сети Tor?">
-<!ENTITY torSettings.bridgeHelp "Если вы не знаете, как ответить на этот вопрос, выбирайте Нет.&#160; Если вы выберете Да, вас попросят настроить мосты Tor, которые являются неопубликованными маршрутизаторами, что затрудняет их блокировку.">
+<!ENTITY torSettings.bridgeHelp "Если вы не знаете, как ответить на этот вопрос, выбирайте Нет.  Если вы выберете Да, вас попросят настроить мосты Tor, которые являются неопубликованными маршрутизаторами, что затрудняет их блокировку.">
<!ENTITY torSettings.bridgeSettingsPrompt "Вы можете использовать предопределенный набор мостов или получить и ввести список мостов вручную.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Скопировать журнал Tor в буфер обмена">
<!ENTITY torsettings.bridgeHelpTitle "Помощь по ретрансляторам типа мост">
-<!ENTITY torsettings.bridgeHelp1 "Если вы не можете подключиться к сети Tor, возможно ваш провайдер (ISP) или иная организация блокирует Tor.&#160; Часто эту проблему можно обойти при помощи мостов Tor, не перечисленных в публичных списках, которые сложнее заблокировать.">
+<!ENTITY torsettings.bridgeHelp1 "Если вы не можете подключиться к сети Tor, возможно ваш провайдер (ISP) или иная организация блокирует Tor.  Часто эту проблему можно обойти при помощи мостов Tor, не перечисленных в публичных списках, которые сложнее заблокировать.">
<!ENTITY torsettings.bridgeHelp1B "Вы можете использовать стандартный предопределенный набор мостов или получить и ввести список мостов вручную при помощи одного из этих трёх методов:">
<!ENTITY torsettings.bridgeHelp2Heading "Из Веб">
<!ENTITY torsettings.bridgeHelp2 "Откройте в веб-браузере https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Через автоответчик электронной почты">
-<!ENTITY torsettings.bridgeHelp3 "Отправьте письмо по адресу bridges(a)torproject.org со строкой 'get bridges' в теле сообщения.&#160; Однако чтобы усложнить сбор атакующими адресов всех мостов, от Вас требуется отправить запрос с адреса gmail.com или yahoo.com.">
+<!ENTITY torsettings.bridgeHelp3 "Отправьте письмо по адресу bridges(a)torproject.org со строкой 'get bridges' в теле сообщения.  Однако чтобы усложнить сбор атакующими адресов всех мостов, от Вас требуется отправить запрос с адреса gmail.com или yahoo.com.">
<!ENTITY torsettings.bridgeHelp4Heading "В справочной службе">
-<!ENTITY torsettings.bridgeHelp4 "В крайнем случае, Вы можете вежливо попросить адреса мостов по адресу help(a)rt.torproject.org.&#160; Пожалуйста, имейте в виду, что каждый запрос обрабатывается человеком.">
+<!ENTITY torsettings.bridgeHelp4 "В крайнем случае, Вы можете вежливо попросить адреса мостов по адресу help(a)rt.torproject.org.  Пожалуйста, имейте в виду, что каждый запрос обрабатывается человеком.">
diff --git a/src/chrome/locale/ru(a)petr1708/network-settings.dtd b/src/chrome/locale/ru(a)petr1708/network-settings.dtd
index 7ffe499..c6c2c19 100644
--- a/src/chrome/locale/ru(a)petr1708/network-settings.dtd
+++ b/src/chrome/locale/ru(a)petr1708/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/sco/network-settings.dtd b/src/chrome/locale/sco/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/sco/network-settings.dtd
+++ b/src/chrome/locale/sco/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/si-LK/network-settings.dtd b/src/chrome/locale/si-LK/network-settings.dtd
index fc3a19f..6e09d16 100644
--- a/src/chrome/locale/si-LK/network-settings.dtd
+++ b/src/chrome/locale/si-LK/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "ඔබට මෙම ප්රශ්නයට පිළිතුරු දෙන්නේ කෙසේද යන්න විශ්වාස නැත්නම්, නැත යන්න තෝරන්න. Tor ජාලයට සම්බන්ධ වීමේදී ඔබට ගැටළු මතුවේ නම් මෙම සැකසුම වෙනස් කරන්න">
<!ENTITY torSettings.enterFirewall "firewall එක හරහා යාමට ඉඩදෙන ports වල ලැයිස්තුවක් කොමා වලින් වෙන්කර ඇතුළත් කරන්න.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Clipboard එකට Tor ලොගය පිටපත් කරන්න.">
<!ENTITY torsettings.bridgeHelpTitle "සේතු ප්රතියෝජක (Bridge Relay) උපකාරකය">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/si/network-settings.dtd b/src/chrome/locale/si/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/si/network-settings.dtd
+++ b/src/chrome/locale/si/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/sk-SK/network-settings.dtd b/src/chrome/locale/sk-SK/network-settings.dtd
index 1cfaab1..0b32ddc 100644
--- a/src/chrome/locale/sk-SK/network-settings.dtd
+++ b/src/chrome/locale/sk-SK/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Zadajte čísla portov oddelené medzerou, ktoré sú povolené na firewalle.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Kopírovať log Toru do schránky">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/sk/network-settings.dtd b/src/chrome/locale/sk/network-settings.dtd
index d9799be..19e714c 100644
--- a/src/chrome/locale/sk/network-settings.dtd
+++ b/src/chrome/locale/sk/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Ak si nieste istý ako odpovedať na túto otázku, zvoľte Nie. Ak narazíte na problémy s pripojením do siete Tor, zmeňte toto nastavenie.">
<!ENTITY torSettings.enterFirewall "Vložte zoznam portov oddelený čiarkou, ktoré sú povolené firewallom.">
<!ENTITY torSettings.bridgeQuestion "Blokuje alebo nejak cenzuruje váš Poskytovateľ Internetu (ISP) pripojenia k Sieti Tor?">
-<!ENTITY torSettings.bridgeHelp "Ak ste si nie istý ako zodpovedať túto otázku, zvoľte Nie.&#160; Ak zvolíte Áno, budete vyzvaný na konfiguráciu Mostov Toru, čo sú nezaradené relé značne sťažujúce blokovanie pripojení k Sieti Tor.">
+<!ENTITY torSettings.bridgeHelp "Ak ste si nie istý ako zodpovedať túto otázku, zvoľte Nie.  Ak zvolíte Áno, budete vyzvaný na konfiguráciu Mostov Toru, čo sú nezaradené relé značne sťažujúce blokovanie pripojení k Sieti Tor.">
<!ENTITY torSettings.bridgeSettingsPrompt "Môžete použiť poskytnutú sadu mostov alebo získať a vložiť vlastnú sadu.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Skopírovať záznam Tor do schránky clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Nápoveda o relé premosteniach">
-<!ENTITY torsettings.bridgeHelp1 "Ak nie ste schopný sa pripojiť k sieti Toru, je možné, že vás blokuje váš Poskytovateľ Internetú (ISP) alebo nejaké iná agentúra. &#160; Tento problém môžete často obísť použivaním Mostov Toru, čo sú nezaradené relé náročnejšie na blokovanie.">
+<!ENTITY torsettings.bridgeHelp1 "Ak nie ste schopný sa pripojiť k sieti Toru, je možné, že vás blokuje váš Poskytovateľ Internetú (ISP) alebo nejaké iná agentúra.   Tento problém môžete často obísť použivaním Mostov Toru, čo sú nezaradené relé náročnejšie na blokovanie.">
<!ENTITY torsettings.bridgeHelp1B "Môžete použiť prekonfigurovanú poskytnutú sadu mostových adries alebo vložiť vlastnú sadu adries použitím jednej z nasledujúcich metód:">
<!ENTITY torsettings.bridgeHelp2Heading "Cez Web">
<!ENTITY torsettings.bridgeHelp2 "Použite webový prehliadač na navštívenie https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Cez Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Pošlite email na adresu bridges(a)torproject.org obsahujúcu jeden riadok 'get bridges' ako telo správy.&#160; Avšak, aby bolo pre útočníkov náročnejšie odhaliť veľa mostových adries, musíte túto žiadosť poslať z emailovej adresy gmail.com alebo yahoo.com.">
+<!ENTITY torsettings.bridgeHelp3 "Pošlite email na adresu bridges(a)torproject.org obsahujúcu jeden riadok 'get bridges' ako telo správy.  Avšak, aby bolo pre útočníkov náročnejšie odhaliť veľa mostových adries, musíte túto žiadosť poslať z emailovej adresy gmail.com alebo yahoo.com.">
<!ENTITY torsettings.bridgeHelp4Heading "Cez Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "Ako poslednú možnosť si môžete vyžiadať adresy mostov zaslaním zdvorilého emailu na adresu help(a)rt.torproject.org.&#160; Prosíme berte na vedomie, že príslušná osoba musí odpovedať na každú jednu podobnú žiadosť.">
+<!ENTITY torsettings.bridgeHelp4 "Ako poslednú možnosť si môžete vyžiadať adresy mostov zaslaním zdvorilého emailu na adresu help(a)rt.torproject.org.  Prosíme berte na vedomie, že príslušná osoba musí odpovedať na každú jednu podobnú žiadosť.">
diff --git a/src/chrome/locale/sl-SI/network-settings.dtd b/src/chrome/locale/sl-SI/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/sl-SI/network-settings.dtd
+++ b/src/chrome/locale/sl-SI/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/sl/network-settings.dtd b/src/chrome/locale/sl/network-settings.dtd
index f56020a..f22e227 100644
--- a/src/chrome/locale/sl/network-settings.dtd
+++ b/src/chrome/locale/sl/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/sn/network-settings.dtd b/src/chrome/locale/sn/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/sn/network-settings.dtd
+++ b/src/chrome/locale/sn/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/so/network-settings.dtd b/src/chrome/locale/so/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/so/network-settings.dtd
+++ b/src/chrome/locale/so/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/son/network-settings.dtd b/src/chrome/locale/son/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/son/network-settings.dtd
+++ b/src/chrome/locale/son/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/sq-AL/network-settings.dtd b/src/chrome/locale/sq-AL/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/sq-AL/network-settings.dtd
+++ b/src/chrome/locale/sq-AL/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/sq/network-settings.dtd b/src/chrome/locale/sq/network-settings.dtd
index 481d8df..d52b22c 100644
--- a/src/chrome/locale/sq/network-settings.dtd
+++ b/src/chrome/locale/sq/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Nëse nuk jeni i sigurt si ti përgjigjeni kësaj pyetjeje, zgjidhni JO. Nëse keni probleme gjatë lidhjes me rrjetin Tor, kthehuni këtu dhe ndryshoni këtë parametër.">
<!ENTITY torSettings.enterFirewall "Jepni një listë të portave të lejuara nga mbrojtësi 'firewall', të ndarë me presje.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Kopjo ditarin e Tor në Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Ndihmë mbi relenë e urës">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/sr/network-settings.dtd b/src/chrome/locale/sr/network-settings.dtd
index 4b1d69b..5736f2c 100644
--- a/src/chrome/locale/sr/network-settings.dtd
+++ b/src/chrome/locale/sr/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/sr(a)latin/network-settings.dtd b/src/chrome/locale/sr(a)latin/network-settings.dtd
index d1dca40..7ebc424 100644
--- a/src/chrome/locale/sr(a)latin/network-settings.dtd
+++ b/src/chrome/locale/sr(a)latin/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/st/network-settings.dtd b/src/chrome/locale/st/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/st/network-settings.dtd
+++ b/src/chrome/locale/st/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/su/network-settings.dtd b/src/chrome/locale/su/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/su/network-settings.dtd
+++ b/src/chrome/locale/su/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/sv/network-settings.dtd b/src/chrome/locale/sv/network-settings.dtd
index 909ab94..b19b788 100644
--- a/src/chrome/locale/sv/network-settings.dtd
+++ b/src/chrome/locale/sv/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Om du är osäker på hur du ska svara på denna fråga, välj Nej. Om du då får problem med att ansluta till Tor-nätverket, ändra denna inställning till Ja.">
<!ENTITY torSettings.enterFirewall "Ange en komma-separerad lista över portar som brandväggen tillåter.">
<!ENTITY torSettings.bridgeQuestion "Blockerar eller censurerar din internetleverantör anslutningar till Tor-nätverket?">
-<!ENTITY torSettings.bridgeHelp "Om du är osäker på hur du ska svara på den här frågan, välj Nej.&#160; Om du väljer Ja kommer du ombes att konfigurera Tor-bryggor, vilka är olistade reläer som gör det svårare att blockera anslutningar till Tor-nätverket.">
+<!ENTITY torSettings.bridgeHelp "Om du är osäker på hur du ska svara på den här frågan, välj Nej.  Om du väljer Ja kommer du ombes att konfigurera Tor-bryggor, vilka är olistade reläer som gör det svårare att blockera anslutningar till Tor-nätverket.">
<!ENTITY torSettings.bridgeSettingsPrompt "Du kan använda de förkonfigurerade bryggorna, eller skaffa och ange bryggor själv.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Kopiera Tor-loggen till urklippet">
<!ENTITY torsettings.bridgeHelpTitle "Hjälp om bryggor">
-<!ENTITY torsettings.bridgeHelp1 "Om du inte kan ansluta till Tor-nätverket är det möjligt att din internetleverantör eller annan myndighet blockerar Tor.&#160; Ofta kan du kringgå detta problem genom att använda Tor-bryggor, vilka är olistade reläer som är mer svårblockerade.">
+<!ENTITY torsettings.bridgeHelp1 "Om du inte kan ansluta till Tor-nätverket är det möjligt att din internetleverantör eller annan myndighet blockerar Tor.  Ofta kan du kringgå detta problem genom att använda Tor-bryggor, vilka är olistade reläer som är mer svårblockerade.">
<!ENTITY torsettings.bridgeHelp1B "Du kan använda de förkonfigurerade bryggadresserna, eller skaffa bryggadresser själv på något av följande sätt:">
<!ENTITY torsettings.bridgeHelp2Heading "Via nätet">
<!ENTITY torsettings.bridgeHelp2 "Använd en webbläsare för att besöka https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Via e-post autosvar">
-<!ENTITY torsettings.bridgeHelp3 "Skicka ett e-post meddelande till bridges(a)torproject.org med endast raden "get bridges" i texten.&#160; Emellertid, för att göra det svårare för en angripare är ta reda på en massa bryggadresser, måste du skicka detta meddelande från ett gmail.com eller yahoo.com konto.">
+<!ENTITY torsettings.bridgeHelp3 "Skicka ett e-post meddelande till bridges(a)torproject.org med endast raden "get bridges" i texten.  Emellertid, för att göra det svårare för en angripare är ta reda på en massa bryggadresser, måste du skicka detta meddelande från ett gmail.com eller yahoo.com konto.">
<!ENTITY torsettings.bridgeHelp4Heading "Via supporten">
-<!ENTITY torsettings.bridgeHelp4 "Som en sista utväg kan du skicka ett artigt e-post meddelande på engelska till help(a)rt.torproject.org, och fråga efter bryggadresser.&#160; Tänk på att en person måste svara på varje sådan förfrågan.">
+<!ENTITY torsettings.bridgeHelp4 "Som en sista utväg kan du skicka ett artigt e-post meddelande på engelska till help(a)rt.torproject.org, och fråga efter bryggadresser.  Tänk på att en person måste svara på varje sådan förfrågan.">
diff --git a/src/chrome/locale/sw/network-settings.dtd b/src/chrome/locale/sw/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/sw/network-settings.dtd
+++ b/src/chrome/locale/sw/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/szl/network-settings.dtd b/src/chrome/locale/szl/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/szl/network-settings.dtd
+++ b/src/chrome/locale/szl/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ta/network-settings.dtd b/src/chrome/locale/ta/network-settings.dtd
index e683431..f2acbba 100644
--- a/src/chrome/locale/ta/network-settings.dtd
+++ b/src/chrome/locale/ta/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog " Tor பதிவுகளை கிளிப்போர்டுக்கு நகலெடு">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/te-IN/network-settings.dtd b/src/chrome/locale/te-IN/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/te-IN/network-settings.dtd
+++ b/src/chrome/locale/te-IN/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/te/network-settings.dtd b/src/chrome/locale/te/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/te/network-settings.dtd
+++ b/src/chrome/locale/te/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/tg/network-settings.dtd b/src/chrome/locale/tg/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/tg/network-settings.dtd
+++ b/src/chrome/locale/tg/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/th/network-settings.dtd b/src/chrome/locale/th/network-settings.dtd
index 3b92df8..a0464b4 100644
--- a/src/chrome/locale/th/network-settings.dtd
+++ b/src/chrome/locale/th/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "ถ้าคุณไม่แน่ใจว่าจะตอบคำถามยังไงให้เลือก "ไม่" ถ้าคุณประสบปัญหาในการเชื่อมต่อกับเครือข่าย Tor ให้กลับมาเปลี่ยนค่าติดตั้งนี้">
<!ENTITY torSettings.enterFirewall "ใส่รายการพอร์ตที่ไฟร์วอลล์อนุญาตโดยคั่นด้วยเครื่องหมายจุลภาค">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "คัดลอกปูม Tor ไปที่คลิปบอร์ด">
<!ENTITY torsettings.bridgeHelpTitle "การช่วยเหลือรีเลย์สะพาน">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ti/network-settings.dtd b/src/chrome/locale/ti/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/ti/network-settings.dtd
+++ b/src/chrome/locale/ti/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/tk/network-settings.dtd b/src/chrome/locale/tk/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/tk/network-settings.dtd
+++ b/src/chrome/locale/tk/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/tr/network-settings.dtd b/src/chrome/locale/tr/network-settings.dtd
index 4f465de..9e0aff5 100644
--- a/src/chrome/locale/tr/network-settings.dtd
+++ b/src/chrome/locale/tr/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Eğer bu soruya nasıl cevap vereceğinizden emin değilseniz, Hayır seçin. Eğer Tor ağına bağlanırken sorunla karşılaşırsanız, bu ayarı değiştirin.">
<!ENTITY torSettings.enterFirewall "Güvenlik duvarı tarafından izin verilen bağlantı noktalarının virgülle ayrılmış bir listesini girin.">
<!ENTITY torSettings.bridgeQuestion "İnternet Servis Sağlayıcınızı (ISS) engellesin veya ayrıcaTor Bağlantınızı sansürlesin mi?">
-<!ENTITY torSettings.bridgeHelp "Bu soruyu nasıl cevaplayacağınızdan emin değilseniz Hayır 'ı Secin.&#160; Eğer Evet'i seçerseniz, Tor Ağ bağlantıları engellemek için, daha zor hale getirilip listelenmeyen aktarmalar için Tor Köprülerini yapılandırmanız istenecektir.">
+<!ENTITY torSettings.bridgeHelp "Bu soruyu nasıl cevaplayacağınızdan emin değilseniz Hayır 'ı Secin.  Eğer Evet'i seçerseniz, Tor Ağ bağlantıları engellemek için, daha zor hale getirilip listelenmeyen aktarmalar için Tor Köprülerini yapılandırmanız istenecektir.">
<!ENTITY torSettings.bridgeSettingsPrompt "Sağlanan köprülerin kümesini kullanabilirsiniz veya özel bir köprü seti girebilir veya sağlayabilirsiniz.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Tor Günlüğünü Panoya Kopyala">
<!ENTITY torsettings.bridgeHelpTitle "Köprü Ayna Yardımı">
-<!ENTITY torsettings.bridgeHelp1 "Tor ağına bağlanamıyorsanız, nedeni kullandığınız İnternet Servis Sağlayıcısı (ISS) veya başka bir kurum Tor'u engelliyor olabilir.&#160; Çoğunlukla bu problemi Tor köprüleri ile çözebilirisiniz bunlar engellenmesi daha zor olan listede olmayan aktarma noktalarıdır">
+<!ENTITY torsettings.bridgeHelp1 "Tor ağına bağlanamıyorsanız, nedeni kullandığınız İnternet Servis Sağlayıcısı (ISS) veya başka bir kurum Tor'u engelliyor olabilir.  Çoğunlukla bu problemi Tor köprüleri ile çözebilirisiniz bunlar engellenmesi daha zor olan listede olmayan aktarma noktalarıdır">
<!ENTITY torsettings.bridgeHelp1B "Önceden yapılandırılan sağlanan köprü adresleri setini kullanabilirsiniz veya bu üç yöntemden birini kullanarak adres kümesinden özel bir set sağlayabilirsiniz:">
<!ENTITY torsettings.bridgeHelp2Heading "Web aracılığıyla.">
<!ENTITY torsettings.bridgeHelp2 "https://bridges.torproject.org sitesini ziyaret etmek için web tarayıcısı kullanın.">
<!ENTITY torsettings.bridgeHelp3Heading "Eposta otomatik cevaplandırıcı aracılığıyla.">
-<!ENTITY torsettings.bridgeHelp3 "bridges(a)torproject.org adresine, iletide sadece 'get bridges' satırını yazarak bir e-posta gönderin.&#160; Ancak, bir saldırganın çok sayıda köprü adresi öğrenmesini zorlaştırmak için bu epostayı gmail.com veya yahoo.com adreslerinden yollamanız gerekmektedir.">
+<!ENTITY torsettings.bridgeHelp3 "bridges(a)torproject.org adresine, iletide sadece 'get bridges' satırını yazarak bir e-posta gönderin.  Ancak, bir saldırganın çok sayıda köprü adresi öğrenmesini zorlaştırmak için bu epostayı gmail.com veya yahoo.com adreslerinden yollamanız gerekmektedir.">
<!ENTITY torsettings.bridgeHelp4Heading "Help Desk aracılığıyla.">
-<!ENTITY torsettings.bridgeHelp4 "Son bir çare olarak köprü adres taleplerini help(a)rt.torproject.org adresine posta göndererek rica edebilirsiniz.&#160 Birisinin bu talebi cevaplayacağını unutmayın.">
+<!ENTITY torsettings.bridgeHelp4 "Son bir çare olarak köprü adres taleplerini help(a)rt.torproject.org adresine posta göndererek rica edebilirsiniz.  Birisinin bu talebi cevaplayacağını unutmayın.">
diff --git a/src/chrome/locale/uk/network-settings.dtd b/src/chrome/locale/uk/network-settings.dtd
index fdf9ce6..c39cf08 100644
--- a/src/chrome/locale/uk/network-settings.dtd
+++ b/src/chrome/locale/uk/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Якщо Ви не знаєте, як відповісти на це питання, виберіть Ні. Якщо у Вас виникли проблеми з підключенням до мережі Tor, змініть дане налаштування.">
<!ENTITY torSettings.enterFirewall "Введіть список портів, відкритих у брандмауері, через кому.">
<!ENTITY torSettings.bridgeQuestion "Ваш Інтернет-провайдер (ISP) блокує чи яким-небудь чином цензурує підключення до Tor мережі?">
-<!ENTITY torSettings.bridgeHelp "Якщо Ви не знаєте, як відповісти на це питання, виберіть Ні.&#160; Якщо Ви виберете Так, Вам буде запропоновано налаштувати мости Tor, що є приватними трансляторами, які роблять більш важким блокування з'єднань з Tor мережі.">
+<!ENTITY torSettings.bridgeHelp "Якщо Ви не знаєте, як відповісти на це питання, виберіть Ні.  Якщо Ви виберете Так, Вам буде запропоновано налаштувати мости Tor, що є приватними трансляторами, які роблять більш важким блокування з'єднань з Tor мережі.">
<!ENTITY torSettings.bridgeSettingsPrompt "Ви можете використати визначений перелік мостів або можете отримати і ввести набір мостів вручну.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Скопіювати журнал Tor до буферу обміну">
<!ENTITY torsettings.bridgeHelpTitle "Допомога по ретрансляторам типу міст">
-<!ENTITY torsettings.bridgeHelp1 "Якщо Ви не можете підключитися до мережі Tor, може бути, що Ваш інтернет-провайдер (ISP) або інша організація блокує Tor.&#160; Часто можна обійти цю проблему за допомогою Tor мостів, що є приватними трансляторами, які важче заблокувати.">
+<!ENTITY torsettings.bridgeHelp1 "Якщо Ви не можете підключитися до мережі Tor, може бути, що Ваш інтернет-провайдер (ISP) або інша організація блокує Tor.  Часто можна обійти цю проблему за допомогою Tor мостів, що є приватними трансляторами, які важче заблокувати.">
<!ENTITY torsettings.bridgeHelp1B "Ви можете використати визначений перелік мостів або отримати і ввести набір мостів вручну, використовуючи один з трьох перерахованих методів:">
<!ENTITY torsettings.bridgeHelp2Heading "Через Веб">
<!ENTITY torsettings.bridgeHelp2 "Відвідайте сторінку https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Через автовідповідач електронної пошти">
-<!ENTITY torsettings.bridgeHelp3 "Надішліть повідомлення на адресу bridges(a)torproject.org зі стрічкою "get bridges" у тілі повідомлення.&#160; Проте, для того, щоб ускладнити визначення великої кількості адрес мостів зловмисниками, необхідно відправити цей запит від поштової скриньки gmail.com або yahoo.com.">
+<!ENTITY torsettings.bridgeHelp3 "Надішліть повідомлення на адресу bridges(a)torproject.org зі стрічкою "get bridges" у тілі повідомлення.  Проте, для того, щоб ускладнити визначення великої кількості адрес мостів зловмисниками, необхідно відправити цей запит від поштової скриньки gmail.com або yahoo.com.">
<!ENTITY torsettings.bridgeHelp4Heading "Через допомогу">
-<!ENTITY torsettings.bridgeHelp4 "У крайньому випадку, Ви можете отримати адресу мосту, відправивши ввічливе повідомлення на адресу help(a)rt.torproject.org.&#160; Зверніть увагу на те, що кожен запит обробляється людиною.">
+<!ENTITY torsettings.bridgeHelp4 "У крайньому випадку, Ви можете отримати адресу мосту, відправивши ввічливе повідомлення на адресу help(a)rt.torproject.org.  Зверніть увагу на те, що кожен запит обробляється людиною.">
diff --git a/src/chrome/locale/ur-PK/network-settings.dtd b/src/chrome/locale/ur-PK/network-settings.dtd
index 76ee3bd..cd52dd6 100644
--- a/src/chrome/locale/ur-PK/network-settings.dtd
+++ b/src/chrome/locale/ur-PK/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ur/network-settings.dtd b/src/chrome/locale/ur/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/ur/network-settings.dtd
+++ b/src/chrome/locale/ur/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/uz/network-settings.dtd b/src/chrome/locale/uz/network-settings.dtd
index 9f28d7b..3fa9532 100644
--- a/src/chrome/locale/uz/network-settings.dtd
+++ b/src/chrome/locale/uz/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ve/network-settings.dtd b/src/chrome/locale/ve/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/ve/network-settings.dtd
+++ b/src/chrome/locale/ve/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/vi/network-settings.dtd b/src/chrome/locale/vi/network-settings.dtd
index 8283781..a52ee40 100644
--- a/src/chrome/locale/vi/network-settings.dtd
+++ b/src/chrome/locale/vi/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Nếu như bạn không chắc chắn làm thế nào trả lời câu hỏi này, chọn Không. Nếu như bạn gặp vấn đề kết nối đến mạng Tor, thay đổi thiết lập này.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Nhà cung cấp dịch vụ (ISP) của bạn có ngăn chặn hoặc kiểm duyệt kết nối đến mạng Tor không?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -61,4 +61,4 @@
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
<!ENTITY torsettings.bridgeHelp3 "Gửi email đến bridges(a)torproject.org với dòng get bridges trong phần thân của email. Tuy nhiên, để làm cho kẻ tấn công khó khăn hơn trong việc biết được địa chỉ cầu nối, bạn phải gửi yêu cầu này từ email của yahoo.com hoặc gmail.com.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/wa/network-settings.dtd b/src/chrome/locale/wa/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/wa/network-settings.dtd
+++ b/src/chrome/locale/wa/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/wo/network-settings.dtd b/src/chrome/locale/wo/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/wo/network-settings.dtd
+++ b/src/chrome/locale/wo/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/zh-CN.GB2312/network-settings.dtd b/src/chrome/locale/zh-CN.GB2312/network-settings.dtd
index 7e3d9ca..899a543 100644
--- a/src/chrome/locale/zh-CN.GB2312/network-settings.dtd
+++ b/src/chrome/locale/zh-CN.GB2312/network-settings.dtd
@@ -22,7 +22,7 @@
<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
-<!ENTITY torSettings.bridgeQuestion "If this computer's Internet connection is censored, you will need to obtain and use bridge relays.&#160; If not, just click Connect.">
+<!ENTITY torSettings.bridgeQuestion "If this computer's Internet connection is censored, you will need to obtain and use bridge relays.  If not, just click Connect.">
<!-- Other: -->
@@ -49,11 +49,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "Here are three ways to obtain bridge addresses:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/zh-HK/network-settings.dtd b/src/chrome/locale/zh-HK/network-settings.dtd
index b71f161..3d7463a 100644
--- a/src/chrome/locale/zh-HK/network-settings.dtd
+++ b/src/chrome/locale/zh-HK/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/zh-TW/network-settings.dtd b/src/chrome/locale/zh-TW/network-settings.dtd
index 3831bce..6fcb103 100644
--- a/src/chrome/locale/zh-TW/network-settings.dtd
+++ b/src/chrome/locale/zh-TW/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "若您無法確定如何回答這個問題,請選擇「否」。若您在連結至 Tor 網路時遭遇問題,請再改變此設定。">
<!ENTITY torSettings.enterFirewall "請輸入防火牆允許的連線埠(請以逗號分隔)。">
<!ENTITY torSettings.bridgeQuestion "您的網路供應商 (ISP) 阻擋或者審查 Tor 網路連線?">
-<!ENTITY torSettings.bridgeHelp "如果你不知道如何回答這個問題,請選擇「否」&#160;如果你選擇選擇「是」,你將被要求設定Tor網橋,這可以讓阻擋客戶端與Tor伺服器的連接更困難。">
+<!ENTITY torSettings.bridgeHelp "如果你不知道如何回答這個問題,請選擇「否」 ;如果你選擇選擇「是」,你將被要求設定Tor網橋,這可以讓阻擋客戶端與Tor伺服器的連接更困難。">
<!ENTITY torSettings.bridgeSettingsPrompt "您可以使用預設的網橋或者你可以使用自定義設置的網橋。">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "複製 Tor 記錄到剪貼簿">
<!ENTITY torsettings.bridgeHelpTitle "橋接中繼說明">
-<!ENTITY torsettings.bridgeHelp1 "若您無法連接到 Tor 網路,可能是您的網際網路服務提供者 (ISP) 或其他機構已封鎖 Tor。&#160; 通常你可以使用更難以封鎖之隱藏中繼的 Tor 橋接來解決問題。">
+<!ENTITY torsettings.bridgeHelp1 "若您無法連接到 Tor 網路,可能是您的網際網路服務提供者 (ISP) 或其他機構已封鎖 Tor。  通常你可以使用更難以封鎖之隱藏中繼的 Tor 橋接來解決問題。">
<!ENTITY torsettings.bridgeHelp1B "你可能會使用預設,提供網橋地址或是你可能使用一個客製化的地址選擇由以下三者之中選一:">
<!ENTITY torsettings.bridgeHelp2Heading "透過網路">
<!ENTITY torsettings.bridgeHelp2 "使用網路瀏覽器造訪 https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "透過 Email 自動回覆">
-<!ENTITY torsettings.bridgeHelp3 "尋找公眾橋接位址的另一種方式是發送郵件到 bridges(a)torproject.xn--org,-3e5fnb965bxtdv9cqulkw6b 「get bridges」訊息。&#160; 然而,為了使攻擊者更難紀錄到更多橋接位址,您必須使用 gmail.com 或 yahoo.com 的信箱來發送此郵件。">
+<!ENTITY torsettings.bridgeHelp3 "尋找公眾橋接位址的另一種方式是發送郵件到 bridges(a)torproject.xn--org,-3e5fnb965bxtdv9cqulkw6b 「get bridges」訊息。  然而,為了使攻擊者更難紀錄到更多橋接位址,您必須使用 gmail.com 或 yahoo.com 的信箱來發送此郵件。">
<!ENTITY torsettings.bridgeHelp4Heading "透過 Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "最後的方法是:你可以寄送一封有禮貌的郵件到 help(a)rt.torproject.org &#160; 請注意我們需要一封封的手動回覆郵件。">
+<!ENTITY torsettings.bridgeHelp4 "最後的方法是:你可以寄送一封有禮貌的郵件到 help(a)rt.torproject.org   請注意我們需要一封封的手動回覆郵件。">
diff --git a/src/chrome/locale/zh/network-settings.dtd b/src/chrome/locale/zh/network-settings.dtd
index 7e3d9ca..899a543 100644
--- a/src/chrome/locale/zh/network-settings.dtd
+++ b/src/chrome/locale/zh/network-settings.dtd
@@ -22,7 +22,7 @@
<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
-<!ENTITY torSettings.bridgeQuestion "If this computer's Internet connection is censored, you will need to obtain and use bridge relays.&#160; If not, just click Connect.">
+<!ENTITY torSettings.bridgeQuestion "If this computer's Internet connection is censored, you will need to obtain and use bridge relays.  If not, just click Connect.">
<!-- Other: -->
@@ -49,11 +49,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "Here are three ways to obtain bridge addresses:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/zu/network-settings.dtd b/src/chrome/locale/zu/network-settings.dtd
index 4cedae6..a346274 100644
--- a/src/chrome/locale/zu/network-settings.dtd
+++ b/src/chrome/locale/zu/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
1
0
commit effeeb3f659950df6aa8f486d22d5d4e3dd883bf
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon May 5 09:51:00 2014 +0000
Update NoScript.
---
Bundle-Data/Docs/ChangeLog.txt | 1 +
gitian/versions.beta | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/Bundle-Data/Docs/ChangeLog.txt b/Bundle-Data/Docs/ChangeLog.txt
index 2ce07b1..7ad5f87 100644
--- a/Bundle-Data/Docs/ChangeLog.txt
+++ b/Bundle-Data/Docs/ChangeLog.txt
@@ -1,6 +1,7 @@
Tor Browser Bundle 3.6.1 -- May 6 2014
* All Platforms
* Update HTTPS-Everywhere to 3.5.1
+ * Update NoScript to 2.6.8.22
* Bug 11658: Fix proxy configuration for non-Pluggable Transports users
* Backport Pending Tor Patches:
* Bug 8402: Allow Tor proxy configuration while PTs are present
diff --git a/gitian/versions.beta b/gitian/versions.beta
index 2a92957..c3faa7b 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -43,7 +43,7 @@ HTTPSE_VER=3.5.1
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
GMP_PACKAGE=gmp-${GMP_VER}.tar.bz2
-NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.20-fn+fx+sm.xpi
+NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.22-sm+fx+fn.xpi
HTTPSE_PACKAGE=https-everywhere-${HTTPSE_VER}.xpi
TOOLCHAIN4_PACKAGE=x86_64-apple-darwin10.tar.xz
TOOLCHAIN4_OLD_PACKAGE=multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz
@@ -70,7 +70,7 @@ GMP_HASH=752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160
OSXSDK_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
TOOLCHAIN4_HASH=7b71bfe02820409b994c5c33a7eab81a81c72550f5da85ff7af70da3da244645
TOOLCHAIN4_OLD_HASH=65c1b2d302358a6b95a26c6828a66908a199276193bb0b268f2dcc1a997731e9
-NOSCRIPT_HASH=dae2abeb3c57240168c1fdfbf6c6664fa64859fb430ca1a05c218f81371f5ad1
+NOSCRIPT_HASH=5ec75d2f6fbf3ff7950a8eea2c7878d887ed3916aa89f99ec76b322b1e140c08
HTTPSE_HASH=62ac6560bb224a8f5557722153a72fb245b30b345940c537423bfbb7d8144e29
MINGW_HASH=a5b03d0448a309341be4cf34c6ad3016d04c89952dca5243254b4d6c738b164f
MSVCR100_HASH=1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067
1
0

03 May '14
commit c6de6b29322dd1e928f181f18046cbf3d0ed921e
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Sat May 3 10:04:42 2014 -0700
Update changelog for 3.6.1.
---
Bundle-Data/Docs/ChangeLog.txt | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/Bundle-Data/Docs/ChangeLog.txt b/Bundle-Data/Docs/ChangeLog.txt
index e7d5178..2ce07b1 100644
--- a/Bundle-Data/Docs/ChangeLog.txt
+++ b/Bundle-Data/Docs/ChangeLog.txt
@@ -1,3 +1,12 @@
+Tor Browser Bundle 3.6.1 -- May 6 2014
+ * All Platforms
+ * Update HTTPS-Everywhere to 3.5.1
+ * Bug 11658: Fix proxy configuration for non-Pluggable Transports users
+ * Backport Pending Tor Patches:
+ * Bug 8402: Allow Tor proxy configuration while PTs are present
+ * Note: The Pluggable Transports themselves have not been updated to
+ support proxy configuration yet.
+
Tor Browser Bundle 3.6 -- Apr 29 2014
* All Platforms
* Update Firefox to 24.5.0esr
1
0

[tor-browser-bundle/master] Bump version to 3.6.1 and pin FTE to a specific hash.
by mikeperry@torproject.org 03 May '14
by mikeperry@torproject.org 03 May '14
03 May '14
commit 797f967eb5d27f0c7b5703961344d391e66d7fe0
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Sat May 3 10:03:01 2014 -0700
Bump version to 3.6.1 and pin FTE to a specific hash.
FTE's tags are unsigned, so we have to use commit hashes.
---
gitian/versions.beta | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gitian/versions.beta b/gitian/versions.beta
index b5cfa53..2a92957 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -1,4 +1,4 @@
-TORBROWSER_VERSION=3.6
+TORBROWSER_VERSION=3.6.1
BUNDLE_LOCALES="ar de es-ES fa fr it ko nl pl pt-PT ru tr vi zh-CN"
BUILD_PT_BUNDLES=1
@@ -18,7 +18,7 @@ MINGW_REV=6184
PYPTLIB_TAG=pyptlib-0.0.5
OBFSPROXY_TAG=obfsproxy-0.2.4
FLASHPROXY_TAG=1.6
-FTEPROXY_TAG=0.2.13
+FTEPROXY_TAG=55d81d2f0a4fab759c1ed8aca78dd3a5db6e75c6 # unsigned 0.2.13
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
GITIAN_TAG=tor-browser-builder-3.x-5
1
0

[tor-browser-bundle/master] Add stopgap for shipping HTTPS-Everywhere.
by gk@torproject.org 02 May '14
by gk@torproject.org 02 May '14
02 May '14
commit 35411af55b92ee4d1c823aaefc5a5062ac940787
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri May 2 09:17:54 2014 +0000
Add stopgap for shipping HTTPS-Everywhere.
Until bug 11630 is fixed we add a better stopgap than shipping
outdated HTTPS-Everywhere versions: we take the NoScript route and
download and use the .xpi made by the EFF.
---
gitian/descriptors/linux/gitian-bundle.yml | 11 ++++++-----
gitian/descriptors/mac/gitian-bundle.yml | 11 ++++++-----
gitian/descriptors/windows/gitian-bundle.yml | 11 ++++++-----
gitian/fetch-inputs.sh | 6 ++++--
gitian/versions.beta | 4 ++++
gitian/versions.nightly | 4 ++++
6 files changed, 30 insertions(+), 17 deletions(-)
diff --git a/gitian/descriptors/linux/gitian-bundle.yml b/gitian/descriptors/linux/gitian-bundle.yml
index c16589a..006883c 100644
--- a/gitian/descriptors/linux/gitian-bundle.yml
+++ b/gitian/descriptors/linux/gitian-bundle.yml
@@ -41,6 +41,7 @@ files:
- "linux-skeleton.zip"
- "linux-langpacks.zip"
- "noscript(a)noscript.net.xpi"
+- "https-everywhere(a)eff.org.xpi"
- "dzip.sh"
- "dtar.sh"
- "bare-version"
@@ -88,13 +89,13 @@ script: |
~/build/dzip.sh ../../../tor-browser/Data/Browser/profile.default/extensions/torbutton(a)torproject.org.xpi .
cd ../../../
#
- cd https-everywhere
+ #cd https-everywhere
# XXX: Bloody hack to workaround a bug in HTTPS_E's git hash extraction in
# makexpi.sh. See https://trac.torproject.org/projects/tor/ticket/10066
- rm -f .git/refs/heads/master
- ./makexpi.sh
- cp pkg/*.xpi ../tor-browser/Data/Browser/profile.default/extensions/https-everywhere(a)eff.org.xpi
- cd ..
+ #rm -f .git/refs/heads/master
+ #./makexpi.sh
+ #cp pkg/*.xpi ../tor-browser/Data/Browser/profile.default/extensions/https-everywhere(a)eff.org.xpi
+ #cd ..
#
cp *.xpi tor-browser/Data/Browser/profile.default/extensions/
cd tor-browser/Data/Browser/profile.default/extensions
diff --git a/gitian/descriptors/mac/gitian-bundle.yml b/gitian/descriptors/mac/gitian-bundle.yml
index 263ca57..2668c7d 100644
--- a/gitian/descriptors/mac/gitian-bundle.yml
+++ b/gitian/descriptors/mac/gitian-bundle.yml
@@ -41,6 +41,7 @@ files:
- "dmg-desktop.tar.xz"
- "mac-langpacks.zip"
- "noscript(a)noscript.net.xpi"
+- "https-everywhere(a)eff.org.xpi"
- "dzip.sh"
- "ddmg.sh"
- "libdmg.patch"
@@ -95,13 +96,13 @@ script: |
~/build/dzip.sh ../../../$TORBROWSER_NAME.app/Data/Browser/profile.default/extensions/torbutton(a)torproject.org.xpi .
cd ../../../
#
- cd https-everywhere
+ # cd https-everywhere
# XXX: Bloody hack to workaround a bug in HTTPS_E's git hash extraction in
# makexpi.sh. See https://trac.torproject.org/projects/tor/ticket/10066
- rm -f .git/refs/heads/master
- ./makexpi.sh
- cp pkg/*.xpi ../$TORBROWSER_NAME.app/Data/Browser/profile.default/extensions/https-everywhere(a)eff.org.xpi
- cd ..
+ # rm -f .git/refs/heads/master
+ # ./makexpi.sh
+ # cp pkg/*.xpi ../$TORBROWSER_NAME.app/Data/Browser/profile.default/extensions/https-everywhere(a)eff.org.xpi
+ # cd ..
#
cp *.xpi ./$TORBROWSER_NAME.app/Data/Browser/profile.default/extensions/
cd $TORBROWSER_NAME.app/Data/Browser/profile.default/extensions/
diff --git a/gitian/descriptors/windows/gitian-bundle.yml b/gitian/descriptors/windows/gitian-bundle.yml
index 457fa7b..ebde49b 100644
--- a/gitian/descriptors/windows/gitian-bundle.yml
+++ b/gitian/descriptors/windows/gitian-bundle.yml
@@ -37,6 +37,7 @@ files:
- "windows-skeleton.zip"
- "win32-langpacks.zip"
- "noscript(a)noscript.net.xpi"
+- "https-everywhere(a)eff.org.xpi"
- "dzip.sh"
- "bare-version"
- "bundle.inputs"
@@ -78,13 +79,13 @@ script: |
~/build/dzip.sh ../../../tbb-windows-installer/"Tor Browser"/Data/Browser/profile.default/extensions/torbutton(a)torproject.org.xpi .
cd ../../../
#
- cd https-everywhere
+ #cd https-everywhere
# XXX: Bloody hack to workaround a bug in HTTPS_E's git hash extraction in
# makexpi.sh. See https://trac.torproject.org/projects/tor/ticket/10066
- rm -f .git/refs/heads/master
- ./makexpi.sh
- cp ./pkg/*.xpi ../tbb-windows-installer/"Tor Browser"/Data/Browser/profile.default/extensions/https-everywhere(a)eff.org.xpi
- cd ..
+ #rm -f .git/refs/heads/master
+ #./makexpi.sh
+ #cp ./pkg/*.xpi ../tbb-windows-installer/"Tor Browser"/Data/Browser/profile.default/extensions/https-everywhere(a)eff.org.xpi
+ #cd ..
#
cp *.xpi tbb-windows-installer/"Tor Browser"/Data/Browser/profile.default/extensions
cd tbb-windows-installer/"Tor Browser"/Data/Browser/profile.default/extensions
diff --git a/gitian/fetch-inputs.sh b/gitian/fetch-inputs.sh
index f80348e..b542cf0 100755
--- a/gitian/fetch-inputs.sh
+++ b/gitian/fetch-inputs.sh
@@ -206,8 +206,9 @@ done
cd ..
-# NoScript and PDF.JS are magikal and special:
+# NoScript and HTTPS-Everywhere are magikal and special:
wget -U "" -N ${NOSCRIPT_URL}
+wget -U "" -N ${HTTPSE_URL}
# So is mingw:
if [ ! -f mingw-w64-svn-snapshot.zip ];
@@ -226,7 +227,7 @@ fi
# Verify packages with weak or no signatures via direct sha256 check
# (OpenSSL is signed with MD5, and OSXSDK is not signed at all)
-for i in OSXSDK TOOLCHAIN4 TOOLCHAIN4_OLD NOSCRIPT MINGW MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED M2CRYPTO SETUPTOOLS OPENSSL GMP
+for i in OSXSDK TOOLCHAIN4 TOOLCHAIN4_OLD NOSCRIPT HTTPSE MINGW MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED M2CRYPTO SETUPTOOLS OPENSSL GMP
do
PACKAGE="${i}_PACKAGE"
HASH="${i}_HASH"
@@ -262,6 +263,7 @@ done
cd ..
ln -sf "$NOSCRIPT_PACKAGE" noscript(a)noscript.net.xpi
+ln -sf "$HTTPSE_PACKAGE" https-everywhere(a)eff.org.xpi
ln -sf "$OPENSSL_PACKAGE" openssl.tar.gz
ln -sf "$BINUTILS_PACKAGE" binutils.tar.bz2
ln -sf "$GCC_PACKAGE" gcc.tar.bz2
diff --git a/gitian/versions.beta b/gitian/versions.beta
index 3460248..b5cfa53 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -38,11 +38,13 @@ M2CRYPTO_VER=0.21.1
PY2EXE_VER=0.6.9
SETUPTOOLS_VER=1.4
LXML_VER=3.3.5
+HTTPSE_VER=3.5.1
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
GMP_PACKAGE=gmp-${GMP_VER}.tar.bz2
NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.20-fn+fx+sm.xpi
+HTTPSE_PACKAGE=https-everywhere-${HTTPSE_VER}.xpi
TOOLCHAIN4_PACKAGE=x86_64-apple-darwin10.tar.xz
TOOLCHAIN4_OLD_PACKAGE=multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz
OSXSDK_PACKAGE=apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
@@ -69,6 +71,7 @@ OSXSDK_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
TOOLCHAIN4_HASH=7b71bfe02820409b994c5c33a7eab81a81c72550f5da85ff7af70da3da244645
TOOLCHAIN4_OLD_HASH=65c1b2d302358a6b95a26c6828a66908a199276193bb0b268f2dcc1a997731e9
NOSCRIPT_HASH=dae2abeb3c57240168c1fdfbf6c6664fa64859fb430ca1a05c218f81371f5ad1
+HTTPSE_HASH=62ac6560bb224a8f5557722153a72fb245b30b345940c537423bfbb7d8144e29
MINGW_HASH=a5b03d0448a309341be4cf34c6ad3016d04c89952dca5243254b4d6c738b164f
MSVCR100_HASH=1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067
PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
@@ -89,6 +92,7 @@ OSXSDK_URL=https://launchpad.net/~flosoft/+archive/cross-apple/+files/${OSX…
BINUTILS_URL=https://ftp.gnu.org/gnu/binutils/${BINUTILS_PACKAGE}
GCC_URL=https://ftp.gnu.org/gnu/gcc/gcc-${GCC_VER}/${GCC_PACKAGE}
NOSCRIPT_URL=https://addons.cdn.mozilla.net/storage/public-staging/722/${NO…
+HTTPSE_URL=https://www.eff.org/files/${HTTPSE_PACKAGE}
PYTHON_URL=http://www.python.org/ftp/python/${PYTHON_VER}/${PYTHON_PACKAGE}
PYTHON_MSI_URL=http://www.python.org/ftp/python/${PYTHON_VER}/${PYTHON_MSI_…
PYCRYPTO_URL=https://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/${PYCRYPTO_PAC…
diff --git a/gitian/versions.nightly b/gitian/versions.nightly
index c8a8d7c..355b68a 100755
--- a/gitian/versions.nightly
+++ b/gitian/versions.nightly
@@ -39,11 +39,13 @@ M2CRYPTO_VER=0.21.1
PY2EXE_VER=0.6.9
SETUPTOOLS_VER=1.4
LXML_VER=3.3.5
+HTTPSE_VER=3.5.1
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
GMP_PACKAGE=gmp-${GMP_VER}.tar.bz2
NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.20-fn+fx+sm.xpi
+HTTPSE_PACKAGE=https-everywhere-${HTTPSE_VER}.xpi
TOOLCHAIN4_PACKAGE=x86_64-apple-darwin10.tar.xz
TOOLCHAIN4_OLD_PACKAGE=multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz
OSXSDK_PACKAGE=apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
@@ -70,6 +72,7 @@ OSXSDK_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
TOOLCHAIN4_HASH=7b71bfe02820409b994c5c33a7eab81a81c72550f5da85ff7af70da3da244645
TOOLCHAIN4_OLD_HASH=65c1b2d302358a6b95a26c6828a66908a199276193bb0b268f2dcc1a997731e9
NOSCRIPT_HASH=dae2abeb3c57240168c1fdfbf6c6664fa64859fb430ca1a05c218f81371f5ad1
+HTTPSE_HASH=62ac6560bb224a8f5557722153a72fb245b30b345940c537423bfbb7d8144e29
MINGW_HASH=a5b03d0448a309341be4cf34c6ad3016d04c89952dca5243254b4d6c738b164f
MSVCR100_HASH=1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067
PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
@@ -90,6 +93,7 @@ OSXSDK_URL=https://launchpad.net/~flosoft/+archive/cross-apple/+files/${OSX…
BINUTILS_URL=https://ftp.gnu.org/gnu/binutils/${BINUTILS_PACKAGE}
GCC_URL=https://ftp.gnu.org/gnu/gcc/gcc-${GCC_VER}/${GCC_PACKAGE}
NOSCRIPT_URL=https://addons.cdn.mozilla.net/storage/public-staging/722/${NO…
+HTTPSE_URL=https://www.eff.org/files/${HTTPSE_PACKAGE}
PYTHON_URL=http://www.python.org/ftp/python/${PYTHON_VER}/${PYTHON_PACKAGE}
PYTHON_MSI_URL=http://www.python.org/ftp/python/${PYTHON_VER}/${PYTHON_MSI_…
PYCRYPTO_URL=https://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/${PYCRYPTO_PAC…
1
0

[tor-browser-bundle/master] Bug 11658: Add support for proxies while PT lines are present.
by mikeperry@torproject.org 01 May '14
by mikeperry@torproject.org 01 May '14
01 May '14
commit 1a94be0a770084b61d87bf6da4f9563cfac236ed
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Thu May 1 12:32:43 2014 -0700
Bug 11658: Add support for proxies while PT lines are present.
This technically backports Bug 8402's patch, which will allow proxies to work
without PTs again.
However, PT+Proxies remain unsupported until we bump obfs3 to 0.2.9 and solve
bug #11535. Flashproxy and FTE may need similar bumps+tweaks to fully solve
bug #8402.
---
gitian/descriptors/linux/gitian-tor.yml | 2 +
gitian/descriptors/mac/gitian-tor.yml | 2 +
gitian/descriptors/windows/gitian-tor.yml | 2 +
gitian/patches/bug8402.patch | 437 +++++++++++++++++++++++++++++
4 files changed, 443 insertions(+)
diff --git a/gitian/descriptors/linux/gitian-tor.yml b/gitian/descriptors/linux/gitian-tor.yml
index 826d355..8b1644e 100644
--- a/gitian/descriptors/linux/gitian-tor.yml
+++ b/gitian/descriptors/linux/gitian-tor.yml
@@ -29,6 +29,7 @@ files:
- "bug11200.patch"
- "bug11069.patch"
- "bug9665.patch"
+- "bug8402.patch"
- "dzip.sh"
- "openssl-linux32-utils.zip"
- "openssl-linux64-utils.zip"
@@ -79,6 +80,7 @@ script: |
git am ~/build/bug11156.patch
git am ~/build/bug9665.patch
git am ~/build/bug11200.patch
+ git am ~/build/bug8402.patch
fi
fi
mkdir -p $OUTDIR/src
diff --git a/gitian/descriptors/mac/gitian-tor.yml b/gitian/descriptors/mac/gitian-tor.yml
index c3ae8d8..ca938fc 100644
--- a/gitian/descriptors/mac/gitian-tor.yml
+++ b/gitian/descriptors/mac/gitian-tor.yml
@@ -32,6 +32,7 @@ files:
- "bug11200.patch"
- "bug11069.patch"
- "bug9665.patch"
+- "bug8402.patch"
- "apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb"
- "multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz"
- "dzip.sh"
@@ -110,6 +111,7 @@ script: |
git am ~/build/bug11156.patch
git am ~/build/bug9665.patch
git am ~/build/bug11200.patch
+ git am ~/build/bug8402.patch
fi
fi
mkdir -p $OUTDIR/src
diff --git a/gitian/descriptors/windows/gitian-tor.yml b/gitian/descriptors/windows/gitian-tor.yml
index 5e452b9..61fc9b5 100644
--- a/gitian/descriptors/windows/gitian-tor.yml
+++ b/gitian/descriptors/windows/gitian-tor.yml
@@ -31,6 +31,7 @@ files:
- "bug11200.patch"
- "bug11069.patch"
- "bug9665.patch"
+- "bug8402.patch"
- "binutils.tar.bz2"
- "dzip.sh"
- "openssl.tar.gz"
@@ -106,6 +107,7 @@ script: |
git am ~/build/bug11156.patch
git am ~/build/bug9665.patch
git am ~/build/bug11200.patch
+ git am ~/build/bug8402.patch
fi
fi
mkdir -p $OUTDIR/src
diff --git a/gitian/patches/bug8402.patch b/gitian/patches/bug8402.patch
new file mode 100644
index 0000000..2aa74c6
--- /dev/null
+++ b/gitian/patches/bug8402.patch
@@ -0,0 +1,437 @@
+From 88ddabbce1e15627f51b1bd6aef06f1b3515dd15 Mon Sep 17 00:00:00 2001
+From: Yawning Angel <yawning(a)schwanenlied.me>
+Date: Thu, 1 May 2014 03:57:29 +0000
+Subject: [PATCH 1/2] Allow ClientTransportPlugins to use proxies
+
+This change allows using Socks4Proxy, Socks5Proxy and HTTPSProxy with
+ClientTransportPlugins via the TOR_PT_PROXY extension to the
+pluggable transport specification.
+
+This fixes bug #8402.
+
+WARNING:
+
+This is a backport to tor-0.2.4.x of a unmerged patch. Differences
+at the time of writing from my real branch are:
+ * Unit tests.
+ * get_proxy_type() is removed in the backport, 0.2.5.x uses the
+ routine elsewhere, so it is left intact (with modifications).
+---
+ src/or/config.c | 24 +++++++----
+ src/or/connection.c | 55 ++++++++++---------------
+ src/or/transports.c | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++--
+ src/or/transports.h | 3 ++
+ 4 files changed, 152 insertions(+), 44 deletions(-)
+
+diff --git a/src/or/config.c b/src/or/config.c
+index 09fdc0c..3fe5b73 100644
+--- a/src/or/config.c
++++ b/src/or/config.c
+@@ -490,7 +490,9 @@ static int options_transition_affects_descriptor(
+ static int check_nickname_list(const char *lst, const char *name, char **msg);
+
+ static int parse_bridge_line(const char *line, int validate_only);
+-static int parse_client_transport_line(const char *line, int validate_only);
++static int parse_client_transport_line(const or_options_t *options,
++ const char *line,
++ int validate_only);
+
+ static int parse_server_transport_line(const char *line, int validate_only);
+ static char *get_bindaddr_from_transport_listen_line(const char *line,
+@@ -1337,7 +1339,7 @@ options_act(const or_options_t *old_options)
+ pt_prepare_proxy_list_for_config_read();
+ if (options->ClientTransportPlugin) {
+ for (cl = options->ClientTransportPlugin; cl; cl = cl->next) {
+- if (parse_client_transport_line(cl->value, 0)<0) {
++ if (parse_client_transport_line(options, cl->value, 0)<0) {
+ log_warn(LD_BUG,
+ "Previously validated ClientTransportPlugin line "
+ "could not be added!");
+@@ -2954,11 +2956,11 @@ options_validate(or_options_t *old_options, or_options_t *options,
+ }
+ }
+
+- /* Check if more than one proxy type has been enabled. */
++ /* Check if more than one exclusive proxy type has been enabled. */
+ if (!!options->Socks4Proxy + !!options->Socks5Proxy +
+- !!options->HTTPSProxy + !!options->ClientTransportPlugin > 1)
++ !!options->HTTPSProxy > 1)
+ REJECT("You have configured more than one proxy type. "
+- "(Socks4Proxy|Socks5Proxy|HTTPSProxy|ClientTransportPlugin)");
++ "(Socks4Proxy|Socks5Proxy|HTTPSProxy)");
+
+ /* Check if the proxies will give surprising behavior. */
+ if (options->HTTPProxy && !(options->Socks4Proxy ||
+@@ -3073,7 +3075,7 @@ options_validate(or_options_t *old_options, or_options_t *options,
+ }
+
+ for (cl = options->ClientTransportPlugin; cl; cl = cl->next) {
+- if (parse_client_transport_line(cl->value, 1)<0)
++ if (parse_client_transport_line(options, cl->value, 1)<0)
+ REJECT("Transport line did not parse. See logs for details.");
+ }
+
+@@ -4229,7 +4231,8 @@ parse_bridge_line(const char *line, int validate_only)
+ * our internal transport list.
+ * - If it's a managed proxy line, launch the managed proxy. */
+ static int
+-parse_client_transport_line(const char *line, int validate_only)
++parse_client_transport_line(const or_options_t *options, const char *line,
++ int validate_only)
+ {
+ smartlist_t *items = NULL;
+ int r;
+@@ -4308,6 +4311,13 @@ parse_client_transport_line(const char *line, int validate_only)
+ pt_kickstart_client_proxy(transport_list, proxy_argv);
+ }
+ } else { /* external */
++ /* ClientTransportPlugins connecting through a proxy is managed only. */
++ if (options->Socks4Proxy || options->Socks5Proxy || options->HTTPSProxy) {
++ log_warn(LD_CONFIG, "You have configured an external proxy with another "
++ "proxy type. (Socks4Proxy|Socks5Proxy|HTTPSProxy)");
++ goto err;
++ }
++
+ if (smartlist_len(transport_list) != 1) {
+ log_warn(LD_CONFIG, "You can't have an external proxy with "
+ "more than one transports.");
+diff --git a/src/or/connection.c b/src/or/connection.c
+index 4f74a1d..683cf46 100644
+--- a/src/or/connection.c
++++ b/src/or/connection.c
+@@ -81,7 +81,6 @@ static const char *connection_proxy_state_to_string(int state);
+ static int connection_read_https_proxy_response(connection_t *conn);
+ static void connection_send_socks5_connect(connection_t *conn);
+ static const char *proxy_type_to_string(int proxy_type);
+-static int get_proxy_type(void);
+
+ /** The last addresses that our network interface seemed to have been
+ * binding to. We use this as one way to detect when our IP changes.
+@@ -4390,6 +4389,27 @@ get_proxy_addrport(tor_addr_t *addr, uint16_t *port, int *proxy_type,
+ {
+ const or_options_t *options = get_options();
+
++ /* Client Transport Plugins can use another proxy, but that should be hidden
++ * from the rest of tor (as the plugin is responsible for dealing with the
++ * proxy), check it first, then check the rest of the proxy types to allow
++ * the config to have unused ClientTransportPlugin entries.
++ */
++ if (options->ClientTransportPlugin) {
++ const transport_t *transport = NULL;
++ int r;
++ r = find_transport_by_bridge_addrport(&conn->addr, conn->port, &transport);
++ if (r<0)
++ return -1;
++ if (transport) { /* transport found */
++ tor_addr_copy(addr, &transport->addr);
++ *port = transport->port;
++ *proxy_type = transport->socks_version;
++ return 0;
++ }
++
++ /* Unused ClientTransportPlugin. */
++ }
++
+ if (options->HTTPSProxy) {
+ tor_addr_copy(addr, &options->HTTPSProxyAddr);
+ *port = options->HTTPSProxyPort;
+@@ -4405,43 +4425,12 @@ get_proxy_addrport(tor_addr_t *addr, uint16_t *port, int *proxy_type,
+ *port = options->Socks5ProxyPort;
+ *proxy_type = PROXY_SOCKS5;
+ return 0;
+- } else if (options->ClientTransportPlugin ||
+- options->Bridges) {
+- const transport_t *transport = NULL;
+- int r;
+- r = find_transport_by_bridge_addrport(&conn->addr, conn->port, &transport);
+- if (r<0)
+- return -1;
+- if (transport) { /* transport found */
+- tor_addr_copy(addr, &transport->addr);
+- *port = transport->port;
+- *proxy_type = transport->socks_version;
+- return 0;
+- }
+ }
+
+ *proxy_type = PROXY_NONE;
+ return 0;
+ }
+
+-/** Returns the global proxy type used by tor. */
+-static int
+-get_proxy_type(void)
+-{
+- const or_options_t *options = get_options();
+-
+- if (options->HTTPSProxy)
+- return PROXY_CONNECT;
+- else if (options->Socks4Proxy)
+- return PROXY_SOCKS4;
+- else if (options->Socks5Proxy)
+- return PROXY_SOCKS5;
+- else if (options->ClientTransportPlugin)
+- return PROXY_PLUGGABLE;
+- else
+- return PROXY_NONE;
+-}
+-
+ /** Log a failed connection to a proxy server.
+ * <b>conn</b> is the connection we use the proxy server for. */
+ void
+@@ -4457,7 +4446,7 @@ log_failed_proxy_connection(connection_t *conn)
+ log_warn(LD_NET,
+ "The connection to the %s proxy server at %s just failed. "
+ "Make sure that the proxy server is up and running.",
+- proxy_type_to_string(get_proxy_type()),
++ proxy_type_to_string(proxy_type),
+ fmt_addrport(&proxy_addr, proxy_port));
+ }
+
+diff --git a/src/or/transports.c b/src/or/transports.c
+index 3749d6b..cae1f31 100644
+--- a/src/or/transports.c
++++ b/src/or/transports.c
+@@ -103,6 +103,8 @@ static INLINE int proxy_configuration_finished(const managed_proxy_t *mp);
+
+ static void managed_proxy_destroy(managed_proxy_t *mp,
+ int also_terminate_process);
++static char* get_pt_proxy_uri(void);
++static void parse_proxy_error(const char *line);
+
+ static void handle_finished_proxy(managed_proxy_t *mp);
+ static int configure_proxy(managed_proxy_t *mp);
+@@ -123,6 +125,8 @@ static INLINE void free_execve_args(char **arg);
+ #define PROTO_SMETHOD_ERROR "SMETHOD-ERROR"
+ #define PROTO_CMETHODS_DONE "CMETHODS DONE"
+ #define PROTO_SMETHODS_DONE "SMETHODS DONE"
++#define PROTO_PROXY_DONE "PROXY DONE"
++#define PROTO_PROXY_ERROR "PROXY-ERROR"
+
+ /** The first and only supported - at the moment - configuration
+ protocol version. */
+@@ -434,6 +438,17 @@ add_transport_to_proxy(const char *transport, managed_proxy_t *mp)
+ static int
+ proxy_needs_restart(const managed_proxy_t *mp)
+ {
++ int ret = 1;
++ char* proxy_uri;
++
++ /* If the PT proxy config has changed, then all existing pluggable transports
++ * should be restarted.
++ */
++
++ proxy_uri = get_pt_proxy_uri();
++ if (strcmp_opt(proxy_uri, mp->proxy_uri) != 0)
++ goto needs_restart;
++
+ /* mp->transport_to_launch is populated with the names of the
+ transports that must be launched *after* the SIGHUP.
+ mp->transports is populated with the transports that were
+@@ -454,10 +469,10 @@ proxy_needs_restart(const managed_proxy_t *mp)
+
+ } SMARTLIST_FOREACH_END(t);
+
+- return 0;
+-
+- needs_restart:
+- return 1;
++ ret = 0;
++needs_restart:
++ tor_free(proxy_uri);
++ return ret;
+ }
+
+ /** Managed proxy <b>mp</b> must be restarted. Do all the necessary
+@@ -488,6 +503,11 @@ proxy_prepare_for_restart(managed_proxy_t *mp)
+ SMARTLIST_FOREACH(mp->transports, transport_t *, t, transport_free(t));
+ smartlist_clear(mp->transports);
+
++ /* Reset the proxy's HTTPS/SOCKS proxy */
++ tor_free(mp->proxy_uri);
++ mp->proxy_uri = get_pt_proxy_uri();
++ mp->proxy_supported = 0;
++
+ /* flag it as an infant proxy so that it gets launched on next tick */
+ mp->conf_state = PT_PROTO_INFANT;
+ unconfigured_proxies_n++;
+@@ -718,12 +738,52 @@ managed_proxy_destroy(managed_proxy_t *mp,
+ /* free the argv */
+ free_execve_args(mp->argv);
+
++ /* free the outgoing proxy URI */
++ tor_free(mp->proxy_uri);
++
+ tor_process_handle_destroy(mp->process_handle, also_terminate_process);
+ mp->process_handle = NULL;
+
+ tor_free(mp);
+ }
+
++/** Convert the tor proxy options to a URI suitable for TOR_PT_PROXY. */
++static char *
++get_pt_proxy_uri(void)
++{
++ const or_options_t *options = get_options();
++ char *uri = NULL;
++
++ if (options->Socks4Proxy || options->Socks5Proxy || options->HTTPSProxy) {
++ char addr[TOR_ADDR_BUF_LEN+1];
++
++ if (options->Socks4Proxy) {
++ tor_addr_to_str(addr, &options->Socks4ProxyAddr, sizeof(addr), 1);
++ tor_asprintf(&uri, "socks4a://%s:%d", addr, options->Socks4ProxyPort);
++ } else if (options->Socks5Proxy) {
++ tor_addr_to_str(addr, &options->Socks5ProxyAddr, sizeof(addr), 1);
++ if (!options->Socks5ProxyUsername && !options->Socks5ProxyPassword) {
++ tor_asprintf(&uri, "socks5://%s:%d", addr, options->Socks5ProxyPort);
++ } else {
++ tor_asprintf(&uri, "socks5://%s:%s@%s:%d",
++ options->Socks5ProxyUsername,
++ options->Socks5ProxyPassword,
++ addr, options->Socks5ProxyPort);
++ }
++ } else if (options->HTTPSProxy) {
++ tor_addr_to_str(addr, &options->HTTPSProxyAddr, sizeof(addr), 1);
++ if (!options->HTTPSProxyAuthenticator) {
++ tor_asprintf(&uri, "http://%s:%d", addr, options->HTTPSProxyPort);
++ } else {
++ tor_asprintf(&uri, "http://%s@%s:%d", options->HTTPSProxyAuthenticator,
++ addr, options->HTTPSProxyPort);
++ }
++ }
++ }
++
++ return uri;
++}
++
+ /** Handle a configured or broken managed proxy <b>mp</b>. */
+ static void
+ handle_finished_proxy(managed_proxy_t *mp)
+@@ -736,6 +796,12 @@ handle_finished_proxy(managed_proxy_t *mp)
+ managed_proxy_destroy(mp, 0); /* destroy it but don't terminate */
+ break;
+ case PT_PROTO_CONFIGURED: /* if configured correctly: */
++ if (mp->proxy_uri && !mp->proxy_supported) {
++ log_warn(LD_CONFIG, "Managed proxy '%s' did not configure the "
++ "specified outgoing proxy.", mp->argv[0]);
++ managed_proxy_destroy(mp, 1); /* annihilate it. */
++ break;
++ }
+ register_proxy(mp); /* register its transports */
+ mp->conf_state = PT_PROTO_COMPLETED; /* and mark it as completed. */
+ break;
+@@ -854,6 +920,22 @@ handle_proxy_line(const char *line, managed_proxy_t *mp)
+ goto err;
+
+ return;
++ } else if (!strcmpstart(line, PROTO_PROXY_DONE)) {
++ if (mp->conf_state != PT_PROTO_ACCEPTING_METHODS)
++ goto err;
++
++ if (mp->proxy_uri) {
++ mp->proxy_supported = 1;
++ return;
++ }
++
++ /* No proxy was configured, this should log */
++ } else if (!strcmpstart(line, PROTO_PROXY_ERROR)) {
++ if (mp->conf_state != PT_PROTO_ACCEPTING_METHODS)
++ goto err;
++
++ parse_proxy_error(line);
++ goto err;
+ } else if (!strcmpstart(line, SPAWN_ERROR_MESSAGE)) {
+ /* managed proxy launch failed: parse error message to learn why. */
+ int retval, child_state, saved_errno;
+@@ -1105,6 +1187,21 @@ parse_cmethod_line(const char *line, managed_proxy_t *mp)
+ return r;
+ }
+
++/** Parses an PROXY-ERROR <b>line</b> and warns the user accordingly. */
++static void
++parse_proxy_error(const char *line)
++{
++ /* (Length of the protocol string) plus (a space) and (the first char of
++ the error message) */
++ if (strlen(line) < (strlen(PROTO_PROXY_ERROR) + 2))
++ log_notice(LD_CONFIG, "Managed proxy sent us an %s without an error "
++ "message.", PROTO_PROXY_ERROR);
++
++ log_warn(LD_CONFIG, "Managed proxy failed to configure the "
++ "pluggable transport's outgoing proxy. (%s)",
++ line+strlen(PROTO_PROXY_ERROR)+1);
++}
++
+ /** Return the string that tor should place in TOR_PT_SERVER_BINDADDR
+ * while configuring the server managed proxy in <b>mp</b>. The
+ * string is stored in the heap, and it's the the responsibility of
+@@ -1193,6 +1290,14 @@ create_managed_proxy_environment(const managed_proxy_t *mp)
+ * variable in Tor's environment and crash PTs that try to parse
+ * it even when not run in server mode.) */
+ smartlist_add(envs, tor_strdup("TOR_PT_EXTENDED_SERVER_PORT="));
++ } else {
++ /* If ClientTransportPlugin has a HTTPS/SOCKS proxy configured, set the
++ * TOR_PT_PROXY line.
++ */
++
++ if (mp->proxy_uri) {
++ smartlist_add_asprintf(envs, "TOR_PT_PROXY=%s", mp->proxy_uri);
++ }
+ }
+
+ SMARTLIST_FOREACH_BEGIN(envs, const char *, env_var) {
+@@ -1225,6 +1330,7 @@ managed_proxy_create(const smartlist_t *transport_list,
+ mp->is_server = is_server;
+ mp->argv = proxy_argv;
+ mp->transports = smartlist_new();
++ mp->proxy_uri = get_pt_proxy_uri();
+
+ mp->transports_to_launch = smartlist_new();
+ SMARTLIST_FOREACH(transport_list, const char *, transport,
+diff --git a/src/or/transports.h b/src/or/transports.h
+index 6ee82f4..f13de5d 100644
+--- a/src/or/transports.h
++++ b/src/or/transports.h
+@@ -74,6 +74,9 @@ typedef struct {
+ char **argv; /* the cli arguments of this proxy */
+ int conf_protocol; /* the configuration protocol version used */
+
++ char *proxy_uri; /* the outgoing proxy in TOR_PT_PROXY URI format */
++ int proxy_supported : 1; /* the proxy claims to honor TOR_PT_PROXY */
++
+ int is_server; /* is it a server proxy? */
+
+ /* A pointer to the process handle of this managed proxy. */
+--
+1.8.1.2
+
+From 34004139ee9380c5c468d28037520d02681dd7cf Mon Sep 17 00:00:00 2001
+From: Yawning Angel <yawning(a)schwanenlied.me>
+Date: Thu, 1 May 2014 19:01:34 +0000
+Subject: [PATCH 2/2] Improve the log message when a transport doesn't support
+ proxies.
+
+Per feedback, explicltly note that the transport will be killed when it
+does not acknowledge the configured outgoing proxy.
+---
+ src/or/transports.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/or/transports.c b/src/or/transports.c
+index cae1f31..917d12a 100644
+--- a/src/or/transports.c
++++ b/src/or/transports.c
+@@ -798,7 +798,8 @@ handle_finished_proxy(managed_proxy_t *mp)
+ case PT_PROTO_CONFIGURED: /* if configured correctly: */
+ if (mp->proxy_uri && !mp->proxy_supported) {
+ log_warn(LD_CONFIG, "Managed proxy '%s' did not configure the "
+- "specified outgoing proxy.", mp->argv[0]);
++ "specified outgoing proxy and will be terminated.",
++ mp->argv[0]);
+ managed_proxy_destroy(mp, 1); /* annihilate it. */
+ break;
+ }
+--
+1.8.1.2
+
1
0

[tor-launcher/master] Correctly handle startup paths that contain dot.
by brade@torproject.org 29 Apr '14
by brade@torproject.org 29 Apr '14
29 Apr '14
commit 240a79d729ba5dcca5ebe3dc4a853bfb68fcd348
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Apr 29 13:31:49 2014 -0400
Correctly handle startup paths that contain dot.
---
src/components/tl-process.js | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/components/tl-process.js b/src/components/tl-process.js
index d927b06..2efea99 100644
--- a/src/components/tl-process.js
+++ b/src/components/tl-process.js
@@ -655,8 +655,10 @@ TorProcessService.prototype =
.getService(Ci.nsIProperties).get("CurProcD", Ci.nsIFile);
while (tbbBrowserDepth > 0)
{
+ var didRemove = (topDir.leafName != ".");
topDir = topDir.parent;
- tbbBrowserDepth--;
+ if (didRemove)
+ tbbBrowserDepth--;
}
}
1
0

[tor-browser-bundle/master] Bug 11629: Revert obfsproxy to 0.2.4.
by mikeperry@torproject.org 28 Apr '14
by mikeperry@torproject.org 28 Apr '14
28 Apr '14
commit 793a4cd404516b032bc696b4b0e6bb43bafb2e18
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Mon Apr 28 20:01:29 2014 +0200
Bug 11629: Revert obfsproxy to 0.2.4.
---
Bundle-Data/Docs/ChangeLog.txt | 1 -
gitian/versions.beta | 2 +-
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/Bundle-Data/Docs/ChangeLog.txt b/Bundle-Data/Docs/ChangeLog.txt
index 750537e..e7d5178 100644
--- a/Bundle-Data/Docs/ChangeLog.txt
+++ b/Bundle-Data/Docs/ChangeLog.txt
@@ -8,7 +8,6 @@ Tor Browser Bundle 3.6 -- Apr 29 2014
* Bug 7439: Improve download warning dialog text.
* Bug 11384: Completely remove hidden toggle menu item.
* Update NoScript to 2.6.8.20
- * Update obfs3 transport to 0.2.8
* Update fte transport to 0.2.13
* Backport Pending Tor Patches:
* Bug 11156: Additional obfsproxy startup error message fixes
diff --git a/gitian/versions.beta b/gitian/versions.beta
index 59a18fe..3460248 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -16,7 +16,7 @@ ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
MINGW_REV=6184
PYPTLIB_TAG=pyptlib-0.0.5
-OBFSPROXY_TAG=obfsproxy-0.2.8
+OBFSPROXY_TAG=obfsproxy-0.2.4
FLASHPROXY_TAG=1.6
FTEPROXY_TAG=0.2.13
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
1
0

28 Apr '14
commit cde005244bf739269a02c124d24187378563f050
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Mon Apr 28 15:42:05 2014 +0200
Roll back HTTPS-E to 3.4.5.
HTTPS-E 3.5 builds are no longer reproducible.
---
Bundle-Data/Docs/ChangeLog.txt | 1 -
gitian/versions | 2 +-
gitian/versions.alpha | 2 +-
gitian/versions.beta | 2 +-
4 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/Bundle-Data/Docs/ChangeLog.txt b/Bundle-Data/Docs/ChangeLog.txt
index 52610c4..750537e 100644
--- a/Bundle-Data/Docs/ChangeLog.txt
+++ b/Bundle-Data/Docs/ChangeLog.txt
@@ -7,7 +7,6 @@ Tor Browser Bundle 3.6 -- Apr 29 2014
* Update Torbutton to 1.6.9.0
* Bug 7439: Improve download warning dialog text.
* Bug 11384: Completely remove hidden toggle menu item.
- * Update HTTPS-Everywhere to 3.5.1
* Update NoScript to 2.6.8.20
* Update obfs3 transport to 0.2.8
* Update fte transport to 0.2.13
diff --git a/gitian/versions b/gitian/versions
index 81ec1e8..a410fff 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -9,7 +9,7 @@ TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build3
TOR_TAG=tor-0.2.4.21
TORLAUNCHER_TAG=0.2.4.4
TORBUTTON_TAG=1.6.7.0
-HTTPSE_TAG=3.5.1
+HTTPSE_TAG=3.4.5
NSIS_TAG=v0.1
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index 4ede6e6..3ca3442 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -10,7 +10,7 @@ TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build3
TOR_TAG=tor-0.2.5.3-alpha
TORLAUNCHER_TAG=0.2.5.4
TORBUTTON_TAG=1.6.9.0
-HTTPSE_TAG=3.5.1
+HTTPSE_TAG=3.4.5
NSIS_TAG=v0.1
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
diff --git a/gitian/versions.beta b/gitian/versions.beta
index 2560de3..59a18fe 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -10,7 +10,7 @@ TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build3
TOR_TAG=tor-0.2.4.21
TORLAUNCHER_TAG=0.2.5.4
TORBUTTON_TAG=1.6.9.0
-HTTPSE_TAG=3.5.1
+HTTPSE_TAG=3.4.5
NSIS_TAG=v0.1
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
1
0

26 Apr '14
commit 13e785546c9197c1b8698a42e3e4c1909824545f
Author: Georg Koppen <gk(a)torproject.org>
Date: Sat Apr 26 14:05:19 2014 +0000
Bump HTTPS-Everywhere version to 3.5.1.
---
Bundle-Data/Docs/ChangeLog.txt | 2 +-
gitian/versions | 2 +-
gitian/versions.alpha | 2 +-
gitian/versions.beta | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/Bundle-Data/Docs/ChangeLog.txt b/Bundle-Data/Docs/ChangeLog.txt
index 28e1ba2..52610c4 100644
--- a/Bundle-Data/Docs/ChangeLog.txt
+++ b/Bundle-Data/Docs/ChangeLog.txt
@@ -7,7 +7,7 @@ Tor Browser Bundle 3.6 -- Apr 29 2014
* Update Torbutton to 1.6.9.0
* Bug 7439: Improve download warning dialog text.
* Bug 11384: Completely remove hidden toggle menu item.
- * Update HTTPS-Everywhere to 3.5
+ * Update HTTPS-Everywhere to 3.5.1
* Update NoScript to 2.6.8.20
* Update obfs3 transport to 0.2.8
* Update fte transport to 0.2.13
diff --git a/gitian/versions b/gitian/versions
index c699242..81ec1e8 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -9,7 +9,7 @@ TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build3
TOR_TAG=tor-0.2.4.21
TORLAUNCHER_TAG=0.2.4.4
TORBUTTON_TAG=1.6.7.0
-HTTPSE_TAG=3.5
+HTTPSE_TAG=3.5.1
NSIS_TAG=v0.1
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index cb0551c..4ede6e6 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -10,7 +10,7 @@ TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build3
TOR_TAG=tor-0.2.5.3-alpha
TORLAUNCHER_TAG=0.2.5.4
TORBUTTON_TAG=1.6.9.0
-HTTPSE_TAG=3.5
+HTTPSE_TAG=3.5.1
NSIS_TAG=v0.1
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
diff --git a/gitian/versions.beta b/gitian/versions.beta
index 91c4a2c..2560de3 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -10,7 +10,7 @@ TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build3
TOR_TAG=tor-0.2.4.21
TORLAUNCHER_TAG=0.2.5.4
TORBUTTON_TAG=1.6.9.0
-HTTPSE_TAG=3.5
+HTTPSE_TAG=3.5.1
NSIS_TAG=v0.1
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
1
0

[tor-browser-bundle/master] Pick up new browser tag for build failure.
by mikeperry@torproject.org 25 Apr '14
by mikeperry@torproject.org 25 Apr '14
25 Apr '14
commit eeec4ba06cf7c4f8354b7e617f03eb286b94d296
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Fri Apr 25 21:28:19 2014 +0200
Pick up new browser tag for build failure.
---
gitian/versions | 2 +-
gitian/versions.alpha | 2 +-
gitian/versions.beta | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/gitian/versions b/gitian/versions
index a73640e..c699242 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -5,7 +5,7 @@ VERIFY_TAGS=1
FIREFOX_VERSION=24.5.0esr
-TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build2
+TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build3
TOR_TAG=tor-0.2.4.21
TORLAUNCHER_TAG=0.2.4.4
TORBUTTON_TAG=1.6.7.0
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index 8cf027f..cb0551c 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -6,7 +6,7 @@ VERIFY_TAGS=1
FIREFOX_VERSION=24.5.0esr
-TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build2
+TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build3
TOR_TAG=tor-0.2.5.3-alpha
TORLAUNCHER_TAG=0.2.5.4
TORBUTTON_TAG=1.6.9.0
diff --git a/gitian/versions.beta b/gitian/versions.beta
index fef930f..91c4a2c 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -6,7 +6,7 @@ VERIFY_TAGS=1
FIREFOX_VERSION=24.5.0esr
-TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build2
+TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build3
TOR_TAG=tor-0.2.4.21
TORLAUNCHER_TAG=0.2.5.4
TORBUTTON_TAG=1.6.9.0
1
0

[tor-browser/tor-browser-24.5.0esr-1] fixup! fix #9308 and #11433: don't leak user install path of TBB
by mikeperry@torproject.org 25 Apr '14
by mikeperry@torproject.org 25 Apr '14
25 Apr '14
commit e3a8d5fdd5dad12a0bcb6d2290553914457dd91e
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Fri Apr 25 21:23:44 2014 +0200
fixup! fix #9308 and #11433: don't leak user install path of TBB
Turns out case matters in C++. Who knew?
---
js/xpconnect/src/XPCException.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/js/xpconnect/src/XPCException.cpp b/js/xpconnect/src/XPCException.cpp
index bb4064a..7bd71a4 100644
--- a/js/xpconnect/src/XPCException.cpp
+++ b/js/xpconnect/src/XPCException.cpp
@@ -298,7 +298,7 @@ nsXPCException::Initialize(const char *aMessage, nsresult aResult, const char *a
nsAutoCString resourceFilename;
mozilla::Omnijar::ConvertToResourceFilename(nsCString(rawFilename), resourceFilename);
mFilename = (char *) nsMemory::Clone(resourceFilename.get(), resourceFilename.Length()+1);
- nsMemory::Free(rawFileName); // allocated by GetFilename
+ nsMemory::Free(rawFilename); // allocated by GetFilename
if (NS_FAILED(rc = aLocation->GetLineNumber(&mLineNumber)))
return rc;
} else {
1
0

25 Apr '14
commit 3a806b0580b608f1f75d07a641320c866a5f2a63
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Fri Apr 25 11:21:35 2014 -0700
Mention FTE update in changelog.
---
Bundle-Data/Docs/ChangeLog.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/Bundle-Data/Docs/ChangeLog.txt b/Bundle-Data/Docs/ChangeLog.txt
index 2fd4e04..28e1ba2 100644
--- a/Bundle-Data/Docs/ChangeLog.txt
+++ b/Bundle-Data/Docs/ChangeLog.txt
@@ -10,6 +10,7 @@ Tor Browser Bundle 3.6 -- Apr 29 2014
* Update HTTPS-Everywhere to 3.5
* Update NoScript to 2.6.8.20
* Update obfs3 transport to 0.2.8
+ * Update fte transport to 0.2.13
* Backport Pending Tor Patches:
* Bug 11156: Additional obfsproxy startup error message fixes
* Bug 11586: Include license files for component software in Docs directory.
1
0

[tor-browser-bundle/master] Update versions and ChangeLog for TBB 3.6.
by mikeperry@torproject.org 25 Apr '14
by mikeperry@torproject.org 25 Apr '14
25 Apr '14
commit ce30cd3a3862189369ae09450b01b03271ad8366
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Fri Apr 25 10:50:16 2014 -0700
Update versions and ChangeLog for TBB 3.6.
---
Bundle-Data/Docs/ChangeLog.txt | 7 +++++--
gitian/versions | 4 ++--
gitian/versions.alpha | 8 ++++----
gitian/versions.beta | 10 +++++-----
4 files changed, 16 insertions(+), 13 deletions(-)
diff --git a/Bundle-Data/Docs/ChangeLog.txt b/Bundle-Data/Docs/ChangeLog.txt
index f9d1e76..2fd4e04 100644
--- a/Bundle-Data/Docs/ChangeLog.txt
+++ b/Bundle-Data/Docs/ChangeLog.txt
@@ -4,15 +4,18 @@ Tor Browser Bundle 3.6 -- Apr 29 2014
* Update Tor Launcher to 0.2.5.4
* Bug #11482: Hide bridge settings prompt if no default bridges.
* Bug #11484: Show help button even if no default bridges.
- * Update Torbutton to 1.6.8.1
+ * Update Torbutton to 1.6.9.0
* Bug 7439: Improve download warning dialog text.
* Bug 11384: Completely remove hidden toggle menu item.
* Update HTTPS-Everywhere to 3.5
* Update NoScript to 2.6.8.20
- * Update obfs3 transport to XXX
+ * Update obfs3 transport to 0.2.8
* Backport Pending Tor Patches:
* Bug 11156: Additional obfsproxy startup error message fixes
* Bug 11586: Include license files for component software in Docs directory.
+ * Windows and Mac:
+ * Bug 9308: Prevent install path from leaking in some JS exceptions
+ on Mac and Windows builds
Tor Browser Bundle 3.6-beta-2 -- Apr 8 2014
* All Platforms
diff --git a/gitian/versions b/gitian/versions
index a9c372c..a73640e 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -5,7 +5,7 @@ VERIFY_TAGS=1
FIREFOX_VERSION=24.5.0esr
-TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build1
+TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build2
TOR_TAG=tor-0.2.4.21
TORLAUNCHER_TAG=0.2.4.4
TORBUTTON_TAG=1.6.7.0
@@ -15,7 +15,7 @@ ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
MINGW_REV=6184
PYPTLIB_TAG=pyptlib-0.0.5
-OBFSPROXY_TAG=obfsproxy-0.2.4
+OBFSPROXY_TAG=obfsproxy-0.2.8
FLASHPROXY_TAG=1.6
FTEPROXY_TAG=0.2.13
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index 9c5fa02..8cf027f 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -4,19 +4,19 @@ BUILD_PT_BUNDLES=1
VERIFY_TAGS=1
-FIREFOX_VERSION=24.4.0esr
+FIREFOX_VERSION=24.5.0esr
TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build2
TOR_TAG=tor-0.2.5.3-alpha
-TORLAUNCHER_TAG=0.2.5.3
-TORBUTTON_TAG=1.6.8.1
+TORLAUNCHER_TAG=0.2.5.4
+TORBUTTON_TAG=1.6.9.0
HTTPSE_TAG=3.5
NSIS_TAG=v0.1
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
MINGW_REV=6184
PYPTLIB_TAG=pyptlib-0.0.5
-OBFSPROXY_TAG=obfsproxy-0.2.4
+OBFSPROXY_TAG=obfsproxy-0.2.8
FLASHPROXY_TAG=1.6
FTEPROXY_TAG=0.2.13
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
diff --git a/gitian/versions.beta b/gitian/versions.beta
index f6c24a2..fef930f 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -1,4 +1,4 @@
-TORBROWSER_VERSION=3.6-pre
+TORBROWSER_VERSION=3.6
BUNDLE_LOCALES="ar de es-ES fa fr it ko nl pl pt-PT ru tr vi zh-CN"
BUILD_PT_BUNDLES=1
@@ -6,17 +6,17 @@ VERIFY_TAGS=1
FIREFOX_VERSION=24.5.0esr
-TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build1
+TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build2
TOR_TAG=tor-0.2.4.21
-TORLAUNCHER_TAG=0.2.5.3
-TORBUTTON_TAG=1.6.8.1
+TORLAUNCHER_TAG=0.2.5.4
+TORBUTTON_TAG=1.6.9.0
HTTPSE_TAG=3.5
NSIS_TAG=v0.1
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
MINGW_REV=6184
PYPTLIB_TAG=pyptlib-0.0.5
-OBFSPROXY_TAG=obfsproxy-0.2.4
+OBFSPROXY_TAG=obfsproxy-0.2.8
FLASHPROXY_TAG=1.6
FTEPROXY_TAG=0.2.13
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
1
0
commit 536c7471806e28476f00534250f59c046a950976
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Fri Apr 25 10:44:09 2014 -0700
Translation updates.
---
src/chrome/locale/ar/torbutton.properties | 12 ++++----
src/chrome/locale/de/torbutton.properties | 14 ++++-----
src/chrome/locale/es/torbutton.properties | 12 ++++----
src/chrome/locale/eu/torbutton.properties | 12 ++++----
src/chrome/locale/fa/torbutton.properties | 12 ++++----
src/chrome/locale/fr/torbutton.properties | 12 ++++----
src/chrome/locale/it/torbutton.properties | 30 +++++++++----------
src/chrome/locale/ja/torbutton.properties | 12 ++++----
src/chrome/locale/ko/torbutton.properties | 12 ++++----
src/chrome/locale/nl/torbutton.properties | 12 ++++----
src/chrome/locale/pl/torbutton.properties | 12 ++++----
src/chrome/locale/pt/torbutton.properties | 12 ++++----
src/chrome/locale/ru/torbutton.properties | 12 ++++----
src/chrome/locale/sv/torbutton.properties | 12 ++++----
src/chrome/locale/tr/torbutton.properties | 40 +++++++++++++-------------
src/chrome/locale/vi/torbutton.properties | 12 ++++----
src/chrome/locale/zh-CN/torbutton.properties | 12 ++++----
17 files changed, 126 insertions(+), 126 deletions(-)
diff --git a/src/chrome/locale/ar/torbutton.properties b/src/chrome/locale/ar/torbutton.properties
index ed55fb9..221eecd 100644
--- a/src/chrome/locale/ar/torbutton.properties
+++ b/src/chrome/locale/ar/torbutton.properties
@@ -21,13 +21,13 @@ torbutton.popup.test.auto_failed = الاختبار الآلي لبروكسي ت
torbutton.prefs.recommended = (موصى به)
torbutton.prefs.optional = (إختياري)
torbutton.prefs.crucial = (أساسي)
-torbutton.popup.external.title = تحميل محتوى خارجي؟
-torbutton.popup.external.app = هناك حاجة لاستخدام برنامج خارجي للتعامل مع:\n\n
-torbutton.popup.external.note = \n\nملاحظة: البرامج الخارجية ليست آمنة مع تور بشكل افتراضي ويمكن أن تكشف هويتك!\n
-torbutton.popup.external.suggest = \nإذا كان هذا الملف غير موثوق به، عليك إما أن تحفظه لاستعراضه دون أن تكون متصلاً بالإنترنت، أو إما باستخدام آلة افتراضية، أو حاول استخدام بروكسي مثل Tails LiveCD أو torsocks.\n
-torbutton.popup.launch = تشغيل البرنامج
+torbutton.popup.external.title = هل تريد تنزيل ملفاً من نوع الوصلة الخارجية؟
+torbutton.popup.external.app = لا يمكن لمتصفّح تور عرض هذه الملف, يجب عليك أن تفتحه باستعمال تطبيق أخر.\n\n
+torbutton.popup.external.note = بعض الأنواع من الملفات قد تعمل على إعطاء بعض التطبيقات الإمكانيّة للاتصال بالإنترنت دون استعمال تور.\n\n
+torbutton.popup.external.suggest = لسلامتك, يجب عليك فتح الملفات المنزّلة مسبقاً عند كونك غير متصلاً بالإنترنت, أو استعمل قرص مضغوط لـ Tor Life , مثل Tails.\n
+torbutton.popup.launch = إنزال الملف
torbutton.popup.cancel = إلغاء
-torbutton.popup.dontask = دائماً شغل البرامج ابتداءً من الآن
+torbutton.popup.dontask = أنزل الملفات بشكلٍ أوتوماتيكيّ من الأن فصاعداً
torbutton.popup.test.no_http_proxy = فحص بروكسي تور: لا يمكن الوصول إلى بروكسي HTTP المحلي. هل يعمل Polipo بشكل صحيح؟
torbutton.popup.captcha.title = تجنب Captcha جوجل؟
torbutton.popup.captcha.ask = كشف مفتاح تور من وجود Captcha جوجل. هل تريد أن يتم توجيهك إلى محرك بحث آخر لتنفيذ عملية البحث هذه؟
diff --git a/src/chrome/locale/de/torbutton.properties b/src/chrome/locale/de/torbutton.properties
index c968c32..3c4f5ee 100644
--- a/src/chrome/locale/de/torbutton.properties
+++ b/src/chrome/locale/de/torbutton.properties
@@ -21,13 +21,13 @@ torbutton.popup.test.auto_failed = Der automatische Tor-Vermittlungsservertest i
torbutton.prefs.recommended = (empfohlen)
torbutton.prefs.optional = (optional)
torbutton.prefs.crucial = (kritisch)
-torbutton.popup.external.title = Externen Inhalt laden?
-torbutton.popup.external.app = Eine externe Anwendung wird benötigt, um mit dem folgenden Objekt umzugehen:\n\n
-torbutton.popup.external.note = \n\nAnmerkung: Externe Anwendungen sind im Allgemeinen NICHT Tor gesichert und können Sie verraten!\n
-torbutton.popup.external.suggest = \nSollte dieser Datei nicht vertraut werden, speichern sie sie ab um sie offline oder in einer VM anzusehen,\noder ziehen sie in betracht einen transparenten Tor-Vermittlungsserver wie die Tails-LiveCD oder torsocks zu benutzen.\n
-torbutton.popup.launch = Anwendung starten
+torbutton.popup.external.title = Einen externen Dateitypen herunterladen
+torbutton.popup.external.app = Tor-Browser kann diese Datei nicht anzeigen. Sie müssen es mit einer anderen Anwendung öffnen.\n\n
+torbutton.popup.external.note = Some types of files can cause applications to connect to the Internet without using Tor.\n\n
+torbutton.popup.external.suggest = To be safe, you should only open downloaded files while offline, or use a Tor Live CD such as Tails.\n
+torbutton.popup.launch = Datei herunterladen
torbutton.popup.cancel = Abbrechen
-torbutton.popup.dontask = Von nun an Anwendungen immer laden
+torbutton.popup.dontask = Von jetzt an Dateien immer automatisch herunterladen
torbutton.popup.test.no_http_proxy = Tor-Vermittlungsservertest: Lokaler HTTP-Vermittlungsserver ist unerreichbar. Läuft Polipo korrekt?
torbutton.popup.captcha.title = Google-Captchas vermeiden?
torbutton.popup.captcha.ask = Torbutton hat ein Google-Captcha festgestellt. Möchten Sie für Ihre Suchanfrage zu einer anderen Suchmaschine umgeleitet werden?
@@ -48,7 +48,7 @@ torbutton.popup.confirm_plugins = Erweiterungen wie Flash können ihre Privatsph
torbutton.popup.never_ask_again = Nicht mehr nachfragen
# Canvas permission prompt. Strings are kept here for ease of translation.
-canvas.siteprompt=Diese Webseite (%S) hat versucht, auf Bilddaten von einem Canvas zuzugreifen. Da Canvas Bilddaten dazu benutzt werden können, um Informationen über ihren Rechner zu bekommen, wurden diesmal leere Bilddaten an die Webseite geschickt
+canvas.siteprompt=Die Webseite (%S) hat versucht, auf Bilddaten von einem Canvas zuzugreifen. Da Canvas Bilddaten dazu benutzt werden können, um Informationen über ihren Rechner zu bekommen, wurden diesmal leere Bilddaten an die Webseite geschickt
canvas.allow=In Zukunft Erlauben
canvas.allowAccessKey=I
canvas.never=Niemals für diese Website
diff --git a/src/chrome/locale/es/torbutton.properties b/src/chrome/locale/es/torbutton.properties
index ad2dc91..ef75962 100644
--- a/src/chrome/locale/es/torbutton.properties
+++ b/src/chrome/locale/es/torbutton.properties
@@ -21,13 +21,13 @@ torbutton.popup.test.auto_failed = La prueba automática con "proxy" Tor falló
torbutton.prefs.recommended = (recomendado)
torbutton.prefs.optional = (opcional)
torbutton.prefs.crucial = (crucial)
-torbutton.popup.external.title = ¿Cargar contenido externo?
-torbutton.popup.external.app = Es necesaria una aplicación externa para abrir el archivo:\n\n
-torbutton.popup.external.note = \n\nNOTA: ¡Las aplicaciones externas por defecto NO son de uso seguro para Tor y podrían desenmascararle (v.g. estableciendo alguna conexión sin pasar por Tor)!\n
-torbutton.popup.external.suggest = \nSi este archivo no es de confianza, debería bien guardarlo para verlo\ncuando esté desconectado o en una máquina virtual (VM), o bien\nconsiderar usar un "proxy" Tor transparente (que torifica todas las aplicaciones sin configurarlas) como Tails LiveCD o torsocks.\n
-torbutton.popup.launch = Arrancar aplicación
+torbutton.popup.external.title = ¿Descargar un tipo de fichero externo?
+torbutton.popup.external.app = El Navegador Tor no puede mostrar este fichero. Tendrá que abrirlo con otra aplicación.\n\n
+torbutton.popup.external.note = Algunos tipos de ficheros pueden hacer que ciertas aplicaciones se conecten a Internet sin usar Tor.\n\n
+torbutton.popup.external.suggest = Para estar seguro, debería abrir únicamente los archivos descargados cuando no esté conectado, o usar un Live CD (autoarrancable) de Tor como Tails.\n
+torbutton.popup.launch = Descargar fichero
torbutton.popup.cancel = Cancelar
-torbutton.popup.dontask = En adelante arrancar aplicaciones siempre
+torbutton.popup.dontask = Descargar ficheros automáticamente a partir de ahora
torbutton.popup.test.no_http_proxy = Prueba con "proxy" Tor: El proxy HTTP local es inalcanzable. ¿Está Polipo funcionando correctamente?
torbutton.popup.captcha.title = ¿Evitar los captchas de Google?
torbutton.popup.captcha.ask = Torbutton detectó un captcha de Google. ¿Desea que su petición sea redirigida a otro motor de búsqueda?
diff --git a/src/chrome/locale/eu/torbutton.properties b/src/chrome/locale/eu/torbutton.properties
index ad0dbba..15b29be 100644
--- a/src/chrome/locale/eu/torbutton.properties
+++ b/src/chrome/locale/eu/torbutton.properties
@@ -21,13 +21,13 @@ torbutton.popup.test.auto_failed = Tor proxy froga automatikoak huts egin du Tor
torbutton.prefs.recommended = (gomendatua)
torbutton.prefs.optional = (hautazkoa)
torbutton.prefs.crucial = (erabakigarria)
-torbutton.popup.external.title = Kanpoko edukia kargatu?
-torbutton.popup.external.app = Kanpoko aplikazio bat behar da hurrengorako:\n\n
-torbutton.popup.external.note = \n\nOHARRA: Kanpoko aplikazioak EZ dira beti seguruak!\n
-torbutton.popup.external.suggest = \nFitxategi hau ziurtatu gabe badago, lineaz kanpo edo VM batean ikusteko gorde beharko zenuke,\nedo Tails LiveCD edo torsocks bezalako Tor proxy garden bat erabiltzea kontutan hartu.\n
-torbutton.popup.launch = Aplikazioa exekutatu
+torbutton.popup.external.title = Download an external file type?
+torbutton.popup.external.app = Tor Browser cannot display this file. You will need to open it with another application.\n\n
+torbutton.popup.external.note = Some types of files can cause applications to connect to the Internet without using Tor.\n\n
+torbutton.popup.external.suggest = To be safe, you should only open downloaded files while offline, or use a Tor Live CD such as Tails.\n
+torbutton.popup.launch = Download file
torbutton.popup.cancel = Utzi
-torbutton.popup.dontask = Beti exekutatu aplikazioak hemendik aurrera
+torbutton.popup.dontask = Automatically download files from now on
torbutton.popup.test.no_http_proxy = Tor proxy froga: Ezin da HTTP Proxy lokalera iritsi. Polipo zuzen exekutatzen ari da?
torbutton.popup.captcha.title = Saihestu Googleren Captchak?
torbutton.popup.captcha.ask = Torbuttonek Google Captcha dat detektatu du. Beste bilaketa motor batera birbideratua izan nahi al duzu eskakizun honetarako?
diff --git a/src/chrome/locale/fa/torbutton.properties b/src/chrome/locale/fa/torbutton.properties
index 7dd715f..44137ab 100644
--- a/src/chrome/locale/fa/torbutton.properties
+++ b/src/chrome/locale/fa/torbutton.properties
@@ -21,13 +21,13 @@ torbutton.popup.test.auto_failed = تست خودکار پراکسی تُربا
torbutton.prefs.recommended = (توصيه شده)
torbutton.prefs.optional = (اختياری)
torbutton.prefs.crucial = (بسيار مهم)
-torbutton.popup.external.title = محتویات خارجی بارگزاری شوند؟
-torbutton.popup.external.app = یک برنامه خارجی باید وارد عمل شود:\n\n
-torbutton.popup.external.note = \n\nنکته: برنامه های خارجی توسط تُر به طور پیشفرض امن نشده اند و ممکن است هویت اصلی شما را آشکار کنند!\n
-torbutton.popup.external.suggest = \nاگر این فایل غیر قابل اطمینان است ، شما یا باید آن را به نمایش در حالی که آفلاین یا در یک ماشین مجازی ، و یا در نظر بگیرید با استفاده از یک پروکسی شفاف Tor به مانند دیسک زنده یا torsocks دم نجات.\n
-torbutton.popup.launch = اجرای برنامه
+torbutton.popup.external.title = Download an external file type?
+torbutton.popup.external.app = Tor Browser cannot display this file. You will need to open it with another application.\n\n
+torbutton.popup.external.note = Some types of files can cause applications to connect to the Internet without using Tor.\n\n
+torbutton.popup.external.suggest = To be safe, you should only open downloaded files while offline, or use a Tor Live CD such as Tails.\n
+torbutton.popup.launch = Download file
torbutton.popup.cancel = لغو
-torbutton.popup.dontask = از حالا به بعد هر برنامه ای را اجرا کن
+torbutton.popup.dontask = Automatically download files from now on
torbutton.popup.test.no_http_proxy = آزمون پراکسی تُر: پراکسی HTTP محلی قابل دسترسی نیست. آیا پولیپو به درستی اجرا شده است؟
torbutton.popup.captcha.title = Avoid Google Captchas?
torbutton.popup.captcha.ask = Torbutton detected a Google Captcha. Would you like to be redirected to another search engine for this query?
diff --git a/src/chrome/locale/fr/torbutton.properties b/src/chrome/locale/fr/torbutton.properties
index 2204e2f..497d85b 100644
--- a/src/chrome/locale/fr/torbutton.properties
+++ b/src/chrome/locale/fr/torbutton.properties
@@ -21,13 +21,13 @@ torbutton.popup.test.auto_failed = Le test automatique du proxy Tor n'a pas réu
torbutton.prefs.recommended = (recommandé)
torbutton.prefs.optional = (facultatif)
torbutton.prefs.crucial = (indispensable)
-torbutton.popup.external.title = Charger un contenu externe ?
-torbutton.popup.external.app = Une application externe est requise pour gérer :\n\n
-torbutton.popup.external.note = \n\nNOTE : les applications externes ne sont a priori pas sécuritaires pour Tor et peuvent vous démasquer !\n
-torbutton.popup.external.suggest = \nSi vous n'avez pas confiance dans ce fichier, vous devriez soit l'enregistrer et le consulter hors-ligne ou dans une machine virtuelle VM sans réseau,\nou envisager d'utiliser un proxy transparent Tor tel que Tails LiveCD ou torsocks.\n
-torbutton.popup.launch = Lancer l'application
+torbutton.popup.external.title = Download an external file type?
+torbutton.popup.external.app = Tor Browser cannot display this file. You will need to open it with another application.\n\n
+torbutton.popup.external.note = Some types of files can cause applications to connect to the Internet without using Tor.\n\n
+torbutton.popup.external.suggest = To be safe, you should only open downloaded files while offline, or use a Tor Live CD such as Tails.\n
+torbutton.popup.launch = Download file
torbutton.popup.cancel = Annuler
-torbutton.popup.dontask = Toujours lancer les applications à partir de maintenant
+torbutton.popup.dontask = Automatically download files from now on
torbutton.popup.test.no_http_proxy = Test du proxy Tor : le proxy HTTP local est injoignable. Est-ce que Polipo fonctionne correctement ?
torbutton.popup.captcha.title = Eviter les captchas (test permettant de différencier un utilisateur humain d'un ordinateur) de Google ?
torbutton.popup.captcha.ask = Torbutton a détecté un captcha Google. Voulez-vous être redirigé vers un autre moteur de recherche pour cette recherche ?
diff --git a/src/chrome/locale/it/torbutton.properties b/src/chrome/locale/it/torbutton.properties
index f94a701..c48a918 100644
--- a/src/chrome/locale/it/torbutton.properties
+++ b/src/chrome/locale/it/torbutton.properties
@@ -7,42 +7,42 @@ torbutton.panel.plugins.enabled = Fai clic per disattivare i plugin
torbutton.panel.label.disabled = Tor disattivato
torbutton.panel.label.enabled = Tor attivato
extensions.torbutton(a)torproject.org.description = Torbutton fornisce un pulsante per configurare le impostazioni di Tor e rimuovere velocemente e facilmente i dati di navigazione privati.
-torbutton.popup.history.warning = Torbutton ha bloccato le attività in una scheda caricata con un diverso stato Tor.\n\nQuesta operazione evita i Bug 409737 e 417869 di Firefox.\n\nSe questo messaggio popup appare senza motivo, una delle vostre schede è stata bloccata perchè sta tentando di autoricaricarsi in modo silente.\n\nPer ricaricare la scheda in questo stato Tor, premere 'invio' nella barra degli indirizzi.\n\n
+torbutton.popup.history.warning = Torbutton ha bloccato le attività in una scheda caricata con un diverso stato Tor.\n\nQuesta operazione evita i Bug 409737 e 417869 di Firefox.\n\nSe questo messaggio popup appare senza motivo, una delle vostre schede è stata bloccata perchè sta tentando di autoricaricarsi in modo silenzioso.\n\nPer ricaricare la scheda in questo stato Tor, premere "invio" nella barra degli indirizzi.\n\n
torbutton.popup.plugin.warning = Torbutton ha bloccato l'attivazione dei plugin durante l'uso di Tor.\n\nUsa Salva Con Nome al suo posto.\n\n
-torbutton.popup.confirm_ca_certs = Avviso di Torbutton: sembra che tu non abbia delle Certification Authority personalizzate. L'esame della lista delle Certification Authority è un'operazione lenta e rallenta ancora attivando/disattivando Tor. Vuoi disabilitare l'isolamento dei certificati delle Certification Authority? (Se non capisci questo avviso, puoi tranquillamente fare clic su OK)
+torbutton.popup.confirm_ca_certs = Avviso di Torbutton: sembra che tu non abbia delle Certification Authority personalizzate. L'esame della lista delle Certification Authority è un'operazione lenta e rallenta l'attivazione/disattivazione di Tor. Vuoi disabilitare l'isolamento dei certificati delle Certification Authority? (Se non capisci questo avviso, puoi tranquillamente fare clic su OK)
torbutton.popup.ff3.warning = Attenzione!\n\nTorbutton su Firefox 3 divulga il tuo fuso orario ed i tuoi livemark via Tor.\n\nVuoi continuare ugualmente?
-torbutton.popup.toggle.warning = Devi attivare e disattivare Tor o riavviare in modo che le impostazioni abbiano effetto.
+torbutton.popup.toggle.warning = Devi attivare e disattivare Tor o riavviare per far sì che le impostazioni abbiano effetto.
torbutton.popup.test.success = Il test del proxy Tor ha avuto successo!
torbutton.popup.test.failure = Il test del proxy Tor è FALLITO! Verifica la configurazione del proxy e di Polipo.
-torbutton.popup.test.confirm_toggle = Il test più recente di un proxy Tor ha fallito nell'usare Tor.\n\nSei sicuro di volerlo abilitare comunque?\n\nNota: Se hai risolto il problema, puoi riavviare il test nella finestra Preferenze Proxy Torbutton per eliminare questo avvertimento.
+torbutton.popup.test.confirm_toggle = Il test più recente di un proxy Tor ha fallito nell'usare Tor.\n\nSei sicuro di volerlo abilitare comunque?\n\nNota: Se hai risolto il problema, puoi riavviare il test nella finestra Preferenze Proxy Torbutton per eliminare questo avviso.
torbutton.popup.test.ff3_notice = Fai clic su OK per testare le impostazioni del proxy Tor. Questo test avverrà in background. Sii paziente.
torbutton.panel.label.verified = Tor verificato
torbutton.popup.test.auto_failed = Il test automatico del proxy Tor non è riuscito ad usare Tor.\n\nSei sicuro di volerlo abilitare ugualmente?
torbutton.prefs.recommended = (raccomandato)
torbutton.prefs.optional = (facoltativo)
torbutton.prefs.crucial = (essenziale)
-torbutton.popup.external.title = Caricare il contenuto esterno?
-torbutton.popup.external.app = Un'applicazione esterna è necessaria per gestire:\n\n
-torbutton.popup.external.note = \n\nNOTA: Le applicazioni esterne NON sono sicure di default e possono compromettere il tuo anonimato!\n
-torbutton.popup.external.suggest = \nQuesto file non è fidato, dovresti salvarlo e prenderne visione offline in una macchina virtuale, oppure considerare un proxy Tor trasparente come Railis LiveCD o torsocks.\n
-torbutton.popup.launch = Lanciare l'applicazione
+torbutton.popup.external.title = Si desidera scaricare un tipo di file esterno?
+torbutton.popup.external.app = Tor Browser non è in grado di aprire questo file. Sarà necessario usare un'altra applicazione per aprirlo.\n\n
+torbutton.popup.external.note = Alcuni tipi di file possono far sì che le applicazioni si connettano a Internet senza usare Tor.\n\n
+torbutton.popup.external.suggest = Per essere totalmente sicuri, si dovrebbe aprire i file scaricati solo quando si è offline, o usare un Live CD Tor come ad esempio Tails.\n
+torbutton.popup.launch = Scaricare il file
torbutton.popup.cancel = Annulla
-torbutton.popup.dontask = Da adesso lanciare sempre le applicazioni
+torbutton.popup.dontask = Scaricare automaticamente i file d'ora in poi
torbutton.popup.test.no_http_proxy = Test Tor proxy: Proxy HTTP locale non è raggiungibile. Polipo è in funzione correttamente?
torbutton.popup.captcha.title = Evitare i Captcha di Google?
-torbutton.popup.captcha.ask = Torbutton ha rilevato un Captchta di Google. Ti piacerebbe essere reindirizzato a un altro motore di ricerca per questa query?
+torbutton.popup.captcha.ask = Torbutton ha rilevato un Captchta di Google. Preferisci essere reindirizzato a un altro motore di ricerca per questa query?
torbutton.popup.captcha.always = Da adesso eseguire sempre questa azione
torbutton.popup.redirect = Redirect
torbutton.popup.no_redirect = No redirect
torbutton.popup.prompted_language = Per aumentare la tua privacy, Torbutton può richiedere la versione inglese delle pagine web. Perciò alcune pagine che preferiresti leggere nella tua lingua potrebbero essere visualizzate in inglese.\n\nPreferisci richiedere le pagine web in inglese per una maggiore privacy?
-torbutton.popup.no_newnym = Torbutton non può assegnarti una nuova identità in modo sicuro, poiché non ha accesso alla porta di controllo di Tor.
+torbutton.popup.no_newnym = Torbutton non può assegnarti una nuova identità in modo sicuro, poiché non ha accesso alla porta di controllo di Tor.\n\nStai usando Tor Browser Bundle?
torbutton.popup.use_tbb = Sembra che si stia usando Torbutton con Firefox, modalità non più raccomandata come configurazione sicura.\n\nIn alternativa, si consiglia di scaricare la versione più recente del Tor Browser Bundle, inviando una email a gettor(a)torproject.org o scaricandolo da uno dei seguenti indirizzi:
-torbutton.popup.pref_error = Torbutton non può aggiornare le preferenze nella pannello profilo del Tor Browser.
+torbutton.popup.pref_error = Torbutton non può aggiornare le preferenze nella cartella profilo del Tor Browser.
torbutton.popup.permission_denied = Si prega di reimpostare i permessi della cartella Tor Browser oppure di spostarla altrove.
torbutton.popup.device_full = Sembra che il disco sia pieno. Liberare spazio o spostare Tor Browser in un altro dispositivo.
torbutton.title.prompt_torbrowser = Informazioni importanti su Torbutton
-torbutton.popup.prompt_torbrowser = Torbutton ora funziona in modo diverso: non è possibile disabilitarlo.\n\nQuesto cambiamento è stato apportato poiché risulta poco sicuro utilizzare Torbutton in un browser utilizzato anche senza di esso. Ci sono alcuni problemi critici che non è possibile risolvere in un modo diverso da questo.\n\nSe si desidera utilizzare Firefox normalmente (senza, quindi, Torbutton) è necessario disinstallare manualmente Torbutton ed installare Tor Browser Bundle. Le impostazioni per la privacy, inoltre, sono superiori su Tor Browser rispetto ad una normale installazione di Firefox, anche quando quest'ultimo è utilizzato con Torbutton.\n\nPer rimuovere Torbutton, andare in Strumenti -> Componenti aggiuntivi -> Estensioni e cliccare sul pulsante Disinstalla per Torbutton.
-torbutton.popup.short_torbrowser = Informazioni importanti su Torbutton!\n\nTorbutton ora è sempre abilitato.\n\nClicca su Torbutton per ulteriori informazioni.
+torbutton.popup.prompt_torbrowser = Torbutton ora funziona in modo diverso: non è più possibile disabilitarlo.\n\nQuesto cambiamento è stato apportato poiché risulta poco sicuro utilizzare Torbutton in un browser utilizzato anche senza di esso. Ci sono alcuni problemi critici che non è possibile risolvere in un modo diverso da questo.\n\nSe si desidera utilizzare Firefox normalmente (senza, quindi, Torbutton) è necessario disinstallare manualmente Torbutton ed installare Tor Browser Bundle. Le impostazioni per la privacy, inoltre, sono superiori su Tor Browser rispetto ad una normale installazione di Firefox, anche quando quest'ultimo è utilizzato con Torbutton.\n\nPer rimuovere Torbutton, andare in Strumenti -> Componenti aggiuntivi -> Estensioni e fare clic sul pulsante Disinstalla vicino a Torbutton.
+torbutton.popup.short_torbrowser = Informazioni importanti su Torbutton!\n\nTorbutton ora è sempre abilitato.\n\nFai clic su Torbutton per ulteriori informazioni.
torbutton.popup.confirm_plugins = Alcuni plugin come Flash possono violare la tua privacy e anonimità.\n\nPossono anche eludere Tor per rivelare la tua posizione attuale e il tuo indirizzo IP.\n\nSei sicuro di volere attivare i plugin?\n
torbutton.popup.never_ask_again = Non chiedermelo più
diff --git a/src/chrome/locale/ja/torbutton.properties b/src/chrome/locale/ja/torbutton.properties
index 655b610..c2420ae 100644
--- a/src/chrome/locale/ja/torbutton.properties
+++ b/src/chrome/locale/ja/torbutton.properties
@@ -21,13 +21,13 @@ torbutton.popup.test.auto_failed = Torを使用するための自動Torプロキ
torbutton.prefs.recommended = (推奨)
torbutton.prefs.optional = (オプション)
torbutton.prefs.crucial = (重要)
-torbutton.popup.external.title = 外部コンテンツを読み込みますか?
-torbutton.popup.external.app = 操作するためには外部アプリケーションが必要です:\n\n
-torbutton.popup.external.note = \n\nノート: 外部アプリケーションはTorに対応していないこともあります。その場合、あなたの匿名性は確保されません。\n
-torbutton.popup.external.suggest = \nこのファイルが信頼されていない場合、オフラインの間かVMで、表示するためにそれを保存するか、\nTails LiveCDかtorsocksのような透過型Torプロキシの使用を検討するべきです。\n
-torbutton.popup.launch = アプリケーション起動
+torbutton.popup.external.title = 外部ファイル種別をダウンロードしますか
+torbutton.popup.external.app = Tor ブラウザはこのファイルを表示できません。別のアプリケーションで開く必要があります。\n
+torbutton.popup.external.note = ファイルのタイプの中に、アプリケーションが Tor を使用せずインターネットに接続する原因となる可能性があるものがあります。\n
+torbutton.popup.external.suggest = 安全であるためには、オフラインの時のみダウンロードしたファイルを開くか、 Tails のような Tor のライブ CD を使用すべきです。\n
+torbutton.popup.launch = ファイルをダウンロードする
torbutton.popup.cancel = キャンセル
-torbutton.popup.dontask = 今後アプリケーションをいつも起動する
+torbutton.popup.dontask = 今からファイルを自動的にダウンロードする
torbutton.popup.test.no_http_proxy = Torプロキシテスト: ローカルHTTPプロキシに到達できません。Polipoは正常に動作していますか?
torbutton.popup.captcha.title = Google CAPTCHAを回避しますか?
torbutton.popup.captcha.ask = TorbuttonはGoogle CAPTCHAを検出しました。このクエリを別の検索エンジンで実行しますか?
diff --git a/src/chrome/locale/ko/torbutton.properties b/src/chrome/locale/ko/torbutton.properties
index f3fa432..a7ffa18 100644
--- a/src/chrome/locale/ko/torbutton.properties
+++ b/src/chrome/locale/ko/torbutton.properties
@@ -21,13 +21,13 @@ torbutton.popup.test.auto_failed = 자동 Tor 프록시 테스트가 실패하
torbutton.prefs.recommended = (추천)
torbutton.prefs.optional = (선택)
torbutton.prefs.crucial = (중요)
-torbutton.popup.external.title = 외부 콘텐츠 로드?
-torbutton.popup.external.app = 외부 애플리케이션이 넘겨받는 것을 필요로 합니다:\n\n
-torbutton.popup.external.note = \n\nNOTE: 외부 애플리케이션은 기본적으로 Tor에 의해 안전해지지 않으며, 귀하의 신상정보를 얻을 수 있습니다.\n
-torbutton.popup.external.suggest = \n만약 이 파일이 신뢰되지 않는다면, 파일을 저장해서 오프라인 상태로 보시던지, VM 내에서 보셔야 합니다.\n또는 Tails LuveCD나 Torsocks 같은 투명 Tor 프록시를 사용하는 것을 고려해 보십시오.\n
-torbutton.popup.launch = 애플리케이션 실행
+torbutton.popup.external.title = Download an external file type?
+torbutton.popup.external.app = Tor Browser cannot display this file. You will need to open it with another application.\n\n
+torbutton.popup.external.note = Some types of files can cause applications to connect to the Internet without using Tor.\n\n
+torbutton.popup.external.suggest = To be safe, you should only open downloaded files while offline, or use a Tor Live CD such as Tails.\n
+torbutton.popup.launch = Download file
torbutton.popup.cancel = 취소
-torbutton.popup.dontask = 지금부터 항상 애플리케이션 실행
+torbutton.popup.dontask = Automatically download files from now on
torbutton.popup.test.no_http_proxy = Tor 프록시 테스트: 로컬 HTTP 프록시에 접근할 수 없습니다. Polipo가 확실히 작동중 입니까?
torbutton.popup.captcha.title = Google Capchas 피하기?
torbutton.popup.captcha.ask = Torbutton이 Google Capctha를 감지했습니다. 이 쿼리를 위해 다른 검색 엔진으로 리다이렉트 하시겠습니까?
diff --git a/src/chrome/locale/nl/torbutton.properties b/src/chrome/locale/nl/torbutton.properties
index 9aab120..6fc64a8 100644
--- a/src/chrome/locale/nl/torbutton.properties
+++ b/src/chrome/locale/nl/torbutton.properties
@@ -21,13 +21,13 @@ torbutton.popup.test.auto_failed = De automatische Tor proxy test is mislukt.\n\
torbutton.prefs.recommended = (aanbevolen)
torbutton.prefs.optional = (optioneel)
torbutton.prefs.crucial = (cruciaal)
-torbutton.popup.external.title = Externe inhoud laden ?
-torbutton.popup.external.app = Een externe toepassing is nodig voor : \n\n
-torbutton.popup.external.note = \n\n Opmerking : Externe toepassingen zijn NIET veilig en kunnen U ontmaskeren.\n
-torbutton.popup.external.suggest = \nAls dit bestand niet vertrouwd is moet je het bestand bewaren en het offline bekijken of in een VM. Of overweeg om een transparante proxy te gebruiken zoals Tails LiveCD of torsocks.\n
-torbutton.popup.launch = Toepassing starten
+torbutton.popup.external.title = Wilt u een extern bestandstype downloaden?
+torbutton.popup.external.app = Tor Browser kan dit bestand niet weergeven. U zou het moeten openen in een andere applicatie.\n\n
+torbutton.popup.external.note = Bepaalde type bestanden kunnen ervoor zorgen dat applicaties verbinding met het internet maken zonder Tor.\n\n
+torbutton.popup.external.suggest = Om veilig te surfen, zou u alleen bestanden moeten openen terwijl u offline bent, of gebruik een Tor Live CD zoals Tails.\n
+torbutton.popup.launch = Download bestand
torbutton.popup.cancel = Annuleren
-torbutton.popup.dontask = Vanaf nu steeds de toepassing starten
+torbutton.popup.dontask = Download bestanden automatisch vanaf nu
torbutton.popup.test.no_http_proxy = Tor proxy test : De lokale HTTP proxy is niet bereikbaar. Werkt Polipo zoals het hoort ?
torbutton.popup.captcha.title = Google Captchas vermijden ?
torbutton.popup.captcha.ask = Torbutton heeft een Google Captcha ontdekt. Mag deze vraag naar een andere zoekmachine gestuurd worden ?
diff --git a/src/chrome/locale/pl/torbutton.properties b/src/chrome/locale/pl/torbutton.properties
index 3cbc268..8798190 100644
--- a/src/chrome/locale/pl/torbutton.properties
+++ b/src/chrome/locale/pl/torbutton.properties
@@ -21,13 +21,13 @@ torbutton.popup.test.auto_failed = Automatyczny test proxy Tora zakończył się
torbutton.prefs.recommended = (zalecane)
torbutton.prefs.optional = (opcjonalnie)
torbutton.prefs.crucial = (krytyczne)
-torbutton.popup.external.title = Załadować zewnętrzną zawartość?
-torbutton.popup.external.app = Zewnętrzna aplikacja jest wymagana, aby obsłużyć:\n\n
-torbutton.popup.external.note = \n\nUWAGA: Zewnętrzne aplikacje NIE są domyślnie bezpieczne przy używaniu Tora i mogą Cię odkryć!\n
-torbutton.popup.external.suggest = \nJeśli ten plik jest niezaufany, powinno się go zachować do oglądania offline lub w maszynie wirtualnej,\nlub rozważyć używanie przezroczystego proxy Tor, jak Tails LiveCD lub torsocks.\n
-torbutton.popup.launch = Uruchom aplikację
+torbutton.popup.external.title = Pobrać zewnętrzny typ pliku?
+torbutton.popup.external.app = Tor Browser nie może wyświetlić tego pliku. Musisz otworzyć go z innej aplikacji\n\n
+torbutton.popup.external.note = Niektóre typy plików mogą spowodować połączenie się aplikacji z internetem bez użycia sieci Tor.\n\n
+torbutton.popup.external.suggest = Aby być bezpiecznym, pobrane pliki należy uruchamiać wyłącznie w trybie offline, lub użyć dystrybucji Live CD Tora, takich jak Tails.\n
+torbutton.popup.launch = Pobierz plik
torbutton.popup.cancel = Anuluj
-torbutton.popup.dontask = Od teraz zawsze uruchamiaj aplikacje
+torbutton.popup.dontask = Automatyczne pobieranie plików jest od teraz włączone
torbutton.popup.test.no_http_proxy = Test Tor proxy: Lokalne Proxy HTTP jest nieosiągalne. Czy Polipo działa prawidłowo?
torbutton.popup.captcha.title = Unikać Google Captcha?
torbutton.popup.captcha.ask = Torbutton wykrył Google Captcha. Czy chcesz, aby Cię przekierować na inną wyszukiwarkę dla tego zapytania?
diff --git a/src/chrome/locale/pt/torbutton.properties b/src/chrome/locale/pt/torbutton.properties
index 3d28aec..fc4ce58 100644
--- a/src/chrome/locale/pt/torbutton.properties
+++ b/src/chrome/locale/pt/torbutton.properties
@@ -21,13 +21,13 @@ torbutton.popup.test.auto_failed = O teste automático ao proxy Tor falhou.\n\nD
torbutton.prefs.recommended = (recomendado)
torbutton.prefs.optional = (opcional)
torbutton.prefs.crucial = (crucial)
-torbutton.popup.external.title = Carregar conteúdo externo?
-torbutton.popup.external.app = Uma aplicação externa é necessário para abrir:\n\n
-torbutton.popup.external.note = \n\nNota: Aplicações externas ao Tor NÃO são seguras, e podem dar a conhecer a sua origem!\n
-torbutton.popup.external.suggest = \nSe este ficheiro não é seguro, deve guardá-lo para visualizar offline ou numa VM,\nou considere usar uma proxy transparente do Tor como a Tails LiveCD ou torsocks.\n
-torbutton.popup.launch = Correr aplicação
+torbutton.popup.external.title = Transferir um tipo de ficheiro externo?
+torbutton.popup.external.app = O navegador Tor Browser não consegue mostrar este ficheiro. Pode ter que o abrir com outra aplicação.\n\n
+torbutton.popup.external.note = Alguns tipos de ficheiro podem implicar uma ligação à Internet sem usar o Tor.
+torbutton.popup.external.suggest = Para sua segurança, deve apenas abrir ficheiros transferidos quando estiver offline, or usar um CD Tor Live como o Tails.
+torbutton.popup.launch = Transferir ficheiro
torbutton.popup.cancel = Cancelar
-torbutton.popup.dontask = Sempre correr aplicações daqui para a frente
+torbutton.popup.dontask = Transferir automaticamente ficheiros a partir de agora
torbutton.popup.test.no_http_proxy = Teste ao proxy Tor: Erro na ligação ao proxy HTTP local. O Polipo está em execução?
torbutton.popup.captcha.title = Evitar Captchas do Google?
torbutton.popup.captcha.ask = O Torbutton detectou uma Captcha do Google. Pretende ser redireccionado para um novo motor de busca usando esta consulta?
diff --git a/src/chrome/locale/ru/torbutton.properties b/src/chrome/locale/ru/torbutton.properties
index aec58c5..5c7ef40 100644
--- a/src/chrome/locale/ru/torbutton.properties
+++ b/src/chrome/locale/ru/torbutton.properties
@@ -21,13 +21,13 @@ torbutton.popup.test.auto_failed = Автоматический тест Tor pro
torbutton.prefs.recommended = (рекомендуется)
torbutton.prefs.optional = (по желанию)
torbutton.prefs.crucial = (критично)
-torbutton.popup.external.title = Загрузить внешние данные?
-torbutton.popup.external.app = Внешняя прикладная программа необходима для обработки:\n\n
-torbutton.popup.external.note = \n\nПРИМЕЧАНИЕ: Внешние приложения НЕ ЯВЛЯЮТСЯ безопасными для Tor по умолчанию, и могут разоблачить вас!\n
-torbutton.popup.external.suggest = \nЕсли к этому файлу нет доверия, вы должны либо сохранить его на диск для просмотра при выключенном доступе к сети или в виртуальной машине,\nили рассмотреть возможность использования прозрачного Tor прокси типа Tails LiveCD или torsocks.\n
-torbutton.popup.launch = Запустить приложение
+torbutton.popup.external.title = Download an external file type?
+torbutton.popup.external.app = Tor Browser cannot display this file. You will need to open it with another application.\n\n
+torbutton.popup.external.note = Some types of files can cause applications to connect to the Internet without using Tor.\n\n
+torbutton.popup.external.suggest = To be safe, you should only open downloaded files while offline, or use a Tor Live CD such as Tails.\n
+torbutton.popup.launch = Download file
torbutton.popup.cancel = Отменить
-torbutton.popup.dontask = В будущем всегда запускать приложения
+torbutton.popup.dontask = Automatically download files from now on
torbutton.popup.test.no_http_proxy = Tor прокси-тест: Местные HTTP-прокси недоступны. Работает-ли Polipo должным образом?
torbutton.popup.captcha.title = Избегать Google Captcha?
torbutton.popup.captcha.ask = Torbutton обнаружил Google Captcha. Перенаправить запрос на другую поисковую систему?
diff --git a/src/chrome/locale/sv/torbutton.properties b/src/chrome/locale/sv/torbutton.properties
index 0a13a4e..9648386 100644
--- a/src/chrome/locale/sv/torbutton.properties
+++ b/src/chrome/locale/sv/torbutton.properties
@@ -21,13 +21,13 @@ torbutton.popup.test.auto_failed = Den automatiska Tor proxy misslyckades att an
torbutton.prefs.recommended = (rekommenderat)
torbutton.prefs.optional = (valfritt)
torbutton.prefs.crucial = (kritiskt)
-torbutton.popup.external.title = Fyll externt innehåll?
-torbutton.popup.external.app = En extern applikation för att hantera:\n\n
-torbutton.popup.external.note = \n\nOBS: Externa program är INTE Tor säkra som standard och kan avslöja dig!\n
-torbutton.popup.external.suggest = \nOm denna fil är inte tillförlitlig, bör du spara antingen den för att visa offline eller i en VM,\neller överväga att använda en transparent Tor proxy som Tails LiveCD eller torsocks.\n
-torbutton.popup.launch = Starta program
+torbutton.popup.external.title = Download an external file type?
+torbutton.popup.external.app = Tor Browser cannot display this file. You will need to open it with another application.\n\n
+torbutton.popup.external.note = Some types of files can cause applications to connect to the Internet without using Tor.\n\n
+torbutton.popup.external.suggest = To be safe, you should only open downloaded files while offline, or use a Tor Live CD such as Tails.\n
+torbutton.popup.launch = Download file
torbutton.popup.cancel = Avbryt
-torbutton.popup.dontask = Alltid starta program från och med nu
+torbutton.popup.dontask = Automatically download files from now on
torbutton.popup.test.no_http_proxy = Tor proxy test: Lokal HTTP Proxy är onåbar. Är Polipo igång ordentligt?
torbutton.popup.captcha.title = Undvik Google Captchas?
torbutton.popup.captcha.ask = Torbutton upptäckte en Google Captcha. Vill du att omdirigeras till en annan sökmotor för den här frågan?
diff --git a/src/chrome/locale/tr/torbutton.properties b/src/chrome/locale/tr/torbutton.properties
index e7a3b1c..7dc2a90 100644
--- a/src/chrome/locale/tr/torbutton.properties
+++ b/src/chrome/locale/tr/torbutton.properties
@@ -1,10 +1,10 @@
-torbutton.button.tooltip.disabled = Tor'u etkinleştir.
-torbutton.button.tooltip.enabled = Tor'u pasifleştir
-torbutton.panel.tooltip.disabled = Tor'u aktif etmek için tıklayın
-torbutton.panel.tooltip.enabled = Tor'u pasif hale getirmek için tıklayın
+torbutton.button.tooltip.disabled = Tor'u Etkinleştir
+torbutton.button.tooltip.enabled = Tor'u Devre Dışı Bırak
+torbutton.panel.tooltip.disabled = Tor'u etkinleştirmek için tıklayın
+torbutton.panel.tooltip.enabled = Tor'u devre dışı bırakmak için tıklayın
torbutton.panel.plugins.disabled = Eklentileri etkinleştirmek için tıklayın
-torbutton.panel.plugins.enabled = Eklentileri pasif hale getirmek için tıklayın
-torbutton.panel.label.disabled = Tor Devredışı
+torbutton.panel.plugins.enabled = Eklentileri devre dışı bırakmak için tıklayın
+torbutton.panel.label.disabled = Tor Devre Dışı
torbutton.panel.label.enabled = Tor Etkin
extensions.torbutton(a)torproject.org.description = Torbutton Tor ayarlarını yapabileceğiniz ve hızlı ve kolayca gizli tarama verilerini silebileceğiniz bir düğme sağlar.
torbutton.popup.history.warning = Torbutton, farklı bir Tor durumunda yüklenmiş bir sekmeden gelen etkinliği engelledi.\n\nBu Firefox 409737 ve 417869 nolu hata raporlarını için bir çözümdür.\n\nHiçbir sebep yokken bu uyarı aldıysanız, muhtelemelen sekme kendini yenilemeye çalıştığı için engellenmiş olabilir.\n\nSekmeyi yenilemek için lütfen adres çubuğunu tıklayıp 'enter' tuşuna basın.\n\n
@@ -12,23 +12,23 @@ torbutton.popup.plugin.warning = Torbutton Tor'un eklenti içeriğini yüklemesi
torbutton.popup.confirm_ca_certs = Torbuton hatırlatma: Anlaşılan özel sertifakanız yok. Doğrulama bilgisi her zaman işlemleri yavaşlatır. Sertifika doğrulamalarını devredışı bırakmak ister misiniz? (Açıklamayı anlamadıysan, Tamam'a tıkla)\n
torbutton.popup.ff3.warning = Dikkat!\n\nFirefox 3'teki Torbuton yerel saatinizi bazı yerel bilgilerinizi gizlice gönderebilir?\n\nDevam etmek istiyor musunuz?
torbutton.popup.toggle.warning = Ayarların uygulanması için Tor'u yeniden başlatmanız gerekiyor.\n
-torbutton.popup.test.success = Proxy testi başarılı!
-torbutton.popup.test.failure = Proxy testi başarısız oldu!Lütfen proxyinizi,Polippo ayarlarını kontrol ediniz.
-torbutton.popup.test.confirm_toggle = Proxy başlatılamadı\n\nGenede başlatmak istermisin?\n\nNot: Problem çözüldüyse, tekrar proxy testini başlatıp, bu uyarı devredışı bırakabilirsin.
-torbutton.popup.test.ff3_notice = Tamama tıklayarak proxy ayarlarını test edin. Test arkaplanda gerçekleşiyor.Lütfen bekleyin.
+torbutton.popup.test.success = Vekil sunucu testi başarılı!
+torbutton.popup.test.failure = Vekil sunucu testi başarısız oldu! Lütfen Vekil sunucunuzu ve Polippo ayarlarını kontrol ediniz.
+torbutton.popup.test.confirm_toggle = En son Tor vekil sunucu testi Tor kullanımında başarısız oldu.\n\nYine de etkinleştirmek ister misiniz?\n\nNot: Eğer sorunu çözdüyseniz bu uyarıyı yok etmek için Torbutton Vekil Sunucu Tercihlerinden sınamayı tekrar çalıştırabilirsiniz.
+torbutton.popup.test.ff3_notice = Tamam tıklayarak vekil sunucu ayarlarını test edin. Bu sınama arkaplanda yapılacak. Lütfen sabırlı olun.
torbutton.panel.label.verified = Doğrulandı
-torbutton.popup.test.auto_failed = Otomatik gerçekleşen proxy testi başarız oldu.\n\nDevam etmek ister misiniz?
+torbutton.popup.test.auto_failed = Otomatik gerçekleşen vekil sunucu Tor kullanma testi başarız oldu.\n\nYine de etkinleştirmek ister misiniz?
torbutton.prefs.recommended = (tavsiye edilir)
torbutton.prefs.optional = (isteğe bağlı)
-torbutton.prefs.crucial = =
-torbutton.popup.external.title = =
-torbutton.popup.external.app = Kullanmak için harici bir uygulama seç:\n\n
-torbutton.popup.external.note = \n\nNOT: Başka bir uyguluma sizin için güvenli olmayabilir!\n\n
-torbutton.popup.external.suggest = \nBu dosya güvenli değilse, ona internete bağlı değilken veya VM icinde kaydedin,\nya da Tails LiveCD gibi şeffaf bir Tor proxy veya torsocks tercih edin.\n
-torbutton.popup.launch = Uygulamayı çalıştır\n
+torbutton.prefs.crucial = (önemli)
+torbutton.popup.external.title = Harici bir dosya türü indirilsin mi?
+torbutton.popup.external.app = Tor Tarayıcı bu dosyayı görüntüleyemiyor. Başka bir uygulamayla açmanız gerekecek.\n\n
+torbutton.popup.external.note = Bazı dosya türleri, uygulamaların Tor kullanmaksızın İnternet'e bağlanmalarına sebep olabilir.\n\n
+torbutton.popup.external.suggest = Güvende olmak için, indirilen dosyaları sadece çevrimdışı iken açmalı veya Tails benzeri bir Tor Çalışır CD kullanmalısınız.\n
+torbutton.popup.launch = Dosyayı indir
torbutton.popup.cancel = İptal\n
-torbutton.popup.dontask = Şu andan itibaren uygulamayı sürekli çalıştır\r\n
-torbutton.popup.test.no_http_proxy = Proxy test: Yerel proxy'e ulaşımıyor. Polippo düzgün çalışıyormu?\n
+torbutton.popup.dontask = Artık dosyaları otomatik indir
+torbutton.popup.test.no_http_proxy = Vekil sunucu sınaması: Yerel vekil sunucuya ulaşımıyor. Polippo düzgün çalışıyormu?
torbutton.popup.captcha.title = Google Captchas'ı atla
torbutton.popup.captcha.ask = Google Captcha algılandı. Aramana devam etmek için başka bir arama moturuna yönlendirmek istermisin?
torbutton.popup.captcha.always = Bu ayarı şu andan itibaren sürekli hale getir\n
@@ -52,4 +52,4 @@ canvas.siteprompt=Bu web sitesi (%S) canvas'daki resim verisini erişmeye çalı
canvas.allow=Gelecekte izin ver
canvas.allowAccessKey=H
canvas.never=Bu site için asla
-canvas.neverAccessKey=e
+canvas.neverAccessKey=a
diff --git a/src/chrome/locale/vi/torbutton.properties b/src/chrome/locale/vi/torbutton.properties
index 375aa35..d500589 100644
--- a/src/chrome/locale/vi/torbutton.properties
+++ b/src/chrome/locale/vi/torbutton.properties
@@ -21,13 +21,13 @@ torbutton.popup.test.auto_failed = Thử nghiệm proxy Tor tự động đã b
torbutton.prefs.recommended = (khuyến cáo)
torbutton.prefs.optional = (phụ)
torbutton.prefs.crucial = (cấp thiết)
-torbutton.popup.external.title = Nạp nội dung bên ngoài?
-torbutton.popup.external.app = Một ứng dụng bên ngoài cần có để xử lý:\n\n
-torbutton.popup.external.note = \n\nLƯU Ý: Các ứng dụng bên ngoài không an toàn cho Tor theo mặc định và có thể làm lộ chân tướng bạn!\n
-torbutton.popup.external.suggest = \nNếu tập tin này không an toàn, bạn nên lưu nó lại để sử dụng khi \nkhông kết nối mạng hoặc trong máy ảo.\nhoặc cân nhắc sử dụng môi trường hoàn toàn dùng Tor proxy như Tails LiveCD hoặc torsocks.\n
-torbutton.popup.launch = Khởi chạy ứng dụng
+torbutton.popup.external.title = Download an external file type?
+torbutton.popup.external.app = Tor Browser cannot display this file. You will need to open it with another application.\n\n
+torbutton.popup.external.note = Some types of files can cause applications to connect to the Internet without using Tor.\n\n
+torbutton.popup.external.suggest = To be safe, you should only open downloaded files while offline, or use a Tor Live CD such as Tails.\n
+torbutton.popup.launch = Download file
torbutton.popup.cancel = Hủy bỏ
-torbutton.popup.dontask = Luôn luôn khởi chạy các ứng dụng kể từ bây giờ
+torbutton.popup.dontask = Automatically download files from now on
torbutton.popup.test.no_http_proxy = Thử nghiệm Tor ủy nhiệm: HTTP ủy nhiệm địa phương không thể tới được. Polipo có đang chạy đúng cách không?
torbutton.popup.captcha.title = Muốn tránh xác nhận Google Captchas?
torbutton.popup.captcha.ask = Torbutton phát hiện có Google Captchas. Bạn có muồn chuyển qua bộ máy tìm kiếm khác cho câu hỏi này?
diff --git a/src/chrome/locale/zh-CN/torbutton.properties b/src/chrome/locale/zh-CN/torbutton.properties
index e5c905a..cb46ace 100644
--- a/src/chrome/locale/zh-CN/torbutton.properties
+++ b/src/chrome/locale/zh-CN/torbutton.properties
@@ -21,13 +21,13 @@ torbutton.popup.test.auto_failed = Tor 未通过自动代理测试。\n\n您确
torbutton.prefs.recommended = (推荐)
torbutton.prefs.optional = (可选)
torbutton.prefs.crucial = (重要)
-torbutton.popup.external.title = 载入外部内容?
-torbutton.popup.external.app = 需要外部程序来处理:\n\n
-torbutton.popup.external.note = \n\n注意:Tor 不能使外部程序的访问安全,可能泄露您的身份!\n
-torbutton.popup.external.suggest = \n如果此文件不受信任,建议保存后断网浏览,或在虚拟机中查看,\n或者考虑使用 Tor 透明代理,例如 Tails 光盘系统或 Torsocks。\n
-torbutton.popup.launch = 启动程序
+torbutton.popup.external.title = 下载一个外部文件类型?
+torbutton.popup.external.app = Tor Browser 无法显示此文件。您需要用其他应用程序打开它。\n\n
+torbutton.popup.external.note = 部分文件类型可能会导致应用程序在不使用 Tor 的情况下连接互联网。\n\n
+torbutton.popup.external.suggest = 为了安全起见,您应该只在离线状态下打开下载的文件,或者使用 Tor Live CD,例如 Tails。\n
+torbutton.popup.launch = 下载文件
torbutton.popup.cancel = 取消
-torbutton.popup.dontask = 此后总是启动程序
+torbutton.popup.dontask = 自动下载文件于
torbutton.popup.test.no_http_proxy = Tor 代理测试:本地 HTTP 代理不可达,您的 Polipo 正常启动了吗?
torbutton.popup.captcha.title = 避免 Google Captchas?
torbutton.popup.captcha.ask = Torbutton 检测到了一个 Google Captcha,您是否愿意把本次搜索重定向到使用其他搜索引擎?
1
0

25 Apr '14
commit 453ef7ffd7a3423edea20b9268f9867579f38be8
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Fri Apr 25 10:46:12 2014 -0700
Update changelog and rdf for 1.6.9.0.
---
src/CHANGELOG | 5 +++++
src/install.rdf | 2 +-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/CHANGELOG b/src/CHANGELOG
index e5b7c62..edf33dd 100644
--- a/src/CHANGELOG
+++ b/src/CHANGELOG
@@ -1,3 +1,8 @@
+1.6.9.0:
+ 25 Apr 2014
+ * Bug 7439: Improve download warning dialog text.
+ * Bug 11384: Completely remove hidden toggle menu item.
+
1.6.8.0:
7 Apr 2014:
* Bug 9010: Add Turkish to update locales.
diff --git a/src/install.rdf b/src/install.rdf
index 87db08f..428595d 100644
--- a/src/install.rdf
+++ b/src/install.rdf
@@ -6,7 +6,7 @@
<em:name>Torbutton</em:name>
<em:creator>Mike Perry</em:creator>
<em:id>torbutton(a)torproject.org</em:id>
- <em:version>1.6.8.1</em:version>
+ <em:version>1.6.9.0</em:version>
<em:homepageURL>https://www.torproject.org/projects/torbrowser.html.en</em:homepageURL>
<em:optionsURL>chrome://torbutton/content/preferences.xul</em:optionsURL>
<em:iconURL>chrome://torbutton/skin/tor.png</em:iconURL>
1
0
commit eed30d03d66166b5e0bc4c38ede9df2b73c8254e
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Fri Apr 25 10:38:18 2014 -0700
Update translations.
---
src/chrome/locale/bg/network-settings.dtd | 40 +++++++++++++--------------
src/chrome/locale/cy/torlauncher.properties | 2 +-
src/chrome/locale/nl/torlauncher.properties | 2 +-
src/chrome/locale/pl/torlauncher.properties | 2 +-
4 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/src/chrome/locale/bg/network-settings.dtd b/src/chrome/locale/bg/network-settings.dtd
index a38b198..2ad9e78 100644
--- a/src/chrome/locale/bg/network-settings.dtd
+++ b/src/chrome/locale/bg/network-settings.dtd
@@ -2,27 +2,27 @@
<!-- For "first run" wizard: -->
-<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+<!ENTITY torsettings.prompt "Преди да се свържете към Tor мрежата,вие трябва да предоставите информация относно интернет връзката на този компютър">
<!ENTITY torSettings.yes "Да">
<!ENTITY torSettings.no "Не">
-<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
-<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.firstQuestion "Кое от следните описва най-добре вашата ситуация?">
+<!ENTITY torSettings.configurePrompt1 "Интернет връзката на този компютър е цензурирана,филтрирана или преминава през прокси.">
<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
-<!ENTITY torSettings.configure "Configure">
-<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
-<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.configure "Конфигурирай">
+<!ENTITY torSettings.connectPrompt2 "Бих искал да се свържа директно към Tor мрежата.">
+<!ENTITY torSettings.connectPrompt3 "Това ще работи при повечето ситуации.">
<!ENTITY torSettings.connect "Свържи се">
-<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!ENTITY torSettings.proxyQuestion "Нуждае ли се този компютър от прокси за свързване към Интернет?">
<!-- see https://www.torproject.org/docs/proxychain.html.en -->
-<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
-<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
-<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
-<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
-<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
-<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.proxyHelp "Ако не сте сигурни как да отговорите на този въпрос проверете интернет настройките на друг браузър,за да видите дали е настроен да използва прокси.">
+<!ENTITY torSettings.enterProxy "Въведете настройките за прокси.">
+<!ENTITY torSettings.firewallQuestion "Интернет връзката на този компютър преминава ли през firewall,който позволява връзки към определени портове?">
+<!ENTITY torSettings.firewallHelp "Ако не сте сигурни как да отговорите на въпроса,изберете Не.Ако срещнете проблеми при свързване към Tor мрежата променете тези настройки.">
+<!ENTITY torSettings.enterFirewall "Въведете списък с портове разделени със запетая,които са позволени от firewall.">
+<!ENTITY torSettings.bridgeQuestion "Блокирани или цензурирани ли са връзките към Tor Мрежата от вашият Интернет Доставчик(ISP)?">
<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
@@ -33,8 +33,8 @@
<!ENTITY torsettings.optional "Допълнителен">
-<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
-<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.checkbox "Този компютър се нуждае от прокси за да се свърже към Интернет.">
+<!ENTITY torsettings.useProxy.type "Прокси Тип:">
<!ENTITY torsettings.useProxy.address "Адрес:">
<!ENTITY torsettings.useProxy.address.placeholder "IP адрес или хост">
<!ENTITY torsettings.useProxy.port "Порт:">
@@ -43,21 +43,21 @@
<!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.checkbox "Този компютър се свързва през firewall,който позволява връзки само към определени портове.">
<!ENTITY torsettings.firewall.allowedPorts "Позволени портове:">
-<!ENTITY torsettings.useBridges.checkbox "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.checkbox "Моят Интернет Доставчик (ISP) блокира връзките към Tor мрежата">
<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
<!ENTITY torsettings.useBridges.type "Transport type:">
<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
-<!ENTITY torsettings.useBridges.placeholder "type address:port">
+<!ENTITY torsettings.useBridges.placeholder "въведете адрес:порт">
<!ENTITY torsettings.copyLog "Копирай Tor лога в клипборда">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
-<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
-<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp2Heading "През Web">
+<!ENTITY torsettings.bridgeHelp2 "Използвайте уеб браузър за да посетите https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
diff --git a/src/chrome/locale/cy/torlauncher.properties b/src/chrome/locale/cy/torlauncher.properties
index 97c0389..f26cdfa 100644
--- a/src/chrome/locale/cy/torlauncher.properties
+++ b/src/chrome/locale/cy/torlauncher.properties
@@ -55,4 +55,4 @@ torlauncher.bootstrapWarning.identity=anghysondeb hunaniaeth
torlauncher.bootstrapWarning.timeout=cysylltiad goramser
torlauncher.bootstrapWarning.noroute=ddim llwybr i'r cad
torlauncher.bootstrapWarning.ioerror=camgymeriad darllen/sgwennu
-torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
+torlauncher.bootstrapWarning.pt_missing=trafnyddiaeth plygadwy ar goll
diff --git a/src/chrome/locale/nl/torlauncher.properties b/src/chrome/locale/nl/torlauncher.properties
index c4b2760..f104345 100644
--- a/src/chrome/locale/nl/torlauncher.properties
+++ b/src/chrome/locale/nl/torlauncher.properties
@@ -55,4 +55,4 @@ torlauncher.bootstrapWarning.identity=identiteitsfout
torlauncher.bootstrapWarning.timeout=verbindingstimeout
torlauncher.bootstrapWarning.noroute=geen route naar de server
torlauncher.bootstrapWarning.ioerror=lees/schrijffout
-torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
+torlauncher.bootstrapWarning.pt_missing=ontbrekend plugbaar vervoer
diff --git a/src/chrome/locale/pl/torlauncher.properties b/src/chrome/locale/pl/torlauncher.properties
index 7651ef2..32feaa8 100644
--- a/src/chrome/locale/pl/torlauncher.properties
+++ b/src/chrome/locale/pl/torlauncher.properties
@@ -55,4 +55,4 @@ torlauncher.bootstrapWarning.identity=niezgodność tożsamości
torlauncher.bootstrapWarning.timeout=upłynął czas połączenia
torlauncher.bootstrapWarning.noroute=brak trasy do hosta
torlauncher.bootstrapWarning.ioerror=błąd zapisu/odczytu
-torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
+torlauncher.bootstrapWarning.pt_missing=brak podłączanego transportu
1
0
commit 2adfdeec19eb64954cc8991fe0a3b75e710f3867
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Fri Apr 25 10:38:51 2014 -0700
Bump version for 0.2.5.4.
---
src/install.rdf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/install.rdf b/src/install.rdf
index 7b47f07..495b8ca 100644
--- a/src/install.rdf
+++ b/src/install.rdf
@@ -7,7 +7,7 @@
<em:creator>The Tor Project, Inc.</em:creator>
<em:contributor>Pearl Crescent, LLC</em:contributor>
<em:id>tor-launcher(a)torproject.org</em:id>
- <em:version>0.2.5.4pre</em:version>
+ <em:version>0.2.5.4</em:version>
<em:homepageURL>https://www.torproject.org/projects/torbrowser.html</em:homepageURL>
<em:updateURL>https://127.0.0.1/</em:updateURL>
<!--
1
0

[tor-browser/tor-browser-24.5.0esr-1] fix #9308 and #11433: don't leak user install path of TBB
by mikeperry@torproject.org 25 Apr '14
by mikeperry@torproject.org 25 Apr '14
25 Apr '14
commit 7ac088b732719d6e69466e583b7eb31767759d22
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Wed Apr 23 16:05:48 2014 -0700
fix #9308 and #11433: don't leak user install path of TBB
---
js/xpconnect/src/XPCConvert.cpp | 5 ++++-
js/xpconnect/src/XPCException.cpp | 7 ++++++-
js/xpconnect/src/XPCStack.cpp | 7 +++++--
xpcom/build/Omnijar.cpp | 29 +++++++++++++++++++++++++++++
xpcom/build/Omnijar.h | 13 +++++++++++++
5 files changed, 57 insertions(+), 4 deletions(-)
diff --git a/js/xpconnect/src/XPCConvert.cpp b/js/xpconnect/src/XPCConvert.cpp
index a94a519..dd8c8f4 100644
--- a/js/xpconnect/src/XPCConvert.cpp
+++ b/js/xpconnect/src/XPCConvert.cpp
@@ -8,6 +8,7 @@
/* Data conversion between native and JavaScript types. */
#include "mozilla/Util.h"
+#include "mozilla/Omnijar.h"
#include "xpcprivate.h"
#include "nsString.h"
@@ -1319,9 +1320,11 @@ XPCConvert::JSErrorToXPCException(const char* message,
static_cast<const PRUnichar*>(report->uclinebuf);
data = new nsScriptError();
+ nsAutoCString resourceFilename;
+ Omnijar::ConvertToResourceFilename(nsCString(report->filename), resourceFilename);
data->InitWithWindowID(
bestMessage,
- NS_ConvertASCIItoUTF16(report->filename),
+ NS_ConvertASCIItoUTF16(resourceFilename.get()),
uclinebuf ? nsDependentString(uclinebuf) : EmptyString(),
report->lineno,
report->uctokenptr - report->uclinebuf, report->flags,
diff --git a/js/xpconnect/src/XPCException.cpp b/js/xpconnect/src/XPCException.cpp
index a0b48c2..1e42662 100644
--- a/js/xpconnect/src/XPCException.cpp
+++ b/js/xpconnect/src/XPCException.cpp
@@ -9,6 +9,7 @@
#include "xpcprivate.h"
#include "nsError.h"
#include "nsIUnicodeDecoder.h"
+#include "mozilla/Omnijar.h"
/***************************************************************************/
/* Quick and dirty mapping of well known result codes to strings. We only
@@ -291,8 +292,12 @@ nsXPCException::Initialize(const char *aMessage, nsresult aResult, const char *a
// For now, fill in our location details from our stack frame.
// Later we may allow other locations?
nsresult rc;
- if (NS_FAILED(rc = aLocation->GetFilename(&mFilename)))
+ char* rawFilename = nullptr;
+ if (NS_FAILED(rc = aLocation->GetFilename(&rawFilename)))
return rc;
+ nsAutoCString resourceFilename;
+ mozilla::Omnijar::ConvertToResourceFilename(nsCString(rawFilename), resourceFilename);
+ mFilename = (char *) nsMemory::Clone(resourceFilename.get(), resourceFilename.Length()+1);
if (NS_FAILED(rc = aLocation->GetLineNumber(&mLineNumber)))
return rc;
} else {
diff --git a/js/xpconnect/src/XPCStack.cpp b/js/xpconnect/src/XPCStack.cpp
index db30556..adfd456 100644
--- a/js/xpconnect/src/XPCStack.cpp
+++ b/js/xpconnect/src/XPCStack.cpp
@@ -7,6 +7,7 @@
/* Implements nsIStackFrame. */
#include "xpcprivate.h"
+#include "mozilla/Omnijar.h"
class XPCJSStackFrame : public nsIStackFrame
{
@@ -107,9 +108,11 @@ XPCJSStackFrame::CreateStack(JSContext* cx, XPCJSStackFrame** stack)
JSAutoCompartment ac(cx, desc->frames[i].script);
const char* filename = JS_GetScriptFilename(cx, desc->frames[i].script);
if (filename) {
+ nsAutoCString resourceFilename;
+ mozilla::Omnijar::ConvertToResourceFilename(nsCString(filename), resourceFilename);
self->mFilename = (char*)
- nsMemory::Clone(filename,
- sizeof(char)*(strlen(filename)+1));
+ nsMemory::Clone(resourceFilename.get(),
+ sizeof(char)*(resourceFilename.Length()+1));
}
self->mLineno = desc->frames[i].lineno;
diff --git a/xpcom/build/Omnijar.cpp b/xpcom/build/Omnijar.cpp
index 4d75c7e..79fa163 100644
--- a/xpcom/build/Omnijar.cpp
+++ b/xpcom/build/Omnijar.cpp
@@ -164,4 +164,33 @@ Omnijar::GetURIString(Type aType, nsACString &result)
return NS_OK;
}
+bool
+Omnijar::RebaseFilename(const nsCString& filename, const nsCString& oldBase, const nsCString& newBase, nsACString &result) {
+ PRInt32 pos = filename.Find(oldBase);
+ if (pos > -1) {
+ nsAutoCString path;
+ filename.Right(path, filename.Length() - pos - oldBase.Length());
+ result = newBase + path;
+ return true;
+ }
+ result = filename;
+ return false;
+}
+
+void
+Omnijar::ConvertToResourceFilename(const nsCString& filename, nsACString &result) {
+ if (StringBeginsWith(filename, NS_LITERAL_CSTRING("file://"))
+ || StringBeginsWith(filename, NS_LITERAL_CSTRING("jar:"))) {
+ if (RebaseFilename(filename, NS_LITERAL_CSTRING("/browser/omni.ja!/"),
+ NS_LITERAL_CSTRING("resource://app/"), result)) {
+ return;
+ }
+ if (RebaseFilename(filename, NS_LITERAL_CSTRING("/omni.ja!/"),
+ NS_LITERAL_CSTRING("resource://gre/"), result)) {
+ return;
+ }
+ }
+ result = filename;
+}
+
} /* namespace mozilla */
diff --git a/xpcom/build/Omnijar.h b/xpcom/build/Omnijar.h
index a261e35..4ba49a7 100644
--- a/xpcom/build/Omnijar.h
+++ b/xpcom/build/Omnijar.h
@@ -117,12 +117,25 @@ static already_AddRefed<nsZipArchive> GetReader(nsIFile *aPath);
*/
static nsresult GetURIString(Type aType, nsACString &result);
+/**
+ * If the filename contains a "file://" URI, which is an absolute path,
+ * attempts to convert to a "resource://" URI. Otherwise returns the
+ * filename unchanged.
+ */
+static void ConvertToResourceFilename(const nsCString& filename, nsACString &result);
+
private:
/**
* Used internally, respectively by Init() and CleanUp()
*/
static void InitOne(nsIFile *aPath, Type aType);
static void CleanUpOne(Type aType);
+/**
+ * Rebases a filename, given a (possibly internal) base directory, and a new
+ * base directory name. E.g.: RebaseFilename("a/b/c","b","d",result) -> result = "d/c".
+ */
+static bool RebaseFilename(const nsCString& filename, const nsCString& oldBase, const nsCString& newBase, nsACString &result);
+
}; /* class Omnijar */
1
0

[tor-browser/tor-browser-24.5.0esr-1] fixup! fix #9308 and #11433: don't leak user install path of TBB
by mikeperry@torproject.org 25 Apr '14
by mikeperry@torproject.org 25 Apr '14
25 Apr '14
commit 0806951f373ae1b0223229605ca6cca62f7464bd
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Fri Apr 25 14:46:39 2014 +0200
fixup! fix #9308 and #11433: don't leak user install path of TBB
Fix a memory leak, and add a couple length checks for extra safety.
The length checks appear to be redundant to internal nsCString checks, but the
string classes are such a mess of indirection, size, length, and char type
templates that we might as well double-check first.
---
js/xpconnect/src/XPCException.cpp | 1 +
xpcom/build/Omnijar.cpp | 5 +++--
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/js/xpconnect/src/XPCException.cpp b/js/xpconnect/src/XPCException.cpp
index 1e42662..bb4064a 100644
--- a/js/xpconnect/src/XPCException.cpp
+++ b/js/xpconnect/src/XPCException.cpp
@@ -298,6 +298,7 @@ nsXPCException::Initialize(const char *aMessage, nsresult aResult, const char *a
nsAutoCString resourceFilename;
mozilla::Omnijar::ConvertToResourceFilename(nsCString(rawFilename), resourceFilename);
mFilename = (char *) nsMemory::Clone(resourceFilename.get(), resourceFilename.Length()+1);
+ nsMemory::Free(rawFileName); // allocated by GetFilename
if (NS_FAILED(rc = aLocation->GetLineNumber(&mLineNumber)))
return rc;
} else {
diff --git a/xpcom/build/Omnijar.cpp b/xpcom/build/Omnijar.cpp
index 79fa163..36602a7 100644
--- a/xpcom/build/Omnijar.cpp
+++ b/xpcom/build/Omnijar.cpp
@@ -167,9 +167,10 @@ Omnijar::GetURIString(Type aType, nsACString &result)
bool
Omnijar::RebaseFilename(const nsCString& filename, const nsCString& oldBase, const nsCString& newBase, nsACString &result) {
PRInt32 pos = filename.Find(oldBase);
- if (pos > -1) {
+ PRInt32 pathLen = filename.Length() - pos - oldBase.Length();
+ if (pos > -1 && pathLen > -1 && pathLen <= filename.Length()) {
nsAutoCString path;
- filename.Right(path, filename.Length() - pos - oldBase.Length());
+ filename.Right(path, pathLen);
result = newBase + path;
return true;
}
1
0

[tor-browser-bundle/master] Update fteproxy fingerprints, post heartbleed
by mikeperry@torproject.org 25 Apr '14
by mikeperry@torproject.org 25 Apr '14
25 Apr '14
commit 409a2634d95b0c0882f251cbb4b3e7b6002eb58f
Author: Kevin P. Dyer <kpdyer(a)gmail.com>
Date: Fri Apr 25 09:17:23 2014 -0700
Update fteproxy fingerprints, post heartbleed
---
Bundle-Data/PTConfigs/bridge_prefs.js | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/Bundle-Data/PTConfigs/bridge_prefs.js b/Bundle-Data/PTConfigs/bridge_prefs.js
index bb000cd..f14cf07 100644
--- a/Bundle-Data/PTConfigs/bridge_prefs.js
+++ b/Bundle-Data/PTConfigs/bridge_prefs.js
@@ -19,7 +19,5 @@ pref("extensions.torlauncher.default_bridge.flashproxy.5", "flashproxy 0.0.1.0:5
pref("extensions.torlauncher.default_bridge.fte.1", "fte 128.105.214.161:8080 1E326AAFB3FCB515015250D8FCCC8E37F91A153B");
pref("extensions.torlauncher.default_bridge.fte.2", "fte 128.105.214.162:8080 FC562097E1951DCC41B7D7F324D88157119BB56D");
pref("extensions.torlauncher.default_bridge.fte.3", "fte 128.105.214.163:8080 A17A40775FBD2CA1184BF80BFC330A77ECF9D0E9");
-// XXX: Fingerprints changed:
-//pref("extensions.torlauncher.default_bridge.fte.4", "fte 131.252.210.150:8080 271EC1874E40FE65C145C6397AA34FFF7008E50E");
-//pref("extensions.torlauncher.default_bridge.fte.5", "fte 79.125.3.12:8080 17AF9F9F4E57614A060B7221DCCEDB8BB546DD73");
-
+pref("extensions.torlauncher.default_bridge.fte.4", "fte 131.252.210.150:8080 0E858AC201BF0F3FA3C462F64844CBFFC7297A42");
+pref("extensions.torlauncher.default_bridge.fte.5", "fte 79.125.3.12:8080 272465348803EE2546A9BB8EE37D462915531F09");
1
0

[tor-browser-bundle/master] Update the gitian branch we recommend people clone from.
by mikeperry@torproject.org 25 Apr '14
by mikeperry@torproject.org 25 Apr '14
25 Apr '14
commit a97d04ef46c7ea6b35b9cfa961be3ce4db25a338
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Fri Apr 25 15:45:27 2014 +0200
Update the gitian branch we recommend people clone from.
---
gitian/check-prerequisites.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gitian/check-prerequisites.sh b/gitian/check-prerequisites.sh
index b4df5a3..e470b84 100755
--- a/gitian/check-prerequisites.sh
+++ b/gitian/check-prerequisites.sh
@@ -27,7 +27,7 @@ then
echo
echo "Please run:"
echo " cd ../../ "
- echo " torsocks git clone -b tor-browser-builder-2 https://git.torproject.org/builders/gitian-builder.git"
+ echo " torsocks git clone -b tor-browser-builder-3 https://git.torproject.org/builders/gitian-builder.git"
echo " cd -"
exit 1
fi
1
0

[tor-browser-bundle/master] Update documentation and TODO file.
by mikeperry@torproject.org 25 Apr '14
by mikeperry@torproject.org 25 Apr '14
25 Apr '14
commit e4d79c85701de21e6b15d6a0aba39b4931b4ba71
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Fri Apr 25 15:40:23 2014 +0200
Update documentation and TODO file.
Some of the TODO file may still be out of date. I think we have fixed most of
the hardening issues, for example, but we should double check that.
---
gitian/README.build | 75 +++++++++++++++++++++++++++++----------------------
gitian/TODO | 7 -----
2 files changed, 43 insertions(+), 39 deletions(-)
diff --git a/gitian/README.build b/gitian/README.build
index ece4cb6..47a8f57 100644
--- a/gitian/README.build
+++ b/gitian/README.build
@@ -48,18 +48,18 @@ Detailed Explanation of Scripts:
0. Makefile: The main Makefile. It has six main commands:
- prep: Check OS prerequisites and download source dependency inputs
- build: Build localized bundles for Linux, Windows, and Mac
- - clean: Remove prior partial build stages (Tor and Firefox)
+ - clean: Remove prior partial build stages (see 'Partial Rebuilds' below)
- vmclean: Remove VM base images
- distclean: Remove source dependency inputs, and run clean and vmclean
- all: The default. It calls clean, prep, and then build.
- - sign: Signs your build output and uplodas it to people.torproject.org
+ - sign: Signs your build output and uploads it to people.torproject.org
- match: Checks your build output against public signed hashes
- To build alpha bundles, alternate targets are provided:
- - alpha: The equivalent to the 'all' rule for alpha packages
- - build-alpha: The equivalent to the 'build' rule for alpha packages
- - prep-alpha: The equivalent to the 'prep' rule for alpha packages
- - sign-alpha: Signs your build output and uplodas it to people.torproject.org
- - match-alpha: Checks your build output against public signed hashes
+ To build beta/alpha/nightly bundles, alternate targets are provided:
+ - beta: The equivalent to the 'all' rule for beta packages
+ - build-beta: The equivalent to the 'build' rule for beta packages
+ - prep-beta: The equivalent to the 'prep' rule for beta packages
+ - sign-beta: Signs your build output and uploads it to people.torproject.org
+ - match-beta: Checks your build output against public signed hashes
1. check-prerequisites.sh: This script checks if your system is capable of
running Gitian, and if it is not, it tells you what you need to do.
@@ -95,31 +95,47 @@ Detailed Explanation of Scripts:
call the appropriate descriptors to build a 32bit Mac bundle. It also
will create build VM images for you if you haven't done that before.
+ 9. record-inputs.sh: This script records all of the hashes and bundle
+ inputs for inclusion in the 'Docs/sources' subdirectory of the bundles
+ themselves.
+
+ 10. hash-bundles.sh: This script generates a 'sha256sums.txt' file in sorted,
+ reproducible order.
-Partial Rebuilds:
+ 11. check-match.sh: This script checks your 'sha256sums.txt' file against
+ any signed, published builds.
- The mkbundle shell scripts each have three Gitian stages.
+ 12. upload-signature.sh: This script signs and uploads your 'sha256sums.txt'
+ file (for use if you are an official builder).
- First, using their platform's gitian-tor.yml Gitian descriptor, they build
- tor and the tor dependencies (libevent, zlib, and openssl). Second, using
- the gitian-firefox.yml descriptor, they build Firefox with the Tor Browser
- patches and preferences applied. Third, in gitian-bundle.yml, they assemble
- the bundles using the addons and localization packs.
- The Tor and Firefox stages end up as a *gbuilt*.zip files in
- ../../gitian-builder/inputs/, and those zip files are used as inputs into
- the final bundling and localization stage. If those files exist in that
- directory, the corresponding bundle will *not* be built.
+Partial Rebuilds:
+
+ The mkbundle shell scripts each have five Gitian stages:
+ 1. Build support utilities (gitian-utils.yml)
+ 2. Tor (gitian-tor.yml)
+ 3. Tor Browser (gitian-firefox.yml)
+ 4. Pluggable Transports (gitian-pluggable-transports.yml)
+ 5. Addon and bundle package assembly (gitian-bundle.yml)
+
+ Each stage leaves build artifacts in ../../gitian-builder/inputs/ for use
+ in later stages. If the artifact files for a given stage are present, that
+ stage is skipped by a 'make build'.
No other dependency checking on build stages is performed.
- This means that if any of the source inputs, or the Ubuntu buildchain tools,
- or the build tools' dependencies upgrade, your Tor and Firefox inputs will
- no longer match those produced by someone else's build from a fresher VM
- that downloaded those newer toolchain packages.
+ If you wish to rebuild only a given stage, there are several 'make clean-'
+ targets to remove the artifacts for that stage. Running a subsequent
+ 'make build' after that will rebuild only those targets that have been
+ cleaned, and then re-package everything again as well.
+
+ Note that if any of the source inputs, or the Ubuntu buildchain tools, or
+ the build tools' dependencies upgrade, your Tor and Firefox inputs will
+ no longer match those produced by someone else's build from a fresh build
+ that downloaded those newer input, dependency, and toolchain packages.
- This means for official builds, you should always run 'make clean' (which
- is called by the default Makefile target).
+ This means for official builds, it is a good idea to always run a full
+ 'make clean' first, or just run 'make'.
Known Issues and Quirks:
@@ -138,7 +154,8 @@ Known Issues and Quirks:
VMs) or 'rm ../../gitian-builder/*lucid*' (to remove the Linux VMs).
You probably want to make sure you have no stray qemu processes before
- rebuilding the VMs or starting a new build, too.
+ rebuilding the VMs or starting a new build, too. 'killall qemu-kvm' is
+ your friend.
Once you get a working set of base VMs (in ../../gitian-builder/base-*),
you should probably copy them somewhere safe if you want to avoid VM
@@ -166,12 +183,6 @@ Known Issues and Quirks:
SSH keys of the previous instances' VM, and VM startup will either hang
or prompt you for an SSH password).
- 6. The number of cpus in the VM images is currently hardcoded at 4. If you
- need a different number, please let me know and I will write a patch to
- support configuring the number of CPUs easily.
-
- 7. LXC-built bundles are still not deterministic and may run into other issues.
- See TODO file for details.
Diagnosing Problems:
diff --git a/gitian/TODO b/gitian/TODO
index cda7f32..47a1b6f 100644
--- a/gitian/TODO
+++ b/gitian/TODO
@@ -20,7 +20,6 @@ Short Term:
- Refuse to build if `git diff --raw` is non-zero?
- Detect arch on Linux
- https://trac.torproject.org/projects/tor/ticket/3841
- - Too many libevent libs are included.. Only need a couple
Mid Term:
- Write a VM test+rebuild script
@@ -36,8 +35,6 @@ Mid Term:
- Clean up old paths (requires Tor Launcher commits)
- Remove FirefoxPortable paths for Windows
- Relocate torrc to Library/Tor for MacOS
- - DMGs for Mac
- https://trac.torproject.org/projects/tor/ticket/4261
- Universal binaries for Mac?
- Usability win, but gettor loss (we're at 23M right now)
- https://developer.mozilla.org/en-US/docs/Mac_OS_X_Universal_Binaries
@@ -48,10 +45,6 @@ Mid Term:
- Fix windows issues:
- Link to DirectX via Wine (for WebGL)
- Weird C++ stdext namespace issues remain :/
- - Accesibility still fails :/
- - https://bugzilla.mozilla.org/show_bug.cgi?id=815581
- - Has conflicts with FF17-ESR :/
- - Can we just pull the whole accessibility dir?
- If Tor Launcher fails to load, the browser still can launch
- Add browser code to detect missing addons?
- Missing/Partial Localization strings can cause this..
1
0

[tor-browser-bundle/master] Also clean the bundle marker files if any stages get cleaned.
by mikeperry@torproject.org 25 Apr '14
by mikeperry@torproject.org 25 Apr '14
25 Apr '14
commit bc96dc6dfdd3be3872783dd68794fbb5a6023565
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Fri Apr 25 15:39:27 2014 +0200
Also clean the bundle marker files if any stages get cleaned.
If someone cleans a stage and then does 'make build', they probably also want
to repackage everything after building that stage.
---
gitian/Makefile | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/gitian/Makefile b/gitian/Makefile
index b24ec53..c81e32c 100644
--- a/gitian/Makefile
+++ b/gitian/Makefile
@@ -77,20 +77,20 @@ clean: clean-utils clean-tor clean-browser clean-pt clean-bundle
rm -f ../../gitian-builder/inputs/bundle.inputs
rm -f ../../gitian-builder/inputs/versions*
-clean-utils:
+clean-utils: clean-bundle
rm -f ../../gitian-builder/inputs/*utils.zip
-clean-tor:
+clean-tor: clean-bundle
rm -f ../../gitian-builder/inputs/tor-linux*
rm -f ../../gitian-builder/inputs/tor-mac*
rm -f ../../gitian-builder/inputs/tor-win*
-clean-browser:
+clean-browser: clean-bundle
rm -f ../../gitian-builder/inputs/tor-browser-linux*
rm -f ../../gitian-builder/inputs/tor-browser-mac*
rm -f ../../gitian-builder/inputs/tor-browser-win*
-clean-pt:
+clean-pt: clean-bundle
rm -f ../../gitian-builder/inputs/pluggable-transports*
clean-bundle:
1
0

[tor-browser-bundle/master] Fix broken nightly due to patch for bug 11200.
by gk@torproject.org 25 Apr '14
by gk@torproject.org 25 Apr '14
25 Apr '14
commit 6da5650703e7c10f7592232df379963a44fee079
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Apr 25 15:13:32 2014 +0000
Fix broken nightly due to patch for bug 11200.
It seems the patch for bug 11200 does not apply cleanly to the latest
tor master anymore. Make sure it gets only applied when 0.2.4 is used.
---
gitian/descriptors/linux/gitian-tor.yml | 2 +-
gitian/descriptors/mac/gitian-tor.yml | 2 +-
gitian/descriptors/windows/gitian-tor.yml | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/gitian/descriptors/linux/gitian-tor.yml b/gitian/descriptors/linux/gitian-tor.yml
index 5c4ae00..826d355 100644
--- a/gitian/descriptors/linux/gitian-tor.yml
+++ b/gitian/descriptors/linux/gitian-tor.yml
@@ -78,8 +78,8 @@ script: |
git am ~/build/bug11069.patch
git am ~/build/bug11156.patch
git am ~/build/bug9665.patch
+ git am ~/build/bug11200.patch
fi
- git am ~/build/bug11200.patch
fi
mkdir -p $OUTDIR/src
#git archive HEAD | tar -x -C $OUTDIR/src
diff --git a/gitian/descriptors/mac/gitian-tor.yml b/gitian/descriptors/mac/gitian-tor.yml
index 98668ac..c3ae8d8 100644
--- a/gitian/descriptors/mac/gitian-tor.yml
+++ b/gitian/descriptors/mac/gitian-tor.yml
@@ -109,8 +109,8 @@ script: |
git am ~/build/bug11069.patch
git am ~/build/bug11156.patch
git am ~/build/bug9665.patch
+ git am ~/build/bug11200.patch
fi
- git am ~/build/bug11200.patch
fi
mkdir -p $OUTDIR/src
git archive HEAD | tar -x -C $OUTDIR/src
diff --git a/gitian/descriptors/windows/gitian-tor.yml b/gitian/descriptors/windows/gitian-tor.yml
index ffac916..5e452b9 100644
--- a/gitian/descriptors/windows/gitian-tor.yml
+++ b/gitian/descriptors/windows/gitian-tor.yml
@@ -105,8 +105,8 @@ script: |
git am ~/build/bug11069.patch
git am ~/build/bug11156.patch
git am ~/build/bug9665.patch
+ git am ~/build/bug11200.patch
fi
- git am ~/build/bug11200.patch
fi
mkdir -p $OUTDIR/src
git archive HEAD | tar -x -C $OUTDIR/src
1
0

[tor-browser-bundle/master] Fix broken nightly due to patch for bug 9229.
by gk@torproject.org 25 Apr '14
by gk@torproject.org 25 Apr '14
25 Apr '14
commit d984aa174e42c1a1919ed8a763ab33b095067278
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Apr 25 11:46:35 2014 +0000
Fix broken nightly due to patch for bug 9229.
It seems the patch for bug 9229 does not apply cleanly to the latest
tor master anymore. Make sure it gets only applied when 0.2.4 is used.
---
gitian/descriptors/linux/gitian-tor.yml | 2 +-
gitian/descriptors/mac/gitian-tor.yml | 2 +-
gitian/descriptors/windows/gitian-tor.yml | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/gitian/descriptors/linux/gitian-tor.yml b/gitian/descriptors/linux/gitian-tor.yml
index 60a5015..5c4ae00 100644
--- a/gitian/descriptors/linux/gitian-tor.yml
+++ b/gitian/descriptors/linux/gitian-tor.yml
@@ -71,9 +71,9 @@ script: |
git am ~/build/bug10297.patch
fi
if [ $BUILD_PT_BUNDLES ]; then
- git am ~/build/bug9229.patch
if [ ${TOR_TAG::9} == "tor-0.2.4" ];
then
+ git am ~/build/bug9229.patch
git am ~/build/bug5018.patch
git am ~/build/bug11069.patch
git am ~/build/bug11156.patch
diff --git a/gitian/descriptors/mac/gitian-tor.yml b/gitian/descriptors/mac/gitian-tor.yml
index 3304f76..98668ac 100644
--- a/gitian/descriptors/mac/gitian-tor.yml
+++ b/gitian/descriptors/mac/gitian-tor.yml
@@ -102,9 +102,9 @@ script: |
git am ~/build/bug10297.patch
fi
if [ $BUILD_PT_BUNDLES ]; then
- git am ~/build/bug9229.patch
if [ ${TOR_TAG::9} == "tor-0.2.4" ];
then
+ git am ~/build/bug9229.patch
git am ~/build/bug5018.patch
git am ~/build/bug11069.patch
git am ~/build/bug11156.patch
diff --git a/gitian/descriptors/windows/gitian-tor.yml b/gitian/descriptors/windows/gitian-tor.yml
index ce4ef63..ffac916 100644
--- a/gitian/descriptors/windows/gitian-tor.yml
+++ b/gitian/descriptors/windows/gitian-tor.yml
@@ -98,9 +98,9 @@ script: |
git am ~/build/bug10297.patch
fi
if [ $BUILD_PT_BUNDLES ]; then
- git am ~/build/bug9229.patch
if [ ${TOR_TAG::9} == "tor-0.2.4" ];
then
+ git am ~/build/bug9229.patch
git am ~/build/bug5018.patch
git am ~/build/bug11069.patch
git am ~/build/bug11156.patch
1
0

[tor-browser-bundle/master] Bug 11556: Fix broken bundling due to HTTPS-E 3.5.
by gk@torproject.org 25 Apr '14
by gk@torproject.org 25 Apr '14
25 Apr '14
commit ffe165972b6290df94d969675b9f2660cf2eedbb
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Apr 25 09:03:02 2014 +0000
Bug 11556: Fix broken bundling due to HTTPS-E 3.5.
Starting with version 3.5 HTTPS-Everywhere uses Python 2.7 for
assembling its rules in a SQLite database. This caused our bundling
step to be broken on all platforms: On Linux (Ubuntu 10.04) there is
no Python 2.7 available via the package management and the Windows and
OS X bundling descriptors missed some necessary packages.
---
gitian/descriptors/linux/gitian-bundle.yml | 10 ++++++++++
gitian/descriptors/linux/gitian-utils.yml | 24 +++++++++++++++++++++---
gitian/descriptors/mac/gitian-bundle.yml | 3 +++
gitian/descriptors/windows/gitian-bundle.yml | 5 ++++-
gitian/fetch-inputs.sh | 6 ++++--
gitian/gpg/LXML.gpg | Bin 0 -> 1450 bytes
gitian/mkbundle-linux.sh | 9 +++++++--
gitian/versions | 6 ++++--
gitian/versions.alpha | 6 ++++--
gitian/versions.beta | 6 ++++--
gitian/versions.nightly | 6 ++++--
11 files changed, 65 insertions(+), 16 deletions(-)
diff --git a/gitian/descriptors/linux/gitian-bundle.yml b/gitian/descriptors/linux/gitian-bundle.yml
index 39a7747..c16589a 100644
--- a/gitian/descriptors/linux/gitian-bundle.yml
+++ b/gitian/descriptors/linux/gitian-bundle.yml
@@ -13,6 +13,8 @@ packages:
- "python"
- "rnv"
- "xz-utils"
+- "libxslt1.1"
+- "sqlite3"
reference_datetime: "2000-01-01 00:00:00"
remotes:
- "url": "https://git.torproject.org/tor-launcher.git"
@@ -29,6 +31,10 @@ files:
- "tor-linux64-gbuilt.zip"
- "pluggable-transports-linux32-gbuilt.zip"
- "pluggable-transports-linux64-gbuilt.zip"
+- "python-linux32-utils.zip"
+- "python-linux64-utils.zip"
+- "lxml-linux32-utils.zip"
+- "lxml-linux64-utils.zip"
- "torrc-defaults-appendix-linux"
- "bridge_prefs.js"
- "relativelink-src.zip"
@@ -57,6 +63,10 @@ script: |
mkdir -p tor-browser/Data/Browser/profile.default/extensions/https-everywhere(a)eff.org
mkdir -p tor-browser/Data/Browser/Caches
mkdir -p tor-browser/Docs/sources/
+ # Preparing Python for HTTPS-Everywhere.
+ unzip -d $INSTDIR python-linux$GBUILD_BITS-utils.zip
+ export PATH=$INSTDIR/python/bin:$PATH
+ unzip -d $INSTDIR/python/lib/python2.7 lxml-linux$GBUILD_BITS-utils.zip
#
cd tor-launcher
make clean
diff --git a/gitian/descriptors/linux/gitian-utils.yml b/gitian/descriptors/linux/gitian-utils.yml
index c4052f7..427e69b 100644
--- a/gitian/descriptors/linux/gitian-utils.yml
+++ b/gitian/descriptors/linux/gitian-utils.yml
@@ -15,6 +15,11 @@ packages:
- "faketime"
- "libtool"
- "hardening-wrapper"
+# These packages are needed for Python due to HTTPS-Everywhere >= 3.5.
+- "libsqlite3-dev"
+- "zlib1g-dev"
+- "libxml2-dev"
+- "libxslt-dev"
reference_datetime: "2000-01-01 00:00:00"
remotes:
- "url": "https://github.com/libevent/libevent.git"
@@ -24,6 +29,7 @@ files:
- "dzip.sh"
- "openssl.tar.gz"
- "python.tar.bz2"
+- "lxml.tar.gz"
script: |
INSTDIR="$HOME/install"
source versions
@@ -66,15 +72,27 @@ script: |
cd ..
# Building Python
- # Fx 24 ESR does not work with Python < 2.7 anymore. But 10.04 does only ship
- # with Python 2.6. Thus, we compile 2.7 ourselves...
+ # Fx 24 ESR and HTTPS Everywhere >= 3.5 do not work with Python < 2.7 anymore.
+ # But 10.04 does only ship with Python 2.6. Thus, we compile 2.7 ourselves...
tar xjf python.tar.bz2
cd Python-*
./configure
make $MAKEOPTS altinstall prefix=$INSTDIR/python exec-prefix=$INSTDIR/python
cd ..
- # Grabbing the results
+ # Building the Python lxml module
+ tar xzf lxml.tar.gz
+ cd lxml-*
+ # Make sure we use our freshly built python binary here. Otherwise bad things
+ # may happen when we do so in the bundle step assembling the HTTPS-Everywhere
+ # rules.
+ $INSTDIR/python/bin/python2.7 setup.py build
+ cd build/lib*
+ ~/build/dzip.sh lxml-$LXML_VER-linux$GBUILD_BITS-utils.zip lxml
+ cp *-utils.zip $OUTDIR
+ cd ../../../
+
+ # Grabbing the remaining results
cd $INSTDIR
~/build/dzip.sh openssl-$OPENSSL_VER-linux$GBUILD_BITS-utils.zip openssl
# TODO: It is not guaranteed we have a X.X.XX-style version.
diff --git a/gitian/descriptors/mac/gitian-bundle.yml b/gitian/descriptors/mac/gitian-bundle.yml
index b7ecf3a..263ca57 100644
--- a/gitian/descriptors/mac/gitian-bundle.yml
+++ b/gitian/descriptors/mac/gitian-bundle.yml
@@ -15,6 +15,9 @@ packages:
- "cmake"
- "zlib1g-dev"
- "libbz2-dev"
+# Both packages are needed for assembling the HTTPS-Everywhere rules since 3.5.
+- "python-lxml"
+- "sqlite3"
reference_datetime: "2000-01-01 00:00:00"
remotes:
- "url": "https://git.torproject.org/tor-launcher.git"
diff --git a/gitian/descriptors/windows/gitian-bundle.yml b/gitian/descriptors/windows/gitian-bundle.yml
index fddb611..457fa7b 100644
--- a/gitian/descriptors/windows/gitian-bundle.yml
+++ b/gitian/descriptors/windows/gitian-bundle.yml
@@ -8,11 +8,14 @@ packages:
- "git-core"
- "unzip"
- "zip"
-# This is needed for compiling the StartTorBrowserBundle.exe.
+# This package is needed for compiling the StartTorBrowserBundle.exe.
- "mingw-w64"
- "nsis"
- "faketime"
- "python"
+# Both packages are needed for assembling the HTTPS-Everywhere rules since 3.5.
+- "python-lxml"
+- "sqlite3"
reference_datetime: "2000-01-01 00:00:00"
remotes:
- "url": "https://github.com/moba/tbb-windows-installer.git"
diff --git a/gitian/fetch-inputs.sh b/gitian/fetch-inputs.sh
index 6b8ae99..f80348e 100755
--- a/gitian/fetch-inputs.sh
+++ b/gitian/fetch-inputs.sh
@@ -133,11 +133,12 @@ do
fi
done
-for i in BINUTILS GCC PYTHON PYCRYPTO M2CRYPTO PYTHON_MSI GMP
+for i in BINUTILS GCC PYTHON PYCRYPTO M2CRYPTO PYTHON_MSI GMP LXML
do
PACKAGE="${i}_PACKAGE"
URL="${i}_URL"
- if [ "${i}" == "PYTHON" -o "${i}" == "PYCRYPTO" -o "${i}" == "M2CRYPTO" -o "${i}" == "PYTHON_MSI" ]; then
+ if [ "${i}" == "PYTHON" -o "${i}" == "PYCRYPTO" -o "${i}" == "M2CRYPTO" -o \
+ "${i}" == "PYTHON_MSI" -o "${i}" == "LXML" ]; then
SUFFIX="asc"
else
SUFFIX="sig"
@@ -275,6 +276,7 @@ ln -sf "$M2CRYPTO_PACKAGE" m2crypto.tar.gz
ln -sf "$PY2EXE_PACKAGE" py2exe.exe
ln -sf "$SETUPTOOLS_PACKAGE" setuptools.tar.gz
ln -sf "$GMP_PACKAGE" gmp.tar.bz2
+ln -sf "$LXML_PACKAGE" lxml.tar.gz
# Fetch latest gitian-builder itself
# XXX - this is broken if a non-standard inputs dir is selected using the command line flag.
diff --git a/gitian/gpg/LXML.gpg b/gitian/gpg/LXML.gpg
new file mode 100644
index 0000000..fd5f415
Binary files /dev/null and b/gitian/gpg/LXML.gpg differ
diff --git a/gitian/mkbundle-linux.sh b/gitian/mkbundle-linux.sh
index b21d9b4..1328a9c 100755
--- a/gitian/mkbundle-linux.sh
+++ b/gitian/mkbundle-linux.sh
@@ -93,8 +93,9 @@ if [ ! -f inputs/openssl-$OPENSSL_VER-linux32-utils.zip -o \
! -f inputs/libevent-${LIBEVENT_TAG_ORIG:8:6}-linux32-utils.zip -o \
! -f inputs/libevent-${LIBEVENT_TAG_ORIG:8:6}-linux64-utils.zip -o \
! -f inputs/python-$PYTHON_VER-linux32-utils.zip -o \
- ! -f inputs/python-$PYTHON_VER-linux64-utils.zip ];
-
+ ! -f inputs/python-$PYTHON_VER-linux64-utils.zip -o \
+ ! -f inputs/lxml-$LXML_VER-linux32-utils.zip -o \
+ ! -f inputs/lxml-$LXML_VER-linux64-utils.zip ];
then
echo
echo "****** Starting Utilities Component of Linux Bundle (1/5 for Linux) ******"
@@ -116,6 +117,8 @@ then
ln -sf libevent-${LIBEVENT_TAG_ORIG:8:6}-linux64-utils.zip libevent-linux64-utils.zip
ln -sf python-$PYTHON_VER-linux32-utils.zip python-linux32-utils.zip
ln -sf python-$PYTHON_VER-linux64-utils.zip python-linux64-utils.zip
+ ln -sf lxml-$LXML_VER-linux32-utils.zip lxml-linux32-utils.zip
+ ln -sf lxml-$LXML_VER-linux64-utils.zip lxml-linux64-utils.zip
cd ..
#cp -a result/tor-linux-res.yml $GITIAN_DIR/inputs/
else
@@ -132,6 +135,8 @@ else
ln -sf libevent-${LIBEVENT_TAG_ORIG:8:6}-linux64-utils.zip libevent-linux64-utils.zip
ln -sf python-$PYTHON_VER-linux32-utils.zip python-linux32-utils.zip
ln -sf python-$PYTHON_VER-linux64-utils.zip python-linux64-utils.zip
+ ln -sf lxml-$LXML_VER-linux32-utils.zip lxml-linux32-utils.zip
+ ln -sf lxml-$LXML_VER-linux64-utils.zip lxml-linux64-utils.zip
cd ..
fi
diff --git a/gitian/versions b/gitian/versions
index 97c6d33..a9c372c 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -9,8 +9,7 @@ TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build1
TOR_TAG=tor-0.2.4.21
TORLAUNCHER_TAG=0.2.4.4
TORBUTTON_TAG=1.6.7.0
-# XXX: 3.5 requires python2.7, see #11556
-HTTPSE_TAG=3.4.5
+HTTPSE_TAG=3.5
NSIS_TAG=v0.1
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
@@ -37,6 +36,7 @@ TWISTED_VER=13.1.0
M2CRYPTO_VER=0.21.1
PY2EXE_VER=0.6.9
SETUPTOOLS_VER=1.4
+LXML_VER=3.3.5
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
@@ -59,6 +59,7 @@ TWISTED_PACKAGE=Twisted-${TWISTED_VER}.tar.bz2
M2CRYPTO_PACKAGE=M2Crypto-${M2CRYPTO_VER}.tar.gz
PY2EXE_PACKAGE=py2exe-${PY2EXE_VER}.win32-py2.7.exe
SETUPTOOLS_PACKAGE=setuptools-${SETUPTOOLS_VER}.tar.gz
+LXML_PACKAGE=lxml-${LXML_VER}.tar.gz
# Hashes for packages with weak sigs or no sigs
OPENSSL_HASH=53cb818c3b90e507a8348f4f5eaedb05d8bfe5358aabb508b7263cc670c3e028
@@ -98,3 +99,4 @@ TWISTED_URL=https://pypi.python.org/packages/source/T/Twisted/${TWISTED_PAC…
M2CRYPTO_URL=https://pypi.python.org/packages/source/M/M2Crypto/${M2CRYPTO_…
PY2EXE_URL=http://softlayer-dal.dl.sourceforge.net/project/py2exe/py2exe/${…
SETUPTOOLS_URL=https://pypi.python.org/packages/source/s/setuptools/${SETUP…
+LXML_URL=https://pypi.python.org/packages/source/l/lxml/${LXML_PACKAGE}
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index ddfa06b..9c5fa02 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -10,8 +10,7 @@ TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build2
TOR_TAG=tor-0.2.5.3-alpha
TORLAUNCHER_TAG=0.2.5.3
TORBUTTON_TAG=1.6.8.1
-# XXX: 3.5 requires python2.7, see #11556
-HTTPSE_TAG=3.4.5
+HTTPSE_TAG=3.5
NSIS_TAG=v0.1
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
@@ -38,6 +37,7 @@ TWISTED_VER=13.1.0
M2CRYPTO_VER=0.21.1
PY2EXE_VER=0.6.9
SETUPTOOLS_VER=1.4
+LXML_VER=3.3.5
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
@@ -60,6 +60,7 @@ TWISTED_PACKAGE=Twisted-${TWISTED_VER}.tar.bz2
M2CRYPTO_PACKAGE=M2Crypto-${M2CRYPTO_VER}.tar.gz
PY2EXE_PACKAGE=py2exe-${PY2EXE_VER}.win32-py2.7.exe
SETUPTOOLS_PACKAGE=setuptools-${SETUPTOOLS_VER}.tar.gz
+LXML_PACKAGE=lxml-${LXML_VER}.tar.gz
# Hashes for packages with weak sigs or no sigs
OPENSSL_HASH=53cb818c3b90e507a8348f4f5eaedb05d8bfe5358aabb508b7263cc670c3e028
@@ -99,3 +100,4 @@ TWISTED_URL=https://pypi.python.org/packages/source/T/Twisted/${TWISTED_PAC…
M2CRYPTO_URL=https://pypi.python.org/packages/source/M/M2Crypto/${M2CRYPTO_…
PY2EXE_URL=http://softlayer-dal.dl.sourceforge.net/project/py2exe/py2exe/${…
SETUPTOOLS_URL=https://pypi.python.org/packages/source/s/setuptools/${SETUP…
+LXML_URL=https://pypi.python.org/packages/source/l/lxml/${LXML_PACKAGE}
diff --git a/gitian/versions.beta b/gitian/versions.beta
index 7933efd..f6c24a2 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -10,8 +10,7 @@ TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build1
TOR_TAG=tor-0.2.4.21
TORLAUNCHER_TAG=0.2.5.3
TORBUTTON_TAG=1.6.8.1
-# XXX: 3.5 requires python2.7, see #11556
-HTTPSE_TAG=3.4.5
+HTTPSE_TAG=3.5
NSIS_TAG=v0.1
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
@@ -38,6 +37,7 @@ TWISTED_VER=13.1.0
M2CRYPTO_VER=0.21.1
PY2EXE_VER=0.6.9
SETUPTOOLS_VER=1.4
+LXML_VER=3.3.5
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
@@ -60,6 +60,7 @@ TWISTED_PACKAGE=Twisted-${TWISTED_VER}.tar.bz2
M2CRYPTO_PACKAGE=M2Crypto-${M2CRYPTO_VER}.tar.gz
PY2EXE_PACKAGE=py2exe-${PY2EXE_VER}.win32-py2.7.exe
SETUPTOOLS_PACKAGE=setuptools-${SETUPTOOLS_VER}.tar.gz
+LXML_PACKAGE=lxml-${LXML_VER}.tar.gz
# Hashes for packages with weak sigs or no sigs
OPENSSL_HASH=53cb818c3b90e507a8348f4f5eaedb05d8bfe5358aabb508b7263cc670c3e028
@@ -99,3 +100,4 @@ TWISTED_URL=https://pypi.python.org/packages/source/T/Twisted/${TWISTED_PAC…
M2CRYPTO_URL=https://pypi.python.org/packages/source/M/M2Crypto/${M2CRYPTO_…
PY2EXE_URL=http://softlayer-dal.dl.sourceforge.net/project/py2exe/py2exe/${…
SETUPTOOLS_URL=https://pypi.python.org/packages/source/s/setuptools/${SETUP…
+LXML_URL=https://pypi.python.org/packages/source/l/lxml/${LXML_PACKAGE}
diff --git a/gitian/versions.nightly b/gitian/versions.nightly
index 1596918..c8a8d7c 100755
--- a/gitian/versions.nightly
+++ b/gitian/versions.nightly
@@ -10,8 +10,7 @@ TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1
TOR_TAG=master
TORLAUNCHER_TAG=master
TORBUTTON_TAG=master
-# XXX: Master and 3.5 require python2.7, see #11556
-HTTPSE_TAG=3.4.5
+HTTPSE_TAG=master
NSIS_TAG=master
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
@@ -39,6 +38,7 @@ TWISTED_VER=13.1.0
M2CRYPTO_VER=0.21.1
PY2EXE_VER=0.6.9
SETUPTOOLS_VER=1.4
+LXML_VER=3.3.5
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
@@ -61,6 +61,7 @@ TWISTED_PACKAGE=Twisted-${TWISTED_VER}.tar.bz2
M2CRYPTO_PACKAGE=M2Crypto-${M2CRYPTO_VER}.tar.gz
PY2EXE_PACKAGE=py2exe-${PY2EXE_VER}.win32-py2.7.exe
SETUPTOOLS_PACKAGE=setuptools-${SETUPTOOLS_VER}.tar.gz
+LXML_PACKAGE=lxml-${LXML_VER}.tar.gz
# Hashes for packages with weak sigs or no sigs
OPENSSL_HASH=53cb818c3b90e507a8348f4f5eaedb05d8bfe5358aabb508b7263cc670c3e028
@@ -100,3 +101,4 @@ TWISTED_URL=https://pypi.python.org/packages/source/T/Twisted/${TWISTED_PAC…
M2CRYPTO_URL=https://pypi.python.org/packages/source/M/M2Crypto/${M2CRYPTO_…
PY2EXE_URL=http://softlayer-dal.dl.sourceforge.net/project/py2exe/py2exe/${…
SETUPTOOLS_URL=https://pypi.python.org/packages/source/s/setuptools/${SETUP…
+LXML_URL=https://pypi.python.org/packages/source/l/lxml/${LXML_PACKAGE}
1
0

[tor-browser-bundle/master] Bug 10120: Part 1: Refactor Linux descriptors.
by gk@torproject.org 24 Apr '14
by gk@torproject.org 24 Apr '14
24 Apr '14
commit 2d9e5eea316c3d35a46f55c1150c4873bbbf2d15
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Apr 24 21:11:56 2014 +0000
Bug 10120: Part 1: Refactor Linux descriptors.
We build the tools needed for the Linux descriptors separately and
preserve them. This does not (yet) include the tools in the Pluggable
Transports descriptor which will happen in an other commit.
Additonally, we enhance our clean targets in the Makefile containing not
only a target for the newly created utils component now but for the
other components as well.
---
gitian/Makefile | 23 ++++-
gitian/descriptors/linux/gitian-firefox.yml | 29 ++----
gitian/descriptors/linux/gitian-tor.yml | 36 ++-----
gitian/descriptors/linux/gitian-utils.yml | 84 +++++++++++++++
gitian/mkbundle-linux.sh | 148 ++++++++++++++++++---------
5 files changed, 223 insertions(+), 97 deletions(-)
diff --git a/gitian/Makefile b/gitian/Makefile
index cec338d..b24ec53 100644
--- a/gitian/Makefile
+++ b/gitian/Makefile
@@ -72,12 +72,29 @@ prep-beta:
./check-prerequisites.sh
$(TORSOCKS) ./fetch-inputs.sh ../../gitian-builder/inputs/ versions.beta
-clean:
- rm -f ../../gitian-builder/inputs/*gbuilt*
+clean: clean-utils clean-tor clean-browser clean-pt clean-bundle
rm -f ../../gitian-builder/inputs/*.yml
rm -f ../../gitian-builder/inputs/bundle.inputs
rm -f ../../gitian-builder/inputs/versions*
- rm -f ../../gitian-builder/inputs/*debug.zip
+
+clean-utils:
+ rm -f ../../gitian-builder/inputs/*utils.zip
+
+clean-tor:
+ rm -f ../../gitian-builder/inputs/tor-linux*
+ rm -f ../../gitian-builder/inputs/tor-mac*
+ rm -f ../../gitian-builder/inputs/tor-win*
+
+clean-browser:
+ rm -f ../../gitian-builder/inputs/tor-browser-linux*
+ rm -f ../../gitian-builder/inputs/tor-browser-mac*
+ rm -f ../../gitian-builder/inputs/tor-browser-win*
+
+clean-pt:
+ rm -f ../../gitian-builder/inputs/pluggable-transports*
+
+clean-bundle:
+ rm -f ../../gitian-builder/inputs/bundle-*
vmclean:
rm -rf ../../gitian-builder/*.qcow2
diff --git a/gitian/descriptors/linux/gitian-firefox.yml b/gitian/descriptors/linux/gitian-firefox.yml
index 1f2cf12..7e6c598 100644
--- a/gitian/descriptors/linux/gitian-firefox.yml
+++ b/gitian/descriptors/linux/gitian-firefox.yml
@@ -29,9 +29,10 @@ remotes:
- "url": "https://git.torproject.org/tor-browser.git"
"dir": "tor-browser"
files:
+- "python-linux32-utils.zip"
+- "python-linux64-utils.zip"
- "re-dzip.sh"
- "dzip.sh"
-- "python.tar.bz2"
- "versions"
script: |
source versions
@@ -55,25 +56,17 @@ script: |
mkdir -p $INSTDIR/build/bin/
ln -s /usr/bin/yasm-1 $INSTDIR/build/bin/yasm
export PATH=$PATH:$INSTDIR/build/bin
+ # Preparing Python for Firefox
+ unzip -d $INSTDIR python-linux$GBUILD_BITS-utils.zip
+ # TODO: We might want to have a smarter solution than hard-coding the version.
+ ln -sf $INSTDIR/python/bin/python2.7 $INSTDIR/python/bin/python
+ export PATH=$INSTDIR/python/bin:$PATH
#
mkdir -p $INSTDIR/Browser/
mkdir -p $INSTDIR/Debug/Browser/components
#
- # Fx 24 ESR does not work with Python < 2.7 anymore. But 10.04 does only ship
- # with Python 2.6. Thus, we compile 2.7 ourselves...
- if [ ${TORBROWSER_VERSION::3} != "3.0" ]; then
- mkdir python
- cd python
- tar -xjvf ../python.tar.bz2
- Python-*/configure
- make
- sudo make install
- cd ..
- fi
- #
cd tor-browser
# .git and the src takes up a lot of useless space, and we need the space to build
- #git archive HEAD | tar -x -C $OUTDIR/src
rm -rf .git
find -type f | xargs touch --date="$REFERENCE_DATETIME"
rm -f configure
@@ -94,19 +87,17 @@ script: |
# Strip and generate debuginfo for the firefox binary that we keep, all *.so
# files, and the plugin-container (see ticket #10126)
cd $INSTDIR
- for LIB in Browser/*.so Browser/webapprt-stub Browser/mozilla-xremote-client Browser/firefox Browser/plugin-container Browser/components/*.so # Browser/updater
+ for LIB in Browser/*.so Browser/webapprt-stub Browser/mozilla-xremote-client Browser/firefox Browser/plugin-container Browser/components/*.so # Browser/updater
do
# Build-ID is sometimes non-deterministic, and we use debuglink anyway
- objcopy --remove-section=.note.gnu.build-id $LIB
+ objcopy --remove-section=.note.gnu.build-id $LIB
objcopy --only-keep-debug $LIB Debug/$LIB
strip $LIB
objcopy --add-gnu-debuglink=./Debug/$LIB $LIB
done
~/build/re-dzip.sh Browser/omni.ja
~/build/re-dzip.sh Browser/webapprt/omni.ja
- if [ -f Browser/browser/omni.ja ]; then # FF24 includes a third .ja
- ~/build/re-dzip.sh Browser/browser/omni.ja
- fi
+ ~/build/re-dzip.sh Browser/browser/omni.ja
~/build/dzip.sh tor-browser-linux$GBUILD_BITS-gbuilt.zip Browser/
~/build/dzip.sh tor-browser-linux$GBUILD_BITS-debug.zip Debug/
cp tor-browser-linux$GBUILD_BITS-gbuilt.zip $OUTDIR/
diff --git a/gitian/descriptors/linux/gitian-tor.yml b/gitian/descriptors/linux/gitian-tor.yml
index 28b7d13..60a5015 100644
--- a/gitian/descriptors/linux/gitian-tor.yml
+++ b/gitian/descriptors/linux/gitian-tor.yml
@@ -5,7 +5,7 @@ suites:
architectures:
- "i386"
- "amd64"
-packages:
+packages:
- "git-core"
- "unzip"
- "zip"
@@ -20,8 +20,6 @@ reference_datetime: "2000-01-01 00:00:00"
remotes:
- "url": "https://git.torproject.org/tor.git"
"dir": "tor"
-- "url": "https://github.com/libevent/libevent.git"
- "dir": "libevent"
files:
- "versions"
- "bug10297.patch"
@@ -32,11 +30,13 @@ files:
- "bug11069.patch"
- "bug9665.patch"
- "dzip.sh"
-- "openssl.tar.gz"
+- "openssl-linux32-utils.zip"
+- "openssl-linux64-utils.zip"
+- "libevent-linux32-utils.zip"
+- "libevent-linux64-utils.zip"
script: |
INSTDIR="$HOME/install"
source versions
- export LIBRARY_PATH="$INSTDIR/lib"
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
export FAKETIME=$REFERENCE_DATETIME
export TZ=UTC
@@ -53,31 +53,11 @@ script: |
mkdir -p $INSTDIR/Data/Tor/
mkdir -p $INSTDIR/Tor/
mkdir -p $INSTDIR/Debug/Tor/
- #
- cd libevent
- ./autogen.sh
- find -type f | xargs touch --date="$REFERENCE_DATETIME"
- ./configure --disable-static --prefix=$INSTDIR/libevent
- make $MAKEOPTS
- make install
- cp $INSTDIR/libevent/lib/libevent-2.0.so.5 $INSTDIR/Tor/
- cd ..
- #
- tar xzf openssl.tar.gz
- cd openssl-*
- find -type f | xargs touch --date="$REFERENCE_DATETIME"
- #./Configure -shared --prefix=$INSTDIR/openssl linux-elf
- if [ $GBUILD_BITS == "64" ];
- then
- ./config -shared --prefix=$INSTDIR/openssl enable-ec_nistp_64_gcc_128
- else
- ./config -shared --prefix=$INSTDIR/openssl
- fi
- make
- make install
+ unzip -d $INSTDIR openssl-linux$GBUILD_BITS-utils.zip
+ unzip -d $INSTDIR libevent-linux$GBUILD_BITS-utils.zip
cp $INSTDIR/openssl/lib/libssl.so.1.0.0 $INSTDIR/Tor/
cp $INSTDIR/openssl/lib/libcrypto.so.1.0.0 $INSTDIR/Tor/
- cd ..
+ cp $INSTDIR/libevent/lib/libevent-2.0.so.5 $INSTDIR/Tor/
#
chmod 700 $INSTDIR/Tor/*so*
#
diff --git a/gitian/descriptors/linux/gitian-utils.yml b/gitian/descriptors/linux/gitian-utils.yml
new file mode 100644
index 0000000..c4052f7
--- /dev/null
+++ b/gitian/descriptors/linux/gitian-utils.yml
@@ -0,0 +1,84 @@
+---
+name: "utils-linux"
+suites:
+- "lucid"
+architectures:
+- "i386"
+- "amd64"
+packages:
+- "git-core"
+- "unzip"
+- "zip"
+- "autoconf"
+- "autoconf2.13"
+- "automake"
+- "faketime"
+- "libtool"
+- "hardening-wrapper"
+reference_datetime: "2000-01-01 00:00:00"
+remotes:
+- "url": "https://github.com/libevent/libevent.git"
+ "dir": "libevent"
+files:
+- "versions"
+- "dzip.sh"
+- "openssl.tar.gz"
+- "python.tar.bz2"
+script: |
+ INSTDIR="$HOME/install"
+ source versions
+ export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
+ export FAKETIME=$REFERENCE_DATETIME
+ export TZ=UTC
+ export LC_ALL=C
+ umask 0022
+ #
+ # Config options for hardening-wrapper
+ export DEB_BUILD_HARDENING=1
+ export DEB_BUILD_HARDENING_STACKPROTECTOR=1
+ export DEB_BUILD_HARDENING_FORTIFY=1
+ export DEB_BUILD_HARDENING_FORMAT=1
+ export DEB_BUILD_HARDENING_PIE=1
+
+ # Building Libevent
+ cd libevent
+ ./autogen.sh
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
+ ./configure --disable-static --prefix=$INSTDIR/libevent
+ make $MAKEOPTS
+ make install
+ cd ..
+
+ # Building OpenSSL
+ tar xzf openssl.tar.gz
+ cd openssl-*
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
+ if [ $GBUILD_BITS == "64" ];
+ then
+ ./config -shared --prefix=$INSTDIR/openssl enable-ec_nistp_64_gcc_128
+ else
+ ./config -shared --prefix=$INSTDIR/openssl
+ fi
+ # Using $MAKEOPTS breaks the build. Might be the issue mentioned on
+ # http://cblfs.cross-lfs.org/index.php/OpenSSL.
+ make
+ make install
+ cd ..
+
+ # Building Python
+ # Fx 24 ESR does not work with Python < 2.7 anymore. But 10.04 does only ship
+ # with Python 2.6. Thus, we compile 2.7 ourselves...
+ tar xjf python.tar.bz2
+ cd Python-*
+ ./configure
+ make $MAKEOPTS altinstall prefix=$INSTDIR/python exec-prefix=$INSTDIR/python
+ cd ..
+
+ # Grabbing the results
+ cd $INSTDIR
+ ~/build/dzip.sh openssl-$OPENSSL_VER-linux$GBUILD_BITS-utils.zip openssl
+ # TODO: It is not guaranteed we have a X.X.XX-style version.
+ ~/build/dzip.sh libevent-${LIBEVENT_TAG:8:6}-linux$GBUILD_BITS-utils.zip libevent
+ ~/build/dzip.sh python-$PYTHON_VER-linux$GBUILD_BITS-utils.zip python
+
+ cp $INSTDIR/*-utils.zip $OUTDIR/
diff --git a/gitian/mkbundle-linux.sh b/gitian/mkbundle-linux.sh
index b4e635d..b21d9b4 100755
--- a/gitian/mkbundle-linux.sh
+++ b/gitian/mkbundle-linux.sh
@@ -42,7 +42,7 @@ fi
cd $GITIAN_DIR
export PATH=$PATH:$PWD/libexec
-echo "pref(\"torbrowser.version\", \"$TORBROWSER_VERSION-Linux\");" > $GITIAN_DIR/inputs/torbrowser.version
+echo "pref(\"torbrowser.version\", \"$TORBROWSER_VERSION-Linux\");" > $GITIAN_DIR/inputs/torbrowser.version
echo "$TORBROWSER_VERSION" > $GITIAN_DIR/inputs/bare-version
cp -a $WRAPPER_DIR/$VERSIONS_FILE $GITIAN_DIR/inputs/versions
@@ -51,7 +51,7 @@ cp $WRAPPER_DIR/patches/* $GITIAN_DIR/inputs/
cd $WRAPPER_DIR/..
rm -f $GITIAN_DIR/inputs/relativelink-src.zip
-$WRAPPER_DIR/build-helpers/dzip.sh $GITIAN_DIR/inputs/relativelink-src.zip ./RelativeLink/
+$WRAPPER_DIR/build-helpers/dzip.sh $GITIAN_DIR/inputs/relativelink-src.zip ./RelativeLink/
cd ./Bundle-Data/
rm -f $GITIAN_DIR/inputs/tbb-docs.zip
@@ -65,6 +65,11 @@ $WRAPPER_DIR/build-helpers/dzip.sh $GITIAN_DIR/inputs/linux-skeleton.zip .
cd $WRAPPER_DIR
+# Let's preserve the original $FOO for creating proper symlinks after building
+# the utils both if we verify tags and if we don't.
+
+LIBEVENT_TAG_ORIG=$LIBEVENT_TAG
+
if [ "z$VERIFY_TAGS" = "z1" ];
then
./verify-tags.sh $GITIAN_DIR/inputs $VERSIONS_FILE || exit 1
@@ -83,35 +88,83 @@ fi
cd $GITIAN_DIR
-if [ ! -f $GITIAN_DIR/inputs/tor-linux32-gbuilt.zip -o ! -f $GITIAN_DIR/inputs/tor-linux64-gbuilt.zip ];
+if [ ! -f inputs/openssl-$OPENSSL_VER-linux32-utils.zip -o \
+ ! -f inputs/openssl-$OPENSSL_VER-linux64-utils.zip -o \
+ ! -f inputs/libevent-${LIBEVENT_TAG_ORIG:8:6}-linux32-utils.zip -o \
+ ! -f inputs/libevent-${LIBEVENT_TAG_ORIG:8:6}-linux64-utils.zip -o \
+ ! -f inputs/python-$PYTHON_VER-linux32-utils.zip -o \
+ ! -f inputs/python-$PYTHON_VER-linux64-utils.zip ];
+
then
- echo
- echo "****** Starting Tor Component of Linux Bundle (1/4 for Linux) ******"
- echo
+ echo
+ echo "****** Starting Utilities Component of Linux Bundle (1/5 for Linux) ******"
+ echo
- ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit zlib=$ZLIB_TAG,libevent=$LIBEVENT_TAG,tor=$TOR_TAG $DESCRIPTOR_DIR/linux/gitian-tor.yml
+ ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit libevent=$LIBEVENT_TAG $DESCRIPTOR_DIR/linux/gitian-utils.yml
if [ $? -ne 0 ];
then
#mv var/build.log ./tor-fail-linux.log.`date +%Y%m%d%H%M%S`
exit 1
fi
-
- cp -a build/out/tor-linux*-gbuilt.zip $GITIAN_DIR/inputs/
- cp -a build/out/tor-linux*-debug.zip $GITIAN_DIR/inputs/
+
+ cd inputs
+ cp -a ../build/out/*-utils.zip .
+ ln -sf openssl-$OPENSSL_VER-linux32-utils.zip openssl-linux32-utils.zip
+ ln -sf openssl-$OPENSSL_VER-linux64-utils.zip openssl-linux64-utils.zip
+ # TODO: It is not guaranteed we have a X.X.XX-style version.
+ ln -sf libevent-${LIBEVENT_TAG_ORIG:8:6}-linux32-utils.zip libevent-linux32-utils.zip
+ ln -sf libevent-${LIBEVENT_TAG_ORIG:8:6}-linux64-utils.zip libevent-linux64-utils.zip
+ ln -sf python-$PYTHON_VER-linux32-utils.zip python-linux32-utils.zip
+ ln -sf python-$PYTHON_VER-linux64-utils.zip python-linux64-utils.zip
+ cd ..
#cp -a result/tor-linux-res.yml $GITIAN_DIR/inputs/
else
- echo
- echo "****** SKIPPING already built Tor Component of Linux Bundle (1/4 for Linux) ******"
- echo
+ echo
+ echo "****** SKIPPING already built Utilities Component of Linux Bundle (1/5 for Linux) ******"
+ echo
+ # We might have built the utilities in the past but maybe the links are
+ # pointing to the wrong version. Refresh them.
+ cd inputs
+ ln -sf openssl-$OPENSSL_VER-linux32-utils.zip openssl-linux32-utils.zip
+ ln -sf openssl-$OPENSSL_VER-linux64-utils.zip openssl-linux64-utils.zip
+ # TODO: It is not guaranteed we have a X.X.XX-style version.
+ ln -sf libevent-${LIBEVENT_TAG_ORIG:8:6}-linux32-utils.zip libevent-linux32-utils.zip
+ ln -sf libevent-${LIBEVENT_TAG_ORIG:8:6}-linux64-utils.zip libevent-linux64-utils.zip
+ ln -sf python-$PYTHON_VER-linux32-utils.zip python-linux32-utils.zip
+ ln -sf python-$PYTHON_VER-linux64-utils.zip python-linux64-utils.zip
+ cd ..
+fi
+
+if [ ! -f inputs/tor-linux32-gbuilt.zip -o \
+ ! -f inputs/tor-linux64-gbuilt.zip ];
+then
+ echo
+ echo "****** Starting Tor Component of Linux Bundle (2/5 for Linux) ******"
+ echo
+
+ ./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit tor=$TOR_TAG $DESCRIPTOR_DIR/linux/gitian-tor.yml
+ if [ $? -ne 0 ];
+ then
+ #mv var/build.log ./tor-fail-linux.log.`date +%Y%m%d%H%M%S`
+ exit 1
+ fi
+ cp -a build/out/tor-linux*-gbuilt.zip inputs/
+ cp -a build/out/tor-linux*-debug.zip inputs/
+ #cp -a result/tor-linux-res.yml $GITIAN_DIR/inputs/
+else
+ echo
+ echo "****** SKIPPING already built Tor Component of Linux Bundle (2/5 for Linux) ******"
+ echo
fi
-if [ ! -f $GITIAN_DIR/inputs/tor-browser-linux32-gbuilt.zip -o ! -f $GITIAN_DIR/inputs/tor-browser-linux64-gbuilt.zip ];
+if [ ! -f inputs/tor-browser-linux32-gbuilt.zip -o \
+ ! -f inputs/tor-browser-linux64-gbuilt.zip ];
then
- echo
- echo "****** Starting TorBrowser Component of Linux Bundle (2/4 for Linux) ******"
- echo
+ echo
+ echo "****** Starting TorBrowser Component of Linux Bundle (3/5 for Linux) ******"
+ echo
./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit tor-browser=$TORBROWSER_TAG $DESCRIPTOR_DIR/linux/gitian-firefox.yml
if [ $? -ne 0 ];
@@ -120,20 +173,21 @@ then
exit 1
fi
- cp -a build/out/tor-browser-linux*-gbuilt.zip $GITIAN_DIR/inputs/
- cp -a build/out/tor-browser-linux*-debug.zip $GITIAN_DIR/inputs/
+ cp -a build/out/tor-browser-linux*-gbuilt.zip inputs/
+ cp -a build/out/tor-browser-linux*-debug.zip inputs/
#cp -a result/torbrowser-linux-res.yml $GITIAN_DIR/inputs/
else
- echo
- echo "****** SKIPPING already built TorBrowser Component of Linux Bundle (2/4 for Linux) ******"
- echo
+ echo
+ echo "****** SKIPPING already built TorBrowser Component of Linux Bundle (3/5 for Linux) ******"
+ echo
fi
-if [ ! -f $GITIAN_DIR/inputs/pluggable-transports-linux32-gbuilt.zip -o ! -f $GITIAN_DIR/inputs/pluggable-transports-linux64-gbuilt.zip ];
+if [ ! -f inputs/pluggable-transports-linux32-gbuilt.zip -o \
+ ! -f inputs/pluggable-transports-linux64-gbuilt.zip ];
then
- echo
- echo "****** Starting Pluggable Transports Component of Linux Bundle (3/4 for Linux) ******"
- echo
+ echo
+ echo "****** Starting Pluggable Transports Component of Linux Bundle (4/5 for Linux) ******"
+ echo
./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit pyptlib=$PYPTLIB_TAG,obfsproxy=$OBFSPROXY_TAG,flashproxy=$FLASHPROXY_TAG,fteproxy=$FTEPROXY_TAG $DESCRIPTOR_DIR/linux/gitian-pluggable-transports.yml
if [ $? -ne 0 ];
@@ -141,42 +195,42 @@ then
#mv var/build.log ./pluggable-transports-fail-linux.log.`date +%Y%m%d%H%M%S`
exit 1
fi
-
- cp -a build/out/pluggable-transports-linux*-gbuilt.zip $GITIAN_DIR/inputs/
- cp -a build/out/pluggable-transports-linux*-debug.zip $GITIAN_DIR/inputs/
+
+ cp -a build/out/pluggable-transports-linux*-gbuilt.zip inputs/
+ cp -a build/out/pluggable-transports-linux*-debug.zip inputs/
#cp -a result/pluggable-transports-linux-res.yml $GITIAN_DIR/inputs/
else
- echo
- echo "****** SKIPPING already built Pluggable Transports Component of Linux Bundle (3/4 for Linux) ******"
- echo
+ echo
+ echo "****** SKIPPING already built Pluggable Transports Component of Linux Bundle (4/5 for Linux) ******"
+ echo
fi
-if [ ! -f $GITIAN_DIR/inputs/bundle-linux.gbuilt ];
-then
- echo
- echo "****** Starting Bundling+Localization of Linux Bundle (4/4 for Linux) ******"
- echo
-
+if [ ! -f inputs/bundle-linux.gbuilt ];
+then
+ echo
+ echo "****** Starting Bundling+Localization of Linux Bundle (5/5 for Linux) ******"
+ echo
+
cd $WRAPPER_DIR && ./record-inputs.sh $VERSIONS_FILE && cd $GITIAN_DIR
-
+
./bin/gbuild -j $NUM_PROCS -m $VM_MEMORY --commit https-everywhere=$HTTPSE_TAG,tor-launcher=$TORLAUNCHER_TAG,torbutton=$TORBUTTON_TAG $DESCRIPTOR_DIR/linux/gitian-bundle.yml
if [ $? -ne 0 ];
then
#mv var/build.log ./bundle-fail-linux.log.`date +%Y%m%d%H%M%S`
exit 1
fi
-
+
mkdir -p $WRAPPER_DIR/$TORBROWSER_VERSION/
cp -a build/out/tor-browser-linux*xz* $WRAPPER_DIR/$TORBROWSER_VERSION/ || exit 1
- cp -a $GITIAN_DIR/inputs/*debug.zip $WRAPPER_DIR/$TORBROWSER_VERSION/ || exit 1
- touch $GITIAN_DIR/inputs/bundle-linux.gbuilt
+ cp -a inputs/*debug.zip $WRAPPER_DIR/$TORBROWSER_VERSION/ || exit 1
+ touch inputs/bundle-linux.gbuilt
else
- echo
- echo "****** SKIPPING already built Bundling+Localization of Linux Bundle (4/4 for Linux) ******"
- echo
-fi
+ echo
+ echo "****** SKIPPING already built Bundling+Localization of Linux Bundle (5/5 for Linux) ******"
+ echo
+fi
-echo
+echo
echo "****** Linux Bundle complete ******"
echo
1
0

[tor-browser-bundle/master] Bug 11586: Add licenses to bundle Docs directory.
by mikeperry@torproject.org 24 Apr '14
by mikeperry@torproject.org 24 Apr '14
24 Apr '14
commit 595710a6c42a4587ef2a3a1cbdf4dc29c2a42886
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Thu Apr 24 18:15:32 2014 +0200
Bug 11586: Add licenses to bundle Docs directory.
---
Bundle-Data/Docs/Licenses/Firefox.txt | 373 ++++++++++
Bundle-Data/Docs/Licenses/HTTPS-Everywhere.txt | 37 +
Bundle-Data/Docs/Licenses/NoScript.txt | 340 +++++++++
.../Docs/Licenses/PluggableTransports/LICENSE | 422 +++++++++++
.../Licenses/PluggableTransports/LICENSE.PYTHON | 773 ++++++++++++++++++++
Bundle-Data/Docs/Licenses/Tor-Launcher.txt | 29 +
Bundle-Data/Docs/Licenses/Tor.txt | 141 ++++
Bundle-Data/Docs/Licenses/Torbutton.txt | 53 ++
Bundle-Data/Docs/PluggableTransports/LICENSE | 422 -----------
.../Docs/PluggableTransports/LICENSE.PYTHON | 773 --------------------
10 files changed, 2168 insertions(+), 1195 deletions(-)
diff --git a/Bundle-Data/Docs/Licenses/Firefox.txt b/Bundle-Data/Docs/Licenses/Firefox.txt
new file mode 100644
index 0000000..14e2f77
--- /dev/null
+++ b/Bundle-Data/Docs/Licenses/Firefox.txt
@@ -0,0 +1,373 @@
+Mozilla Public License Version 2.0
+==================================
+
+1. Definitions
+--------------
+
+1.1. "Contributor"
+ means each individual or legal entity that creates, contributes to
+ the creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+ means the combination of the Contributions of others (if any) used
+ by a Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+ means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+ means Source Code Form to which the initial Contributor has attached
+ the notice in Exhibit A, the Executable Form of such Source Code
+ Form, and Modifications of such Source Code Form, in each case
+ including portions thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+ means
+
+ (a) that the initial Contributor has attached the notice described
+ in Exhibit B to the Covered Software; or
+
+ (b) that the Covered Software was made available under the terms of
+ version 1.1 or earlier of the License, but not also under the
+ terms of a Secondary License.
+
+1.6. "Executable Form"
+ means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+ means a work that combines Covered Software with other material, in
+ a separate file or files, that is not Covered Software.
+
+1.8. "License"
+ means this document.
+
+1.9. "Licensable"
+ means having the right to grant, to the maximum extent possible,
+ whether at the time of the initial grant or subsequently, any and
+ all of the rights conveyed by this License.
+
+1.10. "Modifications"
+ means any of the following:
+
+ (a) any file in Source Code Form that results from an addition to,
+ deletion from, or modification of the contents of Covered
+ Software; or
+
+ (b) any new file in Source Code Form that contains any Covered
+ Software.
+
+1.11. "Patent Claims" of a Contributor
+ means any patent claim(s), including without limitation, method,
+ process, and apparatus claims, in any patent Licensable by such
+ Contributor that would be infringed, but for the grant of the
+ License, by the making, using, selling, offering for sale, having
+ made, import, or transfer of either its Contributions or its
+ Contributor Version.
+
+1.12. "Secondary License"
+ means either the GNU General Public License, Version 2.0, the GNU
+ Lesser General Public License, Version 2.1, the GNU Affero General
+ Public License, Version 3.0, or any later versions of those
+ licenses.
+
+1.13. "Source Code Form"
+ means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+ means an individual or a legal entity exercising rights under this
+ License. For legal entities, "You" includes any entity that
+ controls, is controlled by, or is under common control with You. For
+ purposes of this definition, "control" means (a) the power, direct
+ or indirect, to cause the direction or management of such entity,
+ whether by contract or otherwise, or (b) ownership of more than
+ fifty percent (50%) of the outstanding shares or beneficial
+ ownership of such entity.
+
+2. License Grants and Conditions
+--------------------------------
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license:
+
+(a) under intellectual property rights (other than patent or trademark)
+ Licensable by such Contributor to use, reproduce, make available,
+ modify, display, perform, distribute, and otherwise exploit its
+ Contributions, either on an unmodified basis, with Modifications, or
+ as part of a Larger Work; and
+
+(b) under Patent Claims of such Contributor to make, use, sell, offer
+ for sale, have made, import, and otherwise transfer either its
+ Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution
+become effective for each Contribution on the date the Contributor first
+distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under
+this License. No additional rights or licenses will be implied from the
+distribution or licensing of Covered Software under this License.
+Notwithstanding Section 2.1(b) above, no patent license is granted by a
+Contributor:
+
+(a) for any code that a Contributor has removed from Covered Software;
+ or
+
+(b) for infringements caused by: (i) Your and any other third party's
+ modifications of Covered Software, or (ii) the combination of its
+ Contributions with other software (except as part of its Contributor
+ Version); or
+
+(c) under Patent Claims infringed by Covered Software in the absence of
+ its Contributions.
+
+This License does not grant any rights in the trademarks, service marks,
+or logos of any Contributor (except as may be necessary to comply with
+the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to
+distribute the Covered Software under a subsequent version of this
+License (see Section 10.2) or under the terms of a Secondary License (if
+permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its
+Contributions are its original creation(s) or it has sufficient rights
+to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under
+applicable copyright doctrines of fair use, fair dealing, or other
+equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+in Section 2.1.
+
+3. Responsibilities
+-------------------
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any
+Modifications that You create or to which You contribute, must be under
+the terms of this License. You must inform recipients that the Source
+Code Form of the Covered Software is governed by the terms of this
+License, and how they can obtain a copy of this License. You may not
+attempt to alter or restrict the recipients' rights in the Source Code
+Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+(a) such Covered Software must also be made available in Source Code
+ Form, as described in Section 3.1, and You must inform recipients of
+ the Executable Form how they can obtain a copy of such Source Code
+ Form by reasonable means in a timely manner, at a charge no more
+ than the cost of distribution to the recipient; and
+
+(b) You may distribute such Executable Form under the terms of this
+ License, or sublicense it under different terms, provided that the
+ license for the Executable Form does not attempt to limit or alter
+ the recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice,
+provided that You also comply with the requirements of this License for
+the Covered Software. If the Larger Work is a combination of Covered
+Software with a work governed by one or more Secondary Licenses, and the
+Covered Software is not Incompatible With Secondary Licenses, this
+License permits You to additionally distribute such Covered Software
+under the terms of such Secondary License(s), so that the recipient of
+the Larger Work may, at their option, further distribute the Covered
+Software under the terms of either this License or such Secondary
+License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices
+(including copyright notices, patent notices, disclaimers of warranty,
+or limitations of liability) contained within the Source Code Form of
+the Covered Software, except that You may alter any license notices to
+the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support,
+indemnity or liability obligations to one or more recipients of Covered
+Software. However, You may do so only on Your own behalf, and not on
+behalf of any Contributor. You must make it absolutely clear that any
+such warranty, support, indemnity, or liability obligation is offered by
+You alone, and You hereby agree to indemnify every Contributor for any
+liability incurred by such Contributor as a result of warranty, support,
+indemnity or liability terms You offer. You may include additional
+disclaimers of warranty and limitations of liability specific to any
+jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+---------------------------------------------------
+
+If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Software due to
+statute, judicial order, or regulation then You must: (a) comply with
+the terms of this License to the maximum extent possible; and (b)
+describe the limitations and the code they affect. Such description must
+be placed in a text file included with all distributions of the Covered
+Software under this License. Except to the extent prohibited by statute
+or regulation, such description must be sufficiently detailed for a
+recipient of ordinary skill to be able to understand it.
+
+5. Termination
+--------------
+
+5.1. The rights granted under this License will terminate automatically
+if You fail to comply with any of its terms. However, if You become
+compliant, then the rights granted under this License from a particular
+Contributor are reinstated (a) provisionally, unless and until such
+Contributor explicitly and finally terminates Your grants, and (b) on an
+ongoing basis, if such Contributor fails to notify You of the
+non-compliance by some reasonable means prior to 60 days after You have
+come back into compliance. Moreover, Your grants from a particular
+Contributor are reinstated on an ongoing basis if such Contributor
+notifies You of the non-compliance by some reasonable means, this is the
+first time You have received notice of non-compliance with this License
+from such Contributor, and You become compliant prior to 30 days after
+Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+infringement claim (excluding declaratory judgment actions,
+counter-claims, and cross-claims) alleging that a Contributor Version
+directly or indirectly infringes any patent, then the rights granted to
+You by any and all Contributors for the Covered Software under Section
+2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+end user license agreements (excluding distributors and resellers) which
+have been validly granted by You or Your distributors under this License
+prior to termination shall survive termination.
+
+************************************************************************
+* *
+* 6. Disclaimer of Warranty *
+* ------------------------- *
+* *
+* Covered Software is provided under this License on an "as is" *
+* basis, without warranty of any kind, either expressed, implied, or *
+* statutory, including, without limitation, warranties that the *
+* Covered Software is free of defects, merchantable, fit for a *
+* particular purpose or non-infringing. The entire risk as to the *
+* quality and performance of the Covered Software is with You. *
+* Should any Covered Software prove defective in any respect, You *
+* (not any Contributor) assume the cost of any necessary servicing, *
+* repair, or correction. This disclaimer of warranty constitutes an *
+* essential part of this License. No use of any Covered Software is *
+* authorized under this License except under this disclaimer. *
+* *
+************************************************************************
+
+************************************************************************
+* *
+* 7. Limitation of Liability *
+* -------------------------- *
+* *
+* Under no circumstances and under no legal theory, whether tort *
+* (including negligence), contract, or otherwise, shall any *
+* Contributor, or anyone who distributes Covered Software as *
+* permitted above, be liable to You for any direct, indirect, *
+* special, incidental, or consequential damages of any character *
+* including, without limitation, damages for lost profits, loss of *
+* goodwill, work stoppage, computer failure or malfunction, or any *
+* and all other commercial damages or losses, even if such party *
+* shall have been informed of the possibility of such damages. This *
+* limitation of liability shall not apply to liability for death or *
+* personal injury resulting from such party's negligence to the *
+* extent applicable law prohibits such limitation. Some *
+* jurisdictions do not allow the exclusion or limitation of *
+* incidental or consequential damages, so this exclusion and *
+* limitation may not apply to You. *
+* *
+************************************************************************
+
+8. Litigation
+-------------
+
+Any litigation relating to this License may be brought only in the
+courts of a jurisdiction where the defendant maintains its principal
+place of business and such litigation shall be governed by laws of that
+jurisdiction, without reference to its conflict-of-law provisions.
+Nothing in this Section shall prevent a party's ability to bring
+cross-claims or counter-claims.
+
+9. Miscellaneous
+----------------
+
+This License represents the complete agreement concerning the subject
+matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent
+necessary to make it enforceable. Any law or regulation which provides
+that the language of a contract shall be construed against the drafter
+shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+---------------------------
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section
+10.3, no one other than the license steward has the right to modify or
+publish new versions of this License. Each version will be given a
+distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version
+of the License under which You originally received the Covered Software,
+or under the terms of any subsequent version published by the license
+steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to
+create a new license for such software, you may create and use a
+modified version of this License if you rename the license and remove
+any references to the name of the license steward (except to note that
+such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With
+Secondary Licenses under the terms of this version of the License, the
+notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+-------------------------------------------
+
+ This Source Code Form is subject to the terms of the Mozilla Public
+ License, v. 2.0. If a copy of the MPL was not distributed with this
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to look
+for such a notice.
+
+You may add additional accurate notices of copyright ownership.
+
+Exhibit B - "Incompatible With Secondary Licenses" Notice
+---------------------------------------------------------
+
+ This Source Code Form is "Incompatible With Secondary Licenses", as
+ defined by the Mozilla Public License, v. 2.0.
diff --git a/Bundle-Data/Docs/Licenses/HTTPS-Everywhere.txt b/Bundle-Data/Docs/Licenses/HTTPS-Everywhere.txt
new file mode 100644
index 0000000..3c25909
--- /dev/null
+++ b/Bundle-Data/Docs/Licenses/HTTPS-Everywhere.txt
@@ -0,0 +1,37 @@
+HTTPS Everwyhere:
+Copyright © 2010-2012 Mike Perry <mikeperry(a)fscked.org>
+ Peter Eckersley <pde(a)eff.org>
+ and many others
+ (Licensed GPL v2+)
+
+Incorporating code from NoScript,
+Copyright © 2004-2007 Giorgio Maone <g.maone(a)informaction.com>
+Licensed GPL v2+
+
+Incorporating code from Convergence
+Copyright © Moxie Marlinspike
+Licensed GPL v3+
+
+Incorporating code from URI.js
+Copyright © Rodney Rehm
+Licensed MIT, GPL V3
+
+Incorporating code from js-lru
+Copyright © 2010 Rasmus Andersson
+Licensed MIT
+
+The build system incorporates code from Python 2.6,
+Copyright © 2001-2006 Python Software Foundation
+Python Software Foundation License Version 2
+
+Net License: GPL v3+ (complete tree)
+ GPL v2+ (if Moxie's NSS.js is absent)
+
+
+Text of MIT License:
+====================
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/Bundle-Data/Docs/Licenses/NoScript.txt b/Bundle-Data/Docs/Licenses/NoScript.txt
new file mode 100644
index 0000000..45645b4
--- /dev/null
+++ b/Bundle-Data/Docs/Licenses/NoScript.txt
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/Bundle-Data/Docs/Licenses/PluggableTransports/LICENSE b/Bundle-Data/Docs/Licenses/PluggableTransports/LICENSE
new file mode 100644
index 0000000..8b175c2
--- /dev/null
+++ b/Bundle-Data/Docs/Licenses/PluggableTransports/LICENSE
@@ -0,0 +1,422 @@
+This file contains the copyrights and licenses of third-party
+dependencies of pluggable transports that are distributed in the
+pluggable transports bundle.
+
+===============================================================================
+
+Python
+
+Some pluggable transports are written in Python and the binary packages
+include a Python interpreter. A copy of the Python license (which itself
+includes the licenses of some of Python's components) is included in the
+file LICENSE.PYTHON.
+
+===============================================================================
+
+OpenSSL
+
+(From http://openssl.org/source/license.html.)
+
+ LICENSE ISSUES
+ ==============
+
+ The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
+ the OpenSSL License and the original SSLeay license apply to the toolkit.
+ See below for the actual license texts. Actually both licenses are BSD-style
+ Open Source licenses. In case of any license issues related to OpenSSL
+ please contact openssl-core(a)openssl.org.
+
+ OpenSSL License
+ ---------------
+
+/* ====================================================================
+ * Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ * software must display the following acknowledgment:
+ * "This product includes software developed by the OpenSSL Project
+ * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+ *
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For written permission, please contact
+ * openssl-core(a)openssl.org.
+ *
+ * 5. Products derived from this software may not be called "OpenSSL"
+ * nor may "OpenSSL" appear in their names without prior written
+ * permission of the OpenSSL Project.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by the OpenSSL Project
+ * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This product includes cryptographic software written by Eric Young
+ * (eay(a)cryptsoft.com) This product includes software written by Tim
+ * Hudson (tjh(a)cryptsoft.com)
+ *
+ */
+
+ Original SSLeay License
+ -----------------------
+
+/* Copyright (C) 1995-1998 Eric Young (eay(a)cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay(a)cryptsoft.com)
+ * The implementation was written so as to conform with Netscapes SSL.
+ *
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to. The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code. The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh(a)cryptsoft.com)
+ *
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * "This product includes cryptographic software written by
+ * Eric Young (eay(a)cryptsoft.com)"
+ * The word 'cryptographic' can be left out if the rouines from the library
+ * being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from
+ * the apps directory (application code) you must include an acknowledgement:
+ * "This product includes software written by Tim Hudson (tjh(a)cryptsoft.com)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed. i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
+===============================================================================
+
+M2Crypto
+
+Copyright (c) 1999-2004 Ng Pheng Siong. All rights reserved.
+
+Portions copyright (c) 2004-2006 Open Source Applications Foundation.
+All rights reserved.
+
+Portions copyright (c) 2005-2006 Vrije Universiteit Amsterdam.
+All rights reserved.
+
+Copyright (c) 2008-2010 Heikki Toivonen. All rights reserved.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation.
+
+THE AUTHOR PROVIDES THIS SOFTWARE ``AS IS'' AND ANY EXPRESSED OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+===============================================================================
+
+py2exe
+
+Windows binary packages are built using py2exe.
+
+Copyright (c) 2000-2008 Thomas Heller, Mark Hammond, Jimmy Retzlaff
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+===============================================================================
+
+pyptlib
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+
+ * Neither the names of the copyright owners nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+===============================================================================
+
+PyCrypto
+
+To the best of our knowledge, with the exceptions noted below or
+within the files themselves, the files that constitute PyCrypto are in
+the public domain. Most are distributed with the following notice:
+
+ The contents of this file are dedicated to the public domain. To
+ the extent that dedication to the public domain is not available,
+ everyone is granted a worldwide, perpetual, royalty-free,
+ non-exclusive license to exercise all rights associated with the
+ contents of this file for any purpose whatsoever.
+ No rights are reserved.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+
+Exceptions:
+
+ - Portions of HMAC.py and setup.py are derived from Python 2.2, and
+ are therefore Copyright (c) 2001, 2002, 2003 Python Software
+ Foundation (All Rights Reserved). They are licensed by the PSF
+ under the terms of the Python 2.2 license. (See the file
+ LEGAL/copy/LICENSE.python-2.2 for details.)
+
+ - The various GNU autotools (autoconf, automake, aclocal, etc.) are
+ used during the build process. This includes macros from
+ autoconf-archive, which are located in the m4/ directory. As is
+ customary, some files from the GNU autotools are included in the
+ source tree (in the root directory, and in the build-aux/
+ directory). These files are merely part of the build process, and
+ are not included in binary builds of the software.
+
+EXPORT RESTRICTIONS:
+
+Note that the export or re-export of cryptographic software and/or
+source code may be subject to regulation in your jurisdiction.
+
+===============================================================================
+
+Twisted
+
+Copyright (c) 2001-2013
+Allen Short
+Andy Gayton
+Andrew Bennetts
+Antoine Pitrou
+Apple Computer, Inc.
+Benjamin Bruheim
+Bob Ippolito
+Canonical Limited
+Christopher Armstrong
+David Reid
+Donovan Preston
+Eric Mangold
+Eyal Lotem
+Itamar Turner-Trauring
+James Knight
+Jason A. Mobarak
+Jean-Paul Calderone
+Jessica McKellar
+Jonathan Jacobs
+Jonathan Lange
+Jonathan D. Simms
+Jürgen Hermann
+Kevin Horn
+Kevin Turner
+Mary Gardiner
+Matthew Lefkowitz
+Massachusetts Institute of Technology
+Moshe Zadka
+Paul Swartz
+Pavel Pergamenshchik
+Ralph Meijer
+Sean Riley
+Software Freedom Conservancy
+Travis B. Hartwell
+Thijs Triemstra
+Thomas Herve
+Timothy Allen
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+===============================================================================
+
+zope.interface
+
+# Copyright (c) 2006 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+
+Zope Public License (ZPL) Version 2.1
+-------------------------------------
+
+A copyright notice accompanies this license document that
+identifies the copyright holders.
+
+This license has been certified as open source. It has also
+been designated as GPL compatible by the Free Software
+Foundation (FSF).
+
+Redistribution and use in source and binary forms, with or
+without modification, are permitted provided that the
+following conditions are met:
+
+1. Redistributions in source code must retain the
+ accompanying copyright notice, this list of conditions,
+ and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the accompanying
+ copyright notice, this list of conditions, and the
+ following disclaimer in the documentation and/or other
+ materials provided with the distribution.
+
+3. Names of the copyright holders must not be used to
+ endorse or promote products derived from this software
+ without prior written permission from the copyright
+ holders.
+
+4. The right to distribute this software or to use it for
+ any purpose does not give you the right to use
+ Servicemarks (sm) or Trademarks (tm) of the copyright
+ holders. Use of them is covered by separate agreement
+ with the copyright holders.
+
+5. If any files are modified, you must cause the modified
+ files to carry prominent notices stating that you changed
+ the files and the date of any change.
+
+Disclaimer
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS''
+ AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
+ NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ NO EVENT SHALL THE COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+
+===============================================================================
+
+argparse
+
+argparse is (c) 2006-2009 Steven J. Bethard <steven.bethard(a)gmail.com>.
+
+The argparse module was contributed to Python as of Python 2.7 and thus
+was licensed under the Python license. Same license applies to all files in
+the argparse package project.
+
+For details about the Python License, please see LICENSE.PYTHON.
diff --git a/Bundle-Data/Docs/Licenses/PluggableTransports/LICENSE.PYTHON b/Bundle-Data/Docs/Licenses/PluggableTransports/LICENSE.PYTHON
new file mode 100644
index 0000000..d4dbdeb
--- /dev/null
+++ b/Bundle-Data/Docs/Licenses/PluggableTransports/LICENSE.PYTHON
@@ -0,0 +1,773 @@
+A. HISTORY OF THE SOFTWARE
+==========================
+
+Python was created in the early 1990s by Guido van Rossum at Stichting
+Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands
+as a successor of a language called ABC. Guido remains Python's
+principal author, although it includes many contributions from others.
+
+In 1995, Guido continued his work on Python at the Corporation for
+National Research Initiatives (CNRI, see http://www.cnri.reston.va.us)
+in Reston, Virginia where he released several versions of the
+software.
+
+In May 2000, Guido and the Python core development team moved to
+BeOpen.com to form the BeOpen PythonLabs team. In October of the same
+year, the PythonLabs team moved to Digital Creations (now Zope
+Corporation, see http://www.zope.com) In 2001, the Python Software
+Foundation (PSF, see http://www.python.org/psf/) was formed, a
+non-profit organization created specifically to own Python-related
+Intellectual Property. Zope Corporation is a sponsoring member of
+the PSF.
+
+All Python releases are Open Source (see http://www.opensource.org for
+the Open Source Definition). Historically, most, but not all, Python
+releases have also been GPL-compatible; the table below summarizes
+the various releases.
+
+ Release Derived Year Owner GPL-
+ from compatible? (1)
+
+ 0.9.0 thru 1.2 1991-1995 CWI yes
+ 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes
+ 1.6 1.5.2 2000 CNRI no
+ 2.0 1.6 2000 BeOpen.com no
+ 1.6.1 1.6 2001 CNRI yes (2)
+ 2.1 2.0+1.6.1 2001 PSF no
+ 2.0.1 2.0+1.6.1 2001 PSF yes
+ 2.1.1 2.1+2.0.1 2001 PSF yes
+ 2.2 2.1.1 2001 PSF yes
+ 2.1.2 2.1.1 2002 PSF yes
+ 2.1.3 2.1.2 2002 PSF yes
+ 2.2.1 2.2 2002 PSF yes
+ 2.2.2 2.2.1 2002 PSF yes
+ 2.2.3 2.2.2 2003 PSF yes
+ 2.3 2.2.2 2002-2003 PSF yes
+ 2.3.1 2.3 2002-2003 PSF yes
+ 2.3.2 2.3.1 2002-2003 PSF yes
+ 2.3.3 2.3.2 2002-2003 PSF yes
+ 2.3.4 2.3.3 2004 PSF yes
+ 2.3.5 2.3.4 2005 PSF yes
+ 2.4 2.3 2004 PSF yes
+ 2.4.1 2.4 2005 PSF yes
+ 2.4.2 2.4.1 2005 PSF yes
+ 2.4.3 2.4.2 2006 PSF yes
+ 2.4.4 2.4.3 2006 PSF yes
+ 2.5 2.4 2006 PSF yes
+ 2.5.1 2.5 2007 PSF yes
+ 2.5.2 2.5.1 2008 PSF yes
+ 2.5.3 2.5.2 2008 PSF yes
+ 2.6 2.5 2008 PSF yes
+ 2.6.1 2.6 2008 PSF yes
+ 2.6.2 2.6.1 2009 PSF yes
+ 2.6.3 2.6.2 2009 PSF yes
+ 2.6.4 2.6.3 2009 PSF yes
+ 2.6.5 2.6.4 2010 PSF yes
+ 2.7 2.6 2010 PSF yes
+
+Footnotes:
+
+(1) GPL-compatible doesn't mean that we're distributing Python under
+ the GPL. All Python licenses, unlike the GPL, let you distribute
+ a modified version without making your changes open source. The
+ GPL-compatible licenses make it possible to combine Python with
+ other software that is released under the GPL; the others don't.
+
+(2) According to Richard Stallman, 1.6.1 is not GPL-compatible,
+ because its license has a choice of law clause. According to
+ CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1
+ is "not incompatible" with the GPL.
+
+Thanks to the many outside volunteers who have worked under Guido's
+direction to make these releases possible.
+
+
+B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
+===============================================================
+
+PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
+--------------------------------------------
+
+1. This LICENSE AGREEMENT is between the Python Software Foundation
+("PSF"), and the Individual or Organization ("Licensee") accessing and
+otherwise using this software ("Python") in source or binary form and
+its associated documentation.
+
+2. Subject to the terms and conditions of this License Agreement, PSF hereby
+grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
+analyze, test, perform and/or display publicly, prepare derivative works,
+distribute, and otherwise use Python alone or in any derivative version,
+provided, however, that PSF's License Agreement and PSF's notice of copyright,
+i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+2011, 2012 Python Software Foundation; All Rights Reserved" are retained in Python
+alone or in any derivative version prepared by Licensee.
+
+3. In the event Licensee prepares a derivative work that is based on
+or incorporates Python or any part thereof, and wants to make
+the derivative work available to others as provided herein, then
+Licensee hereby agrees to include in any such work a brief summary of
+the changes made to Python.
+
+4. PSF is making Python available to Licensee on an "AS IS"
+basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
+FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
+OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+7. Nothing in this License Agreement shall be deemed to create any
+relationship of agency, partnership, or joint venture between PSF and
+Licensee. This License Agreement does not grant permission to use PSF
+trademarks or trade name in a trademark sense to endorse or promote
+products or services of Licensee, or any third party.
+
+8. By copying, installing or otherwise using Python, Licensee
+agrees to be bound by the terms and conditions of this License
+Agreement.
+
+
+BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
+-------------------------------------------
+
+BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1
+
+1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
+office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
+Individual or Organization ("Licensee") accessing and otherwise using
+this software in source or binary form and its associated
+documentation ("the Software").
+
+2. Subject to the terms and conditions of this BeOpen Python License
+Agreement, BeOpen hereby grants Licensee a non-exclusive,
+royalty-free, world-wide license to reproduce, analyze, test, perform
+and/or display publicly, prepare derivative works, distribute, and
+otherwise use the Software alone or in any derivative version,
+provided, however, that the BeOpen Python License is retained in the
+Software, alone or in any derivative version prepared by Licensee.
+
+3. BeOpen is making the Software available to Licensee on an "AS IS"
+basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
+SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
+AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
+DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+5. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+6. This License Agreement shall be governed by and interpreted in all
+respects by the law of the State of California, excluding conflict of
+law provisions. Nothing in this License Agreement shall be deemed to
+create any relationship of agency, partnership, or joint venture
+between BeOpen and Licensee. This License Agreement does not grant
+permission to use BeOpen trademarks or trade names in a trademark
+sense to endorse or promote products or services of Licensee, or any
+third party. As an exception, the "BeOpen Python" logos available at
+http://www.pythonlabs.com/logos.html may be used according to the
+permissions granted on that web page.
+
+7. By copying, installing or otherwise using the software, Licensee
+agrees to be bound by the terms and conditions of this License
+Agreement.
+
+
+CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
+---------------------------------------
+
+1. This LICENSE AGREEMENT is between the Corporation for National
+Research Initiatives, having an office at 1895 Preston White Drive,
+Reston, VA 20191 ("CNRI"), and the Individual or Organization
+("Licensee") accessing and otherwise using Python 1.6.1 software in
+source or binary form and its associated documentation.
+
+2. Subject to the terms and conditions of this License Agreement, CNRI
+hereby grants Licensee a nonexclusive, royalty-free, world-wide
+license to reproduce, analyze, test, perform and/or display publicly,
+prepare derivative works, distribute, and otherwise use Python 1.6.1
+alone or in any derivative version, provided, however, that CNRI's
+License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
+1995-2001 Corporation for National Research Initiatives; All Rights
+Reserved" are retained in Python 1.6.1 alone or in any derivative
+version prepared by Licensee. Alternately, in lieu of CNRI's License
+Agreement, Licensee may substitute the following text (omitting the
+quotes): "Python 1.6.1 is made available subject to the terms and
+conditions in CNRI's License Agreement. This Agreement together with
+Python 1.6.1 may be located on the Internet using the following
+unique, persistent identifier (known as a handle): 1895.22/1013. This
+Agreement may also be obtained from a proxy server on the Internet
+using the following URL: http://hdl.handle.net/1895.22/1013".
+
+3. In the event Licensee prepares a derivative work that is based on
+or incorporates Python 1.6.1 or any part thereof, and wants to make
+the derivative work available to others as provided herein, then
+Licensee hereby agrees to include in any such work a brief summary of
+the changes made to Python 1.6.1.
+
+4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
+basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
+1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
+OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+7. This License Agreement shall be governed by the federal
+intellectual property law of the United States, including without
+limitation the federal copyright law, and, to the extent such
+U.S. federal law does not apply, by the law of the Commonwealth of
+Virginia, excluding Virginia's conflict of law provisions.
+Notwithstanding the foregoing, with regard to derivative works based
+on Python 1.6.1 that incorporate non-separable material that was
+previously distributed under the GNU General Public License (GPL), the
+law of the Commonwealth of Virginia shall govern this License
+Agreement only as to issues arising under or with respect to
+Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this
+License Agreement shall be deemed to create any relationship of
+agency, partnership, or joint venture between CNRI and Licensee. This
+License Agreement does not grant permission to use CNRI trademarks or
+trade name in a trademark sense to endorse or promote products or
+services of Licensee, or any third party.
+
+8. By clicking on the "ACCEPT" button where indicated, or by copying,
+installing or otherwise using Python 1.6.1, Licensee agrees to be
+bound by the terms and conditions of this License Agreement.
+
+ ACCEPT
+
+
+CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
+--------------------------------------------------
+
+Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
+The Netherlands. All rights reserved.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Stichting Mathematisch
+Centrum or CWI not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior
+permission.
+
+STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+Additional Conditions for this Windows binary build
+---------------------------------------------------
+
+This program is linked with and uses Microsoft Distributable Code,
+copyrighted by Microsoft Corporation. The Microsoft Distributable Code
+includes the following files:
+
+msvcr90.dll
+msvcp90.dll
+msvcm90.dll
+
+If you further distribute programs that include the Microsoft
+Distributable Code, you must comply with the restrictions on
+distribution specified by Microsoft. In particular, you must require
+distributors and external end users to agree to terms that protect the
+Microsoft Distributable Code at least as much as Microsoft's own
+requirements for the Distributable Code. See Microsoft's documentation
+(included in its developer tools and on its website at microsoft.com)
+for specific details.
+
+Redistribution of the Windows binary build of the Python interpreter
+complies with this agreement, provided that you do not:
+
+- alter any copyright, trademark or patent notice in Microsoft's
+Distributable Code;
+
+- use Microsoft's trademarks in your programs' names or in a way that
+suggests your programs come from or are endorsed by Microsoft;
+
+- distribute Microsoft's Distributable Code to run on a platform other
+than Microsoft operating systems, run-time technologies or application
+platforms; or
+
+- include Microsoft Distributable Code in malicious, deceptive or
+unlawful programs.
+
+These restrictions apply only to the Microsoft Distributable Code as
+defined above, not to Python itself or any programs running on the
+Python interpreter. The redistribution of the Python interpreter and
+libraries is governed by the Python Software License included with this
+file, or by other licenses as marked.
+
+
+This copy of Python includes a copy of bzip2, which is licensed under the following terms:
+
+
+--------------------------------------------------------------------------
+
+This program, "bzip2", the associated library "libbzip2", and all
+documentation, are copyright (C) 1996-2007 Julian R Seward. All
+rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. The origin of this software must not be misrepresented; you must
+ not claim that you wrote the original software. If you use this
+ software in a product, an acknowledgment in the product
+ documentation would be appreciated but is not required.
+
+3. Altered source versions must be plainly marked as such, and must
+ not be misrepresented as being the original software.
+
+4. The name of the author may not be used to endorse or promote
+ products derived from this software without specific prior written
+ permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Julian Seward, jseward(a)bzip.org
+bzip2/libbzip2 version 1.0.5 of 10 December 2007
+
+--------------------------------------------------------------------------
+
+This copy of Python includes a copy of Berkeley DB, which is licensed under the following terms:
+
+/*-
+ * $Id: LICENSE,v 12.9 2008/02/07 17:12:17 mark Exp $
+ */
+
+The following is the license that applies to this copy of the Berkeley DB
+software. For a license to use the Berkeley DB software under conditions
+other than those described here, or to purchase support for this software,
+please contact Oracle at berkeleydb-info_us(a)oracle.com.
+
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+/*
+ * Copyright (c) 1990,2008 Oracle. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Redistributions in any form must be accompanied by information on
+ * how to obtain complete source code for the DB software and any
+ * accompanying software that uses the DB software. The source code
+ * must either be included in the distribution or be available for no
+ * more than the cost of distribution plus a nominal fee, and must be
+ * freely redistributable under reasonable conditions. For an
+ * executable file, complete source code means the source code for all
+ * modules it contains. It does not include source code for modules or
+ * files that typically accompany the major components of the operating
+ * system on which the executable file runs.
+ *
+ * THIS SOFTWARE IS PROVIDED BY ORACLE ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+ * NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT SHALL ORACLE BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * Copyright (c) 1990, 1993, 1994, 1995
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+/*
+ * Copyright (c) 1995, 1996
+ * The President and Fellows of Harvard University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY HARVARD AND ITS CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL HARVARD OR ITS CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+/***
+ * ASM: a very small and fast Java bytecode manipulation framework
+ * Copyright (c) 2000-2005 INRIA, France Telecom
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holders nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+This copy of Python includes a copy of openssl, which is licensed under the following terms:
+
+
+ LICENSE ISSUES
+ ==============
+
+ The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
+ the OpenSSL License and the original SSLeay license apply to the toolkit.
+ See below for the actual license texts. Actually both licenses are BSD-style
+ Open Source licenses. In case of any license issues related to OpenSSL
+ please contact openssl-core(a)openssl.org.
+
+ OpenSSL License
+ ---------------
+
+/* ====================================================================
+ * Copyright (c) 1998-2008 The OpenSSL Project. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ * software must display the following acknowledgment:
+ * "This product includes software developed by the OpenSSL Project
+ * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+ *
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For written permission, please contact
+ * openssl-core(a)openssl.org.
+ *
+ * 5. Products derived from this software may not be called "OpenSSL"
+ * nor may "OpenSSL" appear in their names without prior written
+ * permission of the OpenSSL Project.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by the OpenSSL Project
+ * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This product includes cryptographic software written by Eric Young
+ * (eay(a)cryptsoft.com) This product includes software written by Tim
+ * Hudson (tjh(a)cryptsoft.com)
+ *
+ */
+
+ Original SSLeay License
+ -----------------------
+
+/* Copyright (C) 1995-1998 Eric Young (eay(a)cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay(a)cryptsoft.com)
+ * The implementation was written so as to conform with Netscapes SSL.
+ *
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to. The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code. The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh(a)cryptsoft.com)
+ *
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * "This product includes cryptographic software written by
+ * Eric Young (eay(a)cryptsoft.com)"
+ * The word 'cryptographic' can be left out if the rouines from the library
+ * being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from
+ * the apps directory (application code) you must include an acknowledgement:
+ * "This product includes software written by Tim Hudson (tjh(a)cryptsoft.com)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed. i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
+
+This copy of Python includes a copy of Tcl, which is licensed under the following terms:
+
+This software is copyrighted by the Regents of the University of
+California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState
+Corporation and other parties. The following terms apply to all files
+associated with the software unless explicitly disclaimed in
+individual files.
+
+The authors hereby grant permission to use, copy, modify, distribute,
+and license this software and its documentation for any purpose, provided
+that existing copyright notices are retained in all copies and that this
+notice is included verbatim in any distributions. No written agreement,
+license, or royalty fee is required for any of the authorized uses.
+Modifications to this software may be copyrighted by their authors
+and need not follow the licensing terms described here, provided that
+the new terms are clearly indicated on the first page of each file where
+they apply.
+
+IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
+FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
+DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE
+IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
+NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
+MODIFICATIONS.
+
+GOVERNMENT USE: If you are acquiring this software on behalf of the
+U.S. government, the Government shall have only "Restricted Rights"
+in the software and related documentation as defined in the Federal
+Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you
+are acquiring the software on behalf of the Department of Defense, the
+software shall be classified as "Commercial Computer Software" and the
+Government shall have only "Restricted Rights" as defined in Clause
+252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the
+authors grant the U.S. Government and others acting in its behalf
+permission to use and distribute the software in accordance with the
+terms specified in this license.
+
+This copy of Python includes a copy of Tk, which is licensed under the following terms:
+
+This software is copyrighted by the Regents of the University of
+California, Sun Microsystems, Inc., and other parties. The following
+terms apply to all files associated with the software unless explicitly
+disclaimed in individual files.
+
+The authors hereby grant permission to use, copy, modify, distribute,
+and license this software and its documentation for any purpose, provided
+that existing copyright notices are retained in all copies and that this
+notice is included verbatim in any distributions. No written agreement,
+license, or royalty fee is required for any of the authorized uses.
+Modifications to this software may be copyrighted by their authors
+and need not follow the licensing terms described here, provided that
+the new terms are clearly indicated on the first page of each file where
+they apply.
+
+IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
+FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
+DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE
+IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
+NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
+MODIFICATIONS.
+
+GOVERNMENT USE: If you are acquiring this software on behalf of the
+U.S. government, the Government shall have only "Restricted Rights"
+in the software and related documentation as defined in the Federal
+Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you
+are acquiring the software on behalf of the Department of Defense, the
+software shall be classified as "Commercial Computer Software" and the
+Government shall have only "Restricted Rights" as defined in Clause
+252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the
+authors grant the U.S. Government and others acting in its behalf
+permission to use and distribute the software in accordance with the
+terms specified in this license.
+
+This copy of Python includes a copy of Tix, which is licensed under the following terms:
+
+Copyright (c) 1993-1999 Ioi Kim Lam.
+Copyright (c) 2000-2001 Tix Project Group.
+Copyright (c) 2004 ActiveState
+
+This software is copyrighted by the above entities
+and other parties. The following terms apply to all files associated
+with the software unless explicitly disclaimed in individual files.
+
+The authors hereby grant permission to use, copy, modify, distribute,
+and license this software and its documentation for any purpose, provided
+that existing copyright notices are retained in all copies and that this
+notice is included verbatim in any distributions. No written agreement,
+license, or royalty fee is required for any of the authorized uses.
+Modifications to this software may be copyrighted by their authors
+and need not follow the licensing terms described here, provided that
+the new terms are clearly indicated on the first page of each file where
+they apply.
+
+IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
+FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
+DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE
+IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
+NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
+MODIFICATIONS.
+
+GOVERNMENT USE: If you are acquiring this software on behalf of the
+U.S. government, the Government shall have only "Restricted Rights"
+in the software and related documentation as defined in the Federal
+Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you
+are acquiring the software on behalf of the Department of Defense, the
+software shall be classified as "Commercial Computer Software" and the
+Government shall have only "Restricted Rights" as defined in Clause
+252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the
+authors grant the U.S. Government and others acting in its behalf
+permission to use and distribute the software in accordance with the
+terms specified in this license.
+
+----------------------------------------------------------------------
+
+Parts of this software are based on the Tcl/Tk software copyrighted by
+the Regents of the University of California, Sun Microsystems, Inc.,
+and other parties. The original license terms of the Tcl/Tk software
+distribution is included in the file docs/license.tcltk.
+
+Parts of this software are based on the HTML Library software
+copyrighted by Sun Microsystems, Inc. The original license terms of
+the HTML Library software distribution is included in the file
+docs/license.html_lib.
diff --git a/Bundle-Data/Docs/Licenses/Tor-Launcher.txt b/Bundle-Data/Docs/Licenses/Tor-Launcher.txt
new file mode 100644
index 0000000..6479400
--- /dev/null
+++ b/Bundle-Data/Docs/Licenses/Tor-Launcher.txt
@@ -0,0 +1,29 @@
+Copyright (c) 2013, The Tor Project, Inc.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+
+ * Neither the names of the copyright owners nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Bundle-Data/Docs/Licenses/Tor.txt b/Bundle-Data/Docs/Licenses/Tor.txt
new file mode 100644
index 0000000..4ed3bd8
--- /dev/null
+++ b/Bundle-Data/Docs/Licenses/Tor.txt
@@ -0,0 +1,141 @@
+ This file contains the license for Tor,
+ a free software project to provide anonymity on the Internet.
+
+ It also lists the licenses for other components used by Tor.
+
+ For more information about Tor, see https://www.torproject.org/.
+
+ If you got this file as a part of a larger bundle,
+ there may be other license terms that you should be aware of.
+
+===============================================================================
+Tor is distributed under this license:
+
+Copyright (c) 2001-2004, Roger Dingledine
+Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson
+Copyright (c) 2007-2013, The Tor Project, Inc.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+
+ * Neither the names of the copyright owners nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+===============================================================================
+src/ext/strlcat.c and src/ext/strlcpy.c by Todd C. Miller are licensed
+under the following license:
+
+ * Copyright (c) 1998 Todd C. Miller <Todd.Miller(a)courtesan.com>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+ * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+===============================================================================
+src/ext/tor_queue.h is licensed under the following license:
+
+ * Copyright (c) 1991, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+
+===============================================================================
+src/config/geoip is licensed under the following license:
+
+OPEN DATA LICENSE (GeoLite Country and GeoLite City databases)
+
+Copyright (c) 2008 MaxMind, Inc. All Rights Reserved.
+
+All advertising materials and documentation mentioning features or use of
+this database must display the following acknowledgment:
+"This product includes GeoLite data created by MaxMind, available from
+http://maxmind.com/"
+
+Redistribution and use with or without modification, are permitted provided
+that the following conditions are met:
+1. Redistributions must retain the above copyright notice, this list of
+conditions and the following disclaimer in the documentation and/or other
+materials provided with the distribution.
+2. All advertising materials and documentation mentioning features or use of
+this database must display the following acknowledgement:
+"This product includes GeoLite data created by MaxMind, available from
+http://maxmind.com/"
+3. "MaxMind" may not be used to endorse or promote products derived from this
+database without specific prior written permission.
+
+THIS DATABASE IS PROVIDED BY MAXMIND, INC ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL MAXMIND BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+DATABASE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+===============================================================================
+If you got Tor as a static binary with OpenSSL included, then you should know:
+ "This product includes software developed by the OpenSSL Project
+ for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+===============================================================================
diff --git a/Bundle-Data/Docs/Licenses/Torbutton.txt b/Bundle-Data/Docs/Licenses/Torbutton.txt
new file mode 100644
index 0000000..c6bc692
--- /dev/null
+++ b/Bundle-Data/Docs/Licenses/Torbutton.txt
@@ -0,0 +1,53 @@
+Copyright (c) 2006 Scott Squires, Oleg Ivanov
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+--------------------------------------------------------------------------------
+
+Date: Fri, 3 Mar 2006 03:16:21 +0200
+From: Oleg Ivanov
+To: Scott Squires
+Subject: Re: ProxyButton licensing question
+
+Hello Scott,
+
+I'm glad to support your project so you can use the Proxybutton in any way you
+need under any open source license as it's stated in mozdev's copyright policy.
+I'll just ask you to put in the Tor or it's source code any credits with
+references to me and the original Proxybutton. Feel free to ask if you have
+any questions regarding the extension - I'll be glad to help you.
+
+On Thursday 02 March 2006 05:01, you wrote:
+> Hello,
+>
+> I am a volunteer for the Tor project, which is a network proxy with strong
+> anonymnity. We would like to make it easier for users to install and
+> configure the software, and would like a firefox button to enable/disable
+> Tor. Your extension is very close to what we need, our version would just
+> set the proxy for the user instead of the user needing to enter the
+> information. So I was wondering what license your software is released under
+> and whether we can use it as a base for this extension.
+>
+> Thanks!
+> --Scott
+
+--
+Oleg Ivanov
+mailto: saruman(a)unigsm.com
+ICQ #69991809
diff --git a/Bundle-Data/Docs/PluggableTransports/LICENSE b/Bundle-Data/Docs/PluggableTransports/LICENSE
deleted file mode 100644
index 8b175c2..0000000
--- a/Bundle-Data/Docs/PluggableTransports/LICENSE
+++ /dev/null
@@ -1,422 +0,0 @@
-This file contains the copyrights and licenses of third-party
-dependencies of pluggable transports that are distributed in the
-pluggable transports bundle.
-
-===============================================================================
-
-Python
-
-Some pluggable transports are written in Python and the binary packages
-include a Python interpreter. A copy of the Python license (which itself
-includes the licenses of some of Python's components) is included in the
-file LICENSE.PYTHON.
-
-===============================================================================
-
-OpenSSL
-
-(From http://openssl.org/source/license.html.)
-
- LICENSE ISSUES
- ==============
-
- The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
- the OpenSSL License and the original SSLeay license apply to the toolkit.
- See below for the actual license texts. Actually both licenses are BSD-style
- Open Source licenses. In case of any license issues related to OpenSSL
- please contact openssl-core(a)openssl.org.
-
- OpenSSL License
- ---------------
-
-/* ====================================================================
- * Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- * software must display the following acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- * endorse or promote products derived from this software without
- * prior written permission. For written permission, please contact
- * openssl-core(a)openssl.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- * nor may "OpenSSL" appear in their names without prior written
- * permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- * acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay(a)cryptsoft.com) This product includes software written by Tim
- * Hudson (tjh(a)cryptsoft.com)
- *
- */
-
- Original SSLeay License
- -----------------------
-
-/* Copyright (C) 1995-1998 Eric Young (eay(a)cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay(a)cryptsoft.com)
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to. The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh(a)cryptsoft.com)
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * "This product includes cryptographic software written by
- * Eric Young (eay(a)cryptsoft.com)"
- * The word 'cryptographic' can be left out if the rouines from the library
- * being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- * the apps directory (application code) you must include an acknowledgement:
- * "This product includes software written by Tim Hudson (tjh(a)cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-===============================================================================
-
-M2Crypto
-
-Copyright (c) 1999-2004 Ng Pheng Siong. All rights reserved.
-
-Portions copyright (c) 2004-2006 Open Source Applications Foundation.
-All rights reserved.
-
-Portions copyright (c) 2005-2006 Vrije Universiteit Amsterdam.
-All rights reserved.
-
-Copyright (c) 2008-2010 Heikki Toivonen. All rights reserved.
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation.
-
-THE AUTHOR PROVIDES THIS SOFTWARE ``AS IS'' AND ANY EXPRESSED OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-===============================================================================
-
-py2exe
-
-Windows binary packages are built using py2exe.
-
-Copyright (c) 2000-2008 Thomas Heller, Mark Hammond, Jimmy Retzlaff
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-===============================================================================
-
-pyptlib
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
-
- * Neither the names of the copyright owners nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-===============================================================================
-
-PyCrypto
-
-To the best of our knowledge, with the exceptions noted below or
-within the files themselves, the files that constitute PyCrypto are in
-the public domain. Most are distributed with the following notice:
-
- The contents of this file are dedicated to the public domain. To
- the extent that dedication to the public domain is not available,
- everyone is granted a worldwide, perpetual, royalty-free,
- non-exclusive license to exercise all rights associated with the
- contents of this file for any purpose whatsoever.
- No rights are reserved.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
-
-Exceptions:
-
- - Portions of HMAC.py and setup.py are derived from Python 2.2, and
- are therefore Copyright (c) 2001, 2002, 2003 Python Software
- Foundation (All Rights Reserved). They are licensed by the PSF
- under the terms of the Python 2.2 license. (See the file
- LEGAL/copy/LICENSE.python-2.2 for details.)
-
- - The various GNU autotools (autoconf, automake, aclocal, etc.) are
- used during the build process. This includes macros from
- autoconf-archive, which are located in the m4/ directory. As is
- customary, some files from the GNU autotools are included in the
- source tree (in the root directory, and in the build-aux/
- directory). These files are merely part of the build process, and
- are not included in binary builds of the software.
-
-EXPORT RESTRICTIONS:
-
-Note that the export or re-export of cryptographic software and/or
-source code may be subject to regulation in your jurisdiction.
-
-===============================================================================
-
-Twisted
-
-Copyright (c) 2001-2013
-Allen Short
-Andy Gayton
-Andrew Bennetts
-Antoine Pitrou
-Apple Computer, Inc.
-Benjamin Bruheim
-Bob Ippolito
-Canonical Limited
-Christopher Armstrong
-David Reid
-Donovan Preston
-Eric Mangold
-Eyal Lotem
-Itamar Turner-Trauring
-James Knight
-Jason A. Mobarak
-Jean-Paul Calderone
-Jessica McKellar
-Jonathan Jacobs
-Jonathan Lange
-Jonathan D. Simms
-Jürgen Hermann
-Kevin Horn
-Kevin Turner
-Mary Gardiner
-Matthew Lefkowitz
-Massachusetts Institute of Technology
-Moshe Zadka
-Paul Swartz
-Pavel Pergamenshchik
-Ralph Meijer
-Sean Riley
-Software Freedom Conservancy
-Travis B. Hartwell
-Thijs Triemstra
-Thomas Herve
-Timothy Allen
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-===============================================================================
-
-zope.interface
-
-# Copyright (c) 2006 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-
-Zope Public License (ZPL) Version 2.1
--------------------------------------
-
-A copyright notice accompanies this license document that
-identifies the copyright holders.
-
-This license has been certified as open source. It has also
-been designated as GPL compatible by the Free Software
-Foundation (FSF).
-
-Redistribution and use in source and binary forms, with or
-without modification, are permitted provided that the
-following conditions are met:
-
-1. Redistributions in source code must retain the
- accompanying copyright notice, this list of conditions,
- and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the accompanying
- copyright notice, this list of conditions, and the
- following disclaimer in the documentation and/or other
- materials provided with the distribution.
-
-3. Names of the copyright holders must not be used to
- endorse or promote products derived from this software
- without prior written permission from the copyright
- holders.
-
-4. The right to distribute this software or to use it for
- any purpose does not give you the right to use
- Servicemarks (sm) or Trademarks (tm) of the copyright
- holders. Use of them is covered by separate agreement
- with the copyright holders.
-
-5. If any files are modified, you must cause the modified
- files to carry prominent notices stating that you changed
- the files and the date of any change.
-
-Disclaimer
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS''
- AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
- NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- NO EVENT SHALL THE COPYRIGHT HOLDERS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
- DAMAGE.
-
-===============================================================================
-
-argparse
-
-argparse is (c) 2006-2009 Steven J. Bethard <steven.bethard(a)gmail.com>.
-
-The argparse module was contributed to Python as of Python 2.7 and thus
-was licensed under the Python license. Same license applies to all files in
-the argparse package project.
-
-For details about the Python License, please see LICENSE.PYTHON.
diff --git a/Bundle-Data/Docs/PluggableTransports/LICENSE.PYTHON b/Bundle-Data/Docs/PluggableTransports/LICENSE.PYTHON
deleted file mode 100644
index d4dbdeb..0000000
--- a/Bundle-Data/Docs/PluggableTransports/LICENSE.PYTHON
+++ /dev/null
@@ -1,773 +0,0 @@
-A. HISTORY OF THE SOFTWARE
-==========================
-
-Python was created in the early 1990s by Guido van Rossum at Stichting
-Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands
-as a successor of a language called ABC. Guido remains Python's
-principal author, although it includes many contributions from others.
-
-In 1995, Guido continued his work on Python at the Corporation for
-National Research Initiatives (CNRI, see http://www.cnri.reston.va.us)
-in Reston, Virginia where he released several versions of the
-software.
-
-In May 2000, Guido and the Python core development team moved to
-BeOpen.com to form the BeOpen PythonLabs team. In October of the same
-year, the PythonLabs team moved to Digital Creations (now Zope
-Corporation, see http://www.zope.com) In 2001, the Python Software
-Foundation (PSF, see http://www.python.org/psf/) was formed, a
-non-profit organization created specifically to own Python-related
-Intellectual Property. Zope Corporation is a sponsoring member of
-the PSF.
-
-All Python releases are Open Source (see http://www.opensource.org for
-the Open Source Definition). Historically, most, but not all, Python
-releases have also been GPL-compatible; the table below summarizes
-the various releases.
-
- Release Derived Year Owner GPL-
- from compatible? (1)
-
- 0.9.0 thru 1.2 1991-1995 CWI yes
- 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes
- 1.6 1.5.2 2000 CNRI no
- 2.0 1.6 2000 BeOpen.com no
- 1.6.1 1.6 2001 CNRI yes (2)
- 2.1 2.0+1.6.1 2001 PSF no
- 2.0.1 2.0+1.6.1 2001 PSF yes
- 2.1.1 2.1+2.0.1 2001 PSF yes
- 2.2 2.1.1 2001 PSF yes
- 2.1.2 2.1.1 2002 PSF yes
- 2.1.3 2.1.2 2002 PSF yes
- 2.2.1 2.2 2002 PSF yes
- 2.2.2 2.2.1 2002 PSF yes
- 2.2.3 2.2.2 2003 PSF yes
- 2.3 2.2.2 2002-2003 PSF yes
- 2.3.1 2.3 2002-2003 PSF yes
- 2.3.2 2.3.1 2002-2003 PSF yes
- 2.3.3 2.3.2 2002-2003 PSF yes
- 2.3.4 2.3.3 2004 PSF yes
- 2.3.5 2.3.4 2005 PSF yes
- 2.4 2.3 2004 PSF yes
- 2.4.1 2.4 2005 PSF yes
- 2.4.2 2.4.1 2005 PSF yes
- 2.4.3 2.4.2 2006 PSF yes
- 2.4.4 2.4.3 2006 PSF yes
- 2.5 2.4 2006 PSF yes
- 2.5.1 2.5 2007 PSF yes
- 2.5.2 2.5.1 2008 PSF yes
- 2.5.3 2.5.2 2008 PSF yes
- 2.6 2.5 2008 PSF yes
- 2.6.1 2.6 2008 PSF yes
- 2.6.2 2.6.1 2009 PSF yes
- 2.6.3 2.6.2 2009 PSF yes
- 2.6.4 2.6.3 2009 PSF yes
- 2.6.5 2.6.4 2010 PSF yes
- 2.7 2.6 2010 PSF yes
-
-Footnotes:
-
-(1) GPL-compatible doesn't mean that we're distributing Python under
- the GPL. All Python licenses, unlike the GPL, let you distribute
- a modified version without making your changes open source. The
- GPL-compatible licenses make it possible to combine Python with
- other software that is released under the GPL; the others don't.
-
-(2) According to Richard Stallman, 1.6.1 is not GPL-compatible,
- because its license has a choice of law clause. According to
- CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1
- is "not incompatible" with the GPL.
-
-Thanks to the many outside volunteers who have worked under Guido's
-direction to make these releases possible.
-
-
-B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
-===============================================================
-
-PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
---------------------------------------------
-
-1. This LICENSE AGREEMENT is between the Python Software Foundation
-("PSF"), and the Individual or Organization ("Licensee") accessing and
-otherwise using this software ("Python") in source or binary form and
-its associated documentation.
-
-2. Subject to the terms and conditions of this License Agreement, PSF hereby
-grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
-analyze, test, perform and/or display publicly, prepare derivative works,
-distribute, and otherwise use Python alone or in any derivative version,
-provided, however, that PSF's License Agreement and PSF's notice of copyright,
-i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-2011, 2012 Python Software Foundation; All Rights Reserved" are retained in Python
-alone or in any derivative version prepared by Licensee.
-
-3. In the event Licensee prepares a derivative work that is based on
-or incorporates Python or any part thereof, and wants to make
-the derivative work available to others as provided herein, then
-Licensee hereby agrees to include in any such work a brief summary of
-the changes made to Python.
-
-4. PSF is making Python available to Licensee on an "AS IS"
-basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
-IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
-DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
-FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
-INFRINGE ANY THIRD PARTY RIGHTS.
-
-5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
-FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
-A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
-OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
-
-6. This License Agreement will automatically terminate upon a material
-breach of its terms and conditions.
-
-7. Nothing in this License Agreement shall be deemed to create any
-relationship of agency, partnership, or joint venture between PSF and
-Licensee. This License Agreement does not grant permission to use PSF
-trademarks or trade name in a trademark sense to endorse or promote
-products or services of Licensee, or any third party.
-
-8. By copying, installing or otherwise using Python, Licensee
-agrees to be bound by the terms and conditions of this License
-Agreement.
-
-
-BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
--------------------------------------------
-
-BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1
-
-1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
-office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
-Individual or Organization ("Licensee") accessing and otherwise using
-this software in source or binary form and its associated
-documentation ("the Software").
-
-2. Subject to the terms and conditions of this BeOpen Python License
-Agreement, BeOpen hereby grants Licensee a non-exclusive,
-royalty-free, world-wide license to reproduce, analyze, test, perform
-and/or display publicly, prepare derivative works, distribute, and
-otherwise use the Software alone or in any derivative version,
-provided, however, that the BeOpen Python License is retained in the
-Software, alone or in any derivative version prepared by Licensee.
-
-3. BeOpen is making the Software available to Licensee on an "AS IS"
-basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
-IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
-DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
-FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
-INFRINGE ANY THIRD PARTY RIGHTS.
-
-4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
-SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
-AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
-DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
-
-5. This License Agreement will automatically terminate upon a material
-breach of its terms and conditions.
-
-6. This License Agreement shall be governed by and interpreted in all
-respects by the law of the State of California, excluding conflict of
-law provisions. Nothing in this License Agreement shall be deemed to
-create any relationship of agency, partnership, or joint venture
-between BeOpen and Licensee. This License Agreement does not grant
-permission to use BeOpen trademarks or trade names in a trademark
-sense to endorse or promote products or services of Licensee, or any
-third party. As an exception, the "BeOpen Python" logos available at
-http://www.pythonlabs.com/logos.html may be used according to the
-permissions granted on that web page.
-
-7. By copying, installing or otherwise using the software, Licensee
-agrees to be bound by the terms and conditions of this License
-Agreement.
-
-
-CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
----------------------------------------
-
-1. This LICENSE AGREEMENT is between the Corporation for National
-Research Initiatives, having an office at 1895 Preston White Drive,
-Reston, VA 20191 ("CNRI"), and the Individual or Organization
-("Licensee") accessing and otherwise using Python 1.6.1 software in
-source or binary form and its associated documentation.
-
-2. Subject to the terms and conditions of this License Agreement, CNRI
-hereby grants Licensee a nonexclusive, royalty-free, world-wide
-license to reproduce, analyze, test, perform and/or display publicly,
-prepare derivative works, distribute, and otherwise use Python 1.6.1
-alone or in any derivative version, provided, however, that CNRI's
-License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
-1995-2001 Corporation for National Research Initiatives; All Rights
-Reserved" are retained in Python 1.6.1 alone or in any derivative
-version prepared by Licensee. Alternately, in lieu of CNRI's License
-Agreement, Licensee may substitute the following text (omitting the
-quotes): "Python 1.6.1 is made available subject to the terms and
-conditions in CNRI's License Agreement. This Agreement together with
-Python 1.6.1 may be located on the Internet using the following
-unique, persistent identifier (known as a handle): 1895.22/1013. This
-Agreement may also be obtained from a proxy server on the Internet
-using the following URL: http://hdl.handle.net/1895.22/1013".
-
-3. In the event Licensee prepares a derivative work that is based on
-or incorporates Python 1.6.1 or any part thereof, and wants to make
-the derivative work available to others as provided herein, then
-Licensee hereby agrees to include in any such work a brief summary of
-the changes made to Python 1.6.1.
-
-4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
-basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
-IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
-DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
-FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
-INFRINGE ANY THIRD PARTY RIGHTS.
-
-5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
-1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
-A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
-OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
-
-6. This License Agreement will automatically terminate upon a material
-breach of its terms and conditions.
-
-7. This License Agreement shall be governed by the federal
-intellectual property law of the United States, including without
-limitation the federal copyright law, and, to the extent such
-U.S. federal law does not apply, by the law of the Commonwealth of
-Virginia, excluding Virginia's conflict of law provisions.
-Notwithstanding the foregoing, with regard to derivative works based
-on Python 1.6.1 that incorporate non-separable material that was
-previously distributed under the GNU General Public License (GPL), the
-law of the Commonwealth of Virginia shall govern this License
-Agreement only as to issues arising under or with respect to
-Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this
-License Agreement shall be deemed to create any relationship of
-agency, partnership, or joint venture between CNRI and Licensee. This
-License Agreement does not grant permission to use CNRI trademarks or
-trade name in a trademark sense to endorse or promote products or
-services of Licensee, or any third party.
-
-8. By clicking on the "ACCEPT" button where indicated, or by copying,
-installing or otherwise using Python 1.6.1, Licensee agrees to be
-bound by the terms and conditions of this License Agreement.
-
- ACCEPT
-
-
-CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
---------------------------------------------------
-
-Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
-The Netherlands. All rights reserved.
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Stichting Mathematisch
-Centrum or CWI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior
-permission.
-
-STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-Additional Conditions for this Windows binary build
----------------------------------------------------
-
-This program is linked with and uses Microsoft Distributable Code,
-copyrighted by Microsoft Corporation. The Microsoft Distributable Code
-includes the following files:
-
-msvcr90.dll
-msvcp90.dll
-msvcm90.dll
-
-If you further distribute programs that include the Microsoft
-Distributable Code, you must comply with the restrictions on
-distribution specified by Microsoft. In particular, you must require
-distributors and external end users to agree to terms that protect the
-Microsoft Distributable Code at least as much as Microsoft's own
-requirements for the Distributable Code. See Microsoft's documentation
-(included in its developer tools and on its website at microsoft.com)
-for specific details.
-
-Redistribution of the Windows binary build of the Python interpreter
-complies with this agreement, provided that you do not:
-
-- alter any copyright, trademark or patent notice in Microsoft's
-Distributable Code;
-
-- use Microsoft's trademarks in your programs' names or in a way that
-suggests your programs come from or are endorsed by Microsoft;
-
-- distribute Microsoft's Distributable Code to run on a platform other
-than Microsoft operating systems, run-time technologies or application
-platforms; or
-
-- include Microsoft Distributable Code in malicious, deceptive or
-unlawful programs.
-
-These restrictions apply only to the Microsoft Distributable Code as
-defined above, not to Python itself or any programs running on the
-Python interpreter. The redistribution of the Python interpreter and
-libraries is governed by the Python Software License included with this
-file, or by other licenses as marked.
-
-
-This copy of Python includes a copy of bzip2, which is licensed under the following terms:
-
-
---------------------------------------------------------------------------
-
-This program, "bzip2", the associated library "libbzip2", and all
-documentation, are copyright (C) 1996-2007 Julian R Seward. All
-rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
-2. The origin of this software must not be misrepresented; you must
- not claim that you wrote the original software. If you use this
- software in a product, an acknowledgment in the product
- documentation would be appreciated but is not required.
-
-3. Altered source versions must be plainly marked as such, and must
- not be misrepresented as being the original software.
-
-4. The name of the author may not be used to endorse or promote
- products derived from this software without specific prior written
- permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Julian Seward, jseward(a)bzip.org
-bzip2/libbzip2 version 1.0.5 of 10 December 2007
-
---------------------------------------------------------------------------
-
-This copy of Python includes a copy of Berkeley DB, which is licensed under the following terms:
-
-/*-
- * $Id: LICENSE,v 12.9 2008/02/07 17:12:17 mark Exp $
- */
-
-The following is the license that applies to this copy of the Berkeley DB
-software. For a license to use the Berkeley DB software under conditions
-other than those described here, or to purchase support for this software,
-please contact Oracle at berkeleydb-info_us(a)oracle.com.
-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-/*
- * Copyright (c) 1990,2008 Oracle. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Redistributions in any form must be accompanied by information on
- * how to obtain complete source code for the DB software and any
- * accompanying software that uses the DB software. The source code
- * must either be included in the distribution or be available for no
- * more than the cost of distribution plus a nominal fee, and must be
- * freely redistributable under reasonable conditions. For an
- * executable file, complete source code means the source code for all
- * modules it contains. It does not include source code for modules or
- * files that typically accompany the major components of the operating
- * system on which the executable file runs.
- *
- * THIS SOFTWARE IS PROVIDED BY ORACLE ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
- * NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT SHALL ORACLE BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
- * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-/*
- * Copyright (c) 1990, 1993, 1994, 1995
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-/*
- * Copyright (c) 1995, 1996
- * The President and Fellows of Harvard University. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY HARVARD AND ITS CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL HARVARD OR ITS CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-/***
- * ASM: a very small and fast Java bytecode manipulation framework
- * Copyright (c) 2000-2005 INRIA, France Telecom
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the copyright holders nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-This copy of Python includes a copy of openssl, which is licensed under the following terms:
-
-
- LICENSE ISSUES
- ==============
-
- The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
- the OpenSSL License and the original SSLeay license apply to the toolkit.
- See below for the actual license texts. Actually both licenses are BSD-style
- Open Source licenses. In case of any license issues related to OpenSSL
- please contact openssl-core(a)openssl.org.
-
- OpenSSL License
- ---------------
-
-/* ====================================================================
- * Copyright (c) 1998-2008 The OpenSSL Project. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- * software must display the following acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- * endorse or promote products derived from this software without
- * prior written permission. For written permission, please contact
- * openssl-core(a)openssl.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- * nor may "OpenSSL" appear in their names without prior written
- * permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- * acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay(a)cryptsoft.com) This product includes software written by Tim
- * Hudson (tjh(a)cryptsoft.com)
- *
- */
-
- Original SSLeay License
- -----------------------
-
-/* Copyright (C) 1995-1998 Eric Young (eay(a)cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay(a)cryptsoft.com)
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to. The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh(a)cryptsoft.com)
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * "This product includes cryptographic software written by
- * Eric Young (eay(a)cryptsoft.com)"
- * The word 'cryptographic' can be left out if the rouines from the library
- * being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- * the apps directory (application code) you must include an acknowledgement:
- * "This product includes software written by Tim Hudson (tjh(a)cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-
-This copy of Python includes a copy of Tcl, which is licensed under the following terms:
-
-This software is copyrighted by the Regents of the University of
-California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState
-Corporation and other parties. The following terms apply to all files
-associated with the software unless explicitly disclaimed in
-individual files.
-
-The authors hereby grant permission to use, copy, modify, distribute,
-and license this software and its documentation for any purpose, provided
-that existing copyright notices are retained in all copies and that this
-notice is included verbatim in any distributions. No written agreement,
-license, or royalty fee is required for any of the authorized uses.
-Modifications to this software may be copyrighted by their authors
-and need not follow the licensing terms described here, provided that
-the new terms are clearly indicated on the first page of each file where
-they apply.
-
-IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
-FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
-DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE
-IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
-NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
-MODIFICATIONS.
-
-GOVERNMENT USE: If you are acquiring this software on behalf of the
-U.S. government, the Government shall have only "Restricted Rights"
-in the software and related documentation as defined in the Federal
-Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you
-are acquiring the software on behalf of the Department of Defense, the
-software shall be classified as "Commercial Computer Software" and the
-Government shall have only "Restricted Rights" as defined in Clause
-252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the
-authors grant the U.S. Government and others acting in its behalf
-permission to use and distribute the software in accordance with the
-terms specified in this license.
-
-This copy of Python includes a copy of Tk, which is licensed under the following terms:
-
-This software is copyrighted by the Regents of the University of
-California, Sun Microsystems, Inc., and other parties. The following
-terms apply to all files associated with the software unless explicitly
-disclaimed in individual files.
-
-The authors hereby grant permission to use, copy, modify, distribute,
-and license this software and its documentation for any purpose, provided
-that existing copyright notices are retained in all copies and that this
-notice is included verbatim in any distributions. No written agreement,
-license, or royalty fee is required for any of the authorized uses.
-Modifications to this software may be copyrighted by their authors
-and need not follow the licensing terms described here, provided that
-the new terms are clearly indicated on the first page of each file where
-they apply.
-
-IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
-FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
-DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE
-IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
-NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
-MODIFICATIONS.
-
-GOVERNMENT USE: If you are acquiring this software on behalf of the
-U.S. government, the Government shall have only "Restricted Rights"
-in the software and related documentation as defined in the Federal
-Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you
-are acquiring the software on behalf of the Department of Defense, the
-software shall be classified as "Commercial Computer Software" and the
-Government shall have only "Restricted Rights" as defined in Clause
-252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the
-authors grant the U.S. Government and others acting in its behalf
-permission to use and distribute the software in accordance with the
-terms specified in this license.
-
-This copy of Python includes a copy of Tix, which is licensed under the following terms:
-
-Copyright (c) 1993-1999 Ioi Kim Lam.
-Copyright (c) 2000-2001 Tix Project Group.
-Copyright (c) 2004 ActiveState
-
-This software is copyrighted by the above entities
-and other parties. The following terms apply to all files associated
-with the software unless explicitly disclaimed in individual files.
-
-The authors hereby grant permission to use, copy, modify, distribute,
-and license this software and its documentation for any purpose, provided
-that existing copyright notices are retained in all copies and that this
-notice is included verbatim in any distributions. No written agreement,
-license, or royalty fee is required for any of the authorized uses.
-Modifications to this software may be copyrighted by their authors
-and need not follow the licensing terms described here, provided that
-the new terms are clearly indicated on the first page of each file where
-they apply.
-
-IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
-FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
-DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE
-IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
-NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
-MODIFICATIONS.
-
-GOVERNMENT USE: If you are acquiring this software on behalf of the
-U.S. government, the Government shall have only "Restricted Rights"
-in the software and related documentation as defined in the Federal
-Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you
-are acquiring the software on behalf of the Department of Defense, the
-software shall be classified as "Commercial Computer Software" and the
-Government shall have only "Restricted Rights" as defined in Clause
-252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the
-authors grant the U.S. Government and others acting in its behalf
-permission to use and distribute the software in accordance with the
-terms specified in this license.
-
-----------------------------------------------------------------------
-
-Parts of this software are based on the Tcl/Tk software copyrighted by
-the Regents of the University of California, Sun Microsystems, Inc.,
-and other parties. The original license terms of the Tcl/Tk software
-distribution is included in the file docs/license.tcltk.
-
-Parts of this software are based on the HTML Library software
-copyrighted by Sun Microsystems, Inc. The original license terms of
-the HTML Library software distribution is included in the file
-docs/license.html_lib.
1
0

[tor-browser-bundle/master] Add draft changelog entry for TBB 3.6.
by mikeperry@torproject.org 24 Apr '14
by mikeperry@torproject.org 24 Apr '14
24 Apr '14
commit 0990a9f7f15fda1fb6ec41f8c147a2dd38913097
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Thu Apr 24 19:02:24 2014 +0200
Add draft changelog entry for TBB 3.6.
We still need to decide on obfs3 and other transport versions, and probably
some other things too.
---
Bundle-Data/Docs/ChangeLog.txt | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/Bundle-Data/Docs/ChangeLog.txt b/Bundle-Data/Docs/ChangeLog.txt
index 4b72c7f..f9d1e76 100644
--- a/Bundle-Data/Docs/ChangeLog.txt
+++ b/Bundle-Data/Docs/ChangeLog.txt
@@ -1,3 +1,19 @@
+Tor Browser Bundle 3.6 -- Apr 29 2014
+ * All Platforms
+ * Update Firefox to 24.5.0esr
+ * Update Tor Launcher to 0.2.5.4
+ * Bug #11482: Hide bridge settings prompt if no default bridges.
+ * Bug #11484: Show help button even if no default bridges.
+ * Update Torbutton to 1.6.8.1
+ * Bug 7439: Improve download warning dialog text.
+ * Bug 11384: Completely remove hidden toggle menu item.
+ * Update HTTPS-Everywhere to 3.5
+ * Update NoScript to 2.6.8.20
+ * Update obfs3 transport to XXX
+ * Backport Pending Tor Patches:
+ * Bug 11156: Additional obfsproxy startup error message fixes
+ * Bug 11586: Include license files for component software in Docs directory.
+
Tor Browser Bundle 3.6-beta-2 -- Apr 8 2014
* All Platforms
* Update OpenSSL to 1.0.1g
1
0

24 Apr '14
commit a1b9ee44f911663f2444681468a0f3ba661b568e
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Thu Apr 24 19:00:48 2014 +0200
Update NoScript to 2.6.8.20.
---
gitian/versions | 4 ++--
gitian/versions.alpha | 4 ++--
gitian/versions.beta | 4 ++--
gitian/versions.nightly | 4 ++--
4 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/gitian/versions b/gitian/versions
index ac645d3..97c6d33 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -41,7 +41,7 @@ SETUPTOOLS_VER=1.4
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
GMP_PACKAGE=gmp-${GMP_VER}.tar.bz2
-NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.19-fn+sm+fx.xpi
+NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.20-fn+fx+sm.xpi
TOOLCHAIN4_PACKAGE=x86_64-apple-darwin10.tar.xz
TOOLCHAIN4_OLD_PACKAGE=multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz
OSXSDK_PACKAGE=apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
@@ -66,7 +66,7 @@ GMP_HASH=752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160
OSXSDK_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
TOOLCHAIN4_HASH=7b71bfe02820409b994c5c33a7eab81a81c72550f5da85ff7af70da3da244645
TOOLCHAIN4_OLD_HASH=65c1b2d302358a6b95a26c6828a66908a199276193bb0b268f2dcc1a997731e9
-NOSCRIPT_HASH=6cf5387e3501923a22673887151c76187e1cd14a63b5d0b5d774a26db21ed69a
+NOSCRIPT_HASH=dae2abeb3c57240168c1fdfbf6c6664fa64859fb430ca1a05c218f81371f5ad1
MINGW_HASH=a5b03d0448a309341be4cf34c6ad3016d04c89952dca5243254b4d6c738b164f
MSVCR100_HASH=1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067
PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index ae1fcb8..ddfa06b 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -42,7 +42,7 @@ SETUPTOOLS_VER=1.4
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
GMP_PACKAGE=gmp-${GMP_VER}.tar.bz2
-NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.19-fn+sm+fx.xpi
+NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.20-fn+fx+sm.xpi
TOOLCHAIN4_PACKAGE=x86_64-apple-darwin10.tar.xz
TOOLCHAIN4_OLD_PACKAGE=multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz
OSXSDK_PACKAGE=apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
@@ -67,7 +67,7 @@ GMP_HASH=752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160
OSXSDK_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
TOOLCHAIN4_HASH=7b71bfe02820409b994c5c33a7eab81a81c72550f5da85ff7af70da3da244645
TOOLCHAIN4_OLD_HASH=65c1b2d302358a6b95a26c6828a66908a199276193bb0b268f2dcc1a997731e9
-NOSCRIPT_HASH=6cf5387e3501923a22673887151c76187e1cd14a63b5d0b5d774a26db21ed69a
+NOSCRIPT_HASH=dae2abeb3c57240168c1fdfbf6c6664fa64859fb430ca1a05c218f81371f5ad1
MINGW_HASH=a5b03d0448a309341be4cf34c6ad3016d04c89952dca5243254b4d6c738b164f
MSVCR100_HASH=1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067
PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
diff --git a/gitian/versions.beta b/gitian/versions.beta
index 74442ff..7933efd 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -42,7 +42,7 @@ SETUPTOOLS_VER=1.4
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
GMP_PACKAGE=gmp-${GMP_VER}.tar.bz2
-NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.19-fn+sm+fx.xpi
+NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.20-fn+fx+sm.xpi
TOOLCHAIN4_PACKAGE=x86_64-apple-darwin10.tar.xz
TOOLCHAIN4_OLD_PACKAGE=multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz
OSXSDK_PACKAGE=apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
@@ -67,7 +67,7 @@ GMP_HASH=752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160
OSXSDK_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
TOOLCHAIN4_HASH=7b71bfe02820409b994c5c33a7eab81a81c72550f5da85ff7af70da3da244645
TOOLCHAIN4_OLD_HASH=65c1b2d302358a6b95a26c6828a66908a199276193bb0b268f2dcc1a997731e9
-NOSCRIPT_HASH=6cf5387e3501923a22673887151c76187e1cd14a63b5d0b5d774a26db21ed69a
+NOSCRIPT_HASH=dae2abeb3c57240168c1fdfbf6c6664fa64859fb430ca1a05c218f81371f5ad1
MINGW_HASH=a5b03d0448a309341be4cf34c6ad3016d04c89952dca5243254b4d6c738b164f
MSVCR100_HASH=1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067
PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
diff --git a/gitian/versions.nightly b/gitian/versions.nightly
index f602aa2..1596918 100755
--- a/gitian/versions.nightly
+++ b/gitian/versions.nightly
@@ -43,7 +43,7 @@ SETUPTOOLS_VER=1.4
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
GMP_PACKAGE=gmp-${GMP_VER}.tar.bz2
-NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.19-fn+sm+fx.xpi
+NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.20-fn+fx+sm.xpi
TOOLCHAIN4_PACKAGE=x86_64-apple-darwin10.tar.xz
TOOLCHAIN4_OLD_PACKAGE=multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz
OSXSDK_PACKAGE=apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
@@ -68,7 +68,7 @@ GMP_HASH=752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160
OSXSDK_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
TOOLCHAIN4_HASH=7b71bfe02820409b994c5c33a7eab81a81c72550f5da85ff7af70da3da244645
TOOLCHAIN4_OLD_HASH=65c1b2d302358a6b95a26c6828a66908a199276193bb0b268f2dcc1a997731e9
-NOSCRIPT_HASH=6cf5387e3501923a22673887151c76187e1cd14a63b5d0b5d774a26db21ed69a
+NOSCRIPT_HASH=dae2abeb3c57240168c1fdfbf6c6664fa64859fb430ca1a05c218f81371f5ad1
MINGW_HASH=a5b03d0448a309341be4cf34c6ad3016d04c89952dca5243254b4d6c738b164f
MSVCR100_HASH=1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067
PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
1
0

[tor-browser-bundle/master] Bump Tor Browser version to new ESR tag.
by mikeperry@torproject.org 24 Apr '14
by mikeperry@torproject.org 24 Apr '14
24 Apr '14
commit df5631c2482e9d8f07a7b0817388b2e55a06118b
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Thu Apr 24 16:46:12 2014 +0200
Bump Tor Browser version to new ESR tag.
---
gitian/versions | 4 ++--
gitian/versions.beta | 6 +++---
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/gitian/versions b/gitian/versions
index 3c82a79..ac645d3 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -1,9 +1,9 @@
-TORBROWSER_VERSION=3.5.4
+TORBROWSER_VERSION=3.5.5-pre
BUNDLE_LOCALES="ar de es-ES fa fr it ko nl pl pt-PT ru vi zh-CN"
VERIFY_TAGS=1
-FIREFOX_VERSION=24.4.0esr
+FIREFOX_VERSION=24.5.0esr
TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build1
TOR_TAG=tor-0.2.4.21
diff --git a/gitian/versions.beta b/gitian/versions.beta
index bf2030e..74442ff 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -1,12 +1,12 @@
-TORBROWSER_VERSION=3.6-beta-2
+TORBROWSER_VERSION=3.6-pre
BUNDLE_LOCALES="ar de es-ES fa fr it ko nl pl pt-PT ru tr vi zh-CN"
BUILD_PT_BUNDLES=1
VERIFY_TAGS=1
-FIREFOX_VERSION=24.4.0esr
+FIREFOX_VERSION=24.5.0esr
-TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build2
+TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build1
TOR_TAG=tor-0.2.4.21
TORLAUNCHER_TAG=0.2.5.3
TORBUTTON_TAG=1.6.8.1
1
0

[tor-browser-bundle/master] Bug 11156: Fix additional case of spurious PT startup errors
by mikeperry@torproject.org 23 Apr '14
by mikeperry@torproject.org 23 Apr '14
23 Apr '14
commit cf25b42ce0d6144379cb9e1aa82216523bb73592
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Wed Apr 23 17:12:50 2014 +0200
Bug 11156: Fix additional case of spurious PT startup errors
---
gitian/patches/bug11156.patch | 87 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 87 insertions(+)
diff --git a/gitian/patches/bug11156.patch b/gitian/patches/bug11156.patch
index ba6e266..33dacad 100644
--- a/gitian/patches/bug11156.patch
+++ b/gitian/patches/bug11156.patch
@@ -162,3 +162,90 @@ index cb39729..d78c7bb 100644
--
1.8.1.2
+From 1a3eb5c72dd0feb43a542ca465c57dd0801ff7cc Mon Sep 17 00:00:00 2001
+From: George Kadianakis <desnacked(a)riseup.net>
+Date: Tue, 8 Apr 2014 16:59:46 +0100
+Subject: [PATCH 1/4] Don't halt bootstrap to figure out if we should restart
+ PT proxies.
+
+Instead, figure out if we should restart PT proxies _immediately_ after
+we re-read the config file.
+---
+ changes/bug11156 | 5 +++++
+ src/or/config.c | 6 ++++++
+ src/or/transports.c | 3 +--
+ 3 files changed, 12 insertions(+), 2 deletions(-)
+ create mode 100644 changes/bug11156
+
+diff --git a/changes/bug11156 b/changes/bug11156
+new file mode 100644
+index 0000000..bb20ed1e
+--- /dev/null
++++ b/changes/bug11156
+@@ -0,0 +1,5 @@
++ o Minor bugfixes (clients):
++ - Fix a bug where a client-side Tor with pluggable transports
++ would take 60 seconds to bootstrap if a config re-read was
++ triggered at just the right timing during bootstrap. Refixes bug
++ 11156; bugfix on 0.2.5.3-alpha.
+\ No newline at end of file
+diff --git a/src/or/config.c b/src/or/config.c
+index dbf643c..c2d6545 100644
+--- a/src/or/config.c
++++ b/src/or/config.c
+@@ -1433,6 +1433,12 @@ options_act(const or_options_t *old_options)
+ sweep_transport_list();
+ sweep_proxy_list();
+
++ /* Start the PT proxy configuration. By doing this configuration
++ here, we also figure out which proxies need to be restarted and
++ which not. */
++ if (pt_proxies_configuration_pending())
++ pt_configure_remaining_proxies();
++
+ /* Bail out at this point if we're not going to be a client or server:
+ * we want to not fork, and to log stuff to stderr. */
+ if (!running_tor)
+diff --git a/src/or/transports.c b/src/or/transports.c
+index 7e496fe..e1876d6 100644
+--- a/src/or/transports.c
++++ b/src/or/transports.c
+@@ -534,8 +534,7 @@ launch_managed_proxy(managed_proxy_t *mp)
+ }
+
+ /** Check if any of the managed proxies we are currently trying to
+- * configure have anything new to say. This is called from
+- * run_scheduled_events(). */
++ * configure has anything new to say. */
+ void
+ pt_configure_remaining_proxies(void)
+ {
+--
+1.8.1.2
+
+From 4719a2f5248b8cf6d70daef91fd1cf9fd65628f4 Mon Sep 17 00:00:00 2001
+From: George Kadianakis <desnacked(a)riseup.net>
+Date: Mon, 21 Apr 2014 14:17:35 +0300
+Subject: [PATCH 4/4] fixup! Don't halt bootstrap to figure out if we should
+ restart PT proxies.
+
+---
+ src/or/config.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/or/config.c b/src/or/config.c
+index c2d6545..551b09f 100644
+--- a/src/or/config.c
++++ b/src/or/config.c
+@@ -1436,7 +1436,7 @@ options_act(const or_options_t *old_options)
+ /* Start the PT proxy configuration. By doing this configuration
+ here, we also figure out which proxies need to be restarted and
+ which not. */
+- if (pt_proxies_configuration_pending())
++ if (pt_proxies_configuration_pending() && !net_is_disabled())
+ pt_configure_remaining_proxies();
+
+ /* Bail out at this point if we're not going to be a client or server:
+--
+1.8.1.2
+
1
0

23 Apr '14
commit b168a83c5266291b63294659c98b322904d805ca
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Wed Apr 23 08:29:10 2014 -0700
Bump nightly to new FF24.5.0ESR.
---
gitian/versions.nightly | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gitian/versions.nightly b/gitian/versions.nightly
index f483670..f602aa2 100755
--- a/gitian/versions.nightly
+++ b/gitian/versions.nightly
@@ -4,7 +4,7 @@ BUILD_PT_BUNDLES=1
VERIFY_TAGS=0
-FIREFOX_VERSION=24.4.0esr
+FIREFOX_VERSION=24.5.0esr
TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1
TOR_TAG=master
1
0

[torbutton/master] Bug 11384: Completely remove hidden toggle menu item.
by mikeperry@torproject.org 22 Apr '14
by mikeperry@torproject.org 22 Apr '14
22 Apr '14
commit 003daf4de85948eea53334db71a757a714b5873a
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Tue Apr 22 15:07:00 2014 -0700
Bug 11384: Completely remove hidden toggle menu item.
---
src/chrome/content/popup.xul | 5 -----
src/chrome/content/preferences.js | 3 ---
src/chrome/content/preferences.xul | 3 ---
src/chrome/content/torbutton.js | 26 +-------------------------
src/chrome/content/torbutton.xul | 11 +----------
src/chrome/content/torbutton_tb.xul | 9 ---------
6 files changed, 2 insertions(+), 55 deletions(-)
diff --git a/src/chrome/content/popup.xul b/src/chrome/content/popup.xul
index cb4c780..3ee953b 100644
--- a/src/chrome/content/popup.xul
+++ b/src/chrome/content/popup.xul
@@ -16,11 +16,6 @@
accesskey="&torbutton.context_menu.new_identity_key;"
insertafter="context-stop"
oncommand="torbutton_new_identity()"/>
- <menuitem id="torbutton-toggle"
- label="&torbutton.context_menu.toggle;"
- accesskey="&torbutton.context_menu.toggle.key;"
- insertafter="context-stop"
- oncommand="torbutton_toggle(true)"/>
<menuitem id="torbutton-cookie-protector"
label="&torbutton.context_menu.cookieProtections;"
accesskey="&torbutton.context_menu.cookieProtections.key;"
diff --git a/src/chrome/content/preferences.js b/src/chrome/content/preferences.js
index 7f23ddf..e1b2bf5 100644
--- a/src/chrome/content/preferences.js
+++ b/src/chrome/content/preferences.js
@@ -180,8 +180,6 @@ function torbutton_prefs_init(doc) {
doc.getElementById('torbutton_settingsMethod').selectedItem = doc.getElementById('torbutton_transparentTor');
}
- doc.getElementById('torbutton_lockedMode').checked = o_torprefs.getBoolPref('locked_mode');
-
doc.getElementById('torbutton_blockDisk').checked = o_torprefs.getBoolPref('block_disk');
doc.getElementById('torbutton_resistFingerprinting').checked = o_torprefs.getBoolPref('resist_fingerprinting');
doc.getElementById('torbutton_blockPlugins').checked = o_torprefs.getBoolPref('no_tor_plugins');
@@ -270,7 +268,6 @@ function torbutton_prefs_save(doc) {
o_customprefs.setIntPref('socks_version', 5);
}
}
- o_torprefs.setBoolPref('locked_mode', doc.getElementById('torbutton_lockedMode').checked);
o_torprefs.setBoolPref('block_disk', doc.getElementById('torbutton_blockDisk').checked);
o_torprefs.setBoolPref('resist_fingerprinting', doc.getElementById('torbutton_resistFingerprinting').checked);
diff --git a/src/chrome/content/preferences.xul b/src/chrome/content/preferences.xul
index ee09b8b..5198565 100644
--- a/src/chrome/content/preferences.xul
+++ b/src/chrome/content/preferences.xul
@@ -131,9 +131,6 @@
</radiogroup>
- <checkbox id="torbutton_lockedMode"
- label="&torbutton.prefs.locked_mode;"/>
-
<hbox>
<spacer flex="1"/>
<button id="torbutton_testSettings"
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index 5642a4a..79b01ce 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -282,29 +282,7 @@ function torbutton_set_panel_style() {
// Bug 1506 P0: Die toggle, die!
function torbutton_toggle(force) {
- var o_toolbutton = false;
-
- // Only toggle if lock mode is set if the user goes out of their way.
- if(!force && m_tb_prefs.getBoolPref("extensions.torbutton.locked_mode")) {
- return;
- }
-
- o_toolbutton = torbutton_get_toolbutton();
-
- torbutton_log(3, 'called toggle()');
- if (!m_tb_wasinited) {
- torbutton_init();
- }
-
- if (torbutton_check_status()) {
- // Close on toggle before actually changing proxy settings
- // as additional safety precaution
- torbutton_close_on_toggle(false, false);
- torbutton_disable_tor();
- } else {
- torbutton_close_on_toggle(true, false);
- torbutton_enable_tor(false);
- }
+ torbutton_log(5, "Somehow we received a toggle request. Refusing to honor it. (force="+force+")");
}
// Bug 1506 P0: Die toggle, die!
@@ -2123,9 +2101,7 @@ function torbutton_close_on_toggle(mode, newnym) {
function torbutton_check_protections()
{
var cookie_pref = m_tb_prefs.getBoolPref("extensions.torbutton.cookie_protections");
- var locked_pref = m_tb_prefs.getBoolPref("extensions.torbutton.locked_mode")
document.getElementById("torbutton-cookie-protector").disabled = !cookie_pref;
- document.getElementById("torbutton-toggle").collapsed = locked_pref;
if (!m_tb_control_pass || !m_tb_control_port)
document.getElementById("torbutton-new-identity").disabled = true;
diff --git a/src/chrome/content/torbutton.xul b/src/chrome/content/torbutton.xul
index 88dca7c..9e10b09 100644
--- a/src/chrome/content/torbutton.xul
+++ b/src/chrome/content/torbutton.xul
@@ -38,16 +38,7 @@
menu="torbutton-context-menu"
context="torbutton-context-menu"/>
</toolbarpalette>
- <!--
- <commandset id="mainCommandSet">
- <command id="torbutton-toggle-cmd" oncommand="torbutton_toggle(false);"/>
- </commandset>
-
- <keyset id="mainKeyset">
- <key id="torbutton-toggle-key" modifiers="control" key="2"
- command="torbutton-toggle-cmd"/>
- </keyset>
- -->
+
<statusbar id="status-bar">
<statusbarpanel id="torbutton-panel"
insertbefore="statusbar-updates"
diff --git a/src/chrome/content/torbutton_tb.xul b/src/chrome/content/torbutton_tb.xul
index 5142b2e..c240248 100644
--- a/src/chrome/content/torbutton_tb.xul
+++ b/src/chrome/content/torbutton_tb.xul
@@ -37,15 +37,6 @@
oncommand="torbutton_toggle(false);" />
</toolbarpalette>
- <commandset id="mainCommandSet">
- <command id="torbutton-toggle-cmd" oncommand="torbutton_toggle(false);"/>
- </commandset>
-
- <keyset id="mainKeyset">
- <key id="torbutton-toggle-key" modifiers="control shift" key="T"
- command="torbutton-toggle-cmd"/>
- </keyset>
-
<statusbar id="status-bar">
<statusbarpanel id="torbutton-panel"
insertbefore="statusbar-updates"
1
0

[torbutton/master] Bug 7439: Improve download warning dialog text.
by mikeperry@torproject.org 22 Apr '14
by mikeperry@torproject.org 22 Apr '14
22 Apr '14
commit 7d87a3603057b9bcafc82bde16abc0f8b31a1f7e
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Tue Apr 22 09:35:10 2014 -0700
Bug 7439: Improve download warning dialog text.
---
src/chrome/locale/en/torbutton.properties | 12 ++++++------
src/components/external-app-blocker.js | 5 ++++-
2 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/src/chrome/locale/en/torbutton.properties b/src/chrome/locale/en/torbutton.properties
index dc6684c..d34432d 100644
--- a/src/chrome/locale/en/torbutton.properties
+++ b/src/chrome/locale/en/torbutton.properties
@@ -21,13 +21,13 @@ torbutton.popup.test.auto_failed = The automatic Tor proxy test failed to use To
torbutton.prefs.recommended = (recommended)
torbutton.prefs.optional = (optional)
torbutton.prefs.crucial = (crucial)
-torbutton.popup.external.title = Load external content?
-torbutton.popup.external.app = An external application is needed to handle:\n\n
-torbutton.popup.external.note = \n\nNOTE: External applications are NOT Tor safe by default and can unmask you!\n
-torbutton.popup.external.suggest = \nIf this file is untrusted, you should either save it to view while offline or in a VM,\nor consider using a transparent Tor proxy like Tails LiveCD or torsocks.\n
-torbutton.popup.launch = Launch application
+torbutton.popup.external.title = Download an external file type?
+torbutton.popup.external.app = Tor Browser cannot display this file. You will need to open it with another application.\n\n
+torbutton.popup.external.note = Some types of files can cause applications to connect to the Internet without using Tor.\n\n
+torbutton.popup.external.suggest = To be safe, you should only open downloaded files while offline, or use a Tor Live CD such as Tails.\n
+torbutton.popup.launch = Download file
torbutton.popup.cancel = Cancel
-torbutton.popup.dontask = Always launch applications from now on
+torbutton.popup.dontask = Automatically download files from now on
torbutton.popup.test.no_http_proxy = Tor proxy test: Local HTTP Proxy is unreachable. Is Polipo running properly?
torbutton.popup.captcha.title = Avoid Google Captchas?
torbutton.popup.captcha.ask = Torbutton detected a Google Captcha. Would you like to be redirected to another search engine for this query?
diff --git a/src/components/external-app-blocker.js b/src/components/external-app-blocker.js
index 057f4ae..38ddcd7 100644
--- a/src/components/external-app-blocker.js
+++ b/src/components/external-app-blocker.js
@@ -177,9 +177,12 @@ ExternalWrapper.prototype =
var cancel = chrome.torbutton_get_property_string("torbutton.popup.cancel");
var dontask = chrome.torbutton_get_property_string("torbutton.popup.dontask");
- var result = prompts.confirmEx(chrome, title, app+urispec+note+suggest+" ",
+ var result = prompts.confirmEx(chrome, title, app+note+suggest+" ",
flags, launch, cancel, "", dontask, check);
+ //var result = prompts.confirmEx(chrome, title, app+urispec+note+suggest+" ",
+ // flags, launch, cancel, "", dontask, check);
+
if (check.value) {
this._prefs.setBoolPref("extensions.torbutton.launch_warning", false);
}
1
0

[tor-launcher/master] Import translations (via new Tails rule+script)
by mikeperry@torproject.org 22 Apr '14
by mikeperry@torproject.org 22 Apr '14
22 Apr '14
commit 7ffed96e51cdb4207980810ece44c58d2d25fda6
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Tue Apr 22 16:52:23 2014 +0200
Import translations (via new Tails rule+script)
---
src/chrome/locale/ach/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ach/progress.dtd | 4 ++
src/chrome/locale/ach/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/ady/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ady/progress.dtd | 4 ++
src/chrome/locale/ady/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/af-ZA/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/af-ZA/progress.dtd | 4 ++
src/chrome/locale/af-ZA/torlauncher.properties | 57 +++++++++++++++++
src/chrome/locale/af/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/af/progress.dtd | 4 ++
src/chrome/locale/af/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/ak/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ak/progress.dtd | 4 ++
src/chrome/locale/ak/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/am-ET/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/am-ET/progress.dtd | 4 ++
src/chrome/locale/am-ET/torlauncher.properties | 57 +++++++++++++++++
src/chrome/locale/am/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/am/progress.dtd | 4 ++
src/chrome/locale/am/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/arn/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/arn/progress.dtd | 4 ++
src/chrome/locale/arn/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/ast/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ast/progress.dtd | 4 ++
src/chrome/locale/ast/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/az/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/az/progress.dtd | 4 ++
src/chrome/locale/az/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/be/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/be/progress.dtd | 4 ++
src/chrome/locale/be/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/bg-BG/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/bg-BG/progress.dtd | 4 ++
src/chrome/locale/bg-BG/torlauncher.properties | 57 +++++++++++++++++
src/chrome/locale/bg/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/bg/progress.dtd | 4 ++
src/chrome/locale/bg/torlauncher.properties | 36 ++++++++++-
src/chrome/locale/bn-BD/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/bn-BD/progress.dtd | 4 ++
src/chrome/locale/bn-BD/torlauncher.properties | 57 +++++++++++++++++
src/chrome/locale/bn-IN/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/bn-IN/progress.dtd | 4 ++
src/chrome/locale/bn-IN/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/bn/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/bn/progress.dtd | 4 ++
src/chrome/locale/bn/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/bo/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/bo/progress.dtd | 4 ++
src/chrome/locale/bo/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/br/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/br/progress.dtd | 4 ++
src/chrome/locale/br/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/bs/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/bs/progress.dtd | 4 ++
src/chrome/locale/bs/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/ca-ES/network-settings.dtd | 59 +++++++++++++++++
src/chrome/locale/ca-ES/torlauncher.properties | 52 +++++++++++++++
src/chrome/locale/ca/network-settings.dtd | 65 +++++++++++++++++++
src/chrome/locale/ca/progress.dtd | 4 ++
src/chrome/locale/ca/torlauncher.properties | 37 ++++++++++-
src/chrome/locale/ca(a)valencia/network-settings.dtd | 54 ++++++++++++++++
src/chrome/locale/ca(a)valencia/progress.dtd | 4 ++
.../locale/ca(a)valencia/torlauncher.properties | 30 +++++++++
src/chrome/locale/cs-CZ/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/cs-CZ/progress.dtd | 4 ++
src/chrome/locale/cs-CZ/torlauncher.properties | 57 +++++++++++++++++
src/chrome/locale/cs/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/cs/progress.dtd | 4 ++
src/chrome/locale/cs/torlauncher.properties | 48 +++++++++++---
src/chrome/locale/csb/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/csb/progress.dtd | 4 ++
src/chrome/locale/csb/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/cv/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/cv/progress.dtd | 4 ++
src/chrome/locale/cv/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/cy/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/cy/progress.dtd | 4 ++
src/chrome/locale/cy/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/da/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/da/progress.dtd | 4 ++
src/chrome/locale/da/torlauncher.properties | 36 ++++++++++-
src/chrome/locale/dz/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/dz/progress.dtd | 4 ++
src/chrome/locale/dz/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/el-GR/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/el-GR/progress.dtd | 4 ++
src/chrome/locale/el-GR/torlauncher.properties | 57 +++++++++++++++++
src/chrome/locale/el/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/el/progress.dtd | 4 ++
src/chrome/locale/el/torlauncher.properties | 36 ++++++++++-
src/chrome/locale/en-GB/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/en-GB/progress.dtd | 4 ++
src/chrome/locale/en-GB/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/en/network-settings.dtd | 8 +--
src/chrome/locale/eo/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/eo/progress.dtd | 4 ++
src/chrome/locale/eo/torlauncher.properties | 36 ++++++++++-
src/chrome/locale/es-AR/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/es-AR/progress.dtd | 4 ++
src/chrome/locale/es-AR/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/es-CL/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/es-CL/progress.dtd | 4 ++
src/chrome/locale/es-CL/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/es-CO/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/es-CO/progress.dtd | 4 ++
src/chrome/locale/es-CO/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/es-MX/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/es-MX/progress.dtd | 4 ++
src/chrome/locale/es-MX/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/es-NI/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/es-NI/progress.dtd | 4 ++
src/chrome/locale/es-NI/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/et/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/et/progress.dtd | 4 ++
src/chrome/locale/et/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/eu/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/eu/progress.dtd | 4 ++
src/chrome/locale/fa/torlauncher.properties | 2 +-
src/chrome/locale/fi/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/fi/progress.dtd | 4 ++
src/chrome/locale/fi/torlauncher.properties | 58 +++++++++++++----
src/chrome/locale/fil/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/fil/progress.dtd | 4 ++
src/chrome/locale/fil/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/fo/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/fo/progress.dtd | 4 ++
src/chrome/locale/fo/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/fr-CA/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/fr-CA/progress.dtd | 4 ++
src/chrome/locale/fr-CA/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/fr/network-settings.dtd | 2 +-
src/chrome/locale/fur/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/fur/progress.dtd | 4 ++
src/chrome/locale/fur/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/fy/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/fy/progress.dtd | 4 ++
src/chrome/locale/fy/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/ga/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ga/progress.dtd | 4 ++
src/chrome/locale/ga/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/gl/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/gl/progress.dtd | 4 ++
src/chrome/locale/gl/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/gu-IN/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/gu-IN/progress.dtd | 4 ++
src/chrome/locale/gu-IN/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/gu/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/gu/progress.dtd | 4 ++
src/chrome/locale/gu/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/gun/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/gun/progress.dtd | 4 ++
src/chrome/locale/gun/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/ha/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ha/progress.dtd | 4 ++
src/chrome/locale/ha/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/he/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/he/progress.dtd | 4 ++
src/chrome/locale/he/torlauncher.properties | 42 +++++++++++--
src/chrome/locale/hi/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/hi/progress.dtd | 4 ++
src/chrome/locale/hi/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/hr-HR/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/hr-HR/progress.dtd | 4 ++
src/chrome/locale/hr-HR/torlauncher.properties | 38 ++++++++++-
src/chrome/locale/hr/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/hr/progress.dtd | 4 ++
src/chrome/locale/hr/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/ht/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ht/progress.dtd | 4 ++
src/chrome/locale/ht/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/hu/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/hu/progress.dtd | 4 ++
src/chrome/locale/hu/torlauncher.properties | 36 ++++++++++-
src/chrome/locale/hy-AM/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/hy-AM/progress.dtd | 4 ++
src/chrome/locale/hy-AM/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/hy/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/hy/progress.dtd | 4 ++
src/chrome/locale/hy/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/ia/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ia/progress.dtd | 4 ++
src/chrome/locale/ia/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/id/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/id/progress.dtd | 4 ++
src/chrome/locale/id/torlauncher.properties | 36 ++++++++++-
src/chrome/locale/is/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/is/progress.dtd | 4 ++
src/chrome/locale/is/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/it/network-settings.dtd | 13 ++--
src/chrome/locale/it/progress.dtd | 2 +-
src/chrome/locale/it/torlauncher.properties | 4 +-
src/chrome/locale/jv/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/jv/progress.dtd | 4 ++
src/chrome/locale/jv/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/ka/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ka/progress.dtd | 4 ++
src/chrome/locale/ka/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/kk/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/kk/progress.dtd | 4 ++
src/chrome/locale/kk/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/km/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/km/progress.dtd | 4 ++
src/chrome/locale/km/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/kn/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/kn/progress.dtd | 4 ++
src/chrome/locale/kn/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/ko-KR/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ko-KR/progress.dtd | 4 ++
src/chrome/locale/ko-KR/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/ku/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ku/progress.dtd | 4 ++
src/chrome/locale/ku/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/kw/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/kw/progress.dtd | 4 ++
src/chrome/locale/kw/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/ky/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ky/progress.dtd | 4 ++
src/chrome/locale/ky/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/lb/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/lb/progress.dtd | 4 ++
src/chrome/locale/lb/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/lg/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/lg/progress.dtd | 4 ++
src/chrome/locale/lg/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/ln/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ln/progress.dtd | 4 ++
src/chrome/locale/ln/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/lo/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/lo/progress.dtd | 4 ++
src/chrome/locale/lo/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/lt/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/lt/progress.dtd | 4 ++
src/chrome/locale/lt/torlauncher.properties | 53 ++++++++++++++--
src/chrome/locale/lv/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/lv/progress.dtd | 4 ++
src/chrome/locale/lv/torlauncher.properties | 38 ++++++++++-
src/chrome/locale/mg/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/mg/progress.dtd | 4 ++
src/chrome/locale/mg/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/mi/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/mi/progress.dtd | 4 ++
src/chrome/locale/mi/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/mk/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/mk/progress.dtd | 4 ++
src/chrome/locale/mk/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/ml/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ml/progress.dtd | 4 ++
src/chrome/locale/ml/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/mn/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/mn/progress.dtd | 4 ++
src/chrome/locale/mn/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/mr/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/mr/progress.dtd | 4 ++
src/chrome/locale/mr/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/ms-MY/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ms-MY/progress.dtd | 4 ++
src/chrome/locale/ms-MY/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/ms/network-settings.dtd | 55 ++++++++++++++++
src/chrome/locale/ms/torlauncher.properties | 31 +++++++++
src/chrome/locale/mt/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/mt/progress.dtd | 4 ++
src/chrome/locale/mt/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/my/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/my/progress.dtd | 4 ++
src/chrome/locale/my/torlauncher.properties | 36 ++++++++++-
src/chrome/locale/nah/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/nah/progress.dtd | 4 ++
src/chrome/locale/nah/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/nap/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/nap/progress.dtd | 4 ++
src/chrome/locale/nap/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/nb/network-settings.dtd | 66 ++++++++++++++++++++
src/chrome/locale/nb/progress.dtd | 4 ++
src/chrome/locale/nb/torlauncher.properties | 34 ++++++++++
src/chrome/locale/nds/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/nds/progress.dtd | 4 ++
src/chrome/locale/nds/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/ne/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ne/progress.dtd | 4 ++
src/chrome/locale/ne/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/nl-BE/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/nl-BE/progress.dtd | 4 ++
src/chrome/locale/nl-BE/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/nn/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/nn/progress.dtd | 4 ++
src/chrome/locale/nn/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/nso/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/nso/progress.dtd | 4 ++
src/chrome/locale/nso/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/oc/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/oc/progress.dtd | 4 ++
src/chrome/locale/oc/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/or/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/or/progress.dtd | 4 ++
src/chrome/locale/or/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/pa/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/pa/progress.dtd | 4 ++
src/chrome/locale/pa/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/pap/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/pap/progress.dtd | 4 ++
src/chrome/locale/pap/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/pl-PL/network-settings.dtd | 55 ++++++++++++++++
src/chrome/locale/pl-PL/progress.dtd | 4 ++
src/chrome/locale/pl-PL/torlauncher.properties | 31 +++++++++
src/chrome/locale/pms/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/pms/progress.dtd | 4 ++
src/chrome/locale/pms/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/ps/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ps/progress.dtd | 4 ++
src/chrome/locale/ps/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/pt-BR/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/pt-BR/progress.dtd | 4 ++
src/chrome/locale/pt-BR/torlauncher.properties | 36 ++++++++++-
src/chrome/locale/ro/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ro/progress.dtd | 4 ++
src/chrome/locale/ro/torlauncher.properties | 36 ++++++++++-
src/chrome/locale/ru(a)petr1708/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ru(a)petr1708/progress.dtd | 4 ++
.../locale/ru(a)petr1708/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/sco/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/sco/progress.dtd | 4 ++
src/chrome/locale/sco/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/si-LK/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/si-LK/progress.dtd | 4 ++
src/chrome/locale/si-LK/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/si/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/si/progress.dtd | 4 ++
src/chrome/locale/si/torlauncher.properties | 57 +++++++++++++++++
src/chrome/locale/sk-SK/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/sk-SK/progress.dtd | 4 ++
src/chrome/locale/sk-SK/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/sk/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/sk/progress.dtd | 4 ++
src/chrome/locale/sk/torlauncher.properties | 34 ++++++++++
src/chrome/locale/sl-SI/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/sl-SI/progress.dtd | 4 ++
src/chrome/locale/sl-SI/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/sl/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/sl/progress.dtd | 4 ++
src/chrome/locale/sl/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/sn/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/sn/progress.dtd | 4 ++
src/chrome/locale/sn/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/so/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/so/progress.dtd | 4 ++
src/chrome/locale/so/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/son/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/son/progress.dtd | 4 ++
src/chrome/locale/son/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/sq-AL/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/sq-AL/progress.dtd | 4 ++
src/chrome/locale/sq-AL/torlauncher.properties | 57 +++++++++++++++++
src/chrome/locale/sq/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/sq/progress.dtd | 4 ++
src/chrome/locale/sq/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/sr/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/sr/progress.dtd | 4 ++
src/chrome/locale/sr/torlauncher.properties | 36 ++++++++++-
src/chrome/locale/sr(a)latin/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/sr(a)latin/progress.dtd | 4 ++
src/chrome/locale/sr(a)latin/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/st/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/st/progress.dtd | 4 ++
src/chrome/locale/st/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/su/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/su/progress.dtd | 4 ++
src/chrome/locale/su/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/sv-SE/network-settings.dtd | 55 ++++++++++++++++
src/chrome/locale/sv-SE/progress.dtd | 4 ++
src/chrome/locale/sv-SE/torlauncher.properties | 31 +++++++++
src/chrome/locale/sv/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/sv/progress.dtd | 4 ++
src/chrome/locale/sw/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/sw/progress.dtd | 4 ++
src/chrome/locale/sw/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/szl/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/szl/progress.dtd | 4 ++
src/chrome/locale/szl/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/ta/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ta/progress.dtd | 4 ++
src/chrome/locale/ta/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/te-IN/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/te-IN/progress.dtd | 4 ++
src/chrome/locale/te-IN/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/te/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/te/progress.dtd | 4 ++
src/chrome/locale/te/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/tg/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/tg/progress.dtd | 4 ++
src/chrome/locale/tg/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/th/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/th/progress.dtd | 4 ++
src/chrome/locale/th/torlauncher.properties | 38 ++++++++++-
src/chrome/locale/ti/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ti/progress.dtd | 4 ++
src/chrome/locale/ti/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/tk/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/tk/progress.dtd | 4 ++
src/chrome/locale/tk/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/uk/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/uk/progress.dtd | 4 ++
src/chrome/locale/uk/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/ur-PK/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ur-PK/progress.dtd | 4 ++
src/chrome/locale/ur-PK/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/ur/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ur/progress.dtd | 4 ++
src/chrome/locale/ur/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/uz/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/uz/progress.dtd | 4 ++
src/chrome/locale/uz/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/ve/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/ve/progress.dtd | 4 ++
src/chrome/locale/ve/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/vi/torlauncher.properties | 2 +-
src/chrome/locale/wa/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/wa/progress.dtd | 4 ++
src/chrome/locale/wa/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/wo/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/wo/progress.dtd | 4 ++
src/chrome/locale/wo/torlauncher.properties | 58 +++++++++++++++++
.../locale/zh-CN.GB2312/network-settings.dtd | 59 +++++++++++++++++
src/chrome/locale/zh-CN.GB2312/progress.dtd | 4 ++
.../locale/zh-CN.GB2312/torlauncher.properties | 52 +++++++++++++++
src/chrome/locale/zh-CN/torlauncher.properties | 4 +-
src/chrome/locale/zh-HK/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/zh-HK/progress.dtd | 4 ++
src/chrome/locale/zh-HK/torlauncher.properties | 58 +++++++++++++++++
src/chrome/locale/zh-TW/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/zh-TW/progress.dtd | 4 ++
src/chrome/locale/zh-TW/torlauncher.properties | 47 +++++++++++++-
src/chrome/locale/zh/network-settings.dtd | 59 +++++++++++++++++
src/chrome/locale/zh/progress.dtd | 4 ++
src/chrome/locale/zh/torlauncher.properties | 52 +++++++++++++++
src/chrome/locale/zu/network-settings.dtd | 64 +++++++++++++++++++
src/chrome/locale/zu/progress.dtd | 4 ++
src/chrome/locale/zu/torlauncher.properties | 58 +++++++++++++++++
439 files changed, 17541 insertions(+), 67 deletions(-)
diff --git a/src/chrome/locale/ach/network-settings.dtd b/src/chrome/locale/ach/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/ach/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ach/progress.dtd b/src/chrome/locale/ach/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/ach/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ach/torlauncher.properties b/src/chrome/locale/ach/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/ach/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/ady/network-settings.dtd b/src/chrome/locale/ady/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/ady/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ady/progress.dtd b/src/chrome/locale/ady/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/ady/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ady/torlauncher.properties b/src/chrome/locale/ady/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/ady/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/af-ZA/network-settings.dtd b/src/chrome/locale/af-ZA/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/af-ZA/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/af-ZA/progress.dtd b/src/chrome/locale/af-ZA/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/af-ZA/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/af-ZA/torlauncher.properties b/src/chrome/locale/af-ZA/torlauncher.properties
new file mode 100644
index 0000000..a2550db
--- /dev/null
+++ b/src/chrome/locale/af-ZA/torlauncher.properties
@@ -0,0 +1,57 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/af/network-settings.dtd b/src/chrome/locale/af/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/af/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/af/progress.dtd b/src/chrome/locale/af/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/af/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/af/torlauncher.properties b/src/chrome/locale/af/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/af/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/ak/network-settings.dtd b/src/chrome/locale/ak/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/ak/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ak/progress.dtd b/src/chrome/locale/ak/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/ak/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ak/torlauncher.properties b/src/chrome/locale/ak/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/ak/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/am-ET/network-settings.dtd b/src/chrome/locale/am-ET/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/am-ET/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/am-ET/progress.dtd b/src/chrome/locale/am-ET/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/am-ET/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/am-ET/torlauncher.properties b/src/chrome/locale/am-ET/torlauncher.properties
new file mode 100644
index 0000000..a2550db
--- /dev/null
+++ b/src/chrome/locale/am-ET/torlauncher.properties
@@ -0,0 +1,57 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/am/network-settings.dtd b/src/chrome/locale/am/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/am/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/am/progress.dtd b/src/chrome/locale/am/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/am/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/am/torlauncher.properties b/src/chrome/locale/am/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/am/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/arn/network-settings.dtd b/src/chrome/locale/arn/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/arn/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/arn/progress.dtd b/src/chrome/locale/arn/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/arn/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/arn/torlauncher.properties b/src/chrome/locale/arn/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/arn/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/ast/network-settings.dtd b/src/chrome/locale/ast/network-settings.dtd
new file mode 100644
index 0000000..2935543
--- /dev/null
+++ b/src/chrome/locale/ast/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Si">
+<!ENTITY torSettings.no "Non">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ast/progress.dtd b/src/chrome/locale/ast/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/ast/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ast/torlauncher.properties b/src/chrome/locale/ast/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/ast/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/az/network-settings.dtd b/src/chrome/locale/az/network-settings.dtd
new file mode 100644
index 0000000..2ca5dcf
--- /dev/null
+++ b/src/chrome/locale/az/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Bəli">
+<!ENTITY torSettings.no "Xeyr">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "Şifrə:">
+<!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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/az/progress.dtd b/src/chrome/locale/az/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/az/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/az/torlauncher.properties b/src/chrome/locale/az/torlauncher.properties
new file mode 100644
index 0000000..20a24bb
--- /dev/null
+++ b/src/chrome/locale/az/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Çıx
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/be/network-settings.dtd b/src/chrome/locale/be/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/be/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/be/progress.dtd b/src/chrome/locale/be/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/be/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/be/torlauncher.properties b/src/chrome/locale/be/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/be/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/bg-BG/network-settings.dtd b/src/chrome/locale/bg-BG/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/bg-BG/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/bg-BG/progress.dtd b/src/chrome/locale/bg-BG/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/bg-BG/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/bg-BG/torlauncher.properties b/src/chrome/locale/bg-BG/torlauncher.properties
new file mode 100644
index 0000000..a2550db
--- /dev/null
+++ b/src/chrome/locale/bg-BG/torlauncher.properties
@@ -0,0 +1,57 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/bg/network-settings.dtd b/src/chrome/locale/bg/network-settings.dtd
new file mode 100644
index 0000000..a38b198
--- /dev/null
+++ b/src/chrome/locale/bg/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Настройки на Tor мрежата">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Да">
+<!ENTITY torSettings.no "Не">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Свържи се">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Изчакване на Tor да стартира...">
+<!ENTITY torsettings.restart "Рестарт">
+
+<!ENTITY torsettings.optional "Допълнителен">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.address "Адрес:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP адрес или хост">
+<!ENTITY torsettings.useProxy.port "Порт:">
+<!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">
+<!ENTITY torsettings.firewall.checkbox "This computer goes through a firewall that only allows connections to certain ports">
+<!ENTITY torsettings.firewall.allowedPorts "Позволени портове:">
+<!ENTITY torsettings.useBridges.checkbox "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Копирай Tor лога в клипборда">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/bg/progress.dtd b/src/chrome/locale/bg/progress.dtd
new file mode 100644
index 0000000..26b2594
--- /dev/null
+++ b/src/chrome/locale/bg/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Състояние на Тор">
+<!ENTITY torprogress.openSettings "Отвори настройки">
+<!ENTITY torprogress.heading "Свързване с Тор мрежата">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/bg/torlauncher.properties b/src/chrome/locale/bg/torlauncher.properties
index 6cdeb42..d93bd1f 100644
--- a/src/chrome/locale/bg/torlauncher.properties
+++ b/src/chrome/locale/bg/torlauncher.properties
@@ -1,7 +1,40 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.tor_bootstrap_failed_details=%1$S пропаднал (%2$S).
+torlauncher.error_title=Тор лънчер
+
+torlauncher.tor_exited=Тор спря принудително
+torlauncher.please_restart_app=Моля, рестартирайте приложението.
+torlauncher.tor_controlconn_failed=Тор няма връзка с контролния порт
+torlauncher.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=Невъзможно е да се стартира Tor.\n\n%S
+torlauncher.tor_missing=Приложението "Tor" липсва.
+torlauncher.torrc_missing=Файла "torrc" липсва.
+torlauncher.datadir_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.error_proxy_addr_missing=Трябва да определите IP адрес или хост име и номер на порта, за да настроите Тор да използва прокси достъп до интернет.
+torlauncher.error_proxy_type_missing=Трябва да изберете вида на проксито.
+torlauncher.error_bridges_missing=Трябва да зададете един или повече бриджа
+torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Свържи се
+torlauncher.quit=Край
+torlauncher.quit_win=Изход
+torlauncher.done=Готово
+
+torlauncher.forAssistance=За съдействие , моля свържете се с %S
torlauncher.bootstrapStatus.conn_dir=Свързване с препредаващата директория
torlauncher.bootstrapStatus.handshake_dir=Осъществяване на връзка с криптираната директория
@@ -22,3 +55,4 @@ torlauncher.bootstrapWarning.identity=несъвпадение с идентич
torlauncher.bootstrapWarning.timeout=пауза на връзката
torlauncher.bootstrapWarning.noroute=няма път до хоста
torlauncher.bootstrapWarning.ioerror=грешка при четене/писане
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/bn-BD/network-settings.dtd b/src/chrome/locale/bn-BD/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/bn-BD/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/bn-BD/progress.dtd b/src/chrome/locale/bn-BD/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/bn-BD/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/bn-BD/torlauncher.properties b/src/chrome/locale/bn-BD/torlauncher.properties
new file mode 100644
index 0000000..a2550db
--- /dev/null
+++ b/src/chrome/locale/bn-BD/torlauncher.properties
@@ -0,0 +1,57 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/bn-IN/network-settings.dtd b/src/chrome/locale/bn-IN/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/bn-IN/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/bn-IN/progress.dtd b/src/chrome/locale/bn-IN/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/bn-IN/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/bn-IN/torlauncher.properties b/src/chrome/locale/bn-IN/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/bn-IN/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/bn/network-settings.dtd b/src/chrome/locale/bn/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/bn/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/bn/progress.dtd b/src/chrome/locale/bn/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/bn/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/bn/torlauncher.properties b/src/chrome/locale/bn/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/bn/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/bo/network-settings.dtd b/src/chrome/locale/bo/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/bo/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/bo/progress.dtd b/src/chrome/locale/bo/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/bo/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/bo/torlauncher.properties b/src/chrome/locale/bo/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/bo/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/br/network-settings.dtd b/src/chrome/locale/br/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/br/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/br/progress.dtd b/src/chrome/locale/br/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/br/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/br/torlauncher.properties b/src/chrome/locale/br/torlauncher.properties
new file mode 100644
index 0000000..d7e5faa
--- /dev/null
+++ b/src/chrome/locale/br/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(erbedet)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/bs/network-settings.dtd b/src/chrome/locale/bs/network-settings.dtd
new file mode 100644
index 0000000..7c76eb9
--- /dev/null
+++ b/src/chrome/locale/bs/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Da">
+<!ENTITY torSettings.no "Ne">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "Šifra">
+<!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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/bs/progress.dtd b/src/chrome/locale/bs/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/bs/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/bs/torlauncher.properties b/src/chrome/locale/bs/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/bs/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/ca-ES/network-settings.dtd b/src/chrome/locale/ca-ES/network-settings.dtd
new file mode 100644
index 0000000..56487e1
--- /dev/null
+++ b/src/chrome/locale/ca-ES/network-settings.dtd
@@ -0,0 +1,59 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before the Tor Browser Bundle tries to connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "If this computer's Internet connection is censored, you will need to obtain and use bridge relays.&#160; If not, just click Connect.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.address "Adreça:">
+<!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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "address:port OR transport address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "Here are three ways to obtain bridge addresses:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ca-ES/torlauncher.properties b/src/chrome/locale/ca-ES/torlauncher.properties
new file mode 100644
index 0000000..d82d688
--- /dev/null
+++ b/src/chrome/locale/ca-ES/torlauncher.properties
@@ -0,0 +1,52 @@
+### 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.conn_dir=Connecting to a relay directory
+# torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+# torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+# torlauncher.bootstrapStatus.loading_status=Loading network status
+# torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+# torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+# torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+# torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+# torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/ca/network-settings.dtd b/src/chrome/locale/ca/network-settings.dtd
new file mode 100644
index 0000000..83e3aca
--- /dev/null
+++ b/src/chrome/locale/ca/network-settings.dtd
@@ -0,0 +1,65 @@
+<!ENTITY torsettings.dialog.title "Configuració Xarxa Tor">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Sí">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Quina de les següuens descriula teva situació?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configura">
+<!ENTITY torSettings.connectPrompt2 "M'agradaria conectar-me directament a la xarxa Tor.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Conectar">
+
+<!ENTITY torSettings.proxyQuestion "Necessita aquest ordinador usar un proxy per accedir a internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Introdueix les opcions del proxy.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Esperant a Tor per començar...">
+<!ENTITY torsettings.restart "Reinicia">
+
+<!ENTITY torsettings.optional "Opcional
+">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Tipus de Proxy:">
+<!ENTITY torsettings.useProxy.address "Adreça:">
+<!ENTITY torsettings.useProxy.address.placeholder "Direcció IP o nom del host">
+<!ENTITY torsettings.useProxy.port "Port:">
+<!ENTITY torsettings.useProxy.username "Nom d'usuari:">
+<!ENTITY torsettings.useProxy.password "Contrasenya:">
+<!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 "Ports permesos:">
+<!ENTITY torsettings.useBridges.checkbox "El meu proveidor d'internet (ISP) bloqueja les conexions a la xarxa Tor">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Entra en un o més repetidors (un per linia).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copiar el Log al portapapers">
+<!ENTITY torsettings.bridgeHelpTitle "Ajuda Repetidors">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ca/progress.dtd b/src/chrome/locale/ca/progress.dtd
new file mode 100644
index 0000000..18b34e0
--- /dev/null
+++ b/src/chrome/locale/ca/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Estat del Tor">
+<!ENTITY torprogress.openSettings "Obrir preferències.">
+<!ENTITY torprogress.heading "S'està connectant a la xarxa Tor">
+<!ENTITY torprogress.pleaseWait "Si us plau, espereu mentre establim una connexió a la xarxa Tor.">
diff --git a/src/chrome/locale/ca/torlauncher.properties b/src/chrome/locale/ca/torlauncher.properties
index dffad95..c423d03 100644
--- a/src/chrome/locale/ca/torlauncher.properties
+++ b/src/chrome/locale/ca/torlauncher.properties
@@ -1,7 +1,40 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.tor_bootstrap_failed_details=%1$S fallit (%2$S).
+torlauncher.error_title=Inicialitzador Tor
+
+torlauncher.tor_exited=Tor ha sortit inesperadament.
+torlauncher.please_restart_app=Si us plau reinicia l'aplicació.
+torlauncher.tor_controlconn_failed=Nos'ha pogut conectar al port de control Tor
+torlauncher.tor_failed_to_start=Tor ha fallat al iniciar.
+torlauncher.tor_control_failed=No s'ha pogut prendre el control de Tor.
+torlauncher.tor_bootstrap_failed=Tor no ha pogut establir una connexió de xarxa Tor.
+torlauncher.tor_bootstrap_failed_details=%1$S ha fallat (%2$S).
+
+torlauncher.unable_to_start_tor=Impossible iniciar Tor.\n%S
+torlauncher.tor_missing=Falta l'executable de Tor.
+torlauncher.torrc_missing=Falta l'arxiu torrc.
+torlauncher.datadir_missing=La carpeta de dades de Tor no existeix.
+torlauncher.password_hash_missing=Ha fallat l'obtencio de la contrasenya hash.
+
+torlauncher.failed_to_get_settings=Impossible obtenir la configuració de Tor\n%S
+torlauncher.failed_to_save_settings=Impossible guardar la configuració de Tor.\n%S
+torlauncher.ensure_tor_is_running=Si us plau assegurat de que Tor esta funcionant.
+
+torlauncher.error_proxy_addr_missing=Heu d'especificar tant una adreça IP o domini com un número de port per a configurar el Tor per tal que pugui utilitzar un servidor intermediari per a accedir a Internet.
+torlauncher.error_proxy_type_missing=Heu de seleccionar el tipus de proxy.
+torlauncher.error_bridges_missing=Has d'especificar un o mes repetidors.
+torlauncher.error_default_bridges_type_missing=Heu de seleccionar un tipus de transport per als ponts subministrats.
+torlauncher.error_bridge_bad_default_type=No hi ha ponts subministrats que tinguin el tipus de transport %S disponible. Si us plau canvieu la configuració.
+
+torlauncher.recommended_bridge=(recomanat)
+
+torlauncher.connect=Conectar
+torlauncher.quit=Surt
+torlauncher.quit_win=Surt
+torlauncher.done=Fet
+
+torlauncher.forAssistance=Per assistència, contacta %S
torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
torlauncher.bootstrapStatus.handshake_dir=S'està establint una connexió a un directori xifrat
@@ -18,6 +51,8 @@ torlauncher.bootstrapWarning.done=fet
torlauncher.bootstrapWarning.connectrefused=connexió refusada
torlauncher.bootstrapWarning.misc=miscel·lània
torlauncher.bootstrapWarning.resourcelimit=recursos insuficients
+torlauncher.bootstrapWarning.identity=les identitats no coincideixen
torlauncher.bootstrapWarning.timeout=S'ha excedit el temps d'espera de connexió
torlauncher.bootstrapWarning.noroute=no hi ha ruta cap al servidor
torlauncher.bootstrapWarning.ioerror=error de lectura/escriptura
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/ca(a)valencia/network-settings.dtd b/src/chrome/locale/ca(a)valencia/network-settings.dtd
new file mode 100644
index 0000000..0458e75
--- /dev/null
+++ b/src/chrome/locale/ca(a)valencia/network-settings.dtd
@@ -0,0 +1,54 @@
+<!ENTITY torsettings.dialog.title "">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "">
+
+<!ENTITY torSettings.yes "">
+<!ENTITY torSettings.no "">
+
+<!ENTITY torSettings.firstQuestion "">
+<!ENTITY torSettings.configurePrompt1 "">
+<!ENTITY torSettings.configurePrompt2 "">
+<!ENTITY torSettings.configure "">
+<!ENTITY torSettings.connectPrompt1 "">
+<!ENTITY torSettings.connectPrompt2 "">
+<!ENTITY torSettings.connect "">
+
+<!ENTITY torSettings.proxyQuestion "">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "">
+<!ENTITY torSettings.enterProxy "">
+<!ENTITY torSettings.firewallQuestion "">
+<!ENTITY torSettings.firewallHelp "">
+<!ENTITY torSettings.enterFirewall "">
+<!ENTITY torSettings.bridgeQuestion "">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "">
+
+<!ENTITY torsettings.optional "">
+
+<!ENTITY torsettings.useProxy.checkbox "">
+<!ENTITY torsettings.useProxy.type "">
+<!ENTITY torsettings.useProxy.address "">
+<!ENTITY torsettings.useProxy.address.placeholder "">
+<!ENTITY torsettings.useProxy.port "">
+<!ENTITY torsettings.useProxy.username "">
+<!ENTITY torsettings.useProxy.password "">
+<!ENTITY torsettings.useProxy.type.socks4 "">
+<!ENTITY torsettings.useProxy.type.socks5 "">
+<!ENTITY torsettings.useProxy.type.http "">
+<!ENTITY torsettings.firewall.checkbox "">
+<!ENTITY torsettings.firewall.allowedPorts "">
+<!ENTITY torsettings.useBridges.checkbox "">
+<!ENTITY torsettings.useBridges.label "">
+<!ENTITY torsettings.useBridges.placeholder "">
+
+<!ENTITY torsettings.copyLog "">
+<!ENTITY torsettings.bridgeHelpTitle "">
+<!ENTITY torsettings.bridgeHelp1 "">
+<!ENTITY torsettings.bridgeHelp2 "">
+<!ENTITY torsettings.bridgeHelp3 "">
+<!ENTITY torsettings.bridgeHelp4 "">
diff --git a/src/chrome/locale/ca(a)valencia/progress.dtd b/src/chrome/locale/ca(a)valencia/progress.dtd
new file mode 100644
index 0000000..e0dcfcc
--- /dev/null
+++ b/src/chrome/locale/ca(a)valencia/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "">
+<!ENTITY torprogress.openSettings "">
+<!ENTITY torprogress.heading "">
+<!ENTITY torprogress.pleaseWait "">
diff --git a/src/chrome/locale/ca(a)valencia/torlauncher.properties b/src/chrome/locale/ca(a)valencia/torlauncher.properties
new file mode 100644
index 0000000..0e49bc8
--- /dev/null
+++ b/src/chrome/locale/ca(a)valencia/torlauncher.properties
@@ -0,0 +1,30 @@
+### Copyright (c) 2013, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+# torlauncher.error_title=Tor Launcher
+
+# torlauncher.tor_exited=Tor unexpectedly exited.
+# 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.\n\n%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
diff --git a/src/chrome/locale/cs-CZ/network-settings.dtd b/src/chrome/locale/cs-CZ/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/cs-CZ/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/cs-CZ/progress.dtd b/src/chrome/locale/cs-CZ/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/cs-CZ/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/cs-CZ/torlauncher.properties b/src/chrome/locale/cs-CZ/torlauncher.properties
new file mode 100644
index 0000000..a2550db
--- /dev/null
+++ b/src/chrome/locale/cs-CZ/torlauncher.properties
@@ -0,0 +1,57 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/cs/network-settings.dtd b/src/chrome/locale/cs/network-settings.dtd
new file mode 100644
index 0000000..fa15d07
--- /dev/null
+++ b/src/chrome/locale/cs/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Síťové nastavení TORu">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Ano">
+<!ENTITY torSettings.no "Ne">
+
+<!ENTITY torSettings.firstQuestion "Která možnost nejlépe popisuje Vaši situaci?">
+<!ENTITY torSettings.configurePrompt1 "Toto připojení počítače k internetu je cenzurováno, filtrováno, nebo zprostředkováno.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Konfigurovat">
+<!ENTITY torSettings.connectPrompt2 "Chtěl bych se přímo připojit k Tor síti.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Připojit">
+
+<!ENTITY torSettings.proxyQuestion "Potřebuje Váš počítač připojení k internetu přes proxy?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "Jestli nevíte jak odpovědět na tuto otázku, podívejte se na internetové nastavení v jiném prohlížeči, aby jste zjistili, zda je nakonfigurován k použití proxy.">
+<!ENTITY torSettings.enterProxy "Zadejte nastavení serveru proxy.">
+<!ENTITY torSettings.firewallQuestion "Je počítač připojen k internetu přes firewall, který povoluje připojení pouze přes některé porty?">
+<!ENTITY torSettings.firewallHelp "Jestli si nejste jisti, jak odpovědět na otázku, odpovězte NE. Jestliže narazíte na problémy s připojením k Tor síti, změňte toto nastavení.">
+<!ENTITY torSettings.enterFirewall "Zadejte čárkami oddělený seznam portů, které jsou povoleny firewallem.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Čekání na start TORu">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Volitelný">
+
+<!ENTITY torsettings.useProxy.checkbox "Tento počítač musí používat server proxy pro přístup k Internetu">
+<!ENTITY torsettings.useProxy.type "Typ Proxy:">
+<!ENTITY torsettings.useProxy.address "Adresa:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP adresa nebo jméno hosta">
+<!ENTITY torsettings.useProxy.port "Port:">
+<!ENTITY torsettings.useProxy.username "Uživatel:">
+<!ENTITY torsettings.useProxy.password "Heslo.">
+<!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 "Tento počítač používá firewall, který povoluje připojení pouze přes některé porty.">
+<!ENTITY torsettings.firewall.allowedPorts "Povolené porty:">
+<!ENTITY torsettings.useBridges.checkbox "Můj internetový poskytovatel (ISP) blokuje připojení k Tor síti">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Zadejte jedno nebo více mostních relé (jedno na řádek).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Zkopíruj logový soubor Toru do schránky">
+<!ENTITY torsettings.bridgeHelpTitle "Nápověda o mostních relé">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/cs/progress.dtd b/src/chrome/locale/cs/progress.dtd
new file mode 100644
index 0000000..c953214
--- /dev/null
+++ b/src/chrome/locale/cs/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Stav">
+<!ENTITY torprogress.openSettings "Otevřít nastavení">
+<!ENTITY torprogress.heading "Připojuji se k síti Tor">
+<!ENTITY torprogress.pleaseWait "Prosím vyčkejte než bude sestaveno připojení k síti Tor.">
diff --git a/src/chrome/locale/cs/torlauncher.properties b/src/chrome/locale/cs/torlauncher.properties
index f944dd2..960bc88 100644
--- a/src/chrome/locale/cs/torlauncher.properties
+++ b/src/chrome/locale/cs/torlauncher.properties
@@ -1,7 +1,40 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.tor_bootstrap_failed_details=%1$S Selhání (%2$S).
+torlauncher.error_title=Tor spouštěč
+
+torlauncher.tor_exited=Tor znenadání skončil.
+torlauncher.please_restart_app=Prosím restartujte aplikaci.
+torlauncher.tor_controlconn_failed=Nemohu se připojit ke kontrolnímu portu Tor.
+torlauncher.tor_failed_to_start=Tor nenastartoval.
+torlauncher.tor_control_failed=Nezdařilo se převzít kontrolu nad Tor.
+torlauncher.tor_bootstrap_failed=Tor selhal při sestavení připojení do sítě Tor.
+torlauncher.tor_bootstrap_failed_details=%1$S selhal (%2$S).
+
+torlauncher.unable_to_start_tor=Tor není schopen startovat\n\n%S
+torlauncher.tor_missing=Spustitelný soubor Tor chybí.
+torlauncher.torrc_missing=Chybí soubor torrc.
+torlauncher.datadir_missing=Adresář s daty Tor neexistuje.
+torlauncher.password_hash_missing=Nepovedlo se získat hashované heslo.
+
+torlauncher.failed_to_get_settings=Nelze načíst Tor nastavení.\n\n%S
+torlauncher.failed_to_save_settings=Nelze uložit Tor nastavení.\n\n%S
+torlauncher.ensure_tor_is_running=Prosím zkontrolujte zda Tor je spuštěn.
+
+torlauncher.error_proxy_addr_missing=Pro nastavení Toru pro použití proxy serveru musíte specifikovat jak IP adresu (nebo jméno hostitele) tak číslo portu
+torlauncher.error_proxy_type_missing=Musíte vybrat typ proxy
+torlauncher.error_bridges_missing=Musíte specifikovat jeden nebo více mostů.
+torlauncher.error_default_bridges_type_missing=Pro zadané bridge musíte zadat typ transportu.
+torlauncher.error_bridge_bad_default_type=Nejsou zadané žádné bridge, které by měly ty transportu %S. Změňte prosím nastavení.
+
+torlauncher.recommended_bridge=(doporučeno)
+
+torlauncher.connect=Připojit
+torlauncher.quit=Ukoncit
+torlauncher.quit_win=Konec
+torlauncher.done=Hotovo
+
+torlauncher.forAssistance=Pro asistenci kontaktujte %S
torlauncher.bootstrapStatus.conn_dir=Připojování do adresáře uzlu
torlauncher.bootstrapStatus.handshake_dir=Navazuji spojení s šifrovaným adresářem
@@ -10,15 +43,16 @@ torlauncher.bootstrapStatus.loading_status=Načítam stav sítě
torlauncher.bootstrapStatus.loading_keys=Nahrávám certifikáty autority
torlauncher.bootstrapStatus.requesting_descriptors=Zjišťuji informace o uzlu
torlauncher.bootstrapStatus.loading_descriptors=Nahrávám informace o uzlu
-torlauncher.bootstrapStatus.conn_or=Připojuji se do sítě Tor
-torlauncher.bootstrapStatus.handshake_or=Sestavuji Tor řetězec
-torlauncher.bootstrapStatus.done=Připojeno do sítě Tor!
+torlauncher.bootstrapStatus.conn_or=Připojuji se k síti Tor
+torlauncher.bootstrapStatus.handshake_or=Navazuji na okruh Tor
+torlauncher.bootstrapStatus.done=Připojen k síti Tor!
torlauncher.bootstrapWarning.done=hotovo
-torlauncher.bootstrapWarning.connectrefused=spojení odmítnuto
+torlauncher.bootstrapWarning.connectrefused=připojení odmítnuto
torlauncher.bootstrapWarning.misc=různý
torlauncher.bootstrapWarning.resourcelimit=nedostatečné zdroje
torlauncher.bootstrapWarning.identity=nesouhlasí identita
-torlauncher.bootstrapWarning.timeout=čas spojení vypršel
+torlauncher.bootstrapWarning.timeout=vypršel čas na připojení
torlauncher.bootstrapWarning.noroute=bez spojení s hostitelem
-torlauncher.bootstrapWarning.ioerror=chyba čtená/zápisu
+torlauncher.bootstrapWarning.ioerror=chyba během čtení/zápisu
+torlauncher.bootstrapWarning.pt_missing=Chybějící zásuvný transport
diff --git a/src/chrome/locale/csb/network-settings.dtd b/src/chrome/locale/csb/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/csb/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/csb/progress.dtd b/src/chrome/locale/csb/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/csb/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/csb/torlauncher.properties b/src/chrome/locale/csb/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/csb/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/cv/network-settings.dtd b/src/chrome/locale/cv/network-settings.dtd
new file mode 100644
index 0000000..8ea68ee
--- /dev/null
+++ b/src/chrome/locale/cv/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Çапла">
+<!ENTITY torSettings.no "Çук">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Çыхăнтар">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Прокси:">
+<!ENTITY torsettings.useProxy.address "Адрĕс:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
+<!ENTITY torsettings.useProxy.port "Порчĕ:">
+<!ENTITY torsettings.useProxy.username "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">
+<!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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/cv/progress.dtd b/src/chrome/locale/cv/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/cv/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/cv/torlauncher.properties b/src/chrome/locale/cv/torlauncher.properties
new file mode 100644
index 0000000..5f59ee4
--- /dev/null
+++ b/src/chrome/locale/cv/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Çыхăнтар
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/cy/network-settings.dtd b/src/chrome/locale/cy/network-settings.dtd
new file mode 100644
index 0000000..861e527
--- /dev/null
+++ b/src/chrome/locale/cy/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Gosodiadau Rhwydwaith Tor">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Cyn cysylltu â rhwydwaith Tor, mae angen i chi roi gwybodaeth am gysylltiad y cyfrifiadur hwn â'r rhyngrwyd.">
+
+<!ENTITY torSettings.yes "Ie">
+<!ENTITY torSettings.no "Na">
+
+<!ENTITY torSettings.firstQuestion "Pa un o'r canlynol sy'n disgrifio'ch sefyllfa orau?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "Mae angen i mi ffurweddu pont, mur gwarchod, neu osodiadau dirprwy.">
+<!ENTITY torSettings.configure "Ffurfweddu">
+<!ENTITY torSettings.connectPrompt2 "Hoffwn gysylltu'n uniongyrchol â rhwydwaith Tor.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Cysylltu">
+
+<!ENTITY torSettings.proxyQuestion "A oes y cyfrifiadur hwn angen ddirprwy i gyrchu'r Rhyngrwyd?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Rhowch osodiadau'r dirprwy.">
+<!ENTITY torSettings.firewallQuestion "A yw cysylltiad Rhyngrwyd y cyfrifiadur hwn yn mynd trwy mur gwarchod sy'n caniatau cysylltiadau i rai pyrth penodol?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Yn aros am Tor i gychwyn…">
+<!ENTITY torsettings.restart "Ailgychwyn">
+
+<!ENTITY torsettings.optional "Dewisiol">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Math Dirprwy:">
+<!ENTITY torsettings.useProxy.address "Cyfeiriad:">
+<!ENTITY torsettings.useProxy.address.placeholder "Cyfeiriad IP neu enw gwesteiwr">
+<!ENTITY torsettings.useProxy.port "Porth:">
+<!ENTITY torsettings.useProxy.username "Enw defnyddiwr:">
+<!ENTITY torsettings.useProxy.password "Cyfrinair:">
+<!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 "Pyrth a ganiateir:">
+<!ENTITY torsettings.useBridges.checkbox "Mae fy Narparydd Gwasanaeth Rhyngrwyd (ISP) yn atal cysylltiadau â rhwydwaith Tor">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copio Cofnod Tor i'r Clipfwrdd">
+<!ENTITY torsettings.bridgeHelpTitle "Cymorth Pont Relái">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/cy/progress.dtd b/src/chrome/locale/cy/progress.dtd
new file mode 100644
index 0000000..507d1c6
--- /dev/null
+++ b/src/chrome/locale/cy/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Statws Tor">
+<!ENTITY torprogress.openSettings "Agor Gosodiadau">
+<!ENTITY torprogress.heading "Yn cysylltu â rhwydwaith Tor">
+<!ENTITY torprogress.pleaseWait "Arhoswch tra ein bod yn cysylltu â rhwydwaith Tor.">
diff --git a/src/chrome/locale/cy/torlauncher.properties b/src/chrome/locale/cy/torlauncher.properties
new file mode 100644
index 0000000..97c0389
--- /dev/null
+++ b/src/chrome/locale/cy/torlauncher.properties
@@ -0,0 +1,58 @@
+### Copyright (c) 2014, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+torlauncher.error_title=Lansiwr Tor
+
+torlauncher.tor_exited=Gadawodd Tor ar hap.
+torlauncher.please_restart_app=Ailgychwynnwch y rhaglen hon.
+torlauncher.tor_controlconn_failed=Ni allai gysylltu â'r porth rheolaeth Tor.
+torlauncher.tor_failed_to_start=Methodd Tor gychwyn.
+torlauncher.tor_control_failed=Methu cymryd rheolaeth o Tor.
+torlauncher.tor_bootstrap_failed=Methodd Tor cysylltu â rhwydwaith Tor.
+torlauncher.tor_bootstrap_failed_details=Methodd %1$S (%2$S).
+
+torlauncher.unable_to_start_tor=Methu cychwyn Tor.\n\n%S
+torlauncher.tor_missing=Mae'r gweithredadwyn Tor ar goll.
+torlauncher.torrc_missing=Mae'r ffeil torrc ar goll.
+torlauncher.datadir_missing=Nid yw'r cyfeiriadur data Tor yn bodoli.
+torlauncher.password_hash_missing=Methwyd gael cyfrinair stwnshlyd.
+
+torlauncher.failed_to_get_settings=Methwyd nôl gosodiadau Tor.\n\n%S
+torlauncher.failed_to_save_settings=Methwyd gadw gosodiadau Tor.\n\n%S
+torlauncher.ensure_tor_is_running=Gwnewch yn siŵr bod Tor yn rhedeg.
+
+torlauncher.error_proxy_addr_missing=Dylech bonodi cyfeiriad IP ac enw gwesteiwr er mwyn gosod Tor i ddefnydio dirprwy i gael mynediad i'r we.
+torlauncher.error_proxy_type_missing=Dylech benodi'r fath o dirprwy.
+torlauncher.error_bridges_missing=Dylech benodi un neu mwy o bontydd.
+torlauncher.error_default_bridges_type_missing=Mae'n rhaid i chi dewis fath o cludiant ar cyfer y pontiau a ddatparwyd.
+torlauncher.error_bridge_bad_default_type=Does ddim pontiau a ddatparwyd gyda'r fath cludiant %S ar gael. Addaswch eich osodiadau, os gwelwch yn dda.
+
+torlauncher.recommended_bridge=(awgrymwyd)
+
+torlauncher.connect=Cysylltu
+torlauncher.quit=Cau
+torlauncher.quit_win=Gadael
+torlauncher.done=Wedi gorffen
+
+torlauncher.forAssistance=Am gymorth, cysylltu â %S
+
+torlauncher.bootstrapStatus.conn_dir=Cysylltu i cyfeiriadur cyfnewid
+torlauncher.bootstrapStatus.handshake_dir=Yn sefydlu cysylltiad cyfeiriadur amgryptiedig
+torlauncher.bootstrapStatus.requesting_status=Yn adalw statws y rhwydwaith
+torlauncher.bootstrapStatus.loading_status=Yn llwytho statws rhwydwaith
+torlauncher.bootstrapStatus.loading_keys=Llwytho tystysgrifiadau awrurdod
+torlauncher.bootstrapStatus.requesting_descriptors=Gofyn am gwybodaeth cyfnewid
+torlauncher.bootstrapStatus.loading_descriptors=Llwytho gwybodaeth cyfnewid
+torlauncher.bootstrapStatus.conn_or=Cysylltu â'r rhwydwaith Tor
+torlauncher.bootstrapStatus.handshake_or=Yn sefydlu cylched Tor
+torlauncher.bootstrapStatus.done=Cysylltwyd â rhwydwaith Tor!
+
+torlauncher.bootstrapWarning.done=wedi gorffen
+torlauncher.bootstrapWarning.connectrefused=gwrthodwyd y cysylltiad
+torlauncher.bootstrapWarning.misc=amrywiol
+torlauncher.bootstrapWarning.resourcelimit=adnoddau annigonol
+torlauncher.bootstrapWarning.identity=anghysondeb hunaniaeth
+torlauncher.bootstrapWarning.timeout=cysylltiad goramser
+torlauncher.bootstrapWarning.noroute=ddim llwybr i'r cad
+torlauncher.bootstrapWarning.ioerror=camgymeriad darllen/sgwennu
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/da/network-settings.dtd b/src/chrome/locale/da/network-settings.dtd
new file mode 100644
index 0000000..8680520
--- /dev/null
+++ b/src/chrome/locale/da/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor netværksindstillinger">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Før du forbinder til Tor netværket, skal du indtaste information om denne computers Internetforbindelse.">
+
+<!ENTITY torSettings.yes "Ja">
+<!ENTITY torSettings.no "Nej">
+
+<!ENTITY torSettings.firstQuestion "Hvilke af de følgende beskriver bedst din situation?">
+<!ENTITY torSettings.configurePrompt1 "Denne computers internetforbindelse er censureret, filtreret, eller føres igennem en proxy.">
+<!ENTITY torSettings.configurePrompt2 "Jeg ønsker at konfigurere bro, firewall eller proxy indstillinger">
+<!ENTITY torSettings.configure "Indstil">
+<!ENTITY torSettings.connectPrompt2 "Jeg vil forbinde direkte til Tor netværket.">
+<!ENTITY torSettings.connectPrompt3 "Dette vil virker i de fleste situationer">
+<!ENTITY torSettings.connect "Tilslut">
+
+<!ENTITY torSettings.proxyQuestion "Skal denne computer bruge en proxy for at forbinde til internettet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "Hvis du ikke kender svaret på dette spørgsmål, så kig på internetindstillingerne i en anden browser for at se om den er konfigureret til at bruge en proxy.">
+<!ENTITY torSettings.enterProxy "Indtast proxy-indstillinger.">
+<!ENTITY torSettings.firewallQuestion "Går denne computers internetforbindelse igennem en firewall som kun tillader forbindelse til visse porte?">
+<!ENTITY torSettings.firewallHelp "Hvis du ikke er sikker på hvordan du skal svare på dette spørgsmål, vælg Nej. Hvis du løber ind i problemer med at forbinde til Tor netværket, skal du ændre denne indstilling.">
+<!ENTITY torSettings.enterFirewall "Indtast en komma-separeret liste over porte der er tilladt på firewallen.">
+<!ENTITY torSettings.bridgeQuestion "Blokerer eller censurerer din internetudbyder (ISP) forbindelser til Tor netværket?">
+<!ENTITY torSettings.bridgeHelp "Hvis du er usikker på svaret til dette spørgsmål, vælg No.&#160; Hvis du vælger Ja, vil du blive bedt om at konfigurere Tor Broer, der er ulistede relays, som gør det sværere at blokere forbindelser til Tor Netværket.">
+<!ENTITY torSettings.bridgeSettingsPrompt "Du kan bruge det tildelte sæt broer eller du kan hente og indtaste et skræddersyet sæt broer.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Venter på at Tor starter...">
+<!ENTITY torsettings.restart "Genstart">
+
+<!ENTITY torsettings.optional "Valgfri">
+
+<!ENTITY torsettings.useProxy.checkbox "Denne computer skal bruge en proxy for at forbinde til internettet">
+<!ENTITY torsettings.useProxy.type "Proxy type:">
+<!ENTITY torsettings.useProxy.address "Adresse:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP adresse eller værtsnavn">
+<!ENTITY torsettings.useProxy.port "Port:">
+<!ENTITY torsettings.useProxy.username "Brugernavn:">
+<!ENTITY torsettings.useProxy.password "Kodeord:">
+<!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 "Denne computer går gennem en firewall som kun tillader forbindelse til specifikke porte">
+<!ENTITY torsettings.firewall.allowedPorts "Tilladte Porte:">
+<!ENTITY torsettings.useBridges.checkbox "Min udbyder (ISP) blokerer forbindelse til Tor netværket">
+<!ENTITY torsettings.useBridges.default "Forbind med tildelte broer">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Indtast skræddersyede broer">
+<!ENTITY torsettings.useBridges.label "Indtast et eller flere bro-relæer (et per linie)">
+<!ENTITY torsettings.useBridges.placeholder "type adresse:port">
+
+<!ENTITY torsettings.copyLog "Kopier Tor loggen til udklipsholderen">
+<!ENTITY torsettings.bridgeHelpTitle "Bro-relæ hjælp">
+<!ENTITY torsettings.bridgeHelp1 "Hvis du ikke kan forbinde dig til Tor netværket er det muligt at din internet udbyder (ISP) eller anden myndighed blokerer Tor. &#160; Det er ofte muligt at komme rundt om en blokade ved at bruge en Tor bro. En bro er et relæ som ikke er på den offentliggjorte liste og som derfor er sværere at blokkere.">
+<!ENTITY torsettings.bridgeHelp1B "Du kan bruge det pre-konfigurerede tildelte sæt af bro-adresser eller du kan hente et skræddersyet sæt adresser ved at bruge en af følgende tre metoder:">
+<!ENTITY torsettings.bridgeHelp2Heading "På nettet">
+<!ENTITY torsettings.bridgeHelp2 "Brug en browser og besøg https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Via den automatiske email service">
+<!ENTITY torsettings.bridgeHelp3 "Send en email til bridges(a)torproject.org kun bestående af linjen 'get bridges' i indholdet.&#160; For at gøre det sværere at få kendskab til alle bro adresser med henblik på blokering er det kun muligt at sende fra en gmail.com eller yahoo.com email adresse.">
+<!ENTITY torsettings.bridgeHelp4Heading "Via vores Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "Som en sidste mulighed kan du bede om at få en bro adresse tilsendt ved at sende en venlig email to help(a)rt.torproject.org.&#160; Bemærk venligst at alle emails besvares manuelt.">
diff --git a/src/chrome/locale/da/progress.dtd b/src/chrome/locale/da/progress.dtd
new file mode 100644
index 0000000..7e3f342
--- /dev/null
+++ b/src/chrome/locale/da/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Åben Indstillinger">
+<!ENTITY torprogress.heading "Forbinder til Tor netværket">
+<!ENTITY torprogress.pleaseWait "Vent venligst imens vi etablerer en forbindelse til Tor netværket.">
diff --git a/src/chrome/locale/da/torlauncher.properties b/src/chrome/locale/da/torlauncher.properties
index b796d0c..143d876 100644
--- a/src/chrome/locale/da/torlauncher.properties
+++ b/src/chrome/locale/da/torlauncher.properties
@@ -1,7 +1,40 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.tor_bootstrap_failed_details=%1$S mislykkedes (%2$S).
+torlauncher.error_title=Tor starter
+
+torlauncher.tor_exited=Tor lukkede uventet.
+torlauncher.please_restart_app=Genstart venligst programmet
+torlauncher.tor_controlconn_failed=Kunne ikke forbinde til Tor kontrol-porten.
+torlauncher.tor_failed_to_start=Tor kunne ikke starte.
+torlauncher.tor_control_failed=Det lykkedes ikke at tage kontrol over Tor.
+torlauncher.tor_bootstrap_failed=Tor kunne ikke etablere forbindelse til Tor netværket
+torlauncher.tor_bootstrap_failed_details=%1$S fejlede (%2$S).
+
+torlauncher.unable_to_start_tor=Kan ikke starte Tor.\n\n%S
+torlauncher.tor_missing=Kunne ikke finde Tor programmet.
+torlauncher.torrc_missing=Torrc-filen mangler.
+torlauncher.datadir_missing=Tor's data bibliotek eksisterer ikke.
+torlauncher.password_hash_missing=Kunne ikke finde hash-værdi af kodeordet.
+
+torlauncher.failed_to_get_settings=Kunne ikke læse Tor indstillingerne..⏎\n⏎\n%S
+torlauncher.failed_to_save_settings=Kunne ikke gemme Tor indstillingerne.⏎\n⏎\n%S
+torlauncher.ensure_tor_is_running=Kontroller venligst at Tor kører.
+
+torlauncher.error_proxy_addr_missing=Du skal angive både IP adresse eller værts navn og en port, for at indstille Tor til at bruge en proxy som forbindelse til Internettet.
+torlauncher.error_proxy_type_missing=Du skal vælge proxy-typen:
+torlauncher.error_bridges_missing=Du skal angive en eller flere broer.
+torlauncher.error_default_bridges_type_missing=Du skal vælge en transporttype for de tildelte broer.
+torlauncher.error_bridge_bad_default_type=Ingen tildelte broer med transporttypen %S er tilgængelige. Venligst justér dine indstillinger.
+
+torlauncher.recommended_bridge=(Anbefalet)
+
+torlauncher.connect=Tilslut
+torlauncher.quit=Afslut
+torlauncher.quit_win=Afslut
+torlauncher.done=Færdig
+
+torlauncher.forAssistance=For hjælp, kontakt %S
torlauncher.bootstrapStatus.conn_dir=Tilslutter til relæ mappe
torlauncher.bootstrapStatus.handshake_dir=Opretter en krypteret mappe forbindelse
@@ -22,3 +55,4 @@ torlauncher.bootstrapWarning.identity=identitet matcher ikke
torlauncher.bootstrapWarning.timeout=forbindelse timeout
torlauncher.bootstrapWarning.noroute=ingen rute til vært
torlauncher.bootstrapWarning.ioerror=læs/skriv fejl
+torlauncher.bootstrapWarning.pt_missing=mangler udskiftelig transport
diff --git a/src/chrome/locale/dz/network-settings.dtd b/src/chrome/locale/dz/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/dz/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/dz/progress.dtd b/src/chrome/locale/dz/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/dz/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/dz/torlauncher.properties b/src/chrome/locale/dz/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/dz/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/el-GR/network-settings.dtd b/src/chrome/locale/el-GR/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/el-GR/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/el-GR/progress.dtd b/src/chrome/locale/el-GR/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/el-GR/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/el-GR/torlauncher.properties b/src/chrome/locale/el-GR/torlauncher.properties
new file mode 100644
index 0000000..a2550db
--- /dev/null
+++ b/src/chrome/locale/el-GR/torlauncher.properties
@@ -0,0 +1,57 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/el/network-settings.dtd b/src/chrome/locale/el/network-settings.dtd
new file mode 100644
index 0000000..3f58109
--- /dev/null
+++ b/src/chrome/locale/el/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Ρυθμίσεις Δικτύου ">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Ναι">
+<!ENTITY torSettings.no "Οχι">
+
+<!ENTITY torSettings.firstQuestion "Ποιο από τα παρακάτω περιγράφει καλύτερα την κατάστασή σας;">
+<!ENTITY torSettings.configurePrompt1 "Σύνδεση στο διαδικτυο αυτού του υπολογιστή λογοκρινετε, φιλτραρετε ή εμποδιζετε γενικως. ">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Ρύθμιση ">
+<!ENTITY torSettings.connectPrompt2 "Θα ήθελα να συνδεθεί άμεσα με το δίκτυο Tor.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Σύνδεση">
+
+<!ENTITY torSettings.proxyQuestion "Μήπως αυτός ο υπολογιστής πρέπει να χρησιμοποιήση έναν διακομιστή μεσολάβησης για πρόσβαση στο Διαδίκτυο;">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "Εάν δεν είστε βέβαιοι πώς να απαντήσετε στο ερώτημα αυτό, δείτε τις ρυθμίσεις διαδικτυου σε άλλο φυλλομετρητή για να δείτε αν έχει ρυθμιστεί να χρησιμοποιεί διακομιστή μεσολάβησης.">
+<!ENTITY torSettings.enterProxy "Εισάγωγη των ρυθμίσεων διακομιστή μεσολάβησης.">
+<!ENTITY torSettings.firewallQuestion "Πηγαίνει μέσω ενός τείχους προστασίας που επιτρέπει μόνο συνδέσεις σε ορισμένες θύρες σύνδεσης Internet αυτού του υπολογιστή;">
+<!ENTITY torSettings.firewallHelp "Εάν δεν είστε βέβαιοι πώς να απαντήσετε στο ερώτημα αυτό, επιλέξτε Όχι. Εάν αντιμετωπίζετε προβλήματα με τη σύνδεση με το δίκτυο Tor, αλλάξτε αυτή τη ρύθμιση. ">
+<!ENTITY torSettings.enterFirewall "Πληκτρολογήστε μια λίστα διαχωρισμένη με κόμματα των θυρών που επιτρέπονται από το firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Αναμονή για να ξεκινήσει το Tor... ">
+<!ENTITY torsettings.restart "Επανεκκίνηση">
+
+<!ENTITY torsettings.optional "Προεραιτικα">
+
+<!ENTITY torsettings.useProxy.checkbox "Αυτός ο υπολογιστής θα πρέπει να χρησιμοποιήση έναν διακομιστή μεσολάβησης για πρόσβαση στο διαδικτυο">
+<!ENTITY torsettings.useProxy.type "Τύπος διακομιστή μεσολάβησης:">
+<!ENTITY torsettings.useProxy.address "Διεύθυνση:">
+<!ENTITY torsettings.useProxy.address.placeholder "Διεύθυνση ΙΡ η όνομα υπολογιστή ">
+<!ENTITY torsettings.useProxy.port "Θύρα συστήματος:">
+<!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">
+<!ENTITY torsettings.firewall.checkbox "Το τείχος προστασίας μου με αφήνει να συνδέομαι μόνο σε συγκεκριμένες θύρες συστήματος">
+<!ENTITY torsettings.firewall.allowedPorts "Επιτρεπόμενες Θύρες:">
+<!ENTITY torsettings.useBridges.checkbox "Ο πάροχος διαδικτυου (ISP) μπλοκάρει τις συνδέσεις στο δίκτυο του Tor">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Αντιγραφή στο πρόχειρο">
+<!ENTITY torsettings.bridgeHelpTitle "Γεφυρες αναμεταδοτων Βοηθεια">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/el/progress.dtd b/src/chrome/locale/el/progress.dtd
new file mode 100644
index 0000000..70b8fc5
--- /dev/null
+++ b/src/chrome/locale/el/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Κατάσταση του Tor ">
+<!ENTITY torprogress.openSettings "Ανοιγμα ρυθμισεων">
+<!ENTITY torprogress.heading "Δημιουργια σύνδεσης στο δίκτυο Tor">
+<!ENTITY torprogress.pleaseWait "Παρακαλώ περιμένετε ενώ δημιουργούμε μια σύνδεση με το δίκτυο Tor.">
diff --git a/src/chrome/locale/el/torlauncher.properties b/src/chrome/locale/el/torlauncher.properties
index 0175011..f112828 100644
--- a/src/chrome/locale/el/torlauncher.properties
+++ b/src/chrome/locale/el/torlauncher.properties
@@ -1,8 +1,41 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
+torlauncher.error_title=Tor Launcher
+
+torlauncher.tor_exited=Το Tor σταμάτησε απροσδόκητα
+torlauncher.please_restart_app=Παρακαλώ επανεκκινήστε την εφαρμογή.
+torlauncher.tor_controlconn_failed=Δεν ήταν δυνατή η σύνδεση με την υποδοχη ελέγχου του Tor.
+torlauncher.tor_failed_to_start=Αδυναμία εκκίνησης του Tor.
+torlauncher.tor_control_failed=Απέτυχε να πάρει τον έλεγχο του Tor.
+torlauncher.tor_bootstrap_failed=Το Tor απέτυχε να δημιουργήσει μια σύνδεση δικτύου 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.failed_to_get_settings=Αποτυχία διαγραφής των Tor ρυθμισεων.⏎\n⏎\n%S
+torlauncher.failed_to_save_settings=Δεν είναι δυνατή η αποθήκευση των Tor ρυθμίσεων.⏎\n⏎ \n%S
+torlauncher.ensure_tor_is_running=Βεβαιωθείτε ότι το Tor τρέχει.
+
+torlauncher.error_proxy_addr_missing=Πρέπει να καθορίσετε μία διεύθυνση IP ή ένα όνομα υπολογιστή και μία θύρα συστήματος για να ρυθμίσετε το Tor να χρησιμοποιεί διακομιστή μεσολάβησης για πρόσβαση στο διαδίκτυο.
+torlauncher.error_proxy_type_missing=Πρέπει να επιλέξετε τον τύπο του πληρεξούσιου διακομηστή.
+torlauncher.error_bridges_missing=Πρέπει να καθορίσετε μια ή περισσότερες γέφυρες.
+torlauncher.error_default_bridges_type_missing=Πρέπει να επιλέξετε έναν τύπο μεταφοράς για τις παρεχόμενες γέφυρες.
+torlauncher.error_bridge_bad_default_type=Δεν υπάρχουν γέφυρες που έχουν το είδος μεταφοράς %S διαθέσιμες. Παρακαλούμε να προσαρμόσετε τις ρυθμίσεις σας.
+
+torlauncher.recommended_bridge=(συνιστάται)
+
+torlauncher.connect=Σύνδεση
+torlauncher.quit=Έξοδος
+torlauncher.quit_win=Έξοδος
+torlauncher.done=Τελος
+
+torlauncher.forAssistance=Για βοήθεια, επικοινωνήστε με το% S
+
torlauncher.bootstrapStatus.conn_dir=Σύνδεση σε ενδιάμεσο (relay) κατάλογο
torlauncher.bootstrapStatus.handshake_dir=Πραγματοποιήθηκε σύνδεση σε κρυπτογραφημένο κατάλογο
torlauncher.bootstrapStatus.requesting_status=Ανάκτηση της κατάστασης του δικτύου
@@ -10,7 +43,7 @@ torlauncher.bootstrapStatus.loading_status=Φόρτωση της κατάστα
torlauncher.bootstrapStatus.loading_keys=Φόρτωση των πιστοποιητικών του φορέα
torlauncher.bootstrapStatus.requesting_descriptors=Γίνεται αίτηση για πληροφορίες των Ενδιάμεσων
torlauncher.bootstrapStatus.loading_descriptors=Φόρτωση πληροφοριών Ενδιάμεσου
-torlauncher.bootstrapStatus.conn_or=Γίνεται σύνδεση στο δίκτυο Tor
+torlauncher.bootstrapStatus.conn_or=Δημιουργια σύνδεσης στο δίκτυο Tor
torlauncher.bootstrapStatus.handshake_or=Σύνδεση σε ένα κύκλωμα Tor
torlauncher.bootstrapStatus.done=Συνδέθηκε στο δίκτυο Tor!
@@ -22,3 +55,4 @@ torlauncher.bootstrapWarning.identity=η ταυτότητα δεν ταιριά
torlauncher.bootstrapWarning.timeout=λήξη χρονικού ορίου σύνδεσης
torlauncher.bootstrapWarning.noroute=δεν βρέθηκε διαδρομή προς σύνδεση
torlauncher.bootstrapWarning.ioerror=σφάλμα ανάγνωσης/εγγραφής
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/en-GB/network-settings.dtd b/src/chrome/locale/en-GB/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/en-GB/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/en-GB/progress.dtd b/src/chrome/locale/en-GB/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/en-GB/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/en-GB/torlauncher.properties b/src/chrome/locale/en-GB/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/en-GB/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/en/network-settings.dtd b/src/chrome/locale/en/network-settings.dtd
index a346274..4cedae6 100644
--- a/src/chrome/locale/en/network-settings.dtd
+++ b/src/chrome/locale/en/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
<!-- Other: -->
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.  Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.  However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.  Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/eo/network-settings.dtd b/src/chrome/locale/eo/network-settings.dtd
new file mode 100644
index 0000000..94ee6ca
--- /dev/null
+++ b/src/chrome/locale/eo/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.address "Adreso:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
+<!ENTITY torsettings.useProxy.port "Pordo:">
+<!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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/eo/progress.dtd b/src/chrome/locale/eo/progress.dtd
new file mode 100644
index 0000000..813ba94
--- /dev/null
+++ b/src/chrome/locale/eo/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Konektante al Tor-reto">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/eo/torlauncher.properties b/src/chrome/locale/eo/torlauncher.properties
index 9b07625..126153c 100644
--- a/src/chrome/locale/eo/torlauncher.properties
+++ b/src/chrome/locale/eo/torlauncher.properties
@@ -1,7 +1,40 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.tor_bootstrap_failed_details=%1$S fiaskis (%2$S).
+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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Eliri
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
torlauncher.bootstrapStatus.conn_dir=Konektante al relajsa dosierujo
torlauncher.bootstrapStatus.handshake_dir=Starigante ĉifritan dosierujan konekton
@@ -22,3 +55,4 @@ torlauncher.bootstrapWarning.identity=Identmiskongruo
torlauncher.bootstrapWarning.timeout=Tempolimo de konekto
torlauncher.bootstrapWarning.noroute=neniu kurso al gastiga komputilo
torlauncher.bootstrapWarning.ioerror=lega/skriba eraro
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/es-AR/network-settings.dtd b/src/chrome/locale/es-AR/network-settings.dtd
new file mode 100644
index 0000000..1e43f92
--- /dev/null
+++ b/src/chrome/locale/es-AR/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Conectar">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/es-AR/progress.dtd b/src/chrome/locale/es-AR/progress.dtd
new file mode 100644
index 0000000..10a52dd
--- /dev/null
+++ b/src/chrome/locale/es-AR/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Estado de Tor">
+<!ENTITY torprogress.openSettings "Abrir Configuraciones">
+<!ENTITY torprogress.heading "Conectando a la red Tor">
+<!ENTITY torprogress.pleaseWait "Por favor, espere mientras establecemos una conexión a la red Tor.">
diff --git a/src/chrome/locale/es-AR/torlauncher.properties b/src/chrome/locale/es-AR/torlauncher.properties
new file mode 100644
index 0000000..6ff39de
--- /dev/null
+++ b/src/chrome/locale/es-AR/torlauncher.properties
@@ -0,0 +1,58 @@
+### Copyright (c) 2014, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+torlauncher.error_title=Lanzador de Tor
+
+torlauncher.tor_exited=Salida inesperada de Tor
+torlauncher.please_restart_app=Por favor, reinicie esta aplicación
+torlauncher.tor_controlconn_failed=No se pudo conectar Tor con el puerto de control
+torlauncher.tor_failed_to_start=Fallo al iniciar Tor
+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=No se puede iniciar Tor.\n\n%S
+torlauncher.tor_missing=No se encuentra el archivo ejecutable de Tor
+torlauncher.torrc_missing=No se encuentra el archivo torrc.
+torlauncher.datadir_missing=El directorio de datos de Tor no existe.
+torlauncher.password_hash_missing=Falló al conseguir contraseñas encriptadas.
+
+torlauncher.failed_to_get_settings=No se pudo acceder a las configuraciones de Tor.\n\n%S
+torlauncher.failed_to_save_settings=No se pudieron guardar las configuraciones de Tor\n\n%S
+torlauncher.ensure_tor_is_running=Por favor, asegurese que Tor esta ejecutandose.
+
+torlauncher.error_proxy_addr_missing=Debes especificar tu IP o el nombre de tu Host y un puerto para que Tor utilize un Proxy para acceder a internet.
+torlauncher.error_proxy_type_missing=Debes seleccionar el tipo de Proxy.
+torlauncher.error_bridges_missing=Debes especificar uno o más puentes.
+torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Conectar
+torlauncher.quit=Quitar
+torlauncher.quit_win=Salir
+torlauncher.done=Hecho
+
+torlauncher.forAssistance=Para solicitar asistencia, contactese al %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Conectando a la red Tor
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/es-CL/network-settings.dtd b/src/chrome/locale/es-CL/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/es-CL/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/es-CL/progress.dtd b/src/chrome/locale/es-CL/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/es-CL/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/es-CL/torlauncher.properties b/src/chrome/locale/es-CL/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/es-CL/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/es-CO/network-settings.dtd b/src/chrome/locale/es-CO/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/es-CO/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/es-CO/progress.dtd b/src/chrome/locale/es-CO/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/es-CO/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/es-CO/torlauncher.properties b/src/chrome/locale/es-CO/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/es-CO/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/es-MX/network-settings.dtd b/src/chrome/locale/es-MX/network-settings.dtd
new file mode 100644
index 0000000..1e43f92
--- /dev/null
+++ b/src/chrome/locale/es-MX/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Conectar">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/es-MX/progress.dtd b/src/chrome/locale/es-MX/progress.dtd
new file mode 100644
index 0000000..614ad59
--- /dev/null
+++ b/src/chrome/locale/es-MX/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Estado de Tor">
+<!ENTITY torprogress.openSettings "Abrir Ajustes">
+<!ENTITY torprogress.heading "Conectando a la red Tor">
+<!ENTITY torprogress.pleaseWait "Porfavor espere mientras establecemos una conexión con la red Tor">
diff --git a/src/chrome/locale/es-MX/torlauncher.properties b/src/chrome/locale/es-MX/torlauncher.properties
new file mode 100644
index 0000000..3ca3453
--- /dev/null
+++ b/src/chrome/locale/es-MX/torlauncher.properties
@@ -0,0 +1,58 @@
+### Copyright (c) 2014, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+torlauncher.error_title=Lanzador Tor
+
+torlauncher.tor_exited=Tor se cerró inesperadamente.
+torlauncher.please_restart_app=Por favor reinicie la aplicación.
+torlauncher.tor_controlconn_failed=No se pudo conectar con el puerto de control Tor
+torlauncher.tor_failed_to_start=Tor falló al iniciar.
+torlauncher.tor_control_failed=Falló al tomar control de Tor.
+torlauncher.tor_bootstrap_failed=Tor falló al establecer conexión con la red Tor.
+torlauncher.tor_bootstrap_failed_details=%1$S failed (%2$S).
+
+torlauncher.unable_to_start_tor=No se ha podido iniciar Tor.\n\n%S
+torlauncher.tor_missing=Falta el ejecutable de Tor.
+torlauncher.torrc_missing=Falta el archivo torrc.
+torlauncher.datadir_missing=El diccionario de datos de Tor no existe.
+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=Por favor asegúrese que Tor esté en funcionamiento.
+
+torlauncher.error_proxy_addr_missing=Debes especificar ambos, una dirección IP o un hostname y un número de puerto para configurar Tor para usar un proxy y acceder a Internet
+torlauncher.error_proxy_type_missing=Debes seleccionar el tipo de proxy.
+torlauncher.error_bridges_missing=Debes especificar uno o más puentes
+torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recomendado)
+
+torlauncher.connect=Conectar
+torlauncher.quit=Abandonar
+torlauncher.quit_win=Salir
+torlauncher.done=Hecho
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Estableciendo conexión con un directorio encriptado.
+torlauncher.bootstrapStatus.requesting_status=Recuperando estado de la red
+torlauncher.bootstrapStatus.loading_status=Cargando estado de red.
+torlauncher.bootstrapStatus.loading_keys=Cargando certificados de autoridad.
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Conectando a la red Tor
+torlauncher.bootstrapStatus.handshake_or=Estableciendo un circuito Tor
+torlauncher.bootstrapStatus.done=¡Conectado a la red Tor!
+
+torlauncher.bootstrapWarning.done=hecho
+torlauncher.bootstrapWarning.connectrefused=Conexión rechazada
+torlauncher.bootstrapWarning.misc=miscellaneous
+torlauncher.bootstrapWarning.resourcelimit=Recursos insuficientes
+torlauncher.bootstrapWarning.identity=Identificar desajuste
+torlauncher.bootstrapWarning.timeout=Tiempo de conexión agotado
+torlauncher.bootstrapWarning.noroute=no route to host
+torlauncher.bootstrapWarning.ioerror=error de lectura/escritura
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/es-NI/network-settings.dtd b/src/chrome/locale/es-NI/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/es-NI/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/es-NI/progress.dtd b/src/chrome/locale/es-NI/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/es-NI/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/es-NI/torlauncher.properties b/src/chrome/locale/es-NI/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/es-NI/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/et/network-settings.dtd b/src/chrome/locale/et/network-settings.dtd
new file mode 100644
index 0000000..07308ca
--- /dev/null
+++ b/src/chrome/locale/et/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Jah">
+<!ENTITY torSettings.no "Ei">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/et/progress.dtd b/src/chrome/locale/et/progress.dtd
new file mode 100644
index 0000000..2d50f46
--- /dev/null
+++ b/src/chrome/locale/et/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tori staatus">
+<!ENTITY torprogress.openSettings "Ava seaded">
+<!ENTITY torprogress.heading "Tor võrgustikuga ühendumine">
+<!ENTITY torprogress.pleaseWait "Palun oota, kuna ühendus Tor võrgustikuga on saavutatud.">
diff --git a/src/chrome/locale/et/torlauncher.properties b/src/chrome/locale/et/torlauncher.properties
new file mode 100644
index 0000000..b36bf3a
--- /dev/null
+++ b/src/chrome/locale/et/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Valmis
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Tor võrgustikuga ühendumine
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/eu/network-settings.dtd b/src/chrome/locale/eu/network-settings.dtd
new file mode 100644
index 0000000..6047b4d
--- /dev/null
+++ b/src/chrome/locale/eu/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor sare ezarpenak">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Bai">
+<!ENTITY torSettings.no "Ez">
+
+<!ENTITY torSettings.firstQuestion "Hurrengoetako zeinek deskribatzen du zure egoera hobekien?">
+<!ENTITY torSettings.configurePrompt1 "Ordenagailu honen Interneteko konexioa zentsuratuta, iragazita, edo proxyatuta dago.">
+<!ENTITY torSettings.configurePrompt2 "Zubi, sueten, edo proxy ezarpenak konfiguratu behar ditut.">
+<!ENTITY torSettings.configure "Konfiguratu">
+<!ENTITY torSettings.connectPrompt2 "Tor sarera zuzenean konektatu nahiko nuke.">
+<!ENTITY torSettings.connectPrompt3 "Hau egoera gehienetan funtzionatuko du.">
+<!ENTITY torSettings.connect "Konektatu">
+
+<!ENTITY torSettings.proxyQuestion "Ordenagailu honek Internetera sartzeko proxyren bat erabili behar al du?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "Galdera hau nola erantzuteaz zalantzan bazaude, begiratu beste nabigatzaile batean Interneteko ezarpenak proxy bat erabiltzeko konfiguratuta dagoen ikusteko.">
+<!ENTITY torSettings.enterProxy "Sartu proxy ezarpenak.">
+<!ENTITY torSettings.firewallQuestion "Ordenagailu honen Interneteko konexioa ataka zehatz batzuetara bakarrik konektatzea baimentzen duen sueten baten zehar al doa?">
+<!ENTITY torSettings.firewallHelp "Galdera hau nola erantzuteaz zalantzan bazaude, hautatu Ez. Tor sarera konektatzen arazoak aurkitzen badituzu, aldatu ezarpen hau.">
+<!ENTITY torSettings.enterFirewall "Suetenak baimendutako eta komaz banandutako ataka zerrenda bat sar ezazu ">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Tor abiarazi dadin itxaroten...">
+<!ENTITY torsettings.restart "Berrabiarazi">
+
+<!ENTITY torsettings.optional "Hautazkoa">
+
+<!ENTITY torsettings.useProxy.checkbox "Ordenagailu honek proxy bat erabili behar du Internetera sartzeko">
+<!ENTITY torsettings.useProxy.type "Proxy mota:">
+<!ENTITY torsettings.useProxy.address "Helbidea:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP helbide edo ostalari izena">
+<!ENTITY torsettings.useProxy.port "Ataka:">
+<!ENTITY torsettings.useProxy.username "Erabiltzaile izena:">
+<!ENTITY torsettings.useProxy.password "Pasahitza:">
+<!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 "Ordenagailu honek ataka zehatz batzuetara bakarrik konektatzea baimentzen duen sueten baten zehar doa">
+<!ENTITY torsettings.firewall.allowedPorts "Baimendutako atakak:">
+<!ENTITY torsettings.useBridges.checkbox "Nire Internet Zerbitzu Hornitzaileak (ISP ingeleraz) Tor sarera konektatzea blokeatzen dit.">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Sartu zubi errele bat edo gehiago (bat lerro bakoitzeko).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Kopiatu Tor erregistroa arbelera">
+<!ENTITY torsettings.bridgeHelpTitle "Zubi errele laguntza">
+<!ENTITY torsettings.bridgeHelp1 "Tor sarera konektatu ezin bazara, baliteke zure Internet Zerbitzu Hornitzaileak (ISP ingeleraz) edo beste agentziaren batek Tor blokeatzen egotea.&#160; Askotan, arazo honen inguruan Tor zubiak, ezkutatuta dauden eta blokeatzeko zailagoak diren erreleak erabiliz lan egin dezakezu.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Webean bidez">
+<!ENTITY torsettings.bridgeHelp2 "Erabili ezazu web nabigatzaile bat https://bridges.torproject.org bisitatzeko">
+<!ENTITY torsettings.bridgeHelp3Heading "Email erantzule automatikoaren bidez">
+<!ENTITY torsettings.bridgeHelp3 "Bidali ezazu mezu bat bridges(a)torproject.org-era mezuaren gorputzean 'get bridges' esaldiarekin.&#160; Hala ere, erasotzaile batentzat zubi helbide asko ikastea zailago izan dadin, eskakizun hau hurrengo domeinuetako eposta helbide batetik bidali behar duzu: gmail.com edo yahoo.com.">
+<!ENTITY torsettings.bridgeHelp4Heading "Laguntza mahaiaren bidez">
+<!ENTITY torsettings.bridgeHelp4 "Azken aukera bezala, zubi erreleak eska ditzakezu mezu adeitsu bat help(a)rt.torproject.org-era bidaliz.&#160; Mesedez, kontuan izan pertsona batek eskarea bakoitza erantzun beharko duela.">
diff --git a/src/chrome/locale/eu/progress.dtd b/src/chrome/locale/eu/progress.dtd
new file mode 100644
index 0000000..91e91fe
--- /dev/null
+++ b/src/chrome/locale/eu/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor egoera">
+<!ENTITY torprogress.openSettings "Ezarpenak ireki">
+<!ENTITY torprogress.heading "Tor sarera konektatzen">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/fa/torlauncher.properties b/src/chrome/locale/fa/torlauncher.properties
index 4914fb2..fc8ac3b 100644
--- a/src/chrome/locale/fa/torlauncher.properties
+++ b/src/chrome/locale/fa/torlauncher.properties
@@ -55,4 +55,4 @@ torlauncher.bootstrapWarning.identity=عدم تطبیق هویت
torlauncher.bootstrapWarning.timeout=اتمام وقت اتصال
torlauncher.bootstrapWarning.noroute=نبود مسیر به میزبان
torlauncher.bootstrapWarning.ioerror=خطای خواندن/نوشتن
-torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
+torlauncher.bootstrapWarning.pt_missing=انتقال جایگزین مفقود است.
diff --git a/src/chrome/locale/fi/network-settings.dtd b/src/chrome/locale/fi/network-settings.dtd
new file mode 100644
index 0000000..24f28b7
--- /dev/null
+++ b/src/chrome/locale/fi/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Torin Verkko Asetukset">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Ennen kuin voit yhdistää Tor verkkoon, sinun pitää antaa tietoa tietokoneesi internet yhteydestä">
+
+<!ENTITY torSettings.yes "Kyllä">
+<!ENTITY torSettings.no "Ei">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Yhdistä">
+
+<!ENTITY torSettings.proxyQuestion "Tarvitseeko tämä tietokone proxya päästäkseen internettiin?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Mene proxy asetuksiin.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "Ellet ole varma kuinka vastata tähän kysymykseen, valitse Ei. Muuta tätä asetusta jos yhteyden saamisessa Tor-verkkoon on ongelmia.">
+<!ENTITY torSettings.enterFirewall "Luettele pilkuin erotettuina ne portit, jotka palomuuri sallii. ">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Käynnistä Vidalia uudelleen">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.address "Osoite:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP osoite tai isännän nimi">
+<!ENTITY torsettings.useProxy.port "Portti:">
+<!ENTITY torsettings.useProxy.username "Käyttäjänimi:">
+<!ENTITY torsettings.useProxy.password "Salasana:">
+<!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 "Tämän tietokoneen palomuuri sallii yhteydet vain tiettyjen porttien kautta.">
+<!ENTITY torsettings.firewall.allowedPorts "Sallitut portit:">
+<!ENTITY torsettings.useBridges.checkbox "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Siirtotyyppi:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/fi/progress.dtd b/src/chrome/locale/fi/progress.dtd
new file mode 100644
index 0000000..75e3532
--- /dev/null
+++ b/src/chrome/locale/fi/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Torin tila">
+<!ENTITY torprogress.openSettings "Avaa Asetukset">
+<!ENTITY torprogress.heading "Yhdistetään Tor-verkkoon">
+<!ENTITY torprogress.pleaseWait "Odota hetki, muodostaa yhteyttä Tor-verkkoon.">
diff --git a/src/chrome/locale/fi/torlauncher.properties b/src/chrome/locale/fi/torlauncher.properties
index ffc6a21..cdcac17 100644
--- a/src/chrome/locale/fi/torlauncher.properties
+++ b/src/chrome/locale/fi/torlauncher.properties
@@ -1,24 +1,58 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.tor_bootstrap_failed_details=%1$S epäonnistui (%2$S).
+torlauncher.error_title=Tor-käynnistin
-torlauncher.bootstrapStatus.conn_dir=Yhdistetään reititinlistaan
-torlauncher.bootstrapStatus.handshake_dir=Muodostetaan suojattu hakemistoyhteys
-torlauncher.bootstrapStatus.requesting_status=Selvitetään verkon tilaa
+torlauncher.tor_exited=Tor lopetti toimintansa yllättäen.
+torlauncher.please_restart_app=Käynnistä sovellus uudestaan.
+torlauncher.tor_controlconn_failed=Ei voi ottaa yhteyttä Tor-hallintaporttiin.
+torlauncher.tor_failed_to_start=Tor ei käynnistynyt.
+torlauncher.tor_control_failed=Torin haltuun ottaminen epäonnistui.
+torlauncher.tor_bootstrap_failed=Tor ei saanut yhteyttä Tor-verkkoon.\n\n%S
+torlauncher.tor_bootstrap_failed_details=%1$S Epäonnistui (%2$S).
+
+torlauncher.unable_to_start_tor=Toria ei voi käynnistää.\n\n%S
+torlauncher.tor_missing=Suoritettava Tor-tiedosto puuttuu.
+torlauncher.torrc_missing=Tiedosto torrc puuttuu.
+torlauncher.datadir_missing=Tor on kadottanut yhteyden tietokantaan.
+torlauncher.password_hash_missing=Salasanan varmistussummaa ei löydy.
+
+torlauncher.failed_to_get_settings=Tor-asetuksia ei saa ladattua.\n\n%S
+torlauncher.failed_to_save_settings=Tor-asetuksia ei saa tallennettua.\n\n%S
+torlauncher.ensure_tor_is_running=Varmista, että Tor on käynnissä.
+
+torlauncher.error_proxy_addr_missing=Sinun on määriteltävä IP-osoite tai verkkonimi sekä porttinumero, jotta Tor voi yhdistää välityspalvelimen kautta Internetiin.
+torlauncher.error_proxy_type_missing=Sinun on valittava välityspalvelimen tyyppi.
+torlauncher.error_bridges_missing=Määrittele yksi tai useampi silta.
+torlauncher.error_default_bridges_type_missing=Sinun täytyy valita siirtotyyppi tarjotuille silloille.
+torlauncher.error_bridge_bad_default_type=Tarjolla olevissa silloissa ei ole saatavilla siirtotyyppiä %S. Mukauta asetuksiasi.
+
+torlauncher.recommended_bridge=(suositeltu)
+
+torlauncher.connect=Yhdistä
+torlauncher.quit=Lopeta
+torlauncher.quit_win=Lopeta
+torlauncher.done=Valmis
+
+torlauncher.forAssistance=Tukea saat ottamalla yhteyttä %S
+
+torlauncher.bootstrapStatus.conn_dir=Yhdistetään reititinhakemistoon
+torlauncher.bootstrapStatus.handshake_dir=Muodostetaan suojattu yhteys hakemistoon
+torlauncher.bootstrapStatus.requesting_status=Noudetaan verkon tilaa
torlauncher.bootstrapStatus.loading_status=Ladataan verkon tilaa
-torlauncher.bootstrapStatus.loading_keys=Ladataan sertifikaattioikeuksia
-torlauncher.bootstrapStatus.requesting_descriptors=Selvitetään reititintietoja
+torlauncher.bootstrapStatus.loading_keys=Ladataan juurivarmenteita
+torlauncher.bootstrapStatus.requesting_descriptors=Pyydetään reititintietoja
torlauncher.bootstrapStatus.loading_descriptors=Ladataan reititintietoja
torlauncher.bootstrapStatus.conn_or=Yhdistetään Tor-verkkoon
-torlauncher.bootstrapStatus.handshake_or=Muodostetaan Tor-datavirta
-torlauncher.bootstrapStatus.done=Yhdistetty Tor-verkkoon
+torlauncher.bootstrapStatus.handshake_or=Muodostetaan Tor-reitti
+torlauncher.bootstrapStatus.done=Yhdistetty Tor-verkkoon!
torlauncher.bootstrapWarning.done=valmis
torlauncher.bootstrapWarning.connectrefused=yhteys hylätty
torlauncher.bootstrapWarning.misc=sekalaiset
-torlauncher.bootstrapWarning.resourcelimit=puutteelliset resurssit
-torlauncher.bootstrapWarning.identity=identiteetti yhteensopimattomuus
-torlauncher.bootstrapWarning.timeout=yhteyden aikakatkaisu
+torlauncher.bootstrapWarning.resourcelimit=riittämättömät resurssit
+torlauncher.bootstrapWarning.identity=yhteensopimaton identiteetti
+torlauncher.bootstrapWarning.timeout=yhteys aikakatkaistu
torlauncher.bootstrapWarning.noroute=ei reittiä palvelimelle
-torlauncher.bootstrapWarning.ioerror=luku-/kirjoitus- virhe
+torlauncher.bootstrapWarning.ioerror=luku/kirjoitusvirhe
+torlauncher.bootstrapWarning.pt_missing=Puuttuu kytkettävä liikenne
diff --git a/src/chrome/locale/fil/network-settings.dtd b/src/chrome/locale/fil/network-settings.dtd
new file mode 100644
index 0000000..a6ffa87
--- /dev/null
+++ b/src/chrome/locale/fil/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Oo">
+<!ENTITY torSettings.no "Wala">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/fil/progress.dtd b/src/chrome/locale/fil/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/fil/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/fil/torlauncher.properties b/src/chrome/locale/fil/torlauncher.properties
new file mode 100644
index 0000000..6628d89
--- /dev/null
+++ b/src/chrome/locale/fil/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Labasan
+torlauncher.done=Tapos na
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/fo/network-settings.dtd b/src/chrome/locale/fo/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/fo/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/fo/progress.dtd b/src/chrome/locale/fo/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/fo/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/fo/torlauncher.properties b/src/chrome/locale/fo/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/fo/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/fr-CA/network-settings.dtd b/src/chrome/locale/fr-CA/network-settings.dtd
new file mode 100644
index 0000000..479fc33
--- /dev/null
+++ b/src/chrome/locale/fr-CA/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Paramètres réseau de Tor">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Avant de vous connecter au réseau Tor, vous devez fournir des informations sur la connexion Internet de cet ordinateur.">
+
+<!ENTITY torSettings.yes "Oui">
+<!ENTITY torSettings.no "Non">
+
+<!ENTITY torSettings.firstQuestion "Laquelle des suivantes décrit le mieux votre situation?">
+<!ENTITY torSettings.configurePrompt1 "La connexion Internet de cet ordinateur est censurée, filtrée ou relayée par un serveur mandataire.">
+<!ENTITY torSettings.configurePrompt2 "Je dois configurer des paramètres de pont, de coupe-feu ou de serveur mandataire.">
+<!ENTITY torSettings.configure "Configurer">
+<!ENTITY torSettings.connectPrompt2 "Je voudrais me connecter directement au réseau Tor.">
+<!ENTITY torSettings.connectPrompt3 "Ceci fonctionnera dans la plupart des situations.">
+<!ENTITY torSettings.connect "Se connecter">
+
+<!ENTITY torSettings.proxyQuestion "Est-ce que cet ordinateur à besoin d'utiliser un serveur mandataire pour accéder à internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "Si vous ne savez pas comment répondre à cette question, regarder les paramètres Internet d'un autre navigateur afin de voir s'il est configuré pour utiliser un mandataire.">
+<!ENTITY torSettings.enterProxy "Saisir les paramètres du serveur mandataire.">
+<!ENTITY torSettings.firewallQuestion "Est-ce que la connexion Internet de cet ordinateur passe par un pare-feu qui n'autorise les connexions que vers certains ports?">
+<!ENTITY torSettings.firewallHelp "Si vous ne savez par comment répondre à cette question, choisissez Non. Si vous éprouvez des difficultés à vous connecter au réseau Tor, changer ce paramètre.">
+<!ENTITY torSettings.enterFirewall "Saisir une liste de ports, séparés par des virgules, qui sont autorisés par le pare-feu.">
+<!ENTITY torSettings.bridgeQuestion "Votre fournisseur de service Internet (FSI) bloque-t-il ou censure-t-il vos connexions au réseau Tor?">
+<!ENTITY torSettings.bridgeHelp "Si vous ne savez pas comment répondre à cette question, choisissez Non.&#160; Si vous choisissez Oui, on vous demandera de configurer les ponts Tor qui sont des relais non listés rendant le bloquage des connexions au réseau Tor plus difficile.">
+<!ENTITY torSettings.bridgeSettingsPrompt "Vous pouvez utiliser le jeu de ponts fourni ou vous pouvez obtenir et saisir un jeu de ponts personnalisé.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "En attente du démarrage de Tor...">
+<!ENTITY torsettings.restart "Redémarrer">
+
+<!ENTITY torsettings.optional "Optionnel">
+
+<!ENTITY torsettings.useProxy.checkbox "Cet ordinateur doit utiliser un serveur mandataire pour accéder à Internet">
+<!ENTITY torsettings.useProxy.type "Type de mandataire :">
+<!ENTITY torsettings.useProxy.address "Adresse :">
+<!ENTITY torsettings.useProxy.address.placeholder "Adresse IP ou nom d'hôte">
+<!ENTITY torsettings.useProxy.port "Port :">
+<!ENTITY torsettings.useProxy.username "Nom d'utilisateur :">
+<!ENTITY torsettings.useProxy.password "Mot de 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 "Cet ordinateur passe par un pare-feu qui n'autorise que les connexions à certains ports">
+<!ENTITY torsettings.firewall.allowedPorts "Ports autorisés :">
+<!ENTITY torsettings.useBridges.checkbox "Mon fournisseur d'accès à Internet (FAI) bloque les connexions au réseau Tor">
+<!ENTITY torsettings.useBridges.default "Se connecter avec les ponts fournis">
+<!ENTITY torsettings.useBridges.type "Type de transport :">
+<!ENTITY torsettings.useBridges.custom "Saisir les ponts personnalisés">
+<!ENTITY torsettings.useBridges.label "Saisir un ou plusieurs relais-ponts (un par ligne).">
+<!ENTITY torsettings.useBridges.placeholder "type adresse:port">
+
+<!ENTITY torsettings.copyLog "Copier le journal de Tor dans le presse-papier">
+<!ENTITY torsettings.bridgeHelpTitle "Aide pour les relais-ponts">
+<!ENTITY torsettings.bridgeHelp1 "Si vous ne pouvez pas vous connecter au réseau Tor, il se peut que votre fournisseur d'accès à Internet (FAI) ou une autre agence bloque Tor.&#160; Vous pouvez souvent le contourner en utilisant des ponts Tor qui sont des relais non répertoriés, plus difficiles à bloquer.">
+<!ENTITY torsettings.bridgeHelp1B "Vous pouvez utiliser le jeu préconfiguré d'adresses de ponts fourni ou vous pouvez obtenir un jeu personnalisé d'adresses en utilisant une de ces trois méthodes :">
+<!ENTITY torsettings.bridgeHelp2Heading "par le Web">
+<!ENTITY torsettings.bridgeHelp2 "en utilisant un navigateur Web pour visiter https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "par le répondeur automatique de courriel">
+<!ENTITY torsettings.bridgeHelp3 "en envoyant un courriel à bridges(a)torproject.org avec la ligne « get bridges » seule dans le corps du message.&#160; Cependant pour compliquer l'obtention des ces adresses de ponts pour un attaqueur, vous devez envoyer la demande depuis une adresse courriel gmail.com ou yahoo.com.">
+<!ENTITY torsettings.bridgeHelp4Heading "par le centre d'assistance">
+<!ENTITY torsettings.bridgeHelp4 "en dernier recours, vous pouvez demander des adresses de ponts en envoyant un courriel poli à help(a)rt.torproject.org.&#160; Veuillez remarquer qu'une personne devra répondre à chaque demande.">
diff --git a/src/chrome/locale/fr-CA/progress.dtd b/src/chrome/locale/fr-CA/progress.dtd
new file mode 100644
index 0000000..99c632e
--- /dev/null
+++ b/src/chrome/locale/fr-CA/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "État de Tor">
+<!ENTITY torprogress.openSettings "Ouvrir les paramètres">
+<!ENTITY torprogress.heading "Connexion au réseau Tor">
+<!ENTITY torprogress.pleaseWait "Veuillez patienter pendant que nous établissons une connexion avec le réseau Tor.">
diff --git a/src/chrome/locale/fr-CA/torlauncher.properties b/src/chrome/locale/fr-CA/torlauncher.properties
new file mode 100644
index 0000000..e0b1217
--- /dev/null
+++ b/src/chrome/locale/fr-CA/torlauncher.properties
@@ -0,0 +1,58 @@
+### Copyright (c) 2014, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+torlauncher.error_title=Lanceur Tor
+
+torlauncher.tor_exited=Tor a quitté de manière imprévue.
+torlauncher.please_restart_app=Veuillez redémarrer cette application.
+torlauncher.tor_controlconn_failed=Impossible de se connecter au port de contrôle de Tor.
+torlauncher.tor_failed_to_start=Tor n'a pas pu démarrer.
+torlauncher.tor_control_failed=La prise de contrôle de Tor a échoué.
+torlauncher.tor_bootstrap_failed=Échec lors de la connexion de Tor au réseau Tor.
+torlauncher.tor_bootstrap_failed_details=%1$S a échoué (%2$S).
+
+torlauncher.unable_to_start_tor=Impossible de démarrer Tor.\n\n%S
+torlauncher.tor_missing=L'exécutable Tor est manquant.
+torlauncher.torrc_missing=Le fichier torrc est manquant.
+torlauncher.datadir_missing=Le répertoire de données de Tor n'existe pas.
+torlauncher.password_hash_missing=Impossible d'obtenir le mot de passe haché.
+
+torlauncher.failed_to_get_settings=Impossible de récupérer les paramètres de Tor.\n\n%S
+torlauncher.failed_to_save_settings=Impossible de sauvegarder les paramètres de Tor.\n\n%S
+torlauncher.ensure_tor_is_running=Veuillez-vous assurer que Tor tourne.
+
+torlauncher.error_proxy_addr_missing=Vous devez spécifier à la fois une adresse IP ou un nom d'hôte et un numéro de port afin de configurer Tor à l'usage d'un mandataire pour accéder à Internet.
+torlauncher.error_proxy_type_missing=Vous devez choisir le type de mandataire.
+torlauncher.error_bridges_missing=Vous devez spécifier un ou plusieurs ponts.
+torlauncher.error_default_bridges_type_missing=Vous devez choisir un type de transport pour les ponts fournis.
+torlauncher.error_bridge_bad_default_type=Aucun pont ayant le type de transport %S n'est disponible, Veuillez ajuster vos paramètres.
+
+torlauncher.recommended_bridge=(recommandé)
+
+torlauncher.connect=Se connecter
+torlauncher.quit=Quitter
+torlauncher.quit_win=Sortir
+torlauncher.done=Fait
+
+torlauncher.forAssistance=Pour l'assistance, contacter %S
+
+torlauncher.bootstrapStatus.conn_dir=Connexion à un annuaire de relais
+torlauncher.bootstrapStatus.handshake_dir=Mise en place d'une connexion chiffrée à l'annuaire
+torlauncher.bootstrapStatus.requesting_status=Récupération de l'état du réseau
+torlauncher.bootstrapStatus.loading_status=Chargement de l'état du réseau
+torlauncher.bootstrapStatus.loading_keys=Chargement des certificats d'autorité
+torlauncher.bootstrapStatus.requesting_descriptors=Demande des informations de relais
+torlauncher.bootstrapStatus.loading_descriptors=Chargement des informations de relais
+torlauncher.bootstrapStatus.conn_or=Connexion au réseau Tor
+torlauncher.bootstrapStatus.handshake_or=Mise en place d'un circuit Tor
+torlauncher.bootstrapStatus.done=Connecté au réseau Tor!
+
+torlauncher.bootstrapWarning.done=effectué
+torlauncher.bootstrapWarning.connectrefused=connexion refusée
+torlauncher.bootstrapWarning.misc=divers
+torlauncher.bootstrapWarning.resourcelimit=ressources insuffisantes
+torlauncher.bootstrapWarning.identity=mauvaise concordance de l'identité
+torlauncher.bootstrapWarning.timeout=expiration du temps de connexion
+torlauncher.bootstrapWarning.noroute=pas de route vers l'hôte
+torlauncher.bootstrapWarning.ioerror=erreur de lecture/écriture
+torlauncher.bootstrapWarning.pt_missing=transport enfichable manquant
diff --git a/src/chrome/locale/fr/network-settings.dtd b/src/chrome/locale/fr/network-settings.dtd
index 5e6ed8c..f93148c 100644
--- a/src/chrome/locale/fr/network-settings.dtd
+++ b/src/chrome/locale/fr/network-settings.dtd
@@ -23,7 +23,7 @@
<!ENTITY torSettings.firewallHelp "Si vous ne savez par comment répondre à cette question, choisissez Non. Vous pourrez changer ce paramètre plus tard en cas de problèmes de connexion au réseau Tor.">
<!ENTITY torSettings.enterFirewall "Entrez la liste de ports, séparés par des virgules, qui sont autorisés par le pare-feu.">
<!ENTITY torSettings.bridgeQuestion "Est-ce que votre Fournisseur d'Accès Internet (FAI) bloque les connexions au réseau Tor ?">
-<!ENTITY torSettings.bridgeHelp "Si vous ne savez pas comment répondre à cette question, choisissez le numéro &#160; Si vous choisissez Oui, il vous sera demandé de configurer les bridges Tor qui sont des relais non listés et qui rendent plus difficile le blocage du réseau Tor.">
+<!ENTITY torSettings.bridgeHelp "Si vous ne savez pas comment répondre à cette question, choisissez Non.&#160; Si vous choisissez Oui, il vous sera demandé de configurer les bridges Tor qui sont des relais non listés et qui rendent plus difficile le blocage du réseau Tor.">
<!ENTITY torSettings.bridgeSettingsPrompt "Vous pouvez utiliser les bridges fournis ou bien saisir votre liste de bridges personnels.">
<!-- Other: -->
diff --git a/src/chrome/locale/fur/network-settings.dtd b/src/chrome/locale/fur/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/fur/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/fur/progress.dtd b/src/chrome/locale/fur/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/fur/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/fur/torlauncher.properties b/src/chrome/locale/fur/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/fur/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/fy/network-settings.dtd b/src/chrome/locale/fy/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/fy/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/fy/progress.dtd b/src/chrome/locale/fy/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/fy/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/fy/torlauncher.properties b/src/chrome/locale/fy/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/fy/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/ga/network-settings.dtd b/src/chrome/locale/ga/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/ga/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ga/progress.dtd b/src/chrome/locale/ga/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/ga/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ga/torlauncher.properties b/src/chrome/locale/ga/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/ga/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/gl/network-settings.dtd b/src/chrome/locale/gl/network-settings.dtd
new file mode 100644
index 0000000..d896817
--- /dev/null
+++ b/src/chrome/locale/gl/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Axustes da rede Tor">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Si">
+<!ENTITY torSettings.no "Non">
+
+<!ENTITY torSettings.firstQuestion "Cal das seguintes alternativas describe mellor a súa situación?">
+<!ENTITY torSettings.configurePrompt1 "A conexión á Internet deste computador é censurada, filtrada ou pasa por un proxy.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configurar">
+<!ENTITY torSettings.connectPrompt2 "Gustaríame conectar directamente á rede Tor">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Conectar">
+
+<!ENTITY torSettings.proxyQuestion "Este computador precisa utilizar un proxy para acceder a Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "Se non está seguro de como responder a esta pregunta, consulte as opcións de Internet en outro navegador para ver se está configurado para usar un proxy.">
+<!ENTITY torSettings.enterProxy "Introduza a configuración do proxy.">
+<!ENTITY torSettings.firewallQuestion "A conexión á Internet deste computador pasa por unha devasa (firewall) que só permite conexións a certos portos?">
+<!ENTITY torSettings.firewallHelp "Se non está seguro de como responder a esta pregunta, seleccione Non. Se atopa problemas para conectarse á rede Tor, cambie esta configuración.">
+<!ENTITY torSettings.enterFirewall "Escriba unha lista separada por comas de portos permitidos pola devasa (firewall).">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Á espera de que Tor comece ...">
+<!ENTITY torsettings.restart "Reiniciar">
+
+<!ENTITY torsettings.optional "Opcional">
+
+<!ENTITY torsettings.useProxy.checkbox "Este ordenador ten que usar un proxy para acceder a Internet">
+<!ENTITY torsettings.useProxy.type "Tipo de Proxy:">
+<!ENTITY torsettings.useProxy.address "Enderezo:">
+<!ENTITY torsettings.useProxy.address.placeholder "Enderezo IP ou nome da máquina">
+<!ENTITY torsettings.useProxy.port "Porto:">
+<!ENTITY torsettings.useProxy.username "Nome de usuario:">
+<!ENTITY torsettings.useProxy.password "Contrasinal:">
+<!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 pasa por un firewall que só permite conexións a certos portos">
+<!ENTITY torsettings.firewall.allowedPorts "Portos permitidos:">
+<!ENTITY torsettings.useBridges.checkbox "O meu Provedor Servizos de Internet (ISP) bloquea as conexións á rede Tor">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copia o rexistro do Tor ao portapapeis">
+<!ENTITY torsettings.bridgeHelpTitle "Axuda do Repetidor Ponte">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/gl/progress.dtd b/src/chrome/locale/gl/progress.dtd
new file mode 100644
index 0000000..8aee80a
--- /dev/null
+++ b/src/chrome/locale/gl/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Estado do Tor">
+<!ENTITY torprogress.openSettings "Abrir axustes">
+<!ENTITY torprogress.heading "Conexión á rede Tor">
+<!ENTITY torprogress.pleaseWait "Por faver, espera mentres estabelecemos a conexión coa rede Tor.">
diff --git a/src/chrome/locale/gl/torlauncher.properties b/src/chrome/locale/gl/torlauncher.properties
new file mode 100644
index 0000000..a636bb3
--- /dev/null
+++ b/src/chrome/locale/gl/torlauncher.properties
@@ -0,0 +1,58 @@
+### Copyright (c) 2014, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+torlauncher.error_title=Lanzador do Tor
+
+torlauncher.tor_exited=O Tor saíu de vez.
+torlauncher.please_restart_app=Por favor reinicie esta aplicación.
+torlauncher.tor_controlconn_failed=Non se puido conectar ao porto de control do Tor.
+torlauncher.tor_failed_to_start=Non se puido iniciar o Tor.
+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=Non se puido iniciar o Tor.⏎\n⏎\n%S
+torlauncher.tor_missing=Falta o executábel do Tor.
+torlauncher.torrc_missing=Falta o ficheiro torrc
+torlauncher.datadir_missing=Non existe o directorio de datos do Tor.
+torlauncher.password_hash_missing=Non se puido obter o contrasinal cifrado.
+
+torlauncher.failed_to_get_settings=Non se pode recuperar a configuración do Tor.⏎\n⏎\n%S
+torlauncher.failed_to_save_settings=Non se poden gardar os axustes do Tor.⏎\n⏎\n%S
+torlauncher.ensure_tor_is_running=Asegúrese de que o Tor está en execución.
+
+torlauncher.error_proxy_addr_missing=Debe especificar un enderezo IP ou un nome de máquina e un número de porto para configurar o Tor para que use un proxy para acceder a Internet.
+torlauncher.error_proxy_type_missing=Debe seleccionar o tipo de proxy.
+torlauncher.error_bridges_missing=Debe especificar unha ou máis pontes.
+torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Conectar
+torlauncher.quit=Abandonar
+torlauncher.quit_win=Saír
+torlauncher.done=Feito
+
+torlauncher.forAssistance=Para obter asistencia, póñase en contacto con %S
+
+torlauncher.bootstrapStatus.conn_dir=Conectando co directorio de repetidores
+torlauncher.bootstrapStatus.handshake_dir=Estabelecendo unha conexión cifrada co directorio
+torlauncher.bootstrapStatus.requesting_status=Recuperando o estado da rede
+torlauncher.bootstrapStatus.loading_status=Cargando o estado da rede
+torlauncher.bootstrapStatus.loading_keys=Cargando os certificados de autoridade
+torlauncher.bootstrapStatus.requesting_descriptors=Solicitando a información do repetidor
+torlauncher.bootstrapStatus.loading_descriptors=Cargando información do repetidor
+torlauncher.bootstrapStatus.conn_or=Conexión á rede Tor
+torlauncher.bootstrapStatus.handshake_or=Estabelecendo o circuíto Tor
+torlauncher.bootstrapStatus.done=Conectado á rede Tor!
+
+torlauncher.bootstrapWarning.done=feito
+torlauncher.bootstrapWarning.connectrefused=a conexión foi rexeitada
+torlauncher.bootstrapWarning.misc=varios
+torlauncher.bootstrapWarning.resourcelimit=non hai recursos abondo
+torlauncher.bootstrapWarning.identity=a identidade non coincide
+torlauncher.bootstrapWarning.timeout=a conexión esgotou o tempo de agarda
+torlauncher.bootstrapWarning.noroute=non hai unha ruta ao servidor
+torlauncher.bootstrapWarning.ioerror=produciuse un erro de lectura/escritura
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/gu-IN/network-settings.dtd b/src/chrome/locale/gu-IN/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/gu-IN/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/gu-IN/progress.dtd b/src/chrome/locale/gu-IN/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/gu-IN/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/gu-IN/torlauncher.properties b/src/chrome/locale/gu-IN/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/gu-IN/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/gu/network-settings.dtd b/src/chrome/locale/gu/network-settings.dtd
new file mode 100644
index 0000000..ee0098d
--- /dev/null
+++ b/src/chrome/locale/gu/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.address "Address:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
+<!ENTITY torsettings.useProxy.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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/gu/progress.dtd b/src/chrome/locale/gu/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/gu/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/gu/torlauncher.properties b/src/chrome/locale/gu/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/gu/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/gun/network-settings.dtd b/src/chrome/locale/gun/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/gun/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/gun/progress.dtd b/src/chrome/locale/gun/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/gun/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/gun/torlauncher.properties b/src/chrome/locale/gun/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/gun/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/ha/network-settings.dtd b/src/chrome/locale/ha/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/ha/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ha/progress.dtd b/src/chrome/locale/ha/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/ha/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ha/torlauncher.properties b/src/chrome/locale/ha/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/ha/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/he/network-settings.dtd b/src/chrome/locale/he/network-settings.dtd
new file mode 100644
index 0000000..b935cff
--- /dev/null
+++ b/src/chrome/locale/he/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "הגדרות רשת Tor">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "כן">
+<!ENTITY torSettings.no "לא">
+
+<!ENTITY torSettings.firstQuestion "אילו מן הבאים מתאר את המצב שלך באופן הטוב ביותר?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "הגדר">
+<!ENTITY torSettings.connectPrompt2 "ברצוני להתחבר ישירות אל הרשת Tor.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "התחבר">
+
+<!ENTITY torSettings.proxyQuestion "האם מחשב זה צריך להשתמש בפרוקסי כדי לגשת אל האינטרנט?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "הזן את הגדרות הפרוקסי.">
+<!ENTITY torSettings.firewallQuestion "האם חיבור האינטרנט של מחשב זה עובר דרך חומת אש שרק מאפשר חיבורים ליציאות מסוימות?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "ממתין כעת עבור Tor כדי להתחיל…">
+<!ENTITY torsettings.restart "אתחול">
+
+<!ENTITY torsettings.optional "רשות">
+
+<!ENTITY torsettings.useProxy.checkbox "מחשב זה צריך להשתמש בפרוקסי כדי לגשת אל האינטרנט">
+<!ENTITY torsettings.useProxy.type "טיפוס פרוקסי:">
+<!ENTITY torsettings.useProxy.address "כתובת:">
+<!ENTITY torsettings.useProxy.address.placeholder "כתובת IP או שם מארח">
+<!ENTITY torsettings.useProxy.port "יציאה:">
+<!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">
+<!ENTITY torsettings.firewall.checkbox "מחשב זה עובר דרך חומת אש שרק מאפשר חיבורים ליציאות מסוימות">
+<!ENTITY torsettings.firewall.allowedPorts "יציאות מורשות:">
+<!ENTITY torsettings.useBridges.checkbox "ספק האינטרנט שלי (ISP) חוסם חיבורים אל הרשת Tor">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "הקלד אחד או יותר ממסרי גשר (אחד לכל שורה)">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "העתק את יומן Tor אל לוח גזירה">
+<!ENTITY torsettings.bridgeHelpTitle "עזרת ממסר גשר">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/he/progress.dtd b/src/chrome/locale/he/progress.dtd
new file mode 100644
index 0000000..136f245
--- /dev/null
+++ b/src/chrome/locale/he/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "מצב Tor">
+<!ENTITY torprogress.openSettings "פתח הגדרות">
+<!ENTITY torprogress.heading "מתחבר כעת אל רשת Tor">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/he/torlauncher.properties b/src/chrome/locale/he/torlauncher.properties
index 525bd3c..02c123f 100644
--- a/src/chrome/locale/he/torlauncher.properties
+++ b/src/chrome/locale/he/torlauncher.properties
@@ -1,7 +1,40 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.tor_bootstrap_failed_details=%1$S כשל (%2$S).
+torlauncher.error_title=משגר Tor
+
+torlauncher.tor_exited=Tor יצא במפתיעה.
+torlauncher.please_restart_app=אנא הפעל מחדש את יישום זה.
+torlauncher.tor_controlconn_failed=לא הצליח להתחבר ליציאת שליטת Tor.
+torlauncher.tor_failed_to_start=Tor נכשל בהפעלה.
+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=אין אפשרות להתחיל את Tor.\n\n%S
+torlauncher.tor_missing=בר הרצה Tor הינו חסר.
+torlauncher.torrc_missing=הקובץ torrc הינו חסר.
+torlauncher.datadir_missing=ספריית נתונים Tor לא קיימת.
+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.error_proxy_addr_missing=עליך לציין כתובת IP או שם מארח וגם מספר יציאה בכדי להגדיר את Tor לשימוש בשרת פרוקסי כדי לעשות שימוש בפרוקסי כדי להיכנס אל האינטרנט.
+torlauncher.error_proxy_type_missing=עליך לבחור את טיפוס הפרוקסי.
+torlauncher.error_bridges_missing=עליך לציין גשר אחד או יותר.
+torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=התחבר
+torlauncher.quit=יציאה
+torlauncher.quit_win=צא
+torlauncher.done=הושלם
+
+torlauncher.forAssistance=לעזרה, צרו קשר עם %S
torlauncher.bootstrapStatus.conn_dir=מתחבר כעת אל מדור ממסר
torlauncher.bootstrapStatus.handshake_dir=מקים כעת חיבור ספריות מוצפן
@@ -19,6 +52,7 @@ torlauncher.bootstrapWarning.connectrefused=החיבור נדחה
torlauncher.bootstrapWarning.misc=שונות
torlauncher.bootstrapWarning.resourcelimit=משאבים לא מספיקים
torlauncher.bootstrapWarning.identity=זהות אינה תואמת
-torlauncher.bootstrapWarning.timeout=החיבור התעכב
-torlauncher.bootstrapWarning.noroute=אין נתיב אל השרת
-torlauncher.bootstrapWarning.ioerror=שגיאה בקריאה/כתיבה
+torlauncher.bootstrapWarning.timeout=החיבור פקע
+torlauncher.bootstrapWarning.noroute=אין נתיב לארח
+torlauncher.bootstrapWarning.ioerror=שגיאת קריאה/כתיבה
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/hi/network-settings.dtd b/src/chrome/locale/hi/network-settings.dtd
new file mode 100644
index 0000000..b43b9f7
--- /dev/null
+++ b/src/chrome/locale/hi/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.address "पता :">
+<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
+<!ENTITY torsettings.useProxy.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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/hi/progress.dtd b/src/chrome/locale/hi/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/hi/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/hi/torlauncher.properties b/src/chrome/locale/hi/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/hi/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/hr-HR/network-settings.dtd b/src/chrome/locale/hr-HR/network-settings.dtd
new file mode 100644
index 0000000..42ed11e
--- /dev/null
+++ b/src/chrome/locale/hr-HR/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor mrežne postavke">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Da">
+<!ENTITY torSettings.no "Ne">
+
+<!ENTITY torSettings.firstQuestion "Koje od sljedećeg najbolje opisuje Vašu situaciju?">
+<!ENTITY torSettings.configurePrompt1 "Internetska veza ovog računala je cenzurirana, filtrirana ili prolazi kroz proxy.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Podesi">
+<!ENTITY torSettings.connectPrompt2 "Želim se izravno spojiti na Tor mrežu.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Spajanje">
+
+<!ENTITY torSettings.proxyQuestion "Koristi li ovo računalo proxy za pristup Internetu?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "Ako niste sigurni kako odgovoriti na ovo pitanje, pogledajte Internet postavke u drugom pregledniku i provjerite je li podešen za korištenje proxyja.">
+<!ENTITY torSettings.enterProxy "Unesite postavke proxyja.">
+<!ENTITY torSettings.firewallQuestion "Prolazi li Internet veza ovog računala kroz vatrozid koji dopušta spajanje samo na određene portove?">
+<!ENTITY torSettings.firewallHelp "Ako niste sigurni kako odgovoriti na ovo pitanje, odaberite "Ne". Ako uočite probleme pri spajanju na Tor mrežu, promijenite ovu postavku.">
+<!ENTITY torSettings.enterFirewall "Unesite popis portova, odvojenih zarezom, koji su dopušteni na vatrozidu.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Čekanje da se Tor pokrene...">
+<!ENTITY torsettings.restart "Ponovno pokreni ">
+
+<!ENTITY torsettings.optional "Opcionalno">
+
+<!ENTITY torsettings.useProxy.checkbox "Ovo računalo koristi proxy za pristup internetu.">
+<!ENTITY torsettings.useProxy.type "Tip proxyja:">
+<!ENTITY torsettings.useProxy.address "Adresa:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP adresa ili hostname">
+<!ENTITY torsettings.useProxy.port "Port:">
+<!ENTITY torsettings.useProxy.username "Korisničko ime:">
+<!ENTITY torsettings.useProxy.password "Lozinka:">
+<!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 "Ovo računalo je iza vatrozida koji dopušta spajanje samo na određene portove">
+<!ENTITY torsettings.firewall.allowedPorts "Dozvoljeni portovi:">
+<!ENTITY torsettings.useBridges.checkbox "Moj pružatelj internetskih usluga (ISP) blokira veze prema Tor mreži">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Unesite jedan ili više mostova (jedan po retku).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Kopiraj Tor zapisnik u međuspremnik">
+<!ENTITY torsettings.bridgeHelpTitle "Pomoć za bridge relej">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/hr-HR/progress.dtd b/src/chrome/locale/hr-HR/progress.dtd
new file mode 100644
index 0000000..ea7118a
--- /dev/null
+++ b/src/chrome/locale/hr-HR/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Otvori Postavke">
+<!ENTITY torprogress.heading "Spajanje na Tor mrežu">
+<!ENTITY torprogress.pleaseWait "Molimo pričekajte dok ne uspostavimo vezu s Tor mrežom.">
diff --git a/src/chrome/locale/hr-HR/torlauncher.properties b/src/chrome/locale/hr-HR/torlauncher.properties
index 835f796..ffb1266 100644
--- a/src/chrome/locale/hr-HR/torlauncher.properties
+++ b/src/chrome/locale/hr-HR/torlauncher.properties
@@ -1,13 +1,46 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
+torlauncher.error_title=Pokretač Tora
+
+torlauncher.tor_exited=Tor je neočekivano izašao.
+torlauncher.please_restart_app=Molimo Vas da ponovno pokrenete ovu aplikaciju.
+torlauncher.tor_controlconn_failed=Nije se moguće spojiti na Torov upravljački port.
+torlauncher.tor_failed_to_start=Tor se nije uspio pokrenuti.
+torlauncher.tor_control_failed=Preuzimanje kontrole nad Torom nije uspjelo.
+torlauncher.tor_bootstrap_failed=Tor nije uspio uspostaviti Tor mrežnu vezu.
torlauncher.tor_bootstrap_failed_details=%1$S neuspjelo (%2$S).
+torlauncher.unable_to_start_tor=Nije moguće pokrenuti Tor.\n\n%S
+torlauncher.tor_missing=Nije moguće pronaći izvršni program za Tor.
+torlauncher.torrc_missing=Nije moguće pronaći torrc datoteku.
+torlauncher.datadir_missing=Podatkovna mapa za Tor ne postoji.
+torlauncher.password_hash_missing=Nije moguće dobiti hash lozinke.
+
+torlauncher.failed_to_get_settings=Nije moguće dobaviti Tor postavke.\n\n%S
+torlauncher.failed_to_save_settings=Nije moguće spremiti Tor postavke.\n\n%S
+torlauncher.ensure_tor_is_running=Molimo osigurajte da Tor radi.
+
+torlauncher.error_proxy_addr_missing=Morate navesti i IP adresu ili ime računala i broj porta da biste konfigurirali Tor za korištenje proxyja za pristup Internetu.
+torlauncher.error_proxy_type_missing=Morate odabrati tip proxyja.
+torlauncher.error_bridges_missing=Morate odrediti jedan ili više mostova.
+torlauncher.error_default_bridges_type_missing=Morate odabrati vrstu transporta za pružene mostove.
+torlauncher.error_bridge_bad_default_type=Nema dostupnih pruženih mostova koji imaju %S vrstu transporta. Molimo, prilagodite svoje postavke.
+
+torlauncher.recommended_bridge=(preporučeno)
+
+torlauncher.connect=Spajanje
+torlauncher.quit=Odustani
+torlauncher.quit_win=Izlaz
+torlauncher.done=Gotovo
+
+torlauncher.forAssistance=Za pomoć, kontaktirajte %S
+
torlauncher.bootstrapStatus.conn_dir=Spajanje na mapu releja
-torlauncher.bootstrapStatus.handshake_dir=Uspostavljanje šifrirane veze prema mapi
+torlauncher.bootstrapStatus.handshake_dir=Uspostavljanje šifrirane veze na mapu
torlauncher.bootstrapStatus.requesting_status=Dohvaćanje statusa mreže
torlauncher.bootstrapStatus.loading_status=Učitavanje statusa mreže
-torlauncher.bootstrapStatus.loading_keys=Učitavanje certifikata autoriteta
+torlauncher.bootstrapStatus.loading_keys=Učitavanje autoritetnih certifikata
torlauncher.bootstrapStatus.requesting_descriptors=Zahtjevanje informacije o releju
torlauncher.bootstrapStatus.loading_descriptors=Učitavanje informacija o releju
torlauncher.bootstrapStatus.conn_or=Spajanje na Tor mrežu
@@ -22,3 +55,4 @@ torlauncher.bootstrapWarning.identity=nepodudaranje identiteta
torlauncher.bootstrapWarning.timeout=vrijeme čekanja veze isteklo
torlauncher.bootstrapWarning.noroute=nema rute do domaćina
torlauncher.bootstrapWarning.ioerror=greška čitanja/pisanja
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/hr/network-settings.dtd b/src/chrome/locale/hr/network-settings.dtd
new file mode 100644
index 0000000..1991074
--- /dev/null
+++ b/src/chrome/locale/hr/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Postavke Tor Mreže">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Da">
+<!ENTITY torSettings.no "Ne">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "Ovo će raditi u većini situacija.">
+<!ENTITY torSettings.connect "Poveži se">
+
+<!ENTITY torSettings.proxyQuestion "Da li računalo treba koristiti proxy za pristup internetu?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Unesi proxy postavke.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.address "Adresa:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
+<!ENTITY torsettings.useProxy.port "Priključak:">
+<!ENTITY torsettings.useProxy.username "Korisničko ime:">
+<!ENTITY torsettings.useProxy.password "Lozinka:">
+<!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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/hr/progress.dtd b/src/chrome/locale/hr/progress.dtd
new file mode 100644
index 0000000..53ba19a
--- /dev/null
+++ b/src/chrome/locale/hr/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Otvori Postavke">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/hr/torlauncher.properties b/src/chrome/locale/hr/torlauncher.properties
new file mode 100644
index 0000000..587588f
--- /dev/null
+++ b/src/chrome/locale/hr/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Poveži se
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/ht/network-settings.dtd b/src/chrome/locale/ht/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/ht/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ht/progress.dtd b/src/chrome/locale/ht/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/ht/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ht/torlauncher.properties b/src/chrome/locale/ht/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/ht/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/hu/network-settings.dtd b/src/chrome/locale/hu/network-settings.dtd
new file mode 100644
index 0000000..9075d38
--- /dev/null
+++ b/src/chrome/locale/hu/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor hálózati beállítások">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Mielőtt a Tor hálózatra csatlakoznál, információt kell adj a számítógép internet kapcsolatáról.">
+
+<!ENTITY torSettings.yes "Igen">
+<!ENTITY torSettings.no "Nem">
+
+<!ENTITY torSettings.firstQuestion "A következők közül melyik illik jobban a szituációhoz?">
+<!ENTITY torSettings.configurePrompt1 "A számítógép internet kapcsolata cenzúrázott, szűrt vagy proxy-t használ.">
+<!ENTITY torSettings.configurePrompt2 "Konfigurálni kell a bridge, tűzfal vagy proxy beállításokat.">
+<!ENTITY torSettings.configure "Beállít">
+<!ENTITY torSettings.connectPrompt2 "Szeretnék közvetlenül kapcsolódni a Tor hálózathoz.">
+<!ENTITY torSettings.connectPrompt3 "A legtöbb esetben ez működni fog.">
+<!ENTITY torSettings.connect "Csatlakozás">
+
+<!ENTITY torSettings.proxyQuestion "A számítógépnek proxy használatára van szüksége az internet eléréséhez?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "Ha nem vagy biztos a válaszban nézd meg az Internet beállításokat egy másik böngészőben. Nézd meg van-e proxy használat beállítva.">
+<!ENTITY torSettings.enterProxy "Adja meg a proxy beállításokat.">
+<!ENTITY torSettings.firewallQuestion "Ezen számítógép internet kapcsolata tűzfalon halad át, mely csak bizonyos portokhoz enged csatlakozni?">
+<!ENTITY torSettings.firewallHelp "Nem biztos abban, hogy hogyan válaszoljon erre a kérdésre, válassza a 'Nem'-et. Ha problémákba ütközik a Tor hálózathoz való csatlakozáskor, változtassa meg ezt a beállítást.">
+<!ENTITY torSettings.enterFirewall "Gépelj be egy vesszővel elválasztott listát a portokról amik engedélyezve vannak a tűzfal által.">
+<!ENTITY torSettings.bridgeQuestion "Az internet szolgáltatód (ISP) blokkolja vagy cenzúrázza a kapcsolatot a Tor hálózathoz?">
+<!ENTITY torSettings.bridgeHelp "Ha nem vagy biztos a válaszban, válaszd a Nem-et.&#160; Ha az Igen-t választod neked kell konfigurálni a Tor bridges amik nem listázott átjátszók és nehezebbé teszik a Tor hálózat kapcsolódásának a blokkolását.">
+<!ENTITY torSettings.bridgeSettingsPrompt "Használhatod a szolgáltatott bridge címeket vagy beszerezhetsz egyedi bridge címeket.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Várakozás a Tor indulására...">
+<!ENTITY torsettings.restart "Újraindítás">
+
+<!ENTITY torsettings.optional "Opcionális">
+
+<!ENTITY torsettings.useProxy.checkbox "A számítógépnek szüksége van a proxy használatára az internet kapcsolathoz.">
+<!ENTITY torsettings.useProxy.type "Proxy Típus:">
+<!ENTITY torsettings.useProxy.address "Cím:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP cím vagy gépnév">
+<!ENTITY torsettings.useProxy.port "Port:">
+<!ENTITY torsettings.useProxy.username "Felhasználónév:">
+<!ENTITY torsettings.useProxy.password "Jelszó:">
+<!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 "A számítógép egy tűzfalon keresztül kommunikál ami csak adott portokon keresztül engedélyezi a kapcsolatotokat.">
+<!ENTITY torsettings.firewall.allowedPorts "Engedélyezett portok:">
+<!ENTITY torsettings.useBridges.checkbox "Az internet szolgáltatóm (ISP) blokkolja a Tor hálózathoz való csatlakozásokat">
+<!ENTITY torsettings.useBridges.default "Csatlakozás a szolgáltatott bridge címekkel.">
+<!ENTITY torsettings.useBridges.type "Átvitel típusa:">
+<!ENTITY torsettings.useBridges.custom "Addj meg egyedi bridge címeket">
+<!ENTITY torsettings.useBridges.label "Addj meg egy vagy több bridge relay címet (soronként egy)">
+<!ENTITY torsettings.useBridges.placeholder "Írd cím:port">
+
+<!ENTITY torsettings.copyLog "A Tor log Vágólapra másolása">
+<!ENTITY torsettings.bridgeHelpTitle "Híd kapcsoló súgó">
+<!ENTITY torsettings.bridgeHelp1 "Ha nem tudsz csatlakozni a Tor.&#160; hálózathoz, akkor valószínű az internet szolgáltató (ISP) vagy egy másik szervezet blokkolja. Gyakran megkerülhető a probléma Tor bridges használatával. Ezek nem listázott átjátszók amiket sokkal nehezebb blokkolni.">
+<!ENTITY torsettings.bridgeHelp1B "Használhatod az előre beállított bridge címeket vagy beszerezhetsz egyedi címeket ezzel a három módszerrel:">
+<!ENTITY torsettings.bridgeHelp2Heading "Interneten keresztül">
+<!ENTITY torsettings.bridgeHelp2 "Használj egy böngészőt megnézni ezt az oldalt: https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Az automata email válaszok által.">
+<!ENTITY torsettings.bridgeHelp3 "Küldj emailt a bridges(a)torproject.org -ra a következő szöveggel: "get bridges" az emailben.&#160; Hogy egy esetleges támadó információ szerzési esélyét nehezítse ezt az emailt egy gmail.com vagy yahoo.com email címről küldd.">
+<!ENTITY torsettings.bridgeHelp4Heading "A támogatáson keresztül.">
+<!ENTITY torsettings.bridgeHelp4 "Utolsó lehetőségként küldj egy udvarias bridge igénylő emailt ide: help(a)rt.torproject.org.&#160; Légyszíves vedd figyelembe az adott személynek több emailt kell megválaszolnia.">
diff --git a/src/chrome/locale/hu/progress.dtd b/src/chrome/locale/hu/progress.dtd
new file mode 100644
index 0000000..b19344f
--- /dev/null
+++ b/src/chrome/locale/hu/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor állapot">
+<!ENTITY torprogress.openSettings "Beállítások megnyitása">
+<!ENTITY torprogress.heading "Kapcsolódás a Tor hálózathoz">
+<!ENTITY torprogress.pleaseWait "Kérlek várj amíg a kapcsolat létrejön a Tor hálózattal.">
diff --git a/src/chrome/locale/hu/torlauncher.properties b/src/chrome/locale/hu/torlauncher.properties
index f388fad..a4e7a6f 100644
--- a/src/chrome/locale/hu/torlauncher.properties
+++ b/src/chrome/locale/hu/torlauncher.properties
@@ -1,7 +1,40 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.tor_bootstrap_failed_details=%1$S sikertelen (%2$S).
+torlauncher.error_title=Tor Indító
+
+torlauncher.tor_exited=A Tor váratlanul kilépett.
+torlauncher.please_restart_app=Kérjük indítsa újra ezt az alkalmazást.
+torlauncher.tor_controlconn_failed=Nem lehetséges csatlakozni a Tor vezérlő portjára
+torlauncher.tor_failed_to_start=Nem sikerült elindulnia a Tor-nak.
+torlauncher.tor_control_failed=Nem sikerült átvenni a Tor vezérlését.
+torlauncher.tor_bootstrap_failed=A Tor-nak nem sikerült Tor hálózati kapcsolatot létesíteni.
+torlauncher.tor_bootstrap_failed_details=%1$S hiba (%2$S).
+
+torlauncher.unable_to_start_tor=Nem sikerült a Tor-t elindítani.\n\n%S
+torlauncher.tor_missing=A Tor futtatható állomány hiányzik.
+torlauncher.torrc_missing=A torrc fájl hiányzik.
+torlauncher.datadir_missing=A Tor adat könyvtár nem létezik.
+torlauncher.password_hash_missing=Nem sikerült megszerezni a hash-elt jelszót.
+
+torlauncher.failed_to_get_settings=Sikertelen a Tor beállítások lekérése.\n\n%S
+torlauncher.failed_to_save_settings=Sikertelen a Tor beállítások mentése.\n\n%S
+torlauncher.ensure_tor_is_running=Kérjük ellenőrizze, hogy a Tor fut-e.
+
+torlauncher.error_proxy_addr_missing=Meg kell adnia egy IP címet, vagy egy gépnevet (host) és egy portot , ahhoz, hogy a Tor ezen a proxy-n keresztül kapcsolódjon az Internethez.
+torlauncher.error_proxy_type_missing=Ki kell választania a proxy típusát.
+torlauncher.error_bridges_missing=Meg kell adnia egy vagy több hidat.
+torlauncher.error_default_bridges_type_missing=Ki kell választanod egy átviteli típust a felkínált hidakhoz.
+torlauncher.error_bridge_bad_default_type=Nincs egy híd sem aminek az átviteli típusa %S elérhető lenne. Kérlek módosítsd a beállításaidat.
+
+torlauncher.recommended_bridge=(ajánlott)
+
+torlauncher.connect=Csatlakozás
+torlauncher.quit=Kilépés
+torlauncher.quit_win=Kilépés
+torlauncher.done=Kész
+
+torlauncher.forAssistance=Segítségér kérjük írjon ide: %S
torlauncher.bootstrapStatus.conn_dir=Csatlakozás egy Elosztó címtárhoz
torlauncher.bootstrapStatus.handshake_dir=Titkosított címtárkapcsolat létrehozása
@@ -22,3 +55,4 @@ torlauncher.bootstrapWarning.identity=identitás eltérés
torlauncher.bootstrapWarning.timeout=a kapcsolódási idő letelt
torlauncher.bootstrapWarning.noroute=nincs út a kiszolgálóhoz
torlauncher.bootstrapWarning.ioerror=írás/olvasás hiba
+torlauncher.bootstrapWarning.pt_missing=hiányzó becsatlakoztatható átvitel
diff --git a/src/chrome/locale/hy-AM/network-settings.dtd b/src/chrome/locale/hy-AM/network-settings.dtd
new file mode 100644
index 0000000..1324a5f
--- /dev/null
+++ b/src/chrome/locale/hy-AM/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Միանալ">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/hy-AM/progress.dtd b/src/chrome/locale/hy-AM/progress.dtd
new file mode 100644
index 0000000..3be7837
--- /dev/null
+++ b/src/chrome/locale/hy-AM/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor-ի կարգավիճակը">
+<!ENTITY torprogress.openSettings "Բացել Կարգավորումները">
+<!ENTITY torprogress.heading "Միացում Tor ցանցին">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/hy-AM/torlauncher.properties b/src/chrome/locale/hy-AM/torlauncher.properties
new file mode 100644
index 0000000..2e628d3
--- /dev/null
+++ b/src/chrome/locale/hy-AM/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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=Վերաթողարկեք այս ծրագիրը:
+torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
+torlauncher.tor_failed_to_start=Tor-ի թողարկման սխալ;
+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.
+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=Tor-ի կարգավորումներ չեն պահպանվել:\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=Դուք պետո է ընտրեք proxy-ի տիպը:
+torlauncher.error_bridges_missing=Դուք պետք է կանխորոշեք մեկ կամ մի քանի կամուրջներ;
+torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Միանալ
+torlauncher.quit=Չեղարկել
+torlauncher.quit_win=Ելք
+torlauncher.done=Պատրաստ է
+
+torlauncher.forAssistance=Օգնության համար կապվեք %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Միացում Tor ցանցին
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/hy/network-settings.dtd b/src/chrome/locale/hy/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/hy/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/hy/progress.dtd b/src/chrome/locale/hy/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/hy/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/hy/torlauncher.properties b/src/chrome/locale/hy/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/hy/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/ia/network-settings.dtd b/src/chrome/locale/ia/network-settings.dtd
new file mode 100644
index 0000000..6e2fba4
--- /dev/null
+++ b/src/chrome/locale/ia/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Si">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.address "Adresse:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
+<!ENTITY torsettings.useProxy.port "Porto:">
+<!ENTITY torsettings.useProxy.username "Nomine de usator:">
+<!ENTITY torsettings.useProxy.password "Contrasigno:">
+<!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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ia/progress.dtd b/src/chrome/locale/ia/progress.dtd
new file mode 100644
index 0000000..8d94c15
--- /dev/null
+++ b/src/chrome/locale/ia/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Stato de Tor">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ia/torlauncher.properties b/src/chrome/locale/ia/torlauncher.properties
new file mode 100644
index 0000000..574d73a
--- /dev/null
+++ b/src/chrome/locale/ia/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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=Tu debe seliger un typo de proxy
+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_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quitar
+torlauncher.quit_win=Sortir
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=Establishing a Tor circuit
+torlauncher.bootstrapStatus.done=Connected to the Tor network!
+
+torlauncher.bootstrapWarning.done=facite
+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
diff --git a/src/chrome/locale/id/network-settings.dtd b/src/chrome/locale/id/network-settings.dtd
new file mode 100644
index 0000000..83042c0
--- /dev/null
+++ b/src/chrome/locale/id/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Pengaturan Jaringan Tor">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Ya">
+<!ENTITY torSettings.no "Tidak">
+
+<!ENTITY torSettings.firstQuestion "Yang mana dari di bawah ini cocok dengan situasi anda?">
+<!ENTITY torSettings.configurePrompt1 "Koneksi internet komputer ini disensor, disaring, atau diladeni pewali.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Konfigur">
+<!ENTITY torSettings.connectPrompt2 "Saya ingin menghubungkan secara langsung ke jaringan Tor.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Hubungi">
+
+<!ENTITY torSettings.proxyQuestion "Apakah komputer ini perlu menggunakan proxy untuk mengakses internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "Kalau anda tidak yakin bagaimana menjawab pertanyaan ini, periksalah pengaturan Internet di browser lain untuk melihat apakah dia diatur untuk menggunakan proxy.">
+<!ENTITY torSettings.enterProxy "Masukkan pengaturan proxy.">
+<!ENTITY torSettings.firewallQuestion "Apakah koneksi Internet komputer ini melalui firewall yang hanya memperbolehkan koneksi ke port-port tertentu?">
+<!ENTITY torSettings.firewallHelp "Jika anda tidak yakin atas jawaban pertanyaan ini, pilih Tidak. Jika anda mendapatkan masalah dalam menghubungi network Tor, ubah pengaturan ini.">
+<!ENTITY torSettings.enterFirewall "Masukkan port-port (pisahkan dengan koma) yang diperbolehkan oleh firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Menunggu Tor untuk memulai...">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Opsional">
+
+<!ENTITY torsettings.useProxy.checkbox "Komputer ini perlu menggunakan proxy untuk mengakses Internet.">
+<!ENTITY torsettings.useProxy.type "Tipe Proxy:">
+<!ENTITY torsettings.useProxy.address "Alamat:">
+<!ENTITY torsettings.useProxy.address.placeholder "alamat IP atau nama host">
+<!ENTITY torsettings.useProxy.port "Port:">
+<!ENTITY torsettings.useProxy.username "Nama User:">
+<!ENTITY torsettings.useProxy.password "Kata sandi:">
+<!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 "Komputer ini pergi melalui firewall yang hanya mengizinkan koneksi untuk beberapa port">
+<!ENTITY torsettings.firewall.allowedPorts "Port yang diizinkan:">
+<!ENTITY torsettings.useBridges.checkbox "Internet Service Provider (ISP) saya memblokir koneksi ke jaringan Tor">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Masukkan satu atau beberapa jembatan penyambung (satu per baris).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Salin Log Tor Ke Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bantuan Bridge Relay">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/id/progress.dtd b/src/chrome/locale/id/progress.dtd
new file mode 100644
index 0000000..c2ea79d
--- /dev/null
+++ b/src/chrome/locale/id/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Status Tor ">
+<!ENTITY torprogress.openSettings "Buka Pengaturan">
+<!ENTITY torprogress.heading "Menghubungkan diri ke jaringan Tor">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/id/torlauncher.properties b/src/chrome/locale/id/torlauncher.properties
index 1ea0dbb..846839f 100644
--- a/src/chrome/locale/id/torlauncher.properties
+++ b/src/chrome/locale/id/torlauncher.properties
@@ -1,7 +1,40 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.tor_bootstrap_failed_details=%1$S gagal (%2$S).
+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 gagal untuk memulai.
+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.
+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=Anda harus menentukan baik alamat IP atau nama host dan nomor port untuk mengkonfigurasi Tor untuk menggunakan proxy untuk mengakses Internet.
+torlauncher.error_proxy_type_missing=Anda harus memilih jenis proxy.
+torlauncher.error_bridges_missing=Anda harus menspesifikan satu bridge atau lebih.
+torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Hubungi
+torlauncher.quit=Berhenti
+torlauncher.quit_win=Keluar
+torlauncher.done=Selesai.
+
+torlauncher.forAssistance=For assistance, contact %S
torlauncher.bootstrapStatus.conn_dir=Menghubungkan diri ke direktori relay
torlauncher.bootstrapStatus.handshake_dir=Membuat koneksi direktori terenkripsi
@@ -22,3 +55,4 @@ torlauncher.bootstrapWarning.identity=identitas tidak cocok
torlauncher.bootstrapWarning.timeout=waktu koneksi habis
torlauncher.bootstrapWarning.noroute=tidak ada rute ke host
torlauncher.bootstrapWarning.ioerror=error baca/tulis
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/is/network-settings.dtd b/src/chrome/locale/is/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/is/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/is/progress.dtd b/src/chrome/locale/is/progress.dtd
new file mode 100644
index 0000000..1541026
--- /dev/null
+++ b/src/chrome/locale/is/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Staða Tor">
+<!ENTITY torprogress.openSettings "Opna stillingar">
+<!ENTITY torprogress.heading "Tengist Tor-netinu">
+<!ENTITY torprogress.pleaseWait "Bíddu aðeins á meðan komið er á tengingu við Tor-netið">
diff --git a/src/chrome/locale/is/torlauncher.properties b/src/chrome/locale/is/torlauncher.properties
new file mode 100644
index 0000000..f9ec97e
--- /dev/null
+++ b/src/chrome/locale/is/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Hætta
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Tengist Tor-netinu
+torlauncher.bootstrapStatus.handshake_or=Establishing a Tor circuit
+torlauncher.bootstrapStatus.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
diff --git a/src/chrome/locale/it/network-settings.dtd b/src/chrome/locale/it/network-settings.dtd
index c319724..007240c 100644
--- a/src/chrome/locale/it/network-settings.dtd
+++ b/src/chrome/locale/it/network-settings.dtd
@@ -1,4 +1,4 @@
-<!ENTITY torsettings.dialog.title "Impostazioni della rete Tor">
+<!ENTITY torsettings.dialog.title "Impostazioni rete Tor">
<!-- For "first run" wizard: -->
@@ -23,8 +23,8 @@
<!ENTITY torSettings.firewallHelp "Se non sei sicuro su come rispondere a questa domanda, seleziona No. Nel caso in cui si verifichino problemi di connessione alla rete Tor, cambia queste impostazioni.">
<!ENTITY torSettings.enterFirewall "Inserisci una lista di porte consentite dal firewall, separate da una virgola.">
<!ENTITY torSettings.bridgeQuestion "Il tuo fornitore di servizi internet (ISP) blocca o censura la connessione alla rete Tor?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
-<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+<!ENTITY torSettings.bridgeHelp "Se non sei sicuro di come rispondere alla domanda, scegli No.&#160; Se scegli Sì, ti verrà chiesto di configurare Tor Bridges, che consiste in relay non elencati che rendono più difficile bloccare le connessioni alla Rete Tor.">
+<!ENTITY torSettings.bridgeSettingsPrompt "Puoi usare il set preconfigurato di bridge o ottenere ed inserire un set personale di bridge.">
<!-- Other: -->
@@ -46,17 +46,16 @@
<!ENTITY torsettings.firewall.checkbox "Questo computer passa attraverso un firewall che permette le connessioni solo ad alcune porte">
<!ENTITY torsettings.firewall.allowedPorts "Porte consentite:">
<!ENTITY torsettings.useBridges.checkbox "Il mio fornitore di servizi Internet (ISP) blocca le connessioni alla rete Tor">
-<!ENTITY torsettings.useBridges.default "
-">
+<!ENTITY torsettings.useBridges.default "Collegati usando i bridge preconfigurati">
<!ENTITY torsettings.useBridges.type "Tipo di trasporto:">
<!ENTITY torsettings.useBridges.custom "Inserire bridge personaizzati">
<!ENTITY torsettings.useBridges.label "Inserisci uno o più bridge relay (uno per riga)">
-<!ENTITY torsettings.useBridges.placeholder "Tipo indirizzo:porta">
+<!ENTITY torsettings.useBridges.placeholder "Inserisci indirizzo:porta">
<!ENTITY torsettings.copyLog "Copia il log di Tor negli "appunti" di sistema">
<!ENTITY torsettings.bridgeHelpTitle "Aiuto per i ponti relé">
<!ENTITY torsettings.bridgeHelp1 "Se non ti riesci a connettere alla rete Tor, è possibile che il tuo Internet Service Provider (ISP) o una qualche altra agenzia stiano bloccando Tor.&#160; Spesso puoi aggirare questo problema utilizzando un Bridge Tor, che è un relay non tracciato più difficile da bloccare.">
-<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp1B "Puoi usare il set preconfigurato di indirizzi bridge o ottenere un set personale di indirizzi attraverso uno di questi tre metodi:">
<!ENTITY torsettings.bridgeHelp2Heading "Attraverso il web">
<!ENTITY torsettings.bridgeHelp2 "Usa un browser per visitare https://bridges.torproject.org">
<!ENTITY torsettings.bridgeHelp3Heading "Attraverso l'autorisponditore Email">
diff --git a/src/chrome/locale/it/progress.dtd b/src/chrome/locale/it/progress.dtd
index 4cab5ff..fcc4b08 100644
--- a/src/chrome/locale/it/progress.dtd
+++ b/src/chrome/locale/it/progress.dtd
@@ -1,4 +1,4 @@
<!ENTITY torprogress.dialog.title "Stato di Tor">
<!ENTITY torprogress.openSettings "Apertura impostazioni">
<!ENTITY torprogress.heading "Connessione in corso alla rete Tor">
-<!ENTITY torprogress.pleaseWait "Per favore aspettare mentre stabiliamo una connessione alla rete Tor">
+<!ENTITY torprogress.pleaseWait "Si prega di attendere: stiamo stabilendo una connessione alla rete Tor.">
diff --git a/src/chrome/locale/it/torlauncher.properties b/src/chrome/locale/it/torlauncher.properties
index 9fc125d..cd514cf 100644
--- a/src/chrome/locale/it/torlauncher.properties
+++ b/src/chrome/locale/it/torlauncher.properties
@@ -24,7 +24,7 @@ torlauncher.ensure_tor_is_running=Per favore assicurati che Tor sia in esecuzion
torlauncher.error_proxy_addr_missing=Affinché Tor sia configurato all'utilizzo di un proxy per l'accesso ad Internet, devi specificare sia un indirizzo IP o nome Host, sia un numero di porta.
torlauncher.error_proxy_type_missing=Devi selezionare il tipo di proxy.
torlauncher.error_bridges_missing=Devi specificare uno o più ponti.
-torlauncher.error_default_bridges_type_missing=È necessario selezionare un tipo ti trasporto per il bridge selezionato.
+torlauncher.error_default_bridges_type_missing=È necessario selezionare un tipo di trasporto per il bridge preconfigurato.
torlauncher.error_bridge_bad_default_type=Non è disponibile alcun bridge con il tipo di trasporto %S. Modificare le proprie impostazioni.
torlauncher.recommended_bridge=(raccomandato)
@@ -55,4 +55,4 @@ torlauncher.bootstrapWarning.identity=discordanza di identità
torlauncher.bootstrapWarning.timeout=timeout della connessione
torlauncher.bootstrapWarning.noroute=nessun rotta per l'host
torlauncher.bootstrapWarning.ioerror=errore di lettura/scrittura
-torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
+torlauncher.bootstrapWarning.pt_missing=pluggable transport mancante
diff --git a/src/chrome/locale/jv/network-settings.dtd b/src/chrome/locale/jv/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/jv/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/jv/progress.dtd b/src/chrome/locale/jv/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/jv/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/jv/torlauncher.properties b/src/chrome/locale/jv/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/jv/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/ka/network-settings.dtd b/src/chrome/locale/ka/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/ka/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ka/progress.dtd b/src/chrome/locale/ka/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/ka/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ka/torlauncher.properties b/src/chrome/locale/ka/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/ka/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/kk/network-settings.dtd b/src/chrome/locale/kk/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/kk/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/kk/progress.dtd b/src/chrome/locale/kk/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/kk/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/kk/torlauncher.properties b/src/chrome/locale/kk/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/kk/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/km/network-settings.dtd b/src/chrome/locale/km/network-settings.dtd
new file mode 100644
index 0000000..a435e66
--- /dev/null
+++ b/src/chrome/locale/km/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "ការកំណត់បណ្ដាញ Tor">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "មុនពេលអ្នកភ្ជាប់ទៅបណ្ដាញ Tor អ្នកត្រូវផ្ដល់ព័ត៌មានអំពីការភ្ជាប់អ៊ីនធឺណិតកុំព្យូទ័រនេះ។">
+
+<!ENTITY torSettings.yes "បាទ/ចាស">
+<!ENTITY torSettings.no "ទេ">
+
+<!ENTITY torSettings.firstQuestion "តើការពណ៌នាណាមួយដូចខាងក្រោមនេះល្អបំផុតសម្រាប់ស្ថានភាពរបស់អ្នក?">
+<!ENTITY torSettings.configurePrompt1 "ការភ្ជាប់អ៊ីនធឺណិតកុំព្យូទ័រនេះត្រូវបានកែ ច្រោះ ឬដាក់ប្រូកស៊ី។">
+<!ENTITY torSettings.configurePrompt2 "ខ្ញុំត្រូវកំណត់រចនាសម្ព័ន្ធប្រ៊ីត, ជញ្ជាំងភ្លើង ឬការកំណត់ប្រូកស៊ី។">
+<!ENTITY torSettings.configure "កំណត់រចនាសម្ព័ន្ធ">
+<!ENTITY torSettings.connectPrompt2 "ខ្ញុំចង់ភ្ជាប់ដោយផ្ទាល់ទៅបណ្ដាញ Tor ។">
+<!ENTITY torSettings.connectPrompt3 "វានឹងដំណើរការក្នុងស្ថានភាពភាគច្រើន។">
+<!ENTITY torSettings.connect "តភ្ជាប់">
+
+<!ENTITY torSettings.proxyQuestion "តើកុំព្យូទ័រនេះត្រូវប្រើប្រូកស៊ី ដើម្បីចូលអ៊ីនធឺណិតឬ?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "បើអ្នកមិនប្រាកដអំពីវិធីឆ្លើយសំណួរនេះ មើលការកំណត់អ៊ីនធឺណិតក្នុងកម្មវិធីអ៊ីនធឺណិតផ្សេង ដើម្បីដឹងថាតើវាត្រូវបានកំណត់រចនាសម្ព័ន្ធដើម្បីប្រើប្រូកស៊ីដែរឬទេ។">
+<!ENTITY torSettings.enterProxy "បញ្ចូលការកំណត់ប្រូកស៊ី។">
+<!ENTITY torSettings.firewallQuestion "តើការភ្ជាប់អ៊ីនធឺណិតរបស់កុំព្យូទ័រនេះឆ្លងកាត់ជញ្ជាំងភ្លើងដែលអនុញ្ញាតតែការភ្ជាប់ទៅច្រកជាក់លាក់?">
+<!ENTITY torSettings.firewallHelp "បើអ្នកមិនប្រាកដវិធីឆ្លើយតសំណួរនេះ ជ្រើស ទេ។ បើអ្នកមានបញ្ហាក្នុងការភ្ជាប់ទៅបណ្ដាញ Tor ប្ដូរការកំណត់នេះ។">
+<!ENTITY torSettings.enterFirewall "បញ្ជីបញ្ជីច្រកដែលបំបែកដោយសញ្ញាក្បៀសដែលត្រូវបានអនុញ្ញាតដោយជញ្ជាំងភ្លើង។">
+<!ENTITY torSettings.bridgeQuestion "តើក្រុមហ៊ុនផ្ដល់អ៊ីនធឺណិតរបស់អ្នក (ISP) ទប់ស្កាត់ ឬបើមិនដូច្នេះទេការភ្ជាប់ឧបករណ៍ចាប់សញ្ញាទៅបណ្ដាញ Tor ?">
+<!ENTITY torSettings.bridgeHelp "បើអ្នកប្រាកដពីវិធីឆ្លើយសំណួរនេះ ជ្រើសទេ។ &#160; បើអ្នកជ្រើសបាទ/ចាស អ្នកនឹងត្រូវបានស្នើឲ្យកំណត់រចនាសម្ព័ន្ធប៊្រីត Tor ដែលជាការបញ្ជូនបន្តមិនបានរាយដែលធ្វើឲ្យវាកាន់តែលំបាកក្នុងការទប់ស្កាត់ការភ្ជាប់ទៅបណ្ដាញ Tor ។">
+<!ENTITY torSettings.bridgeSettingsPrompt "អ្នកអាចប្រើការកំណត់ប៊្រីតដែលបានផ្ដល់ ឬអ្នកអាចយក និងបញ្ចូលការកំណត់ប៊្រីតផ្ទាល់ខ្លួន។">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "កំពុងរង់ចាំ Tor ចាប់ផ្ដើម...">
+<!ENTITY torsettings.restart "ចាប់ផ្ដើមឡើងវិញ">
+
+<!ENTITY torsettings.optional "ជាជម្រើស">
+
+<!ENTITY torsettings.useProxy.checkbox "កុំព្យូទ័រនេះត្រូវប្រើប្រូកស៊ី ដើម្បីចូលអ៊ីនធឺណិត">
+<!ENTITY torsettings.useProxy.type "ប្រភេទប្រូកស៊ី៖">
+<!ENTITY torsettings.useProxy.address "អាយដ្ឋាន៖">
+<!ENTITY torsettings.useProxy.address.placeholder "អាសយដ្ឋាន IP ឬឈ្មោះម៉ាស៊ីន">
+<!ENTITY torsettings.useProxy.port "ច្រក៖">
+<!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">
+<!ENTITY torsettings.firewall.checkbox "កុំព្យូទ័រនេះឆ្លងកាត់ជញ្ជាំងភ្លើងដែលអនុញ្ញាតតែការភ្ជាប់ទៅច្រកជាក់លាក់">
+<!ENTITY torsettings.firewall.allowedPorts "ច្រកបានអនុញ្ញាត៖">
+<!ENTITY torsettings.useBridges.checkbox "ក្រុមហ៊ុនផ្ដល់សេវាកម្មអ៊ីនធឺណិត (ISP) របស់ខ្ញុំទប់ស្កាត់ការភ្ជាប់ទៅបណ្ដាញ Tor ។">
+<!ENTITY torsettings.useBridges.default "ភ្ជាប់ជាមួយប៊្រីតបានផ្ដល់">
+<!ENTITY torsettings.useBridges.type "ប្រភេទបញ្ជូន៖">
+<!ENTITY torsettings.useBridges.custom "បញ្ចូលប៊្រីតផ្ទាល់ខ្លួន">
+<!ENTITY torsettings.useBridges.label "បញ្ចូលការបញ្ជូនប្រ៊ីតបន្តមួយ ឬច្រើន (មួយក្នុងមួយជួរ)។">
+<!ENTITY torsettings.useBridges.placeholder "បញ្ចូល address:port">
+
+<!ENTITY torsettings.copyLog "ចម្លងកំណត់ហេតុ Tor ទៅក្ដារតម្បៀតខ្ទាស់">
+<!ENTITY torsettings.bridgeHelpTitle "ជំនួយបញ្ជូនប្រ៊ីតបន្ត">
+<!ENTITY torsettings.bridgeHelp1 "បើអ្នកមិនអាចភ្ជាប់ទៅបណ្ដាញ Tor វាអាចមកពីក្រុមហ៊ុនផ្ដល់សេវាកម្មអ៊ីនធឺណិត (ISP) ឬភ្នាក់ងារផ្សេងកំពុងទប់ស្កាត់ Tor ។ &#160; ជារឿយៗអ្នកអាចស្វែងយល់ពីបញ្ហានេះ ដោយប្រើប៊្រីត Tor ដែលត្រូវបានលាក់ការបញ្ជូនបន្តដែលពិបាកទប់ស្កាត់។">
+<!ENTITY torsettings.bridgeHelp1B "អ្នកអាចប្រើការកំណត់រចនាសម្ព័ន្ធជាមុន ការកំណត់អាសយដ្ឋានប៊្រីតដែលបានផ្ដល់ ឬអ្នកអាចយកការកំណត់អាសយដ្ឋានផ្ទាល់ខ្លួនដោយប្រើវិធីមួយក្នុងចំណោមវិធីសាស្ត្រទាំងបី៖">
+<!ENTITY torsettings.bridgeHelp2Heading "តាមរយៈបណ្ដាញ">
+<!ENTITY torsettings.bridgeHelp2 "ប្រើកម្មវិធីរុករកបណ្ដាញ ដើម្បីមើល https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "តាមរយៈការឆ្លើយតបដោយស្វ័យប្រវត្តិរបស់អ៊ីមែល">
+<!ENTITY torsettings.bridgeHelp3 "ផ្ញើអ៊ីមែលទៅ bridges(a)torproject.org ដោយមានឃ្លា 'get bridges' ដោយខ្លួនវាក្នុងតួសារ។&#160; ទោះជាយ៉ាងណាក៏ដោយ ដើម្បីធ្វើឲ្យវាកាន់តែពិបាកសម្រាប់អ្នកវាយប្រហារ ដើម្បីសិក្សាច្រើនអំពីអាសយដ្ឋានប៊្រីត អ្នកត្រូវផ្ញើសំណើនេះពីអាសយដ្ឋាន gmail.com ឬ yahoo.com ។">
+<!ENTITY torsettings.bridgeHelp4Heading "តាមរយៈជំនួយ">
+<!ENTITY torsettings.bridgeHelp4 "នៅជម្រើសចុងក្រោយ អ្នកអាចស្នើអាសយដ្ឋានប៊្រីតដោយផ្ញើសារអ៊ីមែលគួរសមទៅ help(a)rt.torproject.org.&#160; សូមចំណាំថា មនុស្សម្នាក់នឹងត្រូវឆ្លើយតបទៅសំណើនីមួយៗ។">
diff --git a/src/chrome/locale/km/progress.dtd b/src/chrome/locale/km/progress.dtd
new file mode 100644
index 0000000..b09663c
--- /dev/null
+++ b/src/chrome/locale/km/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "ស្ថានភាព Tor">
+<!ENTITY torprogress.openSettings "បើកការកំណត់">
+<!ENTITY torprogress.heading "ភ្ជាប់ទៅបណ្ដាញ Tor">
+<!ENTITY torprogress.pleaseWait "សូមរង់ចាំខណៈដែលយើងបង្កើតការភ្ជាប់ទៅបណ្ដាញ Tor ។">
diff --git a/src/chrome/locale/km/torlauncher.properties b/src/chrome/locale/km/torlauncher.properties
new file mode 100644
index 0000000..6256079
--- /dev/null
+++ b/src/chrome/locale/km/torlauncher.properties
@@ -0,0 +1,58 @@
+### Copyright (c) 2014, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+torlauncher.error_title=កម្មវិធីចាប់ផ្ដើម Tor
+
+torlauncher.tor_exited=បានចេញពី Tor ដោយមិនរំពឹងទុក
+torlauncher.please_restart_app=សូមចាប់ផ្ដើមកម្មវិធីនេះឡើងវិញ។
+torlauncher.tor_controlconn_failed=មិនអាចភ្ជាប់ទៅច្រកពិនិត្យរបស់ Tor
+torlauncher.tor_failed_to_start=បានបរាជ័យក្នុងការចាប់ផ្ដើម Tor
+torlauncher.tor_control_failed=បានបរាជ័យក្នុងការពិនិត្យ Tor ។
+torlauncher.tor_bootstrap_failed=Tor បានបរាជ័យក្នុងការបង្កើតការតភ្ជាប់បណ្ដាញ 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.failed_to_get_settings=មិនអាចទៅយកការកំណត់ Tor ។\n\n%S
+torlauncher.failed_to_save_settings=មិនអាចរក្សាទុកការកំណត់ Tor ។\n\n%S
+torlauncher.ensure_tor_is_running=សូមប្រាកដថា Tor កំពុងដំណើរការ។
+
+torlauncher.error_proxy_addr_missing=អ្នកត្រូវតែបញ្ជាក់ទាំងអាសយដ្ឋាន IP ឬឈ្មោះម៉ាស៊ីន និងលេខច្រក ដើម្បីកំណត់រចនាសម្ព័ន្ធ Tor ឲ្យប្រើប្រូកស៊ីដើម្បីចូលដំណើរការអ៊ីនធឺណិត។
+torlauncher.error_proxy_type_missing=អ្នកត្រូវតែជ្រើសប្រភេទប្រូកស៊ី។
+torlauncher.error_bridges_missing=អ្នកត្រូវតែបញ្ជាក់ប្រ៊ីតមួយ ឬច្រើន។
+torlauncher.error_default_bridges_type_missing=អ្នកត្រូវតែជ្រើសប្រភេទបញ្ជូនសម្រាប់ប៊្រីតបានផ្ដល់ឲ្យ។
+torlauncher.error_bridge_bad_default_type=គ្មានប៊្រីតបានផ្ដល់ដែលមានប្រភេទបញ្ជូន %S ។ សូមកែការកំណត់របស់អ្នក។
+
+torlauncher.recommended_bridge=(បានផ្ដល់អនុសាសន៍)
+
+torlauncher.connect=តភ្ជាប់
+torlauncher.quit=ចេញ
+torlauncher.quit_win=ចាកចេញ
+torlauncher.done=រួចរាល់
+
+torlauncher.forAssistance=សម្រាប់ជំនួយ សូមទាក់ទង %S
+
+torlauncher.bootstrapStatus.conn_dir=តភ្ជាប់ទៅថតការបញ្ជូនបន្ត
+torlauncher.bootstrapStatus.handshake_dir=បង្កើតការតភ្ជាប់ថតដែលបានអ៊ិនគ្រីប
+torlauncher.bootstrapStatus.requesting_status=ទៅយកស្ថានភាពបណ្ដាញ
+torlauncher.bootstrapStatus.loading_status=ការផ្ទុកស្ថានភាពបណ្ដាញ
+torlauncher.bootstrapStatus.loading_keys=ផ្ទុកប្រភពវិញ្ញាបនបត្រ
+torlauncher.bootstrapStatus.requesting_descriptors=ស្នើព័ត៌មានការបញ្ជូនបន្ត
+torlauncher.bootstrapStatus.loading_descriptors=ផ្ទុកព័ត៌មានការបញ្ជូនបន្ត
+torlauncher.bootstrapStatus.conn_or=ភ្ជាប់ទៅបណ្ដាញ Tor
+torlauncher.bootstrapStatus.handshake_or=បង្កើតសៀគ្វី Tor
+torlauncher.bootstrapStatus.done=បានតភ្ជាប់ទៅបណ្ដាញ Tor !
+
+torlauncher.bootstrapWarning.done=រួចរាល់
+torlauncher.bootstrapWarning.connectrefused=បានបដិសេធការតភ្ជាប់
+torlauncher.bootstrapWarning.misc=ផ្សេងៗគ្នា
+torlauncher.bootstrapWarning.resourcelimit=ធនធានមិនគ្រប់គ្រាន់
+torlauncher.bootstrapWarning.identity=អត្តសញ្ញាណមិនត្រូវគ្នា
+torlauncher.bootstrapWarning.timeout=អស់ពេលការតភ្ជាប់
+torlauncher.bootstrapWarning.noroute=គ្មាន route និង host
+torlauncher.bootstrapWarning.ioerror=កំហុស អាន/សរសេរ
+torlauncher.bootstrapWarning.pt_missing=បាត់ការបញ្ជូនដែលអាចដោតបាន
diff --git a/src/chrome/locale/kn/network-settings.dtd b/src/chrome/locale/kn/network-settings.dtd
new file mode 100644
index 0000000..4195d7e
--- /dev/null
+++ b/src/chrome/locale/kn/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "ಓಕೇ">
+<!ENTITY torSettings.no "ಇಲ್ಲಪ್ಪ">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "ಗುಪ್ತಪದ:">
+<!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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/kn/progress.dtd b/src/chrome/locale/kn/progress.dtd
new file mode 100644
index 0000000..b1c647d
--- /dev/null
+++ b/src/chrome/locale/kn/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "ಟಾರ್ನ ಸ್ಥಿತಿ">
+<!ENTITY torprogress.openSettings "ಅಪೂರ್ಣ ಸೆಟ್ಟಿಂಗ್ಗಳು">
+<!ENTITY torprogress.heading "ಟಾರ್ ಜಾಲಕ್ಕೆ ಸೇರಿಕೋತಾ ಇದೀವಿ.">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/kn/torlauncher.properties b/src/chrome/locale/kn/torlauncher.properties
new file mode 100644
index 0000000..4bcc82c
--- /dev/null
+++ b/src/chrome/locale/kn/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=ಟಾರ್ ಜಾಲಕ್ಕೆ ಸೇರಿಕೋತಾ ಇದೀವಿ.
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/ko-KR/network-settings.dtd b/src/chrome/locale/ko-KR/network-settings.dtd
new file mode 100644
index 0000000..ee9d699
--- /dev/null
+++ b/src/chrome/locale/ko-KR/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "네">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.address "주소:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
+<!ENTITY torsettings.useProxy.port "포트:">
+<!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">
+<!ENTITY torsettings.firewall.checkbox "This computer goes through a firewall that only allows connections to certain ports">
+<!ENTITY torsettings.firewall.allowedPorts "허용된 포트:">
+<!ENTITY torsettings.useBridges.checkbox "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ko-KR/progress.dtd b/src/chrome/locale/ko-KR/progress.dtd
new file mode 100644
index 0000000..896bd56
--- /dev/null
+++ b/src/chrome/locale/ko-KR/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Tor 네트워크로 연결하고 있어요">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ko-KR/torlauncher.properties b/src/chrome/locale/ko-KR/torlauncher.properties
new file mode 100644
index 0000000..d0daf09
--- /dev/null
+++ b/src/chrome/locale/ko-KR/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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=프록시를 써서 인터넷에 접속하도록 Tor를 설정하려면 IP 주소 또는 호스트 이름이랑 포트 숫자를 적어 주셔야 해요.
+torlauncher.error_proxy_type_missing=프록시 종류를 정해 주세요.
+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_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=나가기
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=중계소 경로에 연결하고 있어요
+torlauncher.bootstrapStatus.handshake_dir=경로와의 연결을 암호화해서 만들고 있어요
+torlauncher.bootstrapStatus.requesting_status=네트워크 상태를 알아오고 있어요
+torlauncher.bootstrapStatus.loading_status=네트워크 상태를 불러오고 있어요
+torlauncher.bootstrapStatus.loading_keys=인증서를 불러오고 있어요
+torlauncher.bootstrapStatus.requesting_descriptors=중계소 정보를 요청하고 있어요
+torlauncher.bootstrapStatus.loading_descriptors=중계소 정보를 불러오고 있어요
+torlauncher.bootstrapStatus.conn_or=Tor 네트워크로 연결하고 있어요
+torlauncher.bootstrapStatus.handshake_or=Tor 회선을 만들고 있어요
+torlauncher.bootstrapStatus.done=Tor 네트워크에 연결되었어요!
+
+torlauncher.bootstrapWarning.done=완료
+torlauncher.bootstrapWarning.connectrefused=연결이 거부됨
+torlauncher.bootstrapWarning.misc=기타 요인
+torlauncher.bootstrapWarning.resourcelimit=자원이 부족함
+torlauncher.bootstrapWarning.identity=식별자가 맞지 않음
+torlauncher.bootstrapWarning.timeout=연결 시간 초과
+torlauncher.bootstrapWarning.noroute=호스트로 이어진 길 없음
+torlauncher.bootstrapWarning.ioerror=읽기/쓰기 오류
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/ku/network-settings.dtd b/src/chrome/locale/ku/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/ku/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ku/progress.dtd b/src/chrome/locale/ku/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/ku/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ku/torlauncher.properties b/src/chrome/locale/ku/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/ku/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/kw/network-settings.dtd b/src/chrome/locale/kw/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/kw/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/kw/progress.dtd b/src/chrome/locale/kw/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/kw/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/kw/torlauncher.properties b/src/chrome/locale/kw/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/kw/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/ky/network-settings.dtd b/src/chrome/locale/ky/network-settings.dtd
new file mode 100644
index 0000000..dd496ee
--- /dev/null
+++ b/src/chrome/locale/ky/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ky/progress.dtd b/src/chrome/locale/ky/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/ky/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ky/torlauncher.properties b/src/chrome/locale/ky/torlauncher.properties
new file mode 100644
index 0000000..6d13844
--- /dev/null
+++ b/src/chrome/locale/ky/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Чыгуу
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=Establishing a Tor circuit
+torlauncher.bootstrapStatus.done=Tor тармагына туташтырылып турат!
+
+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
diff --git a/src/chrome/locale/lb/network-settings.dtd b/src/chrome/locale/lb/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/lb/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/lb/progress.dtd b/src/chrome/locale/lb/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/lb/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/lb/torlauncher.properties b/src/chrome/locale/lb/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/lb/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/lg/network-settings.dtd b/src/chrome/locale/lg/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/lg/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/lg/progress.dtd b/src/chrome/locale/lg/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/lg/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/lg/torlauncher.properties b/src/chrome/locale/lg/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/lg/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/ln/network-settings.dtd b/src/chrome/locale/ln/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/ln/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ln/progress.dtd b/src/chrome/locale/ln/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/ln/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ln/torlauncher.properties b/src/chrome/locale/ln/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/ln/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/lo/network-settings.dtd b/src/chrome/locale/lo/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/lo/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/lo/progress.dtd b/src/chrome/locale/lo/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/lo/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/lo/torlauncher.properties b/src/chrome/locale/lo/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/lo/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/lt/network-settings.dtd b/src/chrome/locale/lt/network-settings.dtd
new file mode 100644
index 0000000..f53fee8
--- /dev/null
+++ b/src/chrome/locale/lt/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Taip">
+<!ENTITY torSettings.no "Ne">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.address "Adresas:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
+<!ENTITY torsettings.useProxy.port "Prievadas:">
+<!ENTITY torsettings.useProxy.username "Vartotojo vardas:">
+<!ENTITY torsettings.useProxy.password "Slaptažodis:">
+<!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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/lt/progress.dtd b/src/chrome/locale/lt/progress.dtd
new file mode 100644
index 0000000..253043b
--- /dev/null
+++ b/src/chrome/locale/lt/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Jungiamasi prie Tor tinklo">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/lt/torlauncher.properties b/src/chrome/locale/lt/torlauncher.properties
index e2924cf..1f6e8d6 100644
--- a/src/chrome/locale/lt/torlauncher.properties
+++ b/src/chrome/locale/lt/torlauncher.properties
@@ -1,15 +1,58 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.tor_bootstrap_failed_details=%1$S nepavyko (%2$S).
+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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Išeiti
+torlauncher.done=Atlikta
+
+torlauncher.forAssistance=For assistance, contact %S
torlauncher.bootstrapStatus.conn_dir=Jungiamasi prie retransliavimo taškų
torlauncher.bootstrapStatus.handshake_dir=Užmezgiamas ryšys
torlauncher.bootstrapStatus.requesting_status=Nuskaitoma tinklo būklė
-torlauncher.bootstrapStatus.loading_status=Nustatoma tinklo būklė
+torlauncher.bootstrapStatus.loading_status=Įkeliama tinklo būklė
torlauncher.bootstrapStatus.loading_keys=Įkeliami prieigos sertifikatai
-torlauncher.bootstrapStatus.requesting_descriptors=Užklausiama retranslaicijos taškų informacija
-torlauncher.bootstrapStatus.loading_descriptors=Įkeliama retransliacijos informacija
+torlauncher.bootstrapStatus.requesting_descriptors=Užklausiama retransliacijos taškų informacija
+torlauncher.bootstrapStatus.loading_descriptors=Įkeliama retransliacijos taško informacija
torlauncher.bootstrapStatus.conn_or=Jungiamasi prie Tor tinklo
torlauncher.bootstrapStatus.handshake_or=Užmezgiamas sujungimas
-torlauncher.bootstrapStatus.done=Prijungtas prie Tor tinklo!
+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
diff --git a/src/chrome/locale/lv/network-settings.dtd b/src/chrome/locale/lv/network-settings.dtd
new file mode 100644
index 0000000..1da65a6
--- /dev/null
+++ b/src/chrome/locale/lv/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tīkla Tor iestatījumi">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Pirms pievienojaties pie tīkla Tor, Jums jānorāda informācija par šī datora interneta savienojumu.">
+
+<!ENTITY torSettings.yes "Jā">
+<!ENTITY torSettings.no "Nē">
+
+<!ENTITY torSettings.firstQuestion "Kura situācija vislabāk atbilst jūsējai?">
+<!ENTITY torSettings.configurePrompt1 "Šī datora interneta savienojums tiek vai nu cenzēts, vai filtrēts, vai arī realizēts caur starpnieku.">
+<!ENTITY torSettings.configurePrompt2 "Man jākonfigurē tilta, ugunsmūra vai starpniekservera iestatījumi.">
+<!ENTITY torSettings.configure "Konfigurēt">
+<!ENTITY torSettings.connectPrompt2 "Es vēlos tieši pieslēgties tīklam Tor.">
+<!ENTITY torSettings.connectPrompt3 "Šis strādās vairumā gadījumu.">
+<!ENTITY torSettings.connect "Veidot savienojumu">
+
+<!ENTITY torSettings.proxyQuestion "Vai šim datoram ir jālieto starpnieks, lai piekļūtu internetam?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "Ja neesat pārliecināts kāda ir pareizā atbilde, apskatiet cita pārlūka interneta iestatījumus, lai redzētu vai tas ir konfigurēts izmantot starpnieku.">
+<!ENTITY torSettings.enterProxy "Ievadiet starpnieka iestatījumus.">
+<!ENTITY torSettings.firewallQuestion "Vai šī datora interneta savienojums iet caur ugunsmūri, kurš atļauj savienojumus tikai ar atsevišķiem portiem?">
+<!ENTITY torSettings.firewallHelp "Ja neesat pārliecināts par pareizo atbildi, izvēlieties atbildi "Nē". Ja rodas problēmas pievienojoties tīklam Tor, mainiet šo iestatījumu.">
+<!ENTITY torSettings.enterFirewall "Ievadiet ar komatiem atdalītu ugusnmūra atļauto portu sarakstu.">
+<!ENTITY torSettings.bridgeQuestion "Vai Jūsu interneta pakalpojumu sniedzējs (ISP) bloķē vai savādāk cenzē savienojumus ar tīklu Tor?">
+<!ENTITY torSettings.bridgeHelp "Ja nezināt atbildi, izvēlieties No.&#160; ja izvēlēsities Jā, Jums lūgs konfigurēt Tor tiltus jeb Tor Bridges, proti, neuzskaitītus retranslatorus, kuri apgrūtina savienojumu bloķēšanu ar tīklu Tor.">
+<!ENTITY torSettings.bridgeSettingsPrompt "Jūs varat izmantot piedāvāto tiltu kopumu vai varat ievadīt tiltu pielāgotu sarakstu. ">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Gaida, kamēr Tor startēs...">
+<!ENTITY torsettings.restart "Restartēt">
+
+<!ENTITY torsettings.optional "Neobligāts">
+
+<!ENTITY torsettings.useProxy.checkbox "Šim datoram jālieto starpnieks, lai piekļūtu internetam">
+<!ENTITY torsettings.useProxy.type "Starpnieka tips:">
+<!ENTITY torsettings.useProxy.address "Adrese:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP adrese vai resursdatora nosaukums">
+<!ENTITY torsettings.useProxy.port "Ports:">
+<!ENTITY torsettings.useProxy.username "Lietotājvārds:">
+<!ENTITY torsettings.useProxy.password "Parole:">
+<!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 "Šis dators iet caur ugunsmūri, kurš atļauj tikai savienojumus ar noteiktiem portiem.">
+<!ENTITY torsettings.firewall.allowedPorts "Atļautie porti:">
+<!ENTITY torsettings.useBridges.checkbox "Mans interneta pakalpojumu sniedzējs (IPS) bloķē savienojumu izveidošanu ar tīklu Tor">
+<!ENTITY torsettings.useBridges.default "Veidot savienojumu ar piedāvātajiem tiltiem">
+<!ENTITY torsettings.useBridges.type "Transporta veids:">
+<!ENTITY torsettings.useBridges.custom "Ievadiet pielāgotus tiltus">
+<!ENTITY torsettings.useBridges.label "Ievadiet vienu vai vairākus tilta retranslatorus (vienu rindā).">
+<!ENTITY torsettings.useBridges.placeholder "rakstīt address:port">
+
+<!ENTITY torsettings.copyLog "Kopēt Tor žurnālu starpliktuvē">
+<!ENTITY torsettings.bridgeHelpTitle "Palīdzība par tiltu retranslatoriem">
+<!ENTITY torsettings.bridgeHelp1 "Ja nevarat izveidot savienojumu ar tīklu Tor, tad, iespējams, ka Jūsu interneta pakalpojumu sniedzējs (ISP) vai cita iestāde bloķē Tor.&#160; Bieži, šo problemu var apiet izmantojot Tor tiltus jeb Tor Bridges, proti, neuzskaitītus retranslatorus, kurus grūtāk bloķēt.">
+<!ENTITY torsettings.bridgeHelp1B "Jūs varat izmantot iepriekš nokonfigurētas un piedāvātas tiltu adreses vai varat iegūt pielāgotu adrešu kopumu, sekojot vienai no trim metodēm:">
+<!ENTITY torsettings.bridgeHelp2Heading "Caur tīmekli">
+<!ENTITY torsettings.bridgeHelp2 "Izmanto pārlūkprogrammu lai apmeklētu https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Caur E-pasta Auto-atbildētāju">
+<!ENTITY torsettings.bridgeHelp3 "Sūtiet e-pastu uz bridges(a)torproject.org ar rindu 'get bridges' teksta korpusā.&#160; Taču, lai uzbrucējam būtu sarežģītāk uzzināt daudz tiltu adrešu, Jums jāsūta šis pieprasījums no gmail.com vai yahoo.com e-pasta adreses.">
+<!ENTITY torsettings.bridgeHelp4Heading "Caur Palīdzības Centru">
+<!ENTITY torsettings.bridgeHelp4 "Pēdējās instances palīdzība tiltu adrešu pieprasījumiem ir sūtīt pieklājīgu e-pasta adresi uz help(a)rt.torproject.org.&#160; Lūdzu, ņemiet vērā, ka ikvienu pieprasījumu izskata cilvēks.">
diff --git a/src/chrome/locale/lv/progress.dtd b/src/chrome/locale/lv/progress.dtd
new file mode 100644
index 0000000..3924775
--- /dev/null
+++ b/src/chrome/locale/lv/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor'a statuss">
+<!ENTITY torprogress.openSettings "Atvērt iestatījumus">
+<!ENTITY torprogress.heading "Veido savienojumu ar Tor'a tīklu">
+<!ENTITY torprogress.pleaseWait "Lūdzu, gaidiet, kamēr izveidojam savienojumu ar tīklu Tor.">
diff --git a/src/chrome/locale/lv/torlauncher.properties b/src/chrome/locale/lv/torlauncher.properties
index cef7593..9ce39fd 100644
--- a/src/chrome/locale/lv/torlauncher.properties
+++ b/src/chrome/locale/lv/torlauncher.properties
@@ -1,7 +1,40 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.tor_bootstrap_failed_details=%1$S neizdevās (%2$S).
+torlauncher.error_title=Tor palaidējs
+
+torlauncher.tor_exited=Tor negaidīti beidza darbu.
+torlauncher.please_restart_app=Lūdzu, pārstartējiet šo lietotni.
+torlauncher.tor_controlconn_failed=Nevarēja veikt savienojumu ar Tor kontrolportu.
+torlauncher.tor_failed_to_start=Tor'am neizdevās startēt.
+torlauncher.tor_control_failed=Neizdevās pārņemt Tor vadību.
+torlauncher.tor_bootstrap_failed=Tor nevarēja savienoties ar Tor tiklu.
+torlauncher.tor_bootstrap_failed_details=%1$S neizdevas (%2$S).
+
+torlauncher.unable_to_start_tor=Nespēj startēt Tor:\n⏎\n%S
+torlauncher.tor_missing=Trūkst Tor'a izpildāmā moduļa.
+torlauncher.torrc_missing=Trūkst datnes torrc .
+torlauncher.datadir_missing=Tor'a datu direktorijs nepastāv.
+torlauncher.password_hash_missing=Neizdevās saņemt jaukto paroli.
+
+torlauncher.failed_to_get_settings=Neizdevās izgūt Tor'a iestatījumus.\n\n%S
+torlauncher.failed_to_save_settings=Neizdevās saglabāt Tor'a iestatījumus.\n\n%S
+torlauncher.ensure_tor_is_running=Lūdzu pārliecinieties par to, ka Tor strādā.
+
+torlauncher.error_proxy_addr_missing=Lai konfigurētu Tor'u tā, ka tas interneta piekļuvei lietotu starpnieku, ir jānorāda gan IP adrese vai viesotāja nosaukums, gan porta numurs.
+torlauncher.error_proxy_type_missing=Jums jāatlasa starpnieka tips.
+torlauncher.error_bridges_missing=Jums jānorāda viens vai vairāki tilti.
+torlauncher.error_default_bridges_type_missing=Jums piedāvātajiem tiltiem jāizvēlas transporta veids.
+torlauncher.error_bridge_bad_default_type=Nav piedāvātu tiltu ar transporta veidu %S . Lūdzu, koriģējiet uzstadījumus.
+
+torlauncher.recommended_bridge=(ieteicami)
+
+torlauncher.connect=Veidot savienojumu
+torlauncher.quit=Beigt
+torlauncher.quit_win=Iziet
+torlauncher.done=Gatavs
+
+torlauncher.forAssistance=Lai saņemtu palīdzību, sazinieties ar %S
torlauncher.bootstrapStatus.conn_dir=Veido savienojumu ar retranslatoru direktoriju
torlauncher.bootstrapStatus.handshake_dir=Izveido šifrētu savienojumu ar direktoriju
@@ -10,7 +43,7 @@ torlauncher.bootstrapStatus.loading_status=Ielādē tīkla statusu
torlauncher.bootstrapStatus.loading_keys=Ielādē sertificēšanas sertifikātus
torlauncher.bootstrapStatus.requesting_descriptors=Pieprasa retranslatoru informāciju
torlauncher.bootstrapStatus.loading_descriptors=Ielādē retranslatoru informāciju
-torlauncher.bootstrapStatus.conn_or=Veido savienojumu ar Tor tīklu
+torlauncher.bootstrapStatus.conn_or=Veido savienojumu ar Tor'a tīklu
torlauncher.bootstrapStatus.handshake_or=Izveido Tor maršrutu
torlauncher.bootstrapStatus.done=Savienojums ar tīklu Tor izveidots!
@@ -22,3 +55,4 @@ torlauncher.bootstrapWarning.identity=identitātes neatbilstība
torlauncher.bootstrapWarning.timeout=savienojuma noilgums
torlauncher.bootstrapWarning.noroute=nav maršruta uz viesotāju
torlauncher.bootstrapWarning.ioerror=lasīšanas/rakstīšanas kļūda
+torlauncher.bootstrapWarning.pt_missing=trūkst spraudņojamu transportu
diff --git a/src/chrome/locale/mg/network-settings.dtd b/src/chrome/locale/mg/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/mg/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/mg/progress.dtd b/src/chrome/locale/mg/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/mg/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/mg/torlauncher.properties b/src/chrome/locale/mg/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/mg/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/mi/network-settings.dtd b/src/chrome/locale/mi/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/mi/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/mi/progress.dtd b/src/chrome/locale/mi/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/mi/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/mi/torlauncher.properties b/src/chrome/locale/mi/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/mi/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/mk/network-settings.dtd b/src/chrome/locale/mk/network-settings.dtd
new file mode 100644
index 0000000..6750c88
--- /dev/null
+++ b/src/chrome/locale/mk/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.address "Address:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
+<!ENTITY torsettings.useProxy.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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/mk/progress.dtd b/src/chrome/locale/mk/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/mk/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/mk/torlauncher.properties b/src/chrome/locale/mk/torlauncher.properties
new file mode 100644
index 0000000..be1a741
--- /dev/null
+++ b/src/chrome/locale/mk/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Излез
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/ml/network-settings.dtd b/src/chrome/locale/ml/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/ml/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ml/progress.dtd b/src/chrome/locale/ml/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/ml/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ml/torlauncher.properties b/src/chrome/locale/ml/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/ml/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/mn/network-settings.dtd b/src/chrome/locale/mn/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/mn/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/mn/progress.dtd b/src/chrome/locale/mn/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/mn/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/mn/torlauncher.properties b/src/chrome/locale/mn/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/mn/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/mr/network-settings.dtd b/src/chrome/locale/mr/network-settings.dtd
new file mode 100644
index 0000000..0e06f38
--- /dev/null
+++ b/src/chrome/locale/mr/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "जोडा">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/mr/progress.dtd b/src/chrome/locale/mr/progress.dtd
new file mode 100644
index 0000000..9c675c1
--- /dev/null
+++ b/src/chrome/locale/mr/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "टॉर स्थिती">
+<!ENTITY torprogress.openSettings "सेटिंग्स उघडा">
+<!ENTITY torprogress.heading "टॉर जाळ्याला जोडणी करणे चालू आहे">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/mr/torlauncher.properties b/src/chrome/locale/mr/torlauncher.properties
new file mode 100644
index 0000000..7ddc1f3
--- /dev/null
+++ b/src/chrome/locale/mr/torlauncher.properties
@@ -0,0 +1,58 @@
+### Copyright (c) 2014, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+torlauncher.error_title=टॉर लाँचर
+
+torlauncher.tor_exited=टॉर अनपेक्षितपणे बंद झाले.
+torlauncher.please_restart_app=हे अप्लिकेशन परत सुरू करा.
+torlauncher.tor_controlconn_failed=टॉर नियंत्रण पोर्टला जोडण्यात अपयश.
+torlauncher.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=टॉर सुरू करण्यात अपयश.\n\n%S
+torlauncher.tor_missing=टॉरची प्रोग्राम फाइल अनुपस्थित.
+torlauncher.torrc_missing=torrc फाइल अनुपस्थित.
+torlauncher.datadir_missing=टॉर माहिती संच अस्तित्वात नाही.
+torlauncher.password_hash_missing=हॅश्ड परवलीचा शब्द मिळवण्यात अपयश.
+
+torlauncher.failed_to_get_settings=टॉरच्या सेटिंग्स मिळवण्यात अपयश.
+torlauncher.failed_to_save_settings=टॉरच्या सेटिंग्स जतन करण्यात अपयश.
+torlauncher.ensure_tor_is_running=कृपया टॉर सुरू असल्याची खात्री करा.
+
+torlauncher.error_proxy_addr_missing=टॉरद्वारे महाजालाचा वापर करण्यासाठी IP अॅड्रेस किंवा होस्टनेम आणि पोर्ट क्रमांक ह्या दोन्ही गोष्टी पुरवणे आवश्यक आहे.
+torlauncher.error_proxy_type_missing=प्रॉक्सी प्रकार निवडणे अनिवार्य आहे.
+torlauncher.error_bridges_missing=एक किंवा अधिक ब्रिजेस नमुद करणे अनिवार्य आहे.
+torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=जोडा
+torlauncher.quit=बाहेर पडा
+torlauncher.quit_win=बंद करा
+torlauncher.done=झाले
+
+torlauncher.forAssistance=सहकार्यासाठी संपर्क साधा : %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=टॉर जाळ्याला जोडणी करणे चालू आहे
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/ms-MY/network-settings.dtd b/src/chrome/locale/ms-MY/network-settings.dtd
new file mode 100644
index 0000000..b416d22
--- /dev/null
+++ b/src/chrome/locale/ms-MY/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tetapan Rangkaian Tor">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Ya">
+<!ENTITY torSettings.no "Tidak">
+
+<!ENTITY torSettings.firstQuestion "Antara berikut yang manakah terbaik menerangkan keadaan anda?">
+<!ENTITY torSettings.configurePrompt1 "Sambungan internet komputer ini telpas ditapis, atau di-proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Konfigurasi">
+<!ENTITY torSettings.connectPrompt2 "Saya ingin berhubung terus kepada rangkaian Tor.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Menyambung">
+
+<!ENTITY torSettings.proxyQuestion "Adakah komputer ini perlu menggunakan proksi untuk mengakses Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "Jika anda tidak pasti bagaimana untuk menjawab soalan ini, lihat tetapan Internet dalam pelayar yang lain untuk melihat sama ada ia dikonfigurasi untuk menggunakan proksi.">
+<!ENTITY torSettings.enterProxy "Masukkan tetapan proksi.">
+<!ENTITY torSettings.firewallQuestion "Adakah sambungan internet komputer ini melalui firewall yang hanya membenarkan sambungan ke port tertentu?">
+<!ENTITY torSettings.firewallHelp "Jika anda tidak pasti bagaimana untuk menjawab soalan ini, pilih Tidak. Jika anda menghadapi masalah untuk menyambung kepada rangkaian Tor, tukar tetapan ini.">
+<!ENTITY torSettings.enterFirewall "Masukkan senarai port yang dipisahkan melalui koma yang dibenarkan oleh firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Menunggu Tor untuk dimulakan...">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "Komputer ini perlu menggunakan proksi untuk mengakses Internet">
+<!ENTITY torsettings.useProxy.type "Jenis Proksi:">
+<!ENTITY torsettings.useProxy.address "Alamat:">
+<!ENTITY torsettings.useProxy.address.placeholder "Alamat IP atau nama host">
+<!ENTITY torsettings.useProxy.port "Port:">
+<!ENTITY torsettings.useProxy.username "Kata pengguna:">
+<!ENTITY torsettings.useProxy.password "Kata laluan:">
+<!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 "Komputer ini melalui firewall yang hanya membenarkan sambungan ke port tertentu">
+<!ENTITY torsettings.firewall.allowedPorts "Port yang dibenarkan:">
+<!ENTITY torsettings.useBridges.checkbox "Pembekal Perkhidmatan Internet saya (ISP) menghalang sambungan kepada rangkaian Tor">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Masukkan satu atau lebih bridge relay (satu per baris).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Salin log Tor ke clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bantuan Bridge Relay">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ms-MY/progress.dtd b/src/chrome/locale/ms-MY/progress.dtd
new file mode 100644
index 0000000..fd2a975
--- /dev/null
+++ b/src/chrome/locale/ms-MY/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Buka tetapan.">
+<!ENTITY torprogress.heading "Menyambung ke rangkaian Tor.">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ms-MY/torlauncher.properties b/src/chrome/locale/ms-MY/torlauncher.properties
new file mode 100644
index 0000000..cc510ed
--- /dev/null
+++ b/src/chrome/locale/ms-MY/torlauncher.properties
@@ -0,0 +1,58 @@
+### Copyright (c) 2014, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+torlauncher.error_title=Pelancar Tor
+
+torlauncher.tor_exited=Tor telah terkeluar secara tidak sengaja.
+torlauncher.please_restart_app=Sila mulakan semula aplikasi ini.
+torlauncher.tor_controlconn_failed=Tidak dapat menyambung ke port kawalan Tor.
+torlauncher.tor_failed_to_start=Tor gagal untuk bermula.
+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=Tidak dapat memulakan Tor.\n\n%S
+torlauncher.tor_missing=Tor executable hilang.
+torlauncher.torrc_missing=Fail torrc hilang.
+torlauncher.datadir_missing=Direktori data Tor tidak wujud.
+torlauncher.password_hash_missing=Gagal untuk mendapatkan kata laluan hashes.
+
+torlauncher.failed_to_get_settings=Gagal mendapatkan tetapan Tor.\n\n%S
+torlauncher.failed_to_save_settings=Gagal menyimpan tetapan Tor.\n\n%S
+torlauncher.ensure_tor_is_running=Sila pastikan bahawa Tor sedang berjalan.
+
+torlauncher.error_proxy_addr_missing=Anda mesti nyatakan kedua-dua alamat IP atau nama host dan beberapa port bagi mengkonfigurasi Tor untuk menggunakan proksi bagi mengakses Internet.
+torlauncher.error_proxy_type_missing=Anda mesti memilih jenis proksi.
+torlauncher.error_bridges_missing=Anda mesti menentukan satu atau lebih bridges.
+torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Menyambung
+torlauncher.quit=Henti
+torlauncher.quit_win=Keluar
+torlauncher.done=Selesai
+
+torlauncher.forAssistance=Untuk bantuan, hubungi %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Menyambung ke rangkaian Tor.
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/ms/network-settings.dtd b/src/chrome/locale/ms/network-settings.dtd
new file mode 100644
index 0000000..723a055
--- /dev/null
+++ b/src/chrome/locale/ms/network-settings.dtd
@@ -0,0 +1,55 @@
+<!ENTITY torsettings.dialog.title "">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "">
+
+<!ENTITY torSettings.yes "">
+<!ENTITY torSettings.no "">
+
+<!ENTITY torSettings.firstQuestion "">
+<!ENTITY torSettings.configurePrompt1 "">
+<!ENTITY torSettings.configurePrompt2 "">
+<!ENTITY torSettings.configure "">
+<!ENTITY torSettings.connectPrompt1 "">
+<!ENTITY torSettings.connectPrompt2 "">
+<!ENTITY torSettings.connect "">
+
+<!ENTITY torSettings.proxyQuestion "">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "">
+<!ENTITY torSettings.enterProxy "">
+<!ENTITY torSettings.firewallQuestion "">
+<!ENTITY torSettings.firewallHelp "">
+<!ENTITY torSettings.enterFirewall "">
+<!ENTITY torSettings.bridgeQuestion "">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "">
+<!ENTITY torsettings.restart "">
+
+<!ENTITY torsettings.optional "">
+
+<!ENTITY torsettings.useProxy.checkbox "">
+<!ENTITY torsettings.useProxy.type "">
+<!ENTITY torsettings.useProxy.address "">
+<!ENTITY torsettings.useProxy.address.placeholder "">
+<!ENTITY torsettings.useProxy.port "Port:">
+<!ENTITY torsettings.useProxy.username "">
+<!ENTITY torsettings.useProxy.password "">
+<!ENTITY torsettings.useProxy.type.socks4 "">
+<!ENTITY torsettings.useProxy.type.socks5 "">
+<!ENTITY torsettings.useProxy.type.http "">
+<!ENTITY torsettings.firewall.checkbox "">
+<!ENTITY torsettings.firewall.allowedPorts "">
+<!ENTITY torsettings.useBridges.checkbox "">
+<!ENTITY torsettings.useBridges.label "">
+<!ENTITY torsettings.useBridges.placeholder "">
+
+<!ENTITY torsettings.copyLog "">
+<!ENTITY torsettings.bridgeHelpTitle "">
+<!ENTITY torsettings.bridgeHelp1 "">
+<!ENTITY torsettings.bridgeHelp2 "">
+<!ENTITY torsettings.bridgeHelp3 "">
+<!ENTITY torsettings.bridgeHelp4 "">
diff --git a/src/chrome/locale/ms/torlauncher.properties b/src/chrome/locale/ms/torlauncher.properties
new file mode 100644
index 0000000..fcd4d83
--- /dev/null
+++ b/src/chrome/locale/ms/torlauncher.properties
@@ -0,0 +1,31 @@
+### Copyright (c) 2013, 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.\n\n%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
diff --git a/src/chrome/locale/mt/network-settings.dtd b/src/chrome/locale/mt/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/mt/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/mt/progress.dtd b/src/chrome/locale/mt/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/mt/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/mt/torlauncher.properties b/src/chrome/locale/mt/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/mt/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/my/network-settings.dtd b/src/chrome/locale/my/network-settings.dtd
new file mode 100644
index 0000000..b5233ac
--- /dev/null
+++ b/src/chrome/locale/my/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "ဟုတ်ကဲ့">
+<!ENTITY torSettings.no "လက်မခံ့ါ">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "စက်ပြန်ဖွင့်ရန်">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.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.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 "ခွင့်ပြုထားသော Ports များ -">
+<!ENTITY torsettings.useBridges.checkbox "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/my/progress.dtd b/src/chrome/locale/my/progress.dtd
new file mode 100644
index 0000000..a5a4e99
--- /dev/null
+++ b/src/chrome/locale/my/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor အနေအထား">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Tor ကွန်ရက်ကို ဆက်သွယ်နေသည်">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/my/torlauncher.properties b/src/chrome/locale/my/torlauncher.properties
index 6bbb1d7..293d193 100644
--- a/src/chrome/locale/my/torlauncher.properties
+++ b/src/chrome/locale/my/torlauncher.properties
@@ -1,7 +1,40 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.tor_bootstrap_failed_details=%1$S မအောင်မြင်ပါ (%2$S).
+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_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.
+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=အင်တာနက်ကို သုံးစွဲနိုင်ရန် ပရောက်ဇီကို ခံပြီး Tor ကို ပြင်ဆင်ရန် IP လိပ်စာ (သို့) host အမည် နှင့် port နံပါတ် တစ်ခုကို တွဲပြီး သတ်မှတ်ဖို့ လိုသည်။
+torlauncher.error_proxy_type_missing=ပရောင်ဇီ အမျိုးအစားကို ရွေးချယ်ရမည်။
+torlauncher.error_bridges_missing=Bridge တစ်ခု (သို့) တစ်ခုမက ရွေးချယ်ရမည်။
+torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=ထွက်ရန်
+torlauncher.quit_win=ထွက်ရန်
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
torlauncher.bootstrapStatus.conn_dir=Relay ဖိုင်လမ်းကြောင်း တစ်ခုကို ဆက်သွယ်နေသည်
torlauncher.bootstrapStatus.handshake_dir=စာဝှက်ထားသည့် ဖိုင်လမ်းကြောင်း ချိတ်ဆက်မှု တစ်ခု တည်ဆောက်နေသည်
@@ -22,3 +55,4 @@ torlauncher.bootstrapWarning.identity=အထောက်အထား မကိ
torlauncher.bootstrapWarning.timeout=ချိတ်ဆက်မှုလိုင်း ပြတ်သွားသည်
torlauncher.bootstrapWarning.noroute=Host ကို သွားမည့် လမ်းမရှိပါ
torlauncher.bootstrapWarning.ioerror=အရေး/အဖတ် ချို့ယွင်းချက်
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/nah/network-settings.dtd b/src/chrome/locale/nah/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/nah/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/nah/progress.dtd b/src/chrome/locale/nah/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/nah/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/nah/torlauncher.properties b/src/chrome/locale/nah/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/nah/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/nap/network-settings.dtd b/src/chrome/locale/nap/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/nap/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/nap/progress.dtd b/src/chrome/locale/nap/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/nap/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/nap/torlauncher.properties b/src/chrome/locale/nap/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/nap/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/nb/network-settings.dtd b/src/chrome/locale/nb/network-settings.dtd
new file mode 100644
index 0000000..e065b65
--- /dev/null
+++ b/src/chrome/locale/nb/network-settings.dtd
@@ -0,0 +1,66 @@
+<!ENTITY torsettings.dialog.title "Tor Nettverksinnstillinger">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Før du kan koble til Tor-nettverket, må du gi informasjon om denne datamaskinens internett-tilkobling.">
+
+<!ENTITY torSettings.yes "Ja">
+<!ENTITY torSettings.no "Nei">
+
+<!ENTITY torSettings.firstQuestion "Hvilket av følgende beskriver best din situasjon?">
+<!ENTITY torSettings.configurePrompt1 "Denne datamaskinens Internett-tilkobling er sensurert, filtrert, eller går gjennom en proxy.">
+<!ENTITY torSettings.configurePrompt2 "Jeg må konfigurere bro, brannmur eller proxy innstillinger.">
+<!ENTITY torSettings.configure "Konfigurer">
+<!ENTITY torSettings.connectPrompt2 "Jeg vil koble direkte til Tor-nettverket.">
+<!ENTITY torSettings.connectPrompt3 "Dette vil fungere i de fleste situasjoner.">
+<!ENTITY torSettings.connect "Koble til">
+
+<!ENTITY torSettings.proxyQuestion "Må denne datamaskinen bruke en proxy for å få tilgang til Internett?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "Hvis du ikke er sikker på hvordan du skal svare på dette spørsmålet, se på Internett-innstillingene i en annen nettleser for å se om den er konfigurert til å bruke en proxy.">
+<!ENTITY torSettings.enterProxy "Skriv inn proxy-innstillingene.">
+<!ENTITY torSettings.firewallQuestion "Går denne datamaskinens Internett-tilkobling gjennom en brannmur som kun tillater forbindelser til visse porter?">
+<!ENTITY torSettings.firewallHelp "Hvis du ikke er sikker på hvordan du skal svare på dette spørsmålet, velg nei. Hvis du støter på problemer med å koble til Tor-nettverket, endrer du denne innstillingen.">
+<!ENTITY torSettings.enterFirewall "Skriv inn en liste, adskilt med komma, over porter som er tillatt av brannmuren.">
+<!ENTITY torSettings.bridgeQuestion "Blokkerer eller sensurerer internettleverandøren (ISP) din tilkoblinger til Tor-nettverket?">
+<!ENTITY torSettings.bridgeHelp "Hvis du er usikker på hva du skal svare på dette spørsmålet, velg Nei.&#160; Hvis du velger Ja, vil du bli bedt om å konfigurere Tor-broer, som er ulistede reléer som gjør det vanskeligere å blokkere tilkoblinger til Tor-nettverket.">
+<!ENTITY torSettings.bridgeSettingsPrompt "Du kan bruke de angitte broene eller du kan skaffe og oppgi egendefinerte broer.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Venter på at Tor skal starte...">
+<!ENTITY torsettings.restart "Start på nytt">
+
+<!ENTITY torsettings.optional "Valgfritt">
+
+<!ENTITY torsettings.useProxy.checkbox "Denne datamaskinen trenger å bruke en proxy for å få tilgang til Internett.">
+<!ENTITY torsettings.useProxy.type "Proxytype:">
+<!ENTITY torsettings.useProxy.address "Adresse:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP-adresse, eller vertsnavn">
+<!ENTITY torsettings.useProxy.port "Port:">
+<!ENTITY torsettings.useProxy.username "Brukernavn:">
+<!ENTITY torsettings.useProxy.password "Passord:">
+<!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 "Denne datamaskinen går gjennom en brannmur som kun tillater tilkoblinger til visse porter">
+<!ENTITY torsettings.firewall.allowedPorts "Tillatte Porter:">
+<!ENTITY torsettings.useBridges.checkbox "Min Internettleverandør (ISP) blokkerer tilkoblinger til Tor-nettverket">
+<!ENTITY torsettings.useBridges.default "Koble til med angitte broer">
+<!ENTITY torsettings.useBridges.type "Tilkoblingstype:">
+<!ENTITY torsettings.useBridges.custom "Angi egendefinerte broer">
+<!ENTITY torsettings.useBridges.label "Skriv inn en, eller fler bro-reléer (èn pr linje).">
+<!ENTITY torsettings.useBridges.placeholder "type adresse:port">
+
+<!ENTITY torsettings.copyLog "Kopier Torloggen til Utklippstavlen">
+<!ENTITY torsettings.bridgeHelpTitle "Bro-relé Hjelp">
+<!ENTITY torsettings.bridgeHelp1 "Hvis du ikke får koblet til Tor-nettverket, kan det være at internettleverandøren din (ISP), eller et annet byrå/institusjon/etat blokkerer Tor.&#160; Som regel kan du omgå dette problemet ved å bruke Tor-broer, som er ulistede reléer og derfor vanskeligere å blokkere.">
+<!ENTITY torsettings.bridgeHelp1B "Du kan bruke de prekonfigurerte, angitte bro-adressene eller du kan skaffe deg egendefinerte adresser ved å bruke en av følgende tre metoder:">
+<!ENTITY torsettings.bridgeHelp2Heading "Via nettet">
+<!ENTITY torsettings.bridgeHelp2 "Bruk en nettleser for å besøke https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Via e-post autosvar">
+<!ENTITY torsettings.bridgeHelp3 "Send e-post til bridges(a)torproject.org med tekstlinjen 'get bridges' som eneste innhold i e-posten.&#160;
+Men, for å gjøre det vanskeligere for en angriper å lære seg en masse bro-adresser, må du sende denne forespørselen fra en gmail.com eller yahoo.com adresse.">
+<!ENTITY torsettings.bridgeHelp4Heading "Via supporten">
+<!ENTITY torsettings.bridgeHelp4 "Som en siste utvei, kan du be om bro-adresser ved å sende en høflig e-post til help(a)rt.torproject.org.&#160;
+Tenk over at en person må svare på hver slik forespørsel.">
diff --git a/src/chrome/locale/nb/progress.dtd b/src/chrome/locale/nb/progress.dtd
new file mode 100644
index 0000000..3052326
--- /dev/null
+++ b/src/chrome/locale/nb/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Åpne Innstillinger">
+<!ENTITY torprogress.heading "Kobler til Tor-nettverket">
+<!ENTITY torprogress.pleaseWait "Vennligst vent mens vi etablerer en forbindelse til Tor-nettverket.">
diff --git a/src/chrome/locale/nb/torlauncher.properties b/src/chrome/locale/nb/torlauncher.properties
index 6043de3..8e56f67 100644
--- a/src/chrome/locale/nb/torlauncher.properties
+++ b/src/chrome/locale/nb/torlauncher.properties
@@ -1,8 +1,41 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
+torlauncher.error_title=Tor Launcher
+
+torlauncher.tor_exited=Tor ble uventet avsluttet.
+torlauncher.please_restart_app=Vennligst start denne applikasjonen på nytt.
+torlauncher.tor_controlconn_failed=Kunne ikke koble til Tor kontrollport.
+torlauncher.tor_failed_to_start=Tor kunne ikke starte.
+torlauncher.tor_control_failed=Feilet i ta kontroll over Tor.
+torlauncher.tor_bootstrap_failed=Tor fikk ikke etablert en forbindelse til Tor-nettverket.
torlauncher.tor_bootstrap_failed_details=%1$S feilet (%2$S).
+torlauncher.unable_to_start_tor=Kunne ikke starte Tor.\n\n%S
+torlauncher.tor_missing=Den kjørbare Tor-filen finnes ikke.
+torlauncher.torrc_missing=torrc filen finnes ikke.
+torlauncher.datadir_missing=Datamappen til Tor finnes ikke.
+torlauncher.password_hash_missing=Kunne ikke hente kryptert passord.
+
+torlauncher.failed_to_get_settings=Kunne ikke hente Tor-innstillinger.\n\n%S
+torlauncher.failed_to_save_settings=Kunne ikke lagre Tor-innstillinger.\n\n%S
+torlauncher.ensure_tor_is_running=Vennligst sjekk at Tor kjører.
+
+torlauncher.error_proxy_addr_missing=Du må spesifisere både IP-adresse eller vertsnavn og et portnummer for å konfigurere Tor til å bruke en proxy for å koble til Internett.
+torlauncher.error_proxy_type_missing=Du må velge proxytypen
+torlauncher.error_bridges_missing=Du må velge én eller flere broer.
+torlauncher.error_default_bridges_type_missing=Du må velge en tilkoblingstype for de angitte broene.
+torlauncher.error_bridge_bad_default_type=Ingen angitte broer som har tilkoblingstypen %S er tilgjengelige. Vennligst juster innstillingene dine.
+
+torlauncher.recommended_bridge=(anbefalt)
+
+torlauncher.connect=Koble til
+torlauncher.quit=Avslutt
+torlauncher.quit_win=Exit
+torlauncher.done=Ferdig
+
+torlauncher.forAssistance=For hjelp, kontakt %S
+
torlauncher.bootstrapStatus.conn_dir=Kobler til en relékatalog
torlauncher.bootstrapStatus.handshake_dir=Etablerer en kryptert katalogforbindelse
torlauncher.bootstrapStatus.requesting_status=Mottar nettverkstatus
@@ -22,3 +55,4 @@ torlauncher.bootstrapWarning.identity=feil identitet
torlauncher.bootstrapWarning.timeout=forbindelse tidsavbrutt
torlauncher.bootstrapWarning.noroute=ingen rute til vert
torlauncher.bootstrapWarning.ioerror=lese/skrive feil
+torlauncher.bootstrapWarning.pt_missing=Pluggable Transport mangler
diff --git a/src/chrome/locale/nds/network-settings.dtd b/src/chrome/locale/nds/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/nds/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/nds/progress.dtd b/src/chrome/locale/nds/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/nds/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/nds/torlauncher.properties b/src/chrome/locale/nds/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/nds/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/ne/network-settings.dtd b/src/chrome/locale/ne/network-settings.dtd
new file mode 100644
index 0000000..d0cd2c8
--- /dev/null
+++ b/src/chrome/locale/ne/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "जडान गर्नुहोस् ">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ne/progress.dtd b/src/chrome/locale/ne/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/ne/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ne/torlauncher.properties b/src/chrome/locale/ne/torlauncher.properties
new file mode 100644
index 0000000..c3d00d5
--- /dev/null
+++ b/src/chrome/locale/ne/torlauncher.properties
@@ -0,0 +1,58 @@
+### Copyright (c) 2014, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+torlauncher.error_title=टोर सुरुवातकर्ता
+
+torlauncher.tor_exited=टोर अनपेक्षित रुपमा बन्द भयो|
+torlauncher.please_restart_app=कृपया यो सफ्टओएर पुन: संचालन गर्नुहोस |
+torlauncher.tor_controlconn_failed=टोरको नियेंत्रण पोर्टसंग जडान विफल भयो|
+torlauncher.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.
+torlauncher.datadir_missing=The Tor data directory does not exist.
+torlauncher.password_hash_missing=Failed to get hashed password.
+
+torlauncher.failed_to_get_settings=टोरको सेटिङ भेटिएन
+torlauncher.failed_to_save_settings=टोरको सेटिङ सेब गर्न सकिएन|
+torlauncher.ensure_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=एक वा एक भन्दा बढी पुल संकेत गर्नुहोस् |
+torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=जडान गर्नुहोस्
+torlauncher.quit=बन्द गर्नुहोस
+torlauncher.quit_win=बन्द
+torlauncher.done=भयो
+
+torlauncher.forAssistance=जानकारीको लागि सम्पर्क गर्नुहोस
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/nl-BE/network-settings.dtd b/src/chrome/locale/nl-BE/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/nl-BE/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/nl-BE/progress.dtd b/src/chrome/locale/nl-BE/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/nl-BE/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/nl-BE/torlauncher.properties b/src/chrome/locale/nl-BE/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/nl-BE/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/nn/network-settings.dtd b/src/chrome/locale/nn/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/nn/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/nn/progress.dtd b/src/chrome/locale/nn/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/nn/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/nn/torlauncher.properties b/src/chrome/locale/nn/torlauncher.properties
new file mode 100644
index 0000000..8d77b2e
--- /dev/null
+++ b/src/chrome/locale/nn/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(tilrådd)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/nso/network-settings.dtd b/src/chrome/locale/nso/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/nso/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/nso/progress.dtd b/src/chrome/locale/nso/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/nso/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/nso/torlauncher.properties b/src/chrome/locale/nso/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/nso/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/oc/network-settings.dtd b/src/chrome/locale/oc/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/oc/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/oc/progress.dtd b/src/chrome/locale/oc/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/oc/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/oc/torlauncher.properties b/src/chrome/locale/oc/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/oc/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/or/network-settings.dtd b/src/chrome/locale/or/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/or/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/or/progress.dtd b/src/chrome/locale/or/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/or/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/or/torlauncher.properties b/src/chrome/locale/or/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/or/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/pa/network-settings.dtd b/src/chrome/locale/pa/network-settings.dtd
new file mode 100644
index 0000000..bb781e4
--- /dev/null
+++ b/src/chrome/locale/pa/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "ਹਾਂ">
+<!ENTITY torSettings.no "ਨਹੀਂ">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.address "ਪਤਾ:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
+<!ENTITY torsettings.useProxy.port "Port:">
+<!ENTITY torsettings.useProxy.username "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">
+<!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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/pa/progress.dtd b/src/chrome/locale/pa/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/pa/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/pa/torlauncher.properties b/src/chrome/locale/pa/torlauncher.properties
new file mode 100644
index 0000000..7019a69
--- /dev/null
+++ b/src/chrome/locale/pa/torlauncher.properties
@@ -0,0 +1,58 @@
+### Copyright (c) 2014, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+torlauncher.error_title=ਟੋਰ ਲਾਂਚਰ
+
+torlauncher.tor_exited=Tor unexpectedly exited.
+torlauncher.please_restart_app=ਇਹ ਐਪਲੀਕੇਸ਼ਨ ਮੁੜ-ਚਾਲੂ ਕਰੋ
+torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
+torlauncher.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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=ਬੰਦ ਕਰੋ
+torlauncher.done=ਮੁਕੰਮਲ
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=ਨੈੱਟਵਰਕ ਸਥਿਤੀ ਪ੍ਰਾਪਤ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ
+torlauncher.bootstrapStatus.loading_status=ਨੈੱਟਵਰਕ ਸਥਇਤੀ ਲੋਡ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=Establishing a Tor circuit
+torlauncher.bootstrapStatus.done=Connected to the Tor network!
+
+torlauncher.bootstrapWarning.done=ਮੁਕੰਮਲ
+torlauncher.bootstrapWarning.connectrefused=connection refused
+torlauncher.bootstrapWarning.misc=ਫੁਟਕਲ
+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
diff --git a/src/chrome/locale/pap/network-settings.dtd b/src/chrome/locale/pap/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/pap/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/pap/progress.dtd b/src/chrome/locale/pap/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/pap/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/pap/torlauncher.properties b/src/chrome/locale/pap/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/pap/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/pl-PL/network-settings.dtd b/src/chrome/locale/pl-PL/network-settings.dtd
new file mode 100644
index 0000000..9a2f3f6
--- /dev/null
+++ b/src/chrome/locale/pl-PL/network-settings.dtd
@@ -0,0 +1,55 @@
+<!ENTITY torsettings.dialog.title "">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "">
+
+<!ENTITY torSettings.yes "Tak">
+<!ENTITY torSettings.no "Nie">
+
+<!ENTITY torSettings.firstQuestion "">
+<!ENTITY torSettings.configurePrompt1 "">
+<!ENTITY torSettings.configurePrompt2 "">
+<!ENTITY torSettings.configure "">
+<!ENTITY torSettings.connectPrompt1 "">
+<!ENTITY torSettings.connectPrompt2 "">
+<!ENTITY torSettings.connect "">
+
+<!ENTITY torSettings.proxyQuestion "">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "">
+<!ENTITY torSettings.enterProxy "">
+<!ENTITY torSettings.firewallQuestion "">
+<!ENTITY torSettings.firewallHelp "">
+<!ENTITY torSettings.enterFirewall "">
+<!ENTITY torSettings.bridgeQuestion "">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "">
+<!ENTITY torsettings.restart "">
+
+<!ENTITY torsettings.optional "">
+
+<!ENTITY torsettings.useProxy.checkbox "">
+<!ENTITY torsettings.useProxy.type "">
+<!ENTITY torsettings.useProxy.address "">
+<!ENTITY torsettings.useProxy.address.placeholder "">
+<!ENTITY torsettings.useProxy.port "">
+<!ENTITY torsettings.useProxy.username "">
+<!ENTITY torsettings.useProxy.password "">
+<!ENTITY torsettings.useProxy.type.socks4 "">
+<!ENTITY torsettings.useProxy.type.socks5 "">
+<!ENTITY torsettings.useProxy.type.http "">
+<!ENTITY torsettings.firewall.checkbox "">
+<!ENTITY torsettings.firewall.allowedPorts "">
+<!ENTITY torsettings.useBridges.checkbox "">
+<!ENTITY torsettings.useBridges.label "">
+<!ENTITY torsettings.useBridges.placeholder "">
+
+<!ENTITY torsettings.copyLog "">
+<!ENTITY torsettings.bridgeHelpTitle "">
+<!ENTITY torsettings.bridgeHelp1 "">
+<!ENTITY torsettings.bridgeHelp2 "">
+<!ENTITY torsettings.bridgeHelp3 "">
+<!ENTITY torsettings.bridgeHelp4 "">
diff --git a/src/chrome/locale/pl-PL/progress.dtd b/src/chrome/locale/pl-PL/progress.dtd
new file mode 100644
index 0000000..6edceb2
--- /dev/null
+++ b/src/chrome/locale/pl-PL/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Status sieci Tor">
+<!ENTITY torprogress.openSettings "Ustawienia">
+<!ENTITY torprogress.heading "Łączenie z siecią Tor">
+<!ENTITY torprogress.pleaseWait "Przeglądarka Tor uruchomi się po połączeniu z siecią Tor">
diff --git a/src/chrome/locale/pl-PL/torlauncher.properties b/src/chrome/locale/pl-PL/torlauncher.properties
new file mode 100644
index 0000000..54c1f90
--- /dev/null
+++ b/src/chrome/locale/pl-PL/torlauncher.properties
@@ -0,0 +1,31 @@
+### Copyright (c) 2013, 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.\n\n%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=Wyjście
+torlauncher.done=Zrobione
+
+# torlauncher.forAssistance=For assistance, contact %S
diff --git a/src/chrome/locale/pms/network-settings.dtd b/src/chrome/locale/pms/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/pms/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/pms/progress.dtd b/src/chrome/locale/pms/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/pms/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/pms/torlauncher.properties b/src/chrome/locale/pms/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/pms/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/ps/network-settings.dtd b/src/chrome/locale/ps/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/ps/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ps/progress.dtd b/src/chrome/locale/ps/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/ps/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ps/torlauncher.properties b/src/chrome/locale/ps/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/ps/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/pt-BR/network-settings.dtd b/src/chrome/locale/pt-BR/network-settings.dtd
new file mode 100644
index 0000000..5ba3f69
--- /dev/null
+++ b/src/chrome/locale/pt-BR/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Configurações de Rede Tor">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Você deve fornecer informações sobre a conexão à Internet desse computador antes de se conectar à rede Tor.">
+
+<!ENTITY torSettings.yes "Sim">
+<!ENTITY torSettings.no "Não">
+
+<!ENTITY torSettings.firstQuestion "Quais opções descrevem melhor a sua situação?">
+<!ENTITY torSettings.configurePrompt1 "A conexão Internet deste computador foi censurada, filtrada ou limitada por um proxy.">
+<!ENTITY torSettings.configurePrompt2 "Eu preciso configurar o bridge, firewall ou opções de proxy.">
+<!ENTITY torSettings.configure "Configurar">
+<!ENTITY torSettings.connectPrompt2 "Eu gostaria de me conectar diretamente à rede Tor.">
+<!ENTITY torSettings.connectPrompt3 "Isso funcionará na maioria das situações.">
+<!ENTITY torSettings.connect "Conectar">
+
+<!ENTITY torSettings.proxyQuestion "Este computador precisa usar um proxy para acessar a Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "Caso você não tenha certeza sobre como responder a essa questão, consulte as configurações de rede em um outro browser para saber se ele está configurado para usar um proxy.">
+<!ENTITY torSettings.enterProxy "Insira as configurações de proxy.">
+<!ENTITY torSettings.firewallQuestion "A conexão Internet deste computador é filtrada por uma firewall que autoriza conexões somente para certas portas?">
+<!ENTITY torSettings.firewallHelp "Se você não tiver certeza sobre como responder a esta questão, escolha Não. Em caso de dificuldades de conexão à rede Tor, modifique esta configuração.">
+<!ENTITY torSettings.enterFirewall "Insira, separando-a por vírgulas, uma lista de portas habilitadas pelo firewall. ">
+<!ENTITY torSettings.bridgeQuestion "Seu provedor de serviços de internet (ISP) bloqueiam ou censuram conexões à rede Tor?">
+<!ENTITY torSettings.bridgeHelp "Se você não está seguro de como responder esta questão, escolha No.&#160; Se você escolher Sim, você será perguntado para configurar pontes Tor, que são relays não listados que dificultam o bloqueio a rede Tor.">
+<!ENTITY torSettings.bridgeSettingsPrompt "Você pode usar o conjunto de bridges fornecido ou pode obter e digitar um personalizado.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Esperando que Tor inicie...">
+<!ENTITY torsettings.restart "Reiniciar">
+
+<!ENTITY torsettings.optional "Opcional">
+
+<!ENTITY torsettings.useProxy.checkbox "Este computador precisa utilizar um proxy para acessar a Internet.">
+<!ENTITY torsettings.useProxy.type "Tipo de Proxy:">
+<!ENTITY torsettings.useProxy.address "Endereço:">
+<!ENTITY torsettings.useProxy.address.placeholder "Endereço IP ou Servidor">
+<!ENTITY torsettings.useProxy.port "Porta:">
+<!ENTITY torsettings.useProxy.username "Usuário:">
+<!ENTITY torsettings.useProxy.password "Senha:">
+<!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 "A conexão Internet deste computador é filtrada por uma firewall que autoriza conexões somente para determinadas portas.">
+<!ENTITY torsettings.firewall.allowedPorts "Portas habilitadas:">
+<!ENTITY torsettings.useBridges.checkbox "Meu Provedor de Serviços Internet (ISP) bloqueia as conexões à rede Tor">
+<!ENTITY torsettings.useBridges.default "Conectar com os bridges fornecidos">
+<!ENTITY torsettings.useBridges.type "Tipo de transporte:">
+<!ENTITY torsettings.useBridges.custom "Digitar bridges personalizados">
+<!ENTITY torsettings.useBridges.label "Insira um ou mais retransmissores de pontes (um por linha).">
+<!ENTITY torsettings.useBridges.placeholder "tipo endereço:porta">
+
+<!ENTITY torsettings.copyLog "Copiar o Log do Tor na área de transferência">
+<!ENTITY torsettings.bridgeHelpTitle "Ajuda Retransmissor de Ponte">
+<!ENTITY torsettings.bridgeHelp1 "Se for impossível conectar-se à rede Tor, talvez o seu Provedor de Internet (ISP) ou outra instância esteja bloqueando o Tor.&#160; Normalmente, é possível contornar esse problema utilizando Pontes Tor, que são retransmissores ocultos, mais difíceis de bloquear.">
+<!ENTITY torsettings.bridgeHelp1B "Você pode usar o conjunto fornecido pré-configurado de endereços de bridges ou pode obter um personalizado usando um desses três métodos:">
+<!ENTITY torsettings.bridgeHelp2Heading "Através da Web">
+<!ENTITY torsettings.bridgeHelp2 "Use um navegador de internet e visite ">
+<!ENTITY torsettings.bridgeHelp3Heading "Através do Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Envie um e-mail para bridges(a)torproject.org com a mensagem 'get bridges'.&#160; Contudo, para tornar mais difícil para um invasor descobrir uma grande quantidade de endereços, você deve enviar esse pedido a partir do gmail.com ou yahoo.com.">
+<!ENTITY torsettings.bridgeHelp4Heading "Através do ">
+<!ENTITY torsettings.bridgeHelp4 "Como última opção, você pode requisitar endereços de pontes enviando uma mensagem de e-mail educada para help(a)rt.torproject.org.&#160; Note que uma pessoa terá que responder a cada requisição.">
diff --git a/src/chrome/locale/pt-BR/progress.dtd b/src/chrome/locale/pt-BR/progress.dtd
new file mode 100644
index 0000000..001fa3d
--- /dev/null
+++ b/src/chrome/locale/pt-BR/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Status do Tor">
+<!ENTITY torprogress.openSettings "Abrir Configurações ">
+<!ENTITY torprogress.heading "Conectando à rede Tor">
+<!ENTITY torprogress.pleaseWait "Por favor aguarde enquanto nós estabelecemos uma conexão à rede Tor.">
diff --git a/src/chrome/locale/pt-BR/torlauncher.properties b/src/chrome/locale/pt-BR/torlauncher.properties
index d64e32b..5ab5499 100644
--- a/src/chrome/locale/pt-BR/torlauncher.properties
+++ b/src/chrome/locale/pt-BR/torlauncher.properties
@@ -1,7 +1,40 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.tor_bootstrap_failed_details=%1$S falha (%2$S).
+torlauncher.error_title=Inicializador do Tor
+
+torlauncher.tor_exited=Tor fechou inesperadamente.
+torlauncher.please_restart_app=Por favor, reinicie esta aplicação.
+torlauncher.tor_controlconn_failed=Não foi possível conectar-se à porta de controle Tor.
+torlauncher.tor_failed_to_start=Falha ao iniciar Tor.
+torlauncher.tor_control_failed=Falha ao receber controle do Tor.
+torlauncher.tor_bootstrap_failed=Falha ao tentar estabelecer uma conexão com a rede Tor.
+torlauncher.tor_bootstrap_failed_details=%1$S falhou (%2$S).
+
+torlauncher.unable_to_start_tor=Impossível iniciar Tor.
+torlauncher.tor_missing=Falta o programa de execução de Tor.
+torlauncher.torrc_missing=Falta o arquivo torrc.
+torlauncher.datadir_missing=O diretório de dados de Tor não existe.
+torlauncher.password_hash_missing=Falha ao obter a senha criptografada.
+
+torlauncher.failed_to_get_settings=Impossível recuperar as configurações de Tor.
+torlauncher.failed_to_save_settings=Impossível salvar as configurações de Tor.
+torlauncher.ensure_tor_is_running=Por favor, verifique que Tor esteja rodando.
+
+torlauncher.error_proxy_addr_missing=Você deve especificar um endereço IP ou um servidor, e um número de porta para configurar Tor para usar um proxy de acesso a Internet.
+torlauncher.error_proxy_type_missing=Você deve selecionar um tipo de proxy.
+torlauncher.error_bridges_missing=Você deve especificar uma ou mais pontes.
+torlauncher.error_default_bridges_type_missing=Você deve selecionar um tipo de transporte para os bridges fornecidos.
+torlauncher.error_bridge_bad_default_type=Nenhum dos bridges fornecidos tem disponível o tipo de transporte %S. Por favor ajuste suas configurações.
+
+torlauncher.recommended_bridge=(recomendado)
+
+torlauncher.connect=Conectar
+torlauncher.quit=Encerrar
+torlauncher.quit_win=Sair
+torlauncher.done=Terminado
+
+torlauncher.forAssistance=Para assistência, contacte
torlauncher.bootstrapStatus.conn_dir=Conectando a um diretório de servidores
torlauncher.bootstrapStatus.handshake_dir=Estabelecendo conexão de diretório criptografado
@@ -22,3 +55,4 @@ torlauncher.bootstrapWarning.identity=identidade conflitante
torlauncher.bootstrapWarning.timeout=tempo limite da conexão excedido
torlauncher.bootstrapWarning.noroute=sem rota para o host
torlauncher.bootstrapWarning.ioerror=erro de leitura/escrita
+torlauncher.bootstrapWarning.pt_missing=transporte plugável ausente
diff --git a/src/chrome/locale/ro/network-settings.dtd b/src/chrome/locale/ro/network-settings.dtd
new file mode 100644
index 0000000..297aca2
--- /dev/null
+++ b/src/chrome/locale/ro/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Da">
+<!ENTITY torSettings.no "Nu">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Conectare">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Reporneste">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.address "Adresă:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
+<!ENTITY torsettings.useProxy.port "Port:">
+<!ENTITY torsettings.useProxy.username "Nume utilizator:">
+<!ENTITY torsettings.useProxy.password "Parola:">
+<!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 "Porturi permise:">
+<!ENTITY torsettings.useBridges.checkbox "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ro/progress.dtd b/src/chrome/locale/ro/progress.dtd
new file mode 100644
index 0000000..9a1a989
--- /dev/null
+++ b/src/chrome/locale/ro/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Stare Tor">
+<!ENTITY torprogress.openSettings "Setări">
+<!ENTITY torprogress.heading "Conctare la reţeaua Tor">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ro/torlauncher.properties b/src/chrome/locale/ro/torlauncher.properties
index 5418881..304c008 100644
--- a/src/chrome/locale/ro/torlauncher.properties
+++ b/src/chrome/locale/ro/torlauncher.properties
@@ -1,7 +1,40 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.tor_bootstrap_failed_details=%1$S Nu a reuşit (%2$S).
+torlauncher.error_title=Lansator Tor
+
+torlauncher.tor_exited=Tor a ieșit în mod neașteptat.
+torlauncher.please_restart_app=Vă rugăm reporniți aplicația.
+torlauncher.tor_controlconn_failed=Nu sa putut conecta la portul de control Tor.
+torlauncher.tor_failed_to_start=Tor nu poate porni.
+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=Tor nu poate porni.
+torlauncher.tor_missing=Fișierul executabil Tor lipsește.
+torlauncher.torrc_missing=Fișierul torrc lipsește
+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=Vă rugăm asigurați-vă că Tor este pornit.
+
+torlauncher.error_proxy_addr_missing=Pentru a folosi Tor ca proxy, prin care să accesaţi internetul, este nevoie să specificaţi atât o adresă de IP, cât şi un port.
+torlauncher.error_proxy_type_missing=Trebuie să selectezi un tip de proxy.
+torlauncher.error_bridges_missing=Trebuie sa specifici una sau mai multe poduri.
+torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Conectare
+torlauncher.quit=Revocare
+torlauncher.quit_win=Ieşire
+torlauncher.done=Gata
+
+torlauncher.forAssistance=Pentru asistență, contactați
torlauncher.bootstrapStatus.conn_dir=Conectare la un director relay
torlauncher.bootstrapStatus.handshake_dir=Se stabileşte o conexiune criptată la director
@@ -22,3 +55,4 @@ torlauncher.bootstrapWarning.identity=identităţile nu se potrivesc
torlauncher.bootstrapWarning.timeout=timpul alocat pentru conexiune a expirat (timeout)
torlauncher.bootstrapWarning.noroute=nici o rută către gazdă
torlauncher.bootstrapWarning.ioerror=eroare la scriere/citire
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/ru(a)petr1708/network-settings.dtd b/src/chrome/locale/ru(a)petr1708/network-settings.dtd
new file mode 100644
index 0000000..7ffe499
--- /dev/null
+++ b/src/chrome/locale/ru(a)petr1708/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Да">
+<!ENTITY torSettings.no "Нет">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.address "Адрес:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
+<!ENTITY torsettings.useProxy.port "Порт:">
+<!ENTITY torsettings.useProxy.username "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">
+<!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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ru(a)petr1708/progress.dtd b/src/chrome/locale/ru(a)petr1708/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/ru(a)petr1708/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ru(a)petr1708/torlauncher.properties b/src/chrome/locale/ru(a)petr1708/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/ru(a)petr1708/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/sco/network-settings.dtd b/src/chrome/locale/sco/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/sco/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/sco/progress.dtd b/src/chrome/locale/sco/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/sco/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/sco/torlauncher.properties b/src/chrome/locale/sco/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/sco/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/si-LK/network-settings.dtd b/src/chrome/locale/si-LK/network-settings.dtd
new file mode 100644
index 0000000..fc3a19f
--- /dev/null
+++ b/src/chrome/locale/si-LK/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "TOR ජාල සිටුවම්">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "ඔව්">
+<!ENTITY torSettings.no "නැත">
+
+<!ENTITY torSettings.firstQuestion "පහත සදහන් කුමක් ඔබගේ තත්ත්වය හොදින්ම විස්තර කරයිද?">
+<!ENTITY torSettings.configurePrompt1 "මෙම පරිගණකයේ අන්තර්ජාල සැකසුම වාරණයට ලක්වී, පෙරීමකට ලක්වී හෝ නියුතු සේවා දායකයෙකුට ලක්ව ඇත.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "වින්යාස කරන්න">
+<!ENTITY torSettings.connectPrompt2 "මම ඍජුවම Tor ජාලය හා සම්බන්ධ වීමට කැමතිය.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "සම්බන්ධ වෙන්න">
+
+<!ENTITY torSettings.proxyQuestion "මෙම පරිගණකයට අන්තර්ජාලය හා සම්බන්ධ වීමට නියුතු සේවාදායකයෙක් අවශ්යද?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "ඔබට මෙම ප්රශ්නයට පිළිතුරු දෙන්නේ කෙසේද යන්න විශ්වාස නැත්නම්, වෙනත් browser එකක අන්තජාල සැකසුම් නියුතු සේවාදායකයෙක් සදහා වින්යාස කර ඇත්දැයි බලන්න">
+<!ENTITY torSettings.enterProxy "නියුතු සේවාදායක සැකසුම් ඇතුළත් කරන්න">
+<!ENTITY torSettings.firewallQuestion "මෙම පරිගණකයේ අන්තර්ජාල සබැදියාව විශේෂිත ports සදහා ඉඩදෙන පරිදි firewall එකක් හරහා ගමන් කරනවාද?">
+<!ENTITY torSettings.firewallHelp "ඔබට මෙම ප්රශ්නයට පිළිතුරු දෙන්නේ කෙසේද යන්න විශ්වාස නැත්නම්, නැත යන්න තෝරන්න. Tor ජාලයට සම්බන්ධ වීමේදී ඔබට ගැටළු මතුවේ නම් මෙම සැකසුම වෙනස් කරන්න">
+<!ENTITY torSettings.enterFirewall "firewall එක හරහා යාමට ඉඩදෙන ports වල ලැයිස්තුවක් කොමා වලින් වෙන්කර ඇතුළත් කරන්න.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "TOR ආරම්භ වනතුරු …">
+<!ENTITY torsettings.restart "යලි අරඹන්න">
+
+<!ENTITY torsettings.optional "අමතර">
+
+<!ENTITY torsettings.useProxy.checkbox "මෙම පරිගණකය අන්තර්ජාලයට පිවිසීමට නියුතු සේවාදායකයෙක් අවශ්ය වේ.">
+<!ENTITY torsettings.useProxy.type "නියුතු සේවාදායක වර්ගය:">
+<!ENTITY torsettings.useProxy.address "ලිපිනය:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP ලිපිනය හෝ සත්කාරක නාමය">
+<!ENTITY torsettings.useProxy.port "පොර්ටය:">
+<!ENTITY torsettings.useProxy.username "පරිශීලක නාමය">
+<!ENTITY torsettings.useProxy.password "මුරපදය">
+<!ENTITY torsettings.useProxy.type.socks4 "4 වැනි සොකට්ටුව">
+<!ENTITY torsettings.useProxy.type.socks5 "5 වැනි සොකට්ටුව">
+<!ENTITY torsettings.useProxy.type.http "HTTP / HTTPS">
+<!ENTITY torsettings.firewall.checkbox "මෙම පරිගණකය විශේෂිත ports සදහා සම්බන්ධ වීමට ඉඩදෙන පරිදි firewall එකක් හරහා ගමන් කරයි.">
+<!ENTITY torsettings.firewall.allowedPorts "අනුමත Ports">
+<!ENTITY torsettings.useBridges.checkbox "මාගේ අන්තර්ජාල සේවා සපයන්නා(ISP) විසින් TOR ජාලය සදහා සබදතාවය අවහිර කර ඇත.">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Clipboard එකට Tor ලොගය පිටපත් කරන්න.">
+<!ENTITY torsettings.bridgeHelpTitle "සේතු ප්රතියෝජක (Bridge Relay) උපකාරකය">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/si-LK/progress.dtd b/src/chrome/locale/si-LK/progress.dtd
new file mode 100644
index 0000000..f1d7045
--- /dev/null
+++ b/src/chrome/locale/si-LK/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor තත්ත්වය ">
+<!ENTITY torprogress.openSettings "සිටුවම් විවෘත කරන්න">
+<!ENTITY torprogress.heading "Tor ජාලය හා සම්බන්ධ වෙමින්">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/si-LK/torlauncher.properties b/src/chrome/locale/si-LK/torlauncher.properties
new file mode 100644
index 0000000..dc2a9d0
--- /dev/null
+++ b/src/chrome/locale/si-LK/torlauncher.properties
@@ -0,0 +1,58 @@
+### Copyright (c) 2014, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+torlauncher.error_title=Tor පුරනය
+
+torlauncher.tor_exited=Tor අනපේක්ෂිත ලෙස නැතිවිය.
+torlauncher.please_restart_app=Please restart this application.
+torlauncher.tor_controlconn_failed=Tor පාලක පොර්ටයට සම්බන්ධ විය නොහැක.
+torlauncher.tor_failed_to_start=Tor ආරම්භ කිරීමට අපොහොසත්ය.
+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=Tor ආරම්භ කිරීමට නොහැක.\n\n%S
+torlauncher.tor_missing=Tor විධානය අස්ථානගත වී ඇත.
+torlauncher.torrc_missing=torrc ගොනුව අස්ථානගත වී ඇත.
+torlauncher.datadir_missing=Tor දත්ත නාමාවලිය නොපවතී.
+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.error_proxy_addr_missing=අන්තර්ජාලයට පිවිසීමට නියුතු සේවා දායකයෙකු භාවිතා කිරීමට Tor වින්යාසගත කිරීමේදී IP ලිපිනයක් හෝ සත්කාරක නාමයක් සහ පෝර්ට අංකයක් සදහන් කල යුතුය.
+torlauncher.error_proxy_type_missing=ඔබ විසින් සේවාදායක වර්ගය තේරීම කලයුතුය.
+torlauncher.error_bridges_missing=ඔබ විසින් සේතු එකක් හෝ කිහිපයක් සදහන් කලයුතුය.
+torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=සම්බන්ධ වෙන්න
+torlauncher.quit=ඉවත් වෙන්න
+torlauncher.quit_win=අයින් වන්න
+torlauncher.done=කරන ලදී
+
+torlauncher.forAssistance=සහය සදහා, සම්බන්ධ වන්න%S
+
+torlauncher.bootstrapStatus.conn_dir=ප්රතියෝජක ඩිරෙක්ටරියකට සබදෙමින්
+torlauncher.bootstrapStatus.handshake_dir=සංකේත කරන ලද ඩිරෙක්ටරි සබැදුමක් ස්ථාපනය කරමින්
+torlauncher.bootstrapStatus.requesting_status=ජාල තත්වය සමුධ්රණය කරමින්
+torlauncher.bootstrapStatus.loading_status=ජාල තත්වය ප්රවේශනය කරමින්
+torlauncher.bootstrapStatus.loading_keys=අධිකාරීත්ව සහතික ප්රවේශනය කරමින්
+torlauncher.bootstrapStatus.requesting_descriptors=ප්රතියෝජක තොරතුරු අයදුම් කරමින්
+torlauncher.bootstrapStatus.loading_descriptors=ප්රතියෝජක තොරතුරු ප්රවේශනය කරමින්
+torlauncher.bootstrapStatus.conn_or=Tor ජාලය හා සම්බන්ධ වෙමින්
+torlauncher.bootstrapStatus.handshake_or=Tor පරිපථයක් ස්ථාපනය කරමින්
+torlauncher.bootstrapStatus.done=Tor ජාලයට සබැදියි
+
+torlauncher.bootstrapWarning.done=කරන ලදී
+torlauncher.bootstrapWarning.connectrefused=සබැදුම ප්රතික්ෂේපකරන ලදී
+torlauncher.bootstrapWarning.misc=විවිධ
+torlauncher.bootstrapWarning.resourcelimit=ප්රමාණවත් නොවන සම්පත්
+torlauncher.bootstrapWarning.identity=අනන්යතා නොගැලපුම
+torlauncher.bootstrapWarning.timeout=සබැදුම කාලගතවිය
+torlauncher.bootstrapWarning.noroute=සත්කාර කිරීමට මගක් නොමැත
+torlauncher.bootstrapWarning.ioerror=කියවීම්/ලිවීම් දෝෂය
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/si/network-settings.dtd b/src/chrome/locale/si/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/si/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/si/progress.dtd b/src/chrome/locale/si/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/si/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/si/torlauncher.properties b/src/chrome/locale/si/torlauncher.properties
new file mode 100644
index 0000000..a2550db
--- /dev/null
+++ b/src/chrome/locale/si/torlauncher.properties
@@ -0,0 +1,57 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/sk-SK/network-settings.dtd b/src/chrome/locale/sk-SK/network-settings.dtd
new file mode 100644
index 0000000..1cfaab1
--- /dev/null
+++ b/src/chrome/locale/sk-SK/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Áno">
+<!ENTITY torSettings.no "Nie">
+
+<!ENTITY torSettings.firstQuestion "Ktorá z nasledujúcich situácií najlepšie popisuje Vašu?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Konfigurovať">
+<!ENTITY torSettings.connectPrompt2 "Rád by som sa pripojil priamo do siete Tor.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Pripojiť">
+
+<!ENTITY torSettings.proxyQuestion "Potrebuje tento počítač použiť proxy pre prístup na internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "Ak si nie ste istý odpoveďou na túto otázku, pozrite na nastavenie internetu v inom prehliadači, či je konfigurovaný pre použitie proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Zadajte čísla portov oddelené medzerou, ktoré sú povolené na firewalle.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Čakanie na štart Toru...">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Voliteľne">
+
+<!ENTITY torsettings.useProxy.checkbox "Tento počítač potrebuje použiť proxy pre prístup na internet">
+<!ENTITY torsettings.useProxy.type "Typ proxy:">
+<!ENTITY torsettings.useProxy.address "Adresa:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP adresa alebo hostname">
+<!ENTITY torsettings.useProxy.port "Port:">
+<!ENTITY torsettings.useProxy.username "Užívateľské meno:">
+<!ENTITY torsettings.useProxy.password "Heslo:">
+<!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 "Povolené porty:">
+<!ENTITY torsettings.useBridges.checkbox "Môj poskytovateľ internetového pripojenia blokuje spojenie do siete Tor">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Zadaj jeden alebo viac premosťovacích relays (jednu na riadok).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Kopírovať log Toru do schránky">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/sk-SK/progress.dtd b/src/chrome/locale/sk-SK/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/sk-SK/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/sk-SK/torlauncher.properties b/src/chrome/locale/sk-SK/torlauncher.properties
new file mode 100644
index 0000000..c70e13d
--- /dev/null
+++ b/src/chrome/locale/sk-SK/torlauncher.properties
@@ -0,0 +1,58 @@
+### Copyright (c) 2014, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+torlauncher.error_title=Tor Launcher
+
+torlauncher.tor_exited=Tor sa nečakane vypol.
+torlauncher.please_restart_app=Prosím, reštartujte túto aplikáciu.
+torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
+torlauncher.tor_failed_to_start=Nepodarilo sa spustiť Tor.
+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=Nie je možné spustiť Tor.\n\n%S
+torlauncher.tor_missing=The Tor executable is missing.
+torlauncher.torrc_missing=Torrc súbor chýba.
+torlauncher.datadir_missing=The Tor data directory does not exist.
+torlauncher.password_hash_missing=Nebolo možné prevziať zašifrované heslo.
+
+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=Prosím, uistite sa že Tor beží.
+
+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=Musíte si vybrať proxy typ.
+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_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Pripojiť
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Hotovo
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/sk/network-settings.dtd b/src/chrome/locale/sk/network-settings.dtd
new file mode 100644
index 0000000..d9799be
--- /dev/null
+++ b/src/chrome/locale/sk/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Sieťové Nastavenia Tor">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Predtým než sa pripojíte k sieti Toru, potrebujete poskytnúť informácie o pripojení tohto počítača k Internetu.">
+
+<!ENTITY torSettings.yes "Áno">
+<!ENTITY torSettings.no "Nie">
+
+<!ENTITY torSettings.firstQuestion "Ktoré z nasledujúcich možností najlepšie opisuje Vašu situáciu?">
+<!ENTITY torSettings.configurePrompt1 "Internetové pripojenie tohto počítača je cenzurované, filtrované alebo sprostredkované.">
+<!ENTITY torSettings.configurePrompt2 "Potrebujem nakonfigurovať nastavenia mostu, firewallu alebo proxy.">
+<!ENTITY torSettings.configure "Konfigurácia">
+<!ENTITY torSettings.connectPrompt2 "Chcem sa pripojiť priamo do siete Tor.">
+<!ENTITY torSettings.connectPrompt3 "Toto bude vo väčšine prípadov fungovať.">
+<!ENTITY torSettings.connect "Pripojiť">
+
+<!ENTITY torSettings.proxyQuestion "Potrebuje tento počítač použiť proxy na prístup k Internetu?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "Ak si nieste istý ako odpovedať na túto otázku, pozrite sa či máte nastavené používanie proxy v inom Internetovom prehliadači.">
+<!ENTITY torSettings.enterProxy "Vstúpiť do nastavení proxy.">
+<!ENTITY torSettings.firewallQuestion "Používa Internetové pripojenie tohto počítača bránu firewall, ktorá povoľuje pripojenia len na niektoré porty?">
+<!ENTITY torSettings.firewallHelp "Ak si nieste istý ako odpovedať na túto otázku, zvoľte Nie. Ak narazíte na problémy s pripojením do siete Tor, zmeňte toto nastavenie.">
+<!ENTITY torSettings.enterFirewall "Vložte zoznam portov oddelený čiarkou, ktoré sú povolené firewallom.">
+<!ENTITY torSettings.bridgeQuestion "Blokuje alebo nejak cenzuruje váš Poskytovateľ Internetu (ISP) pripojenia k Sieti Tor?">
+<!ENTITY torSettings.bridgeHelp "Ak ste si nie istý ako zodpovedať túto otázku, zvoľte Nie.&#160; Ak zvolíte Áno, budete vyzvaný na konfiguráciu Mostov Toru, čo sú nezaradené relé značne sťažujúce blokovanie pripojení k Sieti Tor.">
+<!ENTITY torSettings.bridgeSettingsPrompt "Môžete použiť poskytnutú sadu mostov alebo získať a vložiť vlastnú sadu.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Čakám kým sa Tor spustí...">
+<!ENTITY torsettings.restart "Reštart">
+
+<!ENTITY torsettings.optional "Voliteľné">
+
+<!ENTITY torsettings.useProxy.checkbox "Tento počítač potrebuje použiť proxy na prístup k Internetu">
+<!ENTITY torsettings.useProxy.type "Typ Proxy:">
+<!ENTITY torsettings.useProxy.address "Adresa:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP adresa alebo názov hostiteľa">
+<!ENTITY torsettings.useProxy.port "Port:">
+<!ENTITY torsettings.useProxy.username "Už.názov:">
+<!ENTITY torsettings.useProxy.password "Heslo?">
+<!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 "Tento počítač ide cez firewall, ktorý povoľuje iba niektoré porty">
+<!ENTITY torsettings.firewall.allowedPorts "Povolené porty:">
+<!ENTITY torsettings.useBridges.checkbox "Môj Internetový provider (ISP) blokuje pripojenia do siete Toru">
+<!ENTITY torsettings.useBridges.default "Pripojiť sa s poskytnutými mostami">
+<!ENTITY torsettings.useBridges.type "Prepravný typ:">
+<!ENTITY torsettings.useBridges.custom "Vložiť vlastné mosty">
+<!ENTITY torsettings.useBridges.label "Vložte jedno alebo viacero relé premostení (každé do nového riadka).">
+<!ENTITY torsettings.useBridges.placeholder "zadajte adresu:port">
+
+<!ENTITY torsettings.copyLog "Skopírovať záznam Tor do schránky clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Nápoveda o relé premosteniach">
+<!ENTITY torsettings.bridgeHelp1 "Ak nie ste schopný sa pripojiť k sieti Toru, je možné, že vás blokuje váš Poskytovateľ Internetú (ISP) alebo nejaké iná agentúra. &#160; Tento problém môžete často obísť použivaním Mostov Toru, čo sú nezaradené relé náročnejšie na blokovanie.">
+<!ENTITY torsettings.bridgeHelp1B "Môžete použiť prekonfigurovanú poskytnutú sadu mostových adries alebo vložiť vlastnú sadu adries použitím jednej z nasledujúcich metód:">
+<!ENTITY torsettings.bridgeHelp2Heading "Cez Web">
+<!ENTITY torsettings.bridgeHelp2 "Použite webový prehliadač na navštívenie https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Cez Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Pošlite email na adresu bridges(a)torproject.org obsahujúcu jeden riadok 'get bridges' ako telo správy.&#160; Avšak, aby bolo pre útočníkov náročnejšie odhaliť veľa mostových adries, musíte túto žiadosť poslať z emailovej adresy gmail.com alebo yahoo.com.">
+<!ENTITY torsettings.bridgeHelp4Heading "Cez Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "Ako poslednú možnosť si môžete vyžiadať adresy mostov zaslaním zdvorilého emailu na adresu help(a)rt.torproject.org.&#160; Prosíme berte na vedomie, že príslušná osoba musí odpovedať na každú jednu podobnú žiadosť.">
diff --git a/src/chrome/locale/sk/progress.dtd b/src/chrome/locale/sk/progress.dtd
new file mode 100644
index 0000000..8df7047
--- /dev/null
+++ b/src/chrome/locale/sk/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor stav">
+<!ENTITY torprogress.openSettings "Otvor Nastavenia">
+<!ENTITY torprogress.heading "Pripájanie do siete Tor">
+<!ENTITY torprogress.pleaseWait "Prosíme počkajte kým nadviažeme spojenie so sieťou Toru.">
diff --git a/src/chrome/locale/sk/torlauncher.properties b/src/chrome/locale/sk/torlauncher.properties
index 1abb28d..4743463 100644
--- a/src/chrome/locale/sk/torlauncher.properties
+++ b/src/chrome/locale/sk/torlauncher.properties
@@ -1,8 +1,41 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
+torlauncher.error_title=Spúšťač Tor
+
+torlauncher.tor_exited=Tor bol neočakávane ukončený.
+torlauncher.please_restart_app=Prosím reštartujte túto aplikáciu.
+torlauncher.tor_controlconn_failed=Nepodarilo sa pripojiť ku kontrolnému portu Tor.
+torlauncher.tor_failed_to_start=Tor sa nepodarilo spustiť.
+torlauncher.tor_control_failed=Nepodarilo sa prevziať kontrolu nad Torom.
+torlauncher.tor_bootstrap_failed=Toru sa nepodarilo nadviazať pripojenie k Torovskej sieti.
torlauncher.tor_bootstrap_failed_details=%1$S zlyhalo (%2$S).
+torlauncher.unable_to_start_tor=Nie je možné spustiť Tor.\n\n%S
+torlauncher.tor_missing=Spustiteľný súbor programu Tor chýba.
+torlauncher.torrc_missing=Súbor torrc chýba.
+torlauncher.datadir_missing=Dátový priečinok Tor neexistuje.
+torlauncher.password_hash_missing=Nepodarilo sa získať zabezpečené heslo.
+
+torlauncher.failed_to_get_settings=Nie je možné prijať nastavenia Tor.\n\n%S
+torlauncher.failed_to_save_settings=Nie je možné uložiť nastavenia Tor.\n\n%S
+torlauncher.ensure_tor_is_running=Prosím uistite sa, že Tor je spustený.
+
+torlauncher.error_proxy_addr_missing=Musíte špecifikovať IP adresu alebo názov hostiteľa a číslo portu aby bolo možné nakonfigurovať Tor na používanie proxy na prístup k Internetu.
+torlauncher.error_proxy_type_missing=Musíte zvoliť typ proxy.
+torlauncher.error_bridges_missing=Musíte špecifikovať jeden alebo viac mostov.
+torlauncher.error_default_bridges_type_missing=Musíte zvoliť prepravný typ pre poskytnuté mosty.
+torlauncher.error_bridge_bad_default_type=Žiadne poskytnuté mosty nemajú dostupný prepravný typ %S. Prosíme upravte svoje nastavenia.
+
+torlauncher.recommended_bridge=(odporúčané)
+
+torlauncher.connect=Pripojiť
+torlauncher.quit=Ukončiť
+torlauncher.quit_win=Ukončiť
+torlauncher.done=Hotovo
+
+torlauncher.forAssistance=Pre podporu kontaktujte %S
+
torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
@@ -22,3 +55,4 @@ torlauncher.bootstrapWarning.identity=nesprávna identita
torlauncher.bootstrapWarning.timeout=časový limit pripojenia
torlauncher.bootstrapWarning.noroute=žiadna cesta k hostiteľovi
torlauncher.bootstrapWarning.ioerror=chyba pri načítaní/zápise
+torlauncher.bootstrapWarning.pt_missing=chýbajúca zásuvná preprava
diff --git a/src/chrome/locale/sl-SI/network-settings.dtd b/src/chrome/locale/sl-SI/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/sl-SI/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/sl-SI/progress.dtd b/src/chrome/locale/sl-SI/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/sl-SI/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/sl-SI/torlauncher.properties b/src/chrome/locale/sl-SI/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/sl-SI/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/sl/network-settings.dtd b/src/chrome/locale/sl/network-settings.dtd
new file mode 100644
index 0000000..f56020a
--- /dev/null
+++ b/src/chrome/locale/sl/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Da">
+<!ENTITY torSettings.no "Ne">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Poveži">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.address "Address:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
+<!ENTITY torsettings.useProxy.port "vrata:">
+<!ENTITY torsettings.useProxy.username "Username:">
+<!ENTITY torsettings.useProxy.password "Geslo:">
+<!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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/sl/progress.dtd b/src/chrome/locale/sl/progress.dtd
new file mode 100644
index 0000000..d62303a
--- /dev/null
+++ b/src/chrome/locale/sl/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor stanje">
+<!ENTITY torprogress.openSettings "Odpri nastavitve">
+<!ENTITY torprogress.heading "Povezovanje v Tor omrežje">
+<!ENTITY torprogress.pleaseWait "Počakajte, da vzpostavimo povezavo s Tor omrežjem">
diff --git a/src/chrome/locale/sl/torlauncher.properties b/src/chrome/locale/sl/torlauncher.properties
new file mode 100644
index 0000000..ed90244
--- /dev/null
+++ b/src/chrome/locale/sl/torlauncher.properties
@@ -0,0 +1,58 @@
+### Copyright (c) 2014, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+torlauncher.error_title=Tor zaganjalnik
+
+torlauncher.tor_exited=Tor je se je nepredvideno zaustavil.
+torlauncher.please_restart_app=Prosimo, da ponovno zaženete to aplikacijo.
+torlauncher.tor_controlconn_failed=Povezava na Tor nadzorna vrata ni uspela.
+torlauncher.tor_failed_to_start=Tor se ni zagnal.
+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=Tor se ne zažene.\n\n%S
+torlauncher.tor_missing=Manjka Torjeva izvršljiva datoteka.
+torlauncher.torrc_missing=Manjka datoteka torrc.
+torlauncher.datadir_missing=Torjev podatkovni imenik ne obstaja.
+torlauncher.password_hash_missing=Spodletelo pridobivanje zgoščene vrednosti gesla.
+
+torlauncher.failed_to_get_settings=Ni uspela pridobitev Tor nastavitev.\n\n%S
+torlauncher.failed_to_save_settings=Shranjevanje Tor nastavitev ni uspelo.\n\n%S
+torlauncher.ensure_tor_is_running=Prepričajte se, da Tor teče.
+
+torlauncher.error_proxy_addr_missing=Morate vnesti oboje, IP naslov ali ime gostitelja in vrata, da bi nastavili Tor za uporabo posredniškega strežnika pri dostopu do interneta.
+torlauncher.error_proxy_type_missing=Morate izbrati vrsto posredniškega strežnika.
+torlauncher.error_bridges_missing=Morate določiti vsaj en ali več mostov.
+torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Poveži
+torlauncher.quit=Zapusti
+torlauncher.quit_win=Izhod
+torlauncher.done=Končano
+
+torlauncher.forAssistance=Za pomoč, vzpostavite stik z %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Povezovanje v Tor omrežje
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/sn/network-settings.dtd b/src/chrome/locale/sn/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/sn/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/sn/progress.dtd b/src/chrome/locale/sn/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/sn/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/sn/torlauncher.properties b/src/chrome/locale/sn/torlauncher.properties
new file mode 100644
index 0000000..4bcdb55
--- /dev/null
+++ b/src/chrome/locale/sn/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Buda
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/so/network-settings.dtd b/src/chrome/locale/so/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/so/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/so/progress.dtd b/src/chrome/locale/so/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/so/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/so/torlauncher.properties b/src/chrome/locale/so/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/so/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/son/network-settings.dtd b/src/chrome/locale/son/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/son/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/son/progress.dtd b/src/chrome/locale/son/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/son/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/son/torlauncher.properties b/src/chrome/locale/son/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/son/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/sq-AL/network-settings.dtd b/src/chrome/locale/sq-AL/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/sq-AL/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/sq-AL/progress.dtd b/src/chrome/locale/sq-AL/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/sq-AL/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/sq-AL/torlauncher.properties b/src/chrome/locale/sq-AL/torlauncher.properties
new file mode 100644
index 0000000..a2550db
--- /dev/null
+++ b/src/chrome/locale/sq-AL/torlauncher.properties
@@ -0,0 +1,57 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/sq/network-settings.dtd b/src/chrome/locale/sq/network-settings.dtd
new file mode 100644
index 0000000..481d8df
--- /dev/null
+++ b/src/chrome/locale/sq/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Parametrat e rrjetit Tor">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Po">
+<!ENTITY torSettings.no "Jo">
+
+<!ENTITY torSettings.firstQuestion "Cila nga këto i përshtatet më shumë situatës tuaj aktuale?">
+<!ENTITY torSettings.configurePrompt1 "Lidhja internet e këtij kompjuteri është e censuruar, e filtruar ose me përfaqësim.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Konfiguro">
+<!ENTITY torSettings.connectPrompt2 "Do të dëshiroja të lidhesha direkt me rrjetin Tor.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Lidhu">
+
+<!ENTITY torSettings.proxyQuestion "A i nevojitet këtij kompjuteri një përfaqësues 'proxy' për të hyrë në internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "Nëse nuk jeni i sigurt si ti përgjigjeni kësaj pyetjeje, shikoni parametrat e internetit në një shfletues tjetër të këtij kompjuteri për të parë nëse është konfiguruar që të përdorë përfaqësues 'proxy'.">
+<!ENTITY torSettings.enterProxy "Jepni parametrat e përfaqësimit 'proxy'.">
+<!ENTITY torSettings.firewallQuestion "A kalon lidhja internet e këtij kompjuteri nëpërmjet ndonjë mbrojtesi 'firewall' i cili lejon lidhje vetëm në disa porta?">
+<!ENTITY torSettings.firewallHelp "Nëse nuk jeni i sigurt si ti përgjigjeni kësaj pyetjeje, zgjidhni JO. Nëse keni probleme gjatë lidhjes me rrjetin Tor, kthehuni këtu dhe ndryshoni këtë parametër.">
+<!ENTITY torSettings.enterFirewall "Jepni një listë të portave të lejuara nga mbrojtësi 'firewall', të ndarë me presje.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Duke pritur që Tor të nisë...">
+<!ENTITY torsettings.restart "Rihap">
+
+<!ENTITY torsettings.optional "Fakultativ">
+
+<!ENTITY torsettings.useProxy.checkbox "Ky kompjuter duhet të përdorë një përfaqësues 'proxy' për të hyrë në internet.">
+<!ENTITY torsettings.useProxy.type "Tipi i përfaqësuesit:">
+<!ENTITY torsettings.useProxy.address "Adresa:">
+<!ENTITY torsettings.useProxy.address.placeholder "Adresa IP ose emri i pritësit">
+<!ENTITY torsettings.useProxy.port "Porta:">
+<!ENTITY torsettings.useProxy.username "Përdoruesi:">
+<!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 "Ky kompjuter kalon nëpërmjet një mbrojtësi 'firewall' i cili lejon lidhje vetëm në disa porta.">
+<!ENTITY torsettings.firewall.allowedPorts "Portat e lejuara:">
+<!ENTITY torsettings.useBridges.checkbox "Ofruesi im i shërbimit të internetit (ISP) bllokon lidhjet drejt rrjetit Tor">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Jepni një ose më shumë rele urash (një për çdo rresht)">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Kopjo ditarin e Tor në Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Ndihmë mbi relenë e urës">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/sq/progress.dtd b/src/chrome/locale/sq/progress.dtd
new file mode 100644
index 0000000..c25eb19
--- /dev/null
+++ b/src/chrome/locale/sq/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Gjendja e Tor">
+<!ENTITY torprogress.openSettings "Hap parametrat">
+<!ENTITY torprogress.heading "Duke u lidhur me rrjetin Tor">
+<!ENTITY torprogress.pleaseWait "Ju lutem prisni sa të vendoset nje lidhje me rrjetin Tor">
diff --git a/src/chrome/locale/sq/torlauncher.properties b/src/chrome/locale/sq/torlauncher.properties
new file mode 100644
index 0000000..9685ea0
--- /dev/null
+++ b/src/chrome/locale/sq/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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=Ju duhet të përcaktoni si adresën IP ose emrin e serverit edhe numrin e portës për të konfiguruar Torin të përdori një proxy për tu lidhur në 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_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Lidhu
+torlauncher.quit=Dil
+torlauncher.quit_win=Dil
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Duke u lidhur me rrjetin Tor
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/sr/network-settings.dtd b/src/chrome/locale/sr/network-settings.dtd
new file mode 100644
index 0000000..4b1d69b
--- /dev/null
+++ b/src/chrome/locale/sr/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Da">
+<!ENTITY torSettings.no "NE">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.address "Adresa:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
+<!ENTITY torsettings.useProxy.port "Порт:">
+<!ENTITY torsettings.useProxy.username "Корисничко име:">
+<!ENTITY torsettings.useProxy.password "Lozinka:">
+<!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 "Дозвољени Портови:">
+<!ENTITY torsettings.useBridges.checkbox "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/sr/progress.dtd b/src/chrome/locale/sr/progress.dtd
new file mode 100644
index 0000000..4d72b08
--- /dev/null
+++ b/src/chrome/locale/sr/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Тор статус">
+<!ENTITY torprogress.openSettings "Отвори подешавања">
+<!ENTITY torprogress.heading "Повезивање на Тор мрежу">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/sr/torlauncher.properties b/src/chrome/locale/sr/torlauncher.properties
index 4a8dbb2..2b154b9 100644
--- a/src/chrome/locale/sr/torlauncher.properties
+++ b/src/chrome/locale/sr/torlauncher.properties
@@ -1,7 +1,40 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.tor_bootstrap_failed_details=%1$S неуспело (%2$S).
+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_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.
+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=Морате навести IP адресу или име и порт да би подесили Tor да користи прокси на интернету.
+torlauncher.error_proxy_type_missing=Morate izabrati tip proxya.
+torlauncher.error_bridges_missing=Morate odrediti jedan ili vise mostova
+torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Искључити
+torlauncher.quit_win=Излаз
+torlauncher.done=Gotovo
+
+torlauncher.forAssistance=For assistance, contact %S
torlauncher.bootstrapStatus.conn_dir=Повезивање са релеј директоријумом
torlauncher.bootstrapStatus.handshake_dir=Успостављање шифроване везе директоријума
@@ -22,3 +55,4 @@ torlauncher.bootstrapWarning.identity=идентитет неусклађен
torlauncher.bootstrapWarning.timeout=веза је истекла
torlauncher.bootstrapWarning.noroute=нема путање до сервера
torlauncher.bootstrapWarning.ioerror=грешка при писању/читању
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/sr(a)latin/network-settings.dtd b/src/chrome/locale/sr(a)latin/network-settings.dtd
new file mode 100644
index 0000000..d1dca40
--- /dev/null
+++ b/src/chrome/locale/sr(a)latin/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Da">
+<!ENTITY torSettings.no "Ne">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "Lozinka:">
+<!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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/sr(a)latin/progress.dtd b/src/chrome/locale/sr(a)latin/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/sr(a)latin/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/sr(a)latin/torlauncher.properties b/src/chrome/locale/sr(a)latin/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/sr(a)latin/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/st/network-settings.dtd b/src/chrome/locale/st/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/st/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/st/progress.dtd b/src/chrome/locale/st/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/st/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/st/torlauncher.properties b/src/chrome/locale/st/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/st/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/su/network-settings.dtd b/src/chrome/locale/su/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/su/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/su/progress.dtd b/src/chrome/locale/su/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/su/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/su/torlauncher.properties b/src/chrome/locale/su/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/su/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/sv-SE/network-settings.dtd b/src/chrome/locale/sv-SE/network-settings.dtd
new file mode 100644
index 0000000..6ce1473
--- /dev/null
+++ b/src/chrome/locale/sv-SE/network-settings.dtd
@@ -0,0 +1,55 @@
+<!ENTITY torsettings.dialog.title "">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "">
+
+<!ENTITY torSettings.yes "">
+<!ENTITY torSettings.no "">
+
+<!ENTITY torSettings.firstQuestion "">
+<!ENTITY torSettings.configurePrompt1 "">
+<!ENTITY torSettings.configurePrompt2 "">
+<!ENTITY torSettings.configure "">
+<!ENTITY torSettings.connectPrompt1 "">
+<!ENTITY torSettings.connectPrompt2 "">
+<!ENTITY torSettings.connect "">
+
+<!ENTITY torSettings.proxyQuestion "">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "">
+<!ENTITY torSettings.enterProxy "">
+<!ENTITY torSettings.firewallQuestion "">
+<!ENTITY torSettings.firewallHelp "">
+<!ENTITY torSettings.enterFirewall "">
+<!ENTITY torSettings.bridgeQuestion "">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "">
+<!ENTITY torsettings.restart "">
+
+<!ENTITY torsettings.optional "">
+
+<!ENTITY torsettings.useProxy.checkbox "">
+<!ENTITY torsettings.useProxy.type "">
+<!ENTITY torsettings.useProxy.address "">
+<!ENTITY torsettings.useProxy.address.placeholder "">
+<!ENTITY torsettings.useProxy.port "">
+<!ENTITY torsettings.useProxy.username "">
+<!ENTITY torsettings.useProxy.password "">
+<!ENTITY torsettings.useProxy.type.socks4 "">
+<!ENTITY torsettings.useProxy.type.socks5 "">
+<!ENTITY torsettings.useProxy.type.http "">
+<!ENTITY torsettings.firewall.checkbox "">
+<!ENTITY torsettings.firewall.allowedPorts "">
+<!ENTITY torsettings.useBridges.checkbox "">
+<!ENTITY torsettings.useBridges.label "">
+<!ENTITY torsettings.useBridges.placeholder "">
+
+<!ENTITY torsettings.copyLog "">
+<!ENTITY torsettings.bridgeHelpTitle "">
+<!ENTITY torsettings.bridgeHelp1 "">
+<!ENTITY torsettings.bridgeHelp2 "">
+<!ENTITY torsettings.bridgeHelp3 "">
+<!ENTITY torsettings.bridgeHelp4 "">
diff --git a/src/chrome/locale/sv-SE/progress.dtd b/src/chrome/locale/sv-SE/progress.dtd
new file mode 100644
index 0000000..e0dcfcc
--- /dev/null
+++ b/src/chrome/locale/sv-SE/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "">
+<!ENTITY torprogress.openSettings "">
+<!ENTITY torprogress.heading "">
+<!ENTITY torprogress.pleaseWait "">
diff --git a/src/chrome/locale/sv-SE/torlauncher.properties b/src/chrome/locale/sv-SE/torlauncher.properties
new file mode 100644
index 0000000..fcd4d83
--- /dev/null
+++ b/src/chrome/locale/sv-SE/torlauncher.properties
@@ -0,0 +1,31 @@
+### Copyright (c) 2013, 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.\n\n%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
diff --git a/src/chrome/locale/sv/network-settings.dtd b/src/chrome/locale/sv/network-settings.dtd
new file mode 100644
index 0000000..909ab94
--- /dev/null
+++ b/src/chrome/locale/sv/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Nätverksinställningar för Tor">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Innan du ansluter till Tor-nätverket så behöver du lämna information om den här datorns internetanslutning.">
+
+<!ENTITY torSettings.yes "Ja">
+<!ENTITY torSettings.no "Nej">
+
+<!ENTITY torSettings.firstQuestion "Vilket av följande beskriver bäst din situation?">
+<!ENTITY torSettings.configurePrompt1 "Denna dators internetanslutning är censurerad, filtrerad, eller bakom en proxy.">
+<!ENTITY torSettings.configurePrompt2 "Jag behöver konfigurera brygg-, brandvägg- eller proxyinställningar.">
+<!ENTITY torSettings.configure "Konfigurera">
+<!ENTITY torSettings.connectPrompt2 "Jag vill ansluta direkt till Tor-nätverket.">
+<!ENTITY torSettings.connectPrompt3 "Detta fungerar i de flesta situationer.">
+<!ENTITY torSettings.connect "Anslut">
+
+<!ENTITY torSettings.proxyQuestion "Behöver denna dator använda en proxy för att nå Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "Om du är osäker på hur du ska svara på denna fråga, titta efter i Internet-inställningarna i en annan webbläsare för att se om den är konfigurerad att använda en proxy.">
+<!ENTITY torSettings.enterProxy "Ange proxyinställningarna.">
+<!ENTITY torSettings.firewallQuestion "Ansluter den här datorn till Internet genom en brandvägg som bara tillåter anslutningar på vissa specifika portar?">
+<!ENTITY torSettings.firewallHelp "Om du är osäker på hur du ska svara på denna fråga, välj Nej. Om du då får problem med att ansluta till Tor-nätverket, ändra denna inställning till Ja.">
+<!ENTITY torSettings.enterFirewall "Ange en komma-separerad lista över portar som brandväggen tillåter.">
+<!ENTITY torSettings.bridgeQuestion "Blockerar eller censurerar din internetleverantör anslutningar till Tor-nätverket?">
+<!ENTITY torSettings.bridgeHelp "Om du är osäker på hur du ska svara på den här frågan, välj Nej.&#160; Om du väljer Ja kommer du ombes att konfigurera Tor-bryggor, vilka är olistade reläer som gör det svårare att blockera anslutningar till Tor-nätverket.">
+<!ENTITY torSettings.bridgeSettingsPrompt "Du kan använda de förkonfigurerade bryggorna, eller skaffa och ange bryggor själv.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Väntar på att Tor ska starta...">
+<!ENTITY torsettings.restart "Starta om">
+
+<!ENTITY torsettings.optional "Valfri">
+
+<!ENTITY torsettings.useProxy.checkbox "Denna dator måste använda en proxy för att nå Internet">
+<!ENTITY torsettings.useProxy.type "Typ av proxy:">
+<!ENTITY torsettings.useProxy.address "Adress:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP-adress eller värdnamn">
+<!ENTITY torsettings.useProxy.port "Port:">
+<!ENTITY torsettings.useProxy.username "Användarnamn:">
+<!ENTITY torsettings.useProxy.password "Lösenord:">
+<!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 "Denna dator går genom en brandvägg som bara tillåter anslutningar på vissa specifika portar.">
+<!ENTITY torsettings.firewall.allowedPorts "Tillåtna portar:">
+<!ENTITY torsettings.useBridges.checkbox "Min internetleverantör blockerar anslutningar till Tor-nätverket">
+<!ENTITY torsettings.useBridges.default "Anslut med tillgängliga bryggor">
+<!ENTITY torsettings.useBridges.type "Transport-typ:">
+<!ENTITY torsettings.useBridges.custom "Fyll i anpassade bryggor">
+<!ENTITY torsettings.useBridges.label "Ange en eller flera Tor-bryggor (en per rad).">
+<!ENTITY torsettings.useBridges.placeholder "typ adress:port">
+
+<!ENTITY torsettings.copyLog "Kopiera Tor-loggen till urklippet">
+<!ENTITY torsettings.bridgeHelpTitle "Hjälp om bryggor">
+<!ENTITY torsettings.bridgeHelp1 "Om du inte kan ansluta till Tor-nätverket är det möjligt att din internetleverantör eller annan myndighet blockerar Tor.&#160; Ofta kan du kringgå detta problem genom att använda Tor-bryggor, vilka är olistade reläer som är mer svårblockerade.">
+<!ENTITY torsettings.bridgeHelp1B "Du kan använda de förkonfigurerade bryggadresserna, eller skaffa bryggadresser själv på något av följande sätt:">
+<!ENTITY torsettings.bridgeHelp2Heading "Via nätet">
+<!ENTITY torsettings.bridgeHelp2 "Använd en webbläsare för att besöka https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Via e-post autosvar">
+<!ENTITY torsettings.bridgeHelp3 "Skicka ett e-post meddelande till bridges(a)torproject.org med endast raden "get bridges" i texten.&#160; Emellertid, för att göra det svårare för en angripare är ta reda på en massa bryggadresser, måste du skicka detta meddelande från ett gmail.com eller yahoo.com konto.">
+<!ENTITY torsettings.bridgeHelp4Heading "Via supporten">
+<!ENTITY torsettings.bridgeHelp4 "Som en sista utväg kan du skicka ett artigt e-post meddelande på engelska till help(a)rt.torproject.org, och fråga efter bryggadresser.&#160; Tänk på att en person måste svara på varje sådan förfrågan.">
diff --git a/src/chrome/locale/sv/progress.dtd b/src/chrome/locale/sv/progress.dtd
new file mode 100644
index 0000000..878976d
--- /dev/null
+++ b/src/chrome/locale/sv/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor status">
+<!ENTITY torprogress.openSettings "Öppna inställningar">
+<!ENTITY torprogress.heading "Ansluter till Tor-nätverket">
+<!ENTITY torprogress.pleaseWait "Var vänlig vänta medans vi etablerar en anslutning till Tor-nätverket.">
diff --git a/src/chrome/locale/sw/network-settings.dtd b/src/chrome/locale/sw/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/sw/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/sw/progress.dtd b/src/chrome/locale/sw/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/sw/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/sw/torlauncher.properties b/src/chrome/locale/sw/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/sw/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/szl/network-settings.dtd b/src/chrome/locale/szl/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/szl/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/szl/progress.dtd b/src/chrome/locale/szl/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/szl/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/szl/torlauncher.properties b/src/chrome/locale/szl/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/szl/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/ta/network-settings.dtd b/src/chrome/locale/ta/network-settings.dtd
new file mode 100644
index 0000000..e683431
--- /dev/null
+++ b/src/chrome/locale/ta/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor நெட்வொர்க் அமைப்புகள்">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "சரி">
+<!ENTITY torSettings.no "இல்லை">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "கட்டமைக்க">
+<!ENTITY torSettings.connectPrompt2 "நான் Tor வலையமைப்பில் நேரடியாக இணைக்க விரும்புகிறேன்.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "இணைக்க">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Tor தொடங்குவதற்கு காத்திருக்கிறது...">
+<!ENTITY torsettings.restart "மறுதுவக்கு">
+
+<!ENTITY torsettings.optional "விருப்பத்தேர்வு">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.address "முகவரி:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP முகவரி அல்லது ஹோஸ்ட்பெயர்">
+<!ENTITY torsettings.useProxy.port "Port:">
+<!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">
+<!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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog " Tor பதிவுகளை கிளிப்போர்டுக்கு நகலெடு">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ta/progress.dtd b/src/chrome/locale/ta/progress.dtd
new file mode 100644
index 0000000..65d384d
--- /dev/null
+++ b/src/chrome/locale/ta/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor நிலைமை">
+<!ENTITY torprogress.openSettings "திறந்த அமைப்புகள்">
+<!ENTITY torprogress.heading "Tor நெட்வொர்க்கிற்கு இணைக்கிறது">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ta/torlauncher.properties b/src/chrome/locale/ta/torlauncher.properties
new file mode 100644
index 0000000..a8048f5
--- /dev/null
+++ b/src/chrome/locale/ta/torlauncher.properties
@@ -0,0 +1,58 @@
+### Copyright (c) 2014, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+torlauncher.error_title=Tor துவக்கி
+
+torlauncher.tor_exited=Tor எதிர்பாராத விதமாக வெளியேறிவிட்டது.
+torlauncher.please_restart_app=இந்த பயன்பாட்டை மறுதொடக்கம் செய்க.
+torlauncher.tor_controlconn_failed=Tor கட்டுப்பாட்டு துறையை இணைக்க முடியவில்லை.
+torlauncher.tor_failed_to_start=Tor தொடங்க முடியவில்லை.
+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=Tor தொடங்க முடியவில்லை.\n\n%S
+torlauncher.tor_missing=Tor இயங்கக்கூடியது காணவில்லை.
+torlauncher.torrc_missing=Torrc கோப்பை காணவில்லை.
+torlauncher.datadir_missing=Tor தரவு அடைவு இல்லை.
+torlauncher.password_hash_missing=Hashed கடவுச்சொல்லை பெற முடியவில்லை.
+
+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.error_proxy_addr_missing=நீங்கள் இணையத்தை அணுக ஒரு ப்ராக்ஸி பயன்படுத்தி Tor கட்டமைக்க ஒரு ஐபி முகவரி அல்லது புரவலன் மற்றும் ஒரு போர்ட் எண் குறிப்பிட வேண்டும்.
+torlauncher.error_proxy_type_missing=பதிலாள் வகை தேர்ந்தெடுக்க வேண்டும்.
+torlauncher.error_bridges_missing=நீங்கள் ஒன்று அல்லது அதற்கு மேற்பட்ட பாலங்களை குறிப்பிட வேண்டும்.
+torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=இணைக்க
+torlauncher.quit=விடுவி
+torlauncher.quit_win=வெளியேறு
+torlauncher.done=முடிந்தது
+
+torlauncher.forAssistance=உதவிக்கு, தொடர்பு கொள்ளுங்கள் %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Tor நெட்வொர்க்கிற்கு இணைக்கிறது
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/te-IN/network-settings.dtd b/src/chrome/locale/te-IN/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/te-IN/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/te-IN/progress.dtd b/src/chrome/locale/te-IN/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/te-IN/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/te-IN/torlauncher.properties b/src/chrome/locale/te-IN/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/te-IN/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/te/network-settings.dtd b/src/chrome/locale/te/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/te/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/te/progress.dtd b/src/chrome/locale/te/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/te/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/te/torlauncher.properties b/src/chrome/locale/te/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/te/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/tg/network-settings.dtd b/src/chrome/locale/tg/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/tg/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/tg/progress.dtd b/src/chrome/locale/tg/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/tg/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/tg/torlauncher.properties b/src/chrome/locale/tg/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/tg/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/th/network-settings.dtd b/src/chrome/locale/th/network-settings.dtd
new file mode 100644
index 0000000..3b92df8
--- /dev/null
+++ b/src/chrome/locale/th/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "ตั้งค่าเครือข่าย Tor">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "ใช่">
+<!ENTITY torSettings.no "ไม่ใช่">
+
+<!ENTITY torSettings.firstQuestion "สิ่งต่อไปนี้อันไหนบ้างที่บรรยายลักษณะสถานการณ์ของคุณ">
+<!ENTITY torSettings.configurePrompt1 "การเชื่อมต่ออินเตอร์เน็ตของคอมพิวเตอร์เครื่องนี้ได้ถูกเซ็นเซอร์ ถูกกรอง หรือใช้งานผ่านพร็อกซี">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "ปรับแต่ง">
+<!ENTITY torSettings.connectPrompt2 "ฉันอยากจะเชื่อมต่อโดยตรงกับเครือข่าย Tor">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "เชื่อมต่อ">
+
+<!ENTITY torSettings.proxyQuestion "คอมพิวเตอร์เครื่องนี้จำเป็นต้องใช้พร็อกซีเพื่อเข้าถึงอินเทอร์เน็ตหรือไม่?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "ถ้าคุณไม่แน่ใจว่าจะตอบคำถามนี้ยังไง ให้ดูค่าติดตั้งอินเทอร์เน็ตในโปรแกรมอื่นๆว่าถูกตั้งค่าให้ใช้พร็อกซีหรือไม่">
+<!ENTITY torSettings.enterProxy "ใส่ค่าติดตั้งพร็อกซี">
+<!ENTITY torSettings.firewallQuestion "คอมพิวเตอร์เครื่องนี้ใช้งานผ่านไฟร์วอลล์ที่ยินยอมที่จะให้เชื่อมต่อกับบางพอร์ตเท่านั้นหรือไม่?">
+<!ENTITY torSettings.firewallHelp "ถ้าคุณไม่แน่ใจว่าจะตอบคำถามยังไงให้เลือก "ไม่" ถ้าคุณประสบปัญหาในการเชื่อมต่อกับเครือข่าย Tor ให้กลับมาเปลี่ยนค่าติดตั้งนี้">
+<!ENTITY torSettings.enterFirewall "ใส่รายการพอร์ตที่ไฟร์วอลล์อนุญาตโดยคั่นด้วยเครื่องหมายจุลภาค">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "รอให้ Tor เริ่มทำงาน...">
+<!ENTITY torsettings.restart "เริ่มทำงานใหม่">
+
+<!ENTITY torsettings.optional "ตัวเลือก">
+
+<!ENTITY torsettings.useProxy.checkbox "คอมพิวเตอร์เครื่องนี้จำเป็นต้องใข้พร็อกซีเพื่อเข้าถึงอินเทอร์เน็ต">
+<!ENTITY torsettings.useProxy.type "ชนิดพร็อกซี:">
+<!ENTITY torsettings.useProxy.address "ที่อยู่:">
+<!ENTITY torsettings.useProxy.address.placeholder "ที่อยู่ IP หรือชื่อโฮสต์">
+<!ENTITY torsettings.useProxy.port "พอร์ต:">
+<!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">
+<!ENTITY torsettings.firewall.checkbox "คอมพิวเตอร์เครื่องนี้ใช้งานผ่านไฟร์วอลล์ที่ยินยอมที่จะให้เชื่อมต่อกับบางพอร์ตเท่านั้น">
+<!ENTITY torsettings.firewall.allowedPorts "พอร์ตที่อนุญาต:">
+<!ENTITY torsettings.useBridges.checkbox "ผู้ให้บริการอินเทอร์เน็ต (ไอเอสพี) ของฉัน ปิดกั้นการเชื่อมต่อกับเครือข่าย Tor">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "ใส่สะพานรีเลย์อย่างน้อยหนึ่งอัน (บรรทัดละอัน)">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "คัดลอกปูม Tor ไปที่คลิปบอร์ด">
+<!ENTITY torsettings.bridgeHelpTitle "การช่วยเหลือรีเลย์สะพาน">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/th/progress.dtd b/src/chrome/locale/th/progress.dtd
new file mode 100644
index 0000000..78af950
--- /dev/null
+++ b/src/chrome/locale/th/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "สถานะ Tor">
+<!ENTITY torprogress.openSettings "การตั้งค่า">
+<!ENTITY torprogress.heading "กำลังเชื่อมต่อสู่เครือข่าย Tor">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/th/torlauncher.properties b/src/chrome/locale/th/torlauncher.properties
index fc9e1ca..8e26980 100644
--- a/src/chrome/locale/th/torlauncher.properties
+++ b/src/chrome/locale/th/torlauncher.properties
@@ -1,7 +1,40 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.tor_bootstrap_failed_details=%1$S ล้มเหลว (%2$S).
+torlauncher.error_title=ตัวเปิด Tor
+
+torlauncher.tor_exited=Tor ออกจากโปรแกรมโดยไม่คาดคิด
+torlauncher.please_restart_app=กรุณาปิดเปิดแอพพลิเคชัน
+torlauncher.tor_controlconn_failed=ไม่สามารถเชื่อมต่อกับพอร์ตควบคุมของ Tor ได้
+torlauncher.tor_failed_to_start=การเริ่ม Tor ล้มเหลว
+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=ไม่สามารถเริ่มการทำงานของ Tor ได้\n\n%S
+torlauncher.tor_missing=แฟ้มโปรแกรม Tor ขาดหายไป
+torlauncher.torrc_missing=แฟ้ม torrc หายไป
+torlauncher.datadir_missing=ไม่มีไดเรกทอรีข้อมูลของ Tor
+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.error_proxy_addr_missing=คุณต้องระบุทั้งที่อยู่ IP หรือชื่อเครื่อง และหมายเลขพอร์ต เพื่อปรับแต่ง Tor ให้ใช้พร็อกซีในการเชื่อมต่ออินเทอร์เน็ต
+torlauncher.error_proxy_type_missing=คุณต้องเลือกชนิดพร็อกซี
+torlauncher.error_bridges_missing=คุณต้องระบุสะพานอย่างน้อยหนึ่งตัว
+torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=เชื่อมต่อ
+torlauncher.quit=ออก
+torlauncher.quit_win=ออก
+torlauncher.done=สำเร็จ
+
+torlauncher.forAssistance=ต้องการคำแนะนำ ติดต่อ %S
torlauncher.bootstrapStatus.conn_dir=กำลังเชื่อมต่อกับ คลังเก็บรายชื่อ relay (relay directory)
torlauncher.bootstrapStatus.handshake_dir=กำลังสร้างการเชื่อมต่อแบบเข้ารหัสกับคลังเก็บรายชื่อ
@@ -10,7 +43,7 @@ torlauncher.bootstrapStatus.loading_status=กำลังดึงข้อม
torlauncher.bootstrapStatus.loading_keys=กำลังดึง ใบรับรองการให้สิทธิ (authority certificates)
torlauncher.bootstrapStatus.requesting_descriptors=กำลังร้องขอ ข้อมูล relay
torlauncher.bootstrapStatus.loading_descriptors=กำลังดึง ข้อมูล relay
-torlauncher.bootstrapStatus.conn_or=กำลังเชื่อมต่อสู่ เครือข่าย Tor
+torlauncher.bootstrapStatus.conn_or=กำลังเชื่อมต่อสู่เครือข่าย Tor
torlauncher.bootstrapStatus.handshake_or=กำลังสร้างวงจรเชื่อมต่อ Tor
torlauncher.bootstrapStatus.done=เชื่อมต่อสู่เครือข่าย Tor เรียบร้อย!
@@ -22,3 +55,4 @@ torlauncher.bootstrapWarning.identity=ตัวตนไม่ถูกต้อ
torlauncher.bootstrapWarning.timeout=นานเกินไปในการเชื่อมต่อ
torlauncher.bootstrapWarning.noroute=หาเส้นทางไปหา host ไม่พบ
torlauncher.bootstrapWarning.ioerror=อ่าน/เขียน ผิดพลาด
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/ti/network-settings.dtd b/src/chrome/locale/ti/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/ti/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ti/progress.dtd b/src/chrome/locale/ti/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/ti/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ti/torlauncher.properties b/src/chrome/locale/ti/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/ti/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/tk/network-settings.dtd b/src/chrome/locale/tk/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/tk/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/tk/progress.dtd b/src/chrome/locale/tk/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/tk/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/tk/torlauncher.properties b/src/chrome/locale/tk/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/tk/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/uk/network-settings.dtd b/src/chrome/locale/uk/network-settings.dtd
new file mode 100644
index 0000000..fdf9ce6
--- /dev/null
+++ b/src/chrome/locale/uk/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Налаштування мережі Tor">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Перед тим, як підключитися до мережі Tor, необхідно надати інформацію про підключення до Інтернету Вашого комп'ютера.">
+
+<!ENTITY torSettings.yes "Так">
+<!ENTITY torSettings.no "Ні">
+
+<!ENTITY torSettings.firstQuestion "Яке з наступних тверджень найкраще описує Вашу ситуацію?">
+<!ENTITY torSettings.configurePrompt1 "Мережеве підключення цього комп'ютера цензурується, фільтрується або йде через проксі-сервер.">
+<!ENTITY torSettings.configurePrompt2 "Мені потрібно налаштувати міст, брандмауер або проксі-сервер.">
+<!ENTITY torSettings.configure "Налаштування">
+<!ENTITY torSettings.connectPrompt2 "Я бажаю підключатися до Tor напряму ">
+<!ENTITY torSettings.connectPrompt3 "Це має працювати у більшості ситуацій.">
+<!ENTITY torSettings.connect "З'єднатися">
+
+<!ENTITY torSettings.proxyQuestion "Цьому комп'ютеру необхідно використовувати проксі для доступу в Інтернет?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "Якщо Ви не знаєте, як відповісти на це питання, подивіться налаштування Інтернету в іншому браузері, щоб побачити чи він налаштований на використання проксі.">
+<!ENTITY torSettings.enterProxy "Задати параметри проксі">
+<!ENTITY torSettings.firewallQuestion "Чи даний комп'ютер підключений до Інтернету через брандмауер, який дозволяє підключення тільки до певних портів?">
+<!ENTITY torSettings.firewallHelp "Якщо Ви не знаєте, як відповісти на це питання, виберіть Ні. Якщо у Вас виникли проблеми з підключенням до мережі Tor, змініть дане налаштування.">
+<!ENTITY torSettings.enterFirewall "Введіть список портів, відкритих у брандмауері, через кому.">
+<!ENTITY torSettings.bridgeQuestion "Ваш Інтернет-провайдер (ISP) блокує чи яким-небудь чином цензурує підключення до Tor мережі?">
+<!ENTITY torSettings.bridgeHelp "Якщо Ви не знаєте, як відповісти на це питання, виберіть Ні.&#160; Якщо Ви виберете Так, Вам буде запропоновано налаштувати мости Tor, що є приватними трансляторами, які роблять більш важким блокування з'єднань з Tor мережі.">
+<!ENTITY torSettings.bridgeSettingsPrompt "Ви можете використати визначений перелік мостів або можете отримати і ввести набір мостів вручну.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Підключення до Tor...">
+<!ENTITY torsettings.restart "Перезавантажити">
+
+<!ENTITY torsettings.optional "Додатково">
+
+<!ENTITY torsettings.useProxy.checkbox "Цей комп'ютер повинен використовувати проксі для доступу в Інтернет">
+<!ENTITY torsettings.useProxy.type "Тип проксі:">
+<!ENTITY torsettings.useProxy.address "Адреса:">
+<!ENTITY torsettings.useProxy.address.placeholder "ІР адреса або ім'я хосту">
+<!ENTITY torsettings.useProxy.port "Порт:">
+<!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">
+<!ENTITY torsettings.firewall.checkbox "Мій брандмауер дозволяє підключення тільки до певних портів">
+<!ENTITY torsettings.firewall.allowedPorts "Дозволенні порти:">
+<!ENTITY torsettings.useBridges.checkbox "Мій провайдер блокує доступ до мережі Tor">
+<!ENTITY torsettings.useBridges.default "Підключитися з визначеними мостами">
+<!ENTITY torsettings.useBridges.type "Тип транспорту:">
+<!ENTITY torsettings.useBridges.custom "Ввести мости вручну">
+<!ENTITY torsettings.useBridges.label "Введіть один або кілька ретрансляторів типу міст (по одному в рядок).">
+<!ENTITY torsettings.useBridges.placeholder "введіть адресу:порт">
+
+<!ENTITY torsettings.copyLog "Скопіювати журнал Tor до буферу обміну">
+<!ENTITY torsettings.bridgeHelpTitle "Допомога по ретрансляторам типу міст">
+<!ENTITY torsettings.bridgeHelp1 "Якщо Ви не можете підключитися до мережі Tor, може бути, що Ваш інтернет-провайдер (ISP) або інша організація блокує Tor.&#160; Часто можна обійти цю проблему за допомогою Tor мостів, що є приватними трансляторами, які важче заблокувати.">
+<!ENTITY torsettings.bridgeHelp1B "Ви можете використати визначений перелік мостів або отримати і ввести набір мостів вручну, використовуючи один з трьох перерахованих методів:">
+<!ENTITY torsettings.bridgeHelp2Heading "Через Веб">
+<!ENTITY torsettings.bridgeHelp2 "Відвідайте сторінку https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Через автовідповідач електронної пошти">
+<!ENTITY torsettings.bridgeHelp3 "Надішліть повідомлення на адресу bridges(a)torproject.org зі стрічкою "get bridges" у тілі повідомлення.&#160; Проте, для того, щоб ускладнити визначення великої кількості адрес мостів зловмисниками, необхідно відправити цей запит від поштової скриньки gmail.com або yahoo.com.">
+<!ENTITY torsettings.bridgeHelp4Heading "Через допомогу">
+<!ENTITY torsettings.bridgeHelp4 "У крайньому випадку, Ви можете отримати адресу мосту, відправивши ввічливе повідомлення на адресу help(a)rt.torproject.org.&#160; Зверніть увагу на те, що кожен запит обробляється людиною.">
diff --git a/src/chrome/locale/uk/progress.dtd b/src/chrome/locale/uk/progress.dtd
new file mode 100644
index 0000000..1bf065b
--- /dev/null
+++ b/src/chrome/locale/uk/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Статус Tor">
+<!ENTITY torprogress.openSettings "Відкрити Налаштування">
+<!ENTITY torprogress.heading "Підключення до мережі Tor">
+<!ENTITY torprogress.pleaseWait "Будь ласка, зачекайте, поки ми підключаємося до мережі Tor.">
diff --git a/src/chrome/locale/uk/torlauncher.properties b/src/chrome/locale/uk/torlauncher.properties
new file mode 100644
index 0000000..4045c47
--- /dev/null
+++ b/src/chrome/locale/uk/torlauncher.properties
@@ -0,0 +1,58 @@
+### Copyright (c) 2014, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+torlauncher.error_title=Завантажувач Tor
+
+torlauncher.tor_exited=Tor несподівано завершився.
+torlauncher.please_restart_app=Будь ласка, перезапустіть цю програму.
+torlauncher.tor_controlconn_failed=Неможливо з'єднатися з портом управління Tor.
+torlauncher.tor_failed_to_start=Tor не зміг запуститися.
+torlauncher.tor_control_failed=Збій отримання контролю над Tor.
+torlauncher.tor_bootstrap_failed=Tor не вдалося встановити з'єднання з мережею 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.failed_to_get_settings=Не вдалося отримати налаштування Tor.\n\n%S
+torlauncher.failed_to_save_settings=Неможливо зберегти налаштування Tor.\n\n%S
+torlauncher.ensure_tor_is_running=Переконайтеся що Tor запущений.
+
+torlauncher.error_proxy_addr_missing=Ви повинні вказати IP-адресу або ім'я хоста і порт, щоб налаштувати Tor і використовувати проксі для доступу в Інтернет.
+torlauncher.error_proxy_type_missing=Ви повинні вибрати тип проксі.
+torlauncher.error_bridges_missing=Ви повинні вказати один або кілька мережевих мостів.
+torlauncher.error_default_bridges_type_missing=Ви повинні вибрати тип транспорту для наданих мережевих мостів.
+torlauncher.error_bridge_bad_default_type=Немає мережевих мостів які мають тип транспорту %S. Будь ласка перевірте ваші налаштування.
+
+torlauncher.recommended_bridge=(рекомендовано)
+
+torlauncher.connect=З'єднатися
+torlauncher.quit=Вийти
+torlauncher.quit_win=Вихід
+torlauncher.done=Готово
+
+torlauncher.forAssistance=Для допомоги зв'яжіться з %S
+
+torlauncher.bootstrapStatus.conn_dir=З'єднання з довідником маршрутизатора
+torlauncher.bootstrapStatus.handshake_dir=Встановлення зашифрованого з'єднання до каталогу
+torlauncher.bootstrapStatus.requesting_status=Отримання стану мережі
+torlauncher.bootstrapStatus.loading_status=Завантаження стану мережі
+torlauncher.bootstrapStatus.loading_keys=Завантаження сертифікатів авторизації
+torlauncher.bootstrapStatus.requesting_descriptors=Запит інформації про марщрутизацію
+torlauncher.bootstrapStatus.loading_descriptors=Завантаження інформації про маршрутизацію
+torlauncher.bootstrapStatus.conn_or=Підключення до мережі Tor
+torlauncher.bootstrapStatus.handshake_or=Створення ланцюга Tor
+torlauncher.bootstrapStatus.done=Підключений до мережі Tor!
+
+torlauncher.bootstrapWarning.done=виконано
+torlauncher.bootstrapWarning.connectrefused=у підключені відмовлено
+torlauncher.bootstrapWarning.misc=різне
+torlauncher.bootstrapWarning.resourcelimit=недостатні ресурси
+torlauncher.bootstrapWarning.identity=невідповідність ідентифікації
+torlauncher.bootstrapWarning.timeout=тайм-аут з'єднання
+torlauncher.bootstrapWarning.noroute=не вказаний шлях до хосту
+torlauncher.bootstrapWarning.ioerror=помилка читання / запису
+torlauncher.bootstrapWarning.pt_missing=пропущений підключуваний транспорт
diff --git a/src/chrome/locale/ur-PK/network-settings.dtd b/src/chrome/locale/ur-PK/network-settings.dtd
new file mode 100644
index 0000000..76ee3bd
--- /dev/null
+++ b/src/chrome/locale/ur-PK/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "ہاں">
+<!ENTITY torSettings.no "نہیں">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ur-PK/progress.dtd b/src/chrome/locale/ur-PK/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/ur-PK/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ur-PK/torlauncher.properties b/src/chrome/locale/ur-PK/torlauncher.properties
new file mode 100644
index 0000000..d701651
--- /dev/null
+++ b/src/chrome/locale/ur-PK/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=چھوڑدیجیے (Quit)
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/ur/network-settings.dtd b/src/chrome/locale/ur/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/ur/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ur/progress.dtd b/src/chrome/locale/ur/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/ur/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ur/torlauncher.properties b/src/chrome/locale/ur/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/ur/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/uz/network-settings.dtd b/src/chrome/locale/uz/network-settings.dtd
new file mode 100644
index 0000000..9f28d7b
--- /dev/null
+++ b/src/chrome/locale/uz/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor tarmoq moslamalari">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Ha">
+<!ENTITY torSettings.no "Yo'q">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Qayta ishga tushirish">
+
+<!ENTITY torsettings.optional "Qo'shimcha">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "Proksi turi:">
+<!ENTITY torsettings.useProxy.address "Manzil:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP manzil yoki host nomi">
+<!ENTITY torsettings.useProxy.port "Port:">
+<!ENTITY torsettings.useProxy.username "Foydalanuvchi nomi:">
+<!ENTITY torsettings.useProxy.password "Maxfiy so'z:">
+<!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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/uz/progress.dtd b/src/chrome/locale/uz/progress.dtd
new file mode 100644
index 0000000..865a7ed
--- /dev/null
+++ b/src/chrome/locale/uz/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor holati">
+<!ENTITY torprogress.openSettings "Moslamalarni ochish">
+<!ENTITY torprogress.heading "Tor tarmog'iga ulanish">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/uz/torlauncher.properties b/src/chrome/locale/uz/torlauncher.properties
new file mode 100644
index 0000000..08ce7aa
--- /dev/null
+++ b/src/chrome/locale/uz/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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=Dasturni qayta ishga tushiring
+torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
+torlauncher.tor_failed_to_start=Tor ishga tushirish muvaffaqiyatsiz tugadi.
+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=torrc fayli mavjud emas.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Ulanish
+torlauncher.quit=Chiqish
+torlauncher.quit_win=Chiqish
+torlauncher.done=Bajarildi
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Tor tarmog'iga ulanish
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/ve/network-settings.dtd b/src/chrome/locale/ve/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/ve/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ve/progress.dtd b/src/chrome/locale/ve/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/ve/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/ve/torlauncher.properties b/src/chrome/locale/ve/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/ve/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/vi/torlauncher.properties b/src/chrome/locale/vi/torlauncher.properties
index e57776c..e70b4c1 100644
--- a/src/chrome/locale/vi/torlauncher.properties
+++ b/src/chrome/locale/vi/torlauncher.properties
@@ -17,7 +17,7 @@ torlauncher.torrc_missing=Thiếu tập tin torrc.
torlauncher.datadir_missing=Thư mục data trong Tor không tồn tại.
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_get_settings=Không thể nhận được cài đặt Tor.
torlauncher.failed_to_save_settings=Không thể lưu lại các cài đặt của Tor.
torlauncher.ensure_tor_is_running=Hãy chắc chắn rằng Tor đang chạy.
diff --git a/src/chrome/locale/wa/network-settings.dtd b/src/chrome/locale/wa/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/wa/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/wa/progress.dtd b/src/chrome/locale/wa/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/wa/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/wa/torlauncher.properties b/src/chrome/locale/wa/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/wa/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/wo/network-settings.dtd b/src/chrome/locale/wo/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/wo/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/wo/progress.dtd b/src/chrome/locale/wo/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/wo/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/wo/torlauncher.properties b/src/chrome/locale/wo/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/wo/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/zh-CN.GB2312/network-settings.dtd b/src/chrome/locale/zh-CN.GB2312/network-settings.dtd
new file mode 100644
index 0000000..7e3d9ca
--- /dev/null
+++ b/src/chrome/locale/zh-CN.GB2312/network-settings.dtd
@@ -0,0 +1,59 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before the Tor Browser Bundle tries to connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "If this computer's Internet connection is censored, you will need to obtain and use bridge relays.&#160; If not, just click Connect.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "address:port OR transport address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "Here are three ways to obtain bridge addresses:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/zh-CN.GB2312/progress.dtd b/src/chrome/locale/zh-CN.GB2312/progress.dtd
new file mode 100644
index 0000000..16491f9
--- /dev/null
+++ b/src/chrome/locale/zh-CN.GB2312/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "The Tor Browser will open after a Tor network connection is established.">
diff --git a/src/chrome/locale/zh-CN.GB2312/torlauncher.properties b/src/chrome/locale/zh-CN.GB2312/torlauncher.properties
new file mode 100644
index 0000000..d82d688
--- /dev/null
+++ b/src/chrome/locale/zh-CN.GB2312/torlauncher.properties
@@ -0,0 +1,52 @@
+### 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.conn_dir=Connecting to a relay directory
+# torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+# torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+# torlauncher.bootstrapStatus.loading_status=Loading network status
+# torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+# torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+# torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+# torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+# torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/zh-CN/torlauncher.properties b/src/chrome/locale/zh-CN/torlauncher.properties
index 6c9d920..1f17dba 100644
--- a/src/chrome/locale/zh-CN/torlauncher.properties
+++ b/src/chrome/locale/zh-CN/torlauncher.properties
@@ -25,7 +25,7 @@ torlauncher.error_proxy_addr_missing=为了将 Tor 配置为使用代理访问
torlauncher.error_proxy_type_missing=必须选择代理类型。
torlauncher.error_bridges_missing=必须指定一个或多个网桥。
torlauncher.error_default_bridges_type_missing=您必须对提供的网桥选择传输类型。
-torlauncher.error_bridge_bad_default_type=没有提供传输类型为 %S 的可用网桥。请调整您的设置。
+torlauncher.error_bridge_bad_default_type=没有提供传输类型为 %S 的可用网桥。请调整你的设置。
torlauncher.recommended_bridge=(推荐)
@@ -55,4 +55,4 @@ torlauncher.bootstrapWarning.identity=身份不一致
torlauncher.bootstrapWarning.timeout=连接超时
torlauncher.bootstrapWarning.noroute=没有可用链路
torlauncher.bootstrapWarning.ioerror=读写错误
-torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
+torlauncher.bootstrapWarning.pt_missing=缺少 pluggable 传输类型网桥
diff --git a/src/chrome/locale/zh-HK/network-settings.dtd b/src/chrome/locale/zh-HK/network-settings.dtd
new file mode 100644
index 0000000..b71f161
--- /dev/null
+++ b/src/chrome/locale/zh-HK/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "是">
+<!ENTITY torSettings.no "否">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "密碼:">
+<!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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/zh-HK/progress.dtd b/src/chrome/locale/zh-HK/progress.dtd
new file mode 100644
index 0000000..8a38686
--- /dev/null
+++ b/src/chrome/locale/zh-HK/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor的狀態">
+<!ENTITY torprogress.openSettings "打開設定">
+<!ENTITY torprogress.heading "連接至Tor的網絡中">
+<!ENTITY torprogress.pleaseWait "跟Tor網絡連接, 請稍候。">
diff --git a/src/chrome/locale/zh-HK/torlauncher.properties b/src/chrome/locale/zh-HK/torlauncher.properties
new file mode 100644
index 0000000..d088f8d
--- /dev/null
+++ b/src/chrome/locale/zh-HK/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=離開
+torlauncher.quit_win=離開
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=連接上Tor的網絡
+torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/zh-TW/network-settings.dtd b/src/chrome/locale/zh-TW/network-settings.dtd
new file mode 100644
index 0000000..3831bce
--- /dev/null
+++ b/src/chrome/locale/zh-TW/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor 網路設定">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "當您連接到 Tor 網路之前,您必須提供關於這部電腦的網路連線資訊">
+
+<!ENTITY torSettings.yes "確定">
+<!ENTITY torSettings.no "取消">
+
+<!ENTITY torSettings.firstQuestion "下列哪一項最符合您的情況?">
+<!ENTITY torSettings.configurePrompt1 "此電腦的網路連結被審查、過濾、或經過代理。">
+<!ENTITY torSettings.configurePrompt2 "我需要設定橋接、防火牆或代理伺服器設定。">
+<!ENTITY torSettings.configure "設定">
+<!ENTITY torSettings.connectPrompt2 "我想直接連結到 Tor 網路。">
+<!ENTITY torSettings.connectPrompt3 "這能在大部分狀況中生效">
+<!ENTITY torSettings.connect "連結">
+
+<!ENTITY torSettings.proxyQuestion "這台電腦是否需要透過代理伺服器存取網際網路?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "若您無法確定如何回答這個問題,請查看其他瀏覽器的網路設定,看它是否設定為透過代理伺服器連線。">
+<!ENTITY torSettings.enterProxy "輸入代理伺服器設定。">
+<!ENTITY torSettings.firewallQuestion "此電腦的網路連線,是否通過只允許連結特定連線埠的防火牆?">
+<!ENTITY torSettings.firewallHelp "若您無法確定如何回答這個問題,請選擇「否」。若您在連結至 Tor 網路時遭遇問題,請再改變此設定。">
+<!ENTITY torSettings.enterFirewall "請輸入防火牆允許的連線埠(請以逗號分隔)。">
+<!ENTITY torSettings.bridgeQuestion "您的網路供應商 (ISP) 阻擋或者審查 Tor 網路連線?">
+<!ENTITY torSettings.bridgeHelp "如果你不知道如何回答這個問題,請選擇「否」&#160;如果你選擇選擇「是」,你將被要求設定Tor網橋,這可以讓阻擋客戶端與Tor伺服器的連接更困難。">
+<!ENTITY torSettings.bridgeSettingsPrompt "您可以使用預設的網橋或者你可以使用自定義設置的網橋。">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "正在等待 Tor 啟動…">
+<!ENTITY torsettings.restart "重新啟動">
+
+<!ENTITY torsettings.optional "選項">
+
+<!ENTITY torsettings.useProxy.checkbox "這台電腦需要使用代理伺服器存取網際網路">
+<!ENTITY torsettings.useProxy.type "代理伺服器類型:">
+<!ENTITY torsettings.useProxy.address "地址:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP 位址或主機名">
+<!ENTITY torsettings.useProxy.port "連接埠:">
+<!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">
+<!ENTITY torsettings.firewall.checkbox "這台電腦通過只允許連結至特定連線埠的防火牆">
+<!ENTITY torsettings.firewall.allowedPorts "允許的連接埠:">
+<!ENTITY torsettings.useBridges.checkbox "我的網際網路服務提供者(ISP)封鎖連結到Tor網絡">
+<!ENTITY torsettings.useBridges.default "連線並提供網橋">
+<!ENTITY torsettings.useBridges.type "連線類型:">
+<!ENTITY torsettings.useBridges.custom "進入客製化網橋">
+<!ENTITY torsettings.useBridges.label "輸入一個或多個橋接中繼 (每行一個)。">
+<!ENTITY torsettings.useBridges.placeholder "類型 address:port">
+
+<!ENTITY torsettings.copyLog "複製 Tor 記錄到剪貼簿">
+<!ENTITY torsettings.bridgeHelpTitle "橋接中繼說明">
+<!ENTITY torsettings.bridgeHelp1 "若您無法連接到 Tor 網路,可能是您的網際網路服務提供者 (ISP) 或其他機構已封鎖 Tor。&#160; 通常你可以使用更難以封鎖之隱藏中繼的 Tor 橋接來解決問題。">
+<!ENTITY torsettings.bridgeHelp1B "你可能會使用預設,提供網橋地址或是你可能使用一個客製化的地址選擇由以下三者之中選一:">
+<!ENTITY torsettings.bridgeHelp2Heading "透過網路">
+<!ENTITY torsettings.bridgeHelp2 "使用網路瀏覽器造訪 https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "透過 Email 自動回覆">
+<!ENTITY torsettings.bridgeHelp3 "尋找公眾橋接位址的另一種方式是發送郵件到 bridges(a)torproject.xn--org,-3e5fnb965bxtdv9cqulkw6b 「get bridges」訊息。&#160; 然而,為了使攻擊者更難紀錄到更多橋接位址,您必須使用 gmail.com 或 yahoo.com 的信箱來發送此郵件。">
+<!ENTITY torsettings.bridgeHelp4Heading "透過 Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "最後的方法是:你可以寄送一封有禮貌的郵件到 help(a)rt.torproject.org &#160; 請注意我們需要一封封的手動回覆郵件。">
diff --git a/src/chrome/locale/zh-TW/progress.dtd b/src/chrome/locale/zh-TW/progress.dtd
new file mode 100644
index 0000000..fe88399
--- /dev/null
+++ b/src/chrome/locale/zh-TW/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor 狀態">
+<!ENTITY torprogress.openSettings "開啟設定">
+<!ENTITY torprogress.heading "正在連線至 Tor 網路">
+<!ENTITY torprogress.pleaseWait "我們正在建立 Tor 網路連線,請稍候">
diff --git a/src/chrome/locale/zh-TW/torlauncher.properties b/src/chrome/locale/zh-TW/torlauncher.properties
index 1be7091..1abca51 100644
--- a/src/chrome/locale/zh-TW/torlauncher.properties
+++ b/src/chrome/locale/zh-TW/torlauncher.properties
@@ -1,17 +1,58 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.tor_bootstrap_failed_details=%1$S 失敗 (%2$S).
+torlauncher.error_title=Tor 啟動程式
-torlauncher.bootstrapStatus.conn_dir=正在連線至中繼站目錄
+torlauncher.tor_exited=Tor 未預期的關閉。
+torlauncher.please_restart_app=請重新啟動應用程式。
+torlauncher.tor_controlconn_failed=無法連結至 Tor 控制連接埠。
+torlauncher.tor_failed_to_start=Tor 啟動失敗
+torlauncher.tor_control_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.failed_to_get_settings=無法擷取 Tor 設定值。\n\n%S
+torlauncher.failed_to_save_settings=無法儲存 Tor 的設定值。\n\n%S
+torlauncher.ensure_tor_is_running=請確定 Tor 正在執行。
+
+torlauncher.error_proxy_addr_missing=想要設定 Tor 透過 Proxy 存取網路,您必須指定一個 IP 位置或主機名稱、以及連接埠號碼。
+torlauncher.error_proxy_type_missing=您必須選擇代理伺服器類型。
+torlauncher.error_bridges_missing=您必須指定一或多個橋接。
+torlauncher.error_default_bridges_type_missing=你必須選擇一種傳送方式才能提供網橋
+torlauncher.error_bridge_bad_default_type=沒有可用的連線方式為 %S 的網橋。請調整您的設定。
+
+torlauncher.recommended_bridge=(建議)
+
+torlauncher.connect=連接
+torlauncher.quit=離開
+torlauncher.quit_win=結束
+torlauncher.done=完成
+
+torlauncher.forAssistance=如需協助,請聯絡 %S
+
+torlauncher.bootstrapStatus.conn_dir=正連線至中繼站目錄
torlauncher.bootstrapStatus.handshake_dir=正在建立加密的目錄連線
+torlauncher.bootstrapStatus.requesting_status=接收網路狀態
+torlauncher.bootstrapStatus.loading_status=正在載入網路狀態
+torlauncher.bootstrapStatus.loading_keys=正在載入憑證機構證書
torlauncher.bootstrapStatus.requesting_descriptors=正在要求中繼站資訊
+torlauncher.bootstrapStatus.loading_descriptors=正在載入中繼資訊
torlauncher.bootstrapStatus.conn_or=正在連線至 Tor 網路
torlauncher.bootstrapStatus.handshake_or=正在建立 Tor 迴路
-torlauncher.bootstrapStatus.done=已連線到 Tor 網路!
+torlauncher.bootstrapStatus.done=已連線到 Tor 網路!
torlauncher.bootstrapWarning.done=完成
+torlauncher.bootstrapWarning.connectrefused=連線被拒絕
torlauncher.bootstrapWarning.misc=雜項
torlauncher.bootstrapWarning.resourcelimit=資源不足
+torlauncher.bootstrapWarning.identity=身分不一致
torlauncher.bootstrapWarning.timeout=連線逾時
+torlauncher.bootstrapWarning.noroute=無連結至 host 的路徑
torlauncher.bootstrapWarning.ioerror=讀寫錯誤
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/zh/network-settings.dtd b/src/chrome/locale/zh/network-settings.dtd
new file mode 100644
index 0000000..7e3d9ca
--- /dev/null
+++ b/src/chrome/locale/zh/network-settings.dtd
@@ -0,0 +1,59 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before the Tor Browser Bundle tries to connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "If this computer's Internet connection is censored, you will need to obtain and use bridge relays.&#160; If not, just click Connect.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "address:port OR transport address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "Here are three ways to obtain bridge addresses:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/zh/progress.dtd b/src/chrome/locale/zh/progress.dtd
new file mode 100644
index 0000000..16491f9
--- /dev/null
+++ b/src/chrome/locale/zh/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "The Tor Browser will open after a Tor network connection is established.">
diff --git a/src/chrome/locale/zh/torlauncher.properties b/src/chrome/locale/zh/torlauncher.properties
new file mode 100644
index 0000000..d82d688
--- /dev/null
+++ b/src/chrome/locale/zh/torlauncher.properties
@@ -0,0 +1,52 @@
+### 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.conn_dir=Connecting to a relay directory
+# torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+# torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+# torlauncher.bootstrapStatus.loading_status=Loading network status
+# torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+# torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+# torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+# torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+# torlauncher.bootstrapStatus.handshake_or=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
diff --git a/src/chrome/locale/zu/network-settings.dtd b/src/chrome/locale/zu/network-settings.dtd
new file mode 100644
index 0000000..4cedae6
--- /dev/null
+++ b/src/chrome/locale/zu/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Network Settings">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+
+<!ENTITY torSettings.yes "Yes">
+<!ENTITY torSettings.no "No">
+
+<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
+<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connect "Connect">
+
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
+<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
+<!ENTITY torSettings.firewallHelp "If you are not sure how to answer this question, choose No. If you encounter problems connecting to the Tor network, change this setting.">
+<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
+<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
+<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.restart "Restart">
+
+<!ENTITY torsettings.optional "Optional">
+
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.type "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 "My Internet Service Provider (ISP) blocks connections to the Tor network">
+<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.type "Transport type:">
+<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
+<!ENTITY torsettings.useBridges.placeholder "type address:port">
+
+<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
+<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
+<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
+<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/zu/progress.dtd b/src/chrome/locale/zu/progress.dtd
new file mode 100644
index 0000000..ebd9cef
--- /dev/null
+++ b/src/chrome/locale/zu/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Status">
+<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.heading "Connecting to the Tor network">
+<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
diff --git a/src/chrome/locale/zu/torlauncher.properties b/src/chrome/locale/zu/torlauncher.properties
new file mode 100644
index 0000000..d04cac5
--- /dev/null
+++ b/src/chrome/locale/zu/torlauncher.properties
@@ -0,0 +1,58 @@
+### 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_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.
+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.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+
+torlauncher.recommended_bridge=(recommended)
+
+torlauncher.connect=Connect
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=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
1
0

[tor-launcher/master] Display which locales we decide to omit due to missing resources.
by mikeperry@torproject.org 22 Apr '14
by mikeperry@torproject.org 22 Apr '14
22 Apr '14
commit 5fabcea887f1f7a4129b05a7d6f9767798a75f18
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Tue Apr 22 16:55:10 2014 +0200
Display which locales we decide to omit due to missing resources.
---
Makefile | 1 +
1 file changed, 1 insertion(+)
diff --git a/Makefile b/Makefile
index 9acbddb..940bbdc 100644
--- a/Makefile
+++ b/Makefile
@@ -41,6 +41,7 @@ pkg-prepare: clean
[ -n "$(BUNDLE_LOCALES)" ] && \
! echo $(BUNDLE_LOCALES) | grep -qw `basename "$${d}"` \
); then \
+ echo "Removing locale $${d} (missing resource $${f})"; \
rm -rf "$${d}"; \
break; \
fi \
1
0

[tor-launcher/master] Bump version to designate new localization fixes.
by mikeperry@torproject.org 22 Apr '14
by mikeperry@torproject.org 22 Apr '14
22 Apr '14
commit ab2d0f767fc5af36f941b3c17f01679e82564c0c
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Tue Apr 22 16:56:19 2014 +0200
Bump version to designate new localization fixes.
---
src/install.rdf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/install.rdf b/src/install.rdf
index 0e8614e..7b47f07 100644
--- a/src/install.rdf
+++ b/src/install.rdf
@@ -7,7 +7,7 @@
<em:creator>The Tor Project, Inc.</em:creator>
<em:contributor>Pearl Crescent, LLC</em:contributor>
<em:id>tor-launcher(a)torproject.org</em:id>
- <em:version>0.2.5.3</em:version>
+ <em:version>0.2.5.4pre</em:version>
<em:homepageURL>https://www.torproject.org/projects/torbrowser.html</em:homepageURL>
<em:updateURL>https://127.0.0.1/</em:updateURL>
<!--
1
0
commit 753bbf3fdce14f4d22e8b1411663cef7029d312f
Author: Tails developers <amnesia(a)boum.org>
Date: Fri Mar 14 12:06:26 2014 +0100
Add .gitignore.
This is convenient for `localization/translations` and `pkg`.
---
.gitignore | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..8dafcc6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+localization/translation
+pkg
1
0
commit ec4b767bbcd8ce67e61be14d7333774a99edbfac
Author: Tails developers <amnesia(a)boum.org>
Date: Fri Mar 14 12:36:30 2014 +0100
Whitespace cleanup.
---
Makefile | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/Makefile b/Makefile
index 0e45753..9acbddb 100644
--- a/Makefile
+++ b/Makefile
@@ -17,11 +17,11 @@ else
ZIP=zip -q
TAR=tar
endif
-
+
help:
- @echo "Available targets:"; \
- for t in $(AVAIL_TARGETS); do \
- echo " make $$t"; \
+ @echo "Available targets:"; \
+ for t in $(AVAIL_TARGETS); do \
+ echo " make $$t"; \
done
pkg-prepare: clean
@@ -86,10 +86,10 @@ clean:
"pkg/$(STANDALONE_TARBALL)"
zip:
- @TMPFILE=/tmp/$(EXT_NAME)-`date '+%Y-%m-%d-%s'`.zip; \
- CURDIR=`pwd`; \
- BASEDIR=`basename $$CURDIR`; \
- cd ..; zip -q -r $$TMPFILE $$BASEDIR -x $$BASEDIR/build/\*; \
+ @TMPFILE=/tmp/$(EXT_NAME)-`date '+%Y-%m-%d-%s'`.zip; \
+ CURDIR=`pwd`; \
+ BASEDIR=`basename $$CURDIR`; \
+ cd ..; zip -q -r $$TMPFILE $$BASEDIR -x $$BASEDIR/build/\*; \
rm $$TMPFILE
.PHONY: help clean zip
1
0

[tor-launcher/master] Add convenience make rule for importing translations.
by mikeperry@torproject.org 22 Apr '14
by mikeperry@torproject.org 22 Apr '14
22 Apr '14
commit 66b647c6b0041ea02a570658cc119cbca6ace327
Author: Tails developers <amnesia(a)boum.org>
Date: Fri Mar 14 12:05:04 2014 +0100
Add convenience make rule for importing translations.
---
Makefile | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index b698f4e..0e45753 100644
--- a/Makefile
+++ b/Makefile
@@ -8,7 +8,7 @@ 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 clean
+AVAIL_TARGETS=help package standalone import-translations clean
ifeq ($(VERBOSE),1)
ZIP=zip
@@ -78,6 +78,9 @@ standalone: pkg-prepare
@rm -rf "$(TMP)"
@echo "Created standalone package pkg/$(STANDALONE_TARBALL)"
+import-translations:
+ @( cd localization && ./import-translations.sh )
+
clean:
@rm -f "pkg/$(XPI_NAME)" \
"pkg/$(STANDALONE_TARBALL)"
1
0

[tor-launcher/master] Improve how we import, bundle and register translations.
by mikeperry@torproject.org 22 Apr '14
by mikeperry@torproject.org 22 Apr '14
22 Apr '14
commit 951b654f29868d8b52c1c8a0713346678a64fde6
Author: Tails developers <amnesia(a)boum.org>
Date: Wed Mar 12 15:10:05 2014 +0100
Improve how we import, bundle and register translations.
Previously chrome.manifest defined locales for pretty much every
existing locale. Many of these were out-of-date (lacking entities,
which results in fatal XUL errors) or completely absent (also fatal).
Instead of maintaining a static list of which locales to register we
generate it programatically, making sure that only those that seem
complete are included. We also make sure to register "en-US" since
it's the hardcoded fallback for unregistered locales. Note that it's
currently called "en" in the Transifex translation repos.
The BUNDLE_LOCALES environment variable can be set to specify a list
of which locales to bundle ("en-US" is always implied). If it's empty
we optimistically try to include all locales. For this reason
import-translations.sh imports all translations from Transifex, and
it's important to run it before packaging since up-to-date
translations are necessary to avoid the issues mentioned above.
---
Makefile | 43 +++++++++--
chrome.manifest.in | 16 +++++
localization/import-translations.sh | 41 +++++------
src/chrome.manifest | 136 -----------------------------------
4 files changed, 73 insertions(+), 163 deletions(-)
diff --git a/Makefile b/Makefile
index 3d3a857..b698f4e 100644
--- a/Makefile
+++ b/Makefile
@@ -6,6 +6,7 @@ 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 clean
@@ -25,15 +26,49 @@ help:
pkg-prepare: clean
@mkdir -p pkg
+ $(eval TMP="$(shell mktemp -d "/tmp/$(EXT_NAME).XXXXXX")")
+ @cp -a "src" "$(TMP)/$(EXT_NAME)"
+ @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 \
+ continue; \
+ fi; \
+ for f in $(REQUIRED_TRANSLATION_FILES); do \
+ if [ ! -e "$${d}/$${f}" ] || \
+ ( \
+ [ -n "$(BUNDLE_LOCALES)" ] && \
+ ! echo $(BUNDLE_LOCALES) | grep -qw `basename "$${d}"` \
+ ); then \
+ rm -rf "$${d}"; \
+ break; \
+ fi \
+ done \
+ done
+ @for l in $(BUNDLE_LOCALES); do \
+ if [ ! -d "$(TMP)/$(EXT_NAME)"/chrome/locale/"$${l}" ]; then \
+ echo "Requested locale '$${l}' is missing or incomplete" >&2; \
+ exit 1; \
+ fi \
+ 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; \
+ done
package: pkg-prepare
- @(cd src; $(ZIP) -X9r "../pkg/$(XPI_NAME)" ./ -x "*.diff")
+ @( \
+ CURDIR="$(shell pwd)"; \
+ cd "$(TMP)/$(EXT_NAME)"; \
+ $(ZIP) -X9r "$(CURDIR)/pkg/$(XPI_NAME)" ./ -x "*.diff" \
+ )
+ @rm -rf "$(TMP)"
@echo "Created package pkg/$(XPI_NAME)"
standalone: pkg-prepare
- $(eval TMP="$(shell mktemp -d "/tmp/$(STANDALONE_NAME).XXXXXX")")
- @mkdir -p "$(TMP)/$(STANDALONE_NAME)"
- @cp -a "src/"* "$(TMP)/$(STANDALONE_NAME)"
+ @mv "$(TMP)/$(EXT_NAME)" "$(TMP)/$(STANDALONE_NAME)"
@cp application.ini.in "$(TMP)/$(STANDALONE_NAME)/application.ini"
@sed -i -e "s/__VERSION__/$(VERSION)/" \
-e "s/__DATE__/`date '+%Y%m%d'`/" \
diff --git a/chrome.manifest.in b/chrome.manifest.in
new file mode 100644
index 0000000..a869569
--- /dev/null
+++ b/chrome.manifest.in
@@ -0,0 +1,16 @@
+### Copyright (c) 2013, 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
diff --git a/localization/import-translations.sh b/localization/import-translations.sh
index 32ea177..0c81aa6 100755
--- a/localization/import-translations.sh
+++ b/localization/import-translations.sh
@@ -1,13 +1,10 @@
#!/bin/sh
-BUNDLE_LOCALES="ar de es fa fr it ko nl pl pt ru tr vi zh-CN"
-
-# XXX: Basque (eu) by request in #10687.
-# This is not used for official builds, but should remain
-# so Basque XPIs can be build independently. We can do
-# this for other languages too, if anyone requests this
-# and translations are available.
-BUNDLE_LOCALES="$BUNDLE_LOCALES eu ja sv"
+TRANSLATION_BRANCHES="
+tor-launcher-network-settings
+tor-launcher-progress
+tor-launcher-properties
+"
if [ -d translation ];
then
@@ -19,20 +16,18 @@ else
fi
cd translation
-for i in $BUNDLE_LOCALES
+for branch in ${TRANSLATION_BRANCHES}
do
- UL="`echo $i|tr - _`"
- mkdir -p ../../src/chrome/locale/$i/
-
- git checkout tor-launcher-network-settings
- git merge origin/tor-launcher-network-settings
- cp $UL/network-settings.dtd ../../src/chrome/locale/$i/
-
- git checkout tor-launcher-progress
- git merge origin/tor-launcher-progress
- cp $UL/progress.dtd ../../src/chrome/locale/$i/
-
- git checkout tor-launcher-properties
- git merge origin/tor-launcher-properties
- cp $UL/torlauncher.properties ../../src/chrome/locale/$i/
+ git checkout ${branch}
+ git merge origin/${branch}
+ for locale in *
+ do
+ if [ ! -d "${locale}" ]
+ then
+ continue
+ fi
+ target="../../src/chrome/locale/$(echo "${locale}" | tr _ -)"
+ mkdir -p "${target}"
+ cp -f "${locale}"/* "${target}"/
+ done
done
diff --git a/src/chrome.manifest b/src/chrome.manifest
deleted file mode 100644
index 786bae8..0000000
--- a/src/chrome.manifest
+++ /dev/null
@@ -1,136 +0,0 @@
-### Copyright (c) 2013, The Tor Project, Inc.
-### See LICENSE for licensing information.
-
-content torlauncher chrome/content/
-
-locale torlauncher af chrome/locale/af/
-locale torlauncher ak chrome/locale/ak/
-locale torlauncher am chrome/locale/am/
-locale torlauncher ar chrome/locale/ar/
-locale torlauncher arn chrome/locale/arn/
-locale torlauncher ast chrome/locale/ast/
-locale torlauncher az chrome/locale/az/
-locale torlauncher be chrome/locale/be/
-locale torlauncher bg chrome/locale/bg/
-locale torlauncher bms chrome/locale/bms/
-locale torlauncher bn chrome/locale/bn/
-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 cs chrome/locale/cs/
-locale torlauncher csb chrome/locale/csb/
-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 en chrome/locale/en/
-locale torlauncher eo chrome/locale/eo/
-locale torlauncher es chrome/locale/es/
-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 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 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 ht chrome/locale/ht/
-locale torlauncher hu chrome/locale/hu/
-locale torlauncher hy chrome/locale/hy/
-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 km chrome/locale/km/
-locale torlauncher kn chrome/locale/kn/
-locale torlauncher ko chrome/locale/ko/
-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 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 ne chrome/locale/ne/
-locale torlauncher nl chrome/locale/nl/
-locale torlauncher nn chrome/locale/nn/
-locale torlauncher nso chrome/locale/nso/
-locale torlauncher oc chrome/locale/oc/
-locale torlauncher or chrome/locale/or/
-locale torlauncher pa chrome/locale/pa/
-locale torlauncher pap chrome/locale/pap/
-locale torlauncher pl chrome/locale/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 ro chrome/locale/ro/
-locale torlauncher ru chrome/locale/ru/
-locale torlauncher sco chrome/locale/sco/
-locale torlauncher sk chrome/locale/sk/
-locale torlauncher sl chrome/locale/sl/
-locale torlauncher so chrome/locale/so/
-locale torlauncher son chrome/locale/son/
-locale torlauncher sq chrome/locale/sq/
-locale torlauncher sr chrome/locale/sr/
-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 ta chrome/locale/ta/
-locale torlauncher te chrome/locale/te/
-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 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-CN chrome/locale/zh-CN/
-locale torlauncher zh-HK chrome/locale/zh-HK/
-locale torlauncher zh-TW chrome/locale/zh-TW/
-locale torlauncher zu chrome/locale/zu/
-
-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
1
0

[tor-browser-bundle/master] Bug 11552: Back out HTTPS-Everywhere version bump.
by gk@torproject.org 18 Apr '14
by gk@torproject.org 18 Apr '14
18 Apr '14
commit ef1ac0c2de37bc8e66e078584424492c29f31e7a
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Apr 18 20:06:30 2014 +0000
Bug 11552: Back out HTTPS-Everywhere version bump.
Testing on Linux as well would be a good idea in the future...
---
gitian/versions | 3 ++-
gitian/versions.alpha | 3 ++-
gitian/versions.beta | 3 ++-
gitian/versions.nightly | 3 ++-
4 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/gitian/versions b/gitian/versions
index addcb3b..3c82a79 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -9,7 +9,8 @@ TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build1
TOR_TAG=tor-0.2.4.21
TORLAUNCHER_TAG=0.2.4.4
TORBUTTON_TAG=1.6.7.0
-HTTPSE_TAG=3.5
+# XXX: 3.5 requires python2.7, see #11556
+HTTPSE_TAG=3.4.5
NSIS_TAG=v0.1
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index 56192a8..ae1fcb8 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -10,7 +10,8 @@ TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build2
TOR_TAG=tor-0.2.5.3-alpha
TORLAUNCHER_TAG=0.2.5.3
TORBUTTON_TAG=1.6.8.1
-HTTPSE_TAG=3.5
+# XXX: 3.5 requires python2.7, see #11556
+HTTPSE_TAG=3.4.5
NSIS_TAG=v0.1
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
diff --git a/gitian/versions.beta b/gitian/versions.beta
index 95e7235..bf2030e 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -10,7 +10,8 @@ TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build2
TOR_TAG=tor-0.2.4.21
TORLAUNCHER_TAG=0.2.5.3
TORBUTTON_TAG=1.6.8.1
-HTTPSE_TAG=3.5
+# XXX: 3.5 requires python2.7, see #11556
+HTTPSE_TAG=3.4.5
NSIS_TAG=v0.1
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
diff --git a/gitian/versions.nightly b/gitian/versions.nightly
index 74455b6..f483670 100755
--- a/gitian/versions.nightly
+++ b/gitian/versions.nightly
@@ -10,7 +10,8 @@ TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1
TOR_TAG=master
TORLAUNCHER_TAG=master
TORBUTTON_TAG=master
-HTTPSE_TAG=3.5 # XXX: Master and 4.0 require python2.7
+# XXX: Master and 3.5 require python2.7, see #11556
+HTTPSE_TAG=3.4.5
NSIS_TAG=master
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
1
0

[tor-launcher/master] Bug #11482: Hide bridge settings prompt if no default bridges.
by brade@torproject.org 17 Apr '14
by brade@torproject.org 17 Apr '14
17 Apr '14
commit 4776f6c431a06867b8d2a5c6c3f35c4a7f78850e
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Thu Apr 17 10:31:40 2014 -0400
Bug #11482: Hide bridge settings prompt if no default bridges.
---
src/chrome/content/network-settings-wizard.xul | 3 ++-
src/chrome/content/network-settings.js | 4 ++++
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/chrome/content/network-settings-wizard.xul b/src/chrome/content/network-settings-wizard.xul
index a1d820e..07fcdcd 100644
--- a/src/chrome/content/network-settings-wizard.xul
+++ b/src/chrome/content/network-settings-wizard.xul
@@ -140,7 +140,8 @@
</vbox>
<separator />
<vbox>
- <label class="question">&torSettings.bridgeSettingsPrompt;</label>
+ <label id="bridgeSettingsPrompt"
+ class="question">&torSettings.bridgeSettingsPrompt;</label>
<groupbox id="bridgeSpecificSettings" />
</vbox>
</wizardpage>
diff --git a/src/chrome/content/network-settings.js b/src/chrome/content/network-settings.js
index 07526c8..98028e2 100644
--- a/src/chrome/content/network-settings.js
+++ b/src/chrome/content/network-settings.js
@@ -818,6 +818,10 @@ function initBridgeSettings()
if (!canUseDefaultBridges)
{
+ var label = document.getElementById("bridgeSettingsPrompt");
+ if (label)
+ label.setAttribute("hidden", true);
+
var radioGroup = document.getElementById("bridgeTypeRadioGroup");
if (radioGroup)
radioGroup.setAttribute("hidden", true);
1
0

[tor-launcher/master] Bug #11484: Show help button even if no default bridges.
by brade@torproject.org 17 Apr '14
by brade@torproject.org 17 Apr '14
17 Apr '14
commit c9427b6623deae7d08019f734b56d4b62990a694
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Thu Apr 17 10:06:46 2014 -0400
Bug #11484: Show help button even if no default bridges.
---
src/chrome/content/network-settings-overlay.xul | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/src/chrome/content/network-settings-overlay.xul b/src/chrome/content/network-settings-overlay.xul
index 4172af5..6422802 100644
--- a/src/chrome/content/network-settings-overlay.xul
+++ b/src/chrome/content/network-settings-overlay.xul
@@ -74,7 +74,7 @@
</groupbox>
<groupbox id="bridgeSpecificSettings">
- <hbox pack="end">
+ <hbox align="end" pack="end">
<radiogroup id="bridgeTypeRadioGroup" flex="1" style="margin: 0px"
oncommand="onBridgeTypeRadioChange()">
<radio id="bridgeRadioDefault"
@@ -91,12 +91,10 @@
</hbox>
<spacer style="height: 0.5em" />
- <hbox align="baseline" flex="1">
- <radio align="start" id="bridgeRadioCustom"
- label="&torsettings.useBridges.custom;" />
- <button align="end" dlgtype="help" oncommand="onOpenHelp()" />
- </hbox>
+ <radio align="start" id="bridgeRadioCustom"
+ label="&torsettings.useBridges.custom;" />
</radiogroup>
+ <button dlgtype="help" oncommand="onOpenHelp()" />
</hbox>
<vbox id="bridgeCustomEntry">
<label id="bridgeListLabel" style="margin-top:0px;"
1
0
commit bc2cb177a16d8e34b359175e0804b133635a0c62
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Apr 17 14:45:28 2014 +0000
Version bump.
HTTPS-Everywhere has a new stable version, 3.5. Adding that to all
version files. Additionally, updating the tor, Tor Browser and
TorLauncher tag in the alpha version file.
---
gitian/versions | 2 +-
gitian/versions.alpha | 8 ++++----
gitian/versions.beta | 2 +-
gitian/versions.nightly | 2 +-
4 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/gitian/versions b/gitian/versions
index a1e6384..addcb3b 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -9,7 +9,7 @@ TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build1
TOR_TAG=tor-0.2.4.21
TORLAUNCHER_TAG=0.2.4.4
TORBUTTON_TAG=1.6.7.0
-HTTPSE_TAG=3.4.5
+HTTPSE_TAG=3.5
NSIS_TAG=v0.1
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index 650103a..56192a8 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -6,11 +6,11 @@ VERIFY_TAGS=1
FIREFOX_VERSION=24.4.0esr
-TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build1
-TOR_TAG=tor-0.2.5.2-alpha
-TORLAUNCHER_TAG=0.2.5.1a
+TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build2
+TOR_TAG=tor-0.2.5.3-alpha
+TORLAUNCHER_TAG=0.2.5.3
TORBUTTON_TAG=1.6.8.1
-HTTPSE_TAG=3.4.5
+HTTPSE_TAG=3.5
NSIS_TAG=v0.1
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
diff --git a/gitian/versions.beta b/gitian/versions.beta
index 9d6a8f0..95e7235 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -10,7 +10,7 @@ TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build2
TOR_TAG=tor-0.2.4.21
TORLAUNCHER_TAG=0.2.5.3
TORBUTTON_TAG=1.6.8.1
-HTTPSE_TAG=3.4.5
+HTTPSE_TAG=3.5
NSIS_TAG=v0.1
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
diff --git a/gitian/versions.nightly b/gitian/versions.nightly
index 1869182..74455b6 100755
--- a/gitian/versions.nightly
+++ b/gitian/versions.nightly
@@ -10,7 +10,7 @@ TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1
TOR_TAG=master
TORLAUNCHER_TAG=master
TORBUTTON_TAG=master
-HTTPSE_TAG=3.4.5 # XXX: Master and 4.0 require python2.7
+HTTPSE_TAG=3.5 # XXX: Master and 4.0 require python2.7
NSIS_TAG=master
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
1
0

[tor-browser-bundle/master] Set the bundle version in the bundle descriptor.
by gk@torproject.org 17 Apr '14
by gk@torproject.org 17 Apr '14
17 Apr '14
commit 62ca5505e07fd86add646b97f82caf136e39b348
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Apr 17 14:06:38 2014 +0000
Set the bundle version in the bundle descriptor.
We used to set the bundle version in the browser descriptor which had
the bad side-effect that we needed to rebuild the whole Tor Browser just
in order to change the bundle version. We do that now in the bundle
descriptor instead.
---
gitian/descriptors/linux/gitian-bundle.yml | 5 +++++
gitian/descriptors/linux/gitian-firefox.yml | 6 +-----
gitian/descriptors/mac/gitian-bundle.yml | 5 +++++
gitian/descriptors/mac/gitian-firefox.yml | 4 ----
gitian/descriptors/windows/gitian-bundle.yml | 5 +++++
gitian/descriptors/windows/gitian-firefox.yml | 6 +-----
6 files changed, 17 insertions(+), 14 deletions(-)
diff --git a/gitian/descriptors/linux/gitian-bundle.yml b/gitian/descriptors/linux/gitian-bundle.yml
index fa78928..39a7747 100644
--- a/gitian/descriptors/linux/gitian-bundle.yml
+++ b/gitian/descriptors/linux/gitian-bundle.yml
@@ -41,6 +41,7 @@ files:
- "bundle.inputs"
- "versions"
- "tbb-docs.zip"
+- "torbrowser.version"
script: |
INSTDIR="$HOME/install"
source versions
@@ -118,6 +119,10 @@ script: |
#
pushd tor-browser_en-US/Browser/browser/
unzip omni.ja defaults/preferences/000-tor-browser.js
+ # Set the version of the bundle.
+ grep -v '^pref(\"torbrowser.version\",' defaults/preferences/000-tor-browser.js > defaults/preferences/000-tor-browser.js.fixed
+ cat ~/build/torbrowser.version >> defaults/preferences/000-tor-browser.js.fixed
+ mv defaults/preferences/000-tor-browser.js.fixed defaults/preferences/000-tor-browser.js
cp defaults/preferences/000-tor-browser.js ~/build/
# Set the locale of the bundle.
echo "pref(\"general.useragent.locale\", \"en-US\");" >> defaults/preferences/000-tor-browser.js
diff --git a/gitian/descriptors/linux/gitian-firefox.yml b/gitian/descriptors/linux/gitian-firefox.yml
index 282ea49..1f2cf12 100644
--- a/gitian/descriptors/linux/gitian-firefox.yml
+++ b/gitian/descriptors/linux/gitian-firefox.yml
@@ -5,7 +5,7 @@ suites:
architectures:
- "i386"
- "amd64"
-packages:
+packages:
- "faketime"
- "unzip"
- "zip"
@@ -29,7 +29,6 @@ remotes:
- "url": "https://git.torproject.org/tor-browser.git"
"dir": "tor-browser"
files:
-- "torbrowser.version"
- "re-dzip.sh"
- "dzip.sh"
- "python.tar.bz2"
@@ -73,9 +72,6 @@ script: |
fi
#
cd tor-browser
- grep -v '^pref(\"torbrowser.version\",' browser/app/profile/000-tor-browser.js > browser/app/profile/000-tor-browser.js.fixed
- cat ../torbrowser.version >> browser/app/profile/000-tor-browser.js.fixed
- mv browser/app/profile/000-tor-browser.js.fixed browser/app/profile/000-tor-browser.js
# .git and the src takes up a lot of useless space, and we need the space to build
#git archive HEAD | tar -x -C $OUTDIR/src
rm -rf .git
diff --git a/gitian/descriptors/mac/gitian-bundle.yml b/gitian/descriptors/mac/gitian-bundle.yml
index 4928acb..b7ecf3a 100644
--- a/gitian/descriptors/mac/gitian-bundle.yml
+++ b/gitian/descriptors/mac/gitian-bundle.yml
@@ -46,6 +46,7 @@ files:
- "versions"
- "tbb-docs.zip"
- "mac-tor.sh"
+- "torbrowser.version"
script: |
INSTDIR="$HOME/install"
source versions
@@ -146,6 +147,10 @@ script: |
#
pushd $TORBROWSER_NAME.app/Contents/MacOS/TorBrowser.app/Contents/MacOS/browser/
unzip omni.ja defaults/preferences/000-tor-browser.js
+ # Set the version of the bundle.
+ grep -v '^pref(\"torbrowser.version\",' defaults/preferences/000-tor-browser.js > defaults/preferences/000-tor-browser.js.fixed
+ cat ~/build/torbrowser.version >> defaults/preferences/000-tor-browser.js.fixed
+ mv defaults/preferences/000-tor-browser.js.fixed defaults/preferences/000-tor-browser.js
cp defaults/preferences/000-tor-browser.js ~/build/
# Set the locale of the bundle.
echo "pref(\"general.useragent.locale\", \"en-US\");" >> defaults/preferences/000-tor-browser.js
diff --git a/gitian/descriptors/mac/gitian-firefox.yml b/gitian/descriptors/mac/gitian-firefox.yml
index e252888..1832f55 100644
--- a/gitian/descriptors/mac/gitian-firefox.yml
+++ b/gitian/descriptors/mac/gitian-firefox.yml
@@ -17,7 +17,6 @@ remotes:
- "url": "https://git.torproject.org/tor-browser.git"
"dir": "tor-browser"
files:
-- "torbrowser.version"
- "apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb"
- "x86_64-apple-darwin10.tar.xz"
- "re-dzip.sh"
@@ -51,9 +50,6 @@ script: |
#
cd tor-browser
mv .mozconfig-mac .mozconfig
- grep -v '^pref(\"torbrowser.version\",' browser/app/profile/000-tor-browser.js > browser/app/profile/000-tor-browser.js.fixed
- cat ../torbrowser.version >> browser/app/profile/000-tor-browser.js.fixed
- mv browser/app/profile/000-tor-browser.js.fixed browser/app/profile/000-tor-browser.js
# .git and the src takes up a lot of useless space, and we need the space to build
#git archive HEAD | tar -x -C $OUTDIR/src
rm -rf .git
diff --git a/gitian/descriptors/windows/gitian-bundle.yml b/gitian/descriptors/windows/gitian-bundle.yml
index ac79d58..fddb611 100644
--- a/gitian/descriptors/windows/gitian-bundle.yml
+++ b/gitian/descriptors/windows/gitian-bundle.yml
@@ -39,6 +39,7 @@ files:
- "bundle.inputs"
- "versions"
- "tbb-docs.zip"
+- "torbrowser.version"
script: |
INSTDIR="$HOME/install"
source versions
@@ -115,6 +116,10 @@ script: |
#
pushd "Tor Browser"/Browser/browser/
unzip omni.ja defaults/preferences/000-tor-browser.js
+ # Set the version of the bundle.
+ grep -v '^pref(\"torbrowser.version\",' defaults/preferences/000-tor-browser.js > defaults/preferences/000-tor-browser.js.fixed
+ cat ~/build/torbrowser.version >> defaults/preferences/000-tor-browser.js.fixed
+ mv defaults/preferences/000-tor-browser.js.fixed defaults/preferences/000-tor-browser.js
cp defaults/preferences/000-tor-browser.js ~/build/
# Set the locale bundle.
echo "pref(\"general.useragent.locale\", \"en-US\");" >> defaults/preferences/000-tor-browser.js
diff --git a/gitian/descriptors/windows/gitian-firefox.yml b/gitian/descriptors/windows/gitian-firefox.yml
index 1c151ea..fefb677 100644
--- a/gitian/descriptors/windows/gitian-firefox.yml
+++ b/gitian/descriptors/windows/gitian-firefox.yml
@@ -4,7 +4,7 @@ suites:
- "precise"
architectures:
- "i386"
-packages:
+packages:
- "git-core"
- "unzip"
- "zip"
@@ -25,7 +25,6 @@ files:
- "mingw-w64-svn-snapshot.zip"
- "binutils.tar.bz2"
- "gcc.tar.bz2"
-- "torbrowser.version"
- "re-dzip.sh"
- "dzip.sh"
- "i686-w64-mingw32-gcc"
@@ -137,9 +136,6 @@ script: |
# Our flags don't get passed to NSS. We need to do that manually using an
# obscure one.
export DLLFLAGS="-specs=/home/ubuntu/build/msvcr100.spec"
- grep -v '^pref(\"torbrowser.version\",' browser/app/profile/000-tor-browser.js > browser/app/profile/000-tor-browser.js.fixed
- cat ../torbrowser.version >> browser/app/profile/000-tor-browser.js.fixed
- mv browser/app/profile/000-tor-browser.js.fixed browser/app/profile/000-tor-browser.js
# .git and the src takes up a lot of useless space, and we need the space to build
#git archive HEAD | tar -x -C $OUTDIR/src
rm -rf .git
1
0

[tor-browser-bundle/master] Bug 11539: Update PTs when building nightlies.
by gk@torproject.org 17 Apr '14
by gk@torproject.org 17 Apr '14
17 Apr '14
commit e47484df829eefead58ed10c8541a493c0ba6e3a
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Apr 17 12:40:53 2014 +0000
Bug 11539: Update PTs when building nightlies.
We have to update branches to build the latest and greatest Pluggable
Transport code. In order to do so we need to tell update_git() the
corresponding tag.
---
gitian/fetch-inputs.sh | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/gitian/fetch-inputs.sh b/gitian/fetch-inputs.sh
index e80713b..6b8ae99 100755
--- a/gitian/fetch-inputs.sh
+++ b/gitian/fetch-inputs.sh
@@ -297,10 +297,10 @@ https-everywhere https://git.torproject.org/https-everywhere.git $HTTPSE_TA
torbutton https://git.torproject.org/torbutton.git $TORBUTTON_TAG
tor-launcher https://git.torproject.org/tor-launcher.git $TORLAUNCHER_TAG
tor-browser https://git.torproject.org/tor-browser.git $TORBROWSER_TAG
-pyptlib https://git.torproject.org/pluggable-transports/pyptlib.git
-obfsproxy https://git.torproject.org/pluggable-transports/obfsproxy.git
-flashproxy https://git.torproject.org/flashproxy.git
-fteproxy https://github.com/kpdyer/fteproxy.git
+pyptlib https://git.torproject.org/pluggable-transports/pyptlib.git $PYPTLIB_TAG
+obfsproxy https://git.torproject.org/pluggable-transports/obfsproxy.git $OBFSPROXY_TAG
+flashproxy https://git.torproject.org/flashproxy.git $FLASHPROXY_TAG
+fteproxy https://github.com/kpdyer/fteproxy.git $FTEPROXY_TAG
libdmg-hfsplus https://github.com/vasi/libdmg-hfsplus.git $LIBDMG_TAG
EOF
1
0

17 Apr '14
commit 612972b1eb3ac54754467c66ab146baa800f5eb8
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Apr 17 11:14:09 2014 +0000
Bug 11535: Hardcoding obfsproxy commit.
Until #11535 is getting fixed we are hardcoding commit
b58fd9e1ef264796b6bddbde5db117472fb674a0 to avoid a broken obfsproxy in
nightly builds.
---
gitian/versions.nightly | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/gitian/versions.nightly b/gitian/versions.nightly
index c54df5a..79930f7 100755
--- a/gitian/versions.nightly
+++ b/gitian/versions.nightly
@@ -16,7 +16,8 @@ ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
MINGW_REV=6184
PYPTLIB_TAG=master
-OBFSPROXY_TAG=master
+# Hardcoding this commit until #11535 is fixed
+OBFSPROXY_TAG=b58fd9e1ef264796b6bddbde5db117472fb674a0
FLASHPROXY_TAG=master
FTEPROXY_TAG=master
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
1
0
commit e1623db26e9d3ef223379021d6b083a905b8e0d8
Merge: 612972b 3e83236
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Apr 17 12:01:25 2014 +0200
Fix typo in commit message.
Reminder: parse your commit message carefully before committing. :(
1
0

[tor-browser-bundle/master] Bug 11539: pin latest version of fteproxy across all versions* files
by gk@torproject.org 17 Apr '14
by gk@torproject.org 17 Apr '14
17 Apr '14
commit a6208dc8dcfe383a25a7d53b77675c90028774f5
Author: Kevin P. Dyer <kpdyer(a)gmail.com>
Date: Wed Apr 16 18:53:49 2014 -0700
Bug 11539: pin latest version of fteproxy across all versions* files
---
gitian/versions | 2 +-
gitian/versions.alpha | 2 +-
gitian/versions.beta | 2 +-
gitian/versions.nightly | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/gitian/versions b/gitian/versions
index d381fed..a1e6384 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -17,7 +17,7 @@ MINGW_REV=6184
PYPTLIB_TAG=pyptlib-0.0.5
OBFSPROXY_TAG=obfsproxy-0.2.4
FLASHPROXY_TAG=1.6
-FTEPROXY_TAG=0.2.12
+FTEPROXY_TAG=0.2.13
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
GITIAN_TAG=tor-browser-builder-3.x-5
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index 59edba7..650103a 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -18,7 +18,7 @@ MINGW_REV=6184
PYPTLIB_TAG=pyptlib-0.0.5
OBFSPROXY_TAG=obfsproxy-0.2.4
FLASHPROXY_TAG=1.6
-FTEPROXY_TAG=0.2.12
+FTEPROXY_TAG=0.2.13
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
GITIAN_TAG=tor-browser-builder-3.x-5
diff --git a/gitian/versions.beta b/gitian/versions.beta
index 9b3f80d..9d6a8f0 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -18,7 +18,7 @@ MINGW_REV=6184
PYPTLIB_TAG=pyptlib-0.0.5
OBFSPROXY_TAG=obfsproxy-0.2.4
FLASHPROXY_TAG=1.6
-FTEPROXY_TAG=0.2.12
+FTEPROXY_TAG=0.2.13
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
GITIAN_TAG=tor-browser-builder-3.x-5
diff --git a/gitian/versions.nightly b/gitian/versions.nightly
index c54df5a..c2d2997 100755
--- a/gitian/versions.nightly
+++ b/gitian/versions.nightly
@@ -18,7 +18,7 @@ MINGW_REV=6184
PYPTLIB_TAG=master
OBFSPROXY_TAG=master
FLASHPROXY_TAG=master
-FTEPROXY_TAG=master
+FTEPROXY_TAG=0.2.13
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
GITIAN_TAG=tor-browser-builder-3.x-5
1
0

[tor-browser-bundle/master] Merge remote-tracking branch 'kpdyer/master'
by gk@torproject.org 17 Apr '14
by gk@torproject.org 17 Apr '14
17 Apr '14
commit 7df52e4294bcb0fff50c34bffe7aca38a9b88b61
Merge: e1623db a6208dc
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Apr 17 12:29:21 2014 +0000
Merge remote-tracking branch 'kpdyer/master'
gitian/versions | 2 +-
gitian/versions.alpha | 2 +-
gitian/versions.beta | 2 +-
gitian/versions.nightly | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --cc gitian/versions.nightly
index 79930f7,c2d2997..1869182
--- a/gitian/versions.nightly
+++ b/gitian/versions.nightly
@@@ -16,10 -16,9 +16,10 @@@ ZLIB_TAG=v1.2.
LIBEVENT_TAG=release-2.0.21-stable
MINGW_REV=6184
PYPTLIB_TAG=master
-OBFSPROXY_TAG=master
+# Hardcoding this commit until #11535 is fixed
+OBFSPROXY_TAG=b58fd9e1ef264796b6bddbde5db117472fb674a0
FLASHPROXY_TAG=master
- FTEPROXY_TAG=master
+ FTEPROXY_TAG=0.2.13
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
GITIAN_TAG=tor-browser-builder-3.x-5
1
0

17 Apr '14
commit 3e83236fc84a0d14f01a46db8550cbf4621e58c7
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Apr 17 11:14:09 2014 +0000
Bug 11535: Hardcoding obfsproxy commit.
Until #11535 is getting fixed we are hardcoding commit
b58fd9e1ef264796b6bddbde5db117472fb674a0 do avoid a broken obfsproxy in
nightly builds.
---
gitian/versions.nightly | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/gitian/versions.nightly b/gitian/versions.nightly
index c54df5a..79930f7 100755
--- a/gitian/versions.nightly
+++ b/gitian/versions.nightly
@@ -16,7 +16,8 @@ ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
MINGW_REV=6184
PYPTLIB_TAG=master
-OBFSPROXY_TAG=master
+# Hardcoding this commit until #11535 is fixed
+OBFSPROXY_TAG=b58fd9e1ef264796b6bddbde5db117472fb674a0
FLASHPROXY_TAG=master
FTEPROXY_TAG=master
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
1
0

[tor-browser-bundle/master] Bug 10356: Refactoring the bundle descriptors.
by gk@torproject.org 15 Apr '14
by gk@torproject.org 15 Apr '14
15 Apr '14
commit eef7f8761aba04722f67a098b8a7aba72a5917cb
Author: Georg Koppen <gk(a)torproject.org>
Date: Tue Apr 15 09:06:07 2014 +0000
Bug 10356: Refactoring the bundle descriptors.
---
gitian/build-helpers/dzip.sh | 2 +-
gitian/descriptors/linux/gitian-bundle.yml | 54 ++++++++--------------
gitian/descriptors/mac/gitian-bundle.yml | 64 +++++++++++---------------
gitian/descriptors/windows/gitian-bundle.yml | 43 ++++++-----------
4 files changed, 62 insertions(+), 101 deletions(-)
diff --git a/gitian/build-helpers/dzip.sh b/gitian/build-helpers/dzip.sh
index 2e38c89..2f7dc54 100755
--- a/gitian/build-helpers/dzip.sh
+++ b/gitian/build-helpers/dzip.sh
@@ -8,4 +8,4 @@ shift
find $@ -executable -exec chmod 700 {} \;
find $@ ! -executable -exec chmod 600 {} \;
-find $@ | sort | zip $ZIPOPTS -X -@ $ZIPFILE
+find $@ | sort | zip $ZIPOPTS -X -@ "$ZIPFILE"
diff --git a/gitian/descriptors/linux/gitian-bundle.yml b/gitian/descriptors/linux/gitian-bundle.yml
index 3fa79cc..fa78928 100644
--- a/gitian/descriptors/linux/gitian-bundle.yml
+++ b/gitian/descriptors/linux/gitian-bundle.yml
@@ -5,11 +5,10 @@ suites:
architectures:
- "i386"
- "amd64"
-packages:
+packages:
- "git-core"
- "unzip"
- "zip"
-- "mingw-w64"
- "faketime"
- "python"
- "rnv"
@@ -52,14 +51,12 @@ script: |
export LC_ALL=C
export TORBROWSER_VERSION=`cat bare-version`
umask 0022
- #
+ #
mkdir -p $OUTDIR/
- mkdir -p tor-browser/Data/Browser/Caches
mkdir -p tor-browser/Data/Browser/profile.default/extensions/https-everywhere(a)eff.org
+ mkdir -p tor-browser/Data/Browser/Caches
mkdir -p tor-browser/Docs/sources/
#
- cp *.xpi tor-browser/Data/Browser/profile.default/extensions/
- #
cd tor-launcher
make clean
make package
@@ -85,19 +82,19 @@ script: |
# makexpi.sh. See https://trac.torproject.org/projects/tor/ticket/10066
rm -f .git/refs/heads/master
./makexpi.sh
- cp ./pkg/*.xpi ../tor-browser/Data/Browser/profile.default/extensions/https-everywhere(a)eff.org.xpi
+ cp pkg/*.xpi ../tor-browser/Data/Browser/profile.default/extensions/https-everywhere(a)eff.org.xpi
cd ..
#
- mv tor-browser/Data/Browser/profile.default/extensions/noscript(a)noscript.net.xpi tor-browser/Data/Browser/profile.default/extensions/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi
- cd tor-browser/Data/Browser/profile.default/extensions/https-everywhere(a)eff.org/
+ cp *.xpi tor-browser/Data/Browser/profile.default/extensions/
+ cd tor-browser/Data/Browser/profile.default/extensions
+ mv noscript(a)noscript.net.xpi {73a6fe31-595d-460b-a920-fcc0f8843232}.xpi
+ cd https-everywhere(a)eff.org/
unzip ../https-everywhere(a)eff.org.xpi
rm ../https-everywhere(a)eff.org.xpi
cd ~/build/
#
unzip relativelink-src.zip
- cd RelativeLink
- cp RelativeLink.sh ../tor-browser/start-tor-browser
- cd ..
+ cp RelativeLink/RelativeLink.sh tor-browser/start-tor-browser
#
cd tor-browser
unzip ~/build/tor-browser-linux$GBUILD_BITS-gbuilt.zip
@@ -115,22 +112,18 @@ script: |
#
# Copy reproducibility info
cp versions tor-browser/Docs/sources/
- cp bundle.inputs tor-browser/Docs/sources/bundle.inputs
+ cp bundle.inputs tor-browser/Docs/sources/
#
cp -a tor-browser tor-browser_en-US
- # FF24 puts the prefs in a different jar:
- if [ -f tor-browser_en-US/Browser/browser/omni.ja ]; then
- pushd tor-browser_en-US/Browser/browser/
- else
- pushd tor-browser_en-US/Browser/
- fi
+ #
+ pushd tor-browser_en-US/Browser/browser/
unzip omni.ja defaults/preferences/000-tor-browser.js
+ cp defaults/preferences/000-tor-browser.js ~/build/
+ # Set the locale of the bundle.
echo "pref(\"general.useragent.locale\", \"en-US\");" >> defaults/preferences/000-tor-browser.js
- zip -Xd omni.ja defaults/preferences/000-tor-browser.js
zip -Xm omni.ja defaults/preferences/000-tor-browser.js
popd
- #7z a -sfx tor-browser.exe tor-browser_en-US
- #mv tor-browser.exe $OUTDIR/tor-browser-linux${GBUILD_BITS}_en-US.7z-selfextract
+ #
~/build/dtar.sh $OUTDIR/tor-browser-linux${GBUILD_BITS}-${TORBROWSER_VERSION}_en-US.tar.xz tor-browser_en-US
rm -rf tor-browser_en-US
#
@@ -143,23 +136,16 @@ script: |
cp $xpi ../tor-browser_$LANG/Data/Browser/profile.default/extensions/langpack-$LANG(a)firefox.mozilla.org.xpi
cd ..
- # FF24 puts the prefs in a different jar:
- if [ -f tor-browser_$LANG/Browser/browser/omni.ja ]; then
- pushd tor-browser_$LANG/Browser/browser/
- else
- pushd tor-browser_$LANG/Browser/
- fi
-
- unzip omni.ja defaults/preferences/000-tor-browser.js
+ pushd tor-browser_$LANG/Browser/browser/
+ mkdir -p defaults/preferences
+ cp ~/build/000-tor-browser.js defaults/preferences/
+ # Set the locale of the bundle.
echo "pref(\"general.useragent.locale\", \"$LANG\");" >> defaults/preferences/000-tor-browser.js
- zip -Xd omni.ja defaults/preferences/000-tor-browser.js
zip -Xm omni.ja defaults/preferences/000-tor-browser.js
popd
- #7z a -sfx tor-browser.exe tor-browser_$LANG
- #mv tor-browser.exe $OUTDIR/tor-browser-linux${GBUILD_BITS}_$LANG.7z-selfextract
~/build/dtar.sh $OUTDIR/tor-browser-linux${GBUILD_BITS}-${TORBROWSER_VERSION}_$LANG.tar.xz tor-browser_$LANG
rm -rf tor-browser_$LANG
cd linux-langpacks
- done
+ done
diff --git a/gitian/descriptors/mac/gitian-bundle.yml b/gitian/descriptors/mac/gitian-bundle.yml
index 4325a1b..4928acb 100644
--- a/gitian/descriptors/mac/gitian-bundle.yml
+++ b/gitian/descriptors/mac/gitian-bundle.yml
@@ -4,12 +4,10 @@ suites:
- "precise"
architectures:
- "i386"
-packages:
+packages:
- "git-core"
- "unzip"
- "zip"
-- "mingw-w64"
-- "nsis"
- "faketime"
- "python"
- "hfsprogs"
@@ -65,13 +63,13 @@ script: |
export TORBROWSER_APP="TorBrowser"
export TORBROWSER_NAME="TorBrowserBundle"
fi
- #
+ #
mkdir -p $OUTDIR/
- mkdir -p dmg
mkdir -p $TORBROWSER_NAME.app/Data/Browser/profile.default/extensions/https-everywhere(a)eff.org
mkdir -p $TORBROWSER_NAME.app/Data/Browser/Caches
- mkdir -p $TORBROWSER_NAME.app/Contents/MacOS/TorBrowser.app/Contents/MacOS/
mkdir -p $TORBROWSER_NAME.app/Docs/sources
+ mkdir -p $TORBROWSER_NAME.app/Contents/MacOS/TorBrowser.app/Contents/MacOS/
+ mkdir -p dmg
#
cd tor-launcher
make clean
@@ -80,9 +78,7 @@ script: |
mkdir pkg/tmp
cd pkg/tmp
unzip ../*.xpi
- rm ../*.xpi
- ~/build/dzip.sh ../tor-launcher(a)torproject.org.xpi .
- mv ../tor-launcher(a)torproject.org.xpi ../../../$TORBROWSER_NAME.app/Data/Browser/profile.default/extensions/tor-launcher(a)torproject.org.xpi
+ ~/build/dzip.sh ../../../$TORBROWSER_NAME.app/Data/Browser/profile.default/extensions/tor-launcher(a)torproject.org.xpi .
cd ../../../
#
cd torbutton
@@ -92,9 +88,7 @@ script: |
mkdir pkg/tmp
cd pkg/tmp
unzip ../*.xpi
- rm ../*.xpi
- ~/build/dzip.sh ../torbutton(a)torproject.org.xpi .
- mv ../torbutton(a)torproject.org.xpi ../../../$TORBROWSER_NAME.app/Data/Browser/profile.default/extensions/torbutton(a)torproject.org.xpi
+ ~/build/dzip.sh ../../../$TORBROWSER_NAME.app/Data/Browser/profile.default/extensions/torbutton(a)torproject.org.xpi .
cd ../../../
#
cd https-everywhere
@@ -102,11 +96,11 @@ script: |
# makexpi.sh. See https://trac.torproject.org/projects/tor/ticket/10066
rm -f .git/refs/heads/master
./makexpi.sh
- cp ./pkg/*.xpi ../$TORBROWSER_NAME.app/Data/Browser/profile.default/extensions/https-everywhere(a)eff.org.xpi
+ cp pkg/*.xpi ../$TORBROWSER_NAME.app/Data/Browser/profile.default/extensions/https-everywhere(a)eff.org.xpi
cd ..
#
cp *.xpi ./$TORBROWSER_NAME.app/Data/Browser/profile.default/extensions/
- cd ./$TORBROWSER_NAME.app/Data/Browser/profile.default/extensions/
+ cd $TORBROWSER_NAME.app/Data/Browser/profile.default/extensions/
mv noscript(a)noscript.net.xpi {73a6fe31-595d-460b-a920-fcc0f8843232}.xpi
cd https-everywhere(a)eff.org
unzip ../https-everywhere(a)eff.org.xpi
@@ -114,13 +108,11 @@ script: |
cd ~/build/
#
unzip relativelink-src.zip
- cd RelativeLink
- cp RelativeLinkOSX.sh ../$TORBROWSER_NAME.app/Contents/MacOS/TorBrowserBundle
- cd ..
+ cp RelativeLink/RelativeLinkOSX.sh $TORBROWSER_NAME.app/Contents/MacOS/TorBrowserBundle
#
- unzip ~/build/tor-mac$GBUILD_BITS-gbuilt.zip
+ unzip tor-mac$GBUILD_BITS-gbuilt.zip
if [ $BUILD_PT_BUNDLES ]; then
- unzip ~/build/pluggable-transports-mac$GBUILD_BITS-gbuilt.zip
+ unzip pluggable-transports-mac$GBUILD_BITS-gbuilt.zip
fi
cd $TORBROWSER_NAME.app
unzip ~/build/mac-skeleton.zip
@@ -139,7 +131,7 @@ script: |
#
# Copy reproducibility info
cp versions $TORBROWSER_NAME.app/Docs/sources/
- cp bundle.inputs $TORBROWSER_NAME.app/Docs/sources/bundle.inputs
+ cp bundle.inputs $TORBROWSER_NAME.app/Docs/sources/
#
# Set up DMG skeleton
cd libdmg-hfsplus
@@ -147,31 +139,31 @@ script: |
cmake CMakeLists.txt
cd dmg
make
- cd ../../
- cd dmg
- tar -Jxvf ~/build/dmg-applications.tar.xz # FIXME: Desktop or Application as dest?
+ cd ../../dmg
+ # FIXME: Desktop or Application as dest?
+ tar -Jxvf ~/build/dmg-applications.tar.xz
cd ..
#
- # FF24 puts the prefs in the browser jar:
pushd $TORBROWSER_NAME.app/Contents/MacOS/TorBrowser.app/Contents/MacOS/browser/
unzip omni.ja defaults/preferences/000-tor-browser.js
cp defaults/preferences/000-tor-browser.js ~/build/
+ # Set the locale of the bundle.
echo "pref(\"general.useragent.locale\", \"en-US\");" >> defaults/preferences/000-tor-browser.js
zip -Xm omni.ja defaults/preferences/000-tor-browser.js
popd
#
if [ ${TORBROWSER_VERSION::3} == "3.5" ]; then
- cp -a ~/build/$TORBROWSER_NAME.app ~/build/${TORBROWSER_NAME}_en-US.app
+ cp -a ~/build/$TORBROWSER_NAME.app ~/build/${TORBROWSER_NAME}_en-US.app
~/build/dzip.sh $OUTDIR/TorBrowserBundle-${TORBROWSER_VERSION}-osx${GBUILD_BITS}_en-US.zip ${TORBROWSER_NAME}_en-US.app
- rm -rf ~/build/${TORBROWSER_NAME}_en-US.app
+ rm -rf ~/build/${TORBROWSER_NAME}_en-US.app
else
- # XXX: We need to insert these placeholders because otherwise mkisofs won't
- # include these otherwise empty dirs:
- touch ~/build/$TORBROWSER_NAME.app/Data/Browser/Caches/placeholder.txt
- touch ~/build/$TORBROWSER_NAME.app/Contents/MacOS/TorBrowser.app/Contents/MacOS/browser/defaults/preferences/placeholder.txt
- cp -a ~/build/$TORBROWSER_NAME.app ~/build/dmg/$TORBROWSER_APP.app
+ # XXX: We need to insert these placeholders because otherwise mkisofs won't
+ # include these otherwise empty dirs:
+ touch ~/build/$TORBROWSER_NAME.app/Data/Browser/Caches/placeholder.txt
+ touch ~/build/$TORBROWSER_NAME.app/Contents/MacOS/TorBrowser.app/Contents/MacOS/browser/defaults/preferences/placeholder.txt
+ cp -a ~/build/$TORBROWSER_NAME.app ~/build/dmg/$TORBROWSER_APP.app
~/build/ddmg.sh $OUTDIR/TorBrowser-${TORBROWSER_VERSION}-osx${GBUILD_BITS}_en-US.dmg ~/build/dmg
- rm -rf ~/build/dmg/$TORBROWSER_APP.app
+ rm -rf ~/build/dmg/$TORBROWSER_APP.app
fi
mv $TORBROWSER_NAME.app ${TORBROWSER_NAME}_plain.app
#
@@ -189,11 +181,10 @@ script: |
cp $xpi ~/build/dmg/$DEST.app/Data/Browser/profile.default/extensions/langpack-$LANG(a)firefox.mozilla.org.xpi
cd ..
- # FF24 puts the prefs in the browser jar:
pushd ~/build/dmg/$DEST.app/Contents/MacOS/TorBrowser.app/Contents/MacOS/browser/
-
mkdir -p defaults/preferences
- cp ~/build/000-tor-browser.js defaults/preferences/000-tor-browser.js
+ cp ~/build/000-tor-browser.js defaults/preferences/
+ # Set the locale of the bundle.
echo "pref(\"general.useragent.locale\", \"$LANG\");" >> defaults/preferences/000-tor-browser.js
zip -Xm omni.ja defaults/preferences/000-tor-browser.js
popd
@@ -208,5 +199,4 @@ script: |
rm -rf ~/build/dmg/$DEST.app
fi
cd mac-langpacks
- done
- cd ..
+ done
diff --git a/gitian/descriptors/windows/gitian-bundle.yml b/gitian/descriptors/windows/gitian-bundle.yml
index c8b29c9..ac79d58 100644
--- a/gitian/descriptors/windows/gitian-bundle.yml
+++ b/gitian/descriptors/windows/gitian-bundle.yml
@@ -4,10 +4,11 @@ suites:
- "precise"
architectures:
- "i386"
-packages:
+packages:
- "git-core"
- "unzip"
- "zip"
+# This is needed for compiling the StartTorBrowserBundle.exe.
- "mingw-w64"
- "nsis"
- "faketime"
@@ -48,7 +49,7 @@ script: |
export TORBROWSER_VERSION=`cat bare-version`
export LC_ALL=C
umask 0022
- #
+ #
mkdir -p $OUTDIR/
mkdir -p tbb-windows-installer/"Tor Browser"/Data/Browser/profile.default/extensions/https-everywhere(a)eff.org
mkdir -p tbb-windows-installer/"Tor Browser"/Data/Browser/Caches
@@ -61,9 +62,7 @@ script: |
mkdir pkg/tmp
cd pkg/tmp
unzip ../*.xpi
- rm ../*.xpi
- ~/build/dzip.sh ../tor-launcher(a)torproject.org.xpi .
- mv ../tor-launcher(a)torproject.org.xpi ../../../tbb-windows-installer/"Tor Browser"/Data/Browser/profile.default/extensions/tor-launcher(a)torproject.org.xpi
+ ~/build/dzip.sh ../../../tbb-windows-installer/"Tor Browser"/Data/Browser/profile.default/extensions/tor-launcher(a)torproject.org.xpi .
cd ../../../
#
cd torbutton
@@ -72,9 +71,7 @@ script: |
# FIXME: Switch to re-dzip.sh here?
cd pkg/tmp
unzip ../*.xpi
- rm ../*.xpi
- ~/build/dzip.sh ../torbutton(a)torproject.org.xpi .
- mv ../torbutton(a)torproject.org.xpi ../../../tbb-windows-installer/"Tor Browser"/Data/Browser/profile.default/extensions/torbutton(a)torproject.org.xpi
+ ~/build/dzip.sh ../../../tbb-windows-installer/"Tor Browser"/Data/Browser/profile.default/extensions/torbutton(a)torproject.org.xpi .
cd ../../../
#
cd https-everywhere
@@ -85,8 +82,8 @@ script: |
cp ./pkg/*.xpi ../tbb-windows-installer/"Tor Browser"/Data/Browser/profile.default/extensions/https-everywhere(a)eff.org.xpi
cd ..
#
- cp *.xpi ./tbb-windows-installer/"Tor Browser"/Data/Browser/profile.default/extensions
- cd ./tbb-windows-installer/"Tor Browser"/Data/Browser/profile.default/extensions
+ cp *.xpi tbb-windows-installer/"Tor Browser"/Data/Browser/profile.default/extensions
+ cd tbb-windows-installer/"Tor Browser"/Data/Browser/profile.default/extensions
mv noscript(a)noscript.net.xpi {73a6fe31-595d-460b-a920-fcc0f8843232}.xpi
cd https-everywhere(a)eff.org
unzip ../https-everywhere(a)eff.org.xpi
@@ -100,8 +97,7 @@ script: |
cp StartTorBrowserBundle.exe ../tbb-windows-installer/"Tor Browser"/"Start Tor Browser.exe"
cd ..
#
- cd tbb-windows-installer
- cd "Tor Browser"
+ cd tbb-windows-installer/"Tor Browser"
unzip ~/build/tor-browser-win32-gbuilt.zip
unzip ~/build/tor-win32-gbuilt.zip
unzip ~/build/windows-skeleton.zip
@@ -117,14 +113,10 @@ script: |
cp ../versions "Tor Browser"/Docs/sources/
cp ../bundle.inputs "Tor Browser"/Docs/sources/
#
- # FF24 puts the prefs in a different jar:
- if [ -f "Tor Browser"/Browser/browser/omni.ja ]; then
- pushd "Tor Browser"/Browser/browser/
- else
- pushd "Tor Browser"/Browser/
- fi
+ pushd "Tor Browser"/Browser/browser/
unzip omni.ja defaults/preferences/000-tor-browser.js
cp defaults/preferences/000-tor-browser.js ~/build/
+ # Set the locale bundle.
echo "pref(\"general.useragent.locale\", \"en-US\");" >> defaults/preferences/000-tor-browser.js
zip -Xm omni.ja defaults/preferences/000-tor-browser.js
popd
@@ -139,22 +131,15 @@ script: |
cp $xpi ../"Tor Browser"/Data/Browser/profile.default/extensions/langpack-$LANG(a)firefox.mozilla.org.xpi
cd ..
- # FF24 puts the prefs in a different jar:
- if [ -f "Tor Browser"/Browser/browser/omni.ja ]; then
- pushd "Tor Browser"/Browser/browser/
- else
- pushd "Tor Browser"/Browser/
- fi
-
+ pushd "Tor Browser"/Browser/browser/
mkdir -p defaults/preferences
- cp ~/build/000-tor-browser.js defaults/preferences/000-tor-browser.js
+ cp ~/build/000-tor-browser.js defaults/preferences/
echo "pref(\"general.useragent.locale\", \"$LANG\");" >> defaults/preferences/000-tor-browser.js
zip -Xm omni.ja defaults/preferences/000-tor-browser.js
popd
makensis torbrowser.nsi
mv torbrowser-install.exe $OUTDIR/torbrowser-install-${TORBROWSER_VERSION}_$LANG.exe
- rm ./"Tor Browser"/Data/Browser/profile.default/extensions/langpack-$LANG(a)firefox.mozilla.org.xpi
+ rm "Tor Browser"/Data/Browser/profile.default/extensions/langpack-$LANG(a)firefox.mozilla.org.xpi
cd win32-langpacks
- done
- cd ..
+ done
1
0

[tor-browser-bundle/master] Fixed typo in mac pluggable transport descriptor.
by gk@torproject.org 14 Apr '14
by gk@torproject.org 14 Apr '14
14 Apr '14
commit ff85a3b091dbb5956d8e1dbe03dc9d4297ddb3d1
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon Apr 14 15:43:25 2014 +0000
Fixed typo in mac pluggable transport descriptor.
---
gitian/descriptors/mac/gitian-pluggable-transports.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gitian/descriptors/mac/gitian-pluggable-transports.yml b/gitian/descriptors/mac/gitian-pluggable-transports.yml
index f98a20a..920b231 100644
--- a/gitian/descriptors/mac/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/mac/gitian-pluggable-transports.yml
@@ -107,7 +107,7 @@ script: |
tar xzf pyyaml.tar.gz
cd PyYAML-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
- $PYTHON setup.py build --build-lib build
+ python setup.py build --build-lib build
cp -a build/yaml $PTDIR/
cd ..
#
1
0

14 Apr '14
commit c088c17ba7ba93f3fcbcfc75e0c081aed2d98976
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon Apr 14 15:08:31 2014 +0000
Bug 11478: Add missing PyYAML.
Enhanced asn's patch to fix broken obfsproxy > 0.2.4.
---
gitian/descriptors/linux/gitian-pluggable-transports.yml | 8 ++++++++
gitian/descriptors/mac/gitian-pluggable-transports.yml | 8 ++++++++
gitian/descriptors/windows/gitian-pluggable-transports.yml | 7 +++++++
gitian/fetch-inputs.sh | 11 ++++++++++-
gitian/versions | 4 ++++
gitian/versions.alpha | 4 ++++
gitian/versions.beta | 4 ++++
gitian/versions.nightly | 4 ++++
8 files changed, 49 insertions(+), 1 deletion(-)
diff --git a/gitian/descriptors/linux/gitian-pluggable-transports.yml b/gitian/descriptors/linux/gitian-pluggable-transports.yml
index fbea855..4423b50 100644
--- a/gitian/descriptors/linux/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/linux/gitian-pluggable-transports.yml
@@ -30,6 +30,7 @@ files:
- "gmp.tar.bz2"
- "pycrypto.tar.gz"
- "argparse.tar.gz"
+- "pyyaml.tar.gz"
- "zope.interface.zip"
- "twisted.tar.bz2"
- "m2crypto.tar.gz"
@@ -91,6 +92,13 @@ script: |
cp -a build/zope $PTDIR/
cd ..
#
+ tar xzf pyyaml.tar.gz
+ cd PyYAML-*
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
+ $PYTHON setup.py build --build-lib build
+ cp -a build/yaml $PTDIR/
+ cd ..
+ #
tar xjf twisted.tar.bz2
cd Twisted-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
diff --git a/gitian/descriptors/mac/gitian-pluggable-transports.yml b/gitian/descriptors/mac/gitian-pluggable-transports.yml
index f6c2e61..f98a20a 100644
--- a/gitian/descriptors/mac/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/mac/gitian-pluggable-transports.yml
@@ -30,6 +30,7 @@ files:
- "gmp.tar.bz2"
- "pycrypto.tar.gz"
- "argparse.tar.gz"
+- "pyyaml.tar.gz"
- "zope.interface.zip"
- "twisted.tar.bz2"
- "m2crypto.tar.gz"
@@ -103,6 +104,13 @@ script: |
cp -a build/argparse.py $PTDIR/
cd ..
#
+ tar xzf pyyaml.tar.gz
+ cd PyYAML-*
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
+ $PYTHON setup.py build --build-lib build
+ cp -a build/yaml $PTDIR/
+ cd ..
+ #
unzip zope.interface.zip
cd zope.interface-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
diff --git a/gitian/descriptors/windows/gitian-pluggable-transports.yml b/gitian/descriptors/windows/gitian-pluggable-transports.yml
index d2a3005..3624d04 100644
--- a/gitian/descriptors/windows/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/windows/gitian-pluggable-transports.yml
@@ -32,6 +32,7 @@ files:
- "setuptools.tar.gz"
- "pycrypto.tar.gz"
- "argparse.tar.gz"
+- "pyyaml.tar.gz"
- "zope.interface.zip"
- "twisted.tar.bz2"
- "m2crypto.tar.gz"
@@ -163,6 +164,12 @@ script: |
LD_PRELOAD= $INSTPYTHON setup.py install
cd ..
#
+ tar xzf pyyaml.tar.gz
+ cd PyYAML-*
+ find -type f | xargs touch --date="$REFERENCE_DATETIME"
+ LD_PRELOAD= $INSTPYTHON setup.py install
+ cd ..
+ #
unzip zope.interface.zip
cd zope.interface-*
find -type f | xargs touch --date="$REFERENCE_DATETIME"
diff --git a/gitian/fetch-inputs.sh b/gitian/fetch-inputs.sh
index 0bc217e..e80713b 100755
--- a/gitian/fetch-inputs.sh
+++ b/gitian/fetch-inputs.sh
@@ -5,6 +5,7 @@
MIRROR_URL=https://people.torproject.org/~mikeperry/mirrors/sources/
MIRROR_URL_DCF=https://people.torproject.org/~dcf/mirrors/sources/
+MIRROR_URL_ASN=https://people.torproject.org/~asn/mirrors/sources/
set -e
set -u
umask 0022
@@ -167,6 +168,13 @@ do
get "${!PACKAGE}" "${MIRROR_URL_DCF}${!PACKAGE}"
done
+for i in PYYAML
+do
+ PACKAGE="${i}_PACKAGE"
+ URL="${MIRROR_URL_ASN}${!PACKAGE}"
+ get "${!PACKAGE}" "${MIRROR_URL_ASN}${!PACKAGE}"
+done
+
for i in ZOPEINTERFACE TWISTED PY2EXE SETUPTOOLS
do
URL="${i}_URL"
@@ -217,7 +225,7 @@ fi
# Verify packages with weak or no signatures via direct sha256 check
# (OpenSSL is signed with MD5, and OSXSDK is not signed at all)
-for i in OSXSDK TOOLCHAIN4 TOOLCHAIN4_OLD NOSCRIPT MINGW MSVCR100 PYCRYPTO ARGPARSE ZOPEINTERFACE TWISTED M2CRYPTO SETUPTOOLS OPENSSL GMP
+for i in OSXSDK TOOLCHAIN4 TOOLCHAIN4_OLD NOSCRIPT MINGW MSVCR100 PYCRYPTO ARGPARSE PYYAML ZOPEINTERFACE TWISTED M2CRYPTO SETUPTOOLS OPENSSL GMP
do
PACKAGE="${i}_PACKAGE"
HASH="${i}_HASH"
@@ -260,6 +268,7 @@ ln -sf "$PYTHON_PACKAGE" python.tar.bz2
ln -sf "$PYTHON_MSI_PACKAGE" python.msi
ln -sf "$PYCRYPTO_PACKAGE" pycrypto.tar.gz
ln -sf "$ARGPARSE_PACKAGE" argparse.tar.gz
+ln -sf "$PYYAML_PACKAGE" pyyaml.tar.gz
ln -sf "$ZOPEINTERFACE_PACKAGE" zope.interface.zip
ln -sf "$TWISTED_PACKAGE" twisted.tar.bz2
ln -sf "$M2CRYPTO_PACKAGE" m2crypto.tar.gz
diff --git a/gitian/versions b/gitian/versions
index 673cf32..d381fed 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -30,6 +30,7 @@ GCC_VER=4.6.3
PYTHON_VER=2.7.5
PYCRYPTO_VER=2.6.1
ARGPARSE_VER=1.2.1
+PYYAML_VER=3.11
ZOPEINTERFACE_VER=4.0.5
TWISTED_VER=13.1.0
M2CRYPTO_VER=0.21.1
@@ -51,6 +52,7 @@ PYTHON_PACKAGE=Python-${PYTHON_VER}.tar.bz2
PYTHON_MSI_PACKAGE=python-${PYTHON_VER}.msi
PYCRYPTO_PACKAGE=pycrypto-${PYCRYPTO_VER}.tar.gz
ARGPARSE_PACKAGE=argparse-${ARGPARSE_VER}.tar.gz
+PYYAML_PACKAGE=PyYAML-${PYYAML_VER}.tar.gz
ZOPEINTERFACE_PACKAGE=zope.interface-${ZOPEINTERFACE_VER}.zip
TWISTED_PACKAGE=Twisted-${TWISTED_VER}.tar.bz2
M2CRYPTO_PACKAGE=M2Crypto-${M2CRYPTO_VER}.tar.gz
@@ -68,6 +70,7 @@ MINGW_HASH=a5b03d0448a309341be4cf34c6ad3016d04c89952dca5243254b4d6c738b164f
MSVCR100_HASH=1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067
PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
ARGPARSE_HASH=ddaf4b0a618335a32b6664d4ae038a1de8fbada3b25033f9021510ed2b3941a4
+PYYAML_HASH=c36c938a872e5ff494938b33b14aaa156cb439ec67548fcab3535bb78b0846e8
ZOPEINTERFACE_HASH=1a7c84716bbd9981915b64a81d8a3f076a5934a8c8df4224655469b3564940cc
TWISTED_HASH=110e957dd8fc4c6eaba8abe4f0477e60b2873e3cf1c260325863fd2ef69341c6
M2CRYPTO_HASH=25b94498505c2d800ee465db0cc1aff097b1615adc3ac042a1c85ceca264fc0a
@@ -87,6 +90,7 @@ PYTHON_URL=http://www.python.org/ftp/python/${PYTHON_VER}/${PYTHON_PACKAGE}
PYTHON_MSI_URL=http://www.python.org/ftp/python/${PYTHON_VER}/${PYTHON_MSI_…
PYCRYPTO_URL=https://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/${PYCRYPTO_PAC…
ARGPARSE_URL=https://argparse.googlecode.com/files/${ARGPARSE_PACKAGE}
+PYYAML_URL=https://pypi.python.org/packages/source/P/PyYAML/${PYYAML_PACKAGE}
ZOPEINTERFACE_URL=https://pypi.python.org/packages/source/z/zope.interface/…
TWISTED_URL=https://pypi.python.org/packages/source/T/Twisted/${TWISTED_PAC…
# TWISTED_URL=https://twistedmatrix.com/Releases/Twisted/$(echo ${TWISTED_VER} | awk -F. '{print $1"."$2}')/${TWISTED_PACKAGE}
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index f53fbd8..59edba7 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -31,6 +31,7 @@ GCC_VER=4.6.3
PYTHON_VER=2.7.5
PYCRYPTO_VER=2.6.1
ARGPARSE_VER=1.2.1
+PYYAML_VER=3.11
ZOPEINTERFACE_VER=4.0.5
TWISTED_VER=13.1.0
M2CRYPTO_VER=0.21.1
@@ -52,6 +53,7 @@ PYTHON_PACKAGE=Python-${PYTHON_VER}.tar.bz2
PYTHON_MSI_PACKAGE=python-${PYTHON_VER}.msi
PYCRYPTO_PACKAGE=pycrypto-${PYCRYPTO_VER}.tar.gz
ARGPARSE_PACKAGE=argparse-${ARGPARSE_VER}.tar.gz
+PYYAML_PACKAGE=PyYAML-${PYYAML_VER}.tar.gz
ZOPEINTERFACE_PACKAGE=zope.interface-${ZOPEINTERFACE_VER}.zip
TWISTED_PACKAGE=Twisted-${TWISTED_VER}.tar.bz2
M2CRYPTO_PACKAGE=M2Crypto-${M2CRYPTO_VER}.tar.gz
@@ -69,6 +71,7 @@ MINGW_HASH=a5b03d0448a309341be4cf34c6ad3016d04c89952dca5243254b4d6c738b164f
MSVCR100_HASH=1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067
PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
ARGPARSE_HASH=ddaf4b0a618335a32b6664d4ae038a1de8fbada3b25033f9021510ed2b3941a4
+PYYAML_HASH=c36c938a872e5ff494938b33b14aaa156cb439ec67548fcab3535bb78b0846e8
ZOPEINTERFACE_HASH=1a7c84716bbd9981915b64a81d8a3f076a5934a8c8df4224655469b3564940cc
TWISTED_HASH=110e957dd8fc4c6eaba8abe4f0477e60b2873e3cf1c260325863fd2ef69341c6
M2CRYPTO_HASH=25b94498505c2d800ee465db0cc1aff097b1615adc3ac042a1c85ceca264fc0a
@@ -88,6 +91,7 @@ PYTHON_URL=http://www.python.org/ftp/python/${PYTHON_VER}/${PYTHON_PACKAGE}
PYTHON_MSI_URL=http://www.python.org/ftp/python/${PYTHON_VER}/${PYTHON_MSI_…
PYCRYPTO_URL=https://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/${PYCRYPTO_PAC…
ARGPARSE_URL=https://argparse.googlecode.com/files/${ARGPARSE_PACKAGE}
+PYYAML_URL=https://pypi.python.org/packages/source/P/PyYAML/${PYYAML_PACKAGE}
ZOPEINTERFACE_URL=https://pypi.python.org/packages/source/z/zope.interface/…
TWISTED_URL=https://pypi.python.org/packages/source/T/Twisted/${TWISTED_PAC…
# TWISTED_URL=https://twistedmatrix.com/Releases/Twisted/$(echo ${TWISTED_VER} | awk -F. '{print $1"."$2}')/${TWISTED_PACKAGE}
diff --git a/gitian/versions.beta b/gitian/versions.beta
index adb9818..9b3f80d 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -31,6 +31,7 @@ GCC_VER=4.6.3
PYTHON_VER=2.7.5
PYCRYPTO_VER=2.6.1
ARGPARSE_VER=1.2.1
+PYYAML_VER=3.11
ZOPEINTERFACE_VER=4.0.5
TWISTED_VER=13.1.0
M2CRYPTO_VER=0.21.1
@@ -52,6 +53,7 @@ PYTHON_PACKAGE=Python-${PYTHON_VER}.tar.bz2
PYTHON_MSI_PACKAGE=python-${PYTHON_VER}.msi
PYCRYPTO_PACKAGE=pycrypto-${PYCRYPTO_VER}.tar.gz
ARGPARSE_PACKAGE=argparse-${ARGPARSE_VER}.tar.gz
+PYYAML_PACKAGE=PyYAML-${PYYAML_VER}.tar.gz
ZOPEINTERFACE_PACKAGE=zope.interface-${ZOPEINTERFACE_VER}.zip
TWISTED_PACKAGE=Twisted-${TWISTED_VER}.tar.bz2
M2CRYPTO_PACKAGE=M2Crypto-${M2CRYPTO_VER}.tar.gz
@@ -69,6 +71,7 @@ MINGW_HASH=a5b03d0448a309341be4cf34c6ad3016d04c89952dca5243254b4d6c738b164f
MSVCR100_HASH=1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067
PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
ARGPARSE_HASH=ddaf4b0a618335a32b6664d4ae038a1de8fbada3b25033f9021510ed2b3941a4
+PYYAML_HASH=c36c938a872e5ff494938b33b14aaa156cb439ec67548fcab3535bb78b0846e8
ZOPEINTERFACE_HASH=1a7c84716bbd9981915b64a81d8a3f076a5934a8c8df4224655469b3564940cc
TWISTED_HASH=110e957dd8fc4c6eaba8abe4f0477e60b2873e3cf1c260325863fd2ef69341c6
M2CRYPTO_HASH=25b94498505c2d800ee465db0cc1aff097b1615adc3ac042a1c85ceca264fc0a
@@ -88,6 +91,7 @@ PYTHON_URL=http://www.python.org/ftp/python/${PYTHON_VER}/${PYTHON_PACKAGE}
PYTHON_MSI_URL=http://www.python.org/ftp/python/${PYTHON_VER}/${PYTHON_MSI_…
PYCRYPTO_URL=https://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/${PYCRYPTO_PAC…
ARGPARSE_URL=https://argparse.googlecode.com/files/${ARGPARSE_PACKAGE}
+PYYAML_URL=https://pypi.python.org/packages/source/P/PyYAML/${PYYAML_PACKAGE}
ZOPEINTERFACE_URL=https://pypi.python.org/packages/source/z/zope.interface/…
TWISTED_URL=https://pypi.python.org/packages/source/T/Twisted/${TWISTED_PAC…
# TWISTED_URL=https://twistedmatrix.com/Releases/Twisted/$(echo ${TWISTED_VER} | awk -F. '{print $1"."$2}')/${TWISTED_PACKAGE}
diff --git a/gitian/versions.nightly b/gitian/versions.nightly
index 911898d..c54df5a 100755
--- a/gitian/versions.nightly
+++ b/gitian/versions.nightly
@@ -31,6 +31,7 @@ GCC_VER=4.6.3
PYTHON_VER=2.7.5
PYCRYPTO_VER=2.6.1
ARGPARSE_VER=1.2.1
+PYYAML_VER=3.11
ZOPEINTERFACE_VER=4.0.5
TWISTED_VER=13.1.0
M2CRYPTO_VER=0.21.1
@@ -52,6 +53,7 @@ PYTHON_PACKAGE=Python-${PYTHON_VER}.tar.bz2
PYTHON_MSI_PACKAGE=python-${PYTHON_VER}.msi
PYCRYPTO_PACKAGE=pycrypto-${PYCRYPTO_VER}.tar.gz
ARGPARSE_PACKAGE=argparse-${ARGPARSE_VER}.tar.gz
+PYYAML_PACKAGE=PyYAML-${PYYAML_VER}.tar.gz
ZOPEINTERFACE_PACKAGE=zope.interface-${ZOPEINTERFACE_VER}.zip
TWISTED_PACKAGE=Twisted-${TWISTED_VER}.tar.bz2
M2CRYPTO_PACKAGE=M2Crypto-${M2CRYPTO_VER}.tar.gz
@@ -69,6 +71,7 @@ MINGW_HASH=a5b03d0448a309341be4cf34c6ad3016d04c89952dca5243254b4d6c738b164f
MSVCR100_HASH=1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067
PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
ARGPARSE_HASH=ddaf4b0a618335a32b6664d4ae038a1de8fbada3b25033f9021510ed2b3941a4
+PYYAML_HASH=c36c938a872e5ff494938b33b14aaa156cb439ec67548fcab3535bb78b0846e8
ZOPEINTERFACE_HASH=1a7c84716bbd9981915b64a81d8a3f076a5934a8c8df4224655469b3564940cc
TWISTED_HASH=110e957dd8fc4c6eaba8abe4f0477e60b2873e3cf1c260325863fd2ef69341c6
M2CRYPTO_HASH=25b94498505c2d800ee465db0cc1aff097b1615adc3ac042a1c85ceca264fc0a
@@ -88,6 +91,7 @@ PYTHON_URL=http://www.python.org/ftp/python/${PYTHON_VER}/${PYTHON_PACKAGE}
PYTHON_MSI_URL=http://www.python.org/ftp/python/${PYTHON_VER}/${PYTHON_MSI_…
PYCRYPTO_URL=https://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/${PYCRYPTO_PAC…
ARGPARSE_URL=https://argparse.googlecode.com/files/${ARGPARSE_PACKAGE}
+PYYAML_URL=https://pypi.python.org/packages/source/P/PyYAML/${PYYAML_PACKAGE}
ZOPEINTERFACE_URL=https://pypi.python.org/packages/source/z/zope.interface/…
TWISTED_URL=https://pypi.python.org/packages/source/T/Twisted/${TWISTED_PAC…
# TWISTED_URL=https://twistedmatrix.com/Releases/Twisted/$(echo ${TWISTED_VER} | awk -F. '{print $1"."$2}')/${TWISTED_PACKAGE}
1
0
commit 0308442986f218538440f4ded2ac666a51560544
Author: Linus Nordberg <linus(a)nordberg.se>
Date: Tue Apr 8 03:33:28 2014 +0200
Do copy *.dmg too.
---
tools/continuous-builds/build-tbb.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/continuous-builds/build-tbb.sh b/tools/continuous-builds/build-tbb.sh
index 3ae1c92..071903a 100755
--- a/tools/continuous-builds/build-tbb.sh
+++ b/tools/continuous-builds/build-tbb.sh
@@ -45,7 +45,7 @@ if [ $status = done ]; then
gpg -a --clearsign --local-user $PGPKEYID sha256sums.txt || exit 2
cd ..
D=$(basename $NEWDESTDIR)
- tar cf - $D/sha256sums* $D/*.tar.xz $D/*.zip $D/*.exe | ssh -i $PUBLISH_SSH_KEY $PUBLISH_HOST | tee -a $logfile
+ tar cf - $D/sha256sums* $D/*.tar.xz $D/*.zip $D/*.exe $D/*.dmg | ssh -i $PUBLISH_SSH_KEY $PUBLISH_HOST | tee -a $logfile
else
echo "$0: giving up after $n tries" | tee -a $logfile
fi
1
0
commit 70d8786976abd9f39b6e19851724e74fc681cd92
Merge: 8031a8d 75bc254
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon Apr 14 09:24:43 2014 +0000
Merge ln5's branch 'tools2'
tools/continuous-builds/build-tbb.sh | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
1
0

[tor-browser-bundle/master] Don't hardcode target 'build-nightly' for subsequent builds.
by gk@torproject.org 14 Apr '14
by gk@torproject.org 14 Apr '14
14 Apr '14
commit 75bc25446840a3a0d051c13b3e2ae7b1c5fd10ee
Author: Linus Nordberg <linus(a)nordberg.se>
Date: Thu Apr 10 13:09:32 2014 +0200
Don't hardcode target 'build-nightly' for subsequent builds.
---
tools/continuous-builds/build-tbb.sh | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/tools/continuous-builds/build-tbb.sh b/tools/continuous-builds/build-tbb.sh
index 071903a..5f4b4ad 100755
--- a/tools/continuous-builds/build-tbb.sh
+++ b/tools/continuous-builds/build-tbb.sh
@@ -3,7 +3,8 @@
# build-tbb.sh [TARGET [PUBLISH-HOST [PUBLISH-SSH-KEY [BUILDDIR [DESTDIR [N]]]]]]
#
# Build TARGET in BUILDDIR, which will end up in DESTDIR
-# Try doing it N times.
+# Try building $TARGET one time and if that fails, try "build-$TARGET"
+# up to N-1 times.
# Upload result to PUBLISH-HOST using SSH key PUBLISH-KEY.
# TODO:
@@ -32,7 +33,7 @@ while [ $status != done ]; do
killall qemu-system-i386 qemu-system-x86_64
make $TARGET > build-$(date -u +%s).log && status=done
printf "%s: Tried building $TARGET %d times. Status: %s.\n" $0 $n $status | tee -a $logfile
- TARGET=build-nightly
+ TARGET=build-$TARGET
[ $n -ge $N ] && break
done
1
0

14 Apr '14
commit 8031a8db85105a7a5ad7f04a7b86774eaa2747b6
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon Apr 14 08:34:01 2014 +0000
Bug 11481: Fix Nightly build failure.
Apply fix for bug 9665 only to bundles that ship tor 0.2.4.x as it
does not apply cleanly to tor 0.2.5.x.
---
gitian/descriptors/linux/gitian-tor.yml | 2 +-
gitian/descriptors/mac/gitian-tor.yml | 2 +-
gitian/descriptors/windows/gitian-tor.yml | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/gitian/descriptors/linux/gitian-tor.yml b/gitian/descriptors/linux/gitian-tor.yml
index 15ba469..28b7d13 100644
--- a/gitian/descriptors/linux/gitian-tor.yml
+++ b/gitian/descriptors/linux/gitian-tor.yml
@@ -97,9 +97,9 @@ script: |
git am ~/build/bug5018.patch
git am ~/build/bug11069.patch
git am ~/build/bug11156.patch
+ git am ~/build/bug9665.patch
fi
git am ~/build/bug11200.patch
- git am ~/build/bug9665.patch
fi
mkdir -p $OUTDIR/src
#git archive HEAD | tar -x -C $OUTDIR/src
diff --git a/gitian/descriptors/mac/gitian-tor.yml b/gitian/descriptors/mac/gitian-tor.yml
index 5ea3b4e..3304f76 100644
--- a/gitian/descriptors/mac/gitian-tor.yml
+++ b/gitian/descriptors/mac/gitian-tor.yml
@@ -108,9 +108,9 @@ script: |
git am ~/build/bug5018.patch
git am ~/build/bug11069.patch
git am ~/build/bug11156.patch
+ git am ~/build/bug9665.patch
fi
git am ~/build/bug11200.patch
- git am ~/build/bug9665.patch
fi
mkdir -p $OUTDIR/src
git archive HEAD | tar -x -C $OUTDIR/src
diff --git a/gitian/descriptors/windows/gitian-tor.yml b/gitian/descriptors/windows/gitian-tor.yml
index 6369e7f..ce4ef63 100644
--- a/gitian/descriptors/windows/gitian-tor.yml
+++ b/gitian/descriptors/windows/gitian-tor.yml
@@ -104,9 +104,9 @@ script: |
git am ~/build/bug5018.patch
git am ~/build/bug11069.patch
git am ~/build/bug11156.patch
+ git am ~/build/bug9665.patch
fi
git am ~/build/bug11200.patch
- git am ~/build/bug9665.patch
fi
mkdir -p $OUTDIR/src
git archive HEAD | tar -x -C $OUTDIR/src
1
0

[tor-browser-bundle/master] Bump Torbutton version for Turkish homepage fix.
by mikeperry@torproject.org 11 Apr '14
by mikeperry@torproject.org 11 Apr '14
11 Apr '14
commit 362bca4ed06cd0b12301492e2df8f69e9f6258e6
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Thu Apr 10 22:43:08 2014 -0700
Bump Torbutton version for Turkish homepage fix.
---
Bundle-Data/Docs/ChangeLog.txt | 2 +-
gitian/versions.alpha | 2 +-
gitian/versions.beta | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/Bundle-Data/Docs/ChangeLog.txt b/Bundle-Data/Docs/ChangeLog.txt
index 194ce0f..4b72c7f 100644
--- a/Bundle-Data/Docs/ChangeLog.txt
+++ b/Bundle-Data/Docs/ChangeLog.txt
@@ -5,7 +5,7 @@ Tor Browser Bundle 3.6-beta-2 -- Apr 8 2014
* Bug 9387 testing: Disable JS JIT, type inference, asmjs, and ion.
* Update fte transport to 0.2.12
* Update NoScript to 2.6.8.19
- * Update Torbutton to 1.6.8.0
+ * Update Torbutton to 1.6.8.1
* Bug 11242: Fix improper "update needed" message after in-place upgrade.
* Bug 10398: Ease translation of about:tor page elements
* Update Tor Launcher to 0.2.5.3
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index 2bdbb2d..f53fbd8 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -9,7 +9,7 @@ FIREFOX_VERSION=24.4.0esr
TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build1
TOR_TAG=tor-0.2.5.2-alpha
TORLAUNCHER_TAG=0.2.5.1a
-TORBUTTON_TAG=1.6.7.0
+TORBUTTON_TAG=1.6.8.1
HTTPSE_TAG=3.4.5
NSIS_TAG=v0.1
ZLIB_TAG=v1.2.8
diff --git a/gitian/versions.beta b/gitian/versions.beta
index ca59070..adb9818 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -9,7 +9,7 @@ FIREFOX_VERSION=24.4.0esr
TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build2
TOR_TAG=tor-0.2.4.21
TORLAUNCHER_TAG=0.2.5.3
-TORBUTTON_TAG=1.6.8.0
+TORBUTTON_TAG=1.6.8.1
HTTPSE_TAG=3.4.5
NSIS_TAG=v0.1
ZLIB_TAG=v1.2.8
1
0

[torbutton/master] Dear Turkish Translators: Don't translate the homepage URL, yo.
by mikeperry@torproject.org 11 Apr '14
by mikeperry@torproject.org 11 Apr '14
11 Apr '14
commit 5393b528462d265b87972bc1279d024b0efb9eb8
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Thu Apr 10 22:35:39 2014 -0700
Dear Turkish Translators: Don't translate the homepage URL, yo.
(Or the search engine names, but we'll deal with that later).
I fixed this in transifex too, but don't want to wait for transifex to get
pulled again.
---
src/chrome/locale/tr/browser.properties | 2 +-
src/install.rdf | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/chrome/locale/tr/browser.properties b/src/chrome/locale/tr/browser.properties
index 55550a3..c30bc36 100644
--- a/src/chrome/locale/tr/browser.properties
+++ b/src/chrome/locale/tr/browser.properties
@@ -1,5 +1,5 @@
# Default home page
-browser.startup.homepage=hakkında:tor
+browser.startup.homepage=about:tor
# Spell checker dictionary
spellchecker.dictionary=en_US
diff --git a/src/install.rdf b/src/install.rdf
index 370cad8..87db08f 100644
--- a/src/install.rdf
+++ b/src/install.rdf
@@ -6,7 +6,7 @@
<em:name>Torbutton</em:name>
<em:creator>Mike Perry</em:creator>
<em:id>torbutton(a)torproject.org</em:id>
- <em:version>1.6.8.0</em:version>
+ <em:version>1.6.8.1</em:version>
<em:homepageURL>https://www.torproject.org/projects/torbrowser.html.en</em:homepageURL>
<em:optionsURL>chrome://torbutton/content/preferences.xul</em:optionsURL>
<em:iconURL>chrome://torbutton/skin/tor.png</em:iconURL>
1
0

[tor-browser-bundle/master] Document JS option changes in changelog.
by mikeperry@torproject.org 10 Apr '14
by mikeperry@torproject.org 10 Apr '14
10 Apr '14
commit 47dba349261163d41bcd0102f1e712fa2fe43f35
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Thu Apr 10 09:49:43 2014 -0700
Document JS option changes in changelog.
---
Bundle-Data/Docs/ChangeLog.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/Bundle-Data/Docs/ChangeLog.txt b/Bundle-Data/Docs/ChangeLog.txt
index 9b66b5e..194ce0f 100644
--- a/Bundle-Data/Docs/ChangeLog.txt
+++ b/Bundle-Data/Docs/ChangeLog.txt
@@ -2,6 +2,7 @@ Tor Browser Bundle 3.6-beta-2 -- Apr 8 2014
* All Platforms
* Update OpenSSL to 1.0.1g
* Bug 9010: Add Turkish language support.
+ * Bug 9387 testing: Disable JS JIT, type inference, asmjs, and ion.
* Update fte transport to 0.2.12
* Update NoScript to 2.6.8.19
* Update Torbutton to 1.6.8.0
1
0

[tor-browser-bundle/master] Update to bump fteproxy to 0.2.12: a simplified build process and fixes for Windows/Linux
by mikeperry@torproject.org 10 Apr '14
by mikeperry@torproject.org 10 Apr '14
10 Apr '14
commit 53a8b3a994be27762c98bc3fa58f38a46532babc
Author: Kevin P. Dyer <kpdyer(a)gmail.com>
Date: Sun Apr 6 17:53:46 2014 -0700
Update to bump fteproxy to 0.2.12: a simplified build process and fixes for Windows/Linux
---
.../linux/gitian-pluggable-transports.yml | 3 ++-
.../windows/gitian-pluggable-transports.yml | 23 ++++++++++----------
gitian/versions | 2 +-
gitian/versions.alpha | 2 +-
gitian/versions.beta | 2 +-
5 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/gitian/descriptors/linux/gitian-pluggable-transports.yml b/gitian/descriptors/linux/gitian-pluggable-transports.yml
index 6619a1c..fbea855 100644
--- a/gitian/descriptors/linux/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/linux/gitian-pluggable-transports.yml
@@ -133,8 +133,9 @@ script: |
cd ..
#
cd fteproxy
+ ln -s $INSTDIR/gmp thirdparty/gmp
find -type f | xargs touch --date="$REFERENCE_DATETIME"
- CFLAGS="-L$INSTDIR/Tor -I$INSTDIR/gmp/include" CXXFLAGS="-L$INSTDIR/Tor -I$INSTDIR/gmp/include" make
+ make
cp -a bin/fteproxy $PTDIR/
cp -ra fte $PTDIR/
mkdir -p $INSTDIR/Docs/fteproxy
diff --git a/gitian/descriptors/windows/gitian-pluggable-transports.yml b/gitian/descriptors/windows/gitian-pluggable-transports.yml
index 9b0e8ec..d2a3005 100644
--- a/gitian/descriptors/windows/gitian-pluggable-transports.yml
+++ b/gitian/descriptors/windows/gitian-pluggable-transports.yml
@@ -97,7 +97,6 @@ script: |
make
make install
cp -an $INSTDIR/gmp/bin/*dll* $INSTDIR/Tor
- cp -an $INSTDIR/gmp/lib/*dll* $INSTDIR/Tor
cd ..
#
#
@@ -119,6 +118,7 @@ script: |
# http://wiki.winehq.org/msiexec
# /qn disables user interface; /i installs.
LD_PRELOAD= msiexec /qn /i python.msi TARGETDIR=$INSTDIR/python
+ sed -i 's/self.dll_libraries = get_msvcr()/pass#self.dll_libraries = get_msvcr()/g' $INSTDIR/python/Lib/distutils/cygwinccompiler.py
INSTPYTHON="wine $INSTDIR/python/python.exe"
#
7z x py2exe.exe
@@ -226,21 +226,20 @@ script: |
cd ..
#
cd fteproxy
- cp $INSTDIR/gmp/bin/*dll* .
- cp $INSTDIR/gmp/lib/*dll* .
ln -s $INSTDIR/gmp thirdparty/gmp
+ cp -a $INSTDIR/gmp/bin/libgmp-*.dll .
find -type f | xargs touch --date="$REFERENCE_DATETIME"
- make win32
- make thirdparty/re2/obj/libre2.a
- LD_PRELOAD= $INSTPYTHON setup.py build_ext -c mingw32 --inplace
- LD_PRELOAD= $INSTPYTHON setup.py py2exe
+ WINDOWS_BUILD=1 CROSS_COMPILE=1 make thirdparty/re2/obj/libre2.a
+ LD_PRELOAD= $INSTPYTHON setup_tbb.py build_ext -c mingw32
+ LD_PRELOAD= $INSTPYTHON setup_tbb.py py2exe
py2exe_zip_timestomp dist/fteproxy.zip
- mkdir -p $PTDIR/fte
- mkdir -p $PTDIR/fte/tests
cp -an dist/{*.pyd,*.exe,*.zip} $PTDIR/
- cp -an fte/VERSION $PTDIR/fte
- cp -ran fte/defs $PTDIR/fte
- cp -ran fte/tests/dfas $PTDIR/fte/tests
+ mkdir -p $PTDIR/fte
+ cp -a fte/VERSION $PTDIR/fte
+ mkdir -p $PTDIR/fte/defs
+ cp -a fte/defs/*.json $PTDIR/fte/defs
+ mkdir -p $PTDIR/fte/tests/dfas
+ cp -a fte/tests/dfas/{*.dfa,*.regex} $PTDIR/fte/tests/dfas
mkdir -p $INSTDIR/Docs/fteproxy
cp -an {COPYING,README.md} $INSTDIR/Docs/fteproxy
cd ..
diff --git a/gitian/versions b/gitian/versions
index b49c276..673cf32 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -17,7 +17,7 @@ MINGW_REV=6184
PYPTLIB_TAG=pyptlib-0.0.5
OBFSPROXY_TAG=obfsproxy-0.2.4
FLASHPROXY_TAG=1.6
-FTEPROXY_TAG=0.2.6
+FTEPROXY_TAG=0.2.12
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
GITIAN_TAG=tor-browser-builder-3.x-5
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index 498bcb6..5447d76 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -18,7 +18,7 @@ MINGW_REV=6184
PYPTLIB_TAG=pyptlib-0.0.5
OBFSPROXY_TAG=obfsproxy-0.2.6
FLASHPROXY_TAG=1.6
-FTEPROXY_TAG=0.2.6
+FTEPROXY_TAG=0.2.12
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
GITIAN_TAG=tor-browser-builder-3.x-5
diff --git a/gitian/versions.beta b/gitian/versions.beta
index 2d9c3af..8c8433d 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -18,7 +18,7 @@ MINGW_REV=6184
PYPTLIB_TAG=pyptlib-0.0.5
OBFSPROXY_TAG=obfsproxy-0.2.6
FLASHPROXY_TAG=1.6
-FTEPROXY_TAG=0.2.6
+FTEPROXY_TAG=0.2.12
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
GITIAN_TAG=tor-browser-builder-3.x-5
1
0

10 Apr '14
commit c133d234c81d82b2ec94c6afd178897f88f6abb7
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Mon Apr 7 20:05:30 2014 -0700
Bump versions for 3.6beta2.
---
Bundle-Data/Docs/ChangeLog.txt | 21 +++++++++++++++++++++
gitian/versions | 4 ++--
gitian/versions.alpha | 6 +++---
gitian/versions.beta | 14 +++++++-------
gitian/versions.nightly | 4 ++--
5 files changed, 35 insertions(+), 14 deletions(-)
diff --git a/Bundle-Data/Docs/ChangeLog.txt b/Bundle-Data/Docs/ChangeLog.txt
index 3f12ac9..42c764c 100644
--- a/Bundle-Data/Docs/ChangeLog.txt
+++ b/Bundle-Data/Docs/ChangeLog.txt
@@ -1,3 +1,24 @@
+Tor Browser Bundle 3.6-beta-2 -- Apr 8 2014
+ * All Platforms
+ * Update OpenSSL to 1.0.1g
+ * Bug 9010: Add Turkish language support.
+ * Update obfs3 transport to 0.2.8
+ * Update fte transport to 0.2.12
+ * Update NoScript to 2.6.8.19
+ * Update Torbutton to 1.6.8.0
+ * Bug 11242: Fix improper "update needed" message after in-place upgrade.
+ * Bug 10398: Ease translation of about:tor page elements
+ * Update Tor Launcher to 0.2.5.2
+ * Bug 9665: Localize Tor's unreachable bridges bootstrap error
+ * Backport Pending Tor Patches:
+ * Bug 9665: Report a bootstrap error if all bridges are unreachable
+ * Bug 11200: Prevent spurious error message prior to enabling network.
+ * Linux:
+ * Bug 11190: Switch linux PT build process to python2
+ * Bug 10383: Enable NIST P224 and P256 accel support for 64bit builds.
+ * Windows:
+ * Bug 11286: Fix fte transport launch error
+
Tor Browser Bundle 3.5.4 -- Apr 7 2014
* All Platforms
* Update OpenSSL to 1.0.1g
diff --git a/gitian/versions b/gitian/versions
index 570656d..b49c276 100755
--- a/gitian/versions
+++ b/gitian/versions
@@ -39,7 +39,7 @@ SETUPTOOLS_VER=1.4
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
GMP_PACKAGE=gmp-${GMP_VER}.tar.bz2
-NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.17-fx+sm+fn.xpi
+NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.19-fn+sm+fx.xpi
TOOLCHAIN4_PACKAGE=x86_64-apple-darwin10.tar.xz
TOOLCHAIN4_OLD_PACKAGE=multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz
OSXSDK_PACKAGE=apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
@@ -63,7 +63,7 @@ GMP_HASH=752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160
OSXSDK_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
TOOLCHAIN4_HASH=7b71bfe02820409b994c5c33a7eab81a81c72550f5da85ff7af70da3da244645
TOOLCHAIN4_OLD_HASH=65c1b2d302358a6b95a26c6828a66908a199276193bb0b268f2dcc1a997731e9
-NOSCRIPT_HASH=8d3246153054c92f850ea8a85b19a2e493a17979751087e4c7bf11f4056282f1
+NOSCRIPT_HASH=6cf5387e3501923a22673887151c76187e1cd14a63b5d0b5d774a26db21ed69a
MINGW_HASH=a5b03d0448a309341be4cf34c6ad3016d04c89952dca5243254b4d6c738b164f
MSVCR100_HASH=1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067
PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index baee44a..498bcb6 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -16,7 +16,7 @@ ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
MINGW_REV=6184
PYPTLIB_TAG=pyptlib-0.0.5
-OBFSPROXY_TAG=obfsproxy-0.2.4
+OBFSPROXY_TAG=obfsproxy-0.2.6
FLASHPROXY_TAG=1.6
FTEPROXY_TAG=0.2.6
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
@@ -40,7 +40,7 @@ SETUPTOOLS_VER=1.4
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
GMP_PACKAGE=gmp-${GMP_VER}.tar.bz2
-NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.17-fx+sm+fn.xpi
+NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.19-fn+sm+fx.xpi
TOOLCHAIN4_PACKAGE=x86_64-apple-darwin10.tar.xz
TOOLCHAIN4_OLD_PACKAGE=multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz
OSXSDK_PACKAGE=apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
@@ -64,7 +64,7 @@ GMP_HASH=752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160
OSXSDK_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
TOOLCHAIN4_HASH=7b71bfe02820409b994c5c33a7eab81a81c72550f5da85ff7af70da3da244645
TOOLCHAIN4_OLD_HASH=65c1b2d302358a6b95a26c6828a66908a199276193bb0b268f2dcc1a997731e9
-NOSCRIPT_HASH=8d3246153054c92f850ea8a85b19a2e493a17979751087e4c7bf11f4056282f1
+NOSCRIPT_HASH=6cf5387e3501923a22673887151c76187e1cd14a63b5d0b5d774a26db21ed69a
MINGW_HASH=a5b03d0448a309341be4cf34c6ad3016d04c89952dca5243254b4d6c738b164f
MSVCR100_HASH=1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067
PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
diff --git a/gitian/versions.beta b/gitian/versions.beta
index 53060ca..2d9c3af 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -1,4 +1,4 @@
-TORBROWSER_VERSION=3.6-beta-1
+TORBROWSER_VERSION=3.6-beta-2
BUNDLE_LOCALES="ar de es-ES fa fr it ko nl pl pt-PT ru tr vi zh-CN"
BUILD_PT_BUNDLES=1
@@ -6,17 +6,17 @@ VERIFY_TAGS=1
FIREFOX_VERSION=24.4.0esr
-TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build1
+TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build2
TOR_TAG=tor-0.2.4.21
-TORLAUNCHER_TAG=0.2.5.1a
-TORBUTTON_TAG=1.6.7.0
+TORLAUNCHER_TAG=0.2.5.2
+TORBUTTON_TAG=1.6.8.0
HTTPSE_TAG=3.4.5
NSIS_TAG=v0.1
ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
MINGW_REV=6184
PYPTLIB_TAG=pyptlib-0.0.5
-OBFSPROXY_TAG=obfsproxy-0.2.4
+OBFSPROXY_TAG=obfsproxy-0.2.6
FLASHPROXY_TAG=1.6
FTEPROXY_TAG=0.2.6
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
@@ -40,7 +40,7 @@ SETUPTOOLS_VER=1.4
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
GMP_PACKAGE=gmp-${GMP_VER}.tar.bz2
-NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.17-fx+sm+fn.xpi
+NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.19-fn+sm+fx.xpi
TOOLCHAIN4_PACKAGE=x86_64-apple-darwin10.tar.xz
TOOLCHAIN4_OLD_PACKAGE=multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz
OSXSDK_PACKAGE=apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
@@ -64,7 +64,7 @@ GMP_HASH=752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160
OSXSDK_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
TOOLCHAIN4_HASH=7b71bfe02820409b994c5c33a7eab81a81c72550f5da85ff7af70da3da244645
TOOLCHAIN4_OLD_HASH=65c1b2d302358a6b95a26c6828a66908a199276193bb0b268f2dcc1a997731e9
-NOSCRIPT_HASH=8d3246153054c92f850ea8a85b19a2e493a17979751087e4c7bf11f4056282f1
+NOSCRIPT_HASH=6cf5387e3501923a22673887151c76187e1cd14a63b5d0b5d774a26db21ed69a
MINGW_HASH=a5b03d0448a309341be4cf34c6ad3016d04c89952dca5243254b4d6c738b164f
MSVCR100_HASH=1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067
PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
diff --git a/gitian/versions.nightly b/gitian/versions.nightly
index f3f0dca..911898d 100755
--- a/gitian/versions.nightly
+++ b/gitian/versions.nightly
@@ -40,7 +40,7 @@ SETUPTOOLS_VER=1.4
## File names for the source packages
OPENSSL_PACKAGE=openssl-${OPENSSL_VER}.tar.gz
GMP_PACKAGE=gmp-${GMP_VER}.tar.bz2
-NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.17-fx+sm+fn.xpi
+NOSCRIPT_PACKAGE=noscript_security_suite-2.6.8.19-fn+sm+fx.xpi
TOOLCHAIN4_PACKAGE=x86_64-apple-darwin10.tar.xz
TOOLCHAIN4_OLD_PACKAGE=multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz
OSXSDK_PACKAGE=apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb
@@ -64,7 +64,7 @@ GMP_HASH=752079520b4690531171d0f4532e40f08600215feefede70b24fabdc6f1ab160
OSXSDK_HASH=6602d8d5ddb371fbc02e2a5967d9bd0cd7358d46f9417753c8234b923f2ea6fc
TOOLCHAIN4_HASH=7b71bfe02820409b994c5c33a7eab81a81c72550f5da85ff7af70da3da244645
TOOLCHAIN4_OLD_HASH=65c1b2d302358a6b95a26c6828a66908a199276193bb0b268f2dcc1a997731e9
-NOSCRIPT_HASH=8d3246153054c92f850ea8a85b19a2e493a17979751087e4c7bf11f4056282f1
+NOSCRIPT_HASH=6cf5387e3501923a22673887151c76187e1cd14a63b5d0b5d774a26db21ed69a
MINGW_HASH=a5b03d0448a309341be4cf34c6ad3016d04c89952dca5243254b4d6c738b164f
MSVCR100_HASH=1221a09484964a6f38af5e34ee292b9afefccb3dc6e55435fd3aaf7c235d9067
PYCRYPTO_HASH=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
1
0

10 Apr '14
commit 751c60a211bfea3156f34d63f47a10eabb18f2d8
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Wed Apr 9 15:19:21 2014 -0700
Fix changelog for obfsproxy3.
---
Bundle-Data/Docs/ChangeLog.txt | 1 -
1 file changed, 1 deletion(-)
diff --git a/Bundle-Data/Docs/ChangeLog.txt b/Bundle-Data/Docs/ChangeLog.txt
index 42c764c..af9b59d 100644
--- a/Bundle-Data/Docs/ChangeLog.txt
+++ b/Bundle-Data/Docs/ChangeLog.txt
@@ -2,7 +2,6 @@ Tor Browser Bundle 3.6-beta-2 -- Apr 8 2014
* All Platforms
* Update OpenSSL to 1.0.1g
* Bug 9010: Add Turkish language support.
- * Update obfs3 transport to 0.2.8
* Update fte transport to 0.2.12
* Update NoScript to 2.6.8.19
* Update Torbutton to 1.6.8.0
1
0

10 Apr '14
commit 13dd293a1888d6faac8fcb39d10c4938c639b443
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Wed Apr 9 11:32:49 2014 -0700
Move obfsproxy back to 0.2.4.
Moving back to last known-good. 0.2.6 won't launch either.
---
gitian/versions.alpha | 2 +-
gitian/versions.beta | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/gitian/versions.alpha b/gitian/versions.alpha
index 5447d76..2bdbb2d 100755
--- a/gitian/versions.alpha
+++ b/gitian/versions.alpha
@@ -16,7 +16,7 @@ ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
MINGW_REV=6184
PYPTLIB_TAG=pyptlib-0.0.5
-OBFSPROXY_TAG=obfsproxy-0.2.6
+OBFSPROXY_TAG=obfsproxy-0.2.4
FLASHPROXY_TAG=1.6
FTEPROXY_TAG=0.2.12
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
diff --git a/gitian/versions.beta b/gitian/versions.beta
index 8c8433d..9ec3927 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -16,7 +16,7 @@ ZLIB_TAG=v1.2.8
LIBEVENT_TAG=release-2.0.21-stable
MINGW_REV=6184
PYPTLIB_TAG=pyptlib-0.0.5
-OBFSPROXY_TAG=obfsproxy-0.2.6
+OBFSPROXY_TAG=obfsproxy-0.2.4
FLASHPROXY_TAG=1.6
FTEPROXY_TAG=0.2.12
LIBDMG_TAG=dfd5e5cc3dc1191e37d3c3a6118975afdd1d7014
1
0

10 Apr '14
commit ae9d19adf7935782d926919c84977f703b7ebadf
Author: Kevin P. Dyer <kpdyer(a)gmail.com>
Date: Tue Apr 8 12:24:27 2014 -0700
Update default PT Bridges.
---
Bundle-Data/PTConfigs/bridge_prefs.js | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/Bundle-Data/PTConfigs/bridge_prefs.js b/Bundle-Data/PTConfigs/bridge_prefs.js
index 47d20e8..2d9777c 100644
--- a/Bundle-Data/PTConfigs/bridge_prefs.js
+++ b/Bundle-Data/PTConfigs/bridge_prefs.js
@@ -2,13 +2,13 @@
pref("extensions.torlauncher.default_bridge_recommended_type", "obfs3");
// Default bridges.
-pref("extensions.torlauncher.default_bridge.obfs3.1", "obfs3 83.212.101.3:60475 A09D536DD1752D542E1FBB3C9CE4449D51298239");
+pref("extensions.torlauncher.default_bridge.obfs3.1", "obfs3 83.212.101.3:80 A09D536DD1752D542E1FBB3C9CE4449D51298239");
pref("extensions.torlauncher.default_bridge.obfs3.2", "obfs3 169.229.59.74:31493 AF9F66B7B04F8FF6F32D455F05135250A16543C9");
pref("extensions.torlauncher.default_bridge.obfs3.3", "obfs3 169.229.59.75:46328 AF9F66B7B04F8FF6F32D455F05135250A16543C9");
pref("extensions.torlauncher.default_bridge.obfs3.4", "obfs3 209.141.36.236:45496 58D91C3A631F910F32E18A55441D5A0463BA66E2");
pref("extensions.torlauncher.default_bridge.obfs3.5", "obfs3 208.79.90.242:35658 BA61757846841D64A83EA2514C766CB92F1FB41F");
-pref("extensions.torlauncher.default_bridge.obfs3.6", "obfs3 109.105.109.163:38980 9D7259A696F7DAB073043B28114112A46D36CFFD");
-pref("extensions.torlauncher.default_bridge.obfs3.7", "obfs3 109.105.109.163:47779 844B1F53FFD548C998F8D3B01B7E19FA07C3396E");
+pref("extensions.torlauncher.default_bridge.obfs3.6", "obfs3 109.105.109.163:38980 1E05F577A0EC0213F971D81BF4D86A9E4E8229ED");
+pref("extensions.torlauncher.default_bridge.obfs3.7", "obfs3 109.105.109.163:47779 4C331FA9B3D1D6D8FB0D8FBBF0C259C360D97E6A");
pref("extensions.torlauncher.default_bridge.flashproxy.1", "flashproxy 0.0.1.0:1");
pref("extensions.torlauncher.default_bridge.flashproxy.2", "flashproxy 0.0.1.0:2");
@@ -18,3 +18,6 @@ pref("extensions.torlauncher.default_bridge.flashproxy.5", "flashproxy 0.0.1.0:5
pref("extensions.torlauncher.default_bridge.fte.1", "fte 131.252.210.150:8080 271EC1874E40FE65C145C6397AA34FFF7008E50E");
pref("extensions.torlauncher.default_bridge.fte.2", "fte 79.125.3.12:8080 17AF9F9F4E57614A060B7221DCCEDB8BB546DD73");
+pref("extensions.torlauncher.default_bridge.fte.3", "fte 128.105.214.161:8080 1E326AAFB3FCB515015250D8FCCC8E37F91A153B");
+pref("extensions.torlauncher.default_bridge.fte.4", "fte 128.105.214.162:8080 FC562097E1951DCC41B7D7F324D88157119BB56D");
+pref("extensions.torlauncher.default_bridge.fte.5", "fte 128.105.214.163:8080 A17A40775FBD2CA1184BF80BFC330A77ECF9D0E9");
1
0

10 Apr '14
commit 6d2934c93e402e544e8df8e248134bd3305d26ce
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Thu Apr 10 08:46:44 2014 -0700
Bump Tor Launcher version.
Turkish DTDs were missing.
---
Bundle-Data/Docs/ChangeLog.txt | 2 +-
gitian/versions.beta | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Bundle-Data/Docs/ChangeLog.txt b/Bundle-Data/Docs/ChangeLog.txt
index af9b59d..9b66b5e 100644
--- a/Bundle-Data/Docs/ChangeLog.txt
+++ b/Bundle-Data/Docs/ChangeLog.txt
@@ -7,7 +7,7 @@ Tor Browser Bundle 3.6-beta-2 -- Apr 8 2014
* Update Torbutton to 1.6.8.0
* Bug 11242: Fix improper "update needed" message after in-place upgrade.
* Bug 10398: Ease translation of about:tor page elements
- * Update Tor Launcher to 0.2.5.2
+ * Update Tor Launcher to 0.2.5.3
* Bug 9665: Localize Tor's unreachable bridges bootstrap error
* Backport Pending Tor Patches:
* Bug 9665: Report a bootstrap error if all bridges are unreachable
diff --git a/gitian/versions.beta b/gitian/versions.beta
index 9ec3927..ca59070 100755
--- a/gitian/versions.beta
+++ b/gitian/versions.beta
@@ -8,7 +8,7 @@ FIREFOX_VERSION=24.4.0esr
TORBROWSER_TAG=tor-browser-${FIREFOX_VERSION}-1-build2
TOR_TAG=tor-0.2.4.21
-TORLAUNCHER_TAG=0.2.5.2
+TORLAUNCHER_TAG=0.2.5.3
TORBUTTON_TAG=1.6.8.0
HTTPSE_TAG=3.4.5
NSIS_TAG=v0.1
1
0

[tor-browser-bundle/master] Remove busted FTE bridges (bad fingerprints).
by mikeperry@torproject.org 10 Apr '14
by mikeperry@torproject.org 10 Apr '14
10 Apr '14
commit e58aabac8234b4115cef70030e213caf6444607f
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Thu Apr 10 09:01:34 2014 -0700
Remove busted FTE bridges (bad fingerprints).
---
Bundle-Data/PTConfigs/bridge_prefs.js | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/Bundle-Data/PTConfigs/bridge_prefs.js b/Bundle-Data/PTConfigs/bridge_prefs.js
index 2d9777c..bb000cd 100644
--- a/Bundle-Data/PTConfigs/bridge_prefs.js
+++ b/Bundle-Data/PTConfigs/bridge_prefs.js
@@ -16,8 +16,10 @@ pref("extensions.torlauncher.default_bridge.flashproxy.3", "flashproxy 0.0.1.0:3
pref("extensions.torlauncher.default_bridge.flashproxy.4", "flashproxy 0.0.1.0:4");
pref("extensions.torlauncher.default_bridge.flashproxy.5", "flashproxy 0.0.1.0:5");
-pref("extensions.torlauncher.default_bridge.fte.1", "fte 131.252.210.150:8080 271EC1874E40FE65C145C6397AA34FFF7008E50E");
-pref("extensions.torlauncher.default_bridge.fte.2", "fte 79.125.3.12:8080 17AF9F9F4E57614A060B7221DCCEDB8BB546DD73");
-pref("extensions.torlauncher.default_bridge.fte.3", "fte 128.105.214.161:8080 1E326AAFB3FCB515015250D8FCCC8E37F91A153B");
-pref("extensions.torlauncher.default_bridge.fte.4", "fte 128.105.214.162:8080 FC562097E1951DCC41B7D7F324D88157119BB56D");
-pref("extensions.torlauncher.default_bridge.fte.5", "fte 128.105.214.163:8080 A17A40775FBD2CA1184BF80BFC330A77ECF9D0E9");
+pref("extensions.torlauncher.default_bridge.fte.1", "fte 128.105.214.161:8080 1E326AAFB3FCB515015250D8FCCC8E37F91A153B");
+pref("extensions.torlauncher.default_bridge.fte.2", "fte 128.105.214.162:8080 FC562097E1951DCC41B7D7F324D88157119BB56D");
+pref("extensions.torlauncher.default_bridge.fte.3", "fte 128.105.214.163:8080 A17A40775FBD2CA1184BF80BFC330A77ECF9D0E9");
+// XXX: Fingerprints changed:
+//pref("extensions.torlauncher.default_bridge.fte.4", "fte 131.252.210.150:8080 271EC1874E40FE65C145C6397AA34FFF7008E50E");
+//pref("extensions.torlauncher.default_bridge.fte.5", "fte 79.125.3.12:8080 17AF9F9F4E57614A060B7221DCCEDB8BB546DD73");
+
1
0

10 Apr '14
commit ab04781bdb01977b9b122681474bfecb96017169
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Mon Apr 7 20:05:47 2014 -0700
Backport fix for Bug9665.
---
gitian/descriptors/linux/gitian-tor.yml | 4 +-
gitian/descriptors/mac/gitian-tor.yml | 2 +
gitian/descriptors/windows/gitian-tor.yml | 2 +
gitian/patches/bug9665.patch | 108 +++++++++++++++++++++++++++++
4 files changed, 115 insertions(+), 1 deletion(-)
diff --git a/gitian/descriptors/linux/gitian-tor.yml b/gitian/descriptors/linux/gitian-tor.yml
index 698fcba..15ba469 100644
--- a/gitian/descriptors/linux/gitian-tor.yml
+++ b/gitian/descriptors/linux/gitian-tor.yml
@@ -28,8 +28,9 @@ files:
- "bug5018.patch"
- "bug9229.patch"
- "bug11156.patch"
-- "bug11069.patch"
- "bug11200.patch"
+- "bug11069.patch"
+- "bug9665.patch"
- "dzip.sh"
- "openssl.tar.gz"
script: |
@@ -98,6 +99,7 @@ script: |
git am ~/build/bug11156.patch
fi
git am ~/build/bug11200.patch
+ git am ~/build/bug9665.patch
fi
mkdir -p $OUTDIR/src
#git archive HEAD | tar -x -C $OUTDIR/src
diff --git a/gitian/descriptors/mac/gitian-tor.yml b/gitian/descriptors/mac/gitian-tor.yml
index 30c23bb..5ea3b4e 100644
--- a/gitian/descriptors/mac/gitian-tor.yml
+++ b/gitian/descriptors/mac/gitian-tor.yml
@@ -31,6 +31,7 @@ files:
- "bug11156.patch"
- "bug11200.patch"
- "bug11069.patch"
+- "bug9665.patch"
- "apple-uni-sdk-10.6_20110407-0.flosoft1_i386.deb"
- "multiarch-darwin11-cctools127.2-gcc42-5666.3-llvmgcc42-2336.1-Linux-120724.tar.xz"
- "dzip.sh"
@@ -109,6 +110,7 @@ script: |
git am ~/build/bug11156.patch
fi
git am ~/build/bug11200.patch
+ git am ~/build/bug9665.patch
fi
mkdir -p $OUTDIR/src
git archive HEAD | tar -x -C $OUTDIR/src
diff --git a/gitian/descriptors/windows/gitian-tor.yml b/gitian/descriptors/windows/gitian-tor.yml
index 1698726..6369e7f 100644
--- a/gitian/descriptors/windows/gitian-tor.yml
+++ b/gitian/descriptors/windows/gitian-tor.yml
@@ -30,6 +30,7 @@ files:
- "bug11156.patch"
- "bug11200.patch"
- "bug11069.patch"
+- "bug9665.patch"
- "binutils.tar.bz2"
- "dzip.sh"
- "openssl.tar.gz"
@@ -105,6 +106,7 @@ script: |
git am ~/build/bug11156.patch
fi
git am ~/build/bug11200.patch
+ git am ~/build/bug9665.patch
fi
mkdir -p $OUTDIR/src
git archive HEAD | tar -x -C $OUTDIR/src
diff --git a/gitian/patches/bug9665.patch b/gitian/patches/bug9665.patch
new file mode 100644
index 0000000..aeab37b
--- /dev/null
+++ b/gitian/patches/bug9665.patch
@@ -0,0 +1,108 @@
+From 08ae53e400ff6fa2d8147aad440c38173c106cae Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?F=C3=A1bio=20J=2E=20Bertinatto?= <fabiojrb(a)gmail.com>
+Date: Tue, 5 Nov 2013 00:50:16 -0200
+Subject: [PATCH 1/3] Fix bug9665
+
+---
+ src/or/connection_or.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/or/connection_or.c b/src/or/connection_or.c
+index 04ad2cc..ba3ac00 100644
+--- a/src/or/connection_or.c
++++ b/src/or/connection_or.c
+@@ -1195,6 +1195,11 @@ connection_or_connect(const tor_addr_t *_addr, uint16_t port,
+ "your pluggable transport proxy stopped running.",
+ fmt_addrport(&TO_CONN(conn)->addr, TO_CONN(conn)->port),
+ transport_name, transport_name);
++
++ control_event_bootstrap_problem(
++ "Can't connect to bridge",
++ END_OR_CONN_REASON_NO_ROUTE);
++
+ } else {
+ log_warn(LD_GENERAL, "Tried to connect to '%s' through a proxy, but "
+ "the proxy address could not be found.",
+--
+1.8.1.2
+
+From 754a50592c412d95d2eb48038784d0ef725a7dc2 Mon Sep 17 00:00:00 2001
+From: Nick Mathewson <nickm(a)torproject.org>
+Date: Mon, 7 Apr 2014 13:41:07 -0400
+Subject: [PATCH 2/3] Forward-port bug9665 fix to work with our fix for 11069
+
+---
+ src/or/connection_or.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/or/connection_or.c b/src/or/connection_or.c
+index ba3ac00..01ff4dc 100644
+--- a/src/or/connection_or.c
++++ b/src/or/connection_or.c
+@@ -1198,7 +1198,8 @@ connection_or_connect(const tor_addr_t *_addr, uint16_t port,
+
+ control_event_bootstrap_problem(
+ "Can't connect to bridge",
+- END_OR_CONN_REASON_NO_ROUTE);
++ END_OR_CONN_REASON_NO_ROUTE,
++ conn);
+
+ } else {
+ log_warn(LD_GENERAL, "Tried to connect to '%s' through a proxy, but "
+--
+1.8.1.2
+
+From 90341b4852bf88f1fdf9fd150fa2f5c47f88b2cb Mon Sep 17 00:00:00 2001
+From: Nick Mathewson <nickm(a)torproject.org>
+Date: Mon, 7 Apr 2014 13:44:22 -0400
+Subject: [PATCH 3/3] For missing transport, say "PT_MISSING" not "NO_ROUTE"
+
+---
+ src/or/connection_or.c | 2 +-
+ src/or/or.h | 3 ++-
+ src/or/reasons.c | 2 ++
+ 3 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/src/or/connection_or.c b/src/or/connection_or.c
+index 01ff4dc..6572a91 100644
+--- a/src/or/connection_or.c
++++ b/src/or/connection_or.c
+@@ -1198,7 +1198,7 @@ connection_or_connect(const tor_addr_t *_addr, uint16_t port,
+
+ control_event_bootstrap_problem(
+ "Can't connect to bridge",
+- END_OR_CONN_REASON_NO_ROUTE,
++ END_OR_CONN_REASON_PT_MISSING,
+ conn);
+
+ } else {
+diff --git a/src/or/or.h b/src/or/or.h
+index 38ab176..1b35c1f 100644
+--- a/src/or/or.h
++++ b/src/or/or.h
+@@ -604,7 +604,8 @@ typedef enum {
+ #define END_OR_CONN_REASON_NO_ROUTE 6 /* no route to host/net */
+ #define END_OR_CONN_REASON_IO_ERROR 7 /* read/write error */
+ #define END_OR_CONN_REASON_RESOURCE_LIMIT 8 /* sockets, buffers, etc */
+-#define END_OR_CONN_REASON_MISC 9
++#define END_OR_CONN_REASON_PT_MISSING 9 /* PT failed or not available */
++#define END_OR_CONN_REASON_MISC 10
+
+ /* Reasons why we (or a remote OR) might close a stream. See tor-spec.txt for
+ * documentation of these. The values must match. */
+diff --git a/src/or/reasons.c b/src/or/reasons.c
+index 0674474..750e89b 100644
+--- a/src/or/reasons.c
++++ b/src/or/reasons.c
+@@ -231,6 +231,8 @@ orconn_end_reason_to_control_string(int r)
+ return "RESOURCELIMIT";
+ case END_OR_CONN_REASON_MISC:
+ return "MISC";
++ case END_OR_CONN_REASON_PT_MISSING:
++ return "PT_MISSING";
+ case 0:
+ return "";
+ default:
+--
+1.8.1.2
+
1
0

10 Apr '14
commit 773de03a2ce611a5ddf4a5162f9c5d1cf9ef1b2c
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Thu Apr 10 08:43:30 2014 -0700
Add turkish dtd files, bump version.
Also update translations.
---
src/chrome/locale/ar/torlauncher.properties | 1 +
src/chrome/locale/de/torlauncher.properties | 1 +
src/chrome/locale/es/torlauncher.properties | 1 +
src/chrome/locale/eu/torlauncher.properties | 1 +
src/chrome/locale/fa/torlauncher.properties | 1 +
src/chrome/locale/fr/torlauncher.properties | 1 +
src/chrome/locale/it/torlauncher.properties | 1 +
src/chrome/locale/ja/torlauncher.properties | 1 +
src/chrome/locale/ko/torlauncher.properties | 1 +
src/chrome/locale/nl/torlauncher.properties | 1 +
src/chrome/locale/pl/torlauncher.properties | 1 +
src/chrome/locale/pt/torlauncher.properties | 1 +
src/chrome/locale/ru/torlauncher.properties | 1 +
src/chrome/locale/sv/torlauncher.properties | 1 +
src/chrome/locale/tr/network-settings.dtd | 64 ++++++++++++++++++++++++
src/chrome/locale/tr/progress.dtd | 4 ++
src/chrome/locale/tr/torlauncher.properties | 1 +
src/chrome/locale/vi/torlauncher.properties | 1 +
src/chrome/locale/zh-CN/torlauncher.properties | 1 +
src/install.rdf | 2 +-
20 files changed, 86 insertions(+), 1 deletion(-)
diff --git a/src/chrome/locale/ar/torlauncher.properties b/src/chrome/locale/ar/torlauncher.properties
index c7ee50d..ff393f7 100644
--- a/src/chrome/locale/ar/torlauncher.properties
+++ b/src/chrome/locale/ar/torlauncher.properties
@@ -55,3 +55,4 @@ torlauncher.bootstrapWarning.identity=لم تتطابق الهوية
torlauncher.bootstrapWarning.timeout=الاتصال عاطل
torlauncher.bootstrapWarning.noroute=لا طريق للمضيف
torlauncher.bootstrapWarning.ioerror=خطأ في القراءة/الكتابة
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/de/torlauncher.properties b/src/chrome/locale/de/torlauncher.properties
index bcbb64e..8ba8ae1 100644
--- a/src/chrome/locale/de/torlauncher.properties
+++ b/src/chrome/locale/de/torlauncher.properties
@@ -55,3 +55,4 @@ torlauncher.bootstrapWarning.identity=Nichtübereinstimmung der Identitäten
torlauncher.bootstrapWarning.timeout=Verbindungszeitüberschreitung
torlauncher.bootstrapWarning.noroute=Kein Pfad zum Rechner
torlauncher.bootstrapWarning.ioerror=Lese-/Schreibfehler
+torlauncher.bootstrapWarning.pt_missing=Pluggable Transport fehlt
diff --git a/src/chrome/locale/es/torlauncher.properties b/src/chrome/locale/es/torlauncher.properties
index 9739b50..4c1fc30 100644
--- a/src/chrome/locale/es/torlauncher.properties
+++ b/src/chrome/locale/es/torlauncher.properties
@@ -55,3 +55,4 @@ torlauncher.bootstrapWarning.identity=las identidades no coinciden
torlauncher.bootstrapWarning.timeout=tiempo de espera de conexión agotado
torlauncher.bootstrapWarning.noroute=no hay ruta hacia el servidor ('host')
torlauncher.bootstrapWarning.ioerror=error de lectura/escritura
+torlauncher.bootstrapWarning.pt_missing=transporte enchufable desaparecido
diff --git a/src/chrome/locale/eu/torlauncher.properties b/src/chrome/locale/eu/torlauncher.properties
index 2d57a88..3f4fb59 100644
--- a/src/chrome/locale/eu/torlauncher.properties
+++ b/src/chrome/locale/eu/torlauncher.properties
@@ -55,3 +55,4 @@ torlauncher.bootstrapWarning.identity=nortasuna ez dator bat
torlauncher.bootstrapWarning.timeout=konexioa denboraz kanpo
torlauncher.bootstrapWarning.noroute=ez dago biderik ostalarira
torlauncher.bootstrapWarning.ioerror=irakurketa/idazketa akatsa
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/fa/torlauncher.properties b/src/chrome/locale/fa/torlauncher.properties
index 0571889..4914fb2 100644
--- a/src/chrome/locale/fa/torlauncher.properties
+++ b/src/chrome/locale/fa/torlauncher.properties
@@ -55,3 +55,4 @@ torlauncher.bootstrapWarning.identity=عدم تطبیق هویت
torlauncher.bootstrapWarning.timeout=اتمام وقت اتصال
torlauncher.bootstrapWarning.noroute=نبود مسیر به میزبان
torlauncher.bootstrapWarning.ioerror=خطای خواندن/نوشتن
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/fr/torlauncher.properties b/src/chrome/locale/fr/torlauncher.properties
index 807e901..d113f54 100644
--- a/src/chrome/locale/fr/torlauncher.properties
+++ b/src/chrome/locale/fr/torlauncher.properties
@@ -55,3 +55,4 @@ torlauncher.bootstrapWarning.identity=identité incorrecte
torlauncher.bootstrapWarning.timeout=temps de connexion expiré
torlauncher.bootstrapWarning.noroute=pas de route vers l'hôte
torlauncher.bootstrapWarning.ioerror=erreur de lecture/écriture
+torlauncher.bootstrapWarning.pt_missing=un transport câblé est manquant
diff --git a/src/chrome/locale/it/torlauncher.properties b/src/chrome/locale/it/torlauncher.properties
index 0d71880..9fc125d 100644
--- a/src/chrome/locale/it/torlauncher.properties
+++ b/src/chrome/locale/it/torlauncher.properties
@@ -55,3 +55,4 @@ torlauncher.bootstrapWarning.identity=discordanza di identità
torlauncher.bootstrapWarning.timeout=timeout della connessione
torlauncher.bootstrapWarning.noroute=nessun rotta per l'host
torlauncher.bootstrapWarning.ioerror=errore di lettura/scrittura
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/ja/torlauncher.properties b/src/chrome/locale/ja/torlauncher.properties
index 3ab1b23..ad50a92 100644
--- a/src/chrome/locale/ja/torlauncher.properties
+++ b/src/chrome/locale/ja/torlauncher.properties
@@ -55,3 +55,4 @@ torlauncher.bootstrapWarning.identity=識別子の不一致
torlauncher.bootstrapWarning.timeout=接続タイムアウト
torlauncher.bootstrapWarning.noroute=ホストへの経路が見つかりません
torlauncher.bootstrapWarning.ioerror=読み書きエラー
+torlauncher.bootstrapWarning.pt_missing=プラグ可能な転送が見つかりません
diff --git a/src/chrome/locale/ko/torlauncher.properties b/src/chrome/locale/ko/torlauncher.properties
index 3629f23..8714f80 100644
--- a/src/chrome/locale/ko/torlauncher.properties
+++ b/src/chrome/locale/ko/torlauncher.properties
@@ -55,3 +55,4 @@ torlauncher.bootstrapWarning.identity=계정 불일치
torlauncher.bootstrapWarning.timeout=연결 타임아웃
torlauncher.bootstrapWarning.noroute=호스트로의 연결 경로가 없음
torlauncher.bootstrapWarning.ioerror=읽기 / 쓰기 오류
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/nl/torlauncher.properties b/src/chrome/locale/nl/torlauncher.properties
index 39fd76a..c4b2760 100644
--- a/src/chrome/locale/nl/torlauncher.properties
+++ b/src/chrome/locale/nl/torlauncher.properties
@@ -55,3 +55,4 @@ torlauncher.bootstrapWarning.identity=identiteitsfout
torlauncher.bootstrapWarning.timeout=verbindingstimeout
torlauncher.bootstrapWarning.noroute=geen route naar de server
torlauncher.bootstrapWarning.ioerror=lees/schrijffout
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/pl/torlauncher.properties b/src/chrome/locale/pl/torlauncher.properties
index d982fb7..7651ef2 100644
--- a/src/chrome/locale/pl/torlauncher.properties
+++ b/src/chrome/locale/pl/torlauncher.properties
@@ -55,3 +55,4 @@ torlauncher.bootstrapWarning.identity=niezgodność tożsamości
torlauncher.bootstrapWarning.timeout=upłynął czas połączenia
torlauncher.bootstrapWarning.noroute=brak trasy do hosta
torlauncher.bootstrapWarning.ioerror=błąd zapisu/odczytu
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/pt/torlauncher.properties b/src/chrome/locale/pt/torlauncher.properties
index 08961b1..87b8aeb 100644
--- a/src/chrome/locale/pt/torlauncher.properties
+++ b/src/chrome/locale/pt/torlauncher.properties
@@ -55,3 +55,4 @@ torlauncher.bootstrapWarning.identity=identidade não correspondente
torlauncher.bootstrapWarning.timeout=Tempo de ligação expirado
torlauncher.bootstrapWarning.noroute=sem rota para o hospedeiro
torlauncher.bootstrapWarning.ioerror=Erro de leitura/escrita
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/ru/torlauncher.properties b/src/chrome/locale/ru/torlauncher.properties
index f9f81a7..ad50365 100644
--- a/src/chrome/locale/ru/torlauncher.properties
+++ b/src/chrome/locale/ru/torlauncher.properties
@@ -55,3 +55,4 @@ torlauncher.bootstrapWarning.identity=несоответствие иденти
torlauncher.bootstrapWarning.timeout=Тайм-аут соединения
torlauncher.bootstrapWarning.noroute=не указан путь к хосту
torlauncher.bootstrapWarning.ioerror=ошибка чтения / записи
+torlauncher.bootstrapWarning.pt_missing=отсутствует подключаемый транспорт
diff --git a/src/chrome/locale/sv/torlauncher.properties b/src/chrome/locale/sv/torlauncher.properties
index 7efa755..375bd8c 100644
--- a/src/chrome/locale/sv/torlauncher.properties
+++ b/src/chrome/locale/sv/torlauncher.properties
@@ -55,3 +55,4 @@ torlauncher.bootstrapWarning.identity=identitet felmatchad
torlauncher.bootstrapWarning.timeout=tidsgränsen överskreds
torlauncher.bootstrapWarning.noroute=framkomlig väg till värddatorn saknas
torlauncher.bootstrapWarning.ioerror=läs-/skrivfel
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/tr/network-settings.dtd b/src/chrome/locale/tr/network-settings.dtd
new file mode 100644
index 0000000..4f465de
--- /dev/null
+++ b/src/chrome/locale/tr/network-settings.dtd
@@ -0,0 +1,64 @@
+<!ENTITY torsettings.dialog.title "Tor Ağ Ayarları">
+
+<!-- For "first run" wizard: -->
+
+<!ENTITY torsettings.prompt "Tor ağa bağlanmadan önce, bu bilgisayarın İnternet bağlantısı hakkında bilgi vermeniz gerekir.">
+
+<!ENTITY torSettings.yes "Evet">
+<!ENTITY torSettings.no "Hayır">
+
+<!ENTITY torSettings.firstQuestion "Aşağıdakilerden hangisi durumunuzu en iyi açıklıyor?">
+<!ENTITY torSettings.configurePrompt1 "İnternet bağlantınız sansürlenmiş,filtrelenmiş veyahut proxylenmiş.">
+<!ENTITY torSettings.configurePrompt2 "Köprü, güvenlik duvarı ve vekil sunucu ayarlarının konfigürasyonunu yapmam lazım.">
+<!ENTITY torSettings.configure "Yapılandır">
+<!ENTITY torSettings.connectPrompt2 "Doğrudan Tor ağına bağlanmak istiyorum">
+<!ENTITY torSettings.connectPrompt3 "Bu çoğu durumlarda çalışır.">
+<!ENTITY torSettings.connect "Bağlan">
+
+<!ENTITY torSettings.proxyQuestion "Bu bilgisayarın İnternete erişirken bir vekil kullanması gerekiyor mu?">
+<!-- see https://www.torproject.org/docs/proxychain.html.en -->
+<!ENTITY torSettings.proxyHelp "Eğer bu soruyu nasıl yanıtlayacağınızdan emin değilseniz, farklı bir tarayıcıda İnternet seçeneklerine bakın ve bir vekil kullanmak üzere yapılandırılıp yapılandırılmadığına bakın">
+<!ENTITY torSettings.enterProxy "Vekil ayarlarını girin.">
+<!ENTITY torSettings.firewallQuestion "Bu bilgisayarın İnternet bağlantısı, sadece belirli bağlantı noktalarına izin veren bir güvenlik duvarından geçiyor mu?">
+<!ENTITY torSettings.firewallHelp "Eğer bu soruya nasıl cevap vereceğinizden emin değilseniz, Hayır seçin. Eğer Tor ağına bağlanırken sorunla karşılaşırsanız, bu ayarı değiştirin.">
+<!ENTITY torSettings.enterFirewall "Güvenlik duvarı tarafından izin verilen bağlantı noktalarının virgülle ayrılmış bir listesini girin.">
+<!ENTITY torSettings.bridgeQuestion "İnternet Servis Sağlayıcınızı (ISS) engellesin veya ayrıcaTor Bağlantınızı sansürlesin mi?">
+<!ENTITY torSettings.bridgeHelp "Bu soruyu nasıl cevaplayacağınızdan emin değilseniz Hayır 'ı Secin.&#160; Eğer Evet'i seçerseniz, Tor Ağ bağlantıları engellemek için, daha zor hale getirilip listelenmeyen aktarmalar için Tor Köprülerini yapılandırmanız istenecektir.">
+<!ENTITY torSettings.bridgeSettingsPrompt "Sağlanan köprülerin kümesini kullanabilirsiniz veya özel bir köprü seti girebilir veya sağlayabilirsiniz.">
+
+<!-- Other: -->
+
+<!ENTITY torsettings.startingTor "Tor'un başlaması bekleniyor...">
+<!ENTITY torsettings.restart "Yeniden Başlat">
+
+<!ENTITY torsettings.optional "İsteğe Bağlı">
+
+<!ENTITY torsettings.useProxy.checkbox "Bu bilgisayarın İnternet'e erişebilmek için bir vekil sunucu kullanması gerekiyor">
+<!ENTITY torsettings.useProxy.type "Vekil Sunucu Türü:">
+<!ENTITY torsettings.useProxy.address "Adres:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP adresi veya sunucu adı">
+<!ENTITY torsettings.useProxy.port "Port:">
+<!ENTITY torsettings.useProxy.username "Kullanıcı adı:">
+<!ENTITY torsettings.useProxy.password "Parola:">
+<!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 "Bu bilgisayar, sadece belirli bağlantı noktalarına izin veren bir güvenlik duvarı ile bağlanıyor">
+<!ENTITY torsettings.firewall.allowedPorts "İzin verilen portlar:">
+<!ENTITY torsettings.useBridges.checkbox "İnternet Servis Sağlayıcım (İSS) Tor Ağı ile bağlantılarımı engelliyor">
+<!ENTITY torsettings.useBridges.default "Sağlanan köprüler ile bağlan">
+<!ENTITY torsettings.useBridges.type "Taşıma türü:">
+<!ENTITY torsettings.useBridges.custom "Özel köprüler girin">
+<!ENTITY torsettings.useBridges.label "Bir veya daha fazla köprü aynası girin (her satıra bir tane).">
+<!ENTITY torsettings.useBridges.placeholder "adresi yazın:port">
+
+<!ENTITY torsettings.copyLog "Tor Günlüğünü Panoya Kopyala">
+<!ENTITY torsettings.bridgeHelpTitle "Köprü Ayna Yardımı">
+<!ENTITY torsettings.bridgeHelp1 "Tor ağına bağlanamıyorsanız, nedeni kullandığınız İnternet Servis Sağlayıcısı (ISS) veya başka bir kurum Tor'u engelliyor olabilir.&#160; Çoğunlukla bu problemi Tor köprüleri ile çözebilirisiniz bunlar engellenmesi daha zor olan listede olmayan aktarma noktalarıdır">
+<!ENTITY torsettings.bridgeHelp1B "Önceden yapılandırılan sağlanan köprü adresleri setini kullanabilirsiniz veya bu üç yöntemden birini kullanarak adres kümesinden özel bir set sağlayabilirsiniz:">
+<!ENTITY torsettings.bridgeHelp2Heading "Web aracılığıyla.">
+<!ENTITY torsettings.bridgeHelp2 "https://bridges.torproject.org sitesini ziyaret etmek için web tarayıcısı kullanın.">
+<!ENTITY torsettings.bridgeHelp3Heading "Eposta otomatik cevaplandırıcı aracılığıyla.">
+<!ENTITY torsettings.bridgeHelp3 "bridges(a)torproject.org adresine, iletide sadece 'get bridges' satırını yazarak bir e-posta gönderin.&#160; Ancak, bir saldırganın çok sayıda köprü adresi öğrenmesini zorlaştırmak için bu epostayı gmail.com veya yahoo.com adreslerinden yollamanız gerekmektedir.">
+<!ENTITY torsettings.bridgeHelp4Heading "Help Desk aracılığıyla.">
+<!ENTITY torsettings.bridgeHelp4 "Son bir çare olarak köprü adres taleplerini help(a)rt.torproject.org adresine posta göndererek rica edebilirsiniz.&#160 Birisinin bu talebi cevaplayacağını unutmayın.">
diff --git a/src/chrome/locale/tr/progress.dtd b/src/chrome/locale/tr/progress.dtd
new file mode 100644
index 0000000..c61e5ac
--- /dev/null
+++ b/src/chrome/locale/tr/progress.dtd
@@ -0,0 +1,4 @@
+<!ENTITY torprogress.dialog.title "Tor Durumu">
+<!ENTITY torprogress.openSettings "Ayarları Aç">
+<!ENTITY torprogress.heading "Tor ağına bağlanıyor">
+<!ENTITY torprogress.pleaseWait "Biz Tor şebekesi ile bağlantı kurana lütfen bekleyin.">
diff --git a/src/chrome/locale/tr/torlauncher.properties b/src/chrome/locale/tr/torlauncher.properties
index 874951b..1a0226b 100644
--- a/src/chrome/locale/tr/torlauncher.properties
+++ b/src/chrome/locale/tr/torlauncher.properties
@@ -55,3 +55,4 @@ torlauncher.bootstrapWarning.identity=kimlik uyumsuz
torlauncher.bootstrapWarning.timeout=Zaman aşımı
torlauncher.bootstrapWarning.noroute=Yönlendirilecek sunucu yok
torlauncher.bootstrapWarning.ioerror=Okuma/yazma hatası
+torlauncher.bootstrapWarning.pt_missing=takılabilir taşıma kayıp
diff --git a/src/chrome/locale/vi/torlauncher.properties b/src/chrome/locale/vi/torlauncher.properties
index 9cfc93d..e57776c 100644
--- a/src/chrome/locale/vi/torlauncher.properties
+++ b/src/chrome/locale/vi/torlauncher.properties
@@ -55,3 +55,4 @@ torlauncher.bootstrapWarning.identity=nhận dạng không phù hợp
torlauncher.bootstrapWarning.timeout=kết nối timeout
torlauncher.bootstrapWarning.noroute=không có lộ trình để lưu trữ
torlauncher.bootstrapWarning.ioerror=lỗi đọc / ghi
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/chrome/locale/zh-CN/torlauncher.properties b/src/chrome/locale/zh-CN/torlauncher.properties
index adc973e..6c9d920 100644
--- a/src/chrome/locale/zh-CN/torlauncher.properties
+++ b/src/chrome/locale/zh-CN/torlauncher.properties
@@ -55,3 +55,4 @@ torlauncher.bootstrapWarning.identity=身份不一致
torlauncher.bootstrapWarning.timeout=连接超时
torlauncher.bootstrapWarning.noroute=没有可用链路
torlauncher.bootstrapWarning.ioerror=读写错误
+torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
diff --git a/src/install.rdf b/src/install.rdf
index f523acf..0e8614e 100644
--- a/src/install.rdf
+++ b/src/install.rdf
@@ -7,7 +7,7 @@
<em:creator>The Tor Project, Inc.</em:creator>
<em:contributor>Pearl Crescent, LLC</em:contributor>
<em:id>tor-launcher(a)torproject.org</em:id>
- <em:version>0.2.5.2</em:version>
+ <em:version>0.2.5.3</em:version>
<em:homepageURL>https://www.torproject.org/projects/torbrowser.html</em:homepageURL>
<em:updateURL>https://127.0.0.1/</em:updateURL>
<!--
1
0
commit ab0ce9a4cb71c390eea357282330ed045a4e1870
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Mon Apr 7 19:06:18 2014 -0700
Update translations.
---
src/chrome/locale/de/aboutTor.dtd | 20 ++++----
src/chrome/locale/de/torbutton.dtd | 2 +-
src/chrome/locale/de/torbutton.properties | 70 ++++++++++++++--------------
src/chrome/locale/eu/aboutTor.dtd | 9 ----
src/chrome/locale/fr/torbutton.properties | 4 +-
src/chrome/locale/it/aboutTor.dtd | 2 +-
src/chrome/locale/it/torbutton.dtd | 2 +-
src/chrome/locale/ko/aboutTor.dtd | 70 ++++++++++++++--------------
src/chrome/locale/ko/brand.dtd | 8 ++--
src/chrome/locale/ko/brand.properties | 16 +++----
src/chrome/locale/ko/browser.properties | 12 ++---
src/chrome/locale/ko/torbutton.dtd | 64 ++++++++++++-------------
src/chrome/locale/pl/brand.dtd | 4 +-
src/chrome/locale/pl/brand.properties | 4 +-
src/chrome/locale/pl/torbutton.dtd | 6 +--
src/chrome/locale/pl/torbutton.properties | 12 ++---
src/chrome/locale/pt/brand.properties | 2 +-
src/chrome/locale/sv/aboutTor.dtd | 55 +++++++++++-----------
src/chrome/locale/sv/brand.dtd | 6 +--
src/chrome/locale/sv/brand.properties | 14 +++---
src/chrome/locale/sv/browser.properties | 2 +-
src/chrome/locale/sv/torbutton.dtd | 12 ++---
src/chrome/locale/sv/torbutton.properties | 4 +-
src/chrome/locale/tr/aboutTor.dtd | 55 +++++++++++-----------
src/chrome/locale/tr/brand.dtd | 8 ++--
src/chrome/locale/tr/brand.properties | 16 +++----
src/chrome/locale/tr/browser.properties | 6 +--
src/chrome/locale/tr/torbutton.dtd | 12 ++---
src/chrome/locale/tr/torbutton.properties | 32 ++++++-------
src/chrome/locale/vi/aboutTor.dtd | 72 ++++++++++++++---------------
src/chrome/locale/vi/brand.dtd | 8 ++--
src/chrome/locale/vi/brand.properties | 16 +++----
src/chrome/locale/vi/browser.properties | 12 ++---
src/chrome/locale/vi/torbutton.dtd | 72 ++++++++++++++---------------
src/chrome/locale/zh-CN/aboutTor.dtd | 4 +-
src/chrome/locale/zh-CN/torbutton.dtd | 32 ++++++-------
36 files changed, 369 insertions(+), 376 deletions(-)
diff --git a/src/chrome/locale/de/aboutTor.dtd b/src/chrome/locale/de/aboutTor.dtd
index 7948f5f..c517faa 100644
--- a/src/chrome/locale/de/aboutTor.dtd
+++ b/src/chrome/locale/de/aboutTor.dtd
@@ -6,22 +6,22 @@
<!ENTITY aboutTor.title "Über Tor">
-<!ENTITY aboutTor.outOfDateTorOn.label "Dieser Browser ist nicht mehr Aktuell">
-<!ENTITY aboutTor.outOfDateTorOff.label "DIESER Browser ist auch veraltet">
-<!ENTITY aboutTor.outOfDate2.label "Klicken Sie auf die Zwiebel und wählen Sie Tor Browser Bundle Update herunterladen.">
+<!ENTITY aboutTor.outOfDateTorOn.label "Dieser Browser ist nicht mehr aktuell.">
+<!ENTITY aboutTor.outOfDateTorOff.label "DIESER Browser ist auch veraltet.">
+<!ENTITY aboutTor.outOfDate2.label "Auf die Zwiebel klicken und dann die Aktualisierung des Tor-Browser-Paketes herunterladen.">
<!ENTITY aboutTor.check.label "Tor-Netzwerkeinstellungen testen">
<!ENTITY aboutTor.success.label "Herzlichen Glückwunsch!">
-<!ENTITY aboutTor.success2.label "Dieser Browser ist konfiguriert, Tor zu nutzen.">
+<!ENTITY aboutTor.success2.label "Dieser Browser ist für die Benutzung von Tor eingestellt.">
<!ENTITY aboutTor.success3.label "Sie können jetzt anonym im Internet surfen.">
-<!ENTITY aboutTor.failure.label "Irgendetwas ist schiefgegangen!">
+<!ENTITY aboutTor.failure.label "Irgend etwas lief schief!">
<!ENTITY aboutTor.failure2.label "Tor funktioniert mit diesem Browser nicht.">
-<!ENTITY aboutTor.failure3prefix.label "Um Hilfe zu erhalten kontaktieren Sie">
+<!ENTITY aboutTor.failure3prefix.label "Um Hilfe zu erhalten, kontaktieren Sie bitte">
<!ENTITY aboutTor.failure3Link "help(a)rt.torproject.org">
<!ENTITY aboutTor.failure3suffix.label ".">
-<!ENTITY aboutTor.search.label "Suchen">
+<!ENTITY aboutTor.search.label "Suche">
<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
@@ -35,14 +35,14 @@
<!ENTITY aboutTor.whatnext.label "Tipps um anonym zu bleiben »">
<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
<!ENTITY aboutTor.helpInfo1.label "Sie können helfen!">
-<!ENTITY aboutTor.helpInfo2.label "Es gibt viele Möglichkeiten, das Tor-Netzwerk schneller und stärker zu machen:">
-<!ENTITY aboutTor.helpInfo3.label "Einen Tor-Knoten betreiben »">
+<!ENTITY aboutTor.helpInfo2.label "Es gibt viele Möglichkeiten, um das Tor-Netzwerk schneller und stärker zu machen:">
+<!ENTITY aboutTor.helpInfo3.label "Einen Tor-Relaisknoten betreiben »">
<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
<!ENTITY aboutTor.helpInfo4.label "Ihre Dienste bereitstellen »">
<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
<!ENTITY aboutTor.helpInfo5.label "Etwas spenden »">
<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
-<!ENTITY aboutTor.footer.label "Die Organisation "The Tor Project" ist nach dem US-Gesetz US 501(c)(3) als gemeinnützig eingestuft und widmet sich Forchung, Entwicklung und Schulung von Anonymität und Datenschutz.">
+<!ENTITY aboutTor.footer.label "Die Organisation »The Tor Project« ist nach dem US-Gesetz US 501(c)(3) als gemeinnützig eingestuft und widmet sich Forschung, Entwicklung und Schulung von Anonymität und Datenschutz.">
<!ENTITY aboutTor.learnMore.label "Mehr über das Tor-Projekt erfahren »">
<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
diff --git a/src/chrome/locale/de/torbutton.dtd b/src/chrome/locale/de/torbutton.dtd
index e431027..9b90090 100644
--- a/src/chrome/locale/de/torbutton.dtd
+++ b/src/chrome/locale/de/torbutton.dtd
@@ -1,5 +1,5 @@
<!ENTITY torbutton.prefs.title "Einstellungen für Torbutton">
-<!ENTITY torbutton.prefs.tor_settings "Proxy-Einstellungen">
+<!ENTITY torbutton.prefs.tor_settings "Vermittlungsservereinstellungen">
<!ENTITY torbutton.prefs.recommended_settings "Benutze die empfohlenen Proxy-Einstellungen für meine Firefox-Version">
<!ENTITY torbutton.prefs.use_privoxy "Privoxy verwenden">
<!ENTITY torbutton.prefs.use_polipo "Polipo verwenden">
diff --git a/src/chrome/locale/de/torbutton.properties b/src/chrome/locale/de/torbutton.properties
index 6e9dff2..c968c32 100644
--- a/src/chrome/locale/de/torbutton.properties
+++ b/src/chrome/locale/de/torbutton.properties
@@ -2,54 +2,54 @@ torbutton.button.tooltip.disabled = Tor aktivieren
torbutton.button.tooltip.enabled = Tor deaktivieren
torbutton.panel.tooltip.disabled = Klicken, um Tor zu aktivieren
torbutton.panel.tooltip.enabled = Klicken, um Tor zu deaktivieren
-torbutton.panel.plugins.disabled = Klicken, um Plugins zu aktivieren
-torbutton.panel.plugins.enabled = Klicken, um Plugins zu deaktivieren
+torbutton.panel.plugins.disabled = Klicken, um die Erweiterungen zu aktivieren
+torbutton.panel.plugins.enabled = Klicken, um die Erweiterungen zu deaktivieren
torbutton.panel.label.disabled = Tor deaktiviert
torbutton.panel.label.enabled = Tor aktiviert
extensions.torbutton(a)torproject.org.description = Torbutton gibt ihnen die Möglichkeit, Einstellungen von Tor schnell und einfach zu verändern und die Browser-Daten zu löschen.
-torbutton.popup.history.warning = Torbutton hat aktivitäten in einem Tab blockiert, welches in einem anderen Tor-Status geladen wurde.\n\nDas ist nötig, um die Firefox Bugs 409737 und 417869 zu umgehen.\n\nSollte dieses PopUp anscheinlich grundlos auftauchen, so versucht gerade einer Ihrer Tabs sich im Hintergrund neu zu laden, und wurde deshalb blockiert.\n\nUm das Tab in diesem Tor-Status neu zu laden, drücken Sie 'Enter' in der URL eingabebox\n\n
-torbutton.popup.plugin.warning = Torbutton hat das direkte laden von Plugin-Inhalten über Tor blockiert.\n\nBenutzen Sie stattdessen 'Speichern unter'.\n\n
-torbutton.popup.confirm_ca_certs = Anmerkung: Es scheint, als seien keinerlei eigene Zertifikatsautoritäten in Ihrer Konfiguration vorhanden. Die Auswertung der globalen Zertifikationsautoritäten-Liste ist aufwändig und verlangsamt das schnelle An- und Abschalten von Tor. Möchten Sie die Isolation von Zertifikatsautoritäten abschalten? (Wenn Sie nicht wissen, was gemeint ist, können Sie ruhig auf OK klicken)
-torbutton.popup.ff3.warning = Warnung!\n\nEs ist bekannt, dass Torbutton auf Firefox 3 deine Zeitzone und Livemarks via Tor mitteilt.\n\nWillst du trotzem fortfahren?
-torbutton.popup.toggle.warning = Die Einstellungen werden erst nach einem Neustart von Tor wirksam
-torbutton.popup.test.success = Tor-Proxy Test erfolgreich!
-torbutton.popup.test.failure = Tor Proxy Test FEHLGESCHLAGEN! Überprüfen Sie Ihre Proxy- und Polipo-Einstellungen.
-torbutton.popup.test.confirm_toggle = Der letzte Tor Proxy Test konnte Tor nicht benutzen.\n\nSind Sie sicher, dass Sie diesen trotzdem aktivieren möchten?\n\nAnmerkung: Falls Sie das Problem gelöst haben, können Sie den Test im Fenster Torbutton Proxy Einstellungen wiederholen, um diese Warnung zu löschen.
-torbutton.popup.test.ff3_notice = Klicken Sie OK um die Proxyeinstellungen zu testen. Dieser Test arbeitet im Hintergrund. Bitte warten Sie einen Augenblick.
+torbutton.popup.history.warning = Torbutton hat Aktivitäten in einem Reiter blockiert, welcher in einem anderen Tor-Status geladen wurde.\n\nDas ist nötig, um die Firefox-Fehler 409737 und 417869 zu umgehen.\n\nSollte dieses PopUp augenscheinlich grundlos auftauchen, so versucht gerade, einer Ihrer Reiter, sich im Hintergrund neu zu laden, und wurde deshalb blockiert.\n\nUm den Reiter in diesem Tor-Status neu zu laden, drücken Sie »Eingabe« im Adresseingabefeld.\n\n
+torbutton.popup.plugin.warning = Torbutton hat das direkte laden von Erweiterungsinhalten über Tor blockiert.\n\nBenutzen Sie stattdessen »Speichern unter«.\n\n
+torbutton.popup.confirm_ca_certs = Anmerkung: Es scheint, als seien keinerlei eigene Zertifikatsautoritäten in Ihrer Konfiguration vorhanden. Die Auswertung der globalen Zertifikationsautoritätenliste ist aufwändig und verlangsamt das schnelle An- und Abschalten von Tor. Möchten Sie die Isolation von Zertifikatsautoritäten abschalten? (Wenn Sie nicht wissen, was gemeint ist, können Sie ruhig auf OK klicken).
+torbutton.popup.ff3.warning = Warnung!\n\nEs ist bekannt, dass Torbutton auf Firefox 3 deine Zeitzone und Livemarks über Tor mitteilt.\n\nWollen Sie trotzdem fortfahren?
+torbutton.popup.toggle.warning = Die Einstellungen werden erst nach einem Neustart von Tor wirksam.
+torbutton.popup.test.success = Test des Tor-Vermittlungsservers erfolgreich!
+torbutton.popup.test.failure = Test des Tor-Vermittlungsservers FEHLGESCHLAGEN! Überprüfen Sie Ihre Proxy- und Polipo-Einstellungen.
+torbutton.popup.test.confirm_toggle = Der letzte Tor-Vermittlungsservertest konnte Tor nicht benutzen.\n\nSind Sie sicher, dass Sie diesen trotzdem aktivieren möchten?\n\nAnmerkung: Falls Sie das Problem gelöst haben, können Sie den Test im Einstellungsfenster vom Torbutton-Vermittlungsserver wiederholen, um diese Warnung zu löschen.
+torbutton.popup.test.ff3_notice = Klicken Sie OK um die Vermittlungsservereinstellungen zu testen. Dieser Test arbeitet im Hintergrund. Bitte warten Sie einen Augenblick.
torbutton.panel.label.verified = Tor überprüft
-torbutton.popup.test.auto_failed = Der automatische Tor Proxy Test ist fehlgeschlagen.\n\nSind Sie sicher, dass Sie ihn trotzdem aktivieren möchten?
+torbutton.popup.test.auto_failed = Der automatische Tor-Vermittlungsservertest ist fehlgeschlagen.\n\nSind Sie sicher, dass Sie ihn trotzdem aktivieren möchten?
torbutton.prefs.recommended = (empfohlen)
torbutton.prefs.optional = (optional)
torbutton.prefs.crucial = (kritisch)
torbutton.popup.external.title = Externen Inhalt laden?
-torbutton.popup.external.app = Eine externe Applikation wird benötigt, um mit dem folgenden Objekt umzugehen:\n\n
-torbutton.popup.external.note = \n\nAnmerkung: Externe Applikationen sind im Allgemeinen NICHT Tor gesichert und können Sie verraten!\n
-torbutton.popup.external.suggest = \nSollte dieser Datei nicht vertraut werden, speichern sie sie ab um sie offline oder in einer VM anzusehen,\noder ziehen sie in betracht einen transperenten Tor-Proxy wie die Tails LiveCD oder torsocks zu benutzen.\n
-torbutton.popup.launch = Applikation starten
+torbutton.popup.external.app = Eine externe Anwendung wird benötigt, um mit dem folgenden Objekt umzugehen:\n\n
+torbutton.popup.external.note = \n\nAnmerkung: Externe Anwendungen sind im Allgemeinen NICHT Tor gesichert und können Sie verraten!\n
+torbutton.popup.external.suggest = \nSollte dieser Datei nicht vertraut werden, speichern sie sie ab um sie offline oder in einer VM anzusehen,\noder ziehen sie in betracht einen transparenten Tor-Vermittlungsserver wie die Tails-LiveCD oder torsocks zu benutzen.\n
+torbutton.popup.launch = Anwendung starten
torbutton.popup.cancel = Abbrechen
-torbutton.popup.dontask = Von nun an immer Applikationen laden
-torbutton.popup.test.no_http_proxy = Tor proxy test: Lokaler HTTP Proxy ist unerreichbar. Läuft Polipo korrekt?
-torbutton.popup.captcha.title = Google Captchas vermeiden?
-torbutton.popup.captcha.ask = Torbutton hat ein Google Captcha festgestellt. Möchten Sie für Ihre Suchanfrage zu einer anderen Suchmaschine umgeleitet werden?
+torbutton.popup.dontask = Von nun an Anwendungen immer laden
+torbutton.popup.test.no_http_proxy = Tor-Vermittlungsservertest: Lokaler HTTP-Vermittlungsserver ist unerreichbar. Läuft Polipo korrekt?
+torbutton.popup.captcha.title = Google-Captchas vermeiden?
+torbutton.popup.captcha.ask = Torbutton hat ein Google-Captcha festgestellt. Möchten Sie für Ihre Suchanfrage zu einer anderen Suchmaschine umgeleitet werden?
torbutton.popup.captcha.always = Von nun an immer diese Aktion durchführen
torbutton.popup.redirect = Umleiten
torbutton.popup.no_redirect = Nicht umleiten
-torbutton.popup.prompted_language = Um Ihre Privatsphäre zu erhöhen, kann Torbutton die jeweilige englische Version einer Website anfordern. Dies kann zur Folge haben, dass Websites, die sie lieber in Ihrer Muttersprache lesen würden, nun in Englisch dargestellt werden. \n\nSollen nun - zur Erhöhung Ihrer Privatsphäre - Websites in Englisch geladen werden?
-torbutton.popup.no_newnym = Torbutton kann dir keine neue Identität geben, da es keinen Zugriff auf den Tor-Control-Port hatt.\n\nBenutzt du das Tor-Browser-Paket?
-torbutton.popup.use_tbb = Es scheint, als würdest du Torbutton zusammen mit Freifox benutzen. Diese Kombination ist nicht länger eine empfohlene, sichere, Konfiguration.\n\nAnstelle dieser Konfiguration, empfehlen wir dir das neueste Tor-Browser-Paket zu benutzen, das du durch eine E-Mail an gettor(a)torproject.org oder von der Downloadseite bekommen kannst:
-torbutton.popup.pref_error = Torbutton kann Einstellungen in dem Tor-Browser Verzeichniss nicht aktualisieren.
-torbutton.popup.permission_denied = Bitte setze entweder die Berechtigungen des Tor-Browser Verzeichnisses zurück, oder kopiere es an einen neuen Ort.
-torbutton.popup.device_full = Es scheint als würde die Disk voll sein. Bitte machen sie etwas Platz frei, oder bewegen sie den Tor-Browser auf ein neues Gerät.
-torbutton.title.prompt_torbrowser = Wichtige Torbutton Information
-torbutton.popup.prompt_torbrowser = Torbutton funktioniert jetzt anders als vorher: es kann nichtmehr abgeschaltet werden.\n\nWir haben diese Änderung vorgenommen, da es nicht sicher ist, Torbutton auch in einem Browser zu benutzen, der auch für den Betrieb ohne Tor gedacht ist. Es gab zu viele Fehler, die wir sonst nicht hätten beheben können.\n\nWenn Sie Firefox weiterhin normal benutzen möchten, sollten Sie Torbutton deinstallieren, und das Tor Browser Bundle runterladen. Die Privatsphäre-Einstellungen des Tor Browsers sind außerdem denen des normalen Firefox überlegen, selbst wenn Firefox mit Torbutton benutzt wird.\n\nUm Torbutton zu entfernen, gehen Sie einfach auf Extras->Add-ons->Erweiterungen und klicken Sie auf Entfernen neben dem Torbutton.
+torbutton.popup.prompted_language = Um Ihre Privatsphäre zu erhöhen, kann Torbutton die jeweilige englische Version einer Webseite anfordern. Dies kann zur Folge haben, dass Webseiten, die sie lieber in Ihrer Muttersprache lesen würden, nun in Englisch dargestellt werden. \n\nSollen nun - zur Erhöhung Ihrer Privatsphäre - Webseiten in Englisch geladen werden?
+torbutton.popup.no_newnym = Torbutton kann Ihnen keine neue Identität geben, da es keinen Zugriff auf den Tor-Steueranschluss hatt.\n\nBenutzen Sie das Tor-Browser-Paket?
+torbutton.popup.use_tbb = Es scheint, als würden Sie Torbutton zusammen mit Firefox benutzen. Diese Kombination ist nicht länger eine empfohlene und sichere Konfiguration.\n\nAnstelle dieser Konfiguration, empfehlen wir Ihnen das neueste Tor-Browser-Paket zu benutzen, das Sie durch eine E-Mail an gettor(a)torproject.org oder von der Herunterladeseite bekommen können:
+torbutton.popup.pref_error = Torbutton kann die Einstellungen von Tor-Browser im Profilordner nicht aktualisieren.
+torbutton.popup.permission_denied = Bitte entweder die Berechtigungen des Tor-Browser-Ordners zurücksetzen, oder es an einen neuen Ort kopieren.
+torbutton.popup.device_full = Es scheint als würde das Medium voll sein. Bitte machen Sie etwas Platz frei, oder bewegen sie den Tor-Browser auf ein neues Gerät.
+torbutton.title.prompt_torbrowser = Wichtige Torbutton-Information
+torbutton.popup.prompt_torbrowser = Torbutton funktioniert jetzt anders als vorher: es kann nicht mehr abgeschaltet werden.\n\nWir haben diese Änderung vorgenommen, da es nicht sicher ist, Torbutton auch in einem Browser zu benutzen, der auch für den Betrieb ohne Tor gedacht ist. Es gab zu viele Fehler, die wir sonst nicht hätten beheben können.\n\nWenn Sie Firefox weiterhin normal benutzen möchten, sollten Sie Torbutton deinstallieren, und das Tor-Browser-Paket herunterladen. Die Privatsphäreeinstellungen des Tor-Browsers sind außerdem denen des normalen Firefox überlegen, selbst wenn Firefox mit Torbutton benutzt wird.\n\nUm Torbutton zu entfernen, gehen Sie einfach auf Extras->Add-ons->Erweiterungen und klicken Sie auf Entfernen neben dem Torbutton.
torbutton.popup.short_torbrowser = Wichtige Torbutton Information!\n\nTorbutton ist jetzt immer aktiviert.\n\nKlicken sie auf den Torbutton, um mehr Informationen zu erhalten.
-torbutton.popup.confirm_plugins = Plugins wie Flash können ihre Privatsphäre und Anonymität schädigen.\n\nSie können auch das Tor-Netzwerk umgehen, und ihren derzeitigen aufenthalsort und ihre IP-Adresse verraten.\n\nSind Sie sicher, dass Sie Plugins aktivieren wollen?\n\n
-torbutton.popup.never_ask_again = Nichtmehr nachfragen
+torbutton.popup.confirm_plugins = Erweiterungen wie Flash können ihre Privatsphäre und Anonymität schädigen.\n\nSie können auch das Tor-Netzwerk umgehen, und Ihren derzeitigen Aufenthaltsort und ihre IP-Adresse verraten.\n\nSind Sie sicher, dass Sie Erweiterungen aktivieren wollen?\n\n
+torbutton.popup.never_ask_again = Nicht mehr nachfragen
# Canvas permission prompt. Strings are kept here for ease of translation.
-canvas.siteprompt=Diese Website (%S) hat versucht, auf Image-Daten von einem Canvas zuzugreifen. Da Canvas Image-Daten dazu benutzt werden können, um Informationen über ihren Computer zu bekommen, wurden diesmal leere Image-Daten an die Website geschickt
-canvas.allow=In zukunft Erlauben
-canvas.allowAccessKey=A
-canvas.never=Niemlas für diese Website
-canvas.neverAccessKey=e
+canvas.siteprompt=Diese Webseite (%S) hat versucht, auf Bilddaten von einem Canvas zuzugreifen. Da Canvas Bilddaten dazu benutzt werden können, um Informationen über ihren Rechner zu bekommen, wurden diesmal leere Bilddaten an die Webseite geschickt
+canvas.allow=In Zukunft Erlauben
+canvas.allowAccessKey=I
+canvas.never=Niemals für diese Website
+canvas.neverAccessKey=N
diff --git a/src/chrome/locale/eu/aboutTor.dtd b/src/chrome/locale/eu/aboutTor.dtd
index 157346e..7afe64b 100644
--- a/src/chrome/locale/eu/aboutTor.dtd
+++ b/src/chrome/locale/eu/aboutTor.dtd
@@ -23,15 +23,6 @@
<!ENTITY aboutTor.search.label "Bilatu">
-<!-- Note to translators: the following 18 entities are used to construct a
- - sentence (either the SP or DDG entities are used, but not both at the
- - same time). In English, the sentence reads:
- - Search securely with Startpage.
- - or:
- - Search securely with DuckDuckGo.
- - The sentence contains two embedded links for "securely" and
- - the search engine ("Startpage" or "DuckDuckGo").
- -->
<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
diff --git a/src/chrome/locale/fr/torbutton.properties b/src/chrome/locale/fr/torbutton.properties
index 2b24b73..2204e2f 100644
--- a/src/chrome/locale/fr/torbutton.properties
+++ b/src/chrome/locale/fr/torbutton.properties
@@ -24,7 +24,7 @@ torbutton.prefs.crucial = (indispensable)
torbutton.popup.external.title = Charger un contenu externe ?
torbutton.popup.external.app = Une application externe est requise pour gérer :\n\n
torbutton.popup.external.note = \n\nNOTE : les applications externes ne sont a priori pas sécuritaires pour Tor et peuvent vous démasquer !\n
-torbutton.popup.external.suggest = \nSi vous n'avez pas confiance dans ce fichier, vous devriez soit l'enregistrer et le consulter hors-ligne ou dans une machine virtuelle VM sans réseau,⏎\nou envisager d'utiliser un proxy transparent Tor tel que Tails LiveCD ou torsocks.⏎\n
+torbutton.popup.external.suggest = \nSi vous n'avez pas confiance dans ce fichier, vous devriez soit l'enregistrer et le consulter hors-ligne ou dans une machine virtuelle VM sans réseau,\nou envisager d'utiliser un proxy transparent Tor tel que Tails LiveCD ou torsocks.\n
torbutton.popup.launch = Lancer l'application
torbutton.popup.cancel = Annuler
torbutton.popup.dontask = Toujours lancer les applications à partir de maintenant
@@ -34,7 +34,7 @@ torbutton.popup.captcha.ask = Torbutton a détecté un captcha Google. Voulez-vo
torbutton.popup.captcha.always = Toujours effectuer cette action à partir de maintenant
torbutton.popup.redirect = Rediriger
torbutton.popup.no_redirect = Ne pas rediriger
-torbutton.popup.prompted_language = Pour renforcer votre anonymat, Torbutton peut demander une version anglaise de la page Web. Les pages que vous préférez lire dans votre langue préférée pourraient alors s'afficher en anglais.⏎\n⏎\nVoulez-vous demander des pages Web en anglais pour améliorer votre anonymat ?
+torbutton.popup.prompted_language = Pour renforcer votre anonymat, Torbutton peut demander une version anglaise de la page Web. Les pages que vous préférez lire dans votre langue préférée pourraient alors s'afficher en anglais.\n\nVoulez-vous demander des pages Web en anglais afin d'améliorer votre anonymat ?
torbutton.popup.no_newnym = Torbutton ne peut pas délivrer une nouvelle identité de manière sécuritaire. Il n'a pas accès au port de contrôle de Tor.\n\nUtilisez-vous le paquet du Navigateur Tor ?
torbutton.popup.use_tbb = Il semble que vous utilisez Torbutton avec Firefox, ce qui n'est plus une configuration sécuritaire recommandée.\n\nEn remplacement, nous vous recommandons d'obtenir le dernier paquet du Navigateur Tor en envoyant un courriel à gettor(a)torproject.org ou en le téléchargeant depuis l'adresse URL suivante :
torbutton.popup.pref_error = Torbutton ne peut pas mettre à jour les préférences dans le répertoire du profil du Navigateur Tor.
diff --git a/src/chrome/locale/it/aboutTor.dtd b/src/chrome/locale/it/aboutTor.dtd
index 151a7d5..09e2064 100644
--- a/src/chrome/locale/it/aboutTor.dtd
+++ b/src/chrome/locale/it/aboutTor.dtd
@@ -30,7 +30,7 @@
<!ENTITY aboutTor.torInfo2.label "Nazione & Indirizzo IP:">
<!ENTITY aboutTor.torInfo3.label "Nodo di Uscita:">
<!ENTITY aboutTor.torInfo4.label "Questo server non registra alcuna informazione circa i visitatori.">
-<!ENTITY aboutTor.whatnextQuestion.label "E Dopo?">
+<!ENTITY aboutTor.whatnextQuestion.label "E adesso?">
<!ENTITY aboutTor.whatnextAnswer.label "Tor NON è tutto ciò che ti serve per navigare anonimamente! Potresti aver bisogno di cambiare le tue abitudini di navigazione per accertarti che la tua identità rimanga al sicuro.">
<!ENTITY aboutTor.whatnext.label "Consigli Per Restare Anonimo »">
<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
diff --git a/src/chrome/locale/it/torbutton.dtd b/src/chrome/locale/it/torbutton.dtd
index 0372363..a512ba7 100644
--- a/src/chrome/locale/it/torbutton.dtd
+++ b/src/chrome/locale/it/torbutton.dtd
@@ -14,7 +14,7 @@
<!ENTITY torbutton.about.version "Versione:">
<!ENTITY torbutton.about.summary "Proteggi la privacy della navigazione Tor">
<!ENTITY torbutton.about.code "Sviluppatori:">
-<!ENTITY torbutton.about.maintainer "Mantenitori:">
+<!ENTITY torbutton.about.maintainer "Maintainer:">
<!ENTITY torbutton.about.security_review "Revisori per la sicurezza:">
<!ENTITY torbutton.about.donate "Se apprezzate Tor, prendete in considerazione di">
<!ENTITY torbutton.about.make_donation "fare una donazione.">
diff --git a/src/chrome/locale/ko/aboutTor.dtd b/src/chrome/locale/ko/aboutTor.dtd
index d388ca4..2817dd6 100644
--- a/src/chrome/locale/ko/aboutTor.dtd
+++ b/src/chrome/locale/ko/aboutTor.dtd
@@ -4,45 +4,45 @@
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
-<!ENTITY aboutTor.title "">
+<!ENTITY aboutTor.title "Tor란?">
-<!ENTITY aboutTor.outOfDateTorOn.label "">
-<!ENTITY aboutTor.outOfDateTorOff.label "">
-<!ENTITY aboutTor.outOfDate2.label "">
+<!ENTITY aboutTor.outOfDateTorOn.label "그러나, 이 브라우저가 업데이트 되지 않았습니다.">
+<!ENTITY aboutTor.outOfDateTorOff.label "또한, 이 브라우저가 업데이트 되지 않았습니다.">
+<!ENTITY aboutTor.outOfDate2.label "양파 모양을 클릭하고 Tor 브라우저 번들 업데이트를 다운로드 합니다.">
-<!ENTITY aboutTor.check.label "">
+<!ENTITY aboutTor.check.label "Tor 네트워크 설정 테스트">
-<!ENTITY aboutTor.success.label "">
-<!ENTITY aboutTor.success2.label "">
-<!ENTITY aboutTor.success3.label "">
-<!ENTITY aboutTor.failure.label "">
-<!ENTITY aboutTor.failure2.label "">
-<!ENTITY aboutTor.failure3prefix.label "">
-<!ENTITY aboutTor.failure3Link "">
+<!ENTITY aboutTor.success.label "축하합니다!">
+<!ENTITY aboutTor.success2.label "이 브라우저는 Tor를 사용하도록 구성되었습니다.">
+<!ENTITY aboutTor.success3.label "여러분은 이제 익명으로 자유롭게 인터넷을 탐색 할 수 있습니다.">
+<!ENTITY aboutTor.failure.label "뭔가 문제가 발생하였습니다.">
+<!ENTITY aboutTor.failure2.label "Tor가 이 브라우저에서 작동하지 않습니다.">
+<!ENTITY aboutTor.failure3prefix.label "도움이 필요한 경우 접속하시길 바랍니다.">
+<!ENTITY aboutTor.failure3Link "help(a)rt.torproject.org">
<!ENTITY aboutTor.failure3suffix.label " ">
<!ENTITY aboutTor.search.label "검색">
-<!ENTITY aboutTor.searchSPPost.link "">
-<!ENTITY aboutTor.searchDDGPost.link "">
-
-<!ENTITY aboutTor.torInfo1.label "">
-<!ENTITY aboutTor.torInfo2.label "">
-<!ENTITY aboutTor.torInfo3.label "">
-<!ENTITY aboutTor.torInfo4.label "">
-<!ENTITY aboutTor.whatnextQuestion.label "">
-<!ENTITY aboutTor.whatnextAnswer.label "">
-<!ENTITY aboutTor.whatnext.label "">
-<!ENTITY aboutTor.whatnext.link "">
-<!ENTITY aboutTor.helpInfo1.label "">
-<!ENTITY aboutTor.helpInfo2.label "">
-<!ENTITY aboutTor.helpInfo3.label "">
-<!ENTITY aboutTor.helpInfo3.link "">
-<!ENTITY aboutTor.helpInfo4.label "">
-<!ENTITY aboutTor.helpInfo4.link "">
-<!ENTITY aboutTor.helpInfo5.label "">
-<!ENTITY aboutTor.helpInfo5.link "">
-
-<!ENTITY aboutTor.footer.label "">
-<!ENTITY aboutTor.learnMore.label "">
-<!ENTITY aboutTor.learnMore.link "">
+<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
+<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
+
+<!ENTITY aboutTor.torInfo1.label "추가 정보 :">
+<!ENTITY aboutTor.torInfo2.label "국가 & IP 주소 :">
+<!ENTITY aboutTor.torInfo3.label "출구 node : ">
+<!ENTITY aboutTor.torInfo4.label "이 서버는 방문자에 대한 정보를 기록하지 않습니다.">
+<!ENTITY aboutTor.whatnextQuestion.label "그 다음은?">
+<!ENTITY aboutTor.whatnextAnswer.label "Tor는 절대로 '완벽한' 익명을 보장하는 브라우저가 아닙니다. 때문에 '완벽한' 익명을 위해서는 브라우저 사용 습관을 바꾸셔야 합니다.">
+<!ENTITY aboutTor.whatnext.label "익명으로 알짱거릴 때의 팁 >>">
+<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.helpInfo1.label "여러분도 도울 수 있습니다!">
+<!ENTITY aboutTor.helpInfo2.label "여러분이 Tor 네트워크를 보다 빠르고 강하게 만들 수 있는 방법이 있습니다.">
+<!ENTITY aboutTor.helpInfo3.label "Tor 중계 서버 node 실행 >>">
+<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
+<!ENTITY aboutTor.helpInfo4.label "자원 봉사로 Tor 돕기 >>">
+<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
+<!ENTITY aboutTor.helpInfo5.label "기부하기 >>">
+<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
+
+<!ENTITY aboutTor.footer.label "Tor 프로젝트란? 온라인 익명 및 개인 정보 보호의 연구, 개발 및 교육에 힘쓰는 US 501(c)(3) 비영리 단체입니다.">
+<!ENTITY aboutTor.learnMore.label "Tor 프로젝트에 대하여 더 알고 싶으시다면 >>">
+<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
diff --git a/src/chrome/locale/ko/brand.dtd b/src/chrome/locale/ko/brand.dtd
index e34f480..4b55e20 100644
--- a/src/chrome/locale/ko/brand.dtd
+++ b/src/chrome/locale/ko/brand.dtd
@@ -2,7 +2,7 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-<!ENTITY brandShortName "">
-<!ENTITY brandFullName "">
-<!ENTITY vendorShortName "">
-<!ENTITY trademarkInfo.part1 "">
+<!ENTITY brandShortName "Tor 브라우저">
+<!ENTITY brandFullName "Tor 브라우저">
+<!ENTITY vendorShortName "Tor 프로젝트">
+<!ENTITY trademarkInfo.part1 "파이어폭스와 파이어폭스 로고들은 모질라 재단의 등록 상표입니다.">
diff --git a/src/chrome/locale/ko/brand.properties b/src/chrome/locale/ko/brand.properties
index 6598ccd..8273888 100644
--- a/src/chrome/locale/ko/brand.properties
+++ b/src/chrome/locale/ko/brand.properties
@@ -2,14 +2,14 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-# brandShortName=TorBrowser
-# brandFullName=Tor Browser
-# vendorShortName=Tor Project
+brandShortName=Tor 브라우저
+brandFullName=Tor 브라우저
+vendorShortName=Tor 프로젝트
-# homePageSingleStartMain=Firefox Start, a fast home page with built-in search
-# homePageImport=Import your home page from %S
+homePageSingleStartMain=파이어폭스를 시작합니다.
+homePageImport=%S 에서 홈페이지 가져오기
-# homePageMigrationPageTitle=Home Page Selection
-# homePageMigrationDescription=Please select the home page you wish to use:
+homePageMigrationPageTitle=홈페이지 선택
+homePageMigrationDescription=사용하고 싶으신 홈페이지를 선택하십시오.
-# syncBrandShortName=Sync
+syncBrandShortName=동기화
diff --git a/src/chrome/locale/ko/browser.properties b/src/chrome/locale/ko/browser.properties
index fd25b10..a2b61b5 100644
--- a/src/chrome/locale/ko/browser.properties
+++ b/src/chrome/locale/ko/browser.properties
@@ -1,13 +1,13 @@
# Default home page
-# browser.startup.homepage=about:tor
+browser.startup.homepage=Tor에 관하여
# Spell checker dictionary
-# spellchecker.dictionary=en_US
+spellchecker.dictionary=영어-미국
# Default search engine
-# browser.search.defaultenginename=Startpage
+browser.search.defaultenginename=시작 페이지
# Search engine order (order displayed in the search bar dropdown)
-# browser.search.order.1=Startpage
-# browser.search.order.2=DuckDuckGo
-# browser.search.order.3=Google
+browser.search.order.1=시작 페이지
+browser.search.order.2=DuckDuckGo
+browser.search.order.3=구글
diff --git a/src/chrome/locale/ko/torbutton.dtd b/src/chrome/locale/ko/torbutton.dtd
index b9f6feb..c936759 100644
--- a/src/chrome/locale/ko/torbutton.dtd
+++ b/src/chrome/locale/ko/torbutton.dtd
@@ -1,30 +1,30 @@
<!ENTITY torbutton.prefs.title "Torbutton 환경 설정">
-<!ENTITY torbutton.prefs.tor_settings "프록시 서버 설정">
-<!ENTITY torbutton.prefs.recommended_settings "내가 사용하고 있는 파이어폭스를 위한 추천 설정 사용">
+<!ENTITY torbutton.prefs.tor_settings "프록시 설정">
+<!ENTITY torbutton.prefs.recommended_settings "현재 추천된 프록시 설정 사용">
<!ENTITY torbutton.prefs.use_privoxy "Privoxy 사용">
<!ENTITY torbutton.prefs.use_polipo "Polipo 사용">
<!ENTITY torbutton.prefs.custom_settings "사용자 지정 프록시 설정 사용">
<!ENTITY torbutton.prefs.proxy.host.http "HTTP 프록시 주소:">
<!ENTITY torbutton.prefs.proxy.host.https "SSL 프록시 주소:">
-<!ENTITY torbutton.prefs.proxy.host.ftp "FTP 프록시 :">
-<!ENTITY torbutton.prefs.proxy.host.gopher "Gopher 프록시 :">
+<!ENTITY torbutton.prefs.proxy.host.ftp "FTP 프록시 주소:">
+<!ENTITY torbutton.prefs.proxy.host.gopher "Gopher 프록시 주소:">
<!ENTITY torbutton.prefs.proxy.host.socks "SOCKS :">
<!ENTITY torbutton.prefs.proxy.port "포트 : ">
<!ENTITY torbutton.about.title "Torbutton에 대하여">
<!ENTITY torbutton.about.version "버전:">
-<!ENTITY torbutton.about.summary "Tor 브라우징의 프라이버시 보호">
+<!ENTITY torbutton.about.summary "Tor 브라우징의 사생활 보호">
<!ENTITY torbutton.about.code "코드 공헌자:">
<!ENTITY torbutton.about.maintainer "관리자 :">
<!ENTITY torbutton.about.security_review "보안 리뷰:">
-<!ENTITY torbutton.about.donate "Tor를 사용하는 것이 좋으시다면, 기여할 수 있습니다">
-<!ENTITY torbutton.about.make_donation "기부하기">
-<!ENTITY torbutton.pref_connection.notice "이 설정을 바꾸는 것을 비활성화합니다">
-<!ENTITY torbutton.pref_connection.more_info "추가 ">
+<!ENTITY torbutton.about.donate "Tor를 사용하는 것이 좋으시다면 모르겠소만,">
+<!ENTITY torbutton.about.make_donation "후원하기">
+<!ENTITY torbutton.pref_connection.notice "이렇게 설정을 바꿀 수 없습니다.">
+<!ENTITY torbutton.pref_connection.more_info "추가 정보">
<!ENTITY torbutton.pref_connection_more_info.title "도움말">
-<!ENTITY torbutton.pref_connection_more_info.text "Torbutton이 현재 활성화되었습니다. 만약 Tor 프록시가 아닌 일반 프록시 서버 설정을 하시려면, Torbutton을 비활성화하고 복귀해 . 만약 Tor 프록시 설정을 바꾸고 싶으시다면, Torbutton 설정 화면을 사용해 주세요.">
+<!ENTITY torbutton.pref_connection_more_info.text "Torbutton이 현재 활성화되었습니다. 만약 Tor 프록시가 아닌 일반 프록시 서버 설정을 하시려면, Torbutton을 비활성화하고 이 창으로 돌아오십시오. 혹시 Tor 프록시 설정을 바꾸고 싶으시다면, Torbutton 설정 화면을 사용해 주세요.">
<!ENTITY torbutton.context_menu.new_identity "새로운 신원">
<!ENTITY torbutton.context_menu.new_identity_key "I">
-<!ENTITY torbutton.context_menu.toggle "Tor-Toggle 상태">
+<!ENTITY torbutton.context_menu.toggle "Tor 작동 상태">
<!ENTITY torbutton.context_menu.toggle.key "T">
<!ENTITY torbutton.context_menu.preferences "설정...">
<!ENTITY torbutton.context_menu.preferences.key "P">
@@ -34,7 +34,7 @@
<!ENTITY torbutton.context_menu.networksettings.key "S">
<!ENTITY torbutton.context_menu.downloadUpdate "Tor browser bundle 업데이트 다운로드">
<!ENTITY torbutton.context_menu.downloadUpdate.key "U">
-<!ENTITY torbutton.context_menu.cookieProtections "쿠키 ">
+<!ENTITY torbutton.context_menu.cookieProtections "쿠키 보호">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.context_menu.copyTor "Tor URL 복사">
<!ENTITY torbutton.context_menu.copyTor.key "P">
@@ -43,36 +43,36 @@
<!ENTITY torbutton.context_menu.openTorWindow "Tor URL을 새 창에서 열기">
<!ENTITY torbutton.context_menu.openTorWindow.key "d">
<!ENTITY torbutton.button.label "Torbutton">
-<!ENTITY torbutton.button.tooltip "Torbutton 초기화">
+<!ENTITY torbutton.button.tooltip "Torbutton 설정 초기화">
<!ENTITY torbutton.prefs.sec_settings "보안 설정">
-<!ENTITY torbutton.prefs.block_thread "Tor 사용하는 동안 히스토리를 외부에서 읽어가는 것을 막기 (중요)">
-<!ENTITY torbutton.prefs.block_thwrite "Tor 사용중 히스토리 쓰기 막기 (추천)">
-<!ENTITY torbutton.prefs.block_nthread "Tor를 사용하지 않을 때 히스토리를 외부에서 읽어가는 것을 막기 (선택)">
-<!ENTITY torbutton.prefs.block_nthwrite "Tor를 사용하지 않을 때 히스토리를 쓰는 것을 막기 (선택)">
-<!ENTITY torbutton.prefs.clear_history "Tor Toggle시 히스토리 초기화 (선택)">
-<!ENTITY torbutton.prefs.clear_cache " Tor Toggle 시 Tor 디스크 캐시를 막고 모든 캐시 초기화">
-<!ENTITY torbutton.prefs.block_cache "Tor 작동중 디스크와 메모리 캐시 접근 차단">
-<!ENTITY torbutton.prefs.cookie_jars "보호되는 영역에 일반 쿠키 저장">
-<!ENTITY torbutton.prefs.cookie_protection "선택하기 위한 쿠키 보호 다이어로그 사용">
-<!ENTITY torbutton.prefs.mmm_cookies "수동으로 3사 쿠키 관리(위험)">
-<!ENTITY torbutton.prefs.clear_cookies "Tor toggle에서 쿠키 초기화">
-<!ENTITY torbutton.prefs.disable_plugins "Tor 사용중 플러그인 비활성화 (중요)">
+<!ENTITY torbutton.prefs.block_thread "Tor 사용 시, 사용 기록을 외부에서 읽어가는 것을 차단 (중요)">
+<!ENTITY torbutton.prefs.block_thwrite "Tor 사용 시, 사용 기록을 남기지 않기 (추천)">
+<!ENTITY torbutton.prefs.block_nthread "Tor를 사용하지 않을 때, 사용 기록을 외부에서 읽어가는 것을 차단 (선택)">
+<!ENTITY torbutton.prefs.block_nthwrite "Tor를 사용하지 않을 때, 사용 기록 쓰는 것을 막기 (선택)">
+<!ENTITY torbutton.prefs.clear_history "Tor 작동 시 사용 기록 초기화 (선택)">
+<!ENTITY torbutton.prefs.clear_cache "Tor 작동 시 Tor가 임시폴더에 기록되는 것을 차단하고, 임시폴더 초기화">
+<!ENTITY torbutton.prefs.block_cache "Tor 작동 중 Tor가 임시폴더에 기록되는 것을 차단">
+<!ENTITY torbutton.prefs.cookie_jars "보호되는 영역에 일반 임시파일 저장">
+<!ENTITY torbutton.prefs.cookie_protection "쿠키 보호 선택 사용">
+<!ENTITY torbutton.prefs.mmm_cookies "수동으로 임시파일 관리 (위험)">
+<!ENTITY torbutton.prefs.clear_cookies "Tor 작동 시 모든 임시파일 삭제">
+<!ENTITY torbutton.prefs.disable_plugins "Tor 사용 중 플러그인 비활성화 (중요)">
<!ENTITY torbutton.prefs.kill_bad_js "위험한 자바스크립트 차단 (중요)">
-<!ENTITY torbutton.prefs.isolate_content "Tor 상태에서 동적인 콘텐츠 격리 (중요)">
+<!ENTITY torbutton.prefs.isolate_content "자동 실행되는 콘텐츠를 Tor 상태에서 격리 (중요)">
<!ENTITY torbutton.prefs.no_updates "Tor 브라우저 사용중 업데이트 비활성화">
-<!ENTITY torbutton.prefs.set_uagent "Tor 사용시 유저 에이전트 설정 (중요)">
-<!ENTITY torbutton.prefs.dynamic "동적 콘텐츠">
+<!ENTITY torbutton.prefs.set_uagent "Tor 사용 시 사용자 에이전트 설정 (중요)">
+<!ENTITY torbutton.prefs.dynamic "자동 실행 콘텐츠">
<!ENTITY torbutton.prefs.cookies "쿠키">
<!ENTITY torbutton.prefs.cache "캐시">
<!ENTITY torbutton.prefs.history "방문/탐색 기록">
-<!ENTITY torbutton.prefs.no_search "Tor 사용중 검색 엔진 제안 비활성화 (추천)">
+<!ENTITY torbutton.prefs.no_search "Tor 사용중 검색 엔진의 추천을 비활성화 (추천)">
<!ENTITY torbutton.prefs.shutdown "종료">
-<!ENTITY torbutton.prefs.tor_shutdown "Tor가 활성화된 브라우저가 종료 시 3사 쿠키 삭제">
-<!ENTITY torbutton.prefs.all_shutdown "전체 인터넷 브라우저 종료 시 3사 쿠키 삭제">
+<!ENTITY torbutton.prefs.tor_shutdown "Tor가 활성화된 브라우저가 종료 시 모든 쿠키 삭제">
+<!ENTITY torbutton.prefs.all_shutdown "전체 인터넷 브라우저 종료 시 모든 쿠키 삭제">
<!ENTITY torbutton.prefs.no_shutdown "종료시 쿠키를 삭제하지 않음">
<!ENTITY torbutton.prefs.disable_sessionstore "세션을 저장하지 않음 (추천)">
<!ENTITY torbutton.prefs.headers "헤더">
-<!ENTITY torbutton.prefs.spoof_english "US 영어 브라우저로 조작">
+<!ENTITY torbutton.prefs.spoof_english "미국식 영어 브라우저로 조작">
<!ENTITY torbutton.prefs.refererspoofing "리퍼러 스푸핑">
<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.prefs.smartspoof "Tor 사용시 스마트 리퍼러 조작 (도메인 리퍼러를 가로질러 조작)">
diff --git a/src/chrome/locale/pl/brand.dtd b/src/chrome/locale/pl/brand.dtd
index 4cc23fd..5f8db34 100644
--- a/src/chrome/locale/pl/brand.dtd
+++ b/src/chrome/locale/pl/brand.dtd
@@ -2,7 +2,7 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-<!ENTITY brandShortName "PrzeglądarkaTor'a">
-<!ENTITY brandFullName "Przeglądarka Tor'a">
+<!ENTITY brandShortName "Przeglądarka Tor">
+<!ENTITY brandFullName "Przeglądarka Tor">
<!ENTITY vendorShortName "Project Tor">
<!ENTITY trademarkInfo.part1 "Firefox i jego loga są znakami towarowymi Mozilla Foundation.">
diff --git a/src/chrome/locale/pl/brand.properties b/src/chrome/locale/pl/brand.properties
index 6283369..d40c141 100644
--- a/src/chrome/locale/pl/brand.properties
+++ b/src/chrome/locale/pl/brand.properties
@@ -2,8 +2,8 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-brandShortName=PrzeglądarkaTor'a
-brandFullName=Przeglądarka Tor'a
+brandShortName=Przeglądarka Tor
+brandFullName=Przeglądarka Tor
vendorShortName=Project Tor
homePageSingleStartMain=Firefox Start, szybka strona domowa z wbudowana wyszukiwarką
diff --git a/src/chrome/locale/pl/torbutton.dtd b/src/chrome/locale/pl/torbutton.dtd
index bb88dbe..3e93e2d 100644
--- a/src/chrome/locale/pl/torbutton.dtd
+++ b/src/chrome/locale/pl/torbutton.dtd
@@ -16,7 +16,7 @@
<!ENTITY torbutton.about.code "Wkłady kodu:">
<!ENTITY torbutton.about.maintainer "Opiekun:">
<!ENTITY torbutton.about.security_review "Przegląd bezpieczeństwa:">
-<!ENTITY torbutton.about.donate "Jeśil lubisz korzystać z Tora, możesz rozważyć">
+<!ENTITY torbutton.about.donate "Jeśli lubisz korzystać z Tora, możesz rozważyć">
<!ENTITY torbutton.about.make_donation "złożenie dotacji.">
<!ENTITY torbutton.pref_connection.notice "Aby zmienić te ustawienia wyłącz Torbutton.">
<!ENTITY torbutton.pref_connection.more_info "Więcej informacji">
@@ -24,7 +24,7 @@
<!ENTITY torbutton.pref_connection_more_info.text "Torbutton jest włączony. Jeśli chcesz zmienić inne ustawienia proxy musisz wyłączyć Torbutton i powrócić tutaj. Jeśli chcesz zmienić ustawienia proxy Tor, zrób to tutaj.">
<!ENTITY torbutton.context_menu.new_identity "Nowa Tożsamość">
<!ENTITY torbutton.context_menu.new_identity_key "o">
-<!ENTITY torbutton.context_menu.toggle "Zmień status Tor">
+<!ENTITY torbutton.context_menu.toggle "Zmień status Tora">
<!ENTITY torbutton.context_menu.toggle.key "Z">
<!ENTITY torbutton.context_menu.preferences "Ustawienia">
<!ENTITY torbutton.context_menu.preferences.key "U">
@@ -60,7 +60,7 @@
<!ENTITY torbutton.prefs.kill_bad_js "Nadzoruj niebezpieczne skrypty (krytyczne)">
<!ENTITY torbutton.prefs.isolate_content "Izoluj treść dynamiczną (krytyczne)">
<!ENTITY torbutton.prefs.no_updates "Wyłącz uaktualnienia podczas używanie Tora">
-<!ENTITY torbutton.prefs.set_uagent "Ustaw identyfikację przeglądarki podczas używania Tora (ważne)">
+<!ENTITY torbutton.prefs.set_uagent "Ustaw identyfikację przeglądarki podczas używania Tora (krytyczne)">
<!ENTITY torbutton.prefs.dynamic "Zawartość dynamiczna">
<!ENTITY torbutton.prefs.cookies "Ciasteczka">
<!ENTITY torbutton.prefs.cache "Pamięć podręczna">
diff --git a/src/chrome/locale/pl/torbutton.properties b/src/chrome/locale/pl/torbutton.properties
index ddc1acb..3cbc268 100644
--- a/src/chrome/locale/pl/torbutton.properties
+++ b/src/chrome/locale/pl/torbutton.properties
@@ -16,15 +16,15 @@ torbutton.popup.test.success = Test proxy zakończony pomyślnie!
torbutton.popup.test.failure = Test proxy się NIE POWIÓDŁ! Sprawdź swoje ustawienia proxy i Polipo.
torbutton.popup.test.confirm_toggle = Najnowszemu testowi proxy Tor nie udało się skorzystać z Tora.\n\nNa pewno chcesz włączyć mimo tego?\n\nUwaga: Jeśli problem został poprawiony, możesz ponownie uruchomić test w oknie Preferencji Proxy Torbuttona, aby wyłączyć to ostrzeżenie.
torbutton.popup.test.ff3_notice = Kliknij OK aby przetestować ustawienia proxy. Testowanie odbywa się w tle. Prosimy o cierpliwość.
-torbutton.panel.label.verified = Tor obecny
+torbutton.panel.label.verified = Tor zweryfikowany
torbutton.popup.test.auto_failed = Automatyczny test proxy Tora zakończył się niepowodzeniem.\n\nCzy mimo to chcesz kontynuować?
torbutton.prefs.recommended = (zalecane)
torbutton.prefs.optional = (opcjonalnie)
-torbutton.prefs.crucial = (wymagane)
+torbutton.prefs.crucial = (krytyczne)
torbutton.popup.external.title = Załadować zewnętrzną zawartość?
-torbutton.popup.external.app = Zawnętrzna aplikacja jest wymagana, aby obsłużyć:\n\n
+torbutton.popup.external.app = Zewnętrzna aplikacja jest wymagana, aby obsłużyć:\n\n
torbutton.popup.external.note = \n\nUWAGA: Zewnętrzne aplikacje NIE są domyślnie bezpieczne przy używaniu Tora i mogą Cię odkryć!\n
-torbutton.popup.external.suggest = \nJesli ten plik jest niezaufany, powinno się go zachować do oglądania offline lub w maszynie wirtualnej,\nlub rozważyć używanie przezroczystego proxy Tor, jak Tails LiveCD lub torsocks.\n
+torbutton.popup.external.suggest = \nJeśli ten plik jest niezaufany, powinno się go zachować do oglądania offline lub w maszynie wirtualnej,\nlub rozważyć używanie przezroczystego proxy Tor, jak Tails LiveCD lub torsocks.\n
torbutton.popup.launch = Uruchom aplikację
torbutton.popup.cancel = Anuluj
torbutton.popup.dontask = Od teraz zawsze uruchamiaj aplikacje
@@ -33,9 +33,9 @@ torbutton.popup.captcha.title = Unikać Google Captcha?
torbutton.popup.captcha.ask = Torbutton wykrył Google Captcha. Czy chcesz, aby Cię przekierować na inną wyszukiwarkę dla tego zapytania?
torbutton.popup.captcha.always = Od teraz zawsze wykonuj tę akcję
torbutton.popup.redirect = Przekieruj
-torbutton.popup.no_redirect = Nie przekierowywuj
+torbutton.popup.no_redirect = Nie przekierowuj
torbutton.popup.prompted_language = Aby dać Ci więcej prywatności, Torbutton może żądać angielskich wersji stron internetowych. To może spowodować, że strony, które wolisz czytać we własnym języku będą się zamiast tego wyświetlać po angielsku.\n\nCzy chcesz żądać stron w języku angielskim dla lepszej prywatności?
-torbutton.popup.no_newnym = Torbutton nie może bezpiecznie dać Ci nowej tożsamości. Nie ma dostępu do Portu Kontrolnego Tora.\n\nUzywasz Paczki Tora z Przeglądarką?
+torbutton.popup.no_newnym = Torbutton nie może bezpiecznie dać Ci nowej tożsamości. Nie ma dostępu do Portu Kontrolnego Tora.\n\nUżywasz Paczki Tora z Przeglądarką?
torbutton.popup.use_tbb = Wygląda na to, że używasz Torbuttona z Firefoksem, co już nie jest zalecaną bezpieczną konfiguracją.\n\nZamiast tego, zalecamy pobranie najnowszej Paczki Tora z Przeglądarką poprzez wysłanie e-maila na gettor(a)torproject.org lub pobranie jej pod następującym adresem:
torbutton.popup.pref_error = Torbutton nie może zaktualizować preferencji w katalogu profilowym Przeglądarki Tora.
torbutton.popup.permission_denied = Proszę albo ponownie ustawić uprawnienia do katalogu Przeglądarki Tora albo skopiować go w nowe miejsce.
diff --git a/src/chrome/locale/pt/brand.properties b/src/chrome/locale/pt/brand.properties
index 2277fd1..e08b760 100644
--- a/src/chrome/locale/pt/brand.properties
+++ b/src/chrome/locale/pt/brand.properties
@@ -6,7 +6,7 @@ brandShortName=Navegador Tor
brandFullName=Navegador Tor
vendorShortName=Projeto Tor
-homePageSingleStartMain=Página inicial Firefox, uma página inicial com busca incluída
+homePageSingleStartMain=Página Inicial do Firefox, uma página inicial rápida com procura incluída
homePageImport=Importe a página inicial a do %S
homePageMigrationPageTitle=Seleção da Página Inicial
diff --git a/src/chrome/locale/sv/aboutTor.dtd b/src/chrome/locale/sv/aboutTor.dtd
index 9f14022..d3b5e1f 100644
--- a/src/chrome/locale/sv/aboutTor.dtd
+++ b/src/chrome/locale/sv/aboutTor.dtd
@@ -4,44 +4,45 @@
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
-<!ENTITY aboutTor.title "About Tor">
+<!ENTITY aboutTor.title "Om Tor">
-<!ENTITY aboutTor.outOfDateTorOn.label "HOWEVER, this browser is out of date.">
-<!ENTITY aboutTor.outOfDateTorOff.label "ALSO, this browser is out of date.">
-<!ENTITY aboutTor.outOfDate2.label "Click on the onion and then choose Download Tor Browser Bundle Update.">
+<!ENTITY aboutTor.outOfDateTorOn.label "EMELLERTID, denna webbläsare är ej uppdaterad.">
+<!ENTITY aboutTor.outOfDateTorOff.label "DESSUTOM, denna webbläsare är ej uppdaterad.">
+<!ENTITY aboutTor.outOfDate2.label "Klicka på löken och välj sedan Ladda ner uppdatering för Tor Browser Bundle.">
-<!ENTITY aboutTor.check.label "Test Tor Network Settings">
+<!ENTITY aboutTor.check.label "Testa nätverksinställningarna för Tor">
-<!ENTITY aboutTor.success.label "Congratulations!">
-<!ENTITY aboutTor.success2.label "This browser is configured to use Tor.">
-<!ENTITY aboutTor.success3.label "You are now free to browse the Internet anonymously.">
-<!ENTITY aboutTor.failure.label "Something Went Wrong!">
-<!ENTITY aboutTor.failure2.label "Tor is not working in this browser.">
-<!ENTITY aboutTor.failure3prefix.label "For assistance, please contact ">
+<!ENTITY aboutTor.success.label "Gratulerar!">
+<!ENTITY aboutTor.success2.label "Denna webbläsare är konfigurerad att använda Tor.">
+<!ENTITY aboutTor.success3.label "Du kan nu surfa på nätet anonymt.">
+<!ENTITY aboutTor.failure.label "Någonting gick fel!">
+<!ENTITY aboutTor.failure2.label "Tor fungerar inte i den här webbläsaren.">
+<!ENTITY aboutTor.failure3prefix.label "För assistans (på engelska), vänligen kontakta">
<!ENTITY aboutTor.failure3Link "help(a)rt.torproject.org">
<!ENTITY aboutTor.failure3suffix.label ".">
-<!ENTITY aboutTor.search.label "Search">
-<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/do/search">
+<!ENTITY aboutTor.search.label "Sök">
+
+<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
-<!ENTITY aboutTor.torInfo1.label "Additional Info:">
-<!ENTITY aboutTor.torInfo2.label "Country & IP Address:">
-<!ENTITY aboutTor.torInfo3.label "Exit Node:">
-<!ENTITY aboutTor.torInfo4.label "This server does not log any information about visitors.">
-<!ENTITY aboutTor.whatnextQuestion.label "What Next?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor is NOT all you need to browse anonymously! You may need to change some of your browsing habits to ensure your identity stays safe.">
-<!ENTITY aboutTor.whatnext.label "Tips On Staying Anonymous »">
+<!ENTITY aboutTor.torInfo1.label "Ytterligare information:">
+<!ENTITY aboutTor.torInfo2.label "Land och IP-adress:">
+<!ENTITY aboutTor.torInfo3.label "Exit nod:">
+<!ENTITY aboutTor.torInfo4.label "Den här servern sparar inte någon information om besökare.">
+<!ENTITY aboutTor.whatnextQuestion.label "Och nu då?">
+<!ENTITY aboutTor.whatnextAnswer.label "Tor är INTE allt som behövs för att vara anonym på nätet! Du behöver kanske ändra några av dina vanor för att försäkra att din identitet förblir skyddad.">
+<!ENTITY aboutTor.whatnext.label "Tips på hur man förblir anonym »">
<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
-<!ENTITY aboutTor.helpInfo1.label "You Can Help!">
-<!ENTITY aboutTor.helpInfo2.label "There are many ways you can help make the Tor Network faster and stronger:">
-<!ENTITY aboutTor.helpInfo3.label "Run a Tor Relay Node »">
+<!ENTITY aboutTor.helpInfo1.label "Du kan hjälpa till!">
+<!ENTITY aboutTor.helpInfo2.label "Det finns många sätt du kan hjälpa till med att göra Tor-nätverket snabbare och säkrare:">
+<!ENTITY aboutTor.helpInfo3.label "Kör ett Tor-relä »">
<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "Volunteer Your Services »">
+<!ENTITY aboutTor.helpInfo4.label "Erbjud din hjälp »">
<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "Make a Donation »">
+<!ENTITY aboutTor.helpInfo5.label "Donera »">
<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
-<!ENTITY aboutTor.footer.label "The Tor Project is a US 501(c)(3) non-profit dedicated to the research, development, and education of online anonymity and privacy.">
-<!ENTITY aboutTor.learnMore.label "Learn more about The Tor Project »">
+<!ENTITY aboutTor.footer.label "Tor projektet är en US 501(c)(3) non-profit organisation som utför forskning, utveckling, och utbildning inom online anonymitet och integritet.">
+<!ENTITY aboutTor.learnMore.label "Mer information om Tor-projektet »">
<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
diff --git a/src/chrome/locale/sv/brand.dtd b/src/chrome/locale/sv/brand.dtd
index 76e405d..bb0174f 100644
--- a/src/chrome/locale/sv/brand.dtd
+++ b/src/chrome/locale/sv/brand.dtd
@@ -3,6 +3,6 @@
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<!ENTITY brandShortName "TorBrowser">
-<!ENTITY brandFullName "Tor Browser">
-<!ENTITY vendorShortName "Tor Project">
-<!ENTITY trademarkInfo.part1 "Firefox and the Firefox logos are trademarks of the Mozilla Foundation.">
+<!ENTITY brandFullName "Tor webbläsaren">
+<!ENTITY vendorShortName "Tor projektet">
+<!ENTITY trademarkInfo.part1 "Firefox och Firefox logotypen är varumärken tillhörande Mozilla Foundation.">
diff --git a/src/chrome/locale/sv/brand.properties b/src/chrome/locale/sv/brand.properties
index 9ae168e..3bf264b 100644
--- a/src/chrome/locale/sv/brand.properties
+++ b/src/chrome/locale/sv/brand.properties
@@ -3,13 +3,13 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
brandShortName=TorBrowser
-brandFullName=Tor Browser
-vendorShortName=Tor Project
+brandFullName=Tor webbläsaren
+vendorShortName=Tor projektet
-homePageSingleStartMain=Firefox Start, a fast home page with built-in search
-homePageImport=Import your home page from %S
+homePageSingleStartMain=Firefox Start, en snabb hemsida med inbyggd sökfunktion
+homePageImport=Importera din hemsida från %S
-homePageMigrationPageTitle=Home Page Selection
-homePageMigrationDescription=Please select the home page you wish to use:
+homePageMigrationPageTitle=Val av hemsida
+homePageMigrationDescription=Välj den hemsida du önskar använda:
-syncBrandShortName=Sync
+syncBrandShortName=Synka
diff --git a/src/chrome/locale/sv/browser.properties b/src/chrome/locale/sv/browser.properties
index 295a03a..cade860 100644
--- a/src/chrome/locale/sv/browser.properties
+++ b/src/chrome/locale/sv/browser.properties
@@ -2,7 +2,7 @@
browser.startup.homepage=about:tor
# Spell checker dictionary
-spellchecker.dictionary=en_US
+spellchecker.dictionary=sv_SE
# Default search engine
browser.search.defaultenginename=Startpage
diff --git a/src/chrome/locale/sv/torbutton.dtd b/src/chrome/locale/sv/torbutton.dtd
index 975c25b..fa580d4 100644
--- a/src/chrome/locale/sv/torbutton.dtd
+++ b/src/chrome/locale/sv/torbutton.dtd
@@ -31,7 +31,7 @@
<!ENTITY torbutton.context_menu.about "Om Torbutton...">
<!ENTITY torbutton.context_menu.about.key "O">
<!ENTITY torbutton.context_menu.networksettings "Öppna nätverksinställningar...">
-<!ENTITY torbutton.context_menu.networksettings.key "S">
+<!ENTITY torbutton.context_menu.networksettings.key "Ö">
<!ENTITY torbutton.context_menu.downloadUpdate "Ladda ner uppdatering för Tor Browser Bundle...">
<!ENTITY torbutton.context_menu.downloadUpdate.key "U">
<!ENTITY torbutton.context_menu.cookieProtections "Skyddade kakor">
@@ -113,13 +113,13 @@
<!ENTITY torbutton.prefs.socks_vfour "SOCKS v4">
<!ENTITY torbutton.prefs.socks_vfive "SOCKS v5">
<!ENTITY torbutton.prefs.no_proxies_on "Ingen proxy för:">
-<!ENTITY torbutton.prefs.no_proxy_warning "Varning: Undvik att använda värdnamn ovanför">
+<!ENTITY torbutton.prefs.no_proxy_warning "Varning: Undvik att använda värdnamn här ovan">
<!ENTITY torbutton.prefs.spoofreresh "Spoof Uppdatering">
<!ENTITY torbutton.prefs.refereroptions "Referens Spoofing Alternativ">
-<!ENTITY torbutton.prefs.nospoof "Spoofa inte referens">
+<!ENTITY torbutton.prefs.nospoof "No referer spoof during Tor usage (sends referers as normal)">
<!ENTITY torbutton.prefs.spoofroot "Spoofa den innefattande mappen av sidan">
<!ENTITY torbutton.prefs.spoofdomain "Spoofa domain som referens">
-<!ENTITY torbutton.prefs.spoofblank "Gör referens blank">
+<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.cookiedialog.title "Hantera skyddade kakor">
<!ENTITY torbutton.cookiedialog.lockCol "Skyddad">
<!ENTITY torbutton.cookiedialog.domainCol "Värd">
@@ -131,7 +131,7 @@
<!ENTITY torbutton.cookiedialog.removeAllBut "Ta bort alla icke-skyddade">
<!ENTITY torbutton.cookiedialog.saveAllCookies "Skydda nya kakor">
<!ENTITY torbutton.cookiedialog.doNotSaveAllCookies "Skydda inte nya kakor">
-<!ENTITY torbutton.prefs.disable_livemarks "Inaktivera Livemark uppdateringar när Tor används">
+<!ENTITY torbutton.prefs.disable_livemarks "Disable livemarks updates during Tor usage">
<!ENTITY torbutton.prefs.dtd_recommended "(rekommenderat)">
<!ENTITY torbutton.prefs.dtd_optional "(valfritt)">
<!ENTITY torbutton.prefs.dtd_crucial "(viktigt)">
@@ -143,7 +143,7 @@
<!ENTITY torbutton.prefs.engine4 "startpage.com">
<!ENTITY torbutton.prefs.engine5 "duckduckgo.com">
<!ENTITY torbutton.prefs.fix_google_srch "Ta bort plattform och språk från Google Sök Box förfrågningar">
-<!ENTITY torbutton.prefs.transparentTor "Transparent Torifikation (Kräver skräddarsydd transproxy eller Tor router)">
+<!ENTITY torbutton.prefs.transparentTor "Transparent torifikation (Kräver skräddarsydd transproxy eller Tor router)">
<!ENTITY torbutton.prefs.block_disk "Spara ingen historik eller webbplatsdata (aktiverar privat surfning)">
<!ENTITY torbutton.prefs.restrict_thirdparty "Begränsa tredjepartskakor och annan tracking data">
<!ENTITY torbutton.prefs.block_plugins "Inaktivera insticksmoduler (så som Flash)">
diff --git a/src/chrome/locale/sv/torbutton.properties b/src/chrome/locale/sv/torbutton.properties
index ac3858d..0a13a4e 100644
--- a/src/chrome/locale/sv/torbutton.properties
+++ b/src/chrome/locale/sv/torbutton.properties
@@ -34,14 +34,14 @@ torbutton.popup.captcha.ask = Torbutton upptäckte en Google Captcha. Vill du at
torbutton.popup.captcha.always = Utför alltid denna åtgärd från och med nu
torbutton.popup.redirect = Omdirigera
torbutton.popup.no_redirect = Omdirigera inte
-torbutton.popup.prompted_language = För att ge dig mer privatliv kan Torbutton begära en Engelsk version av webbsidor. Detta kan göra att webbsidor som du föredrar att läsa på ett annat språk visas på Engelska istället.\\n\\n Vill du visa sidor på Engelska för bättre privatliv?
+torbutton.popup.prompted_language = För att ge dig mer privatliv kan Torbutton begära en Engelsk version av webbsidor. Detta kan göra att webbsidor som du föredrar att läsa på ett annat språk visas på Engelska istället.\\\n\\\n Vill du visa sidor på Engelska för bättre privatliv?
torbutton.popup.no_newnym = Torbutton kan inte säkert ge dig en ny identitet. Det har inte tillgång till Tor Control Port.\n\nKör du Tor Browser Bundle?
torbutton.popup.use_tbb = Det verkar som om du använder Torknappen med Firefox, vilket inte längre är en rekommenderad säker konfiguration.\n\nIstället rekommenderar vi dig att ladda ner den senaste Tor Browser Bundle genom att skicka ett mail till gettor(a)torproject.org eller ladda ner den på följande URL:
torbutton.popup.pref_error = Torbutton kan inte uppdatera inställningar i Tor Browser profilen katalog.
torbutton.popup.permission_denied = Du antingen återställa behörigheterna Tor Browser katalogen eller kopiera den till en ny plats.
torbutton.popup.device_full = Skivan verkar vara full. Vänligen frigöra utrymme eller flytta Tor webbläsare till en ny enhet.
torbutton.title.prompt_torbrowser = Viktig Torbutton Information
-torbutton.popup.prompt_torbrowser = Torbutton fungerar annorlunda nu: Du kan inte slå av den längre.\n\nVi gjorde denna förändring eftersom det inte är säkert att använda Torbutton i en webbläsare som också används för icke-Tor surfning. Det var för många buggar som vi inte kunde fixa på något annat sätt.\n\nOm du vill fortsätta använda Firefox normalt så bör du avinstallera Torknappen och ladda ner Tor Browser Bundle. Tor Webbläsaren skyddar ditt privatliv bättre än vanliga Firefox, även när Firefox används med Torknappen.\n\nFör att ta bort Torbutton, gå till Verktyg->Tillägg->Tillägg och klicka på Ta Bort knappen bredvid Torknappen.
+torbutton.popup.prompt_torbrowser = Torbutton fungerar annorlunda nu: Du kan inte slå av den längre.\n\nVi gjorde denna förändring eftersom det inte är säkert att använda Torbutton i en webbläsare som också används för icke-Tor surfning. Det var för många buggar som vi inte kunde fixa på något annat sätt.\n\nOm du vill fortsätta använda Firefox normalt så bör du avinstallera Torknappen och ladda ner Tor Browser Bundle. Tor Webbläsaren skyddar ditt privatliv bättre än vanliga Firefox, även när Firefox används med Torknappen.\n\nFör att ta bort Torbutton, gå till Verktyg->Tillägg->Tillägg och klicka på Ta Bort knappen bredvid Torknappen.
torbutton.popup.short_torbrowser = Viktig Torbutton information!\n\nTorbutton är nu alltid aktiverad.\n\nKlicka på Torbutton för mer information.
torbutton.popup.confirm_plugins = Insticksmoduler så som Flash kan äventyra din anonymitet och personliga integritet.\n\nDe kan också kringgå Tor för att avslöja var du befinner dig och vad din IP-adress är.\n\nÄr du säker på att du vill aktivera insticksmoduler?\n\n
diff --git a/src/chrome/locale/tr/aboutTor.dtd b/src/chrome/locale/tr/aboutTor.dtd
index 9f14022..8000e0f 100644
--- a/src/chrome/locale/tr/aboutTor.dtd
+++ b/src/chrome/locale/tr/aboutTor.dtd
@@ -4,44 +4,45 @@
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
-<!ENTITY aboutTor.title "About Tor">
+<!ENTITY aboutTor.title "Tor Hakkında">
-<!ENTITY aboutTor.outOfDateTorOn.label "HOWEVER, this browser is out of date.">
-<!ENTITY aboutTor.outOfDateTorOff.label "ALSO, this browser is out of date.">
-<!ENTITY aboutTor.outOfDate2.label "Click on the onion and then choose Download Tor Browser Bundle Update.">
+<!ENTITY aboutTor.outOfDateTorOn.label "AMA, bu tarayıcı güncel değil.">
+<!ENTITY aboutTor.outOfDateTorOff.label "AYRICA, bu tarayıcı güncel değil.">
+<!ENTITY aboutTor.outOfDate2.label "Soğan'a tıklayın ve Tor Tarayıcı'yı güncelleyin.">
-<!ENTITY aboutTor.check.label "Test Tor Network Settings">
+<!ENTITY aboutTor.check.label "Tor Ağ ayarlarını test edin">
-<!ENTITY aboutTor.success.label "Congratulations!">
-<!ENTITY aboutTor.success2.label "This browser is configured to use Tor.">
-<!ENTITY aboutTor.success3.label "You are now free to browse the Internet anonymously.">
-<!ENTITY aboutTor.failure.label "Something Went Wrong!">
-<!ENTITY aboutTor.failure2.label "Tor is not working in this browser.">
-<!ENTITY aboutTor.failure3prefix.label "For assistance, please contact ">
+<!ENTITY aboutTor.success.label "Tebrikler!">
+<!ENTITY aboutTor.success2.label "Bu tarayıcı Tor kullanımı için yapılandırılmıştır.">
+<!ENTITY aboutTor.success3.label "Şimdi İnternet'i anonim olarak kullanmakta özgürsünüz!">
+<!ENTITY aboutTor.failure.label "Üzgünüz, bir şeyler yanlış gitti!">
+<!ENTITY aboutTor.failure2.label "Bu tarayıcıda Tor çalışmıyor.">
+<!ENTITY aboutTor.failure3prefix.label "Yardım için %S ile bağlantıya geçin.">
<!ENTITY aboutTor.failure3Link "help(a)rt.torproject.org">
<!ENTITY aboutTor.failure3suffix.label ".">
-<!ENTITY aboutTor.search.label "Search">
-<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/do/search">
+<!ENTITY aboutTor.search.label "Ara">
+
+<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
-<!ENTITY aboutTor.torInfo1.label "Additional Info:">
-<!ENTITY aboutTor.torInfo2.label "Country & IP Address:">
-<!ENTITY aboutTor.torInfo3.label "Exit Node:">
-<!ENTITY aboutTor.torInfo4.label "This server does not log any information about visitors.">
-<!ENTITY aboutTor.whatnextQuestion.label "What Next?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor is NOT all you need to browse anonymously! You may need to change some of your browsing habits to ensure your identity stays safe.">
-<!ENTITY aboutTor.whatnext.label "Tips On Staying Anonymous »">
+<!ENTITY aboutTor.torInfo1.label "Ek bilgi:">
+<!ENTITY aboutTor.torInfo2.label "Ülke ve IP Adresi:">
+<!ENTITY aboutTor.torInfo3.label "Çıkış düğümü:">
+<!ENTITY aboutTor.torInfo4.label "Bu sunucu ziyaretçiler ile ilgili herhangi bir bilgi toplamaz.">
+<!ENTITY aboutTor.whatnextQuestion.label "Sırada ne var?">
+<!ENTITY aboutTor.whatnextAnswer.label "Tor, anonim kalmanız için tüm ihtiyacınız olan şey değildir! Kimliğinizin güvende kalması için bazı İnternet alışkanlıklarınızı değiştirmeniz gerekebilir.">
+<!ENTITY aboutTor.whatnext.label "Anonim kalmak için püf noktalar »">
<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
-<!ENTITY aboutTor.helpInfo1.label "You Can Help!">
-<!ENTITY aboutTor.helpInfo2.label "There are many ways you can help make the Tor Network faster and stronger:">
-<!ENTITY aboutTor.helpInfo3.label "Run a Tor Relay Node »">
+<!ENTITY aboutTor.helpInfo1.label "Yardım edebilirsiniz!">
+<!ENTITY aboutTor.helpInfo2.label "Tor ağını daha hızlı ve daha güçlü yapmamız konusunda yardım edebilmeniz için bir çok yol var:">
+<!ENTITY aboutTor.helpInfo3.label "Tor aktarım düğümünü çalıştır »">
<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "Volunteer Your Services »">
+<!ENTITY aboutTor.helpInfo4.label "Servislerinizi gönüllü yapın »">
<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "Make a Donation »">
+<!ENTITY aboutTor.helpInfo5.label "Yardımda bulunun »">
<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
-<!ENTITY aboutTor.footer.label "The Tor Project is a US 501(c)(3) non-profit dedicated to the research, development, and education of online anonymity and privacy.">
-<!ENTITY aboutTor.learnMore.label "Learn more about The Tor Project »">
+<!ENTITY aboutTor.footer.label "Tor Projesi çevrimiçi gizlilik ve mahremiyet araştırma, geliştirme ve eğitime adanmış bir ABD 501(c)(3) kar amacı gütmeyen bir kuruluştur.">
+<!ENTITY aboutTor.learnMore.label "Tor Projesi hakkında daha çok şey öğrenin »">
<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
diff --git a/src/chrome/locale/tr/brand.dtd b/src/chrome/locale/tr/brand.dtd
index 76e405d..68f8c1c 100644
--- a/src/chrome/locale/tr/brand.dtd
+++ b/src/chrome/locale/tr/brand.dtd
@@ -2,7 +2,7 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-<!ENTITY brandShortName "TorBrowser">
-<!ENTITY brandFullName "Tor Browser">
-<!ENTITY vendorShortName "Tor Project">
-<!ENTITY trademarkInfo.part1 "Firefox and the Firefox logos are trademarks of the Mozilla Foundation.">
+<!ENTITY brandShortName "TorTarayıcı">
+<!ENTITY brandFullName "Tor Tarayıcı">
+<!ENTITY vendorShortName "Tor Projesi">
+<!ENTITY trademarkInfo.part1 "Firefox ve Firefox logoları Mozilla Vakfı'nın ticari markalarıdır.">
diff --git a/src/chrome/locale/tr/brand.properties b/src/chrome/locale/tr/brand.properties
index 9ae168e..a4220f9 100644
--- a/src/chrome/locale/tr/brand.properties
+++ b/src/chrome/locale/tr/brand.properties
@@ -2,14 +2,14 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-brandShortName=TorBrowser
-brandFullName=Tor Browser
-vendorShortName=Tor Project
+brandShortName=TorTarayıcı
+brandFullName=Tor Tarayıcı
+vendorShortName=Tor Projesi
-homePageSingleStartMain=Firefox Start, a fast home page with built-in search
-homePageImport=Import your home page from %S
+homePageSingleStartMain=Firefox Başlangıç, dahili arama barındıran hızlı bir başlangıç sayfası
+homePageImport=%S 'deb başlangıç sayfanızı kopyalayın.
-homePageMigrationPageTitle=Home Page Selection
-homePageMigrationDescription=Please select the home page you wish to use:
+homePageMigrationPageTitle=Başlangıç sayfası seçimi
+homePageMigrationDescription=Lütfen kullanmak istediğiniz başlangıç sayfasını seçin:
-syncBrandShortName=Sync
+syncBrandShortName=Eşleştirme
diff --git a/src/chrome/locale/tr/browser.properties b/src/chrome/locale/tr/browser.properties
index 295a03a..55550a3 100644
--- a/src/chrome/locale/tr/browser.properties
+++ b/src/chrome/locale/tr/browser.properties
@@ -1,13 +1,13 @@
# Default home page
-browser.startup.homepage=about:tor
+browser.startup.homepage=hakkında:tor
# Spell checker dictionary
spellchecker.dictionary=en_US
# Default search engine
-browser.search.defaultenginename=Startpage
+browser.search.defaultenginename=BaşlagıçSayfası
# Search engine order (order displayed in the search bar dropdown)
-browser.search.order.1=Startpage
+browser.search.order.1=BaşlagıçSayfası
browser.search.order.2=DuckDuckGo
browser.search.order.3=Google
diff --git a/src/chrome/locale/tr/torbutton.dtd b/src/chrome/locale/tr/torbutton.dtd
index f7e3030..3ebfeae 100644
--- a/src/chrome/locale/tr/torbutton.dtd
+++ b/src/chrome/locale/tr/torbutton.dtd
@@ -52,7 +52,7 @@
<!ENTITY torbutton.prefs.clear_history "Tor başlatılırken geçmişi temizle(önerilen)">
<!ENTITY torbutton.prefs.clear_cache "Tor devredeyken tüm önbelleklemeleri temizle">
<!ENTITY torbutton.prefs.block_cache "Disk ve önbellek erişimini engelle">
-<!ENTITY torbutton.prefs.cookie_jars 'Çerezleri korumalı "jar" dosyasında tut'>
+<!ENTITY torbutton.prefs.cookie_jars "Çerezleri korumalı "jar" dosyasında tut">
<!ENTITY torbutton.prefs.cookie_protection "Seçmek için çerez seçenekleri dialogunu kullan">
<!ENTITY torbutton.prefs.mmm_cookies "Çerezlerimi kendim yönetmek istiyorum (tehlikeli)">
<!ENTITY torbutton.prefs.clear_cookies "Tor çalışırken tüm çerezleri temizle">
@@ -65,7 +65,7 @@
<!ENTITY torbutton.prefs.cookies "Çerezler">
<!ENTITY torbutton.prefs.cache "Önbellek">
<!ENTITY torbutton.prefs.history "Geçmiş">
-<!ENTITY torbutton.prefs.no_search 'Arama yaparken "öneriler" özelliğini devredışı bırak(tavsiye edilen)\'>
+<!ENTITY torbutton.prefs.no_search "Arama yaparken "öneriler" özelliğini devredışı bırak(tavsiye edilen)\">
<!ENTITY torbutton.prefs.shutdown "Kapat">
<!ENTITY torbutton.prefs.tor_shutdown "Etkin-Devredışı bırakırken tüm çerezleri temizle">
<!ENTITY torbutton.prefs.all_shutdown "Tarayıcıyı kapattığımda tüm çerezleri temizle">
@@ -85,7 +85,7 @@
<!ENTITY torbutton.prefs.non_tor "Non-Tor">
<!ENTITY torbutton.prefs.restore_tor "Oturumunda restore başlangıç, Tor devlet ayarlamak için:">
<!ENTITY torbutton.prefs.startup_tor "Tarayıcı başlatıldığında Tor durumunu şu şekilde ayarla:">
-<!ENTITY torbutton.prefs.reload_crashed_jar 'Firefox çöktüğünde, çerezleri "jar" dosyalarından geri yükle(Tavsiye edilen)'>
+<!ENTITY torbutton.prefs.reload_crashed_jar "Firefox çöktüğünde, çerezleri "jar" dosyalarından geri yükle(Tavsiye edilen)">
<!ENTITY torbutton.prefs.dual_cookie_jars "Tüm çerezleri korunan jar dosyalarında tut(tehlikeli)">
<!ENTITY torbutton.prefs.clear_http_auth "HTTP oturum doğrulamalarının tümünü temizle(önerilen)">
<!ENTITY torbutton.prefs.block_js_history "Tor çalışıyorken geçmiş bilgisinde gezinmeyi yasakla(kritik)">
@@ -116,10 +116,10 @@
<!ENTITY torbutton.prefs.no_proxy_warning "Uyarı: kaçının üzerinde herhangi bir sunucu isimleri kullanarak">
<!ENTITY torbutton.prefs.spoofreresh "Aldatmaca Yenile">
<!ENTITY torbutton.prefs.refereroptions "Referans Aldatmacası Ayarları">
-<!ENTITY torbutton.prefs.nospoof "Referanslarda aldatma yapma">
+<!ENTITY torbutton.prefs.nospoof "No referer spoof during Tor usage (sends referers as normal)">
<!ENTITY torbutton.prefs.spoofroot "Geçerli klasör için aldatmaca kullan">
<!ENTITY torbutton.prefs.spoofdomain "Referans olarak alanı aldat">
-<!ENTITY torbutton.prefs.spoofblank "Refere edeni boş bırak">
+<!ENTITY torbutton.prefs.spoofblank "Spoof blank referer during Tor usage (may break some sites)">
<!ENTITY torbutton.cookiedialog.title "Çerez korumasını yönet">
<!ENTITY torbutton.cookiedialog.lockCol "Korunmuş">
<!ENTITY torbutton.cookiedialog.domainCol "Sunucu">
@@ -131,7 +131,7 @@
<!ENTITY torbutton.cookiedialog.removeAllBut "Korunanlar hariç tümünü sil">
<!ENTITY torbutton.cookiedialog.saveAllCookies "Yeni çerezleri koru">
<!ENTITY torbutton.cookiedialog.doNotSaveAllCookies "Yeni çerezleri koruma">
-<!ENTITY torbutton.prefs.disable_livemarks "Tor kullanımı sırasında devre dışı Livemark güncellemeleri">
+<!ENTITY torbutton.prefs.disable_livemarks "Disable livemarks updates during Tor usage">
<!ENTITY torbutton.prefs.dtd_recommended "(önerilen)">
<!ENTITY torbutton.prefs.dtd_optional "(isteğe bağlı)">
<!ENTITY torbutton.prefs.dtd_crucial "(kritik)">
diff --git a/src/chrome/locale/tr/torbutton.properties b/src/chrome/locale/tr/torbutton.properties
index b5c560e..e7a3b1c 100644
--- a/src/chrome/locale/tr/torbutton.properties
+++ b/src/chrome/locale/tr/torbutton.properties
@@ -7,39 +7,39 @@ torbutton.panel.plugins.enabled = Eklentileri pasif hale getirmek için tıklay
torbutton.panel.label.disabled = Tor Devredışı
torbutton.panel.label.enabled = Tor Etkin
extensions.torbutton(a)torproject.org.description = Torbutton Tor ayarlarını yapabileceğiniz ve hızlı ve kolayca gizli tarama verilerini silebileceğiniz bir düğme sağlar.
-torbutton.popup.history.warning = Bu sekmeyi Tor aktifken kullanırken, Tor'u devre dışı bırakıp yenileyip ya da kullanmaya devam ederseniz, içerik otomatik olarak bloklanır.\n\nBu Firefox 409737 ve 417869 nolu hata raporlarını için bir çözümdür.\n\nHiçbir sebep yokken bu uyarı aldıysanız, muhtelemelen sekme kendini yenilemeye çalıştığı için engellenmiş olabilir.\n\nSekmeyi yenilemek için lütfen adres çubuğunu tıklayıp devam etmeyi deneyin.\n\n
+torbutton.popup.history.warning = Torbutton, farklı bir Tor durumunda yüklenmiş bir sekmeden gelen etkinliği engelledi.\n\nBu Firefox 409737 ve 417869 nolu hata raporlarını için bir çözümdür.\n\nHiçbir sebep yokken bu uyarı aldıysanız, muhtelemelen sekme kendini yenilemeye çalıştığı için engellenmiş olabilir.\n\nSekmeyi yenilemek için lütfen adres çubuğunu tıklayıp 'enter' tuşuna basın.\n\n
torbutton.popup.plugin.warning = Torbutton Tor'un eklenti içeriğini yüklemesini blokladı.\n\nFarklı Kaydet ile yapmayı deneyin.\n\n
-torbutton.popup.confirm_ca_certs = Torbuton hatırlatma: Anlaşılan özel sertifakanız yok. Doğrulama bilgisi her zaman işlemleri yavaşlatır. Sertifika doğrulamalarını devredışı bırakmak ister misiniz? (Açıklamayı anlamadıysan, Tamam'a tıkla)\n
+torbutton.popup.confirm_ca_certs = Torbuton hatırlatma: Anlaşılan özel sertifakanız yok. Doğrulama bilgisi her zaman işlemleri yavaşlatır. Sertifika doğrulamalarını devredışı bırakmak ister misiniz? (Açıklamayı anlamadıysan, Tamam'a tıkla)\n
torbutton.popup.ff3.warning = Dikkat!\n\nFirefox 3'teki Torbuton yerel saatinizi bazı yerel bilgilerinizi gizlice gönderebilir?\n\nDevam etmek istiyor musunuz?
-torbutton.popup.toggle.warning = Ayarların uygulanması için Tor'u yeniden başlatmanız gerekiyor.\n
+torbutton.popup.toggle.warning = Ayarların uygulanması için Tor'u yeniden başlatmanız gerekiyor.\n
torbutton.popup.test.success = Proxy testi başarılı!
torbutton.popup.test.failure = Proxy testi başarısız oldu!Lütfen proxyinizi,Polippo ayarlarını kontrol ediniz.
-torbutton.popup.test.confirm_toggle = Proxy başlatılamadı\n\nGenede başlatmak istermisin?\n\nNot: Problem çözüldüyse, tekrar proxy testini başlatıp, bu uyarı devredışı bırakabilirsin.
+torbutton.popup.test.confirm_toggle = Proxy başlatılamadı\n\nGenede başlatmak istermisin?\n\nNot: Problem çözüldüyse, tekrar proxy testini başlatıp, bu uyarı devredışı bırakabilirsin.
torbutton.popup.test.ff3_notice = Tamama tıklayarak proxy ayarlarını test edin. Test arkaplanda gerçekleşiyor.Lütfen bekleyin.
torbutton.panel.label.verified = Doğrulandı
torbutton.popup.test.auto_failed = Otomatik gerçekleşen proxy testi başarız oldu.\n\nDevam etmek ister misiniz?
torbutton.prefs.recommended = (tavsiye edilir)
torbutton.prefs.optional = (isteğe bağlı)
-torbutton.prefs.crucial =
-torbutton.popup.external.title =
+torbutton.prefs.crucial = =
+torbutton.popup.external.title = =
torbutton.popup.external.app = Kullanmak için harici bir uygulama seç:\n\n
torbutton.popup.external.note = \n\nNOT: Başka bir uyguluma sizin için güvenli olmayabilir!\n\n
torbutton.popup.external.suggest = \nBu dosya güvenli değilse, ona internete bağlı değilken veya VM icinde kaydedin,\nya da Tails LiveCD gibi şeffaf bir Tor proxy veya torsocks tercih edin.\n
-torbutton.popup.launch = Uygulamayı çalıştır\n
-torbutton.popup.cancel = İptal\n
-torbutton.popup.dontask = Şu andan itibaren uygulamayı sürekli çalıştır\r\n
-torbutton.popup.test.no_http_proxy = Proxy test: Yerel proxy'e ulaşımıyor. Polippo düzgün çalışıyormu?\n
-torbutton.popup.captcha.title = Google Captchas'ı atla
-torbutton.popup.captcha.ask = Google Captcha algılandı. Aramana devam etmek için başka bir arama moturuna yönlendirmek istermisin?
-torbutton.popup.captcha.always = Bu ayarı şu andan itibaren sürekli hale getir\n
-torbutton.popup.redirect = Yönlendir
-torbutton.popup.no_redirect = Yönlendirme
+torbutton.popup.launch = Uygulamayı çalıştır\n
+torbutton.popup.cancel = İptal\n
+torbutton.popup.dontask = Şu andan itibaren uygulamayı sürekli çalıştır\r\n
+torbutton.popup.test.no_http_proxy = Proxy test: Yerel proxy'e ulaşımıyor. Polippo düzgün çalışıyormu?\n
+torbutton.popup.captcha.title = Google Captchas'ı atla
+torbutton.popup.captcha.ask = Google Captcha algılandı. Aramana devam etmek için başka bir arama moturuna yönlendirmek istermisin?
+torbutton.popup.captcha.always = Bu ayarı şu andan itibaren sürekli hale getir\n
+torbutton.popup.redirect = Yönlendir
+torbutton.popup.no_redirect = Yönlendirme
torbutton.popup.prompted_language = Daha fazla gizlilik icin, Torbutton sayfaların İngilizce versiyonlarını göstermeye çalışır. Bu özellik sayfaları anadilinizde görememenize sebep olabilir.\n\nSiz de daha fazla gizlilik için sayfaların İngilizce versiyonarını görüntülemek ister misiniz?
torbutton.popup.no_newnym = Torbutton size güvenli yeni bir kimlik sağlayamadı. Tor Control Port una giriş yapılamıyor.\n\nTor Browser Bundle nin çalıştığından emin olun.
torbutton.popup.use_tbb = Görünüşe göre Turbutton u Firefox ile kullanıyorsunuz, bu tavsiye edilen bir güvenlik ayarlaması değildir.\n\nAslında, Size tavsiyemiz Tor Browseri gettor(a)torproject.org adresine mail göndererek veya şu adrese girerek edinmenizdir.
torbutton.popup.pref_error = Torbutton, Tor Browser profil klasörünün içinde seçenekleri güncelleyemez.
torbutton.popup.permission_denied = Lütfen Tor Browser klasörünün izinlerini sıfırlayın ya da O nu farklı bir konuma taşıyın.
-torbutton.popup.device_full = Disk dolu gözüküyor. Lütfen diskte yer açın ya da Tor Browser i farklı bir konuma taşıyın.
+torbutton.popup.device_full = Disk dolu gözüküyor. Lütfen diskte yer açın ya da Tor Browser i farklı bir konuma taşıyın.
torbutton.title.prompt_torbrowser = Önemli Torbutton Bilgisi
torbutton.popup.prompt_torbrowser = Torbutton şimdi farklı çalışıyor: artık kapatamıyorsunuz.\n\nBu değişikliği yaptık çünkü Tor kullanmadan da kullanılan tarayıcıyı Torbutton ile kullanmak güvenli değil. Başka türlü çözemeyeceğimiz birçok hata vardı.\n\nFirefox'u normal olarak kullanmak istiyorsanız, Torbutton'ı silmeli ve Tor Tarayıcı Paketini indirebilrsiniz. Tor tarayıcısının gizlilik ayarları da normal Firefox'dan, hatta Torbutton ile kullanan Firefox'dan daha üstün.\n\nTorbutton'ı kaldırmak için, Araçlar->Eklentiler->Uzantılar'a gidin ve Torbutton'ın yanındaki Kaldır düğmesine tıklayın.
torbutton.popup.short_torbrowser = Önemli Torbutton bilgisi!\nTorbutton şimdi tamamen etkinleştirildi.\nDaha fazla bilgi için Torbutton'a tıklayınız.
diff --git a/src/chrome/locale/vi/aboutTor.dtd b/src/chrome/locale/vi/aboutTor.dtd
index 7aa92ba..afb7da7 100644
--- a/src/chrome/locale/vi/aboutTor.dtd
+++ b/src/chrome/locale/vi/aboutTor.dtd
@@ -4,45 +4,45 @@
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
-<!ENTITY aboutTor.title "">
+<!ENTITY aboutTor.title "Thông tin về Tor">
-<!ENTITY aboutTor.outOfDateTorOn.label "">
-<!ENTITY aboutTor.outOfDateTorOff.label "">
-<!ENTITY aboutTor.outOfDate2.label "">
+<!ENTITY aboutTor.outOfDateTorOn.label "Tuy nhiên, trình duyệt này đã lỗi thời.">
+<!ENTITY aboutTor.outOfDateTorOff.label "Ngoài ra, trình duyệt này đã lỗi thời.">
+<!ENTITY aboutTor.outOfDate2.label "Click on the onion and then choose Download Tor Browser Bundle Update.">
-<!ENTITY aboutTor.check.label "">
+<!ENTITY aboutTor.check.label "Test Tor Network Settings">
-<!ENTITY aboutTor.success.label "">
-<!ENTITY aboutTor.success2.label "">
-<!ENTITY aboutTor.success3.label "">
-<!ENTITY aboutTor.failure.label "">
-<!ENTITY aboutTor.failure2.label "">
-<!ENTITY aboutTor.failure3prefix.label "">
-<!ENTITY aboutTor.failure3Link "">
-<!ENTITY aboutTor.failure3suffix.label "">
+<!ENTITY aboutTor.success.label "Chúc mừng">
+<!ENTITY aboutTor.success2.label "Trình duyệt này được cấu hình để dùng Tor.">
+<!ENTITY aboutTor.success3.label "Bây giờ bạn sẽ tự do lướt web ẩn danh.">
+<!ENTITY aboutTor.failure.label "Có sai sót gì đó!">
+<!ENTITY aboutTor.failure2.label "Tor không hoạt động trên trình duyệt này.">
+<!ENTITY aboutTor.failure3prefix.label "Để trợ giúp, vui lòng liên lạc">
+<!ENTITY aboutTor.failure3Link "help(a)rt.torproject.org">
+<!ENTITY aboutTor.failure3suffix.label ".">
<!ENTITY aboutTor.search.label "Tìm kiếm">
-<!ENTITY aboutTor.searchSPPost.link "">
-<!ENTITY aboutTor.searchDDGPost.link "">
-
-<!ENTITY aboutTor.torInfo1.label "">
-<!ENTITY aboutTor.torInfo2.label "">
-<!ENTITY aboutTor.torInfo3.label "">
-<!ENTITY aboutTor.torInfo4.label "">
-<!ENTITY aboutTor.whatnextQuestion.label "">
-<!ENTITY aboutTor.whatnextAnswer.label "">
-<!ENTITY aboutTor.whatnext.label "">
-<!ENTITY aboutTor.whatnext.link "">
-<!ENTITY aboutTor.helpInfo1.label "">
-<!ENTITY aboutTor.helpInfo2.label "">
-<!ENTITY aboutTor.helpInfo3.label "">
-<!ENTITY aboutTor.helpInfo3.link "">
-<!ENTITY aboutTor.helpInfo4.label "">
-<!ENTITY aboutTor.helpInfo4.link "">
-<!ENTITY aboutTor.helpInfo5.label "">
-<!ENTITY aboutTor.helpInfo5.link "">
-
-<!ENTITY aboutTor.footer.label "">
-<!ENTITY aboutTor.learnMore.label "">
-<!ENTITY aboutTor.learnMore.link "">
+<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
+<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
+
+<!ENTITY aboutTor.torInfo1.label "Additional Info:">
+<!ENTITY aboutTor.torInfo2.label "Quốc gia & Địa chỉ IP:">
+<!ENTITY aboutTor.torInfo3.label "Exit Node:">
+<!ENTITY aboutTor.torInfo4.label "Máy chủ này không ghi lại bất kỳ thông tin nào của khách truy cập.">
+<!ENTITY aboutTor.whatnextQuestion.label "Điều gì tiếp theo?">
+<!ENTITY aboutTor.whatnextAnswer.label "Tor KHÔNG phải là tất cả những gì bạn cần để ẩn danh! Bạn cần nên thay đổi một vài thói quen lướt net để chắc chắn rằng danh tính của mình sẽ an toàn.">
+<!ENTITY aboutTor.whatnext.label "Tips On Staying Anonymous »">
+<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.helpInfo1.label "You Can Help!">
+<!ENTITY aboutTor.helpInfo2.label "Có nhiều cách mà bạn có thể giúp mạng Tor nhanh hơn và tốt hơn.">
+<!ENTITY aboutTor.helpInfo3.label "Run a Tor Relay Node »">
+<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
+<!ENTITY aboutTor.helpInfo4.label "Volunteer Your Services »">
+<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
+<!ENTITY aboutTor.helpInfo5.label "Make a Donation »">
+<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
+
+<!ENTITY aboutTor.footer.label "The Tor Project is a US 501(c)(3) non-profit dedicated to the research, development, and education of online anonymity and privacy.">
+<!ENTITY aboutTor.learnMore.label "Tìm hiểu thêm về Tor Project">
+<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
diff --git a/src/chrome/locale/vi/brand.dtd b/src/chrome/locale/vi/brand.dtd
index e34f480..76e405d 100644
--- a/src/chrome/locale/vi/brand.dtd
+++ b/src/chrome/locale/vi/brand.dtd
@@ -2,7 +2,7 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-<!ENTITY brandShortName "">
-<!ENTITY brandFullName "">
-<!ENTITY vendorShortName "">
-<!ENTITY trademarkInfo.part1 "">
+<!ENTITY brandShortName "TorBrowser">
+<!ENTITY brandFullName "Tor Browser">
+<!ENTITY vendorShortName "Tor Project">
+<!ENTITY trademarkInfo.part1 "Firefox and the Firefox logos are trademarks of the Mozilla Foundation.">
diff --git a/src/chrome/locale/vi/brand.properties b/src/chrome/locale/vi/brand.properties
index 6598ccd..8f3610e 100644
--- a/src/chrome/locale/vi/brand.properties
+++ b/src/chrome/locale/vi/brand.properties
@@ -2,14 +2,14 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-# brandShortName=TorBrowser
-# brandFullName=Tor Browser
-# vendorShortName=Tor Project
+brandShortName=TorBrowser
+brandFullName=Tor Browser
+vendorShortName=Tor Project
-# homePageSingleStartMain=Firefox Start, a fast home page with built-in search
-# homePageImport=Import your home page from %S
+homePageSingleStartMain=Firefox Start, a fast home page with built-in search
+homePageImport=Import your home page from %S
-# homePageMigrationPageTitle=Home Page Selection
-# homePageMigrationDescription=Please select the home page you wish to use:
+homePageMigrationPageTitle=Home Page Selection
+homePageMigrationDescription=Vui lòng chọn trang chủ mà bạn muốn dùng:
-# syncBrandShortName=Sync
+syncBrandShortName=Sync
diff --git a/src/chrome/locale/vi/browser.properties b/src/chrome/locale/vi/browser.properties
index fd25b10..295a03a 100644
--- a/src/chrome/locale/vi/browser.properties
+++ b/src/chrome/locale/vi/browser.properties
@@ -1,13 +1,13 @@
# Default home page
-# browser.startup.homepage=about:tor
+browser.startup.homepage=about:tor
# Spell checker dictionary
-# spellchecker.dictionary=en_US
+spellchecker.dictionary=en_US
# Default search engine
-# browser.search.defaultenginename=Startpage
+browser.search.defaultenginename=Startpage
# Search engine order (order displayed in the search bar dropdown)
-# browser.search.order.1=Startpage
-# browser.search.order.2=DuckDuckGo
-# browser.search.order.3=Google
+browser.search.order.1=Startpage
+browser.search.order.2=DuckDuckGo
+browser.search.order.3=Google
diff --git a/src/chrome/locale/vi/torbutton.dtd b/src/chrome/locale/vi/torbutton.dtd
index dd4b70e..13a3351 100644
--- a/src/chrome/locale/vi/torbutton.dtd
+++ b/src/chrome/locale/vi/torbutton.dtd
@@ -1,58 +1,58 @@
<!ENTITY torbutton.prefs.title "Tùy chỉnh Torbutton">
-<!ENTITY torbutton.prefs.tor_settings "Thiết lập Proxy">
-<!ENTITY torbutton.prefs.recommended_settings "Dùng thiết lập proxy đã khuyến nghị cho Firefox của tôi">
+<!ENTITY torbutton.prefs.tor_settings "Các Thiết lập Proxy">
+<!ENTITY torbutton.prefs.recommended_settings "Dùng thiết lập proxy khuyến nghị cho phiên bản trình duyệt Firefox của tôi">
<!ENTITY torbutton.prefs.use_privoxy "Dùng Privoxy">
<!ENTITY torbutton.prefs.use_polipo "Dùng Polipo">
<!ENTITY torbutton.prefs.custom_settings "Dùng thiết lập proxy tùy biến">
-<!ENTITY torbutton.prefs.proxy.host.http "HTTP Proxy:">
-<!ENTITY torbutton.prefs.proxy.host.https "SSL Proxy:">
-<!ENTITY torbutton.prefs.proxy.host.ftp "FTP Proxy:">
+<!ENTITY torbutton.prefs.proxy.host.http "Proxy giao thức HTTP:">
+<!ENTITY torbutton.prefs.proxy.host.https "Proxy giao thức SSL:">
+<!ENTITY torbutton.prefs.proxy.host.ftp "Proxy giao thức FTP:">
<!ENTITY torbutton.prefs.proxy.host.gopher "Gopher Proxy:">
<!ENTITY torbutton.prefs.proxy.host.socks "SOCKS Host:">
<!ENTITY torbutton.prefs.proxy.port "Cổng:">
<!ENTITY torbutton.about.title "Thông tin về Torbutton">
-<!ENTITY torbutton.about.version "Version:">
-<!ENTITY torbutton.about.summary "Protects the privacy of your Tor browsing.">
-<!ENTITY torbutton.about.code "Code Contributors:">
-<!ENTITY torbutton.about.maintainer "Maintainer:">
-<!ENTITY torbutton.about.security_review "Security Review:">
-<!ENTITY torbutton.about.donate "If you like using Tor, you might consider">
-<!ENTITY torbutton.about.make_donation "making a donation.">
-<!ENTITY torbutton.pref_connection.notice "Tắt Torbutton để thay đổi các thiết lập này.">
-<!ENTITY torbutton.pref_connection.more_info "Thông tin thêm">
+<!ENTITY torbutton.about.version "Phiên bản:">
+<!ENTITY torbutton.about.summary "Bảo vệ sự riêng tư cho trình duyệt Tor của bạn.">
+<!ENTITY torbutton.about.code "Mã số Cộng sự:">
+<!ENTITY torbutton.about.maintainer "Bộ Duy Trì:">
+<!ENTITY torbutton.about.security_review "Đánh giá tính Bảo mật:">
+<!ENTITY torbutton.about.donate "Nếu bạn muốn sử dụng Tor, bạn cần cân nhắc">
+<!ENTITY torbutton.about.make_donation "gửi đóng góp ủng hộ.">
+<!ENTITY torbutton.pref_connection.notice "Vô hiệu Torbutton để thay đổi các thiết đặt này.">
+<!ENTITY torbutton.pref_connection.more_info "Thêm thông tin">
<!ENTITY torbutton.pref_connection_more_info.title "Trợ giúp">
-<!ENTITY torbutton.pref_connection_more_info.text "Torbutton hiện đang được bật. Nếu bạn muốn thay đổi thiết lập proxy không-Tor của bạn, vui lòng tắt Torbutton và quay trở lại đây. Nếu bạn muốn thay đổi thiết lập Tor, vui lòng dùng cửa sổ tùy chỉnh Torbutton.">
+<!ENTITY torbutton.pref_connection_more_info.text "Torbutton hiện đang được hiệu hóa. Nếu bạn muốn thay đổi thiết lập proxy không thuộc chương trình Tor, vui lòng tắt Torbutton và quay trở lại đây. Nếu bạn muốn thay đổi thiết lập từ Tor, vui lòng dùng cửa sổ tùy chỉnh Torbutton.">
<!ENTITY torbutton.context_menu.new_identity "Giám định Mới">
<!ENTITY torbutton.context_menu.new_identity_key "I">
-<!ENTITY torbutton.context_menu.toggle "Bật/tắt trạng thái Tor">
-<!ENTITY torbutton.context_menu.toggle.key "B">
+<!ENTITY torbutton.context_menu.toggle "Bật/tắt trạng thái của Tor">
+<!ENTITY torbutton.context_menu.toggle.key "T">
<!ENTITY torbutton.context_menu.preferences "Tùy chỉnh...">
-<!ENTITY torbutton.context_menu.preferences.key "y">
+<!ENTITY torbutton.context_menu.preferences.key "P">
<!ENTITY torbutton.context_menu.about "Thông tin về Torbutton...">
-<!ENTITY torbutton.context_menu.about.key "T">
-<!ENTITY torbutton.context_menu.networksettings "Open Network Settings…">
+<!ENTITY torbutton.context_menu.about.key "A">
+<!ENTITY torbutton.context_menu.networksettings "Mở các Thiết đặt Mạng...">
<!ENTITY torbutton.context_menu.networksettings.key "S">
-<!ENTITY torbutton.context_menu.downloadUpdate "Download Tor Browser Bundle Update...">
-<!ENTITY torbutton.context_menu.downloadUpdate.key "T">
-<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
+<!ENTITY torbutton.context_menu.downloadUpdate "Tải về Bản cập nhật Bổ trợ cho Trình duyệt Tor...">
+<!ENTITY torbutton.context_menu.downloadUpdate.key "U">
+<!ENTITY torbutton.context_menu.cookieProtections "Cơ chế bảo vệ Cookie">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
-<!ENTITY torbutton.context_menu.copyTor "Copy Tor URL">
-<!ENTITY torbutton.context_menu.copyTor.key "y">
-<!ENTITY torbutton.context_menu.openTorTab "Open Tor URL in new Tab">
+<!ENTITY torbutton.context_menu.copyTor "Sao chép địa chỉ URL của Tor">
+<!ENTITY torbutton.context_menu.copyTor.key "p">
+<!ENTITY torbutton.context_menu.openTorTab "Mở liên kết Tor URL trong Thẻ mới">
<!ENTITY torbutton.context_menu.openTorTab.key "r">
-<!ENTITY torbutton.context_menu.openTorWindow "Open Tor URL in new Window">
+<!ENTITY torbutton.context_menu.openTorWindow "Mở liên kết Tor URL trong Cửa sổ mới">
<!ENTITY torbutton.context_menu.openTorWindow.key "d">
<!ENTITY torbutton.button.label "Torbutton">
-<!ENTITY torbutton.button.tooltip "Nhấn để nhận diện Torbutton">
+<!ENTITY torbutton.button.tooltip "Nhấp để nhận diện Torbutton">
<!ENTITY torbutton.prefs.sec_settings "Thiết lập Bảo mật">
-<!ENTITY torbutton.prefs.block_thread "Chặn việc đọc lược sử trong quá trình Tor (cấp thiết)">
-<!ENTITY torbutton.prefs.block_thwrite "Chặn việc ghi lược sử trong quá trình Tor (khuyến cáo)">
-<!ENTITY torbutton.prefs.block_nthread "Chặn việc đọc lược sử trong quá trình Không-Tor (phụ)">
-<!ENTITY torbutton.prefs.block_nthwrite "Chặn việc ghi lược sử trong quá trình Không-Tor (phụ)">
-<!ENTITY torbutton.prefs.clear_history "Xóa lược sử khi bật tắt Tor (phụ)">
-<!ENTITY torbutton.prefs.clear_cache "Chặn bộ đệm đĩa Tor và xóa tất cả các tập tin đệm khi bật tắt Tor">
-<!ENTITY torbutton.prefs.block_cache "Chặn truy cập bộ đệm trên đĩa và bộ nhớ trong quá trình Tor">
-<!ENTITY torbutton.prefs.cookie_jars "Lưu trữ cookie Không-Tor trong một tập tin jar được bảo vệ">
+<!ENTITY torbutton.prefs.block_thread "Chặn việc đọc lịch sử h.đ trong quá trình dùng Tor (cấp thiết)">
+<!ENTITY torbutton.prefs.block_thwrite "Chặn việc ghi lịch sử h.đ trong quá trình dùng Tor (khuyến cáo)">
+<!ENTITY torbutton.prefs.block_nthread "Chặn việc đọc lịch sử trong quá trình không dùng Tor (tùy chọn)">
+<!ENTITY torbutton.prefs.block_nthwrite "Chặn việc ghi lịch sử h.đ trong quá trình không dùng Tor (tùy chọn)">
+<!ENTITY torbutton.prefs.clear_history "Xóa lịch sử khi bật/tắt Tor (tùy chọn)">
+<!ENTITY torbutton.prefs.clear_cache "Chặn bộ nhớ đệm từ Tor và xóa tất cả các tập tin đệm khi bật tắt Tor">
+<!ENTITY torbutton.prefs.block_cache "Chặn truy cập bộ đệm trên đĩa và bộ nhớ trong quá trình dùng Tor">
+<!ENTITY torbutton.prefs.cookie_jars "Lưu trữ cookie không thuộc Tor trong một tập tin *.jar được bảo vệ">
<!ENTITY torbutton.prefs.cookie_protection "Use the Cookie Protections Dialog to choose">
<!ENTITY torbutton.prefs.mmm_cookies "Tôi sẽ tự quản lí cookie của tôi (nguy hiểm)">
<!ENTITY torbutton.prefs.clear_cookies "Xóa cookie khi bật tắt Tor">
diff --git a/src/chrome/locale/zh-CN/aboutTor.dtd b/src/chrome/locale/zh-CN/aboutTor.dtd
index 5d06afd..8e84ded 100644
--- a/src/chrome/locale/zh-CN/aboutTor.dtd
+++ b/src/chrome/locale/zh-CN/aboutTor.dtd
@@ -12,7 +12,7 @@
<!ENTITY aboutTor.check.label "测试 Tor 网络设置">
-<!ENTITY aboutTor.success.label "成功!">
+<!ENTITY aboutTor.success.label "恭喜!">
<!ENTITY aboutTor.success2.label "该浏览器已配置为使用 Tor 网络。">
<!ENTITY aboutTor.success3.label "现在即可自由地匿名访问互联网。">
<!ENTITY aboutTor.failure.label "出错了!">
@@ -21,7 +21,7 @@
<!ENTITY aboutTor.failure3Link "help(a)rt.torproject.org">
<!ENTITY aboutTor.failure3suffix.label "。">
-<!ENTITY aboutTor.search.label "搜索">
+<!ENTITY aboutTor.search.label "安全的搜索引擎">
<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
diff --git a/src/chrome/locale/zh-CN/torbutton.dtd b/src/chrome/locale/zh-CN/torbutton.dtd
index 7c77238..2b1894e 100644
--- a/src/chrome/locale/zh-CN/torbutton.dtd
+++ b/src/chrome/locale/zh-CN/torbutton.dtd
@@ -12,18 +12,18 @@
<!ENTITY torbutton.prefs.proxy.port "端口:">
<!ENTITY torbutton.about.title "关于 Torbutton">
<!ENTITY torbutton.about.version "版本:">
-<!ENTITY torbutton.about.summary "正使用 Tor 进行浏览保护您的隐私。">
-<!ENTITY torbutton.about.code "代码提供者:">
+<!ENTITY torbutton.about.summary "使用 Tor 进行浏览保护在线隐私。">
+<!ENTITY torbutton.about.code "代码贡献者:">
<!ENTITY torbutton.about.maintainer "维护人员:">
-<!ENTITY torbutton.about.security_review "安全审查:">
-<!ENTITY torbutton.about.donate "如果您喜欢使用 Tor,您也可以考虑">
+<!ENTITY torbutton.about.security_review "安全评审:">
+<!ENTITY torbutton.about.donate "如果喜欢使用 Tor,你可以">
<!ENTITY torbutton.about.make_donation "给予捐赠。">
<!ENTITY torbutton.pref_connection.notice "禁止 Torbutton 更改这些设置。">
<!ENTITY torbutton.pref_connection.more_info "更多信息">
<!ENTITY torbutton.pref_connection_more_info.title "帮助">
-<!ENTITY torbutton.pref_connection_more_info.text "Torbutton 当前已启用。如果您想要更改非 Tor 的代理设置,请禁用 Torbutton 后再返回这里。如果您想更改Tor 的设置,请到 Torbutton 的首选项窗口中进行设置。">
-<!ENTITY torbutton.context_menu.new_identity "新特性">
-<!ENTITY torbutton.context_menu.new_identity_key "我">
+<!ENTITY torbutton.pref_connection_more_info.text "Torbutton 当前已启用。如需对 Tor 之外的代理设置进行更改,请禁用 Torbutton 后再返回这里。如需更改Tor 的设置,请在 Torbutton 首选项窗口中进行设置。">
+<!ENTITY torbutton.context_menu.new_identity "新标识">
+<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.toggle "切换 Tor 状态">
<!ENTITY torbutton.context_menu.toggle.key "T">
<!ENTITY torbutton.context_menu.preferences "首选项...">
@@ -45,21 +45,21 @@
<!ENTITY torbutton.button.label "Torbutton">
<!ENTITY torbutton.button.tooltip "点此初始化 Torbutton">
<!ENTITY torbutton.prefs.sec_settings "安全设置">
-<!ENTITY torbutton.prefs.block_thread "使用 Tor 时禁止读取历史(重要)">
-<!ENTITY torbutton.prefs.block_thwrite "使用 Tor 时禁止写入历史(推荐)">
-<!ENTITY torbutton.prefs.block_nthread "使用 Tor 之外的代理时禁止读取历史(可选)">
-<!ENTITY torbutton.prefs.block_nthwrite "停用 Tor 时禁止历史写入(可选)">
-<!ENTITY torbutton.prefs.clear_history "切换 Tor 状态时清除历史(可选)">
+<!ENTITY torbutton.prefs.block_thread "使用 Tor 时禁止读取历史记录(重要)">
+<!ENTITY torbutton.prefs.block_thwrite "使用 Tor 时禁止写入历史记录(推荐)">
+<!ENTITY torbutton.prefs.block_nthread "使用 Tor 之外的代理时禁止读取历史记录(可选)">
+<!ENTITY torbutton.prefs.block_nthwrite "停用 Tor 时禁止历史记录写入(可选)">
+<!ENTITY torbutton.prefs.clear_history "切换 Tor 状态时清除历史记录(可选)">
<!ENTITY torbutton.prefs.clear_cache "切换 Tor 时禁用磁盘缓存并清除所有缓存">
<!ENTITY torbutton.prefs.block_cache "使用 Tor 时禁止访问磁盘和内存缓存">
-<!ENTITY torbutton.prefs.cookie_jars "在受保护的 jar 中保存非 Tor 的 Cookie">
+<!ENTITY torbutton.prefs.cookie_jars "在受保护的 jar 中保存 Tor 之外的 Cookie">
<!ENTITY torbutton.prefs.cookie_protection "请在 Cookie 隐私保护对话框内选择">
-<!ENTITY torbutton.prefs.mmm_cookies "我要手动管理我的 cookies (危险)">
+<!ENTITY torbutton.prefs.mmm_cookies "手动管理我的 cookies (危险)">
<!ENTITY torbutton.prefs.clear_cookies "切换 Tor 时清除 cookie">
<!ENTITY torbutton.prefs.disable_plugins "使用 Tor 时禁用插件(重要)">
<!ENTITY torbutton.prefs.kill_bad_js "挂勾危险的 Java 脚本(重要)">
-<!ENTITY torbutton.prefs.isolate_content "根据 Tor 状态隔离动态网页内容((重要)">
-<!ENTITY torbutton.prefs.no_updates "使用 Tor 时禁止浏览器更新">
+<!ENTITY torbutton.prefs.isolate_content "将动态内容与 Tor 状态隔离(重要)">
+<!ENTITY torbutton.prefs.no_updates "使用 Tor 时禁用浏览器更新">
<!ENTITY torbutton.prefs.set_uagent "使用 Tor 作为用户代理设置(重要)">
<!ENTITY torbutton.prefs.dynamic "动态网页内容">
<!ENTITY torbutton.prefs.cookies "Cookies">
1
0

[torbutton/master] Write changelog and bump version for 1.6.8.0.
by mikeperry@torproject.org 08 Apr '14
by mikeperry@torproject.org 08 Apr '14
08 Apr '14
commit 0bd903fc9d1446c250fb107812cdd0d89a446497
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Mon Apr 7 19:03:35 2014 -0700
Write changelog and bump version for 1.6.8.0.
---
src/CHANGELOG | 18 ++++++++++++------
src/install.rdf | 2 +-
2 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/src/CHANGELOG b/src/CHANGELOG
index 321e2b9..e5b7c62 100644
--- a/src/CHANGELOG
+++ b/src/CHANGELOG
@@ -1,3 +1,9 @@
+1.6.8.0:
+ 7 Apr 2014:
+ * Bug 9010: Add Turkish to update locales.
+ * Bug 11242: Fix improper "update needed" message after in-place upgrade.
+ * Bug 10398: Ease translation of about:tor page elements
+
1.6.7.0:
7 Mar 2014:
* Bug 9901: Fix browser freeze due to content type sniffing
@@ -5,15 +11,15 @@
1.6.6.0:
3 Feb 2014
- * Bug #10800: Prevent exception in New Identity
- * Bug #10640: Fix about:tor's pointer position for RTL languages.
+ * Bug 10800: Prevent exception in New Identity
+ * Bug 10640: Fix about:tor's pointer position for RTL languages.
* Bug 10095: Make inner window a multiple of 200x100
* Bug 10285: Clear permissions on New Identity
* Bug 9738: Fix for auto-maximizing on browser start
- * Bug #10682: Workaround to really disable updates for Torbutton.
- * Bug #10419: Don't allow connections to localhost
- * Bug #10140: Move Japanese to extra locales
- * Bug #10687: Add Basque (eu) to extra locales
+ * Bug 10682: Workaround to really disable updates for Torbutton.
+ * Bug 10419: Don't allow connections to localhost
+ * Bug 10140: Move Japanese to extra locales
+ * Bug 10687: Add Basque (eu) to extra locales
1.6.5.5:
20 Jan 2014
diff --git a/src/install.rdf b/src/install.rdf
index 0c8c486..370cad8 100644
--- a/src/install.rdf
+++ b/src/install.rdf
@@ -6,7 +6,7 @@
<em:name>Torbutton</em:name>
<em:creator>Mike Perry</em:creator>
<em:id>torbutton(a)torproject.org</em:id>
- <em:version>1.6.7.0</em:version>
+ <em:version>1.6.8.0</em:version>
<em:homepageURL>https://www.torproject.org/projects/torbrowser.html.en</em:homepageURL>
<em:optionsURL>chrome://torbutton/content/preferences.xul</em:optionsURL>
<em:iconURL>chrome://torbutton/skin/tor.png</em:iconURL>
1
0
commit 7f6f1f6535d8c84d6dd3944ed54ff596fbc6c8b9
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Mon Apr 7 18:28:39 2014 -0700
Update translations.
---
src/chrome/locale/ar/network-settings.dtd | 32 +++++++--------
src/chrome/locale/ar/progress.dtd | 2 +-
src/chrome/locale/ar/torlauncher.properties | 4 +-
src/chrome/locale/eu/torlauncher.properties | 8 ++--
src/chrome/locale/it/network-settings.dtd | 9 +++--
src/chrome/locale/ko/network-settings.dtd | 22 +++++-----
src/chrome/locale/ko/progress.dtd | 2 +-
src/chrome/locale/ko/torlauncher.properties | 4 +-
src/chrome/locale/pl/network-settings.dtd | 2 +-
src/chrome/locale/pl/torlauncher.properties | 4 +-
src/chrome/locale/pt/network-settings.dtd | 56 +++++++++++++-------------
src/chrome/locale/sv/torlauncher.properties | 4 +-
src/chrome/locale/tr/torlauncher.properties | 35 +++++++++++++++-
src/chrome/locale/vi/network-settings.dtd | 8 ++--
src/chrome/locale/vi/progress.dtd | 6 +--
src/chrome/locale/vi/torlauncher.properties | 24 +++++------
src/chrome/locale/zh-CN/network-settings.dtd | 28 ++++++-------
17 files changed, 142 insertions(+), 108 deletions(-)
diff --git a/src/chrome/locale/ar/network-settings.dtd b/src/chrome/locale/ar/network-settings.dtd
index b3f0dca..a2cbdb6 100644
--- a/src/chrome/locale/ar/network-settings.dtd
+++ b/src/chrome/locale/ar/network-settings.dtd
@@ -2,17 +2,17 @@
<!-- For "first run" wizard: -->
-<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+<!ENTITY torsettings.prompt "عليك توفير معلومات حول اتصال هذا الحاسب بالإنترنت قبل أن تحاول الاتصال بشبكة Tor.">
<!ENTITY torSettings.yes "نعم">
<!ENTITY torSettings.no "لا">
<!ENTITY torSettings.firstQuestion "أي مما يلي يعتبر وصف افضل لموقفك؟">
<!ENTITY torSettings.configurePrompt1 " اتصال الإنترنت لهذا الكمبيوتر مُراقب، أو مصفى، أو يعمل ببروكسي.">
-<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configurePrompt2 "علي تكوين إعدادات الجسر أو جدار الحماية أو الوكيل.">
<!ENTITY torSettings.configure "تكوين">
<!ENTITY torSettings.connectPrompt2 "أود الاتصال مباشرة إلى شبكة تور.">
-<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connectPrompt3 "سيفيد هذا في معظم الحالات.">
<!ENTITY torSettings.connect "اتصل">
<!ENTITY torSettings.proxyQuestion "هل يحتاج هذا الجهاز إلي بروكسي حتي يصل إلي شبكة الإنترنت؟">
@@ -22,9 +22,9 @@
<!ENTITY torSettings.firewallQuestion "هل اتصال الإنترنت لهذا الكمبيوتر يمر بجدار حماية يسمح بالاتصال فقط من خلال منافذ معينة؟">
<!ENTITY torSettings.firewallHelp "إذا لم تكن متأكدا من كيفية الإجابة على هذا السؤال، اختار لا. إذا واجهتك مشاكل في الاتصال بشبكة تور, غيير هذا الإعداد.">
<!ENTITY torSettings.enterFirewall "إدخل قائمة مفصولة بفواصل من المنافذ التي يسمح بها جدار الحماية.">
-<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
-<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+<!ENTITY torSettings.bridgeQuestion "هل يقوم مقدم خدمة الإنترنت (ISP) الذي تتعامل معه بحجب الاتصالات بشبكة Tor أو مراقبتها بطريقة أخرى؟">
+<!ENTITY torSettings.bridgeHelp "إذا لم تكن متأكدا من إجابة هذا السؤال، قم باختيار لا. &#160; إذا قمت باختيار نعم، فسيطلب منك تكوين جسور Tor والتي هي منافذ ترحيل غير مدرجة تصعب عملية حظر الاتصالات بشبكة Tor.">
+<!ENTITY torSettings.bridgeSettingsPrompt "يمكنك استخدام مجموعة الجسور المتوفرة أو الحصول على مجموعة مخصصة من الجسور.">
<!-- Other: -->
@@ -46,19 +46,19 @@
<!ENTITY torsettings.firewall.checkbox "اتصال الإنترنت لهذا الكمبيوتر يمر بجدار حماية يسمح بالاتصال فقط من خلال منافذ معينة">
<!ENTITY torsettings.firewall.allowedPorts "المنافذ المسموح بها:">
<!ENTITY torsettings.useBridges.checkbox "مزود خدمة الإنترنت الخاص بي (ISP) يمنع الاتصالات بشبكة تور">
-<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
-<!ENTITY torsettings.useBridges.type "Transport type:">
-<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.default "الاتصال بالجسور المتوفرة">
+<!ENTITY torsettings.useBridges.type "نوع النقل:">
+<!ENTITY torsettings.useBridges.custom "إدخال جسور مخصصة">
<!ENTITY torsettings.useBridges.label "ادخل جسر او اكثر (جسر واحد في كل سطر).">
-<!ENTITY torsettings.useBridges.placeholder "type address:port">
+<!ENTITY torsettings.useBridges.placeholder "اكتب العنوان:المنفذ">
<!ENTITY torsettings.copyLog "نسخ سجل تور إلي الحافظة">
<!ENTITY torsettings.bridgeHelpTitle "المساعدة الخاصة بالجسور المُرحلة">
<!ENTITY torsettings.bridgeHelp1 "قد يكون السبب في عدم قدرتك علي الاتصال بشبكة تورهو ان مزود خدمة الإنترنت الخاص بك (ISP) أو منظمة اخري يمنع محاولات الاتصال بشبكة تور. وغالباً، تستطيع تخطي هذا المنع عن طريق استخدام جسور تور و الجسور عبارة عن مُرحلات مخفية صعب منعها.">
-<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
-<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
-<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
-<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
+<!ENTITY torsettings.bridgeHelp1B "يمكنك استخدام مجموعة عناوين الجسور المتوفرة التي تم تكوينها مسبقا أو الحصول على مجموعة مخصصة من العناوين باستخدام إحدى هذه الطرق الثلاث:">
+<!ENTITY torsettings.bridgeHelp2Heading "من خلال الويب">
+<!ENTITY torsettings.bridgeHelp2 "استخدم متصفح ويب لزيارة https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "من خلال المستجيب التلقائي للبريد الإلكتروني">
<!ENTITY torsettings.bridgeHelp3 "ارسل بريد إلكتروني إلى bridges(a)torproject.org يحتوي علي 'get bridges' في قلب البريد. و حتي تضمن وصول ذلك البريد لنا بنجاح استخدم إما gmail.com أو yahoo.com">
-<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp4Heading "من خلال مكتب المساعدة">
+<!ENTITY torsettings.bridgeHelp4 "يمكنك طلب عناوين الجسر، كحل أخير، من خلال إرسال رسالة بريد إلكتروني مهذبة إلى help(a)rt.torproject.org.&#160; يرجى ملاحظة أنه يجب أن يرد شخص ما على كل طلب.">
diff --git a/src/chrome/locale/ar/progress.dtd b/src/chrome/locale/ar/progress.dtd
index e12a12f..6f4907d 100644
--- a/src/chrome/locale/ar/progress.dtd
+++ b/src/chrome/locale/ar/progress.dtd
@@ -1,4 +1,4 @@
<!ENTITY torprogress.dialog.title "حالة تور">
<!ENTITY torprogress.openSettings "افتح الإعدادات">
<!ENTITY torprogress.heading "جاري الاتصال بشبكة تور">
-<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
+<!ENTITY torprogress.pleaseWait "الرجاء الانتظار، يتم الان إنشاء اتصال بشبكة تور.">
diff --git a/src/chrome/locale/ar/torlauncher.properties b/src/chrome/locale/ar/torlauncher.properties
index 06171de..c7ee50d 100644
--- a/src/chrome/locale/ar/torlauncher.properties
+++ b/src/chrome/locale/ar/torlauncher.properties
@@ -24,8 +24,8 @@ torlauncher.ensure_tor_is_running=الرجاء التأكد أن تور يعمل
torlauncher.error_proxy_addr_missing=من الضروري تحديد كل من عنوان الانترنت IP أو عنوان مستضيف واحد و منفذ وذلك لتهيئة تور لأستخدام بروكسي حتي يستطيع الوصول إلي شبكة الانترنت.
torlauncher.error_proxy_type_missing=من الضروري تحديد نوع البروكسي.
torlauncher.error_bridges_missing=من الضروري تحديد جسر واحد أو أكثر.
-# torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
-# torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+torlauncher.error_default_bridges_type_missing=يجب عليك تحديد نوع الجسور المقدمة مع المتصفح.
+torlauncher.error_bridge_bad_default_type=هذا النوع غير متوفر بداخل الجسور المقدمة مع المتصفح. الرجاء تعديل إعداداتك.
torlauncher.recommended_bridge=(موصى به)
diff --git a/src/chrome/locale/eu/torlauncher.properties b/src/chrome/locale/eu/torlauncher.properties
index a104c27..2d57a88 100644
--- a/src/chrome/locale/eu/torlauncher.properties
+++ b/src/chrome/locale/eu/torlauncher.properties
@@ -7,7 +7,7 @@ torlauncher.tor_exited=Tor ustekabean irten da.
torlauncher.please_restart_app=Mesedez aplikazio hau berrabiarazi ezazu.
torlauncher.tor_controlconn_failed=Tor kontrol atakara ezin konektatu.
torlauncher.tor_failed_to_start=Torek huts egin du abiarazterakoan.
-# torlauncher.tor_control_failed=Failed to take control of Tor.
+torlauncher.tor_control_failed=Huts Toren kontrola hartzerakoan.
torlauncher.tor_bootstrap_failed=Torek huts egin du Tor sare konexio bat ezartzerakoan.
torlauncher.tor_bootstrap_failed_details=%1$S huts egin du (%2$S).
@@ -24,10 +24,10 @@ torlauncher.ensure_tor_is_running=Mesedez egiaztatu Tor exekutatzen ari dela.
torlauncher.error_proxy_addr_missing=Torek proxy bat erabiliz Interneten sartzeko konfiguratu nahi baduzu edo IP helbidea edo ostalari-izena edo portu zenbakia zehaztu behar duzu.
torlauncher.error_proxy_type_missing=Proxy mota hautatu behar duzu.
torlauncher.error_bridges_missing=Zubi bat edo gehiago zehaztu behar duzu.
-# torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
-# torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+torlauncher.error_default_bridges_type_missing=Emandako zubietarako garraio mota bat hautatu behar duzu.
+torlauncher.error_bridge_bad_default_type=Ez daude eskuragarri %S garraio mota duten emandako zubirik. Mesedez doitu zure ezarpenak.
-# torlauncher.recommended_bridge=(recommended)
+torlauncher.recommended_bridge=(gomendatuta)
torlauncher.connect=Konektatu
torlauncher.quit=Irten
diff --git a/src/chrome/locale/it/network-settings.dtd b/src/chrome/locale/it/network-settings.dtd
index 54d07c3..c319724 100644
--- a/src/chrome/locale/it/network-settings.dtd
+++ b/src/chrome/locale/it/network-settings.dtd
@@ -2,7 +2,7 @@
<!-- For "first run" wizard: -->
-<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+<!ENTITY torsettings.prompt "Prima di connetterti alla rete Tor, devi fornire le informazioni riguardo la connessione internet di questo computer.">
<!ENTITY torSettings.yes "Sì">
<!ENTITY torSettings.no "No">
@@ -22,7 +22,7 @@
<!ENTITY torSettings.firewallQuestion "La connessione ad Internet di questo computer passa attraverso un firewall che permette le connessioni solo ad alcune porte?">
<!ENTITY torSettings.firewallHelp "Se non sei sicuro su come rispondere a questa domanda, seleziona No. Nel caso in cui si verifichino problemi di connessione alla rete Tor, cambia queste impostazioni.">
<!ENTITY torSettings.enterFirewall "Inserisci una lista di porte consentite dal firewall, separate da una virgola.">
-<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeQuestion "Il tuo fornitore di servizi internet (ISP) blocca o censura la connessione alla rete Tor?">
<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
@@ -46,11 +46,12 @@
<!ENTITY torsettings.firewall.checkbox "Questo computer passa attraverso un firewall che permette le connessioni solo ad alcune porte">
<!ENTITY torsettings.firewall.allowedPorts "Porte consentite:">
<!ENTITY torsettings.useBridges.checkbox "Il mio fornitore di servizi Internet (ISP) blocca le connessioni alla rete Tor">
-<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.default "
+">
<!ENTITY torsettings.useBridges.type "Tipo di trasporto:">
<!ENTITY torsettings.useBridges.custom "Inserire bridge personaizzati">
<!ENTITY torsettings.useBridges.label "Inserisci uno o più bridge relay (uno per riga)">
-<!ENTITY torsettings.useBridges.placeholder "type address:port">
+<!ENTITY torsettings.useBridges.placeholder "Tipo indirizzo:porta">
<!ENTITY torsettings.copyLog "Copia il log di Tor negli "appunti" di sistema">
<!ENTITY torsettings.bridgeHelpTitle "Aiuto per i ponti relé">
diff --git a/src/chrome/locale/ko/network-settings.dtd b/src/chrome/locale/ko/network-settings.dtd
index 0fc76e1..9b4465d 100644
--- a/src/chrome/locale/ko/network-settings.dtd
+++ b/src/chrome/locale/ko/network-settings.dtd
@@ -2,14 +2,14 @@
<!-- For "first run" wizard: -->
-<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+<!ENTITY torsettings.prompt "Tor 네트워크에 연결을 시도하기 전에, 이 컴퓨터의 인터넷 연결에 대한 정보를 제공해야합니다.">
<!ENTITY torSettings.yes "예">
<!ENTITY torSettings.no "아니오">
<!ENTITY torSettings.firstQuestion "어떤 것이 귀하의 상황에 가깝습니까?">
-<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
-<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configurePrompt1 "이 컴퓨터의 인터넷 연결은 검열되거나 필터링되거나 프록시를 사용하고 있습니다.">
+<!ENTITY torSettings.configurePrompt2 "브릿지, 방화벽, 프록시 설정 구성을 해야 합니다.">
<!ENTITY torSettings.configure "구성">
<!ENTITY torSettings.connectPrompt2 "Tor 네트워크에 직접 연결하고 싶습니다.">
<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
@@ -22,7 +22,7 @@
<!ENTITY torSettings.firewallQuestion "이 컴퓨터의 인터넷 연결은 방화벽을 통해서 특정 포트 접속만 허가합니까?">
<!ENTITY torSettings.firewallHelp "이 질문에 어떻게 대답해야 할지 확신이 서지 않으면 아니오를 선택하세요. Tor 네트워크에 접속할 때 문제를 만났다면 이 설정을 변경해 주세요.">
<!ENTITY torSettings.enterFirewall "방화벽에 따라 허가되고 있는 포트 목록 입력해 주세요. 포트 번호는 콤마로 구분됩니다.">
-<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeQuestion "인터넷 서비스 공급자(ISP)가 Tor 네트워크 접속을 차단하거나 검열하고 있나요?">
<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
@@ -46,19 +46,19 @@
<!ENTITY torsettings.firewall.checkbox "이 컴퓨터는 특정 포트만 통과하는 방화벽을 지나 연결됩니다.">
<!ENTITY torsettings.firewall.allowedPorts "허용된 포트:">
<!ENTITY torsettings.useBridges.checkbox "인터넷 서비스 공급자(ISP)가 Tor 네트워크 접속을 차단합니다.">
-<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
+<!ENTITY torsettings.useBridges.default "제공된 브릿지에 연결">
<!ENTITY torsettings.useBridges.type "Transport type:">
-<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
-<!ENTITY torsettings.useBridges.label "Enter one or more bridge relays (one per line).">
-<!ENTITY torsettings.useBridges.placeholder "type address:port">
+<!ENTITY torsettings.useBridges.custom "이용자 브릿지 접속">
+<!ENTITY torsettings.useBridges.label "1개 이상의 브릿지 중계 서버를 입력해 주세요. (각 줄에 한 개씩)">
+<!ENTITY torsettings.useBridges.placeholder "주소 입력 : 포트 번호">
<!ENTITY torsettings.copyLog "Tor log를 클립보드에 복사하기">
<!ENTITY torsettings.bridgeHelpTitle "브릿지 중계 서버 도움말">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
+<!ENTITY torsettings.bridgeHelp1 "Tor 네트워크에 접속할 수 없는 경우, 귀하의 인터넷 서비스 공급자(ISP)나 별도의 기관이 Tor를 차단하고 있을 가능성이 있습니다.&#160; 그럴 때는 숨겨진 중계 서버를 통해 Tor 브릿지를 사용함으로써 이 문제를 해결할 수도 있습니다.">
<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
-<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp2 "https://bridges.torproject.org 를 방문하십시오.">
<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
+<!ENTITY torsettings.bridgeHelp3 "공개 브릿지 주소를 찾는 또 하나의 방법은 본문에 'get bridges'라고 적은 E-mail을 bridges(a)torproject.org 앞으로 보내는 것입니다.&#160; 단, 브릿지 주소를 크래커들이 수집하기 어렵게 하기 위해 gmail.com 이나 yahoo.com 으로 보내주시면 감사하겠습니다.">
<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
diff --git a/src/chrome/locale/ko/progress.dtd b/src/chrome/locale/ko/progress.dtd
index dabaa61..bb931d0 100644
--- a/src/chrome/locale/ko/progress.dtd
+++ b/src/chrome/locale/ko/progress.dtd
@@ -1,4 +1,4 @@
<!ENTITY torprogress.dialog.title "Tor 상태">
<!ENTITY torprogress.openSettings "시작 설정">
<!ENTITY torprogress.heading "Tor 네트워크에 연결중">
-<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
+<!ENTITY torprogress.pleaseWait "Tor네트워크로 확실히 연결할 때까지 기다리세요.">
diff --git a/src/chrome/locale/ko/torlauncher.properties b/src/chrome/locale/ko/torlauncher.properties
index 3e3771f..3629f23 100644
--- a/src/chrome/locale/ko/torlauncher.properties
+++ b/src/chrome/locale/ko/torlauncher.properties
@@ -24,8 +24,8 @@ torlauncher.ensure_tor_is_running=Tor가 실행중인 지 확인하여 주십시
torlauncher.error_proxy_addr_missing=인터넷에 접속하기 위해 프록시를 사용한다면, Ip주소나 호스트 이름, 그리고 포트 번호를 입력해야 합니다.
torlauncher.error_proxy_type_missing=프록시 유형을 선택해 주십시오.
torlauncher.error_bridges_missing=하나 이상의 bridge를 지정해야 합니다.
-# torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
-# torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
torlauncher.recommended_bridge=(권장함)
diff --git a/src/chrome/locale/pl/network-settings.dtd b/src/chrome/locale/pl/network-settings.dtd
index 149647e..435536a 100644
--- a/src/chrome/locale/pl/network-settings.dtd
+++ b/src/chrome/locale/pl/network-settings.dtd
@@ -22,7 +22,7 @@
<!ENTITY torSettings.firewallQuestion "Czy połączenie internetowe Twojego komputera pozwala przejść przez zaporę sieciową w celu nawiązania połączenia z ustalonymi portami?">
<!ENTITY torSettings.firewallHelp "Jeśli nie jesteś pewien jak odpowiedzieć na to pytanie, wybierz Nie. W przypadku wystąpienia problemów z połączeniem, zmień tą opcję.">
<!ENTITY torSettings.enterFirewall "Wprowadź listę portów dozwolonych przez zaporę (kolejne porty oddzielaj przecinkiem).">
-<!ENTITY torSettings.bridgeQuestion "Czy Twój dostawca usług internetowych (ISP) blokuje lub ocenzurowuje połączenia sieci Tor?">
+<!ENTITY torSettings.bridgeQuestion "Czy Twój dostawca usług internetowych (ISP) blokuje lub cenzuruje połączenia sieci Tor?">
<!ENTITY torSettings.bridgeHelp "Jeśli nie jesteś pewny odpowiedzi na to pytanie proszę wybrać odpowiedź Nie.&#160; Jeśli wybierzesz Tak, to będziesz poproszony o skonfigurowanie mostków Tora, które nie są publicznie wymienione, dzięki czemu będzie trudniej zablokować połączenia do sieci Tor.">
<!ENTITY torSettings.bridgeSettingsPrompt "Możesz wybrać dostępny zestaw mostków, albo możesz uzyskać i wprowadzić niestandardowy zestaw mostów.">
diff --git a/src/chrome/locale/pl/torlauncher.properties b/src/chrome/locale/pl/torlauncher.properties
index 847d994..d982fb7 100644
--- a/src/chrome/locale/pl/torlauncher.properties
+++ b/src/chrome/locale/pl/torlauncher.properties
@@ -8,7 +8,7 @@ torlauncher.please_restart_app=Proszę zrestartuj tą aplikację.
torlauncher.tor_controlconn_failed=Nie można połączyć się z portem kontrolnym Tora.
torlauncher.tor_failed_to_start=Nie powiodło się włączenie Tora.
torlauncher.tor_control_failed=Nie udało się przejąć kontroli nad Tor'em.
-torlauncher.tor_bootstrap_failed=Błąd Tor, nie udało się nawiązać połączenia z siecią Tora.
+torlauncher.tor_bootstrap_failed=Tor nie nawiązał połączenia z siecią Tora.
torlauncher.tor_bootstrap_failed_details=%1$S błąd (%2$S).
torlauncher.unable_to_start_tor=Nie można wystartować aplikacji Tor.\n\n%S
@@ -40,7 +40,7 @@ torlauncher.bootstrapStatus.conn_dir=Podłączanie do katalogu węzłów
torlauncher.bootstrapStatus.handshake_dir=Ustanawianie szyfrowanego połączenia z katalogiem
torlauncher.bootstrapStatus.requesting_status=Odczytywanie stanu sieci
torlauncher.bootstrapStatus.loading_status=Wczytywanie stanu sieci
-torlauncher.bootstrapStatus.loading_keys=Wczytywanie certyfikatów
+torlauncher.bootstrapStatus.loading_keys=Wczytywanie certyfikatów uwierzytelnienia
torlauncher.bootstrapStatus.requesting_descriptors=Żądanie informacji o węźle
torlauncher.bootstrapStatus.loading_descriptors=Wczytywanie informacji o węźle
torlauncher.bootstrapStatus.conn_or=Łączenie z siecią Tor
diff --git a/src/chrome/locale/pt/network-settings.dtd b/src/chrome/locale/pt/network-settings.dtd
index 9c5b2f1..57bd038 100644
--- a/src/chrome/locale/pt/network-settings.dtd
+++ b/src/chrome/locale/pt/network-settings.dtd
@@ -2,29 +2,29 @@
<!-- For "first run" wizard: -->
-<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+<!ENTITY torsettings.prompt "Antes de se ligar à rede Tor precisa de fornecer informações sobre a ligação deste computador à Internet.">
<!ENTITY torSettings.yes "Sim">
<!ENTITY torSettings.no "Não">
<!ENTITY torSettings.firstQuestion "Qual das seguintes frases melhor descreve a sua situação?">
<!ENTITY torSettings.configurePrompt1 "A ligação à Internet deste computador está a ser censurada, filtrada ou utilizada através de um proxy.">
-<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configurePrompt2 "Eu preciso de configurar o bridge, o firewall e as definições do proxy.">
<!ENTITY torSettings.configure "Configurar">
<!ENTITY torSettings.connectPrompt2 "Gostaria de me ligar diretamente à rede Tor.">
-<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
+<!ENTITY torSettings.connectPrompt3 "Isto funciona na maior parte das situações.">
<!ENTITY torSettings.connect "Ligar">
-<!ENTITY torSettings.proxyQuestion "Este computador precisa de usar um proxy para aceder a Internet?">
+<!ENTITY torSettings.proxyQuestion "Este computador precisa de usar uma proxy para aceder a Internet?">
<!-- see https://www.torproject.org/docs/proxychain.html.en -->
<!ENTITY torSettings.proxyHelp "Se não tem a certeza de como responder esta questão, olhe para as definições de Internet noutro navegador para ver se está configurado para usar um proxy.">
<!ENTITY torSettings.enterProxy "Introduza as definições de proxy.">
-<!ENTITY torSettings.firewallQuestion "A ligação à Internet deste computador atravessa um firewall que só permite algumas ligações a certas portas?">
-<!ENTITY torSettings.firewallHelp "Se não tem a certeza de como responder esta questão, escolha Não. Se encontrar quaisquer problemas ao ligar-se á rede Tor, mude esta definição.">
-<!ENTITY torSettings.enterFirewall "Introduza uma lista de portas separada por vírgulas que são permitidas pela firewall.">
-<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
-<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
-<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
+<!ENTITY torSettings.firewallQuestion "A ligação à Internet deste computador atravessa uma firewall que só permite algumas ligações a certos portos?">
+<!ENTITY torSettings.firewallHelp "Se não tem a certeza de como responder esta questão, escolha Não. Se encontrar quaisquer problemas ao ligar-se à rede Tor, mude esta definição.">
+<!ENTITY torSettings.enterFirewall "Introduza uma lista de portos separada por vírgulas que são permitidas pela firewall.">
+<!ENTITY torSettings.bridgeQuestion "O seu fornecedor de serviços de internet bloqueia ou censura ligações à rede Tor ?">
+<!ENTITY torSettings.bridgeHelp "Se não tem a certeza de como responder a esta questão, escolha o Nº.&#160; Se escolher Sim, vai-lhe ser pedido para configurar as Tor Bridges, que são pontos de passagem não listados mais difíceis de bloquear ligações à rede Tor.">
+<!ENTITY torSettings.bridgeSettingsPrompt "Pode usar o conjunto de bridges pré-configurado fornecido, ou pode obter um conjunto de bridges personalizadas.">
<!-- Other: -->
@@ -33,32 +33,32 @@
<!ENTITY torsettings.optional "Opcional">
-<!ENTITY torsettings.useProxy.checkbox "Este computador precisa de usar um proxy para aceder à Internet.">
+<!ENTITY torsettings.useProxy.checkbox "Este computador precisa de usar uma proxy para aceder à Internet.">
<!ENTITY torsettings.useProxy.type "Tipo de Proxy:">
<!ENTITY torsettings.useProxy.address "Endereço:">
-<!ENTITY torsettings.useProxy.address.placeholder "Endereço IP ou hostname">
-<!ENTITY torsettings.useProxy.port "Porta:">
+<!ENTITY torsettings.useProxy.address.placeholder "Endereço IP ou nome de anfitrião">
+<!ENTITY torsettings.useProxy.port "Porto:">
<!ENTITY torsettings.useProxy.username "Nome do utilizador:">
<!ENTITY torsettings.useProxy.password "Palavra-Chave:">
<!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 está protegido por um firewall que permite apenas algumas ligações a algumas portas.">
-<!ENTITY torsettings.firewall.allowedPorts "Portas permitidas:">
+<!ENTITY torsettings.firewall.checkbox "Este computador está protegido por um firewall que permite apenas algumas ligações a alguns portos.">
+<!ENTITY torsettings.firewall.allowedPorts "Portos permitidos:">
<!ENTITY torsettings.useBridges.checkbox "O meu Internet Service Provider (ISP) bloqueia ligações à rede Tor">
-<!ENTITY torsettings.useBridges.default "Connect with provided bridges">
-<!ENTITY torsettings.useBridges.type "Transport type:">
-<!ENTITY torsettings.useBridges.custom "Enter custom bridges">
+<!ENTITY torsettings.useBridges.default "Ligar com as bridges fornecidas">
+<!ENTITY torsettings.useBridges.type "Tipo de transporte:">
+<!ENTITY torsettings.useBridges.custom "Introduza bridges personalizadas">
<!ENTITY torsettings.useBridges.label "Introduza um ou mais relays bridge (um por linha).">
-<!ENTITY torsettings.useBridges.placeholder "type address:port">
+<!ENTITY torsettings.useBridges.placeholder "escreva endereço:porto">
-<!ENTITY torsettings.copyLog "Copiar o Tor Log para o Clipboard">
+<!ENTITY torsettings.copyLog "Copiar o log Tor para a Área de Transferência">
<!ENTITY torsettings.bridgeHelpTitle "Ajuda Bridge Relay">
-<!ENTITY torsettings.bridgeHelp1 "If you are unable to connect to the Tor network, it could be that your Internet Service Provider (ISP) or another agency is blocking Tor.&#160; Often, you can work around this problem by using Tor Bridges, which are unlisted relays that are more difficult to block.">
-<!ENTITY torsettings.bridgeHelp1B "You may use the preconfigured, provided set of bridge addresses or you may obtain a custom set of addresses by using one of these three methods:">
-<!ENTITY torsettings.bridgeHelp2Heading "Through the Web">
-<!ENTITY torsettings.bridgeHelp2 "Use a web browser to visit https://bridges.torproject.org">
-<!ENTITY torsettings.bridgeHelp3Heading "Through the Email Autoresponder">
-<!ENTITY torsettings.bridgeHelp3 "Send email to bridges(a)torproject.org with the line 'get bridges' by itself in the body of the message.&#160; However, to make it harder for an attacker to learn a lot of bridge addresses, you must send this request from a gmail.com or yahoo.com email address.">
-<!ENTITY torsettings.bridgeHelp4Heading "Through the Help Desk">
-<!ENTITY torsettings.bridgeHelp4 "As a last resort, you can request bridge addresses by sending a polite email message to help(a)rt.torproject.org.&#160; Please note that a person will need to respond to each request.">
+<!ENTITY torsettings.bridgeHelp1 "Se não consegue ligar-se à rede Tor, pode ser devido a algum bloqueio do seu provedor de internet (ISP) ou outro intermediário está a bloquear o Tor.&#160; Normalmente, pode contornar este problema usando Tor Bridges, que são pontos de passagem não listados mais difíceis de bloquear.">
+<!ENTITY torsettings.bridgeHelp1B "Pode usar o conjunto de bridges pré-configurado fornecido, ou pode obter um conjunto de endereços personalizados usando um dos três métodos:">
+<!ENTITY torsettings.bridgeHelp2Heading "Pela rede">
+<!ENTITY torsettings.bridgeHelp2 "Use um navegador internet para visitar https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "Pelo respondedor de email automático">
+<!ENTITY torsettings.bridgeHelp3 "Envie um email para bridges(a)torproject.org com a linha 'get bridges' no próprio corpo da mensagem.&#160; No entanto, para tornar mais difícil para um atacante apreender o conjunto de endereços de bridge, tem que enviar este pedido de uma conta gmail.com ou yahoo.com.">
+<!ENTITY torsettings.bridgeHelp4Heading "Pelo Helpdesk">
+<!ENTITY torsettings.bridgeHelp4 "Em último caso, pode pedir endereços bridge enviando um email cordial para help(a)rt.torproject.org.&#160; Por favor tenha em conta que cada pedido será respondido por uma pessoa.">
diff --git a/src/chrome/locale/sv/torlauncher.properties b/src/chrome/locale/sv/torlauncher.properties
index 985868c..7efa755 100644
--- a/src/chrome/locale/sv/torlauncher.properties
+++ b/src/chrome/locale/sv/torlauncher.properties
@@ -24,8 +24,8 @@ torlauncher.ensure_tor_is_running=Försäkra dig om att Tor är startad.
torlauncher.error_proxy_addr_missing=Du måste ange både en IP-adress eller värdnamn, samt ett port-nummer för att konfigurera Tor till att använda en proxy för att nå Internet.
torlauncher.error_proxy_type_missing=Du måste välja typ av proxy.
torlauncher.error_bridges_missing=Du måste ange en eller flera bryggor.
-# torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
-# torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+torlauncher.error_default_bridges_type_missing=Du måste välja en transporttyp för de förkonfigurerade bryggorna.
+torlauncher.error_bridge_bad_default_type=Det finns inga förkonfigurerade bryggor för transporttypen %S tillgängliga. Du behöver ändra dina inställningar.
torlauncher.recommended_bridge=(rekommenderas)
diff --git a/src/chrome/locale/tr/torlauncher.properties b/src/chrome/locale/tr/torlauncher.properties
index d175b3f..874951b 100644
--- a/src/chrome/locale/tr/torlauncher.properties
+++ b/src/chrome/locale/tr/torlauncher.properties
@@ -1,7 +1,40 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.tor_bootstrap_failed_details=%1$S hata (%2$S).
+torlauncher.error_title=Tor Başlatıcı
+
+torlauncher.tor_exited=Tor beklenmedik bir şekilde kapandı.
+torlauncher.please_restart_app=Lütfen bu uygulamayı yeniden başlatın.
+torlauncher.tor_controlconn_failed=Tor yönetim portuna bağlanılamadı.
+torlauncher.tor_failed_to_start=Tor başlatılamadı.
+torlauncher.tor_control_failed=Tor'u kontrol altına alma başarısız
+torlauncher.tor_bootstrap_failed=Tor'un ağ bağlantısı kurulumu başarısız oldu.
+torlauncher.tor_bootstrap_failed_details=%1$S başarısız oldu (%2$S).
+
+torlauncher.unable_to_start_tor=Tor başlatılamıyor.\n\n%S
+torlauncher.tor_missing=Çalıştırılabilir Tor dosyası bulunamadı.
+torlauncher.torrc_missing=torrc dosyası kayıp.
+torlauncher.datadir_missing=Tor veri klasörü bulunamadı.
+torlauncher.password_hash_missing=Hash'lenmiş şifreye ulaşılamadı.
+
+torlauncher.failed_to_get_settings=Tor ayarlarına ulaşılamıyor.\n\n%S
+torlauncher.failed_to_save_settings=Tor ayarları kaydedilemiyor.\n\n%S
+torlauncher.ensure_tor_is_running=Lütfen Tor'un çalıştığından emin olun.
+
+torlauncher.error_proxy_addr_missing=İnternet bağlanırken proxy kullanmak için IP adresi veya Sunucu ve port numarası girmeniz gerekiyor.
+torlauncher.error_proxy_type_missing=Vekil sunucu türünü seçmelisiniz.
+torlauncher.error_bridges_missing=Bir ya da daha fazla köprü belirtmelisiniz.
+torlauncher.error_default_bridges_type_missing=Sağlanan köprüler için bir taşıma türü seçmelisiniz.
+torlauncher.error_bridge_bad_default_type=%S taşıma türü için sağlanan kullanılabilir köprüler yok. Ayarlarınızı lütfen ayarlayın.
+
+torlauncher.recommended_bridge=(önerilen)
+
+torlauncher.connect=Bağlan
+torlauncher.quit=Çık
+torlauncher.quit_win=Çıkış
+torlauncher.done=Tamamlandı
+
+torlauncher.forAssistance=Yardım için %S ile bağlantıya geçin.
torlauncher.bootstrapStatus.conn_dir=Aktarım klasörüne bağlanıyor
torlauncher.bootstrapStatus.handshake_dir=Şifrelenmiş dizin bağlantısı kuruluyor
diff --git a/src/chrome/locale/vi/network-settings.dtd b/src/chrome/locale/vi/network-settings.dtd
index e42c83b..8283781 100644
--- a/src/chrome/locale/vi/network-settings.dtd
+++ b/src/chrome/locale/vi/network-settings.dtd
@@ -2,14 +2,14 @@
<!-- For "first run" wizard: -->
-<!ENTITY torsettings.prompt "Before you connect to the Tor network, you need to provide information about this computer's Internet connection.">
+<!ENTITY torsettings.prompt "Trước khi kết nối đến mạng lưới Tor, bạn cần phải cung cấp thông tin về kết nối Internet của máy tính này.">
<!ENTITY torSettings.yes "Có">
<!ENTITY torSettings.no "Không">
-<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
+<!ENTITY torSettings.firstQuestion "Những mục này có miêu tả đúng vị trí của bạn không?">
<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored, filtered, or proxied.">
-<!ENTITY torSettings.configurePrompt2 "I need to configure bridge, firewall, or proxy settings.">
+<!ENTITY torSettings.configurePrompt2 "Tôi cần phải cấu hình cầu nối, tường lửa, hoặc thiết lập máy chủ uỷ quyền.">
<!ENTITY torSettings.configure "Cấu hình">
<!ENTITY torSettings.connectPrompt2 "Tôi muốn kết nối trực tiếp đến mạng Tor,">
<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
@@ -22,7 +22,7 @@
<!ENTITY torSettings.firewallQuestion "Does this computer's Internet connection go through a firewall that only allows connections to certain ports?">
<!ENTITY torSettings.firewallHelp "Nếu như bạn không chắc chắn làm thế nào trả lời câu hỏi này, chọn Không. Nếu như bạn gặp vấn đề kết nối đến mạng Tor, thay đổi thiết lập này.">
<!ENTITY torSettings.enterFirewall "Enter a comma-separated list of ports that are allowed by the firewall.">
-<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
+<!ENTITY torSettings.bridgeQuestion "Nhà cung cấp dịch vụ (ISP) của bạn có ngăn chặn hoặc kiểm duyệt kết nối đến mạng Tor không?">
<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.&#160; If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
<!ENTITY torSettings.bridgeSettingsPrompt "You may use the provided set of bridges or you may obtain and enter a custom set of bridges.">
diff --git a/src/chrome/locale/vi/progress.dtd b/src/chrome/locale/vi/progress.dtd
index cbafae0..507803b 100644
--- a/src/chrome/locale/vi/progress.dtd
+++ b/src/chrome/locale/vi/progress.dtd
@@ -1,4 +1,4 @@
-<!ENTITY torprogress.dialog.title "Tor Status">
-<!ENTITY torprogress.openSettings "Open Settings">
+<!ENTITY torprogress.dialog.title "Trạng thái Tor">
+<!ENTITY torprogress.openSettings "Cài đặt Mở">
<!ENTITY torprogress.heading "Kết nối với mạng Tor">
-<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.">
+<!ENTITY torprogress.pleaseWait "Vui lòng chờ đợi để chúng tôi kết nối đến mạng lưới Tor.">
diff --git a/src/chrome/locale/vi/torlauncher.properties b/src/chrome/locale/vi/torlauncher.properties
index 8566a15..9cfc93d 100644
--- a/src/chrome/locale/vi/torlauncher.properties
+++ b/src/chrome/locale/vi/torlauncher.properties
@@ -1,40 +1,40 @@
### Copyright (c) 2014, The Tor Project, Inc.
### See LICENSE for licensing information.
-# torlauncher.error_title=Tor Launcher
+torlauncher.error_title=Tor Launcher
-# torlauncher.tor_exited=Tor unexpectedly exited.
+torlauncher.tor_exited=Tor unexpectedly exited.
torlauncher.please_restart_app=Vui lòng khởi động lại ứng dụng này.
-# torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
+torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
torlauncher.tor_failed_to_start=Chạy Tor thất bại.
-# torlauncher.tor_control_failed=Failed to take control of Tor.
+torlauncher.tor_control_failed=Failed to take control of Tor.
torlauncher.tor_bootstrap_failed=Tor đã thất bại khi thiết lập kết nối đến mạng Tor
-# torlauncher.tor_bootstrap_failed_details=%1$S failed (%2$S).
+torlauncher.tor_bootstrap_failed_details=%1$S failed (%2$S).
-# torlauncher.unable_to_start_tor=Unable to start Tor.\n\n%S
+torlauncher.unable_to_start_tor=Unable to start Tor.\n\n%S
torlauncher.tor_missing=Tập tin thực thi của Tor bị thiếu.
torlauncher.torrc_missing=Thiếu tập tin torrc.
torlauncher.datadir_missing=Thư mục data trong Tor không tồn tại.
-# torlauncher.password_hash_missing=Failed to get hashed password.
+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_get_settings=Unable to retrieve Tor settings.\n\n%S
torlauncher.failed_to_save_settings=Không thể lưu lại các cài đặt của Tor.
torlauncher.ensure_tor_is_running=Hãy chắc chắn rằng Tor đang chạy.
torlauncher.error_proxy_addr_missing=Bạn phải xác định cả hai một địa chỉ IP hay tên máy và số cổng để cấu hình Tor để sử dụng một proxy ủy quyền truy cập vào Liên mạng
torlauncher.error_proxy_type_missing=Bạn phải chọn kiểu proxy.
torlauncher.error_bridges_missing=Bạn phải chỉ dẫn một hoặc nhiều cầu nối.
-# torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
-# torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
-# torlauncher.recommended_bridge=(recommended)
+torlauncher.recommended_bridge=(khuyên dùng)
torlauncher.connect=Kết nối
torlauncher.quit=Thoát
torlauncher.quit_win=Thoát
torlauncher.done=Hoàn thành
-# torlauncher.forAssistance=For assistance, contact %S
+torlauncher.forAssistance=Để được trợ giúp, liên hệ %S
torlauncher.bootstrapStatus.conn_dir=Kết nối vào một thư mục chuyển tiếp
torlauncher.bootstrapStatus.handshake_dir=Thành lập một kết nối thư mục được mã hóa
diff --git a/src/chrome/locale/zh-CN/network-settings.dtd b/src/chrome/locale/zh-CN/network-settings.dtd
index 8bbe5f7..28b973d 100644
--- a/src/chrome/locale/zh-CN/network-settings.dtd
+++ b/src/chrome/locale/zh-CN/network-settings.dtd
@@ -2,7 +2,7 @@
<!-- For "first run" wizard: -->
-<!ENTITY torsettings.prompt "在您连接到Tor网络之前,需要提供本机的英特网连接信息。">
+<!ENTITY torsettings.prompt "在连接 Tor 网络之前,需提供相关的网络连接信息。">
<!ENTITY torSettings.yes "是">
<!ENTITY torSettings.no "否">
@@ -12,7 +12,7 @@
<!ENTITY torSettings.configurePrompt2 "我需要配置网桥、防火墙或者代理设置。">
<!ENTITY torSettings.configure "配置">
<!ENTITY torSettings.connectPrompt2 "我想要直接连接 Tor 网络。">
-<!ENTITY torSettings.connectPrompt3 "这在大多数情况下正常工作。">
+<!ENTITY torSettings.connectPrompt3 "通常这种方式是有效的。">
<!ENTITY torSettings.connect "连接">
<!ENTITY torSettings.proxyQuestion "该计算机是否需要通过代理访问互联网?">
@@ -22,9 +22,9 @@
<!ENTITY torSettings.firewallQuestion "该计算机的防火墙是否仅允许特定端口的互联网连接?">
<!ENTITY torSettings.firewallHelp "如果不知道如何回答该问题,请选择否。如果连接 Tor 网络时出现问题,请更改该设置。">
<!ENTITY torSettings.enterFirewall "请输入防火墙允许的端口,中间用逗号隔开。">
-<!ENTITY torSettings.bridgeQuestion "您的互联网服务提供商 (ISP) 阻挡或审查与 Tor 网络的连接吗?">
-<!ENTITY torSettings.bridgeHelp "如果您不知道此问题的答案,请选择否。&#160; 如果您选择是,您将被要求配置 Tor 网桥,它们是未被公开的中继点,可以使得 Tor 网络的连接更难以被封掉。">
-<!ENTITY torSettings.bridgeSettingsPrompt "您可以使用网桥的默认设置,您也可以获取和输入自定义的网桥地址。">
+<!ENTITY torSettings.bridgeQuestion "互联网服务提供商 (ISP) 是否对 Tor 网络连接进行了封锁或审查?">
+<!ENTITY torSettings.bridgeHelp "如果不理解该问题,请选择“否”。如果选择“是”,那么需要对 Tor 网桥进行配置。网桥指用于连接 Tor 网络的非公开网络中继,更难于封锁。">
+<!ENTITY torSettings.bridgeSettingsPrompt "可以使用集成的网桥,也可以获取网桥,以自定义方式手动输入。">
<!-- Other: -->
@@ -46,7 +46,7 @@
<!ENTITY torsettings.firewall.checkbox "该计算机的防火墙仅允许特定端口的互联网连接">
<!ENTITY torsettings.firewall.allowedPorts "允许的端口:">
<!ENTITY torsettings.useBridges.checkbox "我的互联网服务提供商 (ISP) 封锁了 Tor 网络连接">
-<!ENTITY torsettings.useBridges.default "使用提供的网桥连接">
+<!ENTITY torsettings.useBridges.default "使用集成的网桥进行连接">
<!ENTITY torsettings.useBridges.type "传输类型:">
<!ENTITY torsettings.useBridges.custom "输入自定义网桥">
<!ENTITY torsettings.useBridges.label "输入一个或多个网桥中继(一行一个)。">
@@ -54,11 +54,11 @@
<!ENTITY torsettings.copyLog "请将 Tor 日志复制到剪贴板">
<!ENTITY torsettings.bridgeHelpTitle "网桥中继帮助">
-<!ENTITY torsettings.bridgeHelp1 "如果您无法连接到 Tor 网络,可能是您的互联网服务提供商 (ISP) 或其他机构在阻挡 Tor。&#160; 通常来说,你可以使用 Tor 网桥解决此问题,因为它们是未公开的中继点,更不容易被封锁。">
-<!ENTITY torsettings.bridgeHelp1B "您可以使用预先配置好的默认设置的网桥地址;或者,您也可以使用以下三种方法之一获取自定义的地址。">
-<!ENTITY torsettings.bridgeHelp2Heading "通过万维网">
-<!ENTITY torsettings.bridgeHelp2 "使用网页浏览器访问 https://bridges.torproject.org">
-<!ENTITY torsettings.bridgeHelp3Heading "通过电子邮件自动回复系统">
-<!ENTITY torsettings.bridgeHelp3 "发送邮件到 bridges(a)torproject.xn--org,-t85f28s26bzx6dy9kx14gz6r get bridges 行。&#160; 然而,这也可能致使攻击者获知大量网桥地址,所以你必须从 gmail.com 或者 yahoo.com 的电子邮件地址发送这一请求。">
-<!ENTITY torsettings.bridgeHelp4Heading "通过帮助台">
-<!ENTITY torsettings.bridgeHelp4 "作为最后的手段,你可以写一封礼貌的邮件发送到 help(a)rt.torproject.org 以请求网桥地址。&#160; 请注意,每个请求需要人工响应。">
+<!ENTITY torsettings.bridgeHelp1 "如果 Tor 网络无法连接,可能是因为互联网服务提供商 (ISP) 或其他机构对 Tor 进行了封锁。通常,使用 Tor 网桥可以解决这种问题。网桥指未公开的网络中继,更难于封锁。">
+<!ENTITY torsettings.bridgeHelp1B "你可以使用本软件集成的一组网桥,也可以通过以下三种方法获取网桥。">
+<!ENTITY torsettings.bridgeHelp2Heading "网页方式">
+<!ENTITY torsettings.bridgeHelp2 "使用浏览器访问 https://bridges.torproject.org">
+<!ENTITY torsettings.bridgeHelp3Heading "电子邮件自动回复方式">
+<!ENTITY torsettings.bridgeHelp3 "发送电子邮件至 bridges(a)torproject.xn--org,get-z36cn781bfha600c2kdv79bwxu38tcq3n bridges” 2 个单词(如需获取 obfs3 网桥,请写“transport obfs3”)。由于为了防止封锁者获取大量网桥地址,你必须使用 gmail.com 或者 yahoo.com 的电子邮件地址发送这一请求。">
+<!ENTITY torsettings.bridgeHelp4Heading "联系客服方式">
+<!ENTITY torsettings.bridgeHelp4 "如果以上方式无法获取所需网桥,作为最后的网桥获取方式,你可以写一封礼貌的邮件发送到 help(a)rt.torproject.xn--org(-3f5fw21a8fn84kbq7c8m3a help-zh(a)rt.torproject.org).xn--,-ny6a9go5tm3jb1cb9a7ykqznm8ni2c559c8l1c0mll5cfqb.">
1
0