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

[tor-browser/tor-browser-60.5.1esr-8.5-1] Bug 28329 - Part 2. Implement checking if the Tor service is running
by gk@torproject.org 15 Mar '19
by gk@torproject.org 15 Mar '19
15 Mar '19
commit a6e87093856101ec93bbeaf93eed22ac77031f73
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Wed Feb 20 01:04:56 2019 +0000
Bug 28329 - Part 2. Implement checking if the Tor service is running
---
.../base/java/org/mozilla/gecko/BrowserApp.java | 130 +++++++++++++++++++++
1 file changed, 130 insertions(+)
diff --git a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
index 9330a6ba9838..5aa0a6a7f3ac 100644
--- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
@@ -51,6 +51,7 @@ import android.support.design.widget.Snackbar;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.NotificationCompat;
+import android.support.v4.content.LocalBroadcastManager;
import android.support.v4.content.res.ResourcesCompat;
import android.support.v4.view.MenuItemCompat;
import android.text.TextUtils;
@@ -182,6 +183,7 @@ import org.mozilla.gecko.widget.SplashScreen;
import org.mozilla.geckoview.GeckoSession;
import org.torproject.android.OrbotMainActivity;
+import org.torproject.android.service.TorService;
import org.torproject.android.service.TorServiceConstants;
import java.io.File;
@@ -270,6 +272,7 @@ public class BrowserApp extends GeckoApp
private TabsPanel mTabsPanel;
private boolean mOrbotNeedsStart = true;
+ private boolean mTorNeedsStart = true;
private boolean showSplashScreen = false;
private SplashScreen splashScreen;
@@ -1079,6 +1082,131 @@ public class BrowserApp extends GeckoApp
}
/**
+ * Send the service a request for the current status.
+ * The response is sent as a broadcast. Capture that in
+ * receiveTorIsStartedAsync().
+ */
+ private void requestTorIsStartedAsync() {
+ Intent torServiceStatus = new Intent(this, TorService.class);
+ torServiceStatus.setAction(TorServiceConstants.ACTION_STATUS);
+ startService(torServiceStatus);
+ }
+
+ private BroadcastReceiver mLocalBroadcastReceiver;
+ private Boolean mTorStatus;
+
+ /**
+ * Setup the status receiver for broadcasts from the service.
+ * The response is sent as a broadcast. Create a background thread
+ * for receiving/handling the broadcast.
+ *
+ * This method is coupled with receiveTorIsStartedAsync(). They should
+ * be used together.
+ */
+ private BroadcastReceiver setupReceiveTorIsStartedAsync() {
+
+ // Create a thread specifically for defining the BroadcastReceiver
+ new Thread(new Runnable() {
+
+ @Override
+ public void run() {
+ mLocalBroadcastReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ if (action == null) {
+ return;
+ }
+
+ // We only want ACTION_STATUS messages
+ if (!action.equals(TorServiceConstants.ACTION_STATUS)) {
+ return;
+ }
+
+ // The current status has the EXTRA_STATUS key
+ String currentStatus =
+ intent.getStringExtra(TorServiceConstants.EXTRA_STATUS);
+
+ try {
+ synchronized (mTorStatus) {
+ mTorStatus = (currentStatus == TorServiceConstants.STATUS_ON);
+ mTorStatus.notify();
+ }
+ } catch (IllegalMonitorStateException e) {
+ // |synchronized| should prevent this
+ }
+ }
+ };
+
+ LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(BrowserApp.this);
+ lbm.registerReceiver(mLocalBroadcastReceiver,
+ new IntentFilter(TorServiceConstants.ACTION_STATUS));
+
+ }
+ }).start();
+
+ return mLocalBroadcastReceiver;
+ }
+
+ /**
+ * Receive the current status from the service.
+ * The response is sent as a broadcast. If it is not received within
+ * 1 second, then return false.
+ *
+ * This method is coupled with setupReceiveTorIsStartedAsync(). They
+ * should be used together.
+ */
+ private boolean receiveTorIsStartedAsync(BroadcastReceiver mLocalBroadcastReceiver, Boolean torStatus) {
+ // Wait until we're notified from the above thread, or we're
+ // interrupted by the timeout.
+ try {
+ // One thousand milliseconds = one second
+ final long oneSecTimeout = Math.round(Math.pow(10, 3));
+ synchronized (torStatus) {
+ // We wake from wait() because we reached the one second
+ // timeout, the BroadcastReceiver notified us, or we received
+ // a spurious wakeup. For all three cases, we can accept the
+ // current value of torStatus.
+ torStatus.wait(oneSecTimeout);
+ }
+ } catch (InterruptedException e) {
+ // ignore.
+ } catch (IllegalArgumentException e) {
+ // oneSecTimeout should never be negative
+ } catch (IllegalMonitorStateException e) {
+ // |synchronized| should take care of this
+ }
+
+ // Unregister the receiver
+ LocalBroadcastManager.getInstance(this).unregisterReceiver(mLocalBroadcastReceiver);
+
+ return torStatus;
+ }
+
+ /**
+ * Receive the current Tor status.
+ *
+ * Send a request for the current status and receive the response.
+ * Returns true if Tor is running, false otherwise.
+ *
+ * mTorStatus provides synchronization across threads.
+ */
+ private boolean checkTorIsStarted() {
+ // When tor is started, true. Otherwise, false
+ mTorStatus = false;
+ BroadcastReceiver br = setupReceiveTorIsStartedAsync();
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ requestTorIsStartedAsync();
+ }
+ }).start();
+
+ return receiveTorIsStartedAsync(br, mTorStatus);
+ }
+
+
+ /**
* Code to actually show the first run pager, separated
* for distribution purposes.
*/
@@ -1309,6 +1437,7 @@ public class BrowserApp extends GeckoApp
final SafeIntent intent = new SafeIntent(getIntent());
if (!IntentUtils.getIsInAutomationFromEnvironment(intent)) {
checkStartOrbot();
+ mTorNeedsStart = !checkTorIsStarted();
}
}
@@ -1763,6 +1892,7 @@ public class BrowserApp extends GeckoApp
GeckoNetworkManager.destroy();
mOrbotNeedsStart = true;
+ mTorNeedsStart = true;
super.onDestroy();
}
1
0

[tor-browser/tor-browser-60.5.1esr-8.5-1] Revert "Bug 28051 - Open Orbot when the notification is tapped"
by gk@torproject.org 15 Mar '19
by gk@torproject.org 15 Mar '19
15 Mar '19
commit fbf54c71e26a64859f953e18a34e5c9e8831f071
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Fri Jan 18 13:07:10 2019 +0000
Revert "Bug 28051 - Open Orbot when the notification is tapped"
This reverts commit b5be1210aab76340526aa7828d5d9050b8183e62.
Orbot isn't our bootstrapper anymore
---
.../base/java/org/mozilla/gecko/LauncherActivity.java | 18 ------------------
1 file changed, 18 deletions(-)
diff --git a/mobile/android/base/java/org/mozilla/gecko/LauncherActivity.java b/mobile/android/base/java/org/mozilla/gecko/LauncherActivity.java
index 4cd94ed538c7..e8f8facc24c6 100644
--- a/mobile/android/base/java/org/mozilla/gecko/LauncherActivity.java
+++ b/mobile/android/base/java/org/mozilla/gecko/LauncherActivity.java
@@ -45,9 +45,6 @@ import static org.mozilla.gecko.deeplink.DeepLinkContract.LINK_FXA_SIGNIN;
import org.mozilla.gecko.deeplink.DeepLinkContract;
-import org.torproject.android.OrbotMainActivity;
-import org.torproject.android.service.TorServiceConstants;
-
/**
* Activity that receives incoming Intents and dispatches them to the appropriate activities (e.g. browser, custom tabs, web app).
*/
@@ -70,9 +67,6 @@ public class LauncherActivity extends Activity {
} else if (isWebAppIntent(safeIntent)) {
dispatchWebAppIntent();
- } else if (TorServiceConstants.TOR_APP_USERNAME.equals(getIntent().getAction())) {
- dispatchOrbotIntent();
-
// If it's not a view intent, it won't be a custom tabs intent either. Just launch!
} else if (!isViewIntentWithURL(safeIntent)) {
dispatchNormalIntent();
@@ -122,18 +116,6 @@ public class LauncherActivity extends Activity {
startActivity(intent);
}
- private void dispatchOrbotIntent() {
- final String orbotStartAction = "android.intent.action.MAIN";
- final Intent intent = new Intent(orbotStartAction, null, this, OrbotMainActivity.class);
-
- //When we launch Orbot, we want a new task.
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
- intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
-
- startActivity(intent);
- }
-
private void dispatchUrlIntent(@NonNull String url) {
Intent intent = new Intent(getIntent());
intent.setData(Uri.parse(url));
1
0

[tor-browser/tor-browser-60.5.1esr-8.5-1] Bug 28329 - Part 3. Remove OrbotActivity dependency
by gk@torproject.org 15 Mar '19
by gk@torproject.org 15 Mar '19
15 Mar '19
commit e4d2df5e776b6270b5eb98f4b718ea6eb5ea5094
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Wed Feb 20 01:08:36 2019 +0000
Bug 28329 - Part 3. Remove OrbotActivity dependency
---
mobile/android/app/build.gradle | 5 -----
mobile/android/base/AndroidManifest.xml.in | 8 ++++++++
.../base/java/org/mozilla/gecko/BrowserApp.java | 18 ------------------
.../base/java/org/mozilla/gecko/GeckoApplication.java | 5 -----
4 files changed, 8 insertions(+), 28 deletions(-)
diff --git a/mobile/android/app/build.gradle b/mobile/android/app/build.gradle
index d0060901b6b3..c8380042d8a9 100644
--- a/mobile/android/app/build.gradle
+++ b/mobile/android/app/build.gradle
@@ -225,7 +225,6 @@ dependencies {
implementation "com.android.support:design:${mozconfig.substs.ANDROID_SUPPORT_LIBRARY_VERSION}"
implementation "com.android.support:customtabs:${mozconfig.substs.ANDROID_SUPPORT_LIBRARY_VERSION}"
implementation "com.android.support:palette-v7:${mozconfig.substs.ANDROID_SUPPORT_LIBRARY_VERSION}"
- implementation files('Orbot-16.0.5-RC-1-tor-0.3.4.9-fullperm-release.aar')
implementation files('orbotservice-release.aar')
implementation files('jsocksAndroid-release.aar')
@@ -266,10 +265,6 @@ dependencies {
// Including the Robotium JAR directly can cause issues with dexing.
androidTestImplementation 'com.jayway.android.robotium:robotium-solo:5.5.4'
- // Orbot
- implementation 'com.github.delight-im:Android-Languages:v1.0.1'
- implementation 'pl.bclogic:pulsator4droid:1.0.3'
-
// Orbotservice
implementation 'org.torproject:tor-android-binary:0.3.4.9'
implementation 'com.jrummyapps:android-shell:1.0.1'
diff --git a/mobile/android/base/AndroidManifest.xml.in b/mobile/android/base/AndroidManifest.xml.in
index c7c5ead7f82f..72b1e16925b7 100644
--- a/mobile/android/base/AndroidManifest.xml.in
+++ b/mobile/android/base/AndroidManifest.xml.in
@@ -493,5 +493,13 @@
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
#endif
+ <!-- Define Orbotservice's TorService -->
+ <service
+ android:name="org.torproject.android.service.TorService"
+ android:enabled="true"
+ android:exported="false"
+ android:stopWithTask="true">
+ </service>
+
</application>
</manifest>
diff --git a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
index 5aa0a6a7f3ac..464b4054c9ff 100644
--- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
@@ -182,7 +182,6 @@ import org.mozilla.gecko.widget.GeckoActionProvider;
import org.mozilla.gecko.widget.SplashScreen;
import org.mozilla.geckoview.GeckoSession;
-import org.torproject.android.OrbotMainActivity;
import org.torproject.android.service.TorService;
import org.torproject.android.service.TorServiceConstants;
@@ -242,7 +241,6 @@ public class BrowserApp extends GeckoApp
public static final int ACTIVITY_REQUEST_TRIPLE_READERVIEW = 4001;
public static final int ACTIVITY_RESULT_TRIPLE_READERVIEW_ADD_BOOKMARK = 4002;
public static final int ACTIVITY_RESULT_TRIPLE_READERVIEW_IGNORE = 4003;
- public static final int ACTIVITY_RESULT_ORBOT_LAUNCH = 5001;
public static final String ACTION_VIEW_MULTIPLE = AppConstants.ANDROID_PACKAGE_NAME + ".action.VIEW_MULTIPLE";
@@ -271,7 +269,6 @@ public class BrowserApp extends GeckoApp
private HomeScreen mHomeScreen;
private TabsPanel mTabsPanel;
- private boolean mOrbotNeedsStart = true;
private boolean mTorNeedsStart = true;
private boolean showSplashScreen = false;
@@ -1410,14 +1407,6 @@ public class BrowserApp extends GeckoApp
}
}
- public void checkStartOrbot() {
- if (mOrbotNeedsStart) {
- final String orbotStartAction = "android.intent.action.MAIN";
- final Intent launchOrbot = new Intent(orbotStartAction, null, this, OrbotMainActivity.class);
- startActivityForResult(launchOrbot, ACTIVITY_RESULT_ORBOT_LAUNCH, null);
- }
- }
-
@Override
public void onResume() {
super.onResume();
@@ -1436,7 +1425,6 @@ public class BrowserApp extends GeckoApp
// need to know if we are in automation.
final SafeIntent intent = new SafeIntent(getIntent());
if (!IntentUtils.getIsInAutomationFromEnvironment(intent)) {
- checkStartOrbot();
mTorNeedsStart = !checkTorIsStarted();
}
}
@@ -1891,7 +1879,6 @@ public class BrowserApp extends GeckoApp
NotificationHelper.destroy();
GeckoNetworkManager.destroy();
- mOrbotNeedsStart = true;
mTorNeedsStart = true;
super.onDestroy();
@@ -3111,11 +3098,6 @@ public class BrowserApp extends GeckoApp
TabQueueHelper.processTabQueuePromptResponse(resultCode, this);
break;
- case ACTIVITY_RESULT_ORBOT_LAUNCH:
- Log.d(LOGTAG, "onActivityResult: ACTIVITY_RESULT_ORBOT_LAUNCH");
- mOrbotNeedsStart = false;
- break;
-
default:
for (final BrowserAppDelegate delegate : delegates) {
delegate.onActivityResult(this, requestCode, resultCode, data);
diff --git a/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java b/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java
index b8e4985332a9..b38e7184c798 100644
--- a/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java
+++ b/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java
@@ -63,7 +63,6 @@ import java.net.URL;
import java.util.UUID;
import org.torproject.android.service.util.Prefs;
-import org.torproject.android.settings.Languages;
public class GeckoApplication extends Application
implements HapticFeedbackDelegate {
@@ -325,10 +324,6 @@ public class GeckoApplication extends Application
// Give Orbot the base Context
Prefs.setContext(context);
- // Initialize Orbot's Language settings
- Languages.setup(BrowserApp.class, R.string.menu_settings);
- Languages.setLanguage(this, Prefs.getDefaultLocale(), true);
-
super.onCreate();
}
1
0

[tor-browser/tor-browser-60.5.1esr-8.5-1] Bug 28329 - Part 4. Add new Tor Bootstrapping and configuration screens
by gk@torproject.org 15 Mar '19
by gk@torproject.org 15 Mar '19
15 Mar '19
commit 87d6c829225d271ba94fa21672b157085dbf1ad9
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Thu Mar 14 02:03:26 2019 +0000
Bug 28329 - Part 4. Add new Tor Bootstrapping and configuration screens
---
.../android/app/src/main/res/layout/gecko_app.xml | 5 +
.../preference_tor_network_bridge_summary.xml | 25 +
.../preference_tor_network_bridges_enabled.xml | 85 ++
...eference_tor_network_bridges_enabled_switch.xml | 15 +
.../preference_tor_network_provide_bridge.xml | 89 ++
.../preference_tor_network_select_bridge_type.xml | 128 +++
.../app/src/main/res/layout/tor_bootstrap.xml | 86 ++
.../layout/tor_bootstrap_animation_container.xml | 20 +
.../app/src/main/res/layout/tor_bootstrap_log.xml | 37 +
.../main/res/xml/preferences_tor_network_main.xml | 15 +
.../xml/preferences_tor_network_provide_bridge.xml | 27 +
.../preferences_tor_network_select_bridge_type.xml | 17 +
mobile/android/base/AndroidManifest.xml.in | 5 +
.../base/java/org/mozilla/gecko/BrowserApp.java | 44 +-
.../TorBootstrapAnimationContainer.java | 82 ++
.../gecko/torbootstrap/TorBootstrapLogPanel.java | 54 ++
.../gecko/torbootstrap/TorBootstrapLogger.java | 17 +
.../gecko/torbootstrap/TorBootstrapPager.java | 160 ++++
.../torbootstrap/TorBootstrapPagerConfig.java | 87 ++
.../gecko/torbootstrap/TorBootstrapPanel.java | 428 ++++++++++
.../gecko/torbootstrap/TorLogEventListener.java | 128 +++
.../mozilla/gecko/torbootstrap/TorPreferences.java | 950 +++++++++++++++++++++
22 files changed, 2501 insertions(+), 3 deletions(-)
diff --git a/mobile/android/app/src/main/res/layout/gecko_app.xml b/mobile/android/app/src/main/res/layout/gecko_app.xml
index ca25841695a7..9a5d03f79409 100644
--- a/mobile/android/app/src/main/res/layout/gecko_app.xml
+++ b/mobile/android/app/src/main/res/layout/gecko_app.xml
@@ -68,6 +68,11 @@
android:layout_width="match_parent"
android:layout_height="match_parent"/>
+ <ViewStub android:id="@+id/tor_bootstrap_pager_stub"
+ android:layout="@layout/tor_bootstrap_animation_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"/>
+
</FrameLayout>
<View android:id="@+id/doorhanger_overlay"
diff --git a/mobile/android/app/src/main/res/layout/preference_tor_network_bridge_summary.xml b/mobile/android/app/src/main/res/layout/preference_tor_network_bridge_summary.xml
new file mode 100644
index 000000000000..d99b3c9543b0
--- /dev/null
+++ b/mobile/android/app/src/main/res/layout/preference_tor_network_bridge_summary.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- 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/. -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeight"
+ android:gravity="center_vertical" >
+ <TextView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/tor_network_bridge_summary"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="30sp"
+ android:paddingBottom="30sp"
+ android:paddingLeft="20sp"
+ android:paddingRight="20sp"
+ android:textSize="16sp"
+ android:fontFamily="Roboto-Regular"
+ android:textColor="#DE000000"
+ android:lineSpacingMultiplier="1.43"
+ android:text="@string/pref_category_tor_bridge_summary" />
+</LinearLayout>
diff --git a/mobile/android/app/src/main/res/layout/preference_tor_network_bridges_enabled.xml b/mobile/android/app/src/main/res/layout/preference_tor_network_bridges_enabled.xml
new file mode 100644
index 000000000000..8d8e4f320ba7
--- /dev/null
+++ b/mobile/android/app/src/main/res/layout/preference_tor_network_bridges_enabled.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2006 The Android Open Source Project
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!-- Layout for a Preference in a PreferenceActivity. The
+ Preference is able to place a specific widget for its particular
+ type in the "widget_frame" layout.
+ This is a modified version of the default Android Preference layout,
+ See: https://android.googlesource.com/platform/frameworks/base/+/refs/heads/pie-…
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeight"
+ android:gravity="center_vertical"
+ android:paddingEnd="?android:attr/scrollbarSize"
+ android:orientation="vertical"
+ android:background="?android:attr/selectableItemBackground" >
+ <TextView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/tor_network_configuration_summary"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="30sp"
+ android:paddingBottom="30sp"
+ android:paddingLeft="20sp"
+ android:paddingRight="20sp"
+ android:textSize="16sp"
+ android:fontFamily="Roboto-Regular"
+ android:textColor="#DE000000"
+ android:lineSpacingMultiplier="1.43"
+ android:text="@string/pref_category_tor_network_summary" />
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center_vertical" >
+ <ImageView
+ android:id="@+android:id/icon"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ />
+ <RelativeLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="15dp"
+ android:layout_marginEnd="6dp"
+ android:layout_marginTop="6dp"
+ android:layout_marginBottom="12dp"
+ android:layout_weight="1">
+ <TextView android:id="@+android:id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:singleLine="true"
+ android:fontFamily="Roboto-Regular"
+ android:textSize="20sp"
+ android:textColor="#DE000000"
+ android:ellipsize="marquee"
+ android:fadingEdge="horizontal" />
+ <TextView android:id="@+android:id/summary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@android:id/title"
+ android:layout_alignStart="@android:id/title"
+ android:fontFamily="Roboto-Regular"
+ android:textSize="16sp"
+ android:textColorLink="#8000FF"
+ android:clickable="true"
+ android:focusable="false"
+ android:maxLines="2" />
+ </RelativeLayout>
+ <!-- Preference should place its actual preference widget here. -->
+ <LinearLayout android:id="@+android:id/widget_frame"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center_vertical" />
+ </LinearLayout>
+</LinearLayout>
diff --git a/mobile/android/app/src/main/res/layout/preference_tor_network_bridges_enabled_switch.xml b/mobile/android/app/src/main/res/layout/preference_tor_network_bridges_enabled_switch.xml
new file mode 100644
index 000000000000..3ab276f0916c
--- /dev/null
+++ b/mobile/android/app/src/main/res/layout/preference_tor_network_bridges_enabled_switch.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- 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/. -->
+
+<Switch xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+android:id/switch_widget"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:focusable="false"
+ android:clickable="true"
+ android:thumbTint="@color/tor_bridges_enabled_colors"
+ android:trackTint="@color/tor_bridges_enabled_colors"
+ android:background="@null" />
diff --git a/mobile/android/app/src/main/res/layout/preference_tor_network_provide_bridge.xml b/mobile/android/app/src/main/res/layout/preference_tor_network_provide_bridge.xml
new file mode 100644
index 000000000000..9e72b44ae734
--- /dev/null
+++ b/mobile/android/app/src/main/res/layout/preference_tor_network_provide_bridge.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- 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/. -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeight"
+ android:orientation="vertical"
+ android:paddingEnd="?android:attr/scrollbarSize"
+ android:gravity="center_vertical"
+ android:background="?android:attr/selectableItemBackground" >
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingLeft="16sp"
+ android:paddingRight="16sp"
+ android:orientation="vertical" >
+ <TextView android:id="@+android:id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:fontFamily="Roboto-Regular"
+ android:textSize="20sp"
+ android:textColor="#DE000000"
+ android:singleLine="true"
+ android:ellipsize="marquee"
+ android:fadingEdge="horizontal" />
+ <TextView android:id="@+android:id/summary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingBottom="30sp"
+ android:fontFamily="Roboto-Regular"
+ android:textSize="16sp"
+ android:maxLines="4" />
+ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeight"
+ android:gravity="center_vertical"
+ android:orientation="vertical" >
+ <EditText
+ android:id="@+id/tor_network_provide_bridge1"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="10dp"
+ android:inputType="text"
+ android:textSize="20sp"
+ android:fontFamily="Roboto-Regular"
+ android:paddingTop="22sp"
+ android:paddingLeft="16sp"
+ android:paddingBottom="22sp"
+ android:background="#DCDCDC"
+ android:hint="@string/pref_tor_bridges_provide_manual_address_port_placeholder" />
+ <EditText
+ android:id="@+id/tor_network_provide_bridge2"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="10dp"
+ android:inputType="text"
+ android:textSize="20sp"
+ android:fontFamily="Roboto-Regular"
+ android:paddingTop="22sp"
+ android:paddingLeft="16sp"
+ android:paddingBottom="22sp"
+ android:background="#DCDCDC"
+ android:hint="@string/pref_tor_bridges_provide_manual_address_port_placeholder" />
+ <EditText
+ android:id="@+id/tor_network_provide_bridge3"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:inputType="text"
+ android:textSize="20sp"
+ android:fontFamily="Roboto-Regular"
+ android:paddingTop="22sp"
+ android:paddingLeft="16sp"
+ android:paddingBottom="22sp"
+ android:background="#DCDCDC"
+ android:hint="@string/pref_tor_bridges_provide_manual_address_port_placeholder" />
+ </LinearLayout>
+ </LinearLayout>
+ <LinearLayout android:id="@+android:id/widget_frame"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:gravity="center_vertical"
+ android:orientation="vertical">
+ </LinearLayout>
+</LinearLayout>
diff --git a/mobile/android/app/src/main/res/layout/preference_tor_network_select_bridge_type.xml b/mobile/android/app/src/main/res/layout/preference_tor_network_select_bridge_type.xml
new file mode 100644
index 000000000000..2c1632bb8268
--- /dev/null
+++ b/mobile/android/app/src/main/res/layout/preference_tor_network_select_bridge_type.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- 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/. -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeight"
+ android:orientation="vertical"
+ android:paddingEnd="?android:attr/scrollbarSize"
+ android:gravity="center_vertical"
+ android:background="?android:attr/selectableItemBackground" >
+
+ <!-- Include the Bridge description -->
+ <include layout="@layout/preference_tor_network_bridge_summary" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingLeft="20sp"
+ android:orientation="vertical" >
+ <LinearLayout
+ android:id="@+id/title_and_summary"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical" >
+ <TextView android:id="@+android:id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:fontFamily="Roboto-Regular"
+ android:textSize="20sp"
+ android:textColor="#DE000000"
+ android:singleLine="true"
+ android:ellipsize="marquee"
+ android:fadingEdge="horizontal" />
+ <TextView android:id="@+android:id/summary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="40dp"
+ android:fontFamily="Roboto-Regular"
+ android:textSize="16sp"
+ android:maxLines="4" />
+ </LinearLayout>
+ <include layout="@xml/separator" />
+ <RadioGroup
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingLeft="20sp"
+ android:visibility="gone"
+ android:layoutDirection="rtl"
+ android:id="@+id/pref_radio_group_builtin_bridges_type">
+ <RadioButton android:id="@+id/radio_pref_bridges_obfs4"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="10sp"
+ android:layout_marginBottom="10sp"
+ android:buttonTint="@color/tor_bridges_select_builtin"
+ android:fontFamily="Roboto-Regular"
+ android:textColor="#DE000000"
+ android:textSize="16sp"
+ android:text="@string/pref_bridges_type_obfs4"/>
+ <include layout="@xml/separator" />
+ <RadioButton android:id="@+id/radio_pref_bridges_meek_azure"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="10sp"
+ android:layout_marginBottom="10sp"
+ android:buttonTint="@color/tor_bridges_select_builtin"
+ android:fontFamily="Roboto-Regular"
+ android:textColor="#DE000000"
+ android:textSize="16sp"
+ android:text="@string/pref_bridges_type_meek_azure"/>
+ <include layout="@xml/separator" />
+ <RadioButton android:id="@+id/radio_pref_bridges_obfs3"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="10sp"
+ android:layout_marginBottom="10sp"
+ android:buttonTint="@color/tor_bridges_select_builtin"
+ android:fontFamily="Roboto-Regular"
+ android:textColor="#DE000000"
+ android:textSize="16sp"
+ android:text="@string/pref_bridges_type_obfs3"/>
+ <include layout="@xml/separator" />
+ </RadioGroup>
+ </LinearLayout>
+
+ <LinearLayout android:id="@+android:id/widget_frame"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:gravity="center_vertical"
+ android:orientation="vertical">
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:clickable="true"
+ android:paddingTop="20sp"
+ android:paddingLeft="20sp"
+ android:id="@+id/tor_network_provide_a_bridge"
+ android:orientation="vertical">
+ <TextView
+ android:id="@+id/tor_network_provide_a_bridge_title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:fontFamily="Roboto-Regular"
+ android:textSize="20sp"
+ android:textColor="#DE000000"
+ android:text="@string/pref_tor_bridges_provide_manual_button_title"
+ android:singleLine="true"
+ android:ellipsize="marquee"
+ android:fadingEdge="horizontal" />
+ <TextView
+ android:id="@+id/tor_network_provide_a_bridge_summary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="30dp"
+ android:fontFamily="Roboto-Regular"
+ android:textSize="16sp"
+ android:text="@string/pref_tor_bridges_provide_manual_summary"
+ android:maxLines="4" />
+ <include layout="@xml/separator" />
+ </LinearLayout>
+</LinearLayout>
diff --git a/mobile/android/app/src/main/res/layout/tor_bootstrap.xml b/mobile/android/app/src/main/res/layout/tor_bootstrap.xml
new file mode 100644
index 000000000000..ce2b1c910a44
--- /dev/null
+++ b/mobile/android/app/src/main/res/layout/tor_bootstrap.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- 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/. -->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/tor_bootstrap_background">
+
+ <ImageView android:id="@+id/tor_bootstrap_settings_gear"
+ app:srcCompat="@drawable/ic_settings_24px"
+ android:tint="#ffffffff"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="25dp"
+ android:layout_marginRight="20dp"
+ android:layout_alignParentRight="true" />
+
+ <!-- These three elements are rendered in reverse order -->
+ <TextView android:id="@+id/tor_bootstrap_swipe_log"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:width="301dp"
+ android:height="24dp"
+ android:layout_marginBottom="20dp"
+ android:layout_centerHorizontal="true"
+ android:layout_alignParentBottom="true"
+ android:gravity="center"
+ android:visibility="invisible"
+ android:textSize="14sp"
+ android:fontFamily="Roboto-Regular"
+ android:textColor="#FFFFFFFF"
+ android:lineSpacingMultiplier="1.71"
+ android:text="@string/tor_bootstrap_swipe_for_logs"/>
+
+ <Button android:id="@+id/tor_bootstrap_connect"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="7dp"
+ android:width="144dp"
+ android:height="48dp"
+ android:textSize="14sp"
+ android:layout_above="@id/tor_bootstrap_swipe_log"
+ android:layout_centerHorizontal="true"
+ android:background="@drawable/rounded_corners"
+ android:fontFamily="Roboto-Medium"
+ android:textColor="@color/tor_bootstrap_background"
+ android:lineSpacingMultiplier="1.14"
+ android:text="@string/tor_bootstrap_connect" />
+
+ <TextView android:id="@+id/tor_bootstrap_last_status_message"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:width="301dp"
+ android:height="24dp"
+ android:layout_marginBottom="40dp"
+ android:layout_above="@id/tor_bootstrap_connect"
+ android:layout_centerHorizontal="true"
+ android:gravity="center"
+ android:singleLine="true"
+ android:textSize="14sp"
+ android:fontFamily="RobotoMono-Regular"
+ android:textColor="@android:color/white"
+ android:lineSpacingMultiplier="2"
+ android:visibility="invisible" />
+
+ <!-- Keep the src synchronized with TorBootstrapPanel::stopBootstrapping() -->
+ <ImageView android:id="@+id/tor_bootstrap_onion"
+ app:srcCompat="@drawable/tor_spinning_onion"
+ android:scaleType="fitCenter"
+ android:tint="#ffffffff"
+ android:layout_height="wrap_content"
+ android:layout_width="match_parent"
+ android:layout_marginTop="130dp"
+ android:layout_marginBottom="37dp"
+ android:layout_marginRight="95dp"
+ android:layout_marginLeft="95dp"
+ android:layout_centerHorizontal="true"
+ android:layout_below="@id/tor_bootstrap_settings_gear"
+ android:layout_above="@id/tor_bootstrap_last_status_message"
+ android:paddingLeft="20dp"
+ android:paddingRight="20dp"/>
+</RelativeLayout>
diff --git a/mobile/android/app/src/main/res/layout/tor_bootstrap_animation_container.xml b/mobile/android/app/src/main/res/layout/tor_bootstrap_animation_container.xml
new file mode 100644
index 000000000000..04dfeb0f3509
--- /dev/null
+++ b/mobile/android/app/src/main/res/layout/tor_bootstrap_animation_container.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- 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/. -->
+
+<org.mozilla.gecko.torbootstrap.TorBootstrapAnimationContainer xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:gecko="http://schemas.android.com/apk/res-auto"
+ android:layout_height="match_parent"
+ android:layout_width="match_parent"
+ android:background="@color/tor_bootstrap_background">
+
+ <org.mozilla.gecko.torbootstrap.TorBootstrapPager
+ android:id="@+id/tor_bootstrap_pager"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/tor_bootstrap_background">
+
+ </org.mozilla.gecko.torbootstrap.TorBootstrapPager>
+</org.mozilla.gecko.torbootstrap.TorBootstrapAnimationContainer>
diff --git a/mobile/android/app/src/main/res/layout/tor_bootstrap_log.xml b/mobile/android/app/src/main/res/layout/tor_bootstrap_log.xml
new file mode 100644
index 000000000000..c2f02d658d50
--- /dev/null
+++ b/mobile/android/app/src/main/res/layout/tor_bootstrap_log.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- 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/. -->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/tor_bootstrap_background">
+
+
+ <ImageView android:id="@+id/tor_bootstrap_settings_gear"
+ app:srcCompat="@drawable/ic_settings_24px"
+ android:tint="#ffffffff"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="25dp"
+ android:layout_marginRight="20dp"
+ android:layout_alignParentRight="true" />
+
+ <!-- Encapsulate the TextView within the ScrollView so the view is scrollable -->
+ <ScrollView android:layout_height="match_parent"
+ android:layout_width="match_parent"
+ android:layout_below="@id/tor_bootstrap_settings_gear" >
+ <TextView android:id="@+id/tor_bootstrap_last_status_message"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textColor="@android:color/white"
+ android:fontFamily="RobotoMono-Regular"
+ android:textSize="14sp"
+ android:textIsSelectable="true"
+ android:layout_marginLeft="20dp"
+ android:layout_marginRight="20dp" />
+ </ScrollView>
+</RelativeLayout>
diff --git a/mobile/android/app/src/main/res/xml/preferences_tor_network_main.xml b/mobile/android/app/src/main/res/xml/preferences_tor_network_main.xml
new file mode 100644
index 000000000000..c397bd7c1fc9
--- /dev/null
+++ b/mobile/android/app/src/main/res/xml/preferences_tor_network_main.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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/. -->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:gecko="http://schemas.android.com/apk/res-auto"
+ android:enabled="true">
+ <SwitchPreference android:key="android.not_a_preference.tor.bridges.enabled"
+ android:title="@string/pref_choice_tor_bridges_enabled_title"
+ android:summaryOff="@string/pref_choice_tor_bridges_enabled_summary"
+ android:selectable="false"
+ android:layout="@layout/preference_tor_network_bridges_enabled"
+ android:widgetLayout="@layout/preference_tor_network_bridges_enabled_switch" />
+</PreferenceScreen>
diff --git a/mobile/android/app/src/main/res/xml/preferences_tor_network_provide_bridge.xml b/mobile/android/app/src/main/res/xml/preferences_tor_network_provide_bridge.xml
new file mode 100644
index 000000000000..e8346f4fec63
--- /dev/null
+++ b/mobile/android/app/src/main/res/xml/preferences_tor_network_provide_bridge.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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/. -->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:gecko="http://schemas.android.com/apk/res-auto"
+ android:enabled="true">
+
+
+ <!-- Ideally, this preference would not be needed. We would move the
+ summary into the tor.bridges.provide preference. However, there is
+ a bug in the layout where typing in the text field isn't shown until
+ the user presses the back button. This only occurs when the EditText
+ View is under the first ViewGroup under the ListView. -->
+ <Preference
+ android:layout="@layout/preference_tor_network_bridge_summary"
+ android:selectable="false"
+ android:shouldDisableView="false"
+ android:enabled="false"/>
+
+ <Preference
+ android:key="android.not_a_preference.tor.bridges.provide"
+ android:layout="@layout/preference_tor_network_provide_bridge"
+ android:title="@string/pref_tor_bridges_provide_manual_text_title"
+ android:summary="@string/pref_tor_bridges_provide_manual_summary" />
+</PreferenceScreen>
diff --git a/mobile/android/app/src/main/res/xml/preferences_tor_network_select_bridge_type.xml b/mobile/android/app/src/main/res/xml/preferences_tor_network_select_bridge_type.xml
new file mode 100644
index 000000000000..0bcc18c38997
--- /dev/null
+++ b/mobile/android/app/src/main/res/xml/preferences_tor_network_select_bridge_type.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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/. -->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:gecko="http://schemas.android.com/apk/res-auto"
+ android:enabled="true">
+
+ <Preference
+ android:key="android.not_a_preference.tor.bridges.type"
+ android:layout="@layout/preference_tor_network_select_bridge_type"
+ android:title="@string/pref_tor_bridges_provide_select_text_title"
+ android:summary="@string/pref_choice_tor_bridges_enabled_summary"
+ android:selectable="false"/>
+
+</PreferenceScreen>
diff --git a/mobile/android/base/AndroidManifest.xml.in b/mobile/android/base/AndroidManifest.xml.in
index 72b1e16925b7..01b23d22a19b 100644
--- a/mobile/android/base/AndroidManifest.xml.in
+++ b/mobile/android/base/AndroidManifest.xml.in
@@ -501,5 +501,10 @@
android:stopWithTask="true">
</service>
+ <activity android:name="org.mozilla.gecko.torbootstrap.TorPreferences"
+ android:theme="@style/Gecko.Preferences"
+ android:configChanges="orientation|screenSize|locale|layoutDirection"
+ android:excludeFromRecents="true"/>
+
</application>
</manifest>
diff --git a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
index 464b4054c9ff..f8af42f09b5f 100644
--- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
@@ -158,6 +158,7 @@ import org.mozilla.gecko.toolbar.AutocompleteHandler;
import org.mozilla.gecko.toolbar.BrowserToolbar;
import org.mozilla.gecko.toolbar.BrowserToolbar.TabEditingState;
import org.mozilla.gecko.toolbar.PwaConfirm;
+import org.mozilla.gecko.torbootstrap.TorBootstrapAnimationContainer;
import org.mozilla.gecko.trackingprotection.TrackingProtectionPrompt;
import org.mozilla.gecko.updater.PostUpdateHandler;
import org.mozilla.gecko.updater.UpdateServiceHelper;
@@ -266,6 +267,7 @@ public class BrowserApp extends GeckoApp
private TabStripInterface mTabStrip;
private AnimatedProgressBar mProgressView;
private FirstrunAnimationContainer mFirstrunAnimationContainer;
+ private TorBootstrapAnimationContainer mTorBootstrapAnimationContainer;
private HomeScreen mHomeScreen;
private TabsPanel mTabsPanel;
@@ -486,7 +488,7 @@ public class BrowserApp extends GeckoApp
mVideoPlayer.stop();
}
- if (Tabs.getInstance().isSelectedTab(tab) && mDynamicToolbar.isEnabled()) {
+ if (Tabs.getInstance().isSelectedTab(tab) && mDynamicToolbar.isEnabled() && !isTorBootstrapVisible()) {
final VisibilityTransition transition = (tab.getShouldShowToolbarWithoutAnimationOnFirstSelection()) ?
VisibilityTransition.IMMEDIATE : VisibilityTransition.ANIMATE;
mDynamicToolbar.setVisible(true, transition);
@@ -496,7 +498,7 @@ public class BrowserApp extends GeckoApp
}
// fall through
case LOCATION_CHANGE:
- if (Tabs.getInstance().isSelectedTab(tab)) {
+ if (Tabs.getInstance().isSelectedTab(tab) && !isTorBootstrapVisible()) {
updateHomePagerForTab(tab);
}
@@ -509,7 +511,7 @@ public class BrowserApp extends GeckoApp
if (Tabs.getInstance().isSelectedTab(tab)) {
invalidateOptionsMenu();
- if (mDynamicToolbar.isEnabled()) {
+ if (mDynamicToolbar.isEnabled() && !isTorBootstrapVisible()) {
mDynamicToolbar.setVisible(true, VisibilityTransition.ANIMATE);
}
}
@@ -1359,6 +1361,10 @@ public class BrowserApp extends GeckoApp
final SafeIntent intent = new SafeIntent(getIntent());
if (!IntentUtils.getIsInAutomationFromEnvironment(intent)) {
+ if (mTorNeedsStart) {
+ showTorBootstrapPager();
+ }
+
// We can't show the first run experience until Gecko has finished initialization (bug 1077583).
checkFirstrun(this, intent);
}
@@ -2756,6 +2762,11 @@ public class BrowserApp extends GeckoApp
&& mHomeScreenContainer != null && mHomeScreenContainer.getVisibility() == View.VISIBLE);
}
+ private boolean isTorBootstrapVisible() {
+ return (mTorBootstrapAnimationContainer != null && mTorBootstrapAnimationContainer.isVisible()
+ && mHomeScreenContainer != null && mHomeScreenContainer.getVisibility() == View.VISIBLE);
+ }
+
/**
* Enters editing mode with the current tab's URL. There might be no
* tabs loaded by the time the user enters editing mode e.g. just after
@@ -3107,6 +3118,33 @@ public class BrowserApp extends GeckoApp
}
}
+ private void showTorBootstrapPager() {
+
+ if (mTorBootstrapAnimationContainer == null) {
+ // We can't use toggleToolbarChrome() because that uses INVISIBLE, but we need GONE
+ mBrowserChrome.setVisibility(View.GONE);
+ final ViewStub torBootstrapPagerStub = (ViewStub) findViewById(R.id.tor_bootstrap_pager_stub);
+ mTorBootstrapAnimationContainer = (TorBootstrapAnimationContainer) torBootstrapPagerStub.inflate();
+ mTorBootstrapAnimationContainer.load(this, getSupportFragmentManager());
+ mTorBootstrapAnimationContainer.registerOnFinishListener(new TorBootstrapAnimationContainer.OnFinishListener() {
+ @Override
+ public void onFinish() {
+ // Show the chrome again
+ toggleToolbarChrome(true);
+ // When the content loaded in the background (such as about:tor),
+ // it was loaded while mBrowserChrome was GONE. We should refresh the
+ // height now so the page is rendered correctly.
+ Tabs.getInstance().getSelectedTab().doReload(false);
+
+ // If we finished, then Tor bootstrapped 100%
+ mTorNeedsStart = false;
+ }
+ });
+ }
+
+ mHomeScreenContainer.setVisibility(View.VISIBLE);
+ }
+
private void showFirstrunPager() {
if (mFirstrunAnimationContainer == null) {
diff --git a/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorBootstrapAnimationContainer.java b/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorBootstrapAnimationContainer.java
new file mode 100644
index 000000000000..188e03df0092
--- /dev/null
+++ b/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorBootstrapAnimationContainer.java
@@ -0,0 +1,82 @@
+/* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*-
+ * 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/. */
+
+package org.mozilla.gecko.torbootstrap;
+
+import android.app.Activity;
+import android.content.Context;
+import android.support.v4.app.FragmentManager;
+import android.util.AttributeSet;
+
+import android.view.View;
+import android.widget.LinearLayout;
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ObjectAnimator;
+import org.mozilla.gecko.R;
+import org.mozilla.gecko.firstrun.FirstrunAnimationContainer;
+
+/**
+ * A container for the bootstrapping flow.
+ *
+ * Mostly a modified version of FirstrunAnimationContainer
+ */
+public class TorBootstrapAnimationContainer extends FirstrunAnimationContainer {
+
+ public static interface OnFinishListener {
+ public void onFinish();
+ }
+
+ private TorBootstrapPager pager;
+ private boolean visible;
+
+ // Provides a callback so BrowserApp can execute an action
+ // when the bootstrapping is complete and the bootstrapping
+ // screen closes.
+ private OnFinishListener onFinishListener;
+
+ public TorBootstrapAnimationContainer(Context context) {
+ this(context, null);
+ }
+ public TorBootstrapAnimationContainer(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public void load(Activity activity, FragmentManager fm) {
+ visible = true;
+ pager = findViewById(R.id.tor_bootstrap_pager);
+ pager.load(activity, fm, new OnFinishListener() {
+ @Override
+ public void onFinish() {
+ hide();
+ }
+ });
+ }
+
+ public void hide() {
+ visible = false;
+ if (onFinishListener != null) {
+ onFinishListener.onFinish();
+ }
+ animateHide();
+ }
+
+ private void animateHide() {
+ final Animator alphaAnimator = ObjectAnimator.ofFloat(this, "alpha", 0);
+ alphaAnimator.setDuration(150);
+ alphaAnimator.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ TorBootstrapAnimationContainer.this.setVisibility(View.GONE);
+ }
+ });
+
+ alphaAnimator.start();
+ }
+
+ public void registerOnFinishListener(OnFinishListener listener) {
+ onFinishListener = listener;
+ }
+}
diff --git a/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorBootstrapLogPanel.java b/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorBootstrapLogPanel.java
new file mode 100644
index 000000000000..18d827cec216
--- /dev/null
+++ b/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorBootstrapLogPanel.java
@@ -0,0 +1,54 @@
+/* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*-
+ * 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/. */
+
+package org.mozilla.gecko.torbootstrap;
+
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+import org.mozilla.gecko.R;
+
+/**
+ * Simple subclass of TorBootstrapPanel specifically for showing
+ * Tor and Orbot log entries.
+ */
+public class TorBootstrapLogPanel extends TorBootstrapPanel {
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstance) {
+ mRoot = (ViewGroup) inflater.inflate(R.layout.tor_bootstrap_log, container, false);
+
+ if (mRoot == null) {
+ Log.w(LOGTAG, "Inflating R.layout.tor_bootstrap returned null");
+ return null;
+ }
+
+ TorLogEventListener.addLogger(this);
+
+ return mRoot;
+ }
+
+ @Override
+ public void onViewCreated(View view, Bundle savedInstance) {
+ super.onViewCreated(view, savedInstance);
+ // Inherited from the super class
+ configureGearCogClickHandler();
+ }
+
+ // TODO Add a button for Go-to-bottom
+ @Override
+ public void updateStatus(String torServiceMsg, String newTorStatus) {
+ if (torServiceMsg == null) {
+ return;
+ }
+ TextView torLog = (TextView) mRoot.findViewById(R.id.tor_bootstrap_last_status_message);
+ torLog.append("- " + torServiceMsg + "\n");
+ }
+}
diff --git a/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorBootstrapLogger.java b/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorBootstrapLogger.java
new file mode 100644
index 000000000000..24c9321beb63
--- /dev/null
+++ b/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorBootstrapLogger.java
@@ -0,0 +1,17 @@
+/* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*-
+ * 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/. */
+
+package org.mozilla.gecko.torbootstrap;
+
+import android.app.Activity;
+
+// Simple interface for a logger.
+//
+// The current implementers are TorBootstrapPanel and
+// TorBootstrapLogPanel.
+public interface TorBootstrapLogger {
+ public void updateStatus(String torServiceMsg, String newTorStatus);
+ public Activity getActivity();
+}
diff --git a/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorBootstrapPager.java b/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorBootstrapPager.java
new file mode 100644
index 000000000000..b780810f14ab
--- /dev/null
+++ b/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorBootstrapPager.java
@@ -0,0 +1,160 @@
+/* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*-
+ * 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/. */
+
+package org.mozilla.gecko.torbootstrap;
+
+import android.app.Activity;
+import android.content.Context;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentPagerAdapter;
+import android.util.AttributeSet;
+import android.view.View;
+import android.view.ViewGroup;
+import android.animation.Animator;
+import android.animation.AnimatorSet;
+import android.animation.ObjectAnimator;
+
+import org.mozilla.gecko.firstrun.FirstrunPager;
+
+import java.util.List;
+
+/**
+ * ViewPager containing our bootstrapping pages.
+ *
+ * Based on FirstrunPager for simplicity
+ */
+public class TorBootstrapPager extends FirstrunPager {
+
+ private Context context;
+ private Activity mActivity;
+ protected TorBootstrapPanel.PagerNavigation pagerNavigation;
+
+ public TorBootstrapPager(Context context) {
+ this(context, null);
+ }
+
+ public TorBootstrapPager(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ this.context = context;
+ }
+
+ @Override
+ public void addView(View child, int index, ViewGroup.LayoutParams params) {
+ super.addView(child, index, params);
+ }
+
+ // Load the default (hard-coded) panels from TorBootstrapPagerConfig
+ // Mostly copied from super
+ public void load(Activity activity, FragmentManager fm, final TorBootstrapAnimationContainer.OnFinishListener onFinishListener) {
+ mActivity = activity;
+ final List<TorBootstrapPagerConfig.TorBootstrapPanelConfig> panels = TorBootstrapPagerConfig.getDefaultBootstrapPanel();
+
+ setAdapter(new ViewPagerAdapter(fm, panels));
+ this.pagerNavigation = new TorBootstrapPanel.PagerNavigation() {
+ @Override
+ public void next() {
+ // No-op implementation.
+ }
+
+ @Override
+ public void finish() {
+ if (onFinishListener != null) {
+ onFinishListener.onFinish();
+ }
+ }
+ };
+
+ animateLoad();
+ }
+
+ // Copied from super
+ private void animateLoad() {
+ setTranslationY(500);
+ setAlpha(0);
+
+ final Animator translateAnimator = ObjectAnimator.ofFloat(this, "translationY", 0);
+ translateAnimator.setDuration(400);
+
+ final Animator alphaAnimator = ObjectAnimator.ofFloat(this, "alpha", 1);
+ alphaAnimator.setStartDelay(200);
+ alphaAnimator.setDuration(600);
+
+ final AnimatorSet set = new AnimatorSet();
+ set.playTogether(alphaAnimator, translateAnimator);
+ set.setStartDelay(400);
+
+ set.start();
+ }
+
+ // Provide an interface for inter-panel communication allowing
+ // the logging panel to stop the bootstrapping animation on the
+ // main panel.
+ public interface TorBootstrapController {
+ void startBootstrapping();
+ void stopBootstrapping();
+ }
+
+ // Mostly copied from FirstrunPager
+ protected class ViewPagerAdapter extends FragmentPagerAdapter implements TorBootstrapController {
+ private final List<TorBootstrapPagerConfig.TorBootstrapPanelConfig> panels;
+ private final Fragment[] fragments;
+
+ public ViewPagerAdapter(FragmentManager fm, List<TorBootstrapPagerConfig.TorBootstrapPanelConfig> panels) {
+ super(fm);
+ this.panels = panels;
+ this.fragments = new Fragment[panels.size()];
+ }
+
+ @Override
+ public Fragment getItem(int i) {
+ Fragment fragment = fragments[i];
+ if (fragment == null) {
+ TorBootstrapPagerConfig.TorBootstrapPanelConfig panelConfig = panels.get(i);
+ // We know the class is within the "org.mozilla.gecko.torbootstrap" package namespace
+ fragment = Fragment.instantiate(mActivity.getApplicationContext(), panelConfig.getClassname(), panelConfig.getArgs());
+ ((TorBootstrapPanel) fragment).setPagerNavigation(pagerNavigation);
+ ((TorBootstrapPanel) fragment).setContext(mActivity);
+ ((TorBootstrapPanel) fragment).setBootstrapController(this);
+ fragments[i] = fragment;
+ }
+ return fragment;
+ }
+
+ @Override
+ public int getCount() {
+ return panels.size();
+ }
+
+ @Override
+ public CharSequence getPageTitle(int i) {
+ return context.getString(panels.get(i).getTitleRes()).toUpperCase();
+ }
+
+ public void startBootstrapping() {
+ if (fragments.length == 0) {
+ return;
+ }
+
+ TorBootstrapPanel mainPanel = (TorBootstrapPanel) getItem(0);
+ if (mainPanel == null) {
+ return;
+ }
+ mainPanel.startBootstrapping();
+ }
+
+ public void stopBootstrapping() {
+ if (fragments.length == 0) {
+ return;
+ }
+
+ TorBootstrapPanel mainPanel = (TorBootstrapPanel) getItem(0);
+ if (mainPanel == null) {
+ return;
+ }
+ mainPanel.stopBootstrapping();
+ }
+ }
+}
diff --git a/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorBootstrapPagerConfig.java b/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorBootstrapPagerConfig.java
new file mode 100644
index 000000000000..7eb5f77fe8ca
--- /dev/null
+++ b/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorBootstrapPagerConfig.java
@@ -0,0 +1,87 @@
+/* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*-
+ * 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/. */
+
+package org.mozilla.gecko.torbootstrap;
+
+import android.os.Bundle;
+import android.util.Log;
+import org.mozilla.gecko.GeckoSharedPrefs;
+import org.mozilla.gecko.R;
+import org.mozilla.gecko.Telemetry;
+import org.mozilla.gecko.TelemetryContract;
+import org.mozilla.gecko.Experiments;
+
+import java.util.LinkedList;
+import java.util.List;
+
+public class TorBootstrapPagerConfig {
+ public static final String LOGTAG = "TorBootstrapPagerConfig";
+
+ public static final String KEY_IMAGE = "imageRes";
+ public static final String KEY_TEXT = "textRes";
+ public static final String KEY_SUBTEXT = "subtextRes";
+ public static final String KEY_CTATEXT = "ctatextRes";
+
+ public static List<TorBootstrapPanelConfig> getDefaultConnectPanel() {
+ final List<TorBootstrapPanelConfig> panels = new LinkedList<>();
+ panels.add(SimplePanelConfigs.connectPanelConfig);
+
+ return panels;
+ }
+
+ public static List<TorBootstrapPanelConfig> getDefaultBootstrapPanel() {
+ final List<TorBootstrapPanelConfig> panels = new LinkedList<>();
+ panels.add(SimplePanelConfigs.bootstrapPanelConfig);
+ panels.add(SimplePanelConfigs.torLogPanelConfig);
+
+ return panels;
+ }
+
+ public static class TorBootstrapPanelConfig {
+
+ private String classname;
+ private int titleRes;
+ private Bundle args;
+
+ public TorBootstrapPanelConfig(String resource, int titleRes) {
+ this(resource, titleRes, -1, -1, -1, true);
+ }
+
+ public TorBootstrapPanelConfig(String classname, int titleRes, int imageRes, int textRes, int subtextRes) {
+ this(classname, titleRes, imageRes, textRes, subtextRes, false);
+ }
+
+ private TorBootstrapPanelConfig(String classname, int titleRes, int imageRes, int textRes, int subtextRes, boolean isCustom) {
+ this.classname = classname;
+ this.titleRes = titleRes;
+
+ if (!isCustom) {
+ this.args = new Bundle();
+ this.args.putInt(KEY_IMAGE, imageRes);
+ this.args.putInt(KEY_TEXT, textRes);
+ this.args.putInt(KEY_SUBTEXT, subtextRes);
+ }
+ }
+
+ public String getClassname() {
+ return this.classname;
+ }
+
+ public int getTitleRes() {
+ return this.titleRes;
+ }
+
+ public Bundle getArgs() {
+ return args;
+ }
+ }
+
+ private static class SimplePanelConfigs {
+ public static final TorBootstrapPanelConfig connectPanelConfig = new TorBootstrapPanelConfig(TorBootstrapPanel.class.getName(), R.string.firstrun_panel_title_welcome);
+ public static final TorBootstrapPanelConfig bootstrapPanelConfig = new TorBootstrapPanelConfig(TorBootstrapPanel.class.getName(), R.string.firstrun_panel_title_welcome);
+ public static final TorBootstrapPanelConfig torLogPanelConfig = new TorBootstrapPanelConfig(TorBootstrapLogPanel.class.getName(), R.string.firstrun_panel_title_privacy);
+
+ }
+}
diff --git a/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorBootstrapPanel.java b/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorBootstrapPanel.java
new file mode 100644
index 000000000000..584c0fc3cdde
--- /dev/null
+++ b/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorBootstrapPanel.java
@@ -0,0 +1,428 @@
+/* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*-
+ * 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/. */
+
+package org.mozilla.gecko.torbootstrap;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.graphics.drawable.Animatable2;
+import android.graphics.drawable.Drawable;
+import android.os.Build;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.content.LocalBroadcastManager;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.TextView;
+import android.util.Log;
+import org.mozilla.gecko.R;
+import org.mozilla.gecko.Telemetry;
+import org.mozilla.gecko.TelemetryContract;
+import org.mozilla.gecko.firstrun.FirstrunPanel;
+
+import org.torproject.android.service.OrbotConstants;
+import org.torproject.android.service.TorService;
+import org.torproject.android.service.TorServiceConstants;
+import org.torproject.android.service.util.TorServiceUtils;
+
+
+/**
+ * Tor Bootstrap panel (fragment/screen)
+ *
+ * This is based on the Firstrun Panel for simplicity.
+ */
+public class TorBootstrapPanel extends FirstrunPanel implements TorBootstrapLogger {
+
+ protected static final String LOGTAG = "TorBootstrap";
+
+ protected ViewGroup mRoot;
+ protected Activity mActContext;
+ protected TorBootstrapPager.TorBootstrapController mBootstrapController;
+
+ // These are used by the background AlphaChanging thread for dynamically changing
+ // the alpha value of the Onion during bootstrap.
+ private int mOnionCurrentAlpha = 255;
+ // This is either +1 or -1, depending on the direction of the change.
+ private int mOnionCurrentAlphaDirection = -1;
+ private Object mOnionAlphaChangerLock = new Object();
+ private boolean mOnionAlphaChangerRunning = false;
+
+ // Runnable for changing the alpha of the Onion image every 100 milliseconds.
+ // It gradually increases and then decreases the alpha in the background and
+ // then applies the new alpha on the UI thread.
+ private Thread mChangeOnionAlphaThread = null;
+ final private class ChangeOnionAlphaRunnable implements Runnable {
+ @Override
+ public void run() {
+ while (true) {
+ synchronized(mOnionAlphaChangerLock) {
+ if (!mOnionAlphaChangerRunning) {
+ // Null the reference for this thread when we exit
+ mChangeOnionAlphaThread = null;
+ return;
+ }
+ }
+
+ // Choose the new value here, mOnionCurrentAlpha is set in setOnionAlphaValue()
+ // Increase by 5 if mOnionCurrentAlphaDirection is positive, and decrease by
+ // 5 if mOnionCurrentAlphaDirection is negative.
+ final int newAlpha = mOnionCurrentAlpha + mOnionCurrentAlphaDirection*5;
+ getActivity().runOnUiThread(new Runnable() {
+ public void run() {
+ setOnionAlphaValue(newAlpha);
+ }
+ });
+
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException e) {}
+ }
+ }
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstance) {
+ mRoot = (ViewGroup) inflater.inflate(R.layout.tor_bootstrap, container, false);
+ if (mRoot == null) {
+ Log.w(LOGTAG, "Inflating R.layout.tor_bootstrap returned null");
+ return null;
+ }
+
+ Button connectButton = mRoot.findViewById(R.id.tor_bootstrap_connect);
+ if (connectButton == null) {
+ Log.w(LOGTAG, "Finding the Connect button failed. Did the ID change?");
+ return null;
+ }
+
+ connectButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ startBootstrapping();
+ }
+ });
+
+ // This should be declared in the xml layout, however there is a bug
+ // preventing this (the XML attribute isn't actually defined in the
+ // SDK).
+ // https://issuetracker.google.com/issues/37036728
+ connectButton.setClipToOutline(true);
+
+ configureGearCogClickHandler();
+
+ TorLogEventListener.addLogger(this);
+
+ return mRoot;
+ }
+
+ private void setOnionAlphaValue(int newAlpha) {
+ ImageView onionImg = (ImageView) mRoot.findViewById(R.id.tor_bootstrap_onion);
+ if (onionImg == null) {
+ return;
+ }
+
+ if (newAlpha > 255) {
+ // Cap this at 255 and change direction of animation
+ newAlpha = 255;
+
+ synchronized(mOnionAlphaChangerLock) {
+ mOnionCurrentAlphaDirection = -1;
+ }
+ } else if (newAlpha < 0) {
+ // Lower-bound this at 0 and change direction of animation
+ newAlpha = 0;
+
+ synchronized(mOnionAlphaChangerLock) {
+ mOnionCurrentAlphaDirection = 1;
+ }
+ }
+ onionImg.setImageAlpha(newAlpha);
+ mOnionCurrentAlpha = newAlpha;
+ }
+
+ public void updateStatus(String torServiceMsg, String newTorStatus) {
+ final String noticePrefix = "NOTICE: ";
+
+ if (torServiceMsg == null) {
+ return;
+ }
+
+ TextView torLog = (TextView) mRoot.findViewById(R.id.tor_bootstrap_last_status_message);
+ if (torLog == null) {
+ Log.w(LOGTAG, "updateStatus: torLog is null?");
+ }
+ // Only show Notice-level log messages on this panel
+ if (torServiceMsg.startsWith(noticePrefix)) {
+ // Drop the prefix
+ String msg = torServiceMsg.substring(noticePrefix.length());
+ torLog.setText(msg);
+ } else if (torServiceMsg.toLowerCase().contains("error")) {
+ torLog.setText(R.string.tor_notify_user_about_error);
+
+ // This may be a false-positive, but if we encountered an error within
+ // the OrbotService then there's likely nothing the user can do. This
+ // isn't persistent, so if they restart the app the button will be
+ // visible again.
+ Button connectButton = mRoot.findViewById(R.id.tor_bootstrap_connect);
+ if (connectButton == null) {
+ Log.w(LOGTAG, "updateStatus: Finding the Connect button failed. Did the ID change?");
+ } else {
+ TextView swipeLeftLog = (TextView) mRoot.findViewById(R.id.tor_bootstrap_swipe_log);
+ if (swipeLeftLog == null) {
+ Log.w(LOGTAG, "updateStatus: swipeLeftLog is null?");
+ }
+
+ // Abuse this by showing the log message despite not bootstrapping
+ toggleVisibleElements(true, torLog, connectButton, swipeLeftLog);
+ }
+ }
+
+ // Return to the browser when we reach 100% bootstrapped
+ if (torServiceMsg.contains(TorServiceConstants.TOR_CONTROL_PORT_MSG_BOOTSTRAP_DONE)) {
+ // Inform the background AlphaChanging thread it should terminate
+ synchronized(mOnionAlphaChangerLock) {
+ mOnionAlphaChangerRunning = false;
+ }
+ close();
+ }
+ }
+
+ public void setContext(Activity ctx) {
+ mActContext = ctx;
+ }
+
+ // Save the TorBootstrapController.
+ // This method won't be used by the main TorBootstrapPanel (|this|), but
+ // it will be used by its childen.
+ public void setBootstrapController(TorBootstrapPager.TorBootstrapController bootstrapController) {
+ mBootstrapController = bootstrapController;
+ }
+
+ private void startTorService() {
+ Intent torService = new Intent(getActivity(), TorService.class);
+ torService.setAction(TorServiceConstants.ACTION_START);
+ getActivity().startService(torService);
+ }
+
+ private void stopTorService() {
+ // First, stop the current bootstrapping process (if it's in progress)
+ // TODO Ideally, we'd DisableNetwork here, but that's not available.
+ Intent torService = new Intent(getActivity(), TorService.class);
+ getActivity().stopService(torService);
+ }
+
+ // Setup OnClick handler for the settings gear/cog
+ protected void configureGearCogClickHandler() {
+ if (mRoot == null) {
+ Log.w(LOGTAG, "configureGearCogClickHandler: mRoot is null?");
+ return;
+ }
+
+ final ImageView gearSettingsImage = mRoot.findViewById(R.id.tor_bootstrap_settings_gear);
+ if (gearSettingsImage == null) {
+ Log.w(LOGTAG, "configureGearCogClickHandler: gearSettingsImage is null?");
+ return;
+ }
+
+ gearSettingsImage.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ // The existance of the connect button is an indicator of the user
+ // interacting with the main bootstrapping screen or the loggin screen.
+ Button connectButton = mRoot.findViewById(R.id.tor_bootstrap_connect);
+ if (connectButton == null) {
+ Log.w(LOGTAG, "gearSettingsImage onClick: Finding the Connect button failed, proxying request.");
+
+ // If there isn't a connect button on this screen, then proxy the
+ // stopBootstrapping() request via the TorBootstrapController (which
+ // is the underlying PagerAdapter).
+ mBootstrapController.stopBootstrapping();
+ } else {
+ stopBootstrapping();
+ }
+ // Open Tor Network Settings preferences screen
+ Intent intent = new Intent(mActContext, TorPreferences.class);
+ mActContext.startActivity(intent);
+ }
+ });
+ }
+
+ private void toggleVisibleElements(boolean bootstrapping, TextView lastStatus, Button connect, TextView swipeLeft) {
+ final int connectVisible = bootstrapping ? View.INVISIBLE : View.VISIBLE;
+ final int infoTextVisible = bootstrapping ? View.VISIBLE : View.INVISIBLE;
+
+ if (connect != null) {
+ connect.setVisibility(connectVisible);
+ }
+ if (lastStatus != null) {
+ lastStatus.setVisibility(infoTextVisible);
+ }
+ if (swipeLeft != null) {
+ swipeLeft.setVisibility(infoTextVisible);
+ }
+ }
+
+ private void startBackgroundAlphaChangingThread() {
+ // If it is non-null, then this is a bug because the thread should null this reference when
+ // it terminates.
+ if (mChangeOnionAlphaThread != null) {
+ if (mChangeOnionAlphaThread.getState() == Thread.State.TERMINATED) {
+ // The thread likely terminated unexpectedly, null the reference.
+ // The thread should set this itself.
+ Log.i(LOGTAG, "mChangeOnionAlphaThread.getState(): is terminated");
+ mChangeOnionAlphaThread = null;
+ } else {
+ // Don't null the reference in this case because then we'll start another
+ // background thread. We are currently in an unknown state, simply set
+ // the Running flag as false.
+ Log.w(LOGTAG, "We're in an unexpected state. mChangeOnionAlphaThread.getState(): " + mChangeOnionAlphaThread.getState());
+
+ synchronized(mOnionAlphaChangerLock) {
+ mOnionAlphaChangerRunning = false;
+ }
+ }
+ }
+
+ // If the background thread is not currently running, then start it.
+ if (mChangeOnionAlphaThread == null) {
+ mChangeOnionAlphaThread = new Thread(new ChangeOnionAlphaRunnable());
+ if (mChangeOnionAlphaThread == null) {
+ Log.w(LOGTAG, "Instantiating a new ChangeOnionAlphaRunnable Thread failed.");
+ } else if (mChangeOnionAlphaThread.getState() == Thread.State.NEW) {
+ Log.i(LOGTAG, "Starting mChangeOnionAlphaThread");
+
+ // Synchronization across threads should not be necessary because there
+ // shouldn't be any other threads relying on mOnionAlphaChangerRunning.
+ // We do this purely for safety.
+ synchronized(mOnionAlphaChangerLock) {
+ mOnionAlphaChangerRunning = true;
+ }
+
+ mChangeOnionAlphaThread.start();
+ }
+ }
+ }
+
+ public void startBootstrapping() {
+ if (mRoot == null) {
+ Log.w(LOGTAG, "startBootstrapping: mRoot is null?");
+ return;
+ }
+ // We're starting bootstrap, transition into the bootstrapping-tor-panel
+ Button connectButton = mRoot.findViewById(R.id.tor_bootstrap_connect);
+ if (connectButton == null) {
+ Log.w(LOGTAG, "startBootstrapping: connectButton is null?");
+ return;
+ }
+
+ ImageView onionImg = (ImageView) mRoot.findViewById(R.id.tor_bootstrap_onion);
+
+ // Replace the current non-animated image with the animation
+ onionImg.setImageResource(R.drawable.tor_spinning_onion);
+
+ Drawable drawableOnion = onionImg.getDrawable();
+ if (Build.VERSION.SDK_INT >= 23 && drawableOnion instanceof Animatable2) {
+ Animatable2 spinningOnion = (Animatable2) drawableOnion;
+ // Begin spinning
+ spinningOnion.start();
+ } else {
+ Log.i(LOGTAG, "Animatable2 is not supported (or bad inheritance), version: " + Build.VERSION.SDK_INT);
+ }
+
+ mOnionCurrentAlpha = 255;
+ // The onion should have 100% alpha, begin decreasing it.
+ mOnionCurrentAlphaDirection = -1;
+ startBackgroundAlphaChangingThread();
+
+ TextView torStatus = (TextView) mRoot.findViewById(R.id.tor_bootstrap_last_status_message);
+ if (torStatus == null) {
+ Log.w(LOGTAG, "startBootstrapping: torStatus is null?");
+ return;
+ }
+
+ TextView swipeLeftLog = (TextView) mRoot.findViewById(R.id.tor_bootstrap_swipe_log);
+ if (swipeLeftLog == null) {
+ Log.w(LOGTAG, "startBootstrapping: swipeLeftLog is null?");
+ return;
+ }
+
+ torStatus.setText(getString(R.string.tor_bootstrap_starting_status));
+
+ toggleVisibleElements(true, torStatus, connectButton, swipeLeftLog);
+ startTorService();
+ }
+
+ // This is public because this Pager may call this method if another Panel requests it.
+ public void stopBootstrapping() {
+ if (mRoot == null) {
+ Log.w(LOGTAG, "stopBootstrapping: mRoot is null?");
+ return;
+ }
+ // Transition from the animated bootstrapping panel to
+ // the static "Connect" panel
+ Button connectButton = mRoot.findViewById(R.id.tor_bootstrap_connect);
+ if (connectButton == null) {
+ Log.w(LOGTAG, "stopBootstrapping: connectButton is null?");
+ return;
+ }
+
+ ImageView onionImg = (ImageView) mRoot.findViewById(R.id.tor_bootstrap_onion);
+ if (onionImg == null) {
+ Log.w(LOGTAG, "stopBootstrapping: onionImg is null?");
+ return;
+ }
+
+ // Inform the background AlphaChanging thread it should terminate.
+ synchronized(mOnionAlphaChangerLock) {
+ mOnionAlphaChangerRunning = false;
+ }
+
+ Drawable drawableOnion = onionImg.getDrawable();
+
+ // If the connect button wasn't pressed previously, then this object is
+ // not an animation (it is most likely a BitmapDrawable). Only manipulate
+ // it when it is an Animatable2.
+ if (Build.VERSION.SDK_INT >= 23 && drawableOnion instanceof Animatable2) {
+ Animatable2 spinningOnion = (Animatable2) drawableOnion;
+ // spinningOnion is null if we didn't previously call startBootstrapping.
+ // If we reach here and spinningOnion is null, then there is likely a bug
+ // because stopBootstrapping() is called only when the user selects the
+ // gear button and we should only reach this block if the user pressed the
+ // connect button (thus creating and enabling the animation) and then
+ // pressing the gear button. Therefore, if the drawableOnion is an
+ // Animatable2, then spinningOnion should be non-null.
+ if (spinningOnion != null) {
+ spinningOnion.stop();
+
+ onionImg.setImageResource(R.drawable.tor_spinning_onion);
+ }
+ } else {
+ Log.i(LOGTAG, "Animatable2 is not supported (or bad inheritance), version: " + Build.VERSION.SDK_INT);
+ }
+
+ // Reset the onion's alpha value.
+ onionImg.setImageAlpha(255);
+
+ TextView torStatus = (TextView) mRoot.findViewById(R.id.tor_bootstrap_last_status_message);
+ if (torStatus == null) {
+ Log.w(LOGTAG, "stopBootstrapping: torStatus is null?");
+ return;
+ }
+
+ TextView swipeLeftLog = (TextView) mRoot.findViewById(R.id.tor_bootstrap_swipe_log);
+ if (swipeLeftLog == null) {
+ Log.w(LOGTAG, "stopBootstrapping: swipeLeftLog is null?");
+ return;
+ }
+
+ // Reset the displayed message
+ torStatus.setText("");
+
+ toggleVisibleElements(false, torStatus, connectButton, swipeLeftLog);
+ stopTorService();
+ }
+}
diff --git a/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorLogEventListener.java b/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorLogEventListener.java
new file mode 100644
index 000000000000..6218763475e5
--- /dev/null
+++ b/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorLogEventListener.java
@@ -0,0 +1,128 @@
+/* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*-
+ * 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/. */
+
+package org.mozilla.gecko.torbootstrap;
+
+import android.app.Activity;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.Handler;
+import android.os.Message;
+import android.support.v4.content.LocalBroadcastManager;
+
+import org.torproject.android.service.OrbotConstants;
+import org.torproject.android.service.TorService;
+import org.torproject.android.service.TorServiceConstants;
+import org.torproject.android.service.util.TorServiceUtils;
+
+import java.util.Vector;
+
+
+/**
+ * This is simply a container for capturing the log events and proxying them
+ * to the TorBootstrapLogger implementers (TorBootstrapPanel and TorBootstrapLogPanel now).
+ *
+ * This should be in BrowserApp, but that class/Activity is already too large,
+ * so this should be easier to reason about.
+ */
+public class TorLogEventListener {
+
+ private static Vector<TorBootstrapLogger> mLoggers;
+
+ private TorLogEventListener instance;
+ private static boolean isInitialized = false;
+
+ public TorLogEventListener getInstance(Context context) {
+ if (instance == null) {
+ instance = new TorLogEventListener();
+ }
+ return instance;
+ }
+
+ private synchronized static void initialize(Context context) {
+ LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context);
+ lbm.registerReceiver(mLocalBroadcastReceiver,
+ new IntentFilter(TorServiceConstants.ACTION_STATUS));
+ lbm.registerReceiver(mLocalBroadcastReceiver,
+ new IntentFilter(TorServiceConstants.LOCAL_ACTION_LOG));
+
+ isInitialized = true;
+ // There should be at least two Loggers: TorBootstrapPanel
+ // and TorBootstrapLogPanel
+ mLoggers = new Vector<TorBootstrapLogger>(2);
+ }
+
+ public synchronized static void addLogger(TorBootstrapLogger logger) {
+ if (!isInitialized) {
+ // This is an assumption we're making. All Loggers are a subclass
+ // of an Activity.
+ Activity activity = logger.getActivity();
+ initialize(activity);
+ }
+
+ if (mLoggers.contains(logger)) {
+ return;
+ }
+ mLoggers.add(logger);
+ }
+
+ public synchronized static void deleteLogger(TorBootstrapLogger logger) {
+ mLoggers.remove(logger);
+ }
+
+ /**
+ * The state and log info from {@link TorService} are sent to the UI here in
+ * the form of a local broadcast. Regular broadcasts can be sent by any app,
+ * so local ones are used here so other apps cannot interfere with Orbot's
+ * operation.
+ *
+ * Copied from Orbot - OrbotMainActivity.java
+ */
+ private static BroadcastReceiver mLocalBroadcastReceiver = new BroadcastReceiver() {
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ if (action == null) {
+ return;
+ }
+
+ // This is only defined for log updates
+ if (!action.equals(TorServiceConstants.LOCAL_ACTION_LOG) &&
+ !action.equals(TorServiceConstants.ACTION_STATUS)) {
+ return;
+ }
+
+ Message msg = mStatusUpdateHandler.obtainMessage();
+
+ if (action.equals(TorServiceConstants.LOCAL_ACTION_LOG)) {
+ msg.obj = intent.getStringExtra(TorServiceConstants.LOCAL_EXTRA_LOG);
+ }
+
+ msg.getData().putString("status",
+ intent.getStringExtra(TorServiceConstants.EXTRA_STATUS));
+ mStatusUpdateHandler.sendMessage(msg);
+ }
+ };
+
+
+ // this is what takes messages or values from the callback threads or other non-mainUI threads
+ // and passes them back into the main UI thread for display to the user
+ private static Handler mStatusUpdateHandler = new Handler() {
+
+ @Override
+ public void handleMessage(final Message msg) {
+ String newTorStatus = msg.getData().getString("status");
+ String log = (String)msg.obj;
+
+ for (TorBootstrapLogger l : mLoggers) {
+ l.updateStatus(log, newTorStatus);
+ }
+ super.handleMessage(msg);
+ }
+ };
+}
diff --git a/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorPreferences.java b/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorPreferences.java
new file mode 100644
index 000000000000..32a3bed3e685
--- /dev/null
+++ b/mobile/android/base/java/org/mozilla/gecko/torbootstrap/TorPreferences.java
@@ -0,0 +1,950 @@
+/* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*-
+ * 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/. */
+
+package org.mozilla.gecko.torbootstrap;
+
+
+import android.app.Activity;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.graphics.Typeface;
+import android.os.Bundle;
+import android.preference.Preference;
+import android.preference.PreferenceFragment;
+import android.preference.PreferenceScreen;
+import android.preference.SwitchPreference;
+import android.text.style.ClickableSpan;
+import android.text.SpannableString;
+import android.text.Spanned;
+import android.text.method.LinkMovementMethod;
+import android.view.LayoutInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewGroup.LayoutParams;
+import android.view.ViewParent;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.LinearLayout;
+import android.widget.ListView;
+import android.widget.AdapterView;
+import android.widget.RadioButton;
+import android.widget.RadioGroup;
+import android.widget.Switch;
+import android.widget.TextView;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.util.Xml;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Vector;
+
+import org.mozilla.gecko.R;
+import org.mozilla.gecko.preferences.AppCompatPreferenceActivity;
+
+import org.torproject.android.service.util.Prefs;
+
+import org.xmlpull.v1.XmlPullParser;
+
+import static org.mozilla.gecko.preferences.GeckoPreferences.NON_PREF_PREFIX;
+
+
+/** TorPreferences provides the Tor-related preferences
+ *
+ * We configure bridges using either a set of built-in bridges where the user enables
+ * them based on bridge type (the name of the pluggable transport) or the user provides
+ * their own bridge (obtained from another person or BridgeDB, etc).
+ *
+ * This class (TorPreferences) is divided into multiple Fragments (screens). The first
+ * screen is where the user enables or disables Bridges. The second screen shows the
+ * user a list of built-in bridge types (obfs4, meek, etc) where they may select one of
+ * them. It shows a button they may press for providing their own bridge, as well. The
+ * third screen is where the user may provide (copy/paste) their own bridge.
+ *
+ * On the first screen, if bridges are currently enabled, then the switch/toggle is
+ * shown as enabled. In addition, the user is shown a message saying whether built-in or
+ * provided bridges are being used. There is a link, labeled "Change", where they
+ * transitioned to the appropriate screen for modifying the configuration if it is pressed.
+ *
+ * The second screen shows radio buttons for the built-in bridge types.
+ *
+ * The State of Bridges-Enabled:
+ * There are a few moving parts here, a higher-level description of how we expect this
+ * works, where "Enabled" is "Bridges Enabled", "Type" is "Bridge Type", and "Provided"
+ * is "Bridge Provided":
+ *
+ * We have five preferences:
+ * PREFS_BRIDGES_ENABLED
+ * PREFS_BRIDGES_TYPE
+ * PREFS_BRIDGES_PROVIDE
+ * pref_bridges_enabled (Orbot)
+ * pref_bridges_list (Orbot)
+ *
+ * These may be in following three end states where PREFS_BRIDGES_ENABLED and
+ * pref_bridges_enabled must always match, and pref_bridges_list must either match
+ * PREFS_BRIDGES_PROVIDE or contain a list of bridges of type PREFS_BRIDGES_TYPE.
+ *
+ * PREFS_BRIDGES_ENABLED=false
+ * PREFS_BRIDGES_TYPE=null
+ * PREFS_BRIDGES_PROVIDE=null
+ * pref_bridges_enabled=false
+ * pref_bridges_list=null
+ *
+ * PREFS_BRIDGES_ENABLED=true
+ * PREFS_BRIDGES_TYPE=T1
+ * PREFS_BRIDGES_PROVIDE=null
+ * pref_bridges_enabled=true
+ * pref_bridges_list=X1
+ *
+ * PREFS_BRIDGES_ENABLED=true
+ * PREFS_BRIDGES_TYPE=null
+ * PREFS_BRIDGES_PROVIDE=X2
+ * pref_bridges_enabled=true
+ * pref_bridges_list=X2
+ *
+ * There are transition states where this is not consistent, for example when the
+ * "Bridges Enabled" switch is toggled but "Bridge Type" and "Bridge Provided" are null.
+ */
+
+public class TorPreferences extends AppCompatPreferenceActivity {
+ private static final String LOGTAG = "TorPreferences";
+
+ private static final String PREFS_BRIDGES_ENABLED = NON_PREF_PREFIX + "tor.bridges.enabled";
+ private static final String PREFS_BRIDGES_TYPE = NON_PREF_PREFIX + "tor.bridges.type";
+ private static final String PREFS_BRIDGES_PROVIDE = NON_PREF_PREFIX + "tor.bridges.provide";
+
+ private static final String sClassName = TorPreferences.class.getName();
+ private static final String sTorNetworkBridgesEnabledPreferenceName = sClassName + "$TorNetworkBridgesEnabledPreference";
+ private static final String sTorNetworkBridgeSelectPreferenceName = sClassName + "$TorNetworkBridgeSelectPreference";
+ private static final String sTorNetworkBridgeProvidePreferenceName = sClassName + "$TorNetworkBridgeProvidePreference";
+ private static final String[] sTorPreferenceFragments = {sTorNetworkBridgesEnabledPreferenceName,
+ sTorNetworkBridgeSelectPreferenceName,
+ sTorNetworkBridgeProvidePreferenceName};
+ // Current displayed PreferenceFragment
+ private TorNetworkPreferenceFragment mFrag;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ // Begin with the first (Enable Bridges) fragment
+ getIntent().putExtra(EXTRA_SHOW_FRAGMENT, sTorNetworkBridgesEnabledPreferenceName);
+ super.onCreate(savedInstanceState);
+
+ mFrag = null;
+ }
+
+ // Save the current preference when the app is minimized or swiped away.
+ @Override
+ public void onStop() {
+ mFrag.onSaveState();
+ super.onStop();
+ }
+
+ // This is needed because launching a fragment fails if this
+ // method doesn't return true.
+ @Override
+ protected boolean isValidFragment(String fragmentName) {
+ for (String frag : sTorPreferenceFragments) {
+ if (fragmentName.equals(frag)) {
+ return true;
+ }
+ }
+ Log.i(LOGTAG, "isValidFragment(): Returning false (" + fragmentName + ")");
+ return false;
+ }
+
+ public void setFragment(TorNetworkPreferenceFragment frag) {
+ mFrag = frag;
+ }
+
+ // Save the preference when the user returns to the previous screen using
+ // the back button
+ @Override
+ public void onBackPressed() {
+ mFrag.onSaveState();
+ super.onBackPressed();
+ }
+
+ // Control the behavior when the Up button (back button in top-left
+ // corner) is pressed. Save the current preference and return to the
+ // previous screen.
+ @Override
+ public boolean onNavigateUp() {
+ super.onNavigateUp();
+
+ if (mFrag == null) {
+ Log.w(LOGTAG, "onNavigateUp(): mFrag is null");
+ return false;
+ }
+
+ // Handle the user pressing the Up button in the same way as
+ // we handle them pressing the Back button. Strictly, this
+ // isn't correct, but it will prevent confusion.
+ mFrag.onSaveState();
+
+ if (mFrag.getFragmentManager().getBackStackEntryCount() > 0) {
+ Log.i(LOGTAG, "onNavigateUp(): popping from backstatck");
+ mFrag.getFragmentManager().popBackStack();
+ } else {
+ Log.i(LOGTAG, "onNavigateUp(): finishing activity");
+ finish();
+ }
+ return true;
+ }
+
+ // Overriding this method is necessary because before Oreo the PreferenceActivity didn't
+ // correctly handle the Home button (Up button). This was implemented in Oreo (Android 8+,
+ // API 26+).
+ // https://android.googlesource.com/platform/frameworks/base/+/6af15ebcfec64d0…
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ if (item.getItemId() == android.R.id.home) {
+ Log.i(LOGTAG, "onOptionsItemSelected(): Home");
+ onNavigateUp();
+ return true;
+ }
+
+ return super.onOptionsItemSelected(item);
+ }
+
+ // Helper abstract Fragment with common methods
+ public static abstract class TorNetworkPreferenceFragment extends PreferenceFragment {
+ protected TorPreferences mTorPrefAct;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ // This is only ever a TorPreferences
+ mTorPrefAct = (TorPreferences) getActivity();
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ mTorPrefAct.setFragment(this);
+ }
+
+ // Implement this callback in child Fragments
+ public void onSaveState() {
+ }
+
+ // Helper method for walking a View hierarchy and printing the children
+ protected void walkViewTree(View view, int depth) {
+ if (view instanceof ViewGroup) {
+ ViewGroup vg = (ViewGroup) view;
+ int childIdx = 0;
+ for (; childIdx < vg.getChildCount(); childIdx++) {
+ walkViewTree(vg.getChildAt(childIdx), depth + 1);
+ }
+ }
+ Log.i(LOGTAG, "walkViewTree: " + depth + ": view: " + view);
+ Log.i(LOGTAG, "walkViewTree: " + depth + ": view id: " + view.getId());
+ Log.i(LOGTAG, "walkViewTree: " + depth + ": view is focused: " + view.isFocused());
+ Log.i(LOGTAG, "walkViewTree: " + depth + ": view is enabled: " + view.isEnabled());
+ Log.i(LOGTAG, "walkViewTree: " + depth + ": view is selected: " + view.isSelected());
+ Log.i(LOGTAG, "walkViewTree: " + depth + ": view is in touch mode: " + view.isInTouchMode());
+ Log.i(LOGTAG, "walkViewTree: " + depth + ": view is activated: " + view.isActivated());
+ Log.i(LOGTAG, "walkViewTree: " + depth + ": view is clickable: " + view.isClickable());
+ Log.i(LOGTAG, "walkViewTree: " + depth + ": view is focusable: " + view.isFocusable());
+ Log.i(LOGTAG, "walkViewTree: " + depth + ": view is FocusableInTouchMode: " + view.isFocusableInTouchMode());
+ }
+
+ // Helper returning the ListView
+ protected ListView getListView(View view) {
+ if (!(view instanceof ViewGroup) || view == null) {
+ return null;
+ }
+
+ View rawListView = view.findViewById(android.R.id.list);
+ if (!(rawListView instanceof ListView) || rawListView == null) {
+ return null;
+ }
+
+ return (ListView) rawListView;
+ }
+
+ // Get Bridges associated with the provided pref key saved in the
+ // provided SharedPreferences. Return null if the SharedPreferences
+ // is null or if there isn't any value associated with the pref.
+ protected String getBridges(SharedPreferences sharedPrefs, String pref) {
+ if (sharedPrefs == null) {
+ Log.w(LOGTAG, "getBridges: sharedPrefs is null");
+ return null;
+ }
+ return sharedPrefs.getString(pref, null);
+ }
+
+ // Save the bridge type and bridge line preferences.
+ //
+ // Save the bridgesType with the PREFS_BRIDGES_TYPE pref as the key
+ // (for future lookup). If bridgesType is null, then save the
+ // bridgesLines with the PREFS_BRIDGES_PROVIDE pref as the key, and
+ // use Orbot's helper method and enable Orbot's bridge pref.
+ protected boolean setBridges(SharedPreferences.Editor editor, String bridgesType, String bridgesLines) {
+ if (editor == null) {
+ Log.w(LOGTAG, "setBridges: editor is null");
+ return false;
+ }
+ Log.i(LOGTAG, "Saving bridge type preference: " + bridgesType);
+ Log.i(LOGTAG, "Saving bridge line preference: " + bridgesLines);
+
+ // If bridgesType is null, then clear the pref and save the bridgesLines
+ // as a provided bridge. If bridgesType is not null, then save the type
+ // but don't save it as a provided bridge.
+ editor.putString(PREFS_BRIDGES_TYPE, bridgesType);
+ if (bridgesType == null) {
+ editor.putString(PREFS_BRIDGES_PROVIDE, bridgesLines);
+ } else {
+ editor.putString(PREFS_BRIDGES_PROVIDE, null);
+ }
+
+ if (!editor.commit()) {
+ return false;
+ }
+
+ // Set Orbot's preference
+ Prefs.setBridgesList(bridgesLines);
+
+ // If either of these are not null, then we're enabling bridges
+ boolean bridgesAreEnabled = (bridgesType != null) || (bridgesLines != null);
+ // Inform Orbot bridges are enabled
+ Prefs.putBridgesEnabled(bridgesAreEnabled);
+ return true;
+ }
+
+ // Disable the bridges.enabled Preference
+ protected void disableBridges(PreferenceFragment frag) {
+ SwitchPreference bridgesEnabled = (SwitchPreference) frag.findPreference(PREFS_BRIDGES_ENABLED);
+ Preference bridgesType = frag.findPreference(PREFS_BRIDGES_TYPE);
+ Preference bridgesProvide = frag.findPreference(PREFS_BRIDGES_PROVIDE);
+ Preference pref = null;
+
+ if (bridgesEnabled != null) {
+ Log.i(LOGTAG, "disableBridges: bridgesEnabled is not null");
+ pref = bridgesEnabled;
+ } else if (bridgesType != null) {
+ Log.i(LOGTAG, "disableBridges: bridgesType is not null");
+ pref = bridgesType;
+ } else if (bridgesProvide != null) {
+ Log.i(LOGTAG, "disableBridges: bridgesProvide is not null");
+ pref = bridgesProvide;
+ } else {
+ Log.w(LOGTAG, "disableBridges: all the expected preferences are is null?");
+ return;
+ }
+
+ // Clear the saved prefs (it's okay we're using a different
+ // SharedPreference.Editor here, they modify the same backend).
+ // In addition, passing null is equivalent to clearing the
+ // preference.
+ setBridges(pref.getEditor(), null, null);
+
+ if (bridgesEnabled != null) {
+ bridgesEnabled.setChecked(false);
+ }
+ }
+
+ // Set the current title
+ protected void setTitle(int resId) {
+ mTorPrefAct.getSupportActionBar().setTitle(resId);
+ }
+ }
+
+ // Fragment implementing the screen for enabling Bridges
+ public static class TorNetworkBridgesEnabledPreference extends TorNetworkPreferenceFragment {
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ addPreferencesFromResource(R.xml.preferences_tor_network_main);
+ }
+
+ // This class is instantiated within the OnClickListener of the
+ // PreferenceSwitch's Switch widget
+ public class BridgesEnabledSwitchOnClickListener implements View.OnClickListener {
+ @Override
+ public void onClick(View v) {
+ Log.i(LOGTAG, "bridgesEnabledSwitch clicked");
+ if (!(v instanceof Switch)) {
+ Log.w(LOGTAG, "View isn't an instance of Switch?");
+ return;
+ }
+
+ Switch bridgesEnabledSwitch = (Switch) v;
+
+ // The widget was pressed, now find the preference and set it
+ // such that it is synchronized with the widget.
+ final SwitchPreference bridgesEnabled = (SwitchPreference) TorNetworkBridgesEnabledPreference.this.findPreference(PREFS_BRIDGES_ENABLED);
+ if (bridgesEnabled == null) {
+ Log.w(LOGTAG, "onCreate: bridgesEnabled is null?");
+ return;
+ }
+
+ bridgesEnabled.setChecked(bridgesEnabledSwitch.isChecked());
+
+ // Only launch the Fragment if we're enabling bridges.
+ if (bridgesEnabledSwitch.isChecked()) {
+ TorNetworkBridgesEnabledPreference.this.mTorPrefAct.startPreferenceFragment(new TorNetworkBridgeSelectPreference(), true);
+ } else {
+ disableBridges(TorNetworkBridgesEnabledPreference.this);
+ }
+ }
+ }
+
+ // This method must be overridden because, when creating Preferences, the
+ // creation of the View hierarchy occurs asynchronously. Usually
+ // onCreateView() gives us the View hierarchy as it is defined in the XML layout.
+ // However, with Preferences the layout is created across multiple threads and it
+ // usually isn't available at the time onCreateView() or onViewCreated() are
+ // called. As a result, we find the ListView (which is almost guaranteed to exist
+ // at this time) and we add an OnHierarchyChangeListener where we wait until the
+ // children are added into the tree.
+ @Override
+ public void onViewCreated(View view, Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ setTitle(R.string.pref_tor_network_title);
+
+ final SwitchPreference bridgesEnabled = (SwitchPreference) findPreference(PREFS_BRIDGES_ENABLED);
+ if (bridgesEnabled == null) {
+ Log.w(LOGTAG, "onCreate: bridgesEnabled is null?");
+ return;
+ }
+
+ // If we return from either of the "Select Bridge Type" screen
+ // or "Provide Bridge" screen without selecting or inputing
+ // any value, then we could arrive here without any bridge
+ // saved/enabled but this switch is enabled. Disable it.
+ if (!Prefs.bridgesEnabled()) {
+ bridgesEnabled.setChecked(false);
+ }
+
+ // Decide if the configured bridges were provided by the user or
+ // selected from the list of bridge types
+ if (isBridgeProvided(bridgesEnabled)) {
+ String newSummary = getString(R.string.pref_tor_network_bridges_enabled_change_custom);
+ setBridgesEnabledSummaryAndOnClickListener(bridgesEnabled, newSummary, true);
+ } else if (Prefs.bridgesEnabled()) {
+ // If isBridgeProvided() returned false, but Prefs.bridgesEnabled() returns true.
+ // This means we have bridges, but they weren't provided by the user - therefore
+ // they must be built-in bridges.
+ String newSummary = getString(R.string.pref_tor_network_bridges_enabled_change_builtin);
+ setBridgesEnabledSummaryAndOnClickListener(bridgesEnabled, newSummary, false);
+ }
+
+ ListView lv = getListView(view);
+ if (lv == null) {
+ Log.i(LOGTAG, "onViewCreated: ListView not found");
+ return;
+ }
+
+ lv.setOnHierarchyChangeListener(new ViewGroup.OnHierarchyChangeListener() {
+
+ @Override
+ public void onChildViewAdded(View parent, View child) {
+ Log.i(LOGTAG, "onChildViewAdded: Adding ListView child view");
+
+ // Make sure the Switch widget is synchronized with the preference
+ final Switch bridgesEnabledSwitch =
+ (Switch) parent.findViewById(android.R.id.switch_widget);
+
+ if (bridgesEnabledSwitch != null) {
+ bridgesEnabledSwitch.setChecked(bridgesEnabled.isChecked());
+
+ // When the Switch is pressed by the user, either load the next
+ // fragment (where the user chooses a bridge type), or return to
+ // the main bootstrapping screen.
+ bridgesEnabledSwitch.setOnClickListener(new BridgesEnabledSwitchOnClickListener());
+ }
+
+ final TextView bridgesEnabledSummary =
+ (TextView) parent.findViewById(android.R.id.summary);
+ if (bridgesEnabledSummary == null) {
+ Log.w(LOGTAG, "Bridge Enabled Summary is null, we can't enable the span");
+ return;
+ }
+
+ // Make the ClickableSpan clickable within the TextView.
+ // This is a requirement for using a ClickableSpan in
+ // setBridgesEnabledSummaryAndOnClickListener().
+ bridgesEnabledSummary.setMovementMethod(LinkMovementMethod.getInstance());
+ }
+
+ @Override
+ public void onChildViewRemoved(View parent, View child) {
+ }
+ });
+ }
+
+ // This is a common OnClickListener for when the user clicks on the Change link.
+ // The span won't be clickable until the MovementMethod is set. This happens in
+ // onViewCreated within the OnHierarchyChangeListener we set on the ListView.
+ private void setBridgesEnabledSummaryAndOnClickListener(SwitchPreference bridgesEnabled, final String newSummary, final boolean custom) {
+ Log.i(LOGTAG, "Bridge Summary clicked");
+ if (bridgesEnabled == null) {
+ Log.w(LOGTAG, "Bridge Enabled switch is null");
+ return;
+ }
+
+ // Here we obtain the correct text, based on whether the bridges
+ // were provided (custom) or built-in. Using that text, we create
+ // a spannable string and find the substring "Change" within it.
+ // If it exists, we make that substring clickable.
+ // Note: TODO This breaks with localization.
+ if (newSummary == null) {
+ Log.w(LOGTAG, "R.string.pref_tor_network_bridges_enabled_change_builtin is null");
+ return;
+ }
+ int changeStart = newSummary.indexOf("Change");
+ if (changeStart == -1) {
+ Log.w(LOGTAG, "R.string.pref_tor_network_bridges_enabled_change_builtin doesn't contain 'Change'");
+ return;
+ }
+ SpannableString newSpannableSummary = new SpannableString(newSummary);
+ newSpannableSummary.setSpan(new ClickableSpan() {
+ @Override
+ public void onClick(View v) {
+ // If a custom (provided) bridge is configured, then
+ // open the BridgesProvide preference fragment. Else,
+ // open the built-in/bridge-type fragment.
+ Log.i(LOGTAG, "Span onClick!");
+
+ // Add this Fragment regardless of which Fragment we're showing next. If the Change
+ // link goes to the built-in bridges, then this is what we show the user. If the Change
+ // link goes to the provided bridges, then we consider this a deep-link and we inject the
+ // built-in bridges screen into the backstack so they are shown it when they press Back
+ // from the provided-bridges screen.
+ mTorPrefAct.startPreferenceFragment(new
+ TorNetworkBridgeSelectPreference(), true);
+
+ if (custom) {
+ mTorPrefAct.startPreferenceFragment(new
+ TorNetworkBridgeProvidePreference(), true);
+ }
+ }
+ },
+ // Begin the span
+ changeStart,
+ // End the span
+ newSummary.length(),
+ // Don't include new characters added into the spanned substring
+ Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+
+ bridgesEnabled.setSummaryOn(newSpannableSummary);
+ }
+
+ // We follow this logic:
+ // If the bridgesEnabled switch is off, then false
+ // If Orbot doesn't have bridges enabled, then false
+ // If PREFS_BRIDGES_PROVIDE is not null, then true
+ // Else false
+ private boolean isBridgeProvided(SwitchPreference bridgesEnabled) {
+ if (!bridgesEnabled.isChecked()) {
+ Log.i(LOGTAG, "isBridgeProvided: bridgesEnabled is not checked");
+ return false;
+ }
+
+ if (!Prefs.bridgesEnabled()) {
+ Log.i(LOGTAG, "isBridgeProvided: bridges are not enabled");
+ return false;
+ }
+ SharedPreferences sharedPrefs = bridgesEnabled.getSharedPreferences();
+ boolean hasBridgeProvide =
+ sharedPrefs.getString(PREFS_BRIDGES_PROVIDE, null) != null;
+
+ Log.i(LOGTAG, "isBridgeProvided: We have provided bridges: " + hasBridgeProvide);
+ return hasBridgeProvide;
+ }
+ }
+
+ // Fragment implementing the screen for selecting a built-in Bridge type
+ public static class TorNetworkBridgeSelectPreference extends TorNetworkPreferenceFragment {
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ addPreferencesFromResource(R.xml.preferences_tor_network_select_bridge_type);
+ }
+
+ // Add OnClickListeners after the View is created
+ @Override
+ public void onViewCreated(View view, Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ setTitle(R.string.pref_tor_select_a_bridge_title);
+
+ ListView lv = getListView(view);
+ if (lv == null) {
+ Log.i(LOGTAG, "onViewCreated: ListView not found");
+ return;
+ }
+
+ // Configure onClick handler for "Provide a Bridge" button
+ lv.setOnHierarchyChangeListener(new ViewGroup.OnHierarchyChangeListener() {
+
+ @Override
+ public void onChildViewAdded(View parent, View child) {
+ // Set the previously chosen RadioButton as checked
+ final RadioGroup group = getBridgeTypeRadioGroup();
+ if (group == null) {
+ Log.w(LOGTAG, "Radio Group is null");
+ return;
+ }
+
+ final View titleAndSummaryView = parent.findViewById(R.id.title_and_summary);
+ if (titleAndSummaryView == null) {
+ Log.w(LOGTAG, "title and summary view is null");
+ group.setVisibility(View.VISIBLE);
+ return;
+ }
+
+ titleAndSummaryView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ group.setVisibility(View.VISIBLE);
+ }
+ });
+
+ final View provideABridge = parent.findViewById(R.id.tor_network_provide_a_bridge);
+ if (provideABridge == null) {
+ return;
+ }
+
+ provideABridge.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Log.i(LOGTAG, "bridgesProvide clicked");
+ saveCurrentCheckedRadioButton();
+
+ mTorPrefAct.startPreferenceFragment(new TorNetworkBridgeProvidePreference(), true);
+ }
+ });
+
+ final TextView provideABridgeSummary = (TextView) parent.findViewById(R.id.tor_network_provide_a_bridge_summary);
+ if (provideABridgeSummary == null) {
+ Log.i(LOGTAG, "provideABridgeSummary is null");
+ return;
+ }
+
+ Preference bridgesTypePref = findPreference(PREFS_BRIDGES_TYPE);
+ if (bridgesTypePref == null) {
+ return;
+ }
+
+ SharedPreferences sharedPrefs = bridgesTypePref.getSharedPreferences();
+ String provideBridges = sharedPrefs.getString(PREFS_BRIDGES_PROVIDE, null);
+ if (provideBridges != null) {
+ if (provideBridges.indexOf("\n") != -1) {
+ provideABridgeSummary.setText(R.string.pref_tor_network_using_multiple_provided_bridges);
+ } else {
+ String summary = getString(R.string.pref_tor_network_using_a_provided_bridge, provideBridges);
+ provideABridgeSummary.setText(summary);
+ }
+ }
+
+ final String configuredBridgeType = getBridges(bridgesTypePref.getSharedPreferences(), PREFS_BRIDGES_TYPE);
+ if (configuredBridgeType == null) {
+ return;
+ }
+
+ int buttonId = -1;
+ // Note: Keep these synchronized with the layout xml file.
+ switch (configuredBridgeType) {
+ case "obfs4":
+ buttonId = R.id.radio_pref_bridges_obfs4;
+ break;
+ case "meek":
+ buttonId = R.id.radio_pref_bridges_meek_azure;
+ break;
+ case "obfs3":
+ buttonId = R.id.radio_pref_bridges_obfs3;
+ break;
+ }
+
+ if (buttonId != -1) {
+ group.check(buttonId);
+ // If a bridge is selected, then make the list visible
+ group.setVisibility(View.VISIBLE);
+ }
+ }
+
+ @Override
+ public void onChildViewRemoved(View parent, View child) {
+ }
+ });
+
+ }
+
+ // Save the checked RadioButton in the SharedPreferences
+ private boolean saveCurrentCheckedRadioButton() {
+ ListView lv = getListView(getView());
+ if (lv == null) {
+ Log.w(LOGTAG, "ListView is null");
+ return false;
+ }
+
+ RadioGroup group = getBridgeTypeRadioGroup();
+ if (group == null) {
+ Log.w(LOGTAG, "RadioGroup is null");
+ return false;
+ }
+
+ int checkedId = group.getCheckedRadioButtonId();
+ RadioButton selectedBridgeType = lv.findViewById(checkedId);
+ if (selectedBridgeType == null) {
+ Log.w(LOGTAG, "RadioButton is null");
+ return false;
+ }
+
+ String bridgesType = selectedBridgeType.getText().toString();
+ if (bridgesType == null) {
+ // We don't know with which bridgesType this Id is associated
+ Log.w(LOGTAG, "RadioButton has null text");
+ return false;
+ }
+
+ // Currently obfs4 is the recommended pluggable transport. As a result,
+ // the text contains " (recommended)". This won't be expected elsewhere,
+ // so replace the string with only the pluggable transport name.
+ // This will need updating when another transport is "recommended".
+ //
+ // Similarly, if meek-azure is chosen, substitute it with "meek" (Orbot
+ // only handles these keywords specially if they are less than 5 characters).
+ if (bridgesType.contains("obfs4")) {
+ bridgesType = "obfs4";
+ } else if (bridgesType.contains("meek-azure")) {
+ bridgesType = "meek";
+ }
+
+ Preference bridgesTypePref = findPreference(PREFS_BRIDGES_TYPE);
+ if (bridgesTypePref == null) {
+ Log.w(LOGTAG, PREFS_BRIDGES_TYPE + " preference not found");
+ disableBridges(this);
+ return false;
+ }
+
+ if (!setBridges(bridgesTypePref.getEditor(), bridgesType, bridgesType)) {
+ Log.w(LOGTAG, "Saving Bridge preference failed.");
+ disableBridges(this);
+ return false;
+ }
+
+ return true;
+ }
+
+ // Handle onSaveState when the user presses Back. Save the selected
+ // built-in bridge type.
+ @Override
+ public void onSaveState() {
+ saveCurrentCheckedRadioButton();
+ }
+
+ // Find the RadioGroup within the View hierarchy now.
+ private RadioGroup getBridgeTypeRadioGroup() {
+ ListView lv = getListView(getView());
+ if (lv == null) {
+ Log.w(LOGTAG, "ListView is null");
+ return null;
+ }
+ ViewParent listViewParent = lv.getParent();
+ // If the parent of this ListView isn't a View, then
+ // the RadioGroup doesn't exist
+ if (!(listViewParent instanceof View)) {
+ Log.w(LOGTAG, "ListView's parent isn't a View. Failing");
+ return null;
+ }
+ View lvParent = (View) listViewParent;
+ // Find the RadioGroup with this View hierarchy.
+ return (RadioGroup) lvParent.findViewById(R.id.pref_radio_group_builtin_bridges_type);
+ }
+ }
+
+ // Fragment implementing the screen for providing a Bridge
+ public static class TorNetworkBridgeProvidePreference extends TorNetworkPreferenceFragment {
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ addPreferencesFromResource(R.xml.preferences_tor_network_provide_bridge);
+ }
+
+ // If there is a provided bridge saved in the preference,
+ // then fill-in the text field with that value.
+ private void setBridgeProvideText(View parent) {
+ final View provideBridge1 = parent.findViewById(R.id.tor_network_provide_bridge1);
+ final View provideBridge2 = parent.findViewById(R.id.tor_network_provide_bridge2);
+ final View provideBridge3 = parent.findViewById(R.id.tor_network_provide_bridge3);
+
+ EditText provideBridge1ET = null;
+ EditText provideBridge2ET = null;
+ EditText provideBridge3ET = null;
+
+ if (provideBridge1 != null) {
+ if (provideBridge1 instanceof EditText) {
+ provideBridge1ET = (EditText) provideBridge1;
+ }
+ }
+
+ if (provideBridge2 != null) {
+ if (provideBridge2 instanceof EditText) {
+ provideBridge2ET = (EditText) provideBridge2;
+ }
+ }
+
+ if (provideBridge3 != null) {
+ if (provideBridge3 instanceof EditText) {
+ provideBridge3ET = (EditText) provideBridge3;
+ }
+ }
+
+ Preference bridgesProvide = findPreference(PREFS_BRIDGES_PROVIDE);
+ if (bridgesProvide != null) {
+ Log.i(LOGTAG, "setBridgeProvideText: bridgesProvide isn't null");
+ String bridgesLines = getBridges(bridgesProvide.getSharedPreferences(), PREFS_BRIDGES_PROVIDE);
+ if (bridgesLines != null) {
+ Log.i(LOGTAG, "setBridgeProvideText: bridgesLines isn't null");
+ if (bridgesLines.contains("\n")) {
+ String[] lines = bridgesLines.split("\n");
+ if (provideBridge1ET != null && lines.length >= 1) {
+ provideBridge1ET.setText(lines[0]);
+ }
+ if (provideBridge2ET != null && lines.length >= 2) {
+ provideBridge2ET.setText(lines[1]);
+ }
+ if (provideBridge3ET != null && lines.length >= 3) {
+ provideBridge3ET.setText(lines[2]);
+ }
+ } else {
+ // Simply set the single line as the text field input if the text field exists.
+ if (provideBridge1ET != null) {
+ provideBridge1ET.setText(bridgesLines);
+ }
+ }
+ }
+ }
+ }
+
+ // See explanation of TorNetworkBridgesEnabledPreference.onViewCreated()
+ @Override
+ public void onViewCreated(View view, Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ setTitle(R.string.pref_tor_provide_a_bridge_title);
+ ListView lv = getListView(view);
+ if (lv == null) {
+ Log.i(LOGTAG, "onViewCreated: ListView not found");
+ return;
+ }
+ // The ListView is given "focus" by default when the EditText
+ // field is selected, this prevents typing anything into the field.
+ // We set FOCUS_AFTER_DESCENDANTS so the ListView's children are
+ // given focus (and, therefore, the EditText) before it is
+ // given focus.
+ lv.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);
+
+ // The preferences are adding into the ListView hierarchy asynchronously.
+ // We need the onChildViewAdded callback so we can modify the layout after
+ // the child is added.
+ lv.setOnHierarchyChangeListener(new ViewGroup.OnHierarchyChangeListener() {
+ @Override
+ public void onChildViewAdded(View parent, View child) {
+ // If we have a bridge line saved for this pref,
+ // then show the user
+ setBridgeProvideText(parent);
+ }
+
+ @Override
+ public void onChildViewRemoved(View parent, View child) {
+ }
+ });
+ }
+
+ private String getBridgeLineFromView(View provideBridge) {
+ if (provideBridge != null) {
+ if (provideBridge instanceof EditText) {
+ Log.i(LOGTAG, "onSaveState: Saving bridge");
+ EditText provideBridgeET = (EditText) provideBridge;
+
+ // Get the bridge line (provided text) from the text
+ // field.
+ String bridgesLine = provideBridgeET.getText().toString();
+ if (bridgesLine != null && !bridgesLine.equals("")) {
+ return bridgesLine;
+ }
+ } else {
+ Log.w(LOGTAG, "onSaveState: provideBridge isn't an EditText");
+ }
+ }
+ return null;
+ }
+
+ // Save EditText field value when the Back button or Up button are pressed.
+ @Override
+ public void onSaveState() {
+ ListView lv = getListView(getView());
+ if (lv == null) {
+ Log.i(LOGTAG, "onSaveState: ListView not found");
+ return;
+ }
+
+ final View provideBridge1 = lv.findViewById(R.id.tor_network_provide_bridge1);
+ final View provideBridge2 = lv.findViewById(R.id.tor_network_provide_bridge2);
+ final View provideBridge3 = lv.findViewById(R.id.tor_network_provide_bridge3);
+
+ String bridgesLines = null;
+ String bridgesLine1 = getBridgeLineFromView(provideBridge1);
+ String bridgesLine2 = getBridgeLineFromView(provideBridge2);
+ String bridgesLine3 = getBridgeLineFromView(provideBridge3);
+
+ if (bridgesLine1 != null) {
+ Log.i(LOGTAG, "bridgesLine1 is not null.");
+ bridgesLines = bridgesLine1;
+ }
+
+ if (bridgesLine2 != null) {
+ // If bridgesLine1 was not null, then append a newline.
+ Log.i(LOGTAG, "bridgesLine2 is not null.");
+ if (bridgesLines != null) {
+ bridgesLines += "\n" + bridgesLine2;
+ } else {
+ bridgesLines = bridgesLine2;
+ }
+ }
+
+ if (bridgesLine3 != null) {
+ // If bridgesLine1 was not null, then append a newline.
+ Log.i(LOGTAG, "bridgesLine3 is not null.");
+ if (bridgesLines != null) {
+ bridgesLines += "\n" + bridgesLine3;
+ } else {
+ bridgesLines = bridgesLine3;
+ }
+ }
+
+ Preference bridgesProvide = findPreference(PREFS_BRIDGES_PROVIDE);
+ if (bridgesProvide == null) {
+ Log.w(LOGTAG, PREFS_BRIDGES_PROVIDE + " preference not found");
+ disableBridges(this);
+ return;
+ }
+
+ if (bridgesLines == null) {
+ Log.i(LOGTAG, "provideBridge is empty. Disabling.");
+ // If provided bridges are null/empty, then only disable all bridges if
+ // the user did not select a built-in bridge
+ String configuredBuiltinBridges = getBridges(bridgesProvide.getSharedPreferences(), PREFS_BRIDGES_TYPE);
+ if (configuredBuiltinBridges == null) {
+ disableBridges(this);
+ }
+ return;
+ }
+
+ // Set the preferences (both our preference and Orbot's preference)
+ Log.w(LOGTAG, "Saving Bridge preference: " + bridgesLines);
+ if (!setBridges(bridgesProvide.getEditor(), null, bridgesLines)) {
+ // TODO inform the user
+ Log.w(LOGTAG, "Saving Bridge preference failed.");
+ disableBridges(this);
+ }
+ }
+ }
+}
1
0
commit 4ce00d04478dc617a994137d6d008eac95a7653b
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Mar 15 21:26:54 2019 +0000
Bump OpenSSL to 1.0.2r
---
projects/openssl/config | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/projects/openssl/config b/projects/openssl/config
index e91e820..ecb6966 100644
--- a/projects/openssl/config
+++ b/projects/openssl/config
@@ -1,5 +1,5 @@
# vim: filetype=yaml sw=2
-version: 1.0.2q
+version: 1.0.2r
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
var:
@@ -26,4 +26,4 @@ input_files:
- name: '[% c("var/compiler") %]'
project: '[% c("var/compiler") %]'
- URL: 'https://www.openssl.org/source/openssl-[% c("version") %].tar.gz'
- sha256sum: 5744cfcbcec2b1b48629f7354203bc1e5e9b5466998bbccc5b5fcde3b18eb684
+ sha256sum: ae51d08bba8a83958e894946f15303ff894d75c2b8bbd44a852b64e3fe11d0d6
1
0

[tor-browser-build/master] Bug 29794 - Update builtin bridges on Android
by gk@torproject.org 15 Mar '19
by gk@torproject.org 15 Mar '19
15 Mar '19
commit a6fedc0228d1c66f067f5dc8454cdc110ed2777d
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Fri Mar 15 16:48:56 2019 +0000
Bug 29794 - Update builtin bridges on Android
---
.../0014-Bug-29794-Update-built-in-bridges.patch | 34 ++++++++++++++++++++++
projects/orbot/config | 1 +
2 files changed, 35 insertions(+)
diff --git a/projects/orbot/0014-Bug-29794-Update-built-in-bridges.patch b/projects/orbot/0014-Bug-29794-Update-built-in-bridges.patch
new file mode 100644
index 0000000..b841723
--- /dev/null
+++ b/projects/orbot/0014-Bug-29794-Update-built-in-bridges.patch
@@ -0,0 +1,34 @@
+From 53a2ebc7fa4ce959203c94c874efc5ee6d070020 Mon Sep 17 00:00:00 2001
+From: Matthew Finkel <Matthew.Finkel(a)gmail.com>
+Date: Fri, 15 Mar 2019 16:47:06 +0000
+Subject: [PATCH] Bug 29794 - Update built-in bridges
+
+---
+ orbotservice/src/main/res/raw/bridges.txt | 16 ++++++++++------
+ 1 file changed, 10 insertions(+), 6 deletions(-)
+
+diff --git a/orbotservice/src/main/res/raw/bridges.txt b/orbotservice/src/main/res/raw/bridges.txt
+index 1e448ea1..61019737 100644
+--- a/orbotservice/src/main/res/raw/bridges.txt
++++ b/orbotservice/src/main/res/raw/bridges.txt
+@@ -1,7 +1,11 @@
+-obfs4 78.215.187.186:45675 AE907EE5FAA5D0D27E0C83EFA6ADF8E79FCC0FF1 cert=/TRjMo+RinKaixARMjMtZZBhystaBe+aDaapPrbiITFtWx3M/AJcvpjHjO54tJqLd1+IWQ iat-mode=0
+-obfs4 107.160.7.24:443 7A0904F6D182B81BEFE0DEDAFEC974494672627B cert=a5/IlZMnDvb8d92LTHMfsBIgL7QlDLPiXiLwe85uedC80mGD0QerygzmsWnMEdwG9ER9Eg iat-mode=0
+-obfs4 79.136.160.201:46501 66AC975BF7CB429D057AE07FC0312C57D61BAEC1 cert=dCtn9Ya8z+R8YQikdWgC3XTAt58z5Apnm95QHrJwnhFSdnphPPEz+NMm6OawWc2srKLjJg iat-mode=0
+-obfs4 94.242.249.2:58809 6AF3024788A7EA8F84E3FA3F60018B62291803E4 cert=X0sDCJLKMM/EISdGDEfGrsks41UYmScjIIXQ9AZgWFVKNKS6klcNEpdF4tNXFz6kIyk4Ug iat-mode=0
+-obfs4 35.203.134.33:2224 15524C683CC872C8C8FB5B779A8D53F54F7ADCD4 cert=bXLTv0Kwt1zgPBoeVF86vC+0tYAHepR7+QMczhhTQw9hpAIhatt/Bpe6rSGY63Zh8aZ+dQ iat-mode=0
+-obfs4 188.166.252.228:9443 595770328CA95E39FF5B81013880B46CA1B29546 cert=3PjhGUq3xWDMrBAzbV1eU4zPSB3GRGBpYdXQEs9hkrwC9RSZdnEe1P+cg7VgLgYTj/2MMg iat-mode=0
++obfs3 169.229.59.74:31493 AF9F66B7B04F8FF6F32D455F05135250A16543C9
++obfs3 169.229.59.75:46328 AF9F66B7B04F8FF6F32D455F05135250A16543C9
++obfs3 109.105.109.163:38980 1E05F577A0EC0213F971D81BF4D86A9E4E8229ED
++obfs3 109.105.109.163:47779 4C331FA9B3D1D6D8FB0D8FBBF0C259C360D97E6A
++obfs4 37.218.240.34:40035 88CD36D45A35271963EF82E511C8827A24730913 cert=eGXYfWODcgqIdPJ+rRupg4GGvVGfh25FWaIXZkit206OSngsp7GAIiGIXOJJROMxEqFKJg iat-mode=1
++obfs4 37.218.245.14:38224 D9A82D2F9C2F65A18407B1D2B764F130847F8B5D cert=bjRaMrr1BRiAW8IE9U5z27fQaYgOhX1UCmOpg2pFpoMvo6ZgQMzLsaTzzQNTlm7hNcb+Sg iat-mode=0
++obfs4 85.31.186.98:443 011F2599C0E9B27EE74B353155E244813763C3E5 cert=ayq0XzCwhpdysn5o0EyDUbmSOx3X/oTEbzDMvczHOdBJKlvIdHHLJGkZARtT4dcBFArPPg iat-mode=0
++obfs4 85.31.186.26:443 91A6354697E6B02A386312F68D82CF86824D3606 cert=PBwr+S8JTVZo6MPdHnkTwXJPILWADLqfMGoVvhZClMq/Urndyd42BwX9YFJHZnBB3H0XCw iat-mode=0
++obfs4 216.252.162.21:46089 0DB8799466902192B6C7576D58D4F7F714EC87C1 cert=XPUwcQPxEXExHfJYX58gZXN7mYpos7VNAHbkgERNFg+FCVNzuYo1Wp+uMscl3aR9hO2DRQ iat-mode=0
++obfs4 144.217.20.138:80 FB70B257C162BF1038CA669D568D76F5B7F0BABB cert=vYIV5MgrghGQvZPIi1tJwnzorMgqgmlKaB77Y3Z9Q/v94wZBOAXkW+fdx4aSxLVnKO+xNw iat-mode=0
+ meek_lite 0.0.2.0:2 97700DFE9F483596DDA6264C4D7DF7641E1E39CE url=https://meek.azureedge.net/ front=ajax.aspnetcdn.com
+--
+2.11.0
+
diff --git a/projects/orbot/config b/projects/orbot/config
index 5ad5bfc..7095537 100644
--- a/projects/orbot/config
+++ b/projects/orbot/config
@@ -46,6 +46,7 @@ input_files:
- filename: 0011-Bug-28051-Tell-Proguard-it-should-keep-an-unused-met.patch
- filename: 0012-Bug-28051-Escape-the-apostrophe-correctly.patch
- filename: 0013-Bug-28051-Add-a-notification-compatibility-class.patch
+ - filename: 0014-Bug-29794-Update-built-in-bridges.patch
- filename: set_gradle_repo_to_local.patch
- filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]'
name: gradle-dependencies
1
0
commit 498d64784659082877bc83ecca24fbf8d137125f
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Mar 15 16:18:40 2019 +0000
Release preparations for 2.1.5
---
src/CHANGELOG | 9 +++++++++
src/install.rdf | 2 +-
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/src/CHANGELOG b/src/CHANGELOG
index 74ac0cd0..a138a9aa 100644
--- a/src/CHANGELOG
+++ b/src/CHANGELOG
@@ -1,3 +1,12 @@
+2.1.5
+ * Bug 25658: Replace security slider with security level UI
+ * Bug 28628: Change onboarding Security panel to open new Security Level panel
+ * Bug 29440: Update about:tor when Tor Browser is updated
+ * Bug 27478: Improved Torbutton icons for dark theme
+ * Bug 29021: Tell NoScript it is running within Tor Browser
+ * Bug 29239: Don't ship the Torbutton .xpi on mobile
+ * Translations update
+
2.1.4
* Bug 25702: Update Tor Browser icon to follow design guidelines
* Bug 21805: Add click-to-play button for WebGL
diff --git a/src/install.rdf b/src/install.rdf
index e140a9bb..738bbd81 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>2.1.4</em:version>
+ <em:version>2.1.5</em:version>
<em:multiprocessCompatible>true</em:multiprocessCompatible>
<em:homepageURL>https://www.torproject.org/projects/torbrowser.html.en</em:homepageURL>
<em:iconURL>chrome://torbutton/skin/tor.png</em:iconURL>
1
0
commit 465550f62331dea670debab50322521dac5fe460
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Mar 15 16:06:24 2019 +0000
Translations update
---
src/chrome/locale/ar/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/ar/aboutTor.dtd | 2 ++
src/chrome/locale/ar/browserOnboarding.properties | 2 +-
src/chrome/locale/bn-BD/torbutton.dtd | 4 +++
src/chrome/locale/ca/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/ca/aboutTor.dtd | 2 ++
src/chrome/locale/ca/browserOnboarding.properties | 2 +-
src/chrome/locale/ca/torbutton.properties | 2 +-
src/chrome/locale/cs/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/cs/aboutTor.dtd | 2 ++
src/chrome/locale/cs/browserOnboarding.properties | 2 +-
src/chrome/locale/da/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/da/aboutTor.dtd | 2 ++
src/chrome/locale/da/browserOnboarding.properties | 2 +-
src/chrome/locale/de/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/de/aboutTor.dtd | 2 ++
src/chrome/locale/de/browserOnboarding.properties | 2 +-
src/chrome/locale/de/torbutton.dtd | 3 ++-
src/chrome/locale/el/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/el/aboutTor.dtd | 2 ++
src/chrome/locale/el/browserOnboarding.properties | 2 +-
src/chrome/locale/el/torbutton.properties | 4 +--
src/chrome/locale/es/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/es/aboutTor.dtd | 2 ++
src/chrome/locale/es/browserOnboarding.properties | 2 +-
src/chrome/locale/eu/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/eu/aboutTor.dtd | 2 ++
src/chrome/locale/eu/browserOnboarding.properties | 2 +-
src/chrome/locale/fa/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/fa/aboutTor.dtd | 2 ++
src/chrome/locale/fa/browserOnboarding.properties | 2 +-
src/chrome/locale/fa/torbutton.properties | 2 +-
src/chrome/locale/fr/aboutDialog.dtd | 4 +--
src/chrome/locale/fr/aboutTBUpdate.dtd | 12 ++++-----
src/chrome/locale/fr/aboutTor.dtd | 8 +++---
src/chrome/locale/fr/brand.dtd | 8 +++---
src/chrome/locale/fr/brand.properties | 8 +++---
src/chrome/locale/fr/browserOnboarding.properties | 14 +++++-----
src/chrome/locale/fr/torbutton.dtd | 8 +++---
src/chrome/locale/fr/torbutton.properties | 18 ++++++-------
src/chrome/locale/ga/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/ga/aboutTor.dtd | 2 ++
src/chrome/locale/ga/browserOnboarding.properties | 2 +-
src/chrome/locale/he/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/he/aboutTor.dtd | 2 ++
src/chrome/locale/he/browserOnboarding.properties | 2 +-
src/chrome/locale/hu/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/hu/aboutTor.dtd | 2 ++
src/chrome/locale/hu/browserOnboarding.properties | 2 +-
src/chrome/locale/id/aboutTBUpdate.dtd | 12 ++++-----
src/chrome/locale/id/aboutTor.dtd | 2 ++
src/chrome/locale/id/brand.dtd | 6 ++---
src/chrome/locale/id/brand.properties | 6 ++---
src/chrome/locale/id/browserOnboarding.properties | 12 ++++-----
src/chrome/locale/id/torbutton.dtd | 12 ++++-----
src/chrome/locale/id/torbutton.properties | 6 ++---
src/chrome/locale/is/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/is/aboutTor.dtd | 4 ++-
src/chrome/locale/is/browserOnboarding.properties | 12 ++++-----
src/chrome/locale/is/torbutton.dtd | 2 +-
src/chrome/locale/it/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/it/aboutTor.dtd | 2 ++
src/chrome/locale/it/browserOnboarding.properties | 2 +-
src/chrome/locale/ja/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/ja/aboutTor.dtd | 2 ++
src/chrome/locale/ja/browserOnboarding.properties | 2 +-
src/chrome/locale/ka/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/ka/aboutTor.dtd | 2 ++
src/chrome/locale/ka/browserOnboarding.properties | 2 +-
src/chrome/locale/ka/torbutton.properties | 2 +-
src/chrome/locale/ko/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/ko/aboutTor.dtd | 2 ++
src/chrome/locale/ko/browserOnboarding.properties | 2 +-
src/chrome/locale/nb/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/nb/aboutTor.dtd | 2 ++
src/chrome/locale/nb/browserOnboarding.properties | 2 +-
src/chrome/locale/nl/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/nl/aboutTor.dtd | 8 +++---
src/chrome/locale/nl/browserOnboarding.properties | 30 +++++++++++-----------
src/chrome/locale/nl/torbutton.properties | 4 +--
src/chrome/locale/pl/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/pl/aboutTor.dtd | 2 ++
src/chrome/locale/pl/browserOnboarding.properties | 2 +-
src/chrome/locale/pl/torbutton.properties | 2 +-
src/chrome/locale/pt-BR/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/pt-BR/aboutTor.dtd | 2 ++
.../locale/pt-BR/browserOnboarding.properties | 2 +-
src/chrome/locale/ru/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/ru/aboutTor.dtd | 2 ++
src/chrome/locale/ru/browserOnboarding.properties | 2 +-
src/chrome/locale/sv/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/sv/aboutTor.dtd | 2 ++
src/chrome/locale/sv/browserOnboarding.properties | 2 +-
src/chrome/locale/sv/torbutton.properties | 2 +-
src/chrome/locale/tr/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/tr/aboutTor.dtd | 2 ++
src/chrome/locale/tr/browserOnboarding.properties | 4 +--
src/chrome/locale/tr/torbutton.properties | 2 +-
src/chrome/locale/vi/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/vi/aboutTor.dtd | 2 ++
src/chrome/locale/vi/browserOnboarding.properties | 2 +-
src/chrome/locale/zh-CN/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/zh-CN/aboutTor.dtd | 2 ++
.../locale/zh-CN/browserOnboarding.properties | 2 +-
src/chrome/locale/zh-TW/aboutTBUpdate.dtd | 10 +++-----
src/chrome/locale/zh-TW/aboutTor.dtd | 2 ++
.../locale/zh-TW/browserOnboarding.properties | 2 +-
107 files changed, 298 insertions(+), 293 deletions(-)
diff --git a/src/chrome/locale/ar/aboutTBUpdate.dtd b/src/chrome/locale/ar/aboutTBUpdate.dtd
index 0c25a117..873d24c7 100644
--- a/src/chrome/locale/ar/aboutTBUpdate.dtd
+++ b/src/chrome/locale/ar/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "تحديث متصفح تور">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "تم تحديث متصفح تور.">
<!ENTITY aboutTBUpdate.linkPrefix "للحصول على أحدث المعلومات حول هذا الإصدار،">
<!ENTITY aboutTBUpdate.linkLabel "زُر موقعنا">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "سجل التغييرات:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "تصميم جديد لطريقة عرض الدوائر">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "عرض دوائر تور نقل إلى مكان آخر وخضع للتحسين. انقر على زر «هوية الموقع» (تجده يمين شريط العنوانين) لترى العرض الجديد.">
-<!ENTITY aboutTBUpdate.learnMore "إعرف/ي أكثر ">
+<!ENTITY aboutTBUpdate.version "النسخة">
+<!ENTITY aboutTBUpdate.releaseDate "Release Date">
+<!ENTITY aboutTBUpdate.releaseNotes "ملاحظات الإصدار">
diff --git a/src/chrome/locale/ar/aboutTor.dtd b/src/chrome/locale/ar/aboutTor.dtd
index 878d860e..2627c9b9 100644
--- a/src/chrome/locale/ar/aboutTor.dtd
+++ b/src/chrome/locale/ar/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "عن تور">
+<!ENTITY aboutTor.viewChangelog.label "View Changelog">
+
<!ENTITY aboutTor.ready.label "تصفح بهوية خفية">
<!ENTITY aboutTor.ready2.label "أنت جاهز الآن لتجربة التصفح الأكثر خصوصية في العالم.">
<!ENTITY aboutTor.failure.label "حدث خطأ ما!">
diff --git a/src/chrome/locale/ar/browserOnboarding.properties b/src/chrome/locale/ar/browserOnboarding.properties
index 776b619e..b063dd3a 100644
--- a/src/chrome/locale/ar/browserOnboarding.properties
+++ b/src/chrome/locale/ar/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=رؤية المسار الخاص بي
onboarding.tour-tor-security=الأمان
onboarding.tour-tor-security.title=اختر مدى خبرتك
onboarding.tour-tor-security.description=نوفر لك أيضا إعدادات إضافية لرفع مستوى أمان المتصفح. تسمح لك إعدادات الأمان لدينا بحظر العناصر التي يمكن استخدامها لمهاجمة جهاز الكمبيوتر الخاص بك. انقر أدناه لمعرفة ما تفعله الخيارات المختلفة.
-onboarding.tour-tor-security.button=مراجعة الاعدادات
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=نصائح التجربة
onboarding.tour-tor-expect-differences.title=توقع بعض التغيرات
diff --git a/src/chrome/locale/bn-BD/torbutton.dtd b/src/chrome/locale/bn-BD/torbutton.dtd
index 449a49e3..201f3111 100644
--- a/src/chrome/locale/bn-BD/torbutton.dtd
+++ b/src/chrome/locale/bn-BD/torbutton.dtd
@@ -2,6 +2,8 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "এই সাইটের জন্য নতুন টর সার্কিট">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
+<!ENTITY torbutton.context_menu.preferences "নিরাপত্তা বিন্যাস…">
+<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "টর নেটওয়ার্ক সেটিংস ...">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "টর ব্রাউজার আপডেটের জন্য চেক করুন ...">
@@ -10,6 +12,8 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Torbutton আরম্ভ করার জন্য ক্লিক করুন">
<!ENTITY torbutton.prefs.security_settings "টর ব্রাউজার নিরাপত্তা সেটিংস">
+<!ENTITY torbutton.prefs.restore_defaults "পূর্বনির্ধারন পুনরুধার">
+<!ENTITY torbutton.prefs.custom_warning "আপনার কাস্টম ব্রাউজারের পছন্দগুলির কারণে অস্বাভাবিক নিরাপত্তা সেটিংস দেখা দিয়েছে নিরাপত্তা এবং গোপনীয়তার কারণে, আমরা আপনাকে ডিফল্ট নিরাপত্তা স্তরগুলির একটি চয়ন করার সুপারিশ করি।">
<!ENTITY torbutton.cookiedialog.title "কুকি প্রোটেকশনগুলি পরিচালনা করুন">
<!ENTITY torbutton.cookiedialog.lockCol "রক্ষিত">
<!ENTITY torbutton.cookiedialog.domainCol "নিমন্ত্রণকর্তা">
diff --git a/src/chrome/locale/ca/aboutTBUpdate.dtd b/src/chrome/locale/ca/aboutTBUpdate.dtd
index 5daa4dc0..a4ed2fde 100644
--- a/src/chrome/locale/ca/aboutTBUpdate.dtd
+++ b/src/chrome/locale/ca/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Actualització del navegador Tor">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "El navegador Tor s'ha actualitzat. ">
<!ENTITY aboutTBUpdate.linkPrefix "Per la informació més actualitzada sobre aquesta versió,">
<!ENTITY aboutTBUpdate.linkLabel "visiteu el lloc web">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "Registre de canvis:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "Nova pantalla de circuits redissenyats">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "La pantalla del circuit de Tor s'ha reubicat i millorat! Feu clic al botó de Site Identity (situat a la part esquerra de la barra d'URL) per veure la nova pantalla del circuit.">
-<!ENTITY aboutTBUpdate.learnMore "Aprèn més">
+<!ENTITY aboutTBUpdate.version "Versió">
+<!ENTITY aboutTBUpdate.releaseDate "Release Date">
+<!ENTITY aboutTBUpdate.releaseNotes "Notes de la versió">
diff --git a/src/chrome/locale/ca/aboutTor.dtd b/src/chrome/locale/ca/aboutTor.dtd
index ca8aee1c..1772b0ba 100644
--- a/src/chrome/locale/ca/aboutTor.dtd
+++ b/src/chrome/locale/ca/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "Quant a Tor">
+<!ENTITY aboutTor.viewChangelog.label "View Changelog">
+
<!ENTITY aboutTor.ready.label "Exploreu. Privadament.">
<!ENTITY aboutTor.ready2.label "Estàs preparat per a l'experiència de navegació més privada del món.">
<!ENTITY aboutTor.failure.label "Hi ha algun error.">
diff --git a/src/chrome/locale/ca/browserOnboarding.properties b/src/chrome/locale/ca/browserOnboarding.properties
index f1cbea63..9374fc34 100644
--- a/src/chrome/locale/ca/browserOnboarding.properties
+++ b/src/chrome/locale/ca/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=Veure el meu camí
onboarding.tour-tor-security=Seguretat
onboarding.tour-tor-security.title=Tria la teva experiència.
onboarding.tour-tor-security.description=També li oferim opcions de configuració addicionals per eliminar la seguretat del vostre navegador. La nostra configuració de seguretat us permet bloquejar els elements que es podrien utilitzar per atacar l'ordinador. Feu clic a sota per veure què fan les diferents opcions.
-onboarding.tour-tor-security.button=Opcions de revisió
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=Consells sobre experiències
onboarding.tour-tor-expect-differences.title=Espereu algunes diferències.
diff --git a/src/chrome/locale/ca/torbutton.properties b/src/chrome/locale/ca/torbutton.properties
index e8151312..791c0bc9 100644
--- a/src/chrome/locale/ca/torbutton.properties
+++ b/src/chrome/locale/ca/torbutton.properties
@@ -53,7 +53,7 @@ profileMigrationFailed=La migració del vostre perfil %S ha fallat.\nEs fara ser
# "Downloading update" string for the hamburger menu (see #28885).
# This string is kept here for ease of translation.
# LOCALIZATION NOTE: %S is the application name.
-updateDownloadingPanelUILabel=Downloading %S update
+updateDownloadingPanelUILabel=S'està baixant l'actualització %S
# .Onion Page Info prompt. Strings are kept here for ease of translation.
pageInfo_OnionEncryptionWithBitsAndProtocol=Connexió xifrada (Onion Service, %1$S, claus de %2$S bits, %3$S)
diff --git a/src/chrome/locale/cs/aboutTBUpdate.dtd b/src/chrome/locale/cs/aboutTBUpdate.dtd
index 5c10f2cb..9e5ea44a 100644
--- a/src/chrome/locale/cs/aboutTBUpdate.dtd
+++ b/src/chrome/locale/cs/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Aktualizace prohlížeče Tor">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "Prohlížeč Tor byl aktualizován.">
<!ENTITY aboutTBUpdate.linkPrefix "Informace o tomto vydání najdete na ">
<!ENTITY aboutTBUpdate.linkLabel "naši webové stránce">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "Přehled změn:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "Nové zobrazení okruhů">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "Vylepšili jsme zobrazení okruhů Toru. Pro jeho otevření klepněte na tlačítko „Identita&160#stránky“ umístěné v levé části adresního řádku.">
-<!ENTITY aboutTBUpdate.learnMore "Zjistit více">
+<!ENTITY aboutTBUpdate.version "Verze">
+<!ENTITY aboutTBUpdate.releaseDate "Release Date">
+<!ENTITY aboutTBUpdate.releaseNotes "Poznámky k verzi">
diff --git a/src/chrome/locale/cs/aboutTor.dtd b/src/chrome/locale/cs/aboutTor.dtd
index 2c29d50d..78dfd349 100644
--- a/src/chrome/locale/cs/aboutTor.dtd
+++ b/src/chrome/locale/cs/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "O Toru">
+<!ENTITY aboutTor.viewChangelog.label "View Changelog">
+
<!ENTITY aboutTor.ready.label "Prohlížejte v soukromí.">
<!ENTITY aboutTor.ready2.label "Vše je připraveno pro maximální soukromí Vašeho prohlížení.">
<!ENTITY aboutTor.failure.label "Něco se pokazilo!">
diff --git a/src/chrome/locale/cs/browserOnboarding.properties b/src/chrome/locale/cs/browserOnboarding.properties
index 24234cb2..c90feb07 100644
--- a/src/chrome/locale/cs/browserOnboarding.properties
+++ b/src/chrome/locale/cs/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=Moje cesta
onboarding.tour-tor-security=Zabezpečení
onboarding.tour-tor-security.title=Určujte svůj prožitek.
onboarding.tour-tor-security.description=K dispozici máte rozšířená nastavení pro další zvýšení zabezpečení, např. blokování všech prvků, které mohou být potenciálně použity k útoku na váš počítač. Pro zobrazení různých možností a jejich fungování klepněte níže.
-onboarding.tour-tor-security.button=Zkontrolovat nastavení
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=Tipy
onboarding.tour-tor-expect-differences.title=Očekávejte rozdíly.
diff --git a/src/chrome/locale/da/aboutTBUpdate.dtd b/src/chrome/locale/da/aboutTBUpdate.dtd
index 84c053af..c0d74bb2 100644
--- a/src/chrome/locale/da/aboutTBUpdate.dtd
+++ b/src/chrome/locale/da/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Opdateringer til Tor Browser">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "Tor Browser er blevet opdateret.">
<!ENTITY aboutTBUpdate.linkPrefix "For den mest aktuelle information om denne udgivelse,">
<!ENTITY aboutTBUpdate.linkLabel "Besøg vores webside">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "Ændringslog:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "Nyt, redesignet kredsløb-display">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "Tors kredsløb-display er blev flyttet og forbedret! Klik på stedets identitet-knap (findes på venstre side af URL-linjen) for at se det nye kredskøb-display.">
-<!ENTITY aboutTBUpdate.learnMore "Læs mere">
+<!ENTITY aboutTBUpdate.version "Version">
+<!ENTITY aboutTBUpdate.releaseDate "Release Date">
+<!ENTITY aboutTBUpdate.releaseNotes "Release Notes">
diff --git a/src/chrome/locale/da/aboutTor.dtd b/src/chrome/locale/da/aboutTor.dtd
index 902a84fa..18c0275c 100644
--- a/src/chrome/locale/da/aboutTor.dtd
+++ b/src/chrome/locale/da/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "Om Tor">
+<!ENTITY aboutTor.viewChangelog.label "View Changelog">
+
<!ENTITY aboutTor.ready.label "Udforsk. Privat.">
<!ENTITY aboutTor.ready2.label "Du er klar til verdenens mest private browseroplevelse.">
<!ENTITY aboutTor.failure.label "Noget gik galt!">
diff --git a/src/chrome/locale/da/browserOnboarding.properties b/src/chrome/locale/da/browserOnboarding.properties
index dd257df4..717dc4b2 100644
--- a/src/chrome/locale/da/browserOnboarding.properties
+++ b/src/chrome/locale/da/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=Se min sti
onboarding.tour-tor-security=Sikkerhed
onboarding.tour-tor-security.title=Vælg din oplevelse.
onboarding.tour-tor-security.description=Vi giver dig også yderligere sikkerhedsindstillinger for at øge din browsersikkerhed. Vores sikkerhedsindstillinger giver dig mulighed for at blokere elementer der kan bruges til at angribe din computer. Klik nedenfor for at se hvad de forskellige valgmuligheder gør.
-onboarding.tour-tor-security.button=Gennemgå indstillinger
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=Oplevelesestips
onboarding.tour-tor-expect-differences.title=Forvent nogen forskelle.
diff --git a/src/chrome/locale/de/aboutTBUpdate.dtd b/src/chrome/locale/de/aboutTBUpdate.dtd
index 9b0d0bfa..cc1ab47c 100644
--- a/src/chrome/locale/de/aboutTBUpdate.dtd
+++ b/src/chrome/locale/de/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Tor Browser Update">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "Tor Browser wurde aktualisiert.">
<!ENTITY aboutTBUpdate.linkPrefix "Für die aktuellsten Informationen zu diesem Release, ">
<!ENTITY aboutTBUpdate.linkLabel "besuche unsere Website">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "Changelog:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "Neu, Überarbeitete Circuit-Anzeige">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "Die Tor-Circuit-Anzeige wurde verschoben und verbessert! Klicke auf den Knopf Site Identity (links in der URL-Leiste), um die neue Circuit-Anzeige zu sehen.">
-<!ENTITY aboutTBUpdate.learnMore "Mehr erfahren">
+<!ENTITY aboutTBUpdate.version "Version">
+<!ENTITY aboutTBUpdate.releaseDate "Erscheinungsdatum">
+<!ENTITY aboutTBUpdate.releaseNotes "Versionshinweise">
diff --git a/src/chrome/locale/de/aboutTor.dtd b/src/chrome/locale/de/aboutTor.dtd
index 6bd2e164..c4681b7b 100644
--- a/src/chrome/locale/de/aboutTor.dtd
+++ b/src/chrome/locale/de/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "Über Tor">
+<!ENTITY aboutTor.viewChangelog.label "View Changelog">
+
<!ENTITY aboutTor.ready.label "Entdecken. Privat.">
<!ENTITY aboutTor.ready2.label "Du bist bereit für das privateste Browsing-Erlebnis der Welt.">
<!ENTITY aboutTor.failure.label "Irgend etwas lief schief!">
diff --git a/src/chrome/locale/de/browserOnboarding.properties b/src/chrome/locale/de/browserOnboarding.properties
index d57b3f15..c3856b8d 100644
--- a/src/chrome/locale/de/browserOnboarding.properties
+++ b/src/chrome/locale/de/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=Meinen Pfad sehen
onboarding.tour-tor-security=Sicherheit
onboarding.tour-tor-security.title=Wähle deine Erfahrung
onboarding.tour-tor-security.description=Wir bieten zusätzliche Einstellungen, um die Sicherheit zu erhöhen. In den Sicherheitseinstellungen können verschiedene Objekte und Funktionen deaktiviert werden, welche die Sicherheit des Computers gefährden können. Klicken Sie, um zu erfahren, was die verschiedenen Optionen bewirken.
-onboarding.tour-tor-security.button=Einstellungen überprüfen
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=Erfahrungswerte
onboarding.tour-tor-expect-differences.title=Erwarten Sie einige Unterschiede.
diff --git a/src/chrome/locale/de/torbutton.dtd b/src/chrome/locale/de/torbutton.dtd
index 1846ff51..c3d815f0 100644
--- a/src/chrome/locale/de/torbutton.dtd
+++ b/src/chrome/locale/de/torbutton.dtd
@@ -23,7 +23,8 @@
<!ENTITY torbutton.cookiedialog.doNotSaveAllCookies "Neue Cookies nicht schützen">
<!ENTITY torbutton.prefs.sec_caption "Sicherheitsstufe">
<!ENTITY torbutton.prefs.sec_caption_tooltip "Mit dem Sicherheitsschieberegler kannst du bestimmte Browserfunktionen, die deinen Browser für mögliche Attacken anfälliger machen, deaktivieren.">
-<!ENTITY torbutton.prefs.sec_standard_label "Standard">
+<!ENTITY torbutton.prefs.sec_standard_label "Standard
+">
<!ENTITY torbutton.prefs.sec_standard_description "Alle Tor Browser und Webseiten Funktionen sind aktiviert.">
<!ENTITY torbutton.prefs.sec_safer_label "Sicherer">
<!ENTITY torbutton.prefs.sec_safer_description "Deaktiviert Webseiten-Funktionen, die oft gefährlich sind. Sorgt dafür, dass manche Seiten nicht mehr so gut funktionieren">
diff --git a/src/chrome/locale/el/aboutTBUpdate.dtd b/src/chrome/locale/el/aboutTBUpdate.dtd
index 085896d0..9a89e674 100644
--- a/src/chrome/locale/el/aboutTBUpdate.dtd
+++ b/src/chrome/locale/el/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Αναβάθμιση του Tor Browser">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "Ο Tor Browser αναβαθμίστηκε.">
<!ENTITY aboutTBUpdate.linkPrefix "Για τις πιο πρόσφατες πληροφορίες για αυτή την έκδοση,">
<!ENTITY aboutTBUpdate.linkLabel "επισκεφθείτε την ιστοσελίδα μας">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "Αλλαγές:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "Νέα, επανασχεδιασμένη παρουσίαση κυκλώματος">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "Το κύκλωμα του Tor έχει αλλάξει τοποθεσία και βελτιώθηκε! Κάντε κλικ στη σελίδα Κουμπί ταυτότητας (βρίσκεται στην αριστερή πλευρά της γραμμής διεύθυνσης) για να δείτε την καινούρια παρουσίαση κυκλώματος.">
-<!ENTITY aboutTBUpdate.learnMore "Μάθετε περισσότερα">
+<!ENTITY aboutTBUpdate.version "Έκδοση">
+<!ENTITY aboutTBUpdate.releaseDate "Release Date">
+<!ENTITY aboutTBUpdate.releaseNotes "Release Notes">
diff --git a/src/chrome/locale/el/aboutTor.dtd b/src/chrome/locale/el/aboutTor.dtd
index dbddba88..dc6c1ee0 100644
--- a/src/chrome/locale/el/aboutTor.dtd
+++ b/src/chrome/locale/el/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "Σχετικά με το Tor">
+<!ENTITY aboutTor.viewChangelog.label "View Changelog">
+
<!ENTITY aboutTor.ready.label "Εξερευνήστε. Με ιδιωτικότητα.">
<!ENTITY aboutTor.ready2.label "Είστε έτοιμος για την πιο ιδιωτική εμπειρία περιήγησης.">
<!ENTITY aboutTor.failure.label "Κάτι πήγε στραβά!">
diff --git a/src/chrome/locale/el/browserOnboarding.properties b/src/chrome/locale/el/browserOnboarding.properties
index 680a904d..eaf94aa5 100644
--- a/src/chrome/locale/el/browserOnboarding.properties
+++ b/src/chrome/locale/el/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=Βλέπω το μονοπάτι μο
onboarding.tour-tor-security=Ασφάλεια
onboarding.tour-tor-security.title=Επιλέξτε την εμπειρία σας.
onboarding.tour-tor-security.description=Μπορούμε να προσφέρουμε επιπρόσθετες ρυθμίσεις για να ενισχύσουμε την ασφάλεια του περιηγητή σας. Οι Ρυθμίσεις Ασφαλείας σας επιτρέπουν να μπλοκάρεετε στοιχεία που θα μπορούσαν να χρησιμοποιηθούν για επιθέσεις στον υπολογιστή σας. Επίλεξτε παρακάτω για να δείτε τι κάνουν οι διαφορετικές ρυθμίσεις.
-onboarding.tour-tor-security.button=Έλεγχος Ρυθμίσεων
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=Προτάσεις εμπειρίας
onboarding.tour-tor-expect-differences.title=Κάποιες διαφορές είναι αναμενόμενες.
diff --git a/src/chrome/locale/el/torbutton.properties b/src/chrome/locale/el/torbutton.properties
index 36a18f03..d6c493ed 100644
--- a/src/chrome/locale/el/torbutton.properties
+++ b/src/chrome/locale/el/torbutton.properties
@@ -1,4 +1,4 @@
-torbutton.circuit_display.internet = Ίντερνετ
+torbutton.circuit_display.internet = Διαδίκτυο
torbutton.circuit_display.ip_unknown = Άγνωστη διεύθυνση IP
torbutton.circuit_display.onion_site = Ιστότοπος Onion
torbutton.circuit_display.this_browser = Αυτός ο browser
@@ -53,7 +53,7 @@ profileMigrationFailed=Η μεταφορά του υπάρχοντος προφ
# "Downloading update" string for the hamburger menu (see #28885).
# This string is kept here for ease of translation.
# LOCALIZATION NOTE: %S is the application name.
-updateDownloadingPanelUILabel=Downloading %S update
+updateDownloadingPanelUILabel=Λήψη %S ενημερώσεων
# .Onion Page Info prompt. Strings are kept here for ease of translation.
pageInfo_OnionEncryptionWithBitsAndProtocol=Κρυπτογραφημένη σύνδεση (υπηρεσία Onion, %1$S, %2$S bit keys, %3$S)
diff --git a/src/chrome/locale/es/aboutTBUpdate.dtd b/src/chrome/locale/es/aboutTBUpdate.dtd
index c90e99df..49470e29 100644
--- a/src/chrome/locale/es/aboutTBUpdate.dtd
+++ b/src/chrome/locale/es/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Actualización del Tor Browser">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "El Tor Browser ha sido actualizado.">
<!ENTITY aboutTBUpdate.linkPrefix "Para ver la información más actualizada de esta versión, ">
<!ENTITY aboutTBUpdate.linkLabel "visite nuestro sitio web">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "Registro de cambios:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "Nueva Pantalla de Circuito Rediseñada">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "¡Se ha trasladado y mejorado la visualización del enrutado de Tor! Clic en el botón Site Identity (situado en el lado izquierdo de la barra de direcciones URL) para ver la nueva visualización del circuito.">
-<!ENTITY aboutTBUpdate.learnMore "Aprende más">
+<!ENTITY aboutTBUpdate.version "Versión">
+<!ENTITY aboutTBUpdate.releaseDate "Fecha de lanzamiento">
+<!ENTITY aboutTBUpdate.releaseNotes "Notas de versiones">
diff --git a/src/chrome/locale/es/aboutTor.dtd b/src/chrome/locale/es/aboutTor.dtd
index f97f5e34..1b1fb3df 100644
--- a/src/chrome/locale/es/aboutTor.dtd
+++ b/src/chrome/locale/es/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "Acerca de Tor">
+<!ENTITY aboutTor.viewChangelog.label "Ver registro de modificaciones.">
+
<!ENTITY aboutTor.ready.label "Explora. En privado.">
<!ENTITY aboutTor.ready2.label "Ahora estás listo/a para experimentar la navegación más privada del mundo.">
<!ENTITY aboutTor.failure.label "¡Algo fue mal!">
diff --git a/src/chrome/locale/es/browserOnboarding.properties b/src/chrome/locale/es/browserOnboarding.properties
index ded4d46c..ce7973aa 100644
--- a/src/chrome/locale/es/browserOnboarding.properties
+++ b/src/chrome/locale/es/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=Ver mi recorrido
onboarding.tour-tor-security=Seguridad
onboarding.tour-tor-security.title=Elige tu experiencia.
onboarding.tour-tor-security.description=También te proporcionamos configuraciones adicionales para aumentar la seguridad de tu navegador. Nuestra Configuración de Seguridad te permite bloquear elementos que podrían usarse para atacar tu computadora. Haz clic a continuación para ver lo que hacen las diferentes opciones.
-onboarding.tour-tor-security.button=Revisar configuración
+onboarding.tour-tor-security-level.button=Mira tu nivel de seguridad
onboarding.tour-tor-expect-differences=Consejos de expertos
onboarding.tour-tor-expect-differences.title=Espera algunas diferencias.
diff --git a/src/chrome/locale/eu/aboutTBUpdate.dtd b/src/chrome/locale/eu/aboutTBUpdate.dtd
index acaa0da7..b69a4856 100644
--- a/src/chrome/locale/eu/aboutTBUpdate.dtd
+++ b/src/chrome/locale/eu/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Tor nabigatzailearen eguneraketa">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "Tor nabigatzailea eguneratu egin da.">
<!ENTITY aboutTBUpdate.linkPrefix "Eguneraketa honen inguruko azken informazioa lortzeko,">
<!ENTITY aboutTBUpdate.linkLabel "ikusi ezazu gure webgunea">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "Aldaketen zerrenda:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "New, Redesigned Circuit Display">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "The Tor circuit display has been relocated and improved! Click the Site Identity button (located on the left side of the URL bar) to see the new circuit display.">
-<!ENTITY aboutTBUpdate.learnMore "Ikasi gehiago">
+<!ENTITY aboutTBUpdate.version "Bertsioa">
+<!ENTITY aboutTBUpdate.releaseDate "Release Date">
+<!ENTITY aboutTBUpdate.releaseNotes "Release Notes">
diff --git a/src/chrome/locale/eu/aboutTor.dtd b/src/chrome/locale/eu/aboutTor.dtd
index 4b9d3ec1..4db4587d 100644
--- a/src/chrome/locale/eu/aboutTor.dtd
+++ b/src/chrome/locale/eu/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "Tori buruz">
+<!ENTITY aboutTor.viewChangelog.label "View Changelog">
+
<!ENTITY aboutTor.ready.label "Esploratu. Pribatuki.">
<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
<!ENTITY aboutTor.failure.label "Zerbait gaizki joan da!">
diff --git a/src/chrome/locale/eu/browserOnboarding.properties b/src/chrome/locale/eu/browserOnboarding.properties
index ae04ee31..6b6f9658 100644
--- a/src/chrome/locale/eu/browserOnboarding.properties
+++ b/src/chrome/locale/eu/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=Ikusi nire bidea
onboarding.tour-tor-security=Segurtasuna
onboarding.tour-tor-security.title=Choose your experience.
onboarding.tour-tor-security.description=We also provide you with additional settings for bumping up your browser security. Our Security Settings allow you to block elements that could be used to attack your computer. Click below to see what the different options do.
-onboarding.tour-tor-security.button=Review Settings
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=Experience Tips
onboarding.tour-tor-expect-differences.title=Expect some differences.
diff --git a/src/chrome/locale/fa/aboutTBUpdate.dtd b/src/chrome/locale/fa/aboutTBUpdate.dtd
index ab4edbc6..38707958 100644
--- a/src/chrome/locale/fa/aboutTBUpdate.dtd
+++ b/src/chrome/locale/fa/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "بروز رسانی مرورگر تور">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "مرورگر تور بهروز شده است.">
<!ENTITY aboutTBUpdate.linkPrefix "به منظور جدیدترین اطلاعات دربارهی این نسخه،">
<!ENTITY aboutTBUpdate.linkLabel "از وبسایت ما دیدن کنید">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "لیست تغییرات:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "نمایش جدید و دوباره طراحی شدهی جریان">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "نمایش جریان تور نقل مکان و بهبود یافت! بر روی دکمه ی هویت سایت کلیک کنید (که در سمت چپ نوار آدرس اینترنتی قرار دارد) تا نمایش جدید جریان را ببینید.">
-<!ENTITY aboutTBUpdate.learnMore "بیشتر بدانید">
+<!ENTITY aboutTBUpdate.version "نسخه">
+<!ENTITY aboutTBUpdate.releaseDate "Release Date">
+<!ENTITY aboutTBUpdate.releaseNotes "توضیحات انتشار">
diff --git a/src/chrome/locale/fa/aboutTor.dtd b/src/chrome/locale/fa/aboutTor.dtd
index 85d5ce96..ad6ce772 100644
--- a/src/chrome/locale/fa/aboutTor.dtd
+++ b/src/chrome/locale/fa/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "دربارهی تور">
+<!ENTITY aboutTor.viewChangelog.label "View Changelog">
+
<!ENTITY aboutTor.ready.label "کاوش. خصوصی.">
<!ENTITY aboutTor.ready2.label "شما برای تجربه خصوصیترین مرور اینترنت در جهان آماده هستید.">
<!ENTITY aboutTor.failure.label "خطایی پیش آمده است!">
diff --git a/src/chrome/locale/fa/browserOnboarding.properties b/src/chrome/locale/fa/browserOnboarding.properties
index 79111576..bb92f969 100644
--- a/src/chrome/locale/fa/browserOnboarding.properties
+++ b/src/chrome/locale/fa/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=مشاهده مسیر من
onboarding.tour-tor-security=امنیت
onboarding.tour-tor-security.title=انتخاب تجربهی شما
onboarding.tour-tor-security.description=همچنین ما تنظیمات اضافی برای بالا بردن امنیت مرورگر شما فراهم کردهایم. تنظیمات امنیت ما به شما اجازه میدهد تا اجزایی که ممکن است برای حمله به رایانه شما استفاده شوند را مسدود کنید. برای مشاهدهی گزینههای مختلفی که وجود دارد، پایین را کلیک کنید.
-onboarding.tour-tor-security.button=مرور تنظیمات
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=نکات تجربه
onboarding.tour-tor-expect-differences.title=انتظار برخی تفاوتها را داشته باشید.
diff --git a/src/chrome/locale/fa/torbutton.properties b/src/chrome/locale/fa/torbutton.properties
index 3d49e5e4..23c6309d 100644
--- a/src/chrome/locale/fa/torbutton.properties
+++ b/src/chrome/locale/fa/torbutton.properties
@@ -53,7 +53,7 @@ profileMigrationFailed=مهاجرت ناموفق از پروفایل %S.\nتنظ
# "Downloading update" string for the hamburger menu (see #28885).
# This string is kept here for ease of translation.
# LOCALIZATION NOTE: %S is the application name.
-updateDownloadingPanelUILabel=Downloading %S update
+updateDownloadingPanelUILabel=در حال دانلود %S بروز رسانی
# .Onion Page Info prompt. Strings are kept here for ease of translation.
pageInfo_OnionEncryptionWithBitsAndProtocol=ارتباط رمزگذاری شده (سرویس Onion, %1$S, %2$S bit keys, %3$S)
diff --git a/src/chrome/locale/fr/aboutDialog.dtd b/src/chrome/locale/fr/aboutDialog.dtd
index f67c4434..d3720fda 100644
--- a/src/chrome/locale/fr/aboutDialog.dtd
+++ b/src/chrome/locale/fr/aboutDialog.dtd
@@ -13,7 +13,7 @@
<!-- LOCALIZATION NOTE (bottom.questions): This is a link title that links to https://www.torproject.org/docs/trademark-faq.html.en -->
<!ENTITY bottomLinks.questions "Des questions ?">
<!-- LOCALIZATION NOTE (bottom.questions): This is a link title that links to https://www.torproject.org/getinvolved/relays -->
-<!ENTITY bottomLinks.grow "Aidez à la croissance du réseau Tor !">
+<!ENTITY bottomLinks.grow "Aidez à la croissance du réseau Tor !">
<!-- LOCALIZATION NOTE (bottom.questions): This is a link title that links to about:license -->
<!ENTITY bottomLinks.license "Informations de licence">
-<!ENTITY tor.TrademarkStatement "« Tor » et le « logo Oignon » sont des marques de commerce de « The Tor Project, Inc. »">
+<!ENTITY tor.TrademarkStatement "« Tor » et le « logo Oignon » sont des marques de commerce de « The Projet Tor, Inc. »">
diff --git a/src/chrome/locale/fr/aboutTBUpdate.dtd b/src/chrome/locale/fr/aboutTBUpdate.dtd
index cfed15d9..8186f71e 100644
--- a/src/chrome/locale/fr/aboutTBUpdate.dtd
+++ b/src/chrome/locale/fr/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Mise à jour du Navigateur Tor">
-<!ENTITY aboutTBUpdate.updated "Le Navigateur Tor a été mis à jour.">
+<!ENTITY aboutTBUpdate.changelogTitle "Journal des changements du navigateur Tor Browser">
+<!ENTITY aboutTBUpdate.updated "Le navigateur Tor Browser a été mis à jour.">
<!ENTITY aboutTBUpdate.linkPrefix "Pour les toutes dernières informations sur cette version,">
<!ENTITY aboutTBUpdate.linkLabel "visitez notre site Web">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "Journal des changements :">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "Affichage des circuits nouveau et repensé">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "L’affichage des circuits de Tor a été déplacé et amélioré ! Cliquez sur le bouton Identité du site (situé à gauche de la barre d’URL) pour voir le nouvel affichage des circuits.">
-<!ENTITY aboutTBUpdate.learnMore "En apprendre davantage">
+<!ENTITY aboutTBUpdate.version "Version">
+<!ENTITY aboutTBUpdate.releaseDate "Date de sortie">
+<!ENTITY aboutTBUpdate.releaseNotes "Notes de mise à jour ">
diff --git a/src/chrome/locale/fr/aboutTor.dtd b/src/chrome/locale/fr/aboutTor.dtd
index 6ae2392d..f5362525 100644
--- a/src/chrome/locale/fr/aboutTor.dtd
+++ b/src/chrome/locale/fr/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "À propos de Tor ">
+<!ENTITY aboutTor.viewChangelog.label "Visualiser le journal des changements">
+
<!ENTITY aboutTor.ready.label "Explorez, en toute confidentialité.">
<!ENTITY aboutTor.ready2.label "Vous êtes prêts pour l’expérience de navigation la plus confidentielle au monde.">
<!ENTITY aboutTor.failure.label "Un problème est survenu !">
@@ -15,12 +17,12 @@
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
<!ENTITY aboutTor.torbrowser_user_manual_questions.label "Des questions ?">
-<!ENTITY aboutTor.torbrowser_user_manual_link.label "Consultez notre guide d’utilisation du navigateur Tor »">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Consultez notre guide d’utilisation du navigateur Tor Browser »">
<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "G">
-<!ENTITY aboutTor.torbrowser_user_manual.label "Guide d’utilisation du Navigateur Tor">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Guide d’utilisation du navigateur Tor Browser">
-<!ENTITY aboutTor.tor_mission.label "Le Projet Tor est une organisation sans but lucratif US 501(c)(3) qui fait progresser les droits de la personne et les libertés en créant et en déployant des technologies d’anonymat et de confidentialité gratuites et à code source ouvert. Nous soutenons leur disponibilité et leur utilisation sans restriction, et promouvons une meilleure compréhension scientifique et populaire.">
+<!ENTITY aboutTor.tor_mission.label "Le Projet Tor est une organisation sans but lucratif US 501(c)(3) qui fait progresser les droits de la personne et les libertés en créant et en déployant des technologies d’anonymat et de confidentialité gratuites et à code source ouvert. Nous soutenons leur disponibilité et leur utilisation sans restriction, et promouvons une meilleure compréhension scientifique et populaire.">
<!ENTITY aboutTor.getInvolved.label "Impliquez-vous »">
<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html">
diff --git a/src/chrome/locale/fr/brand.dtd b/src/chrome/locale/fr/brand.dtd
index a55f3014..63ce59ce 100644
--- a/src/chrome/locale/fr/brand.dtd
+++ b/src/chrome/locale/fr/brand.dtd
@@ -2,10 +2,10 @@
- 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 brandShorterName "Navigateur Tor">
-<!ENTITY brandShortName "Navigateur Tor">
-<!ENTITY brandFullName "Navigateur Tor">
-<!ENTITY vendorShortName "Projet Tor">
+<!ENTITY brandShorterName "Tor Browser">
+<!ENTITY brandShortName "Tor Browser">
+<!ENTITY brandFullName "Tor Browser">
+<!ENTITY vendorShortName "Le Projet Tor">
<!ENTITY trademarkInfo.part1 "Firefox et les logos de Firefox sont des marques de commerce de la Fondation Mozilla.">
<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
diff --git a/src/chrome/locale/fr/brand.properties b/src/chrome/locale/fr/brand.properties
index 0c6249f6..ab9ea77f 100644
--- a/src/chrome/locale/fr/brand.properties
+++ b/src/chrome/locale/fr/brand.properties
@@ -2,10 +2,10 @@
# 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/.
-brandShorterName=Navigateur Tor
-brandShortName=Navigateur Tor
-brandFullName=Navigateur Tor
-vendorShortName=Projet Tor
+brandShorterName=Tor Browser
+brandShortName=Tor Browser
+brandFullName=Tor Browser
+vendorShortName=Le Projet Tor
homePageSingleStartMain=Firefox Start, une page d’accueil rapide avec recherche intégrée
homePageImport=Importez votre page d’accueil à partir de %S
diff --git a/src/chrome/locale/fr/browserOnboarding.properties b/src/chrome/locale/fr/browserOnboarding.properties
index 28065b44..b3f897a0 100644
--- a/src/chrome/locale/fr/browserOnboarding.properties
+++ b/src/chrome/locale/fr/browserOnboarding.properties
@@ -4,28 +4,28 @@
onboarding.tour-tor-welcome=Bienvenue
onboarding.tour-tor-welcome.title=Vous êtes prêts.
-onboarding.tour-tor-welcome.description=Le Navigateur Tor offre le plus haut niveau de confidentialité et de sécurité quand vous parcourez le Web. Vous êtes maintenant protégé contre le suivi à la trace, la surveillance et la censure. Cette introduction rapide vous montrera comment faire.
+onboarding.tour-tor-welcome.description=Le navigateur Tor Browser offre le plus haut niveau de confidentialité et de sécurité quand vous parcourez le Web. Vous êtes maintenant protégé contre le suivi à la trace, la surveillance et la censure. Cette introduction rapide vous montrera comment faire.
onboarding.tour-tor-welcome.button=Commencer maintenant
onboarding.tour-tor-privacy=Confidentialité
onboarding.tour-tor-privacy.title=Repoussez les traqueurs et les fouineurs.
-onboarding.tour-tor-privacy.description=Le Navigateur Tor isole les témoins et supprime l’historique de votre navigateur en fin de session. Ces modifications garantissent que confidentialité et sécurité sont protégées dans le navigateur. Cliquez sur « Réseau Tor » pour savoir comment nous vous protégeons au niveau du réseau.
-onboarding.tour-tor-privacy.button=Se rendre sur le Réseau Tor
+onboarding.tour-tor-privacy.description=Le navigateur Tor Browser isole les témoins et supprime l’historique de votre navigateur en fin de session. Ces modifications garantissent que confidentialité et sécurité sont protégées dans le navigateur. Cliquez sur « Réseau Tor » pour savoir comment nous vous protégeons au niveau du réseau.
+onboarding.tour-tor-privacy.button=Se rendre sur le Réseau Tor
-onboarding.tour-tor-network=Réseau Tor
+onboarding.tour-tor-network=Réseau Tor
onboarding.tour-tor-network.title=Naviguez sur un réseau décentralisé.
-onboarding.tour-tor-network.description=Le navigateur Tor vous connecte au réseau Tor exploité par des milliers de bénévoles dans le monde entier. Contrairement à un RPV, il n’y a pas de point de défaillance unique ou d’entité centralisée auxquels vous devez faire confiance pour profiter d’Internet en toute confidentialité.
+onboarding.tour-tor-network.description=Le navigateur Tor Browser vous connecte au réseau Tor exploité par des milliers de bénévoles dans le monde entier. Contrairement à un RPV, il n’y a pas de point de défaillance unique ou d’entité centralisée auxquels vous devez faire confiance pour profiter d’Internet en toute confidentialité.
onboarding.tour-tor-network.button=Se rendre sur l’Affichage des circuits
onboarding.tour-tor-circuit-display=Affichage des circuits
onboarding.tour-tor-circuit-display.title=Visualisez votre chemin.
-onboarding.tour-tor-circuit-display.description=Pour chaque domaine que vous visitez, votre trafic est relayé et chiffré dans un circuit passant par trois relais Tor disséminés de par le monde. Aucun site Web ne sait d’où vous vous connectez. Vous pouvez demander un nouveau circuit en cliquant sur « Nouveau circuit Tor pour ce site » dans votre Affichage des circuits.
+onboarding.tour-tor-circuit-display.description=Pour chaque domaine que vous visitez, votre trafic est relayé et chiffré dans un circuit passant par trois relais Tor disséminés de par le monde. Aucun site Web ne sait d’où vous vous connectez. Vous pouvez demander un nouveau circuit en cliquant sur « Nouveau circuit Tor pour ce site » dans votre Affichage des circuits.
onboarding.tour-tor-circuit-display.button=Visualiser mon chemin
onboarding.tour-tor-security=Sécurité
onboarding.tour-tor-security.title=Choisissez votre expérience.
onboarding.tour-tor-security.description=Nous vous offrons aussi des paramètres supplémentaires pour augmenter la sécurité de votre navigateur. Nos paramètres de sécurité vous permettent de bloquer des éléments qui pourraient être utilisés pour attaquer votre ordinateur. Cliquez ci-dessous pour voir ce que les différentes options vous proposent.
-onboarding.tour-tor-security.button=Passer les paramètres en revue
+onboarding.tour-tor-security-level.button=Voir votre niveau de sécurité
onboarding.tour-tor-expect-differences=Conseils sur l’expérience
onboarding.tour-tor-expect-differences.title=Attendez-vous à des différences.
diff --git a/src/chrome/locale/fr/torbutton.dtd b/src/chrome/locale/fr/torbutton.dtd
index be848ce6..4440705c 100644
--- a/src/chrome/locale/fr/torbutton.dtd
+++ b/src/chrome/locale/fr/torbutton.dtd
@@ -2,14 +2,14 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "Nouveau circuit Tor pour ce site">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.networksettings "Paramètres du réseau Tor">
+<!ENTITY torbutton.context_menu.networksettings "Paramètres du réseau Tor">
<!ENTITY torbutton.context_menu.networksettings.key "R">
-<!ENTITY torbutton.context_menu.downloadUpdate "Vérifier les mises à jour du Navigateur Tor">
+<!ENTITY torbutton.context_menu.downloadUpdate "Vérifier les mises à jour du navigateur Tor Browser">
<!ENTITY torbutton.context_menu.downloadUpdate.key "M">
<!ENTITY torbutton.context_menu.cookieProtections "Protections des fichiers témoins…">
<!ENTITY torbutton.context_menu.cookieProtections.key "T">
<!ENTITY torbutton.button.tooltip "Cliquer pour lancer BoutonTor">
-<!ENTITY torbutton.prefs.security_settings "Paramètres de sécurité du Navigateur Tor">
+<!ENTITY torbutton.prefs.security_settings "Paramètres de sécurité du navigateur Tor Browser">
<!ENTITY torbutton.cookiedialog.title "Gérer les protections des fichiers témoins">
<!ENTITY torbutton.cookiedialog.lockCol "Protégé">
<!ENTITY torbutton.cookiedialog.domainCol "Hôte">
@@ -24,7 +24,7 @@
<!ENTITY torbutton.prefs.sec_caption "Niveau de sécurité">
<!ENTITY torbutton.prefs.sec_caption_tooltip "Le curseur de sécurité vous permet de désactiver certaines fonctions du navigateur qui pourraient le rendre plus vulnérable aux tentatives de piratage.">
<!ENTITY torbutton.prefs.sec_standard_label "Normal">
-<!ENTITY torbutton.prefs.sec_standard_description "Toutes les fonctions du Navigateur Tor et des sites Web sont activées.">
+<!ENTITY torbutton.prefs.sec_standard_description "Toutes les fonctions du navigateur Tor Browser et des sites Web sont activées.">
<!ENTITY torbutton.prefs.sec_safer_label "Plus sûr">
<!ENTITY torbutton.prefs.sec_safer_description "Désactive les fonctions souvent dangereuses des sites Web, ce qui pourrait entraîner une perte de fonctionnalité de certains sites Web.">
<!ENTITY torbutton.prefs.sec_safer_list_label "Au réglage Plus sûr :">
diff --git a/src/chrome/locale/fr/torbutton.properties b/src/chrome/locale/fr/torbutton.properties
index 02a344d0..27d9b3ca 100644
--- a/src/chrome/locale/fr/torbutton.properties
+++ b/src/chrome/locale/fr/torbutton.properties
@@ -5,36 +5,36 @@ torbutton.circuit_display.this_browser = Ce navigateur
torbutton.circuit_display.relay = Relais
torbutton.circuit_display.tor_bridge = Pont
torbutton.circuit_display.unknown_country = Pays inconnu
-torbutton.circuit_display.guard = Garde
+torbutton.circuit_display.guard = garde
torbutton.circuit_display.guard_note = Votre nœud de [Guard] ne peut pas changer.
torbutton.circuit_display.learn_more = En apprendre davantage
-torbutton.content_sizer.margin_tooltip = Le Navigateur Tor ajoute cette marge pour rendre la largeur et la hauteur de votre fenêtre moins distinctives, et pour réduire par conséquent la possibilité que l’on vous suive à la trace en ligne.
+torbutton.content_sizer.margin_tooltip = Le navigateur Tor Browser ajoute cette marge pour rendre la largeur et la hauteur de votre fenêtre moins distinctives, et pour réduire par conséquent la possibilité que l’on vous suive à la trace en ligne.
torbutton.panel.tooltip.disabled = Cliquer pour activer Tor
torbutton.panel.tooltip.enabled = Cliquer pour désactiver Tor
torbutton.panel.label.disabled = Tor est désactivé
torbutton.panel.label.enabled = Tor est activé
-extensions.torbutton(a)torproject.org.description = BoutonTor fournit un bouton pour configurer les paramètres de Tor et vider facilement les données de navigation privée.
+extensions.torbutton(a)torproject.org.description = BoutonTor offre un bouton pour configurer les paramètres de Tor et effacer facilement les données de navigation privée.
torbutton.popup.external.title = Télécharger un type de fichier externe ?
-torbutton.popup.external.app = Le Navigateur Tor ne peut pas afficher ce fichier. Il est necessaire de l’ouvrir avec une autre application.
+torbutton.popup.external.app = Le navigateur Tor Browser ne peut pas afficher ce fichier. Vous devrez l’ouvrir avec une autre application.
torbutton.popup.external.note = Certains types de fichiers peuvent causer des connexions à l’Internet sans passer par Tor pour certaines applications
torbutton.popup.external.suggest = Par sécurité, vous ne devriez ouvrir les fichiers téléchargés qu’une fois hors ligne ou en utilisant un CD autonome Tor comme Tails.\n
torbutton.popup.launch = Télécharger le fichier
torbutton.popup.cancel = Annuler
torbutton.popup.dontask = Télécharger automatiquement à partir de maintenant
-torbutton.popup.no_newnym = BoutonTor ne peut pas vous attribuer une nouvelle identité de façon sûre. Il n’a pas accès au port de contrôle de Tor.\n\nUtilisez-vous l’offre groupée du Navigateur Tor ?
+torbutton.popup.no_newnym = BoutonTor ne peut pas vous attribuer une nouvelle identité de façon sûre. Il n’a pas accès au port de contrôle de Tor.\n\nUtilisez-vous l’offre groupée du navigateur Tor Browser ?
torbutton.security_settings.menu.title = Paramètres de sécurité
torbutton.title.prompt_torbrowser = Informations importantes concernant BoutonTor
-torbutton.popup.prompt_torbrowser = BoutonTor fonctionne différemment maintenant : vous ne pouvez plus le désactiver.\n\nNous avons effectué ce changement car il n’est pas sécuritaire d’utiliser BoutonTor dans un navigateur qui est également utiliser pour une navigation sans Tor. Trop de bogues ne pouvaient être réglés autrement.\n\nSi vous voulez continuer à utiliser Firefox normalement, vous devriez désinstaller BoutonTor et télécharger l’offre groupée du Navigateur Tor. Les propriétés de confidentialité du Navigateur Tor sont aussi supérieures à celles de Firefox, même s’il est utilisé avec BoutonTor.\n\nPour enlever BoutonTor, allez dans Outils->Modules complémentaires->Extensions et cliquer sur Supprimer à coté de BoutonTor.
+torbutton.popup.prompt_torbrowser = Dorénavant, BoutonTor fonctionne différemment : vous ne pouvez plus le désactiver.\n\nNous avons effectué ce changement, car il n’est pas sécuritaire d’utiliser BoutonTor dans un navigateur qui est également utilisé pour une navigation sans Tor. Trop de bogues ne pouvaient être réglés autrement.\n\nSi vous voulez continuer à utiliser Firefox normalement, vous devriez désinstaller BoutonTor et télécharger l’offre groupée du navigateur Tor Browser. Les propriétés de confidentialité du navigateur Tor Browser sont aussi supérieures à celles de Firefox, même s’il est utilisé avec BoutonTor.\n\nPour enlever BoutonTor, allez dans Outils->Modules complémentaires->Extensions et cliquer sur Supprimer à coté de BoutonTor.
torbutton.popup.short_torbrowser = Informations importantes concernant BoutonTor !\n\nBoutonTor est toujours activé dorénavant.\n\nCliquer sur BoutonTor pour plus d’informations.
torbutton.popup.confirm_plugins = Les greffons tels que Flash peuvent nuire à vos anonymat et vie privée.\n\nIls peuvent également contourner Tor afin de révéler votre position actuelle ainsi que votre adresse IP.\n\nÊtes-vous certain de vouloir activer les greffons ?\n\n
torbutton.popup.never_ask_again = Ne plus me poser la question.
-torbutton.popup.confirm_newnym = Le Navigateur Tor fermera tous les fenêtres et onglets. Les sessions des sites Web seront toutes perdues.\n\nRedémarrer le Navigateur Tor maintenant pour réinitialiser votre identité ?\n\n
+torbutton.popup.confirm_newnym = Le navigateur Tor Browser fermera tous les fenêtres et onglets. Les sessions des sites Web seront toutes perdues.\n\nRedémarrer le navigateur Tor Browser maintenant pour réinitialiser votre identité ?\n\n
-torbutton.maximize_warning = Maximiser le Navigateur Tor peut permettre aux sites Web de déterminer la taille de votre moniteur, ce qui peut être utilisé pour vous suivre à la trace. Nous vous recommandons de garder la taille d’origine des fenêtres du Navigateur Tor.
+torbutton.maximize_warning = Maximiser le navigateur Tor Browser peut permettre aux sites Web de déterminer la taille de votre moniteur, ce qui peut être utilisé pour vous suivre à la trace. Nous vous recommandons de garder la taille d’origine des fenêtres du navigateur Tor Browser.
# Canvas permission prompt. Strings are kept here for ease of translation.
-canvas.siteprompt=Ce site Web (%S) a essayé d’extraire des données d’image de canevas HTML5, qui pourraient être utilisées pour identifier votre ordinateur de façon unique.\n\nLe Navigateur Tor devrait-il permettre à ce site Web d’extraire des données d’image de canevas HTML5 ?
+canvas.siteprompt=Ce site Web (%S) a essayé d’extraire des données d’image de canevas HTML5, qui pourraient être utilisées pour identifier votre ordinateur de façon unique.\n\nLe navigateur Tor Browser devrait-il permettre à ce site Web d’extraire des données d’image de canevas HTML5 ?
canvas.notNow=Pas maintenant
canvas.notNowAccessKey=P
canvas.allow=Autoriser à l’avenir
diff --git a/src/chrome/locale/ga/aboutTBUpdate.dtd b/src/chrome/locale/ga/aboutTBUpdate.dtd
index 72f53a93..04812b9d 100644
--- a/src/chrome/locale/ga/aboutTBUpdate.dtd
+++ b/src/chrome/locale/ga/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Nuashonrú Brabhsálaí Tor">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "Nuashonraíodh Brabhsálaí Tor">
<!ENTITY aboutTBUpdate.linkPrefix "Chun teacht ar an eolas is déanaí maidir leis an leagan seo, ">
<!ENTITY aboutTBUpdate.linkLabel "tabhair cuairt ar ár suíomh Gréasáin">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "Logchomhad athruithe:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "Dearadh Nua ar Thaispeántas an Chiorcaid">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "Chuireamar feabhas ar thaispeántas an chiorcaid, agus tá sé in áit nua freisin! Cliceáil an cnaipe Eolas faoin suíomh (ar an taobh clé den bharra URL) chun an taispeántas nua a fheiceáil.">
-<!ENTITY aboutTBUpdate.learnMore "Tuilleadh Eolais">
+<!ENTITY aboutTBUpdate.version "Leagan">
+<!ENTITY aboutTBUpdate.releaseDate "Release Date">
+<!ENTITY aboutTBUpdate.releaseNotes "Release Notes">
diff --git a/src/chrome/locale/ga/aboutTor.dtd b/src/chrome/locale/ga/aboutTor.dtd
index ce6fe3f5..ed933f23 100644
--- a/src/chrome/locale/ga/aboutTor.dtd
+++ b/src/chrome/locale/ga/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "Maidir le Tor">
+<!ENTITY aboutTor.viewChangelog.label "View Changelog">
+
<!ENTITY aboutTor.ready.label "Brabhsáil. Príobháideachas.">
<!ENTITY aboutTor.ready2.label "Tá tú réidh don bhrabhsálaí is príobháidí ar domhan.">
<!ENTITY aboutTor.failure.label "Chuaigh rud éigin ar strae!">
diff --git a/src/chrome/locale/ga/browserOnboarding.properties b/src/chrome/locale/ga/browserOnboarding.properties
index 1d44d5a0..8fe8d0cb 100644
--- a/src/chrome/locale/ga/browserOnboarding.properties
+++ b/src/chrome/locale/ga/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=Mo Chosán
onboarding.tour-tor-security=Slándáil
onboarding.tour-tor-security.title=D'eispéireas féin.
onboarding.tour-tor-security.description=Soláthraímid socruithe breise duit lenar féidir leat leibhéal slándála níos airde a bhaint amach trí, mar shampla, cosc a chur ar eilimintí áirithe a d'fhéadfaí a úsáid chun ionsaí a dhéanamh ar do ríomhaire. Cliceáil thíos chun tuilleadh eolais a fháil faoi na roghanna éagsúla.
-onboarding.tour-tor-security.button=Athbhreithniú Socruithe
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=Leideanna
onboarding.tour-tor-expect-differences.title=Bí ag súil le difríochtaí.
diff --git a/src/chrome/locale/he/aboutTBUpdate.dtd b/src/chrome/locale/he/aboutTBUpdate.dtd
index a9989bb1..74770a3a 100644
--- a/src/chrome/locale/he/aboutTBUpdate.dtd
+++ b/src/chrome/locale/he/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "עדכון דפדפן Tor">
+<!ENTITY aboutTBUpdate.changelogTitle "יומן שינויים של דפדפן Tor">
<!ENTITY aboutTBUpdate.updated "דפדפן Tor עודכן.">
<!ENTITY aboutTBUpdate.linkPrefix "למידע המעודכן ביותר לגבי שחרור זה, ">
<!ENTITY aboutTBUpdate.linkLabel "בקר באתר שלנו">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "יומן שינויים:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "תצוגה חדשה ומעוצבת מחדש של מעגל">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "תצוגת מעגל של Tor מוקמה מחדש ושופרה! לחץ על כפתור הזיהוי של אתרים (ממוקם בצד השמאלי של שורת הכתובת) כדי לראות את תצוגת המעגל החדשה.">
-<!ENTITY aboutTBUpdate.learnMore "למד עוד">
+<!ENTITY aboutTBUpdate.version "גרסה">
+<!ENTITY aboutTBUpdate.releaseDate "תאריך שחרור">
+<!ENTITY aboutTBUpdate.releaseNotes "הערות שחרור">
diff --git a/src/chrome/locale/he/aboutTor.dtd b/src/chrome/locale/he/aboutTor.dtd
index 6d988035..471d2b8d 100644
--- a/src/chrome/locale/he/aboutTor.dtd
+++ b/src/chrome/locale/he/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "אודות Tor">
+<!ENTITY aboutTor.viewChangelog.label "הצג יומן שינויים">
+
<!ENTITY aboutTor.ready.label "חקור. בפרטיות.">
<!ENTITY aboutTor.ready2.label "אתה מוכן לחוויה של הגלישה הפרטית ביותר של העולם.">
<!ENTITY aboutTor.failure.label "משהו השתבש!">
diff --git a/src/chrome/locale/he/browserOnboarding.properties b/src/chrome/locale/he/browserOnboarding.properties
index 13cb89ab..05d0cf48 100644
--- a/src/chrome/locale/he/browserOnboarding.properties
+++ b/src/chrome/locale/he/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=ראה את הנתיב שלי
onboarding.tour-tor-security=אבטחה
onboarding.tour-tor-security.title=בחר את חוויתך.
onboarding.tour-tor-security.description=אנחנו מספקים לך גם הגדרות נוספות עבור הגברת אבטחת הדפדפן שלך. הגדרות האבטחה שלנו מתירות לך לחסום יסודות שעלולים לשמש כדי לתקוף את המחשב שלך. לחץ למטה כדי לראות מה האפשרויות השונות עושות.
-onboarding.tour-tor-security.button=סקור הגדרות
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=עצות חוויה
onboarding.tour-tor-expect-differences.title=צפה למספר הבדלים.
diff --git a/src/chrome/locale/hu/aboutTBUpdate.dtd b/src/chrome/locale/hu/aboutTBUpdate.dtd
index ade14fed..ad31aa8a 100644
--- a/src/chrome/locale/hu/aboutTBUpdate.dtd
+++ b/src/chrome/locale/hu/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Tor Browser Frissítés">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "Tor Browser frissítve.">
<!ENTITY aboutTBUpdate.linkPrefix "Az erről a kiadásról szóló legfrissebb információkért">
<!ENTITY aboutTBUpdate.linkLabel "látogassa meg weboldalunkat">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "Változások listája:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "Új, áttervezett áramkör megjelenítés">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "A Tor áramkör megjelenítés áthelyezésre és fejlesztésre került. Kattintson az Oldal Identitás gombra (az URL sáv bal oldalánál) az új áramkör megjelenítés megtekintéséhez.">
-<!ENTITY aboutTBUpdate.learnMore "Tudjon meg többet">
+<!ENTITY aboutTBUpdate.version "Verzió">
+<!ENTITY aboutTBUpdate.releaseDate "Release Date">
+<!ENTITY aboutTBUpdate.releaseNotes "Verziókövetési jegyzet">
diff --git a/src/chrome/locale/hu/aboutTor.dtd b/src/chrome/locale/hu/aboutTor.dtd
index 8c776575..6a4bd540 100644
--- a/src/chrome/locale/hu/aboutTor.dtd
+++ b/src/chrome/locale/hu/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "A Tor-ról">
+<!ENTITY aboutTor.viewChangelog.label "View Changelog">
+
<!ENTITY aboutTor.ready.label "Fedezzen fel. Privátan.">
<!ENTITY aboutTor.ready2.label "Készen áll a világ legprivátabb böngészési élményére.">
<!ENTITY aboutTor.failure.label "Valami nem jól működik!">
diff --git a/src/chrome/locale/hu/browserOnboarding.properties b/src/chrome/locale/hu/browserOnboarding.properties
index 9cd03f4b..965f4b8e 100644
--- a/src/chrome/locale/hu/browserOnboarding.properties
+++ b/src/chrome/locale/hu/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=Megtekintem az útvonalam
onboarding.tour-tor-security=Biztonság
onboarding.tour-tor-security.title=Válassza ki élményét
onboarding.tour-tor-security.description=További beállítási lehetőségeket biztosítunk a böngésző biztonság növelése érdekében. A Biztonsági beállításaink lehetővé teszik, hogy blokkoljon olyan elemeket, amelyekkel támadható a számítógépe. Kattintson alább, hogy lássa, mely lehetőségek mit csinálnak.
-onboarding.tour-tor-security.button=Beállítások áttekintése
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=Tapasztalati tippek
onboarding.tour-tor-expect-differences.title=Számítson különbségekre.
diff --git a/src/chrome/locale/id/aboutTBUpdate.dtd b/src/chrome/locale/id/aboutTBUpdate.dtd
index ad37dae0..1bd32dd0 100644
--- a/src/chrome/locale/id/aboutTBUpdate.dtd
+++ b/src/chrome/locale/id/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Pemutakhiran peramban Tor">
-<!ENTITY aboutTBUpdate.updated "Peramban Tor telah diperbarui.">
+<!ENTITY aboutTBUpdate.changelogTitle "Catatan Perubahan Tor Browser">
+<!ENTITY aboutTBUpdate.updated "Tor Browser telah diperbarui.">
<!ENTITY aboutTBUpdate.linkPrefix "Untuk informasi paling terbaru mengenai rilisan ini,">
<!ENTITY aboutTBUpdate.linkLabel "kunjungi situs web kami">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "Catatan Perubahan:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "Circuit Display yang Baru dan Didesain ulang">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "Tor circuit display telah dipindahkan dan ditingkatkan! Klik tombol Site Identity (ada di sebelah kiri URL bar) untuk melihat circuit display yang baru.">
-<!ENTITY aboutTBUpdate.learnMore "Pelajari lebih lanjut">
+<!ENTITY aboutTBUpdate.version "Versi">
+<!ENTITY aboutTBUpdate.releaseDate "Tanggal Rilis">
+<!ENTITY aboutTBUpdate.releaseNotes "Catatan Rilis">
diff --git a/src/chrome/locale/id/aboutTor.dtd b/src/chrome/locale/id/aboutTor.dtd
index 3a4e3a27..1c265201 100644
--- a/src/chrome/locale/id/aboutTor.dtd
+++ b/src/chrome/locale/id/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "Tentang Tor">
+<!ENTITY aboutTor.viewChangelog.label "Lihat Catatan Perubahan">
+
<!ENTITY aboutTor.ready.label "Jelajahi. Secara Privat.">
<!ENTITY aboutTor.ready2.label "Anda siap untuk pengalaman menjelajah yang paling privat di dunia.">
<!ENTITY aboutTor.failure.label "Ada Masalah!">
diff --git a/src/chrome/locale/id/brand.dtd b/src/chrome/locale/id/brand.dtd
index 213c71d5..1361c973 100644
--- a/src/chrome/locale/id/brand.dtd
+++ b/src/chrome/locale/id/brand.dtd
@@ -2,9 +2,9 @@
- 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 brandShorterName "Peramban Tor">
-<!ENTITY brandShortName "Peramban Tor">
-<!ENTITY brandFullName "Peramban Tor">
+<!ENTITY brandShorterName "Tor Browser">
+<!ENTITY brandShortName "Tor Browser">
+<!ENTITY brandFullName "Tor Browser">
<!ENTITY vendorShortName "Proyek Tor">
<!ENTITY trademarkInfo.part1 "Firefox dan logo Firefox merupakan merek dagang dari Mozilla Foundation.">
diff --git a/src/chrome/locale/id/brand.properties b/src/chrome/locale/id/brand.properties
index 8b36aae3..460e9602 100644
--- a/src/chrome/locale/id/brand.properties
+++ b/src/chrome/locale/id/brand.properties
@@ -2,9 +2,9 @@
# 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/.
-brandShorterName=Peramban Tor
-brandShortName=Peramban Tor
-brandFullName=Peramban Tor
+brandShorterName=Tor Browser
+brandShortName=Tor Browser
+brandFullName=Tor Browser
vendorShortName=Proyek Tor
homePageSingleStartMain=Firefox Start, halaman muka yang cepat dengan pencarian bawaan
diff --git a/src/chrome/locale/id/browserOnboarding.properties b/src/chrome/locale/id/browserOnboarding.properties
index 471a73b8..b5375262 100644
--- a/src/chrome/locale/id/browserOnboarding.properties
+++ b/src/chrome/locale/id/browserOnboarding.properties
@@ -4,17 +4,17 @@
onboarding.tour-tor-welcome=Selamat datang
onboarding.tour-tor-welcome.title=Anda siap.
-onboarding.tour-tor-welcome.description=Peramban Tor menawarkan standar tertinggi atas privasi dan keamanan saat menjelajahi jaringan. Anda sekarang dilindungi dari pelacakan, pengintaian, dan penyensoran. Pelatihan singkat ini akan menunjukkan Anda bagaimana caranya.
+onboarding.tour-tor-welcome.description=Tor Browser menawarkan standar tertinggi atas privasi dan keamanan saat menjelajahi jaringan. Anda sekarang dilindungi dari pelacakan, pengintaian, dan penyensoran. Pelatihan singkat ini akan menunjukkan Anda bagaimana caranya.
onboarding.tour-tor-welcome.button=Start Now
onboarding.tour-tor-privacy=Privasi
onboarding.tour-tor-privacy.title=Menolak pelacak dan pengintai.
-onboarding.tour-tor-privacy.description=Peramban tor mengisolasi kuki dan menghapus riwayat peramban anda setelah ditutup. Modifikasi ini menjamin privasi dan keamanan telah terproteksi di dalam peramban. Klik 'Jaringan Tor' untuk pempelajari bagaimana kami melindungi anda pada level jaringan.
-onboarding.tour-tor-privacy.button=Go to Tor Network
+onboarding.tour-tor-privacy.description=Tor Browser mengisolasi cookie dan menghapus riwayat peramban anda setelah ditutup. Modifikasi ini menjamin privasi dan keamanan telah terproteksi di dalam peramban. Klik 'Jaringan Tor' untuk pempelajari bagaimana kami melindungi anda pada level jaringan.
+onboarding.tour-tor-privacy.button=Pergi ke Jaringan Tor
-onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network=Jaringan Tor
onboarding.tour-tor-network.title=Mengelilingi jaringan yang terdesentralisasi.
-onboarding.tour-tor-network.description=Peramban Tor menghubungkan Anda ke jaringan Tor yang dijalankan oleh ribuan relawan di seluruh dunia. Tidak seperti VPN, tidak ada satu titik kesalahan atau entitas sentral yang perlu anda percaya untuk menikmati internet secara privat.
+onboarding.tour-tor-network.description=Tor Browser menghubungkan Anda ke jaringan Tor yang dijalankan oleh ribuan relawan di seluruh dunia. Tidak seperti VPN, tidak ada satu titik kesalahan atau entitas sentral yang perlu anda percaya untuk menikmati internet secara privat.
onboarding.tour-tor-network.button=Go to Circuit Display
onboarding.tour-tor-circuit-display=Tampilan Sirkuit
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=See My Path
onboarding.tour-tor-security=Keamanan
onboarding.tour-tor-security.title=Putuskan pengalamanmu.
onboarding.tour-tor-security.description=Kami juga menyediakan Anda dengan pengaturan tambahan untuk meningkatkan keamanan peramban Anda. Pengaturan Keamanan kami mengizinkan anda untuk memblokir elemen-elemen yang dapat digunakan untuk menyerang komputer Anda. Klik di bawah untuk mengetahui apa saja yang dilakukan oleh pilihan yang berbeda.
-onboarding.tour-tor-security.button=Review Settings
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=Tips Pengalaman
onboarding.tour-tor-expect-differences.title=Harapkan beberapa perubahan.
diff --git a/src/chrome/locale/id/torbutton.dtd b/src/chrome/locale/id/torbutton.dtd
index ecf771f4..c1e7603a 100644
--- a/src/chrome/locale/id/torbutton.dtd
+++ b/src/chrome/locale/id/torbutton.dtd
@@ -4,23 +4,23 @@
<!ENTITY torbutton.context_menu.new_circuit_key "C">
<!ENTITY torbutton.context_menu.networksettings "Pengaturan Jaringan Tor…">
<!ENTITY torbutton.context_menu.networksettings.key "N">
-<!ENTITY torbutton.context_menu.downloadUpdate "Cek Versi Peramban Tor Terkini">
+<!ENTITY torbutton.context_menu.downloadUpdate "Periksa Pembaruan untuk Tor Browser...">
<!ENTITY torbutton.context_menu.downloadUpdate.key "U">
<!ENTITY torbutton.context_menu.cookieProtections "Perlindungan Cookie...">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Klik untuk mengaktifkan TombolTor">
<!ENTITY torbutton.prefs.security_settings "Pengaturan Keamanan Tor Browser">
-<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
+<!ENTITY torbutton.cookiedialog.title "Kelola Perlindungan Cookie">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
<!ENTITY torbutton.cookiedialog.nameCol "Nama">
<!ENTITY torbutton.cookiedialog.pathCol "Path">
-<!ENTITY torbutton.cookiedialog.protectCookie "Protect Cookie">
-<!ENTITY torbutton.cookiedialog.removeCookie "Remove Cookie">
+<!ENTITY torbutton.cookiedialog.protectCookie "Lindungi Cookie">
+<!ENTITY torbutton.cookiedialog.removeCookie "Hapus Cookie">
<!ENTITY torbutton.cookiedialog.unprotectCookie "Unprotect Cookie">
<!ENTITY torbutton.cookiedialog.removeAllBut "Remove All But Protected">
-<!ENTITY torbutton.cookiedialog.saveAllCookies "Protect New Cookies">
-<!ENTITY torbutton.cookiedialog.doNotSaveAllCookies "Do Not Protect New Cookies">
+<!ENTITY torbutton.cookiedialog.saveAllCookies "Lindungi Cookie Baru">
+<!ENTITY torbutton.cookiedialog.doNotSaveAllCookies "Jangan Lindungi Cookie Baru">
<!ENTITY torbutton.prefs.sec_caption "Tingkat Keamanan">
<!ENTITY torbutton.prefs.sec_caption_tooltip "Penggeser keamanan memungkinkan anda untuk menonaktifkan fitur browser yang dapat membuat browser anda menjadi lebih rentant dari upaya peretasan.">
<!ENTITY torbutton.prefs.sec_standard_label "Standar">
diff --git a/src/chrome/locale/id/torbutton.properties b/src/chrome/locale/id/torbutton.properties
index 89e1813c..c31e1888 100644
--- a/src/chrome/locale/id/torbutton.properties
+++ b/src/chrome/locale/id/torbutton.properties
@@ -29,12 +29,12 @@ torbutton.popup.short_torbrowser = Important Torbutton Information!\n\nTorbutton
torbutton.popup.confirm_plugins = Plugins such as Flash can harm your privacy and anonymity.\n\nThey can also bypass Tor to reveal your current location and IP address.\n\nAre you sure you want to enable plugins?\n\n
torbutton.popup.never_ask_again = Jangan pernah ditanyakan kembali
-torbutton.popup.confirm_newnym = Peramban Tor akan menutup semua jendela dan tab. Semua sesi website akan terhapus.\n\nJalankan ulang peramban Tor untuk
+torbutton.popup.confirm_newnym = Tor Browser akan menutup semua jendela dan tab. Semua sesi website akan terhapus.\n\nJalankan ulang Tor Browser untuk
torbutton.maximize_warning = Maksimalkan Browser Tor dapat mengizinkan website untuk menentukan ukuran monitor anda, yang dapat digunakan untuk track/jalur anda. kami menyarankan bahwa nda meninggalkan windows browser Tor dalam ukuran asli default nya
# Canvas permission prompt. Strings are kept here for ease of translation.
-canvas.siteprompt=Situs ini (%S) butuh untuk mengekstrak data gambar HTML5 , yang mungkin akan mengetahui identitas komputer anda.\n\nApakah anda mengizinkan peramban Tor untuk mengekstrak data gambar HTML5
+canvas.siteprompt=Situs ini (%S) butuh untuk mengekstrak data gambar HTML5 , yang mungkin akan mengetahui identitas komputer anda.\n\nApakah anda mengizinkan Tor Browser untuk mengekstrak data gambar HTML5
canvas.notNow=Tidak untuk Sekarang
canvas.notNowAccessKey=N
canvas.allow=Izinkan kedepannya
@@ -53,7 +53,7 @@ profileMigrationFailed=Migrasi dari profil %S gagal.\nSetting baru akan digunaka
# "Downloading update" string for the hamburger menu (see #28885).
# This string is kept here for ease of translation.
# LOCALIZATION NOTE: %S is the application name.
-updateDownloadingPanelUILabel=Downloading %S update
+updateDownloadingPanelUILabel=Mengunduh %S pembaruan
# .Onion Page Info prompt. Strings are kept here for ease of translation.
pageInfo_OnionEncryptionWithBitsAndProtocol=Koneksi terenkripsi (Layanan Onion, %1$S, %2$S bit kunci, %3$S)
diff --git a/src/chrome/locale/is/aboutTBUpdate.dtd b/src/chrome/locale/is/aboutTBUpdate.dtd
index a668b89c..65480323 100644
--- a/src/chrome/locale/is/aboutTBUpdate.dtd
+++ b/src/chrome/locale/is/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Uppfærsla Tor-vafra">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "Tor-vafrinn var uppfærður.">
<!ENTITY aboutTBUpdate.linkPrefix "Til að sjá allra nýjustu upplýsingar um þessa útgáfu,">
<!ENTITY aboutTBUpdate.linkLabel "heimsæktu vefsvæðið okkar">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "Breytingaannáll:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "Ný, endurhönnuð birting rása">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "Birting rása í Tor hefur verið flutt á nýjan stað og endurhönnuð! Smelltu á Vefsvæði Auðkenni hnappinn (vinstra megin við staðsetningarstikuna) til að sjá nýja framsetningu rása.">
-<!ENTITY aboutTBUpdate.learnMore "Fræðast frekar">
+<!ENTITY aboutTBUpdate.version "Útgáfa">
+<!ENTITY aboutTBUpdate.releaseDate "Release Date">
+<!ENTITY aboutTBUpdate.releaseNotes "Release Notes">
diff --git a/src/chrome/locale/is/aboutTor.dtd b/src/chrome/locale/is/aboutTor.dtd
index 0a259108..39820ded 100644
--- a/src/chrome/locale/is/aboutTor.dtd
+++ b/src/chrome/locale/is/aboutTor.dtd
@@ -6,8 +6,10 @@
<!ENTITY aboutTor.title "Um Tor">
+<!ENTITY aboutTor.viewChangelog.label "View Changelog">
+
<!ENTITY aboutTor.ready.label "Vafraðu í friði fyrir hnýsni.">
-<!ENTITY aboutTor.ready2.label "Nú ertu tilbúin(n) fyrir mestu fáanlegu vernd við vafur á netinu.">
+<!ENTITY aboutTor.ready2.label "Nú er allt klárt fyrir mestu fáanlegu vernd við vafur á netinu.">
<!ENTITY aboutTor.failure.label "Eitthvað fór úrskeiðis!">
<!ENTITY aboutTor.failure2.label "Tor virkar ekki í þessum vafra.">
diff --git a/src/chrome/locale/is/browserOnboarding.properties b/src/chrome/locale/is/browserOnboarding.properties
index 893ce908..15078a7d 100644
--- a/src/chrome/locale/is/browserOnboarding.properties
+++ b/src/chrome/locale/is/browserOnboarding.properties
@@ -14,8 +14,8 @@ onboarding.tour-tor-privacy.button=Fara á Tor-netið
onboarding.tour-tor-network=Tor-netið
onboarding.tour-tor-network.title=Farðu um ómiðstýrt netkerfi.
-onboarding.tour-tor-network.description=Tor-vafrinn tengir þig við Tor-netið sem rekið er af þúsundum sjálfboðaliða um víða veröld. Ólíkt VPN, þá er enginn einn punktur sem getur brugðist eða miðlægt firirbæri sem þú þarft að treysta til að geta notað netið án afskipta annarra.
-onboarding.tour-tor-network.button=Farðu í birtingu rása
+onboarding.tour-tor-network.description=Tor-vafrinn tengir þig við Tor-netið sem rekið er af þúsundum sjálfboðaliða um víða veröld. Ólíkt VPN, þá er enginn einn punktur sem getur brugðist eða miðlægt fyrirbæri sem þú þarft að treysta til að geta notað netið án afskipta annarra.
+onboarding.tour-tor-network.button=Fara í birtingu rása
onboarding.tour-tor-circuit-display=Birting rása
onboarding.tour-tor-circuit-display.title=Skoðaðu slóðina þína
@@ -25,16 +25,16 @@ onboarding.tour-tor-circuit-display.button=Skoða slóðina mína
onboarding.tour-tor-security=Öryggi
onboarding.tour-tor-security.title=Veldu hvernig þú vilt upplifa þetta.
onboarding.tour-tor-security.description=Við höfum einnig útbúið viðbótarstillingar þar sem þú getur breytt öryggisstigi vafrans. Öryggisstillingarnar gera kleift að loka á atriði sem hægt væri að nota til árása á tölvuna þína. Smelltu hér fyrir neðan til að skoða hvernig hinir mismunandi valkostir virka.
-onboarding.tour-tor-security.button=Yfirfara stillingar
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=Ábendingar fyrir upplifunina
onboarding.tour-tor-expect-differences.title=Gerður ráð fyrir að eitthvað verði öðruvísi.
-onboarding.tour-tor-expect-differences.description=Vegna allra öryggis- og gagnaverndareiginleika Tor, þá gæti upplifun þín af vafri á internetinu orðið eilítið öðruvísi en annars. Hlutirnir gerast kannski aðeins hægar og það fer eftir öryggisstillingunum þínum hvort sum atriði virki eða birtist yfirhöfuð. Þú gætir líka lent í því að vera reglulega spurð(ur) hvort þú sért mannvera eða vélmenni.
-onboarding.tour-tor-expect-differences.button=Skoðaðu algengar spurningar - FAQ
+onboarding.tour-tor-expect-differences.description=Vegna allra öryggis- og gagnaverndareiginleika Tor, þá gæti upplifun þín af vafri á internetinu orðið eilítið öðruvísi en annars væri. Hlutirnir gerast kannski aðeins hægar og það fer eftir öryggisstillingunum þínum hvort sum atriði virki eða birtist yfirhöfuð. Þú gætir líka lent í því að vera reglulega spurð(ur) hvort þú sért mannvera eða vélmenni.
+onboarding.tour-tor-expect-differences.button=Skoða algengar spurningar - FAQ
onboarding.tour-tor-onion-services=Onion-þjónustur
onboarding.tour-tor-onion-services.title=Fáðu viðbótaröryggi.
-onboarding.tour-tor-onion-services.description=Onion-þjónustur eru vefsvæði sem enda á .onion viðskeyti, vefsvæði sem gefa útgefendum efnis og þeim sem skoða það aukna vernd gagnvart ritskoðun. Onion-þjónustur gera öllum kleift að birta efni eða eigin þjónustu nafnlaust. Smelltu hr fyrir neðan til að skoða onion-vefsvæði DuckDuckGo.
+onboarding.tour-tor-onion-services.description=Onion-þjónustur eru vefsvæði sem enda á .onion viðskeyti, vefsvæði sem gefa útgefendum efnis og þeim sem skoða það aukna vernd gagnvart ritskoðun. Onion-þjónustur gera öllum kleift að birta efni eða eigin þjónustu nafnlaust. Smelltu hér fyrir neðan til að skoða onion-vefsvæði DuckDuckGo.
onboarding.tour-tor-onion-services.button=Heimsækja Onion-vef
# Circuit Display onboarding.
diff --git a/src/chrome/locale/is/torbutton.dtd b/src/chrome/locale/is/torbutton.dtd
index 2468114e..b408ac95 100644
--- a/src/chrome/locale/is/torbutton.dtd
+++ b/src/chrome/locale/is/torbutton.dtd
@@ -31,7 +31,7 @@
<!ENTITY torbutton.prefs.sec_safest_label "Öruggast">
<!ENTITY torbutton.prefs.sec_safest_description "Leyfir aðeins þá eiginleika vefsvæða sem krafist er fyrir beinan lestur (static sites) og grunnþjónustur. Þessar breytingar hafa áhrif á myndir, margmiðlunargögn og skriftur.">
<!ENTITY torbutton.prefs.sec_safest_list_label "Með öruggustu stillingum:">
-<!ENTITY torbutton.prefs.sec_learn_more_label "Læra meira">
+<!ENTITY torbutton.prefs.sec_learn_more_label "Fræðast frekar">
<!ENTITY torbutton.prefs.sec_js_on_https_sites_only "JavaScript er óvirkt á öllum ekki-HTTPS vefjum.">
<!ENTITY torbutton.prefs.sec_js_disabled "JavaScript er sjálfgefið óvirkt á öllum vefsvæðum.">
<!ENTITY torbutton.prefs.sec_limit_typography "Sumt letur og stærðfræðitákn eru óvirk.">
diff --git a/src/chrome/locale/it/aboutTBUpdate.dtd b/src/chrome/locale/it/aboutTBUpdate.dtd
index 9525a0f4..e40ec576 100644
--- a/src/chrome/locale/it/aboutTBUpdate.dtd
+++ b/src/chrome/locale/it/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Aggiornamento del Browser TOR">
+<!ENTITY aboutTBUpdate.changelogTitle "Cronologia Tor Browser">
<!ENTITY aboutTBUpdate.updated "Il Browser TOR è stato aggiornato.">
<!ENTITY aboutTBUpdate.linkPrefix "Per maggiori informazioni su questa versione,">
<!ENTITY aboutTBUpdate.linkLabel "visita il nostro sito web">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "Log dei cambiamenti:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "Visualizzazione circuito nuova e ridisegnata">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "La visualizzazione del circuito Tor è stata spostata e migliorata! Clicca il pulsante di identità del sito (posto a sinistra dell'URL) per vedere il nuovo circuito.">
-<!ENTITY aboutTBUpdate.learnMore "Maggiori informazioni">
+<!ENTITY aboutTBUpdate.version "Versione">
+<!ENTITY aboutTBUpdate.releaseDate "Data di uscita">
+<!ENTITY aboutTBUpdate.releaseNotes "Note di rilascio">
diff --git a/src/chrome/locale/it/aboutTor.dtd b/src/chrome/locale/it/aboutTor.dtd
index b9687c45..fb65f139 100644
--- a/src/chrome/locale/it/aboutTor.dtd
+++ b/src/chrome/locale/it/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "Info su Tor">
+<!ENTITY aboutTor.viewChangelog.label "Vedi cronologia">
+
<!ENTITY aboutTor.ready.label "Naviga. Privatamente.">
<!ENTITY aboutTor.ready2.label "Sei pronto per l'esperienza di navigazione più privata al mondo.">
<!ENTITY aboutTor.failure.label "Qualcosa è Andato Storto!">
diff --git a/src/chrome/locale/it/browserOnboarding.properties b/src/chrome/locale/it/browserOnboarding.properties
index e15164f4..4dae1440 100644
--- a/src/chrome/locale/it/browserOnboarding.properties
+++ b/src/chrome/locale/it/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=Vedi il mio percorso
onboarding.tour-tor-security=Sicurezza
onboarding.tour-tor-security.title=Scegli la tua esperienza.
onboarding.tour-tor-security.description=Ti forniamo anche impostazioni aggiuntive per aumentare la sicurezza del tuo browser. Le nostre impostazioni di sicurezza ti permettono di bloccare elementi che potrebbero essere utilizzati per attaccare il tuo computer. Clicca qui sotto per vedere cosa fanno le diverse opzioni.
-onboarding.tour-tor-security.button=Valuta le impostazioni
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=Consigli per l'esperienza
onboarding.tour-tor-expect-differences.title=Aspettati delle differenze.
diff --git a/src/chrome/locale/ja/aboutTBUpdate.dtd b/src/chrome/locale/ja/aboutTBUpdate.dtd
index 184c8a5e..413c965c 100644
--- a/src/chrome/locale/ja/aboutTBUpdate.dtd
+++ b/src/chrome/locale/ja/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Tor Browser アップデート">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "Tor Browser アップデート完了">
<!ENTITY aboutTBUpdate.linkPrefix "このリリースについての最新情報を入手するため、">
<!ENTITY aboutTBUpdate.linkLabel "我々のウェブサイトを見てください">
<!ENTITY aboutTBUpdate.linkSuffix "。">
-<!ENTITY aboutTBUpdate.changeLogHeading "変更履歴">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "New, Redesigned Circuit Display">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "The Tor circuit display has been relocated and improved! Click the Site Identity button (located on the left side of the URL bar) to see the new circuit display.">
-<!ENTITY aboutTBUpdate.learnMore "さらに詳しく">
+<!ENTITY aboutTBUpdate.version "バージョン">
+<!ENTITY aboutTBUpdate.releaseDate "Release Date">
+<!ENTITY aboutTBUpdate.releaseNotes "リリースノート">
diff --git a/src/chrome/locale/ja/aboutTor.dtd b/src/chrome/locale/ja/aboutTor.dtd
index 1c30c0d0..a047f9a9 100644
--- a/src/chrome/locale/ja/aboutTor.dtd
+++ b/src/chrome/locale/ja/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "Tor について">
+<!ENTITY aboutTor.viewChangelog.label "View Changelog">
+
<!ENTITY aboutTor.ready.label "探索する。 プライベートに。">
<!ENTITY aboutTor.ready2.label "世界で最もプライベートなブラウジングを体験する準備が整いました。">
<!ENTITY aboutTor.failure.label "何かが間違っています!">
diff --git a/src/chrome/locale/ja/browserOnboarding.properties b/src/chrome/locale/ja/browserOnboarding.properties
index 40cf75b4..931b62a0 100644
--- a/src/chrome/locale/ja/browserOnboarding.properties
+++ b/src/chrome/locale/ja/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=私のパスを見る
onboarding.tour-tor-security=セキュリティ
onboarding.tour-tor-security.title=あなたの体験を選択する。
onboarding.tour-tor-security.description=また、ブラウザのセキュリティを強化するための追加設定も提供しています。私たちのセキュリティ設定では、コンピュータの攻撃に使用される可能性のある要素をブロックすることができます。以下をクリックして、さまざまな設定の機能を確認してください
-onboarding.tour-tor-security.button=設定の確認
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=体験のヒント。
onboarding.tour-tor-expect-differences.title=いくつかの違いを理解する。
diff --git a/src/chrome/locale/ka/aboutTBUpdate.dtd b/src/chrome/locale/ka/aboutTBUpdate.dtd
index 0f530ef5..0b1b779c 100644
--- a/src/chrome/locale/ka/aboutTBUpdate.dtd
+++ b/src/chrome/locale/ka/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Tor-ბრაუზერის განახლება">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor-ბრაუზერის ცვლილებების ისტორია">
<!ENTITY aboutTBUpdate.updated "Tor-ბრაუზერი განახლებულია.">
<!ENTITY aboutTBUpdate.linkPrefix "ამ გამოშვების შესახებ უახლესი ინფორმაციის მისაღებად, ">
<!ENTITY aboutTBUpdate.linkLabel "ეწვიეთ ჩვენს ვებსაიტს">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "ცვლილებები:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "კავშირის წრედის არე განახლებული იერსახით">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "Tor-ის კავშირის წრედის არემ ადგილი შეიცვალა და მეტად გაუმჯობესებულია! დაწკაპეთ საიტის ნამდვილობის (მისამართების ველის მარცხნივ განთავსებულ) აღმნიშვნელ ნიშანზე, განახლებული წრედის არეს გამოსაჩენად.">
-<!ENTITY aboutTBUpdate.learnMore "იხილეთ ვრცლად">
+<!ENTITY aboutTBUpdate.version "ვერსია">
+<!ENTITY aboutTBUpdate.releaseDate "გამოშვების თარიღი">
+<!ENTITY aboutTBUpdate.releaseNotes "გამოშვების შენიშვნები">
diff --git a/src/chrome/locale/ka/aboutTor.dtd b/src/chrome/locale/ka/aboutTor.dtd
index de623ff9..bdf92b30 100644
--- a/src/chrome/locale/ka/aboutTor.dtd
+++ b/src/chrome/locale/ka/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "Tor-ის შესახებ">
+<!ENTITY aboutTor.viewChangelog.label "ცვლილებების ნახვა">
+
<!ENTITY aboutTor.ready.label "მოინახულეთ. უსაფრთხოდ.">
<!ENTITY aboutTor.ready2.label "თქვენ მზად ხართ მსოფლიოში ყველაზე მეტად დაცული და პირადი ბრაუზერის გამოყენებისთვის.">
<!ENTITY aboutTor.failure.label "რაღაც რიგზე ვერაა!">
diff --git a/src/chrome/locale/ka/browserOnboarding.properties b/src/chrome/locale/ka/browserOnboarding.properties
index 2490b234..46a2a11b 100644
--- a/src/chrome/locale/ka/browserOnboarding.properties
+++ b/src/chrome/locale/ka/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=არხის ნახვა
onboarding.tour-tor-security=უსაფრთხოება
onboarding.tour-tor-security.title=მოარგეთ საკუთარ მოთხოვნილებებს
onboarding.tour-tor-security.description=ჩვენ ასევე გთავაზობთ დამატებით პარამეტრებს, ბრაუზერის უსაფრთხოების კიდევ უფრო მეტად ასამაღლებლად. ჩვენი უსაფრთხოების პარამეტრები, საშუალებას გაძლევთ შეზღუდოთ გვერდის ის ნაწილები, რომლებიც თქვენს კომპიუტერზე შეტევისთვის შეიძლება გამოიყენონ. დაწკაპეთ ქვემოთ და იხილეთ ამ პარამეტრების შესახებ ვრცლად.
-onboarding.tour-tor-security.button=პარამეტრების გადახედვა
+onboarding.tour-tor-security-level.button=უსაფრთხოების დონის ნახვა
onboarding.tour-tor-expect-differences=გამოყენებასთან დაკავშირებული საკითხები
onboarding.tour-tor-expect-differences.title=მოსალოდნელი ცვლილებები.
diff --git a/src/chrome/locale/ka/torbutton.properties b/src/chrome/locale/ka/torbutton.properties
index f5c6b912..e6750b07 100644
--- a/src/chrome/locale/ka/torbutton.properties
+++ b/src/chrome/locale/ka/torbutton.properties
@@ -6,7 +6,7 @@ torbutton.circuit_display.relay = გადამცემი
torbutton.circuit_display.tor_bridge = ხიდი
torbutton.circuit_display.unknown_country = უცნობი ქვეყანა
torbutton.circuit_display.guard = მცველი
-torbutton.circuit_display.guard_note = თქვენი [Guard] კვანძი შესაძლოა არ შეიცვალოს.
+torbutton.circuit_display.guard_note = თქვენი [მცველი] კვანძი შესაძლოა არ შეიცვალოს.
torbutton.circuit_display.learn_more = იხილეთ ვრცლად
torbutton.content_sizer.margin_tooltip = Tor-ბრაუზერი ამატებს მინდვრებს კიდეებზე, რომ თქვენი ფანჯრის სიგანე და სიმაღლე ნაკლებად გამორჩეული და შესამჩნევი იყოს, რაც შეუმცირებს სხვებს, ინტერნეტში თქვენი დევნის შესაძლებლობებს.
torbutton.panel.tooltip.disabled = დაკლიკეთ Tor-ის ჩასართავად
diff --git a/src/chrome/locale/ko/aboutTBUpdate.dtd b/src/chrome/locale/ko/aboutTBUpdate.dtd
index b8b08d7b..e95d6daf 100644
--- a/src/chrome/locale/ko/aboutTBUpdate.dtd
+++ b/src/chrome/locale/ko/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Tor 브라우저 업데이트">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "Tor 브라우저가 업데이트되었습니다.">
<!ENTITY aboutTBUpdate.linkPrefix "이번 업데이트에 대해 더 알고 싶으시면">
<!ENTITY aboutTBUpdate.linkLabel "저희 사이트를 방문해 주세요">
<!ENTITY aboutTBUpdate.linkSuffix " ">
-<!ENTITY aboutTBUpdate.changeLogHeading "변경사항:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "서킷 표시가 일신하고 재설계했습니다">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "Tor 서킷 표시를 이전하고 개량했습니다! 새 서킷 표시를 보려고 Site Identity 버튼 (URL 막대의 왼쪽) 클릭하십시오.">
-<!ENTITY aboutTBUpdate.learnMore "더 알아보기">
+<!ENTITY aboutTBUpdate.version "버젼">
+<!ENTITY aboutTBUpdate.releaseDate "Release Date">
+<!ENTITY aboutTBUpdate.releaseNotes "릴리즈 노트">
diff --git a/src/chrome/locale/ko/aboutTor.dtd b/src/chrome/locale/ko/aboutTor.dtd
index 984b53af..54651755 100644
--- a/src/chrome/locale/ko/aboutTor.dtd
+++ b/src/chrome/locale/ko/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "Tor에 대해서">
+<!ENTITY aboutTor.viewChangelog.label "View Changelog">
+
<!ENTITY aboutTor.ready.label "은밀하게 탐색하십시오.">
<!ENTITY aboutTor.ready2.label "당신은 온세상이 가장 은밀한 탐색의 경험을 준비가 되었습니다.">
<!ENTITY aboutTor.failure.label "뭔가 잘못되었습니다!">
diff --git a/src/chrome/locale/ko/browserOnboarding.properties b/src/chrome/locale/ko/browserOnboarding.properties
index b3c9363b..3780d406 100644
--- a/src/chrome/locale/ko/browserOnboarding.properties
+++ b/src/chrome/locale/ko/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=See My Path
onboarding.tour-tor-security= 보안
onboarding.tour-tor-security.title=Choose your experience.
onboarding.tour-tor-security.description=We also provide you with additional settings for bumping up your browser security. Our Security Settings allow you to block elements that could be used to attack your computer. Click below to see what the different options do.
-onboarding.tour-tor-security.button=Review Settings
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=Experience Tips
onboarding.tour-tor-expect-differences.title=Expect some differences.
diff --git a/src/chrome/locale/nb/aboutTBUpdate.dtd b/src/chrome/locale/nb/aboutTBUpdate.dtd
index 37cdd9b3..658bcd96 100644
--- a/src/chrome/locale/nb/aboutTBUpdate.dtd
+++ b/src/chrome/locale/nb/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Oppdatering av Tor-nettleseren">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "Tor-nettleseren har blitt oppdatert.">
<!ENTITY aboutTBUpdate.linkPrefix "For den mest oppdaterte informasjonen om denne utgivelsen,">
<!ENTITY aboutTBUpdate.linkLabel "besøk vårt nettsted">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "Endringslogg:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "New, Redesigned Circuit Display">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "The Tor circuit display has been relocated and improved! Click the Site Identity button (located on the left side of the URL bar) to see the new circuit display.">
-<!ENTITY aboutTBUpdate.learnMore "Lær mer">
+<!ENTITY aboutTBUpdate.version "Versjon">
+<!ENTITY aboutTBUpdate.releaseDate "Utgivelsesdato">
+<!ENTITY aboutTBUpdate.releaseNotes "Versjonsnotater">
diff --git a/src/chrome/locale/nb/aboutTor.dtd b/src/chrome/locale/nb/aboutTor.dtd
index 708d57dc..8fb5ba56 100644
--- a/src/chrome/locale/nb/aboutTor.dtd
+++ b/src/chrome/locale/nb/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "Om Tor">
+<!ENTITY aboutTor.viewChangelog.label "View Changelog">
+
<!ENTITY aboutTor.ready.label "Utforsk. Privat.">
<!ENTITY aboutTor.ready2.label "Du er klar for verdens mest private surfing opplevelse.">
<!ENTITY aboutTor.failure.label "Noe gikk galt!">
diff --git a/src/chrome/locale/nb/browserOnboarding.properties b/src/chrome/locale/nb/browserOnboarding.properties
index f37c87b0..41fa07c1 100644
--- a/src/chrome/locale/nb/browserOnboarding.properties
+++ b/src/chrome/locale/nb/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=Se Min Vei
onboarding.tour-tor-security=Sikkerhet
onboarding.tour-tor-security.title=Velg din opplevelse.
onboarding.tour-tor-security.description=Vi gir deg også tilleggsinnstillinger for å støte på nettleserens sikkerhet. Våre sikkerhetsinnstillinger lar deg blokkere elementer som kan brukes til å angripe datamaskinen din. Klikk nedenfor for å se hva de forskjellige alternativene gjør.
-onboarding.tour-tor-security.button=Gjennomgå Innstillinger
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=Opplevelsestips
onboarding.tour-tor-expect-differences.title=Forvent noen forskjeller.
diff --git a/src/chrome/locale/nl/aboutTBUpdate.dtd b/src/chrome/locale/nl/aboutTBUpdate.dtd
index f780a834..6b095994 100644
--- a/src/chrome/locale/nl/aboutTBUpdate.dtd
+++ b/src/chrome/locale/nl/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Tor Browser Update">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "Tor Browser is bijgewerkt.">
<!ENTITY aboutTBUpdate.linkPrefix "Voor de meest recentste informatie over deze release,">
<!ENTITY aboutTBUpdate.linkLabel "bezoek onze website">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "Wijzigingslogboek:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "Nieuw, Herontworpen Circuit Venster">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "The Tor circuit display has been relocated and improved! Click the Site Identity button (located on the left side of the URL bar) to see the new circuit display.">
-<!ENTITY aboutTBUpdate.learnMore "Meer info">
+<!ENTITY aboutTBUpdate.version "Versie">
+<!ENTITY aboutTBUpdate.releaseDate "Release datum">
+<!ENTITY aboutTBUpdate.releaseNotes "Uitgaveopmerkingen">
diff --git a/src/chrome/locale/nl/aboutTor.dtd b/src/chrome/locale/nl/aboutTor.dtd
index a66ae026..b01a2f92 100644
--- a/src/chrome/locale/nl/aboutTor.dtd
+++ b/src/chrome/locale/nl/aboutTor.dtd
@@ -6,8 +6,10 @@
<!ENTITY aboutTor.title "Over Tor">
+<!ENTITY aboutTor.viewChangelog.label "View Changelog">
+
<!ENTITY aboutTor.ready.label "Onderzoek. Privé.">
-<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
+<!ENTITY aboutTor.ready2.label "Je bent klaar voor de meest private browsing ervaring van de wereld">
<!ENTITY aboutTor.failure.label "Er ging iets mis!">
<!ENTITY aboutTor.failure2.label "Tor werkt niet in deze browser.">
@@ -15,12 +17,12 @@
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/">
<!ENTITY aboutTor.torbrowser_user_manual_questions.label "Vragen?">
-<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Bekijk onze Tor Browser Handleiding">
<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Gebruikshandleiding">
-<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.tor_mission.label "Het Tor Project is een US 501(c)(3) goede-doelen organisatie die de Rechten en Vrijheden van de Mens bevordert door vrije open source anonimiteit en privacy technology te maken en toe te passen, hun ongerestricteerde beschikbaarheid en gebruik te ondersteunen, en hun wetenschappelijke en populaire begrip te bevorderen.">
<!ENTITY aboutTor.getInvolved.label "Doe Mee">
<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/nl/browserOnboarding.properties b/src/chrome/locale/nl/browserOnboarding.properties
index 247eb89b..db8aa2d4 100644
--- a/src/chrome/locale/nl/browserOnboarding.properties
+++ b/src/chrome/locale/nl/browserOnboarding.properties
@@ -4,38 +4,38 @@
onboarding.tour-tor-welcome=Welkom
onboarding.tour-tor-welcome.title=Je bent klaar.
-onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You’re now protected against tracking, surveillance, and censorship. This quick onboarding will show you how.
-onboarding.tour-tor-welcome.button=Start nu.
+onboarding.tour-tor-welcome.description=TOR Browser biedt de hoogste standaard van privacy en beveiliging terwijl u het web bezoekt. U bent nu beschermt tegen volgen, monitoring en censuur. Deze snelle 'Welkom tour' zal u laten zien hoe dit werkt.
+onboarding.tour-tor-welcome.button=Start nu
onboarding.tour-tor-privacy=Privacy
-onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
-onboarding.tour-tor-privacy.description=Tor Browser isolates cookies and deletes your browser history after your session. These modifications ensure your privacy and security are protected in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.title=Snub volgers en neuzers.
+onboarding.tour-tor-privacy.description=Tor Browser isoleert cookies en verwijdrt jouw browser historie na jouw sessie. Deze wijzigingen waarborgen dat jouw privacy en veiligheid beschermd zijn in de browser. Klik 'Tor Netwerk" om te leren hoe we jou op netwerk niveau beveiligen.
onboarding.tour-tor-privacy.button=Ga naar het Tor Netwerk
onboarding.tour-tor-network=Tor Netwerk
onboarding.tour-tor-network.title=Reis over een gedecentraliseerd netwerk.
-onboarding.tour-tor-network.description=Tor Browser connects you to the Tor network run by thousands of volunteers around the world. Unlike a VPN, there’s no one point of failure or centralized entity you need to trust in order to enjoy the internet privately.
+onboarding.tour-tor-network.description=TOR Browser verbind u met het TOR netwerk, welke wordt mogelijk gemaakt door duizenden vrijwilligers over de hele wereld. Anders dan een VPN is er niet slecht 1 punt waar het mis kan gaan, en er is geen centrale autoriteit waar u vertrouwen in moet hebben om in privé gebruik te maken van het internet.
onboarding.tour-tor-network.button=Ga naar het Circuit Venster
onboarding.tour-tor-circuit-display=Circuit Venster
onboarding.tour-tor-circuit-display.title=Zie jouw route.
-onboarding.tour-tor-circuit-display.description=Voor elk domein dat je bezoekt wordt jouw verkeer omgeleid en vercijferd in een circuit over drie Tor omleidingen over de wereld. Geen website weet waar je verbinding vandaan maakt. Je kunt een nieuwe route aanvragen door te klikken op "Nieuw Circuit voor deze Site' in ons Circuit Venster.
-onboarding.tour-tor-circuit-display.button=Zie Mijn Route
+onboarding.tour-tor-circuit-display.description=Voor elk domein dat je bezoekt wordt jouw verkeer omgeleid en vercijferd in een circuit over drie Tor omleidingen over de wereld. Geen website weet waar je verbinding vandaan maakt. Je kunt een nieuwe circuit aanvragen door te klikken op "Nieuw Circuit voor deze Site' in ons Circuit Venster.
+onboarding.tour-tor-circuit-display.button=Zie Mijn Pad
onboarding.tour-tor-security=Beveiliging
onboarding.tour-tor-security.title=Kies jouw ervaring.
-onboarding.tour-tor-security.description=We also provide you with additional settings for bumping up your browser security. Our Security Settings allow you to block elements that could be used to attack your computer. Click below to see what the different options do.
-onboarding.tour-tor-security.button=Herzie Instellingen
+onboarding.tour-tor-security.description=We bieden ook additionele instellingen om de veiligheid van uw browser te verhogen. Onze 'Beveiligingsinstellingen' maken het mogelijk om elementen te blokkeren welk gebruikt zouden kunnen worden om uw computer aan te vallen. Klik hieronder om te zien wat de verschillende opties doen.
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=Ervaring tips
onboarding.tour-tor-expect-differences.title=Verwacht enige verschillen.
-onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by Tor, your experience while browsing the internet may be a little different. Things may be a bit slower, and depending on your security level, some elements may not work or load. You may also be asked to prove you are a human and not a robot.
+onboarding.tour-tor-expect-differences.description=Met alle beveilingings- en privacy-mogelijkheden beschikbaar gesteld door TOR, is je ervaring bij het bezoeken van internet misschien een beetje anders dan je gewent bent. Dingen gaan misschien iets langzamer, en afhankelijk van het door u gekozen beveiligingsniveau, zullen sommige elementen misschien niet werken of niet laden.
onboarding.tour-tor-expect-differences.button=Zie de VGVn
-onboarding.tour-tor-onion-services=Onion Services
+onboarding.tour-tor-onion-services=Onion Diensten
onboarding.tour-tor-onion-services.title=Wees extra beschermd.
-onboarding.tour-tor-onion-services.description=Onion services are sites that end with a .onion that provide extra protections to publishers and visitors, including added safeguards against censorship. Onion services allow anyone to provide content and services anonymously. Click below to visit the DuckDuckGo onion site.
-onboarding.tour-tor-onion-services.button=Visit an Onion
+onboarding.tour-tor-onion-services.description=Onion diensten zijn sites welke eindigen op .onion. Deze bieden extra bescherming voor publicisten en bezoekers, inclusief toegevoegde beveiligingsmechanismes tegen censuur. Onion diensten stellen iedereen in staat om content en diensten in anonimiteit aan te bieden. Klik hieronder om de DuckDuckGo onion site te bezoeken.
+onboarding.tour-tor-onion-services.button=Bezoek een Onion
# Circuit Display onboarding.
onboarding.tor-circuit-display.next=Volgende
@@ -48,7 +48,7 @@ onboarding.tor-circuit-display.intro.title=Hoe werken circuits?
onboarding.tor-circuit-display.intro.msg=Circuits worden gemaakt van willekeurig toegekende omleidingen, die computers over de wereld zijn, ingesteld om Tor verkeer door te sturen.
onboarding.tor-circuit-display.diagram.title=Circuit Venster
-onboarding.tor-circuit-display.diagram.msg=This diagram shows the relays that make up the circuit for this website. To prevent linking of activity across different sites, each website gets a different circuit.
+onboarding.tor-circuit-display.diagram.msg=Dit diagram laat zien dat de relays een circuit vormen naar deze website. Om te voorkomen dat activiteit wordt bijgehouden tussen bezoeken aan verschillende websites, wordt voor elke website een apart circuit opgezet.
onboarding.tor-circuit-display.new-circuit.title=Heb je een nieuw circuit nodig?
-onboarding.tor-circuit-display.new-circuit.msg=If you are not able to connect to the website you’re trying to visit or it is not loading properly, then you can use this button to reload the site with a new circuit.
+onboarding.tor-circuit-display.new-circuit.msg=Als u niet kunt verbinden met de website welke u probeert te bezoeken, dan kunt u deze knop gebruiken om de site opnieuw te laden met een nieuw circuit.
diff --git a/src/chrome/locale/nl/torbutton.properties b/src/chrome/locale/nl/torbutton.properties
index 2eee0573..c3441858 100644
--- a/src/chrome/locale/nl/torbutton.properties
+++ b/src/chrome/locale/nl/torbutton.properties
@@ -6,7 +6,7 @@ torbutton.circuit_display.relay = Relay
torbutton.circuit_display.tor_bridge = Bridge
torbutton.circuit_display.unknown_country = Onbekend land
torbutton.circuit_display.guard = Bewaking
-torbutton.circuit_display.guard_note = Your [Guard] node may not change.
+torbutton.circuit_display.guard_note = Jouw [Guard] node wijzigt mogelijk niet.
torbutton.circuit_display.learn_more = Lees meer
torbutton.content_sizer.margin_tooltip = Tor Browser voegt deze rand toe om de afmetingen van het venster minder uit de toon te laten vallen. Dit maakt het moeilijker om u online te volgen.
torbutton.panel.tooltip.disabled = Hier klikken om Tor in te schakelen
@@ -53,7 +53,7 @@ profileMigrationFailed=Migreren van uw bestaande %S profiel is mislukt.\nNieuwe
# "Downloading update" string for the hamburger menu (see #28885).
# This string is kept here for ease of translation.
# LOCALIZATION NOTE: %S is the application name.
-updateDownloadingPanelUILabel=Downloading %S update
+updateDownloadingPanelUILabel=Ophalen %S update
# .Onion Page Info prompt. Strings are kept here for ease of translation.
pageInfo_OnionEncryptionWithBitsAndProtocol=Verbinding versleuteld (Oniondienst, %1$S, %2$S bit sleutels, %3$S)
diff --git a/src/chrome/locale/pl/aboutTBUpdate.dtd b/src/chrome/locale/pl/aboutTBUpdate.dtd
index b4d70158..01075e28 100644
--- a/src/chrome/locale/pl/aboutTBUpdate.dtd
+++ b/src/chrome/locale/pl/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Aktualizacja przeglądarki Tor">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "Tor Browser została zaktualizowana.">
<!ENTITY aboutTBUpdate.linkPrefix "Aby uzyskać najbardziej aktualne informacje o tym wydaniu,">
<!ENTITY aboutTBUpdate.linkLabel "odwiedź naszą stronę internetową">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "Lista zmian:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "Nowy, przeprojektowany wyświetlacz obwodu">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "Wyświetlacz obwodu Tor został przeniesiony i ulepszony! Kliknij przycisk Identyfikacja strony (znajdujący się po lewej stronie paska adresu URL), aby zobaczyć nowy widok obwodu.">
-<!ENTITY aboutTBUpdate.learnMore "Dowiedz się więcej">
+<!ENTITY aboutTBUpdate.version "Wersja">
+<!ENTITY aboutTBUpdate.releaseDate "Data wydania">
+<!ENTITY aboutTBUpdate.releaseNotes "Informacje o wydaniu">
diff --git a/src/chrome/locale/pl/aboutTor.dtd b/src/chrome/locale/pl/aboutTor.dtd
index 2e3c73f6..280d2bef 100644
--- a/src/chrome/locale/pl/aboutTor.dtd
+++ b/src/chrome/locale/pl/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "Informacje na temat Tor'a">
+<!ENTITY aboutTor.viewChangelog.label "View Changelog">
+
<!ENTITY aboutTor.ready.label "Odkrywaj. Prywatnie.">
<!ENTITY aboutTor.ready2.label "Jesteś gotowy na najbardziej prywatne doświadczenie przeglądania na świecie.">
<!ENTITY aboutTor.failure.label "Coś poszło nie tak!">
diff --git a/src/chrome/locale/pl/browserOnboarding.properties b/src/chrome/locale/pl/browserOnboarding.properties
index 6b63e5cf..4e3f88f6 100644
--- a/src/chrome/locale/pl/browserOnboarding.properties
+++ b/src/chrome/locale/pl/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=Zobacz moją ścieżkę
onboarding.tour-tor-security=Bezpieczeństwo
onboarding.tour-tor-security.title=Wybierz swoje doświadczenie.
onboarding.tour-tor-security.description=Umożliwiamy także dodatkowe ustawienia dla zwiększenia bezpieczeństwa Twojej przeglądarki. Nasze Ustawienia Bezpieczeństwa pozwalają Ci blokować elementy które mogą być użyte do ataku Twojego komputera. Kliknij poniżej aby zobaczyć co różne opcje robią.
-onboarding.tour-tor-security.button=Przeglądaj ustawienia
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=Wskazówki do doświadczenia
onboarding.tour-tor-expect-differences.title=Spodziewaj się różnic.
diff --git a/src/chrome/locale/pl/torbutton.properties b/src/chrome/locale/pl/torbutton.properties
index 864804ba..23e9744f 100644
--- a/src/chrome/locale/pl/torbutton.properties
+++ b/src/chrome/locale/pl/torbutton.properties
@@ -53,7 +53,7 @@ profileMigrationFailed=Migracja Twojego isniejącego profilu %S nie powiodła si
# "Downloading update" string for the hamburger menu (see #28885).
# This string is kept here for ease of translation.
# LOCALIZATION NOTE: %S is the application name.
-updateDownloadingPanelUILabel=Downloading %S update
+updateDownloadingPanelUILabel=Pobieranie aktualizacji %S
# .Onion Page Info prompt. Strings are kept here for ease of translation.
pageInfo_OnionEncryptionWithBitsAndProtocol=Połączenie zaszyfrowane (usługa Onion, %1$S, %2$S klucze bitowe, %3$S)
diff --git a/src/chrome/locale/pt-BR/aboutTBUpdate.dtd b/src/chrome/locale/pt-BR/aboutTBUpdate.dtd
index d349e8ad..3458c99d 100644
--- a/src/chrome/locale/pt-BR/aboutTBUpdate.dtd
+++ b/src/chrome/locale/pt-BR/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Atualizar o Navegador Tor">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "O Navegador Tor foi atualizado.">
<!ENTITY aboutTBUpdate.linkPrefix "Para obter as informações mais recentes sobre esta versão">
<!ENTITY aboutTBUpdate.linkLabel "visite nosso site.">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "Registro de modificações:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "Novo display de circuito reprojetado">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "O display do circuito Tor foi realocado e melhorado! Clique no Site botão de identidade (localizado no lado esquerdo da barra de URL) para ver o novo display do circuito.">
-<!ENTITY aboutTBUpdate.learnMore "Saiba Mais">
+<!ENTITY aboutTBUpdate.version "Versão">
+<!ENTITY aboutTBUpdate.releaseDate "Release Date">
+<!ENTITY aboutTBUpdate.releaseNotes "Notas da Versão">
diff --git a/src/chrome/locale/pt-BR/aboutTor.dtd b/src/chrome/locale/pt-BR/aboutTor.dtd
index 130f2b13..c9bc04ae 100644
--- a/src/chrome/locale/pt-BR/aboutTor.dtd
+++ b/src/chrome/locale/pt-BR/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "Sobre Tor">
+<!ENTITY aboutTor.viewChangelog.label "View Changelog">
+
<!ENTITY aboutTor.ready.label "Navegar. Com privacidade.">
<!ENTITY aboutTor.ready2.label "Você está pronto para a maior experiência de navegação privada do mundo.">
<!ENTITY aboutTor.failure.label "Alguma coisa deu errado!">
diff --git a/src/chrome/locale/pt-BR/browserOnboarding.properties b/src/chrome/locale/pt-BR/browserOnboarding.properties
index b4d4fc8c..8d309797 100644
--- a/src/chrome/locale/pt-BR/browserOnboarding.properties
+++ b/src/chrome/locale/pt-BR/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=Ver Meu Caminho
onboarding.tour-tor-security=Segurança
onboarding.tour-tor-security.title=Escolha sua experiência.
onboarding.tour-tor-security.description=Nós também fornecemos a você configurações adicionais para aumentar a segurança do seu browser. Nossas Configurações de Segurança permitem você bloquear elementos que podem ser utilizados para atacar o seu computador. Clique abaixo para ver o que as diferentes opções fazem.
-onboarding.tour-tor-security.button=Reveja Configurações
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=Dicas de Experiência
onboarding.tour-tor-expect-differences.title=Espere algumas diferenças.
diff --git a/src/chrome/locale/ru/aboutTBUpdate.dtd b/src/chrome/locale/ru/aboutTBUpdate.dtd
index b246094d..9209be25 100644
--- a/src/chrome/locale/ru/aboutTBUpdate.dtd
+++ b/src/chrome/locale/ru/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Обновление Tor Browser">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "Tor Browser обновлен.">
<!ENTITY aboutTBUpdate.linkPrefix "Самая свежая информация об этой версии — ">
<!ENTITY aboutTBUpdate.linkLabel "на нашем сайте">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "Журнал изменений:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "Цепочка Tor отображается по-новому">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "Цепочка узлов Tor теперь имеет другой, улучшенный вид. Нажмите на значок слева от адреса сайта, чтобы увидеть цепочку.">
-<!ENTITY aboutTBUpdate.learnMore "Подробнее">
+<!ENTITY aboutTBUpdate.version "Версия">
+<!ENTITY aboutTBUpdate.releaseDate "Release Date">
+<!ENTITY aboutTBUpdate.releaseNotes "Release Notes">
diff --git a/src/chrome/locale/ru/aboutTor.dtd b/src/chrome/locale/ru/aboutTor.dtd
index 611fc80a..84075a89 100644
--- a/src/chrome/locale/ru/aboutTor.dtd
+++ b/src/chrome/locale/ru/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "О проекте Tor">
+<!ENTITY aboutTor.viewChangelog.label "View Changelog">
+
<!ENTITY aboutTor.ready.label "Исследуйте. Приватно.">
<!ENTITY aboutTor.ready2.label "Вы готовы к самому приватному просмотру веб-страниц в мире.">
<!ENTITY aboutTor.failure.label "Что-то пошло не так!">
diff --git a/src/chrome/locale/ru/browserOnboarding.properties b/src/chrome/locale/ru/browserOnboarding.properties
index 4e8e4a4a..a36fde6a 100644
--- a/src/chrome/locale/ru/browserOnboarding.properties
+++ b/src/chrome/locale/ru/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=Ваш цикл
onboarding.tour-tor-security=Безопасность
onboarding.tour-tor-security.title=Выберете свой опыт.
onboarding.tour-tor-security.description=Мы также предоставляем вам дополнительные настройки для повышения безопасности вашего браузера. Наши Параметры Безопасности позволяют блокировать элементы, которые могут быть использованы для атаки вашего компьютера. Нажмите ниже, чтобы посмотреть, что делают разные функции.
-onboarding.tour-tor-security.button=Настройки Просмотра
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=Рекомендации
onboarding.tour-tor-expect-differences.title=Ждите небольших различий.
diff --git a/src/chrome/locale/sv/aboutTBUpdate.dtd b/src/chrome/locale/sv/aboutTBUpdate.dtd
index 781f545a..6fd6baec 100644
--- a/src/chrome/locale/sv/aboutTBUpdate.dtd
+++ b/src/chrome/locale/sv/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Tor Browser-uppdatering">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "Tor Browser har uppdaterats.">
<!ENTITY aboutTBUpdate.linkPrefix "För den senaste information om den här versionen,">
<!ENTITY aboutTBUpdate.linkLabel "besök vår hemsida">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "Ändringslogg:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "Ny, omformad kretsrutan">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "Tor-kretsrutan har flyttats och förbättrats! Klicka på webbplatsen Identitetsknapp (ligger på vänster sida av webbadressfältet) för att se den nya kretsrutan.">
-<!ENTITY aboutTBUpdate.learnMore "Läs mer">
+<!ENTITY aboutTBUpdate.version "Version">
+<!ENTITY aboutTBUpdate.releaseDate "Release Date">
+<!ENTITY aboutTBUpdate.releaseNotes "Release Notes">
diff --git a/src/chrome/locale/sv/aboutTor.dtd b/src/chrome/locale/sv/aboutTor.dtd
index 423d6e96..b5d5685a 100644
--- a/src/chrome/locale/sv/aboutTor.dtd
+++ b/src/chrome/locale/sv/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "Om Tor">
+<!ENTITY aboutTor.viewChangelog.label "View Changelog">
+
<!ENTITY aboutTor.ready.label "Utforska. Privat.">
<!ENTITY aboutTor.ready2.label "Du är redo för världens mest privata surfupplevelse.">
<!ENTITY aboutTor.failure.label "Någonting gick fel!">
diff --git a/src/chrome/locale/sv/browserOnboarding.properties b/src/chrome/locale/sv/browserOnboarding.properties
index 8cc7e3f1..29406698 100644
--- a/src/chrome/locale/sv/browserOnboarding.properties
+++ b/src/chrome/locale/sv/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=Se Min väg
onboarding.tour-tor-security=Säkerhet
onboarding.tour-tor-security.title=Välj din upplevelse.
onboarding.tour-tor-security.description=Vi ger dig också ytterligare inställningar för att stöta upp din webbläsares säkerhet. Våra säkerhetsinställningar kan du blockera element som kan användas för att attackera din dator. Klicka nedan för att se vad de olika alternativen gör.
-onboarding.tour-tor-security.button=Granska Inställningar
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=Erfarenhets tips
onboarding.tour-tor-expect-differences.title=Förvänta dig vissa skillnader.
diff --git a/src/chrome/locale/sv/torbutton.properties b/src/chrome/locale/sv/torbutton.properties
index 465aaf05..510c9c49 100644
--- a/src/chrome/locale/sv/torbutton.properties
+++ b/src/chrome/locale/sv/torbutton.properties
@@ -53,7 +53,7 @@ profileMigrationFailed=Migrering av din befintliga %S profil misslyckades.\nNya
# "Downloading update" string for the hamburger menu (see #28885).
# This string is kept here for ease of translation.
# LOCALIZATION NOTE: %S is the application name.
-updateDownloadingPanelUILabel=Downloading %S update
+updateDownloadingPanelUILabel=Hämtar % s-uppdatering
# .Onion Page Info prompt. Strings are kept here for ease of translation.
pageInfo_OnionEncryptionWithBitsAndProtocol=Anslutning krypterad (Onion-tjänst, %1$S, %2$S bit nycklar, %3$S)
diff --git a/src/chrome/locale/tr/aboutTBUpdate.dtd b/src/chrome/locale/tr/aboutTBUpdate.dtd
index a0058043..b947ce60 100644
--- a/src/chrome/locale/tr/aboutTBUpdate.dtd
+++ b/src/chrome/locale/tr/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Tor Browser Güncellemesi">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Değişiklik Günlüğü">
<!ENTITY aboutTBUpdate.updated "Tor Browser güncellendi.">
<!ENTITY aboutTBUpdate.linkPrefix "Bu sürüm hakkındaki güncelleme bilgilerinin çoğu ">
<!ENTITY aboutTBUpdate.linkLabel "web sitemizden edinilebilir">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "Sürüm notları:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "Yeni, Yeniden Tasarlanmış Devre Görünümü">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "Tor devresi görünümünün konumu değiştirildi ve geliştirildi! Site Kimliği Düğmesine (adres çubuğunun sol tarafında bulunan) tıklayarak yeni devre görünümüne bakabilirsiniz.">
-<!ENTITY aboutTBUpdate.learnMore "Ayrıntılı Bilgi Alın">
+<!ENTITY aboutTBUpdate.version "Sürüm">
+<!ENTITY aboutTBUpdate.releaseDate "Yayım Tarihi">
+<!ENTITY aboutTBUpdate.releaseNotes "Yayım Notları">
diff --git a/src/chrome/locale/tr/aboutTor.dtd b/src/chrome/locale/tr/aboutTor.dtd
index ce8761f2..9e540252 100644
--- a/src/chrome/locale/tr/aboutTor.dtd
+++ b/src/chrome/locale/tr/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "Tor Hakkında">
+<!ENTITY aboutTor.viewChangelog.label "Değişiklik Günlüğünü Görüntüle">
+
<!ENTITY aboutTor.ready.label "Keşfet. Gizlice.">
<!ENTITY aboutTor.ready2.label "Dünyanın en kişisel web tarama deneyimine hazırsınız.">
<!ENTITY aboutTor.failure.label "Bir Şeyler Ters Gitti!">
diff --git a/src/chrome/locale/tr/browserOnboarding.properties b/src/chrome/locale/tr/browserOnboarding.properties
index 1b10fd9a..2abd38c2 100644
--- a/src/chrome/locale/tr/browserOnboarding.properties
+++ b/src/chrome/locale/tr/browserOnboarding.properties
@@ -19,13 +19,13 @@ onboarding.tour-tor-network.button=Devre Görünümüne Geç
onboarding.tour-tor-circuit-display=Devre Görünümü
onboarding.tour-tor-circuit-display.title=Yolunuzu görün.
-onboarding.tour-tor-circuit-display.description=Ziyaret ettiğiniz her web sitesi için bağlantınız dünya üzerindeki üç Tor aktarıcısından oluşan bir devreden şifrelenir ve aktarılır. Hiç bir web sitesi sizin gerçekte nereden bağlandığınızı bilemez. Kullandığınız devreyi değiştirmek için Devre Görünümünde "Bu Sitenin Devresini Yenile" üzerine tıklayın.
+onboarding.tour-tor-circuit-display.description=Ziyaret ettiğiniz her web sitesi için bağlantınız, dünya üzerindeki üç Tor aktarıcısından oluşan bir devre kurularak şifrelenir ve aktarılır. Hiç bir web sitesi sizin gerçekte nereden bağlandığınızı bilemez. Kullandığınız devreyi değiştirmek için Devre Görünümünde "Bu Sitenin Devresini Yenile" üzerine tıklayın.
onboarding.tour-tor-circuit-display.button=Yolumu Göster
onboarding.tour-tor-security=Güvenlik
onboarding.tour-tor-security.title=Deneyiminizi özelleştirin.
onboarding.tour-tor-security.description=Ek ayarları kullanarak web tarayıcınızın güvenliğini arttırabilirsiniz. Güvenlik Ayarlarımız bilgisayarınıza saldırmak için kullanılabilecek bileşenleri engellemenizi sağlar. Seçeneklerinizi görebilmek için aşağıya tıklayın.
-onboarding.tour-tor-security.button=Ayarları Gözden Geçir
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=Deneyim İpuçları
onboarding.tour-tor-expect-differences.title=Bazı farklılıklara açık olun.
diff --git a/src/chrome/locale/tr/torbutton.properties b/src/chrome/locale/tr/torbutton.properties
index 32ff1fed..68a6ecda 100644
--- a/src/chrome/locale/tr/torbutton.properties
+++ b/src/chrome/locale/tr/torbutton.properties
@@ -53,7 +53,7 @@ profileMigrationFailed=Mevcut %S profilinizin taşınma işlemi başarısız old
# "Downloading update" string for the hamburger menu (see #28885).
# This string is kept here for ease of translation.
# LOCALIZATION NOTE: %S is the application name.
-updateDownloadingPanelUILabel=Güncelleme yükleniyor %S
+updateDownloadingPanelUILabel=%S güncellemesi indiriliyor
# .Onion Page Info prompt. Strings are kept here for ease of translation.
pageInfo_OnionEncryptionWithBitsAndProtocol=Bağlantı Şifreli (Onion Hizmeti, %1$S, %2$S bit anahtarlar, %3$S)
diff --git a/src/chrome/locale/vi/aboutTBUpdate.dtd b/src/chrome/locale/vi/aboutTBUpdate.dtd
index fede64fa..49c282f0 100644
--- a/src/chrome/locale/vi/aboutTBUpdate.dtd
+++ b/src/chrome/locale/vi/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Nâng cấp trình duyệt Tor">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "Trình duyệt Tor đã được cập nhật">
<!ENTITY aboutTBUpdate.linkPrefix "Dành cho những thông tin cập nhật mới nhất về bản phát hành này,">
<!ENTITY aboutTBUpdate.linkLabel "đến thăm trang của chúng tôi">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "Nhật ký thay đổi:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "New, Redesigned Circuit Display">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "The Tor circuit display has been relocated and improved! Click the Site Identity button (located on the left side of the URL bar) to see the new circuit display.">
-<!ENTITY aboutTBUpdate.learnMore "Learn More">
+<!ENTITY aboutTBUpdate.version "Phiên bản">
+<!ENTITY aboutTBUpdate.releaseDate "Release Date">
+<!ENTITY aboutTBUpdate.releaseNotes "Ghi chú phát hành">
diff --git a/src/chrome/locale/vi/aboutTor.dtd b/src/chrome/locale/vi/aboutTor.dtd
index f8bc3896..179102fb 100644
--- a/src/chrome/locale/vi/aboutTor.dtd
+++ b/src/chrome/locale/vi/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "Thông tin về Tor">
+<!ENTITY aboutTor.viewChangelog.label "View Changelog">
+
<!ENTITY aboutTor.ready.label "Truy cập Internet. Một cách riêng tư.">
<!ENTITY aboutTor.ready2.label "Bạn đã sẵn sàng cho trải nghiệm duyệt web riêng tư nhất trên thế giới.">
<!ENTITY aboutTor.failure.label "Có Lỗi Xảy Ra!">
diff --git a/src/chrome/locale/vi/browserOnboarding.properties b/src/chrome/locale/vi/browserOnboarding.properties
index fd085289..60b685dd 100644
--- a/src/chrome/locale/vi/browserOnboarding.properties
+++ b/src/chrome/locale/vi/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=See My Path
onboarding.tour-tor-security=Bảo mật
onboarding.tour-tor-security.title=Choose your experience.
onboarding.tour-tor-security.description=We also provide you with additional settings for bumping up your browser security. Our Security Settings allow you to block elements that could be used to attack your computer. Click below to see what the different options do.
-onboarding.tour-tor-security.button=Review Settings
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=Experience Tips
onboarding.tour-tor-expect-differences.title=Expect some differences.
diff --git a/src/chrome/locale/zh-CN/aboutTBUpdate.dtd b/src/chrome/locale/zh-CN/aboutTBUpdate.dtd
index 2e14767d..dfc6a2b6 100644
--- a/src/chrome/locale/zh-CN/aboutTBUpdate.dtd
+++ b/src/chrome/locale/zh-CN/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "更新 Tor Browser">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "Tor Browser 更新完成。">
<!ENTITY aboutTBUpdate.linkPrefix "有关此版本的最新信息,">
<!ENTITY aboutTBUpdate.linkLabel "访问我们的网站">
<!ENTITY aboutTBUpdate.linkSuffix "。">
-<!ENTITY aboutTBUpdate.changeLogHeading "更新日志:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "重新设计的全新线路显示">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "Tor 线路显示移动了位置而且更进一步,点击站点与身份按钮(在地址栏的左边)来查看新的线路显示界面。">
-<!ENTITY aboutTBUpdate.learnMore "了解更多">
+<!ENTITY aboutTBUpdate.version "版本">
+<!ENTITY aboutTBUpdate.releaseDate "发布日期">
+<!ENTITY aboutTBUpdate.releaseNotes "发行说明">
diff --git a/src/chrome/locale/zh-CN/aboutTor.dtd b/src/chrome/locale/zh-CN/aboutTor.dtd
index 36e9b9a5..8afb37fb 100644
--- a/src/chrome/locale/zh-CN/aboutTor.dtd
+++ b/src/chrome/locale/zh-CN/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "关于 Tor">
+<!ENTITY aboutTor.viewChangelog.label "View Changelog">
+
<!ENTITY aboutTor.ready.label "私密浏览">
<!ENTITY aboutTor.ready2.label "欢迎体验最私密的浏览。">
<!ENTITY aboutTor.failure.label "出错了!">
diff --git a/src/chrome/locale/zh-CN/browserOnboarding.properties b/src/chrome/locale/zh-CN/browserOnboarding.properties
index 47587585..6f172c5e 100644
--- a/src/chrome/locale/zh-CN/browserOnboarding.properties
+++ b/src/chrome/locale/zh-CN/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=查看我的路径。
onboarding.tour-tor-security=安全
onboarding.tour-tor-security.title=自定你的浏览体验。
onboarding.tour-tor-security.description=我们也提供更多选项来进一步强化 Tor Browser 的安全性。安全设置可以允许你屏蔽可能会被用于攻击你的电脑的元素。点击下方的按钮来了解不同的选项的作用。
-onboarding.tour-tor-security.button=检查设置
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=浏览提示
onboarding.tour-tor-expect-differences.title=可能会有些不同。
diff --git a/src/chrome/locale/zh-TW/aboutTBUpdate.dtd b/src/chrome/locale/zh-TW/aboutTBUpdate.dtd
index d4c86ee2..f7a236c1 100644
--- a/src/chrome/locale/zh-TW/aboutTBUpdate.dtd
+++ b/src/chrome/locale/zh-TW/aboutTBUpdate.dtd
@@ -1,10 +1,8 @@
-<!ENTITY aboutTBUpdate.title "洋蔥路由瀏覽器更新">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "洋蔥路由瀏覽器已經更新完成">
<!ENTITY aboutTBUpdate.linkPrefix "本次釋出更新的最新資訊">
<!ENTITY aboutTBUpdate.linkLabel "參訪我們的網站">
<!ENTITY aboutTBUpdate.linkSuffix "。">
-<!ENTITY aboutTBUpdate.changeLogHeading "變更歷史紀錄:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "新的、重新設計的迴路顯示">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "The Tor circuit display has been relocated and improved! Click the Site Identity button (located on the left side of the URL bar) to see the new circuit display.">
-<!ENTITY aboutTBUpdate.learnMore "了解更多">
+<!ENTITY aboutTBUpdate.version "版本">
+<!ENTITY aboutTBUpdate.releaseDate "Release Date">
+<!ENTITY aboutTBUpdate.releaseNotes "版本說明">
diff --git a/src/chrome/locale/zh-TW/aboutTor.dtd b/src/chrome/locale/zh-TW/aboutTor.dtd
index bd5fa14d..42636547 100644
--- a/src/chrome/locale/zh-TW/aboutTor.dtd
+++ b/src/chrome/locale/zh-TW/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "關於 Tor">
+<!ENTITY aboutTor.viewChangelog.label "View Changelog">
+
<!ENTITY aboutTor.ready.label "探索。隱密。">
<!ENTITY aboutTor.ready2.label "您已準備好使用全世界最私密的瀏覽體驗。">
<!ENTITY aboutTor.failure.label "發生錯誤!">
diff --git a/src/chrome/locale/zh-TW/browserOnboarding.properties b/src/chrome/locale/zh-TW/browserOnboarding.properties
index eb4f9a37..f3937ce1 100644
--- a/src/chrome/locale/zh-TW/browserOnboarding.properties
+++ b/src/chrome/locale/zh-TW/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=See My Path
onboarding.tour-tor-security=安全
onboarding.tour-tor-security.title=Choose your experience.
onboarding.tour-tor-security.description=We also provide you with additional settings for bumping up your browser security. Our Security Settings allow you to block elements that could be used to attack your computer. Click below to see what the different options do.
-onboarding.tour-tor-security.button=Review Settings
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=Experience Tips
onboarding.tour-tor-expect-differences.title=Expect some differences.
1
0

[tor-browser-build/master] Bug 28802: Support PTs in Tor Browser for Android
by gk@torproject.org 15 Mar '19
by gk@torproject.org 15 Mar '19
15 Mar '19
commit 68730ec4ae152475f638cd52f79b6621412b3f85
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Mar 15 15:46:58 2019 +0000
Bug 28802: Support PTs in Tor Browser for Android
---
projects/orbot/build | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/projects/orbot/build b/projects/orbot/build
index 840df3e..4bea420 100644
--- a/projects/orbot/build
+++ b/projects/orbot/build
@@ -20,6 +20,16 @@ for p in $rootdir/*.patch
do patch -p1 < $p
done
+# Use Orbot's PT capabilities
+[% IF c("var/android-armv7") %]
+ arch=armeabi-v7a
+[% ELSE %]
+ arch=x86
+[% END %]
+obfs4dir=orbotservice/src/main/libs/$arch
+mkdir -p $obfs4dir
+mv external/pluto/bin/$arch/obfs4proxy $obfs4dir/obfs4proxy.so
+
# Build Android Libraries and Apps
$GRADLE_HOME/gradle-4.1/bin/gradle --offline assembleRelease -x lint
1
0
commit 4e282ad1b27b7f71000b18f98ef934122f97049d
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Mar 15 15:44:25 2019 +0000
Version bump (0.2.18.1)
---
src/install.rdf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/install.rdf b/src/install.rdf
index bfc698d..f47598d 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.18</em:version>
+ <em:version>0.2.18.1</em:version>
<em:multiprocessCompatible>true</em:multiprocessCompatible>
<em:homepageURL>https://www.torproject.org/projects/torbrowser.html</em:homepageURL>
<em:updateURL>data:text/plain,</em:updateURL>
1
0
commit c2709dfb0543525b7fcab85a7fd739de84414ab2
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Mar 15 15:42:15 2019 +0000
Translations update
---
src/chrome/locale/ach/torlauncher.properties | 19 +++
src/chrome/locale/af/torlauncher.properties | 19 +++
src/chrome/locale/am/torlauncher.properties | 5 +-
src/chrome/locale/ar/network-settings.dtd | 2 +-
src/chrome/locale/ar/torlauncher.properties | 19 +++
src/chrome/locale/arn/torlauncher.properties | 5 +-
src/chrome/locale/ast/torlauncher.properties | 19 +++
src/chrome/locale/az/torlauncher.properties | 19 +++
src/chrome/locale/be/torlauncher.properties | 19 +++
src/chrome/locale/bg/torlauncher.properties | 19 +++
src/chrome/locale/bn-BD/torlauncher.properties | 5 +-
src/chrome/locale/bn/torlauncher.properties | 19 +++
src/chrome/locale/bo/torlauncher.properties | 5 +-
src/chrome/locale/br/torlauncher.properties | 19 +++
src/chrome/locale/bs/torlauncher.properties | 19 +++
src/chrome/locale/ca/torlauncher.properties | 19 +++
src/chrome/locale/cs/torlauncher.properties | 19 +++
src/chrome/locale/cy/torlauncher.properties | 19 +++
src/chrome/locale/da/torlauncher.properties | 19 +++
src/chrome/locale/de/torlauncher.properties | 31 ++++-
src/chrome/locale/dz/torlauncher.properties | 5 +-
src/chrome/locale/el/torlauncher.properties | 31 ++++-
src/chrome/locale/en-GB/torlauncher.properties | 19 +++
src/chrome/locale/eo/torlauncher.properties | 19 +++
src/chrome/locale/es-AR/torlauncher.properties | 19 +++
src/chrome/locale/es-CL/torlauncher.properties | 19 +++
src/chrome/locale/es-CO/torlauncher.properties | 5 +-
src/chrome/locale/es-MX/torlauncher.properties | 19 +++
src/chrome/locale/es/network-settings.dtd | 2 +-
src/chrome/locale/es/torlauncher.properties | 23 +++-
src/chrome/locale/et/network-settings.dtd | 76 ++++++------
src/chrome/locale/et/torlauncher.properties | 25 +++-
src/chrome/locale/eu/network-settings.dtd | 4 +-
src/chrome/locale/eu/torlauncher.properties | 23 +++-
src/chrome/locale/fa/network-settings.dtd | 4 +-
src/chrome/locale/fa/torlauncher.properties | 25 +++-
src/chrome/locale/fi/network-settings.dtd | 38 +++---
src/chrome/locale/fi/torlauncher.properties | 47 +++++---
src/chrome/locale/fil/torlauncher.properties | 5 +-
src/chrome/locale/fo/torlauncher.properties | 5 +-
src/chrome/locale/fr/network-settings.dtd | 10 +-
src/chrome/locale/fr/torlauncher.properties | 29 ++++-
src/chrome/locale/fur/torlauncher.properties | 5 +-
src/chrome/locale/fy/torlauncher.properties | 19 +++
src/chrome/locale/ga/torlauncher.properties | 19 +++
src/chrome/locale/gl/network-settings.dtd | 2 +-
src/chrome/locale/gl/torlauncher.properties | 19 +++
src/chrome/locale/gu-IN/torlauncher.properties | 5 +-
src/chrome/locale/gu/torlauncher.properties | 19 +++
src/chrome/locale/he/torlauncher.properties | 23 +++-
src/chrome/locale/hi/torlauncher.properties | 19 +++
src/chrome/locale/hr-HR/torlauncher.properties | 19 +++
src/chrome/locale/hr/network-settings.dtd | 2 +-
src/chrome/locale/hr/torlauncher.properties | 85 +++++++------
src/chrome/locale/ht/torlauncher.properties | 5 +-
src/chrome/locale/hu/torlauncher.properties | 23 +++-
src/chrome/locale/hy/torlauncher.properties | 19 +++
src/chrome/locale/ia/torlauncher.properties | 5 +-
src/chrome/locale/id/network-settings.dtd | 2 +-
src/chrome/locale/id/torlauncher.properties | 25 +++-
src/chrome/locale/is/torlauncher.properties | 19 +++
src/chrome/locale/it/torlauncher.properties | 19 +++
src/chrome/locale/ja/network-settings.dtd | 12 +-
src/chrome/locale/ja/torlauncher.properties | 27 ++++-
src/chrome/locale/jv/torlauncher.properties | 5 +-
src/chrome/locale/ka/network-settings.dtd | 2 +-
src/chrome/locale/ka/torlauncher.properties | 21 +++-
src/chrome/locale/kk/network-settings.dtd | 4 +-
src/chrome/locale/kk/torlauncher.properties | 131 ++++++++++++---------
src/chrome/locale/km/torlauncher.properties | 19 +++
src/chrome/locale/kn/torlauncher.properties | 19 +++
src/chrome/locale/ko/torlauncher.properties | 21 +++-
src/chrome/locale/ku/torlauncher.properties | 5 +-
src/chrome/locale/ky/torlauncher.properties | 5 +-
src/chrome/locale/lb/torlauncher.properties | 5 +-
src/chrome/locale/lg/torlauncher.properties | 5 +-
src/chrome/locale/ln/torlauncher.properties | 5 +-
src/chrome/locale/lo/torlauncher.properties | 5 +-
src/chrome/locale/lt/network-settings.dtd | 18 +--
src/chrome/locale/lt/torlauncher.properties | 41 +++++--
src/chrome/locale/lv/torlauncher.properties | 19 +++
src/chrome/locale/mg/torlauncher.properties | 5 +-
src/chrome/locale/mi/torlauncher.properties | 5 +-
src/chrome/locale/mk/torlauncher.properties | 19 +++
src/chrome/locale/ml/torlauncher.properties | 19 +++
src/chrome/locale/mn/torlauncher.properties | 5 +-
src/chrome/locale/mr/torlauncher.properties | 19 +++
src/chrome/locale/ms-MY/torlauncher.properties | 19 +++
src/chrome/locale/mt/torlauncher.properties | 5 +-
src/chrome/locale/my/torlauncher.properties | 19 +++
src/chrome/locale/nah/torlauncher.properties | 5 +-
src/chrome/locale/nap/torlauncher.properties | 5 +-
src/chrome/locale/nb/torlauncher.properties | 19 +++
src/chrome/locale/ne/torlauncher.properties | 19 +++
src/chrome/locale/nl-BE/torlauncher.properties | 19 +++
src/chrome/locale/nl/torlauncher.properties | 19 +++
src/chrome/locale/nn/torlauncher.properties | 19 +++
src/chrome/locale/nso/torlauncher.properties | 5 +-
src/chrome/locale/oc/torlauncher.properties | 19 +++
src/chrome/locale/or/torlauncher.properties | 19 +++
src/chrome/locale/pa/torlauncher.properties | 19 +++
src/chrome/locale/pap/torlauncher.properties | 5 +-
src/chrome/locale/pl/torlauncher.properties | 21 +++-
src/chrome/locale/pms/torlauncher.properties | 5 +-
src/chrome/locale/ps/torlauncher.properties | 5 +-
src/chrome/locale/pt-BR/torlauncher.properties | 19 +++
src/chrome/locale/pt/torlauncher.properties | 19 +++
src/chrome/locale/ro/network-settings.dtd | 26 ++--
src/chrome/locale/ro/torlauncher.properties | 77 +++++++-----
src/chrome/locale/ru/network-settings.dtd | 2 +-
src/chrome/locale/ru/torlauncher.properties | 19 +++
.../locale/ru(a)petr1708/torlauncher.properties | 5 +-
src/chrome/locale/sco/torlauncher.properties | 5 +-
src/chrome/locale/si-LK/torlauncher.properties | 19 +++
src/chrome/locale/sk-SK/torlauncher.properties | 5 +-
src/chrome/locale/sk/network-settings.dtd | 16 +--
src/chrome/locale/sk/torlauncher.properties | 29 ++++-
src/chrome/locale/sl-SI/torlauncher.properties | 5 +-
src/chrome/locale/sl/network-settings.dtd | 26 ++--
src/chrome/locale/sl/torlauncher.properties | 65 ++++++----
src/chrome/locale/sn/torlauncher.properties | 5 +-
src/chrome/locale/so/torlauncher.properties | 5 +-
src/chrome/locale/son/torlauncher.properties | 19 +++
src/chrome/locale/sq/torlauncher.properties | 19 +++
src/chrome/locale/sr/torlauncher.properties | 19 +++
src/chrome/locale/sr(a)latin/torlauncher.properties | 5 +-
src/chrome/locale/st/torlauncher.properties | 5 +-
src/chrome/locale/sv/torlauncher.properties | 19 +++
src/chrome/locale/ta/network-settings.dtd | 58 ++++-----
src/chrome/locale/ta/torlauncher.properties | 21 +++-
src/chrome/locale/te/torlauncher.properties | 19 +++
src/chrome/locale/tg/torlauncher.properties | 5 +-
src/chrome/locale/th/torlauncher.properties | 19 +++
src/chrome/locale/ti/torlauncher.properties | 5 +-
src/chrome/locale/tk/torlauncher.properties | 5 +-
src/chrome/locale/tr/torlauncher.properties | 25 +++-
src/chrome/locale/uk/torlauncher.properties | 19 +++
src/chrome/locale/ur/torlauncher.properties | 19 +++
src/chrome/locale/uz/torlauncher.properties | 19 +++
src/chrome/locale/vi/torlauncher.properties | 19 +++
src/chrome/locale/zh-CN/torlauncher.properties | 19 +++
src/chrome/locale/zh-HK/torlauncher.properties | 19 +++
src/chrome/locale/zh-TW/torlauncher.properties | 19 +++
143 files changed, 2125 insertions(+), 409 deletions(-)
diff --git a/src/chrome/locale/ach/torlauncher.properties b/src/chrome/locale/ach/torlauncher.properties
index 15a3fc1..ca9774b 100644
--- a/src/chrome/locale/ach/torlauncher.properties
+++ b/src/chrome/locale/ach/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
diff --git a/src/chrome/locale/af/torlauncher.properties b/src/chrome/locale/af/torlauncher.properties
index 15a3fc1..ca9774b 100644
--- a/src/chrome/locale/af/torlauncher.properties
+++ b/src/chrome/locale/af/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
diff --git a/src/chrome/locale/am/torlauncher.properties b/src/chrome/locale/am/torlauncher.properties
index ca60006..be395d5 100644
--- a/src/chrome/locale/am/torlauncher.properties
+++ b/src/chrome/locale/am/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/ar/network-settings.dtd b/src/chrome/locale/ar/network-settings.dtd
index 15640be..8055d0f 100644
--- a/src/chrome/locale/ar/network-settings.dtd
+++ b/src/chrome/locale/ar/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "نسخ سجل تور إلي الحافظة">
<!ENTITY torsettings.proxyHelpTitle "مساعدة الوسيط">
-<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
+<!ENTITY torsettings.proxyHelp1 "قد تكون هناك حاجة إلى وسيط (proxy) محلي عند الاتصال من خلال شركة أو مدرسة أو شبكة جامعية. إذا لم تكن متأكدًا مما إذا كان الوسيط مطلوبًا أم لا، فابحث عن إعدادات الإنترنت في متصفح آخر أو تحقق من إعدادات شبكة النظام لديك.">
<!ENTITY torsettings.bridgeHelpTitle "المساعدة الخاصة بالجسور المُرحلة">
<!ENTITY torsettings.bridgeHelp1 "الجسور هي تحويلات غير مدرجة تجعل حجب الاتصالات إلى شبكة تور أصعب.  كل نوع من الجسور يستخدم طريقة مختلفة لتجنب الرقابة.  جسور obfs تجعل حركة معلوماتك تبدو كضجيج عشوائي، وجسور meek تجعل حركة معلوماتك تبدوا كأنها تتصل لتلك الخدمة بدلا من تور.">
diff --git a/src/chrome/locale/ar/torlauncher.properties b/src/chrome/locale/ar/torlauncher.properties
index d753034..8a3ee24 100644
--- a/src/chrome/locale/ar/torlauncher.properties
+++ b/src/chrome/locale/ar/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=للمُساعدة, قُم بزيارة S%
torlauncher.copiedNLogMessages=تم النسخ. %S من رسائل سجل تور جاهزة للصقها في محرر نصوص أو رسالة بريد إلكتروني.
+torlauncher.bootstrapStatus.starting=جاري البدأ
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=ينشئ اتصالا مشفرا بالدليل
torlauncher.bootstrapStatus.requesting_status=يجلب حالة الشبكة
torlauncher.bootstrapStatus.loading_status=يحمّل حالة الشبكة
torlauncher.bootstrapStatus.loading_keys=يحمل شهادات السلطة
torlauncher.bootstrapStatus.requesting_descriptors=يطلب معلومات التحويلة
torlauncher.bootstrapStatus.loading_descriptors=يحمل معلومات التحويلة
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=تم الاتصال بشبكة تور
torlauncher.bootstrapWarning.done=تم
diff --git a/src/chrome/locale/arn/torlauncher.properties b/src/chrome/locale/arn/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/arn/torlauncher.properties
+++ b/src/chrome/locale/arn/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/ast/torlauncher.properties b/src/chrome/locale/ast/torlauncher.properties
index 15a3fc1..ca9774b 100644
--- a/src/chrome/locale/ast/torlauncher.properties
+++ b/src/chrome/locale/ast/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
diff --git a/src/chrome/locale/az/torlauncher.properties b/src/chrome/locale/az/torlauncher.properties
index fa75f55..5aae047 100644
--- a/src/chrome/locale/az/torlauncher.properties
+++ b/src/chrome/locale/az/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Köçürülmə tamamlandı. %S Tor giriş mesajları mətn dəyişdiricisi və ya email mesajına daxil edilməyə hazırdır.
+torlauncher.bootstrapStatus.starting=Başlanğıc
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Şifrələnmiş kataloq əlaqəsinin yaradılması
torlauncher.bootstrapStatus.requesting_status=Şəbəkə statusunun bərpası
torlauncher.bootstrapStatus.loading_status=Şəbəkə statusunun yüklənməsi
torlauncher.bootstrapStatus.loading_keys=Səlahiyyət sertifikatlarının yüklənməsi
torlauncher.bootstrapStatus.requesting_descriptors=Keçid məlumatının tələb edilməsi
torlauncher.bootstrapStatus.loading_descriptors=Keçid məlumatının yüklənməsi
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Tor şəbəkəsi ilə əlaqə!
torlauncher.bootstrapWarning.done=oldu
diff --git a/src/chrome/locale/be/torlauncher.properties b/src/chrome/locale/be/torlauncher.properties
index 6ebfad7..da99d88 100644
--- a/src/chrome/locale/be/torlauncher.properties
+++ b/src/chrome/locale/be/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
diff --git a/src/chrome/locale/bg/torlauncher.properties b/src/chrome/locale/bg/torlauncher.properties
index 47d6ce1..a44d85e 100644
--- a/src/chrome/locale/bg/torlauncher.properties
+++ b/src/chrome/locale/bg/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=За помощ посетете %S
torlauncher.copiedNLogMessages=Копирането е завършено. %S Съобщенията от Тор log-а са готови да бъдат поставени в текстов редактор или имейл.
+torlauncher.bootstrapStatus.starting=Стартиране
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Осъществяване на връзка с криптираната директория
torlauncher.bootstrapStatus.requesting_status=Получаване на информация за статуса на мрежата
torlauncher.bootstrapStatus.loading_status=Зареждане на информацията за статуса на мрежата
torlauncher.bootstrapStatus.loading_keys=Зареждане на сертификати от достоверен източник
torlauncher.bootstrapStatus.requesting_descriptors=Запитване за препредаваща информация
torlauncher.bootstrapStatus.loading_descriptors=Зареждане на препредаваща информация
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Свързан с Тор мрежата!
torlauncher.bootstrapWarning.done=готов
diff --git a/src/chrome/locale/bn-BD/torlauncher.properties b/src/chrome/locale/bn-BD/torlauncher.properties
index e139293..e607db2 100644
--- a/src/chrome/locale/bn-BD/torlauncher.properties
+++ b/src/chrome/locale/bn-BD/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=সহায়তার জন্য, %S এ যা
torlauncher.copiedNLogMessages=কপি সম্পূর্ণ। %S টর লগ বার্তা একটি টেক্সট এডিটর বা একটি ইমেইল বার্তা আটকানোর জন্য প্রস্তুত।
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.conn_dir=একটি রিলে ডিরেক্টরি সাথে সংযোগ স্থাপন
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=নেটওয়ার্ক স্থিতি পুনরুদ্ধার
torlauncher.bootstrapStatus.loading_status=নেটওয়ার্ক স্থিতি লোড হচ্ছে
torlauncher.bootstrapStatus.loading_keys=কর্তৃপক্ষ সার্টিফিকেট লোড হচ্ছে
torlauncher.bootstrapStatus.requesting_descriptors=রিলে তথ্য অনুরোধ
torlauncher.bootstrapStatus.loading_descriptors=রিলে তথ্য লোড হচ্ছে
+torlauncher.bootstrapStatus.conn_or=টর নেটওয়ার্কে সংযুক্ত হচ্ছে
+torlauncher.bootstrapStatus.handshake_or=একটি টর্ক সার্কিট স্থাপন
torlauncher.bootstrapStatus.done=টর নেটওয়ার্ক সংযুক্ত!
torlauncher.bootstrapWarning.done=সম্পন্ন
diff --git a/src/chrome/locale/bn/torlauncher.properties b/src/chrome/locale/bn/torlauncher.properties
index e807786..96752cc 100644
--- a/src/chrome/locale/bn/torlauncher.properties
+++ b/src/chrome/locale/bn/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=সহায়তার জন্য, %S এ যা
torlauncher.copiedNLogMessages=কপি সম্পূর্ণ। %S টর লগ বার্তা একটি টেক্সট এডিটর বা একটি ইমেইল বার্তা আটকানোর জন্য প্রস্তুত।
+torlauncher.bootstrapStatus.starting=সূচনা
+torlauncher.bootstrapStatus.conn_pt=ব্রিজে সংযুক্ত করা হচ্ছে
+torlauncher.bootstrapStatus.conn_done_pt=ব্রিজে সংযুক্ত হয়েছে।
+torlauncher.bootstrapStatus.conn_proxy=প্রক্সির সাথে সংযোগ করা হচ্ছে
+torlauncher.bootstrapStatus.conn_done_proxy=প্রক্সির সাথে সংযুক্ত হয়েছে
+torlauncher.bootstrapStatus.conn=একটি টর রিলে সংযুক্ত করা হচ্ছে
+torlauncher.bootstrapStatus.conn_done=একটি টর রিলে সঙ্গে সংযুক্ত হয়েছে
+torlauncher.bootstrapStatus.handshake=একটি টর রিলে সঙ্গে আলোচনা
+torlauncher.bootstrapStatus.handshake_done=একটি টর রিলে সঙ্গে আলোচনা শেষ হয়েছে
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=নেটওয়ার্ক স্থিতি পুনরুদ্ধার
torlauncher.bootstrapStatus.loading_status=নেটওয়ার্ক স্থিতি লোড হচ্ছে
torlauncher.bootstrapStatus.loading_keys=কর্তৃপক্ষ সার্টিফিকেট লোড হচ্ছে
torlauncher.bootstrapStatus.requesting_descriptors=রিলে তথ্য অনুরোধ
torlauncher.bootstrapStatus.loading_descriptors=রিলে তথ্য লোড হচ্ছে
+torlauncher.bootstrapStatus.enough_dirinfo=রিলে তথ্য লোড করা শেষ
+torlauncher.bootstrapStatus.ap_conn_pt=বিল্ডিং সার্কিট: ব্রিজে সংযুক্ত করা হচ্ছে
+torlauncher.bootstrapStatus.ap_conn_done_pt=বিল্ডিং সার্কিট: ব্রিজে সংযুক্ত হয়েছে
+torlauncher.bootstrapStatus.ap_conn_proxy=বিল্ডিং সার্কিট: প্রক্সির সাথে সংযোগ করা হচ্ছে
+torlauncher.bootstrapStatus.ap_conn_done_proxy=বিল্ডিং সার্কিট: প্রক্সির সাথে সংযুক্ত হয়েছে
+torlauncher.bootstrapStatus.ap_conn=বিল্ডিং সার্কিট: একটি টর রিলে সংযোগ
+torlauncher.bootstrapStatus.ap_conn_done=বিল্ডিং সার্কিট: একটি টর রিলে সংযুক্ত
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=বিল্ডিং সার্কিট: একটি টর সার্কিট প্রতিষ্ঠা
torlauncher.bootstrapStatus.done=টর নেটওয়ার্ক সংযুক্ত!
torlauncher.bootstrapWarning.done=সম্পন্ন
diff --git a/src/chrome/locale/bo/torlauncher.properties b/src/chrome/locale/bo/torlauncher.properties
index db5c207..47b407c 100644
--- a/src/chrome/locale/bo/torlauncher.properties
+++ b/src/chrome/locale/bo/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/br/torlauncher.properties b/src/chrome/locale/br/torlauncher.properties
index 14fdad2..bca177c 100644
--- a/src/chrome/locale/br/torlauncher.properties
+++ b/src/chrome/locale/br/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=O stagañ e-barzh
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
diff --git a/src/chrome/locale/bs/torlauncher.properties b/src/chrome/locale/bs/torlauncher.properties
index 15a3fc1..ca9774b 100644
--- a/src/chrome/locale/bs/torlauncher.properties
+++ b/src/chrome/locale/bs/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
diff --git a/src/chrome/locale/ca/torlauncher.properties b/src/chrome/locale/ca/torlauncher.properties
index 7c289de..8f57761 100644
--- a/src/chrome/locale/ca/torlauncher.properties
+++ b/src/chrome/locale/ca/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Per a més ajuda, visiteu %S
torlauncher.copiedNLogMessages=Còpia completada. Els missatges del registre de %S Tor ja es poden enganxar en un editor de text o un missatge de correu.
+torlauncher.bootstrapStatus.starting=Iniciant
+torlauncher.bootstrapStatus.conn_pt=Connectant a pont
+torlauncher.bootstrapStatus.conn_done_pt=Connectat a pont
+torlauncher.bootstrapStatus.conn_proxy=Connectant a proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connectat a proxy
+torlauncher.bootstrapStatus.conn=Conncectant a un relé de Tor
+torlauncher.bootstrapStatus.conn_done=Connectat a un relé de Tor
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=S'està establint una connexió xifrada amb un directori
torlauncher.bootstrapStatus.requesting_status=S'està rebent l'estat de la xarxa
torlauncher.bootstrapStatus.loading_status=S'està carregant l'estat de la xarxa
torlauncher.bootstrapStatus.loading_keys=S'estan carregant els certificats d'autoritat
torlauncher.bootstrapStatus.requesting_descriptors=S'està demanant informació del repetidor
torlauncher.bootstrapStatus.loading_descriptors=S'està carregant la informació del repetidor
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=S'ha connectat a la xarxa Tor!
torlauncher.bootstrapWarning.done=fet
diff --git a/src/chrome/locale/cs/torlauncher.properties b/src/chrome/locale/cs/torlauncher.properties
index 7b13d0f..4254236 100644
--- a/src/chrome/locale/cs/torlauncher.properties
+++ b/src/chrome/locale/cs/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Pro asistenci navštivte %S
torlauncher.copiedNLogMessages=Kopírování dokončeno. %S zprávy protokolu Tor jsou připraveny k vložení do textového editoru nebo e-mailu.
+torlauncher.bootstrapStatus.starting=Startuji
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Spojování s šifrovaným adresářem
torlauncher.bootstrapStatus.requesting_status=Kontrola stavu sítě
torlauncher.bootstrapStatus.loading_status=Načítání stavu sítě
torlauncher.bootstrapStatus.loading_keys=Nahrávání certifikátů autorit
torlauncher.bootstrapStatus.requesting_descriptors=Zjišťování informací o uzlu
torlauncher.bootstrapStatus.loading_descriptors=Nahrávání informací o uzlu
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Připojení k síti Tor dokončeno!
torlauncher.bootstrapWarning.done=hotovo
diff --git a/src/chrome/locale/cy/torlauncher.properties b/src/chrome/locale/cy/torlauncher.properties
index dceaf38..1c25f37 100644
--- a/src/chrome/locale/cy/torlauncher.properties
+++ b/src/chrome/locale/cy/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copio wedi gorffen. Mae %S o negeseuon log Tor yn barod i'u gludo mewn golygydd testun neu neges ebost.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=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.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Cysylltwyd â rhwydwaith Tor!
torlauncher.bootstrapWarning.done=wedi gorffen
diff --git a/src/chrome/locale/da/torlauncher.properties b/src/chrome/locale/da/torlauncher.properties
index b5587cb..3046997 100644
--- a/src/chrome/locale/da/torlauncher.properties
+++ b/src/chrome/locale/da/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For hjælp, besøg %S
torlauncher.copiedNLogMessages=Kopieringen er gennemført. %S logbeskeder fra Tor er klar til at blive sat ind i et tekstdokument eller en e-mail.
+torlauncher.bootstrapStatus.starting=Starter
+torlauncher.bootstrapStatus.conn_pt=Opretter forbindelse til bro
+torlauncher.bootstrapStatus.conn_done_pt=Forbundet til bro
+torlauncher.bootstrapStatus.conn_proxy=Opretter forbindelse til proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Forbundet til proxy
+torlauncher.bootstrapStatus.conn=Opretter forbindelse til et Tor-relæ
+torlauncher.bootstrapStatus.conn_done=Forbundet til et Tor-relæ
+torlauncher.bootstrapStatus.handshake=Forhandler med et Tor-relæ
+torlauncher.bootstrapStatus.handshake_done=Færdig med at forhandle med et Tor-relæ
torlauncher.bootstrapStatus.onehop_create=Etablerer en krypteret mappe forbindelse
torlauncher.bootstrapStatus.requesting_status=Henter netværksstatus
torlauncher.bootstrapStatus.loading_status=Indlæser netværksstatus
torlauncher.bootstrapStatus.loading_keys=Indlæser nøglecentercertifikater
torlauncher.bootstrapStatus.requesting_descriptors=Anmoder om relæ information
torlauncher.bootstrapStatus.loading_descriptors=Indlæser relæinformation
+torlauncher.bootstrapStatus.enough_dirinfo=Færdig med at indlæse relæinformation
+torlauncher.bootstrapStatus.ap_conn_pt=Bygger kredsløb: Opretter forbindelse til bro
+torlauncher.bootstrapStatus.ap_conn_done_pt=Bygger kredsløb: Forbundet til bro
+torlauncher.bootstrapStatus.ap_conn_proxy=Bygger kredsløb: Opretter forbindelse til proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Bygger kredsløb: Forbundet til proxy
+torlauncher.bootstrapStatus.ap_conn=Bygger kredsløb: Opretter forbindelse til Tor-relæ
+torlauncher.bootstrapStatus.ap_conn_done=Bygger kredsløb: Forbundet til Tor-relæ
+torlauncher.bootstrapStatus.ap_handshake=Bygger kredsløb: Forhandler med et Tor-relæ
+torlauncher.bootstrapStatus.ap_handshake_done=Bygger kredsløb: Færdig med at forhandle med et Tor-relæ
+torlauncher.bootstrapStatus.circuit_create=Bygger kredsløb: Etablerer et Tor-kredsløb
torlauncher.bootstrapStatus.done=Forbundet til Tor-netværket!
torlauncher.bootstrapWarning.done=færdig
diff --git a/src/chrome/locale/de/torlauncher.properties b/src/chrome/locale/de/torlauncher.properties
index c2f223a..78f349c 100644
--- a/src/chrome/locale/de/torlauncher.properties
+++ b/src/chrome/locale/de/torlauncher.properties
@@ -3,7 +3,7 @@
torlauncher.error_title=Tor-Starter
-torlauncher.tor_exited_during_startup=Tor wurde unerwartet beendet. Dies kann die Folge eines Fehlers in ihrer "torrc"-Datei sein, ein Fehler in Tor, einem anderen Programm in ihrem System oder fehlerhafte Hardware. Bis die Ursache beseitigt wurde und Tor neu gestartet wurde, wird der Tor Browser nicht starten.
+torlauncher.tor_exited_during_startup=Tor wurde beim Starten unerwartet unterbrochen. Dies kann die Folge eines Fehlers in ihrer "torrc"-Datei, ein Fehler in Tor, einem anderen Programm in ihrem System oder fehlerhafte Hardware sein. Bis die Ursache beseitigt und Tor neu gestartet wurde, kann der Tor Browser nicht starten.
torlauncher.tor_exited=Tor wurde unerwartet beendet. Das kann an einem Fehler von Tor selbst, an einem anderen Programm auf ihrem System oder fehlerhaften Geräten liegen. Bis Sie Tor neu starten, kann der Tor-Browser keine Internetseiten mehr erreichen. Wenn das Problem bestehen bleibt, bitte eine Kopie des Tor-Protokolls an die Unterstützungsmannschaft senden.
torlauncher.tor_exited2=Das Neustarten von Tor wird die Reiter Ihres Browsers nicht schließen.
torlauncher.tor_controlconn_failed=Zum Tor-Kontrollanschluss konnte keine Verbindung hergestellt werden.
@@ -22,8 +22,8 @@ torlauncher.failed_to_get_settings=Die Tor-Einstellungen können nicht abgefragt
torlauncher.failed_to_save_settings=Die Tor-Einstellungen können nicht gespeichert werden.\n\n%S
torlauncher.ensure_tor_is_running=Bitte stellen Sie sicher, dass Tor läuft.
-torlauncher.error_proxy_addr_missing=Damit Tor einen Vermittlungsserver benutzt, um auf das Internet zuzugreifen, muss eine IP-Adresse oder ein Rechnername und eine Anschlussnummer angegeben werden.
-torlauncher.error_proxy_type_missing=Sie müssen einen Vermittlungs-Typ auswählen.
+torlauncher.error_proxy_addr_missing=Um einen Proxy zu verwenden, müssen Sie sowohl eine IP-Adresse bzw. einen Hostnamen als auch eine Portnummer angeben.
+torlauncher.error_proxy_type_missing=Sie müssen den Proxy-Typ auswählen.
torlauncher.error_bridges_missing=Sie müssen eine oder mehrere Brücken eingeben.
torlauncher.error_default_bridges_type_missing=Sie müssen eine Transporttyp für die bereitgestellten Brücken auswählen.
torlauncher.error_bridgedb_bridges_missing=Bitte eine Brücke anfordern.
@@ -42,7 +42,7 @@ torlauncher.no_meek=Der Browser ist nicht für meek eingestellt, was gebraucht w
torlauncher.no_bridges_available=Zur Zeit sind keine Brücken verfügbar. Es tut uns Leid.
torlauncher.connect=Verbinden
-torlauncher.restart_tor=Tor neustarten
+torlauncher.restart_tor=Tor neu starten
torlauncher.quit=Schließen
torlauncher.quit_win=Beenden
torlauncher.done=Fertig
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Falls Sie Hilfe benötigen, kontaktieren Sie %S
torlauncher.copiedNLogMessages=Kopie vollständig. %S Tor-Protokollnachrichten sind bereit, um in eine Textbearbeitung oder in eine E-Mail-Nachricht eingefügt zu werden.
+torlauncher.bootstrapStatus.starting=Startvorgang
+torlauncher.bootstrapStatus.conn_pt=Verbinde mit Brücke
+torlauncher.bootstrapStatus.conn_done_pt=Verbunden mit Brücke
+torlauncher.bootstrapStatus.conn_proxy=Verbinde mit Proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Verbunden mit Proxy
+torlauncher.bootstrapStatus.conn=Verbinde mit einem Tor-Relay
+torlauncher.bootstrapStatus.conn_done=Verbunden mit einem Tor-Relay
+torlauncher.bootstrapStatus.handshake=Verhandeln mit einem Tor-Relais
+torlauncher.bootstrapStatus.handshake_done=Abgeschlossene Verhandlungen mit einem Tor-Relais
torlauncher.bootstrapStatus.onehop_create=Es wird eine verschlüsselte Verbindung zu einem Verzeichnis hergestellt
torlauncher.bootstrapStatus.requesting_status=Netzwerkstatus wird abgerufen
torlauncher.bootstrapStatus.loading_status=Netzwerkstatus wird geladen
torlauncher.bootstrapStatus.loading_keys=Autorisierungszertifikate werden geladen
-torlauncher.bootstrapStatus.requesting_descriptors=Relaisinformationen werden angefordert
-torlauncher.bootstrapStatus.loading_descriptors=Relaisinformationen werden geladen
+torlauncher.bootstrapStatus.requesting_descriptors=Relay-Informationen werden angefordert
+torlauncher.bootstrapStatus.loading_descriptors=Relay-Informationen werden geladen
+torlauncher.bootstrapStatus.enough_dirinfo=Laden von Relay-Informationen wurde fertiggestellt
+torlauncher.bootstrapStatus.ap_conn_pt=Kanäle herstellen: Verbindung zur Brücke
+torlauncher.bootstrapStatus.ap_conn_done_pt=Kanäle herstellen: Verbunden mit der Brücke
+torlauncher.bootstrapStatus.ap_conn_proxy=Kanäle herstellen: Verbinden mit Proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Kanäle herstellen: Verbunden mit Proxy
+torlauncher.bootstrapStatus.ap_conn=Kanäle herstellen: Verbinden mit Tor-Relais
+torlauncher.bootstrapStatus.ap_conn_done=Kanäle herstellen: Verbunden mit Tor-Relais
+torlauncher.bootstrapStatus.ap_handshake=Kanäle herstellen: Verhandeln mit einem Tor-Relais
+torlauncher.bootstrapStatus.ap_handshake_done=Kanäle herstellen: Abgeschlossene Verhandlungen mit einem Tor-Relais
+torlauncher.bootstrapStatus.circuit_create=Kanäle herstellen: Aufbau eines Tor-Kanals
torlauncher.bootstrapStatus.done=Zum Tor-Netzwerk wurde verbunden!
torlauncher.bootstrapWarning.done=abgeschlossen
diff --git a/src/chrome/locale/dz/torlauncher.properties b/src/chrome/locale/dz/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/dz/torlauncher.properties
+++ b/src/chrome/locale/dz/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/el/torlauncher.properties b/src/chrome/locale/el/torlauncher.properties
index 3d93576..dba4c1a 100644
--- a/src/chrome/locale/el/torlauncher.properties
+++ b/src/chrome/locale/el/torlauncher.properties
@@ -3,7 +3,7 @@
torlauncher.error_title=Tor Launcher
-torlauncher.tor_exited_during_startup=Το Tor έκλεισε κατά την εκκίνηση. Αυτό μπορεί να οφείλεται σε σφάλμα στο αρχείο torrc, σε σφάλμα στο Tor ή σε κάποιο άλλο πρόγραμμα στο σύστημά σας, ή σε ελαττωματικό υλικό. Ο Tor Browser δεν θα ξεκινήσει μέχρι να διορθώσετε το σφάλμα και να επανεκκινήσετε το Tor.
+torlauncher.tor_exited_during_startup=Το Tor έκλεισε κατά την εκκίνηση. Αυτό μπορεί να οφείλεται σε σφάλμα στο αρχείο torrc, σε σφάλμα στο Tor, σε κάποιο άλλο πρόγραμμα στο σύστημά σας, ή σε ελαττωματικό υλικό. Ο Tor Browser δεν θα ξεκινήσει μέχρι να διορθώσετε το σφάλμα και να επανεκκινήσετε το Tor.
torlauncher.tor_exited=Ο Tor έκλεισε απροσδόκητα. Αυτό μπορεί να οφείλεται σε κάποιο σφάλμα του ίδιου του Tor, σε κάποιο άλλο πρόγραμμα στο σύστημά σας, ή σε ελαττωματικό υλικό. Εως ότου επανεκκινήσετε το Tor, ο περιηγητής Tor δεν θα είναι σε θέση να εμφανίσει οποιονδήποτε ιστότοπο. Αν το πρόβλημα παραμείνει, παρακαλώ στείλτε ένα αντίγραφο του αρχείου καταγραφής του Tor στην ομάδα υποστήριξης.
torlauncher.tor_exited2=Η επανεκκίνηση του Tor δεν θα κλείσει τις καρτέλες browser σας.
torlauncher.tor_controlconn_failed=Δεν ήταν δυνατή η σύνδεση με την υποδοχη ελέγχου του Tor.
@@ -36,10 +36,10 @@ torlauncher.request_a_bridge=Ζητήστε μία γέφυρα...
torlauncher.request_a_new_bridge=Ζητήστε μία καινούρια γέφυρα...
torlauncher.contacting_bridgedb=Επικοινωνούμε με την BridgeDB. Παρακαλώ, περιμένετε.
torlauncher.captcha_prompt=Λύστε το CAPTCHA για να ζητήσετε γέφυρα.
-torlauncher.bad_captcha_solution=Η λύση δεν είναι σωστή. Παρακαλώ, προσπαθήστε ξανά.
+torlauncher.bad_captcha_solution=Η λύση δεν είναι σωστή. Παρακαλώ προσπαθήστε ξανά.
torlauncher.unable_to_get_bridge=Είναι αδύνατο να βρεθεί γέφυρα από την BridgeDB.\n\n%S
torlauncher.no_meek=Αυτός ο περιηγητής δεν είναι φτιαγμένος για meek, το οποίο χρειάζεται για να υπάρξει πρόσβαση σε γέφυρες.
-torlauncher.no_bridges_available=Δεν υπάρχουν διαθέσιμες γέφυρες αυτή τη στιγμή. Συγγνώμη.
+torlauncher.no_bridges_available=Δεν υπάρχουν διαθέσιμες γέφυρες αυτή τη στιγμή. Συγνώμη.
torlauncher.connect=Σύνδεση
torlauncher.restart_tor=Eπανεκκίνηση Tor
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Για βοήθεια, επισκεφτείτε %S
torlauncher.copiedNLogMessages=Η αντιγραφή ολοκληρώθηκε. %S μηνύματα καταγραφής είναι έτοιμα να επικολληθούν σε ένα κειμενογράφο ή ένα μήνυμα ηλεκτρονικού ταχυδρομείου.
+torlauncher.bootstrapStatus.starting=Εκκίνηση
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Πραγματοποιήθηκε σύνδεση σε κρυπτογραφημένο κατάλογο
torlauncher.bootstrapStatus.requesting_status=Ανάκτηση της κατάστασης του δικτύου
torlauncher.bootstrapStatus.loading_status=Φόρτωση της κατάστασης του δικτύου
torlauncher.bootstrapStatus.loading_keys=Φόρτωση των πιστοποιητικών του φορέα
torlauncher.bootstrapStatus.requesting_descriptors=Γίνεται αίτηση για πληροφορίες των αναμεταδοτών
torlauncher.bootstrapStatus.loading_descriptors=Φόρτωση πληροφοριών αναμεταδότη
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Συνδεθήκατε στο δίκτυο Tor!
torlauncher.bootstrapWarning.done=έγινε
@@ -70,6 +89,6 @@ torlauncher.bootstrapWarning.noroute=δεν βρέθηκε διαδρομή πρ
torlauncher.bootstrapWarning.ioerror=σφάλμα ανάγνωσης/εγγραφής
torlauncher.bootstrapWarning.pt_missing=Λείπει το pluggable transport
-torlauncher.nsresult.NS_ERROR_NET_RESET=Χάθηκε η σύνδεση στον server.
-torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Δεν έγινε σύνδεση στον server.
-torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Δεν έγινε σύνδεση στο proxy.
+torlauncher.nsresult.NS_ERROR_NET_RESET=Η σύνδεση στον διακομιστή χάθηκε.
+torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Δεν ήταν δυνατή η σύνδεση στον διακομιστή.
+torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Δεν έγινε σύνδεση στον διαμεσολαβητή.
diff --git a/src/chrome/locale/en-GB/torlauncher.properties b/src/chrome/locale/en-GB/torlauncher.properties
index 15a3fc1..ca9774b 100644
--- a/src/chrome/locale/en-GB/torlauncher.properties
+++ b/src/chrome/locale/en-GB/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
diff --git a/src/chrome/locale/eo/torlauncher.properties b/src/chrome/locale/eo/torlauncher.properties
index f2e6418..12823b8 100644
--- a/src/chrome/locale/eo/torlauncher.properties
+++ b/src/chrome/locale/eo/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Kopiado estas preta. %S Tor-protokolaj mesaĝoj pretas por enigi ilin en tekstredaktilon aŭ retpoŝtmesaĝon.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Starigante ĉifritan dosierujan konekton
torlauncher.bootstrapStatus.requesting_status=Ricevante retan staton
torlauncher.bootstrapStatus.loading_status=Ŝarĝante retan staton
torlauncher.bootstrapStatus.loading_keys=Ŝarĝante aŭtoritatajn atestilojn
torlauncher.bootstrapStatus.requesting_descriptors=Petante relajsajn informojn
torlauncher.bootstrapStatus.loading_descriptors=Ŝarĝante relajsajn informojn
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Konektita al Tor-reto
torlauncher.bootstrapWarning.done=farite
diff --git a/src/chrome/locale/es-AR/torlauncher.properties b/src/chrome/locale/es-AR/torlauncher.properties
index fcffd36..922e029 100644
--- a/src/chrome/locale/es-AR/torlauncher.properties
+++ b/src/chrome/locale/es-AR/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Para asistencia, visitá %S
torlauncher.copiedNLogMessages=Copia completa. %S registros de bitácora de Tor están listos para ser pegados en un editor de textos o un correo electrónico.
+torlauncher.bootstrapStatus.starting=Iniciando
+torlauncher.bootstrapStatus.conn_pt=Conectando a un puente
+torlauncher.bootstrapStatus.conn_done_pt=Conectado a un puente
+torlauncher.bootstrapStatus.conn_proxy=Conectando a un proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Conectado a un proxy
+torlauncher.bootstrapStatus.conn=Conectando a un relevo Tor
+torlauncher.bootstrapStatus.conn_done=Conectado a un relevo Tor
+torlauncher.bootstrapStatus.handshake=Negociando con un relevo Tor
+torlauncher.bootstrapStatus.handshake_done=Finalizada la negociación con un relevo Tor
torlauncher.bootstrapStatus.onehop_create=Estableciendo una conexión encriptada al directorio
torlauncher.bootstrapStatus.requesting_status=Obteniendo el estado de red
torlauncher.bootstrapStatus.loading_status=Cargando el estado de red
torlauncher.bootstrapStatus.loading_keys=Cargando certificados de autoridad
torlauncher.bootstrapStatus.requesting_descriptors=Solicitando información de relevos
torlauncher.bootstrapStatus.loading_descriptors=Cargando información de relevos
+torlauncher.bootstrapStatus.enough_dirinfo=Finalizada la carga de información de relevos
+torlauncher.bootstrapStatus.ap_conn_pt=Construyendo circuitos: Conectando a un puente
+torlauncher.bootstrapStatus.ap_conn_done_pt=Construyendo circuitos: Conectado a un puente
+torlauncher.bootstrapStatus.ap_conn_proxy=Construyendo circuitos: Conectando a un proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Construyendo circuitos: Conectado a un proxy
+torlauncher.bootstrapStatus.ap_conn=Construyendo circuitos: Conectando a un relevo Tor
+torlauncher.bootstrapStatus.ap_conn_done=Construyendo circuitos: Conectado a un relevo Tor
+torlauncher.bootstrapStatus.ap_handshake=Construyendo circuitos: Negociando con un relevo Tor
+torlauncher.bootstrapStatus.ap_handshake_done=Construyendo Circuitos: Finalizada la negociación con un relevo Tor
+torlauncher.bootstrapStatus.circuit_create=Construyendo circuitos: Estableciendo un circuito Tor
torlauncher.bootstrapStatus.done=¡Conectado a la red de Tor!
torlauncher.bootstrapWarning.done=hecho
diff --git a/src/chrome/locale/es-CL/torlauncher.properties b/src/chrome/locale/es-CL/torlauncher.properties
index 15a3fc1..ca9774b 100644
--- a/src/chrome/locale/es-CL/torlauncher.properties
+++ b/src/chrome/locale/es-CL/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
diff --git a/src/chrome/locale/es-CO/torlauncher.properties b/src/chrome/locale/es-CO/torlauncher.properties
index 6fffd6f..9a1b292 100644
--- a/src/chrome/locale/es-CO/torlauncher.properties
+++ b/src/chrome/locale/es-CO/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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 de Tor
+torlauncher.bootstrapStatus.handshake_or=Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
diff --git a/src/chrome/locale/es-MX/torlauncher.properties b/src/chrome/locale/es-MX/torlauncher.properties
index 67d1f87..f6296c9 100644
--- a/src/chrome/locale/es-MX/torlauncher.properties
+++ b/src/chrome/locale/es-MX/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Si necesitas ayuda, visita %S
torlauncher.copiedNLogMessages=Copia completa. %S mensajes del registro de Tor están listos para ser pegados en un editor de texto o mensaje de correo electrónico.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=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=Solicitando información de retransmisión
torlauncher.bootstrapStatus.loading_descriptors=Cargando información del relé
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=¡Conectado a la red Tor!
torlauncher.bootstrapWarning.done=hecho
diff --git a/src/chrome/locale/es/network-settings.dtd b/src/chrome/locale/es/network-settings.dtd
index bb642d3..9949f21 100644
--- a/src/chrome/locale/es/network-settings.dtd
+++ b/src/chrome/locale/es/network-settings.dtd
@@ -4,7 +4,7 @@
<!ENTITY torsettings.wizard.title.connecting "Estableciendo una conexión.">
<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Idioma del Navegador Tor">
+<!ENTITY torlauncher.localePicker.title "Idioma del Tor Browser">
<!ENTITY torlauncher.localePicker.prompt "Por favor, seleccione un idioma.">
<!-- For "first run" wizard: -->
diff --git a/src/chrome/locale/es/torlauncher.properties b/src/chrome/locale/es/torlauncher.properties
index bbfcab8..10baffc 100644
--- a/src/chrome/locale/es/torlauncher.properties
+++ b/src/chrome/locale/es/torlauncher.properties
@@ -3,8 +3,8 @@
torlauncher.error_title=Arranque de Tor
-torlauncher.tor_exited_during_startup=Tor se cerró durante el arranque. Esto se podría deber a un error en tu fichero torrc, un fallo en Tor o en otro programa de tu sistema, o a hardware defectuoso. Hasta que soluciones el problema subyacente y reinices Tor, el Navegador Tor no se iniciará.
-torlauncher.tor_exited=Tor se cerró inesperadamente. Esto podría deberse a un fallo con el propio Tor, con otro programa de su sistema, o por hardware defectuoso. Hasta que reinicie Tor, el Navegador Tor no podrá abrir ningún sitio web. Si el problema persiste, por favor envíe una copia de su Registro de Tor (log) al equipo de soporte.
+torlauncher.tor_exited_during_startup=Tor se cerró durante el arranque. Esto se podría deber a un error en tu fichero torrc, un fallo en Tor o en otro programa de tu sistema, o a hardware defectuoso. Hasta que soluciones el problema subyacente y reinices Tor, el Tor Browser no se iniciará.
+torlauncher.tor_exited=Tor se cerró inesperadamente. Esto podría deberse a un fallo con el propio Tor, con otro programa de su sistema, o por hardware defectuoso. Hasta que reinicie Tor, el Tor Browser no podrá abrir ningún sitio web. Si el problema persiste, por favor envíe una copia de su Registro de Tor (log) al equipo de soporte.
torlauncher.tor_exited2=Al reiniciar Tor no se cerrarán las pestañas de tu navegador.
torlauncher.tor_controlconn_failed=No se pudo conectar al puerto de control de Tor
torlauncher.tor_failed_to_start=Tor no pudo iniciarse.
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Para asistencia, visita %S
torlauncher.copiedNLogMessages=Copia completada. %S mensajes de registro ('log') de Tor están listos para ser pegados en un editor de texto o en un mensaje de correo electrónico.
+torlauncher.bootstrapStatus.starting=Comenzando
+torlauncher.bootstrapStatus.conn_pt=Conectando al puente
+torlauncher.bootstrapStatus.conn_done_pt=Conectado al puente
+torlauncher.bootstrapStatus.conn_proxy=Conectando al proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Conectado al proxy
+torlauncher.bootstrapStatus.conn=Conectando al relay Tor
+torlauncher.bootstrapStatus.conn_done=Conectado al relay Tor
+torlauncher.bootstrapStatus.handshake=Negociando con un relay Tor
+torlauncher.bootstrapStatus.handshake_done=Terminando la negociación con un relay Tor
torlauncher.bootstrapStatus.onehop_create=Estableciendo una conexión cifrada con el repositorio de repetidores
torlauncher.bootstrapStatus.requesting_status=Recopilando el estado de la red
torlauncher.bootstrapStatus.loading_status=Cargando el estado de la red
torlauncher.bootstrapStatus.loading_keys=Cargando los certificados de autoridades
torlauncher.bootstrapStatus.requesting_descriptors=Solicitando información del repetidor
torlauncher.bootstrapStatus.loading_descriptors=Cargando la información del repetidor
+torlauncher.bootstrapStatus.enough_dirinfo=Terminando de cargar la información de relay
+torlauncher.bootstrapStatus.ap_conn_pt=Construyendo circuitos. Conectando a un puente.
+torlauncher.bootstrapStatus.ap_conn_done_pt=Construyendo circuitos. Conectando a un puente.
+torlauncher.bootstrapStatus.ap_conn_proxy=Construyendo circuitos. Conectando a un proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Construyendo circuitos. Conectando a un proxy
+torlauncher.bootstrapStatus.ap_conn=Construyendo circuitos. Conectando a un relay Tor
+torlauncher.bootstrapStatus.ap_conn_done=Construyendo circuitos. Conectando a un relay Tor
+torlauncher.bootstrapStatus.ap_handshake=Construyendo circuitos. Negoaicando with un relay Tor
+torlauncher.bootstrapStatus.ap_handshake_done=Construyendo circuitos. Terminando la negociación con un relay de Tor
+torlauncher.bootstrapStatus.circuit_create=Construyendo circuitos. Estableciendo un circuito Tor
torlauncher.bootstrapStatus.done=¡Conectado a la red Tor!
torlauncher.bootstrapWarning.done=terminado
diff --git a/src/chrome/locale/et/network-settings.dtd b/src/chrome/locale/et/network-settings.dtd
index 1e7c712..6af4f54 100644
--- a/src/chrome/locale/et/network-settings.dtd
+++ b/src/chrome/locale/et/network-settings.dtd
@@ -1,62 +1,62 @@
-<!ENTITY torsettings.dialog.title "Tor võrgu seaded">
-<!ENTITY torsettings.wizard.title.default "Connect to Tor">
-<!ENTITY torsettings.wizard.title.configure "Tor võrgu seaded">
-<!ENTITY torsettings.wizard.title.connecting "Establishing a Connection">
+<!ENTITY torsettings.dialog.title "Tor'i võrgu seaded">
+<!ENTITY torsettings.wizard.title.default "Ühendu Tor'i">
+<!ENTITY torsettings.wizard.title.configure "Tor'i võrgu seaded">
+<!ENTITY torsettings.wizard.title.connecting "Ühenduse loomine">
<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Veebilehitseja keel">
-<!ENTITY torlauncher.localePicker.prompt "Palun vali keel.">
+<!ENTITY torlauncher.localePicker.title "Tor'i brauseri keel">
+<!ENTITY torlauncher.localePicker.prompt "Palun valige keel.">
<!-- For "first run" wizard: -->
-<!ENTITY torSettings.connectPrompt "Click “Connect” to connect to Tor.">
-<!ENTITY torSettings.configurePrompt "Click “Configure” to adjust network settings if you are in a country that censors Tor (such as Egypt, China, Turkey) or if you are connecting from a private network that requires a proxy.">
-<!ENTITY torSettings.configure "Häälesta">
-<!ENTITY torSettings.connect "Ühenda">
+<!ENTITY torSettings.connectPrompt "Klikkige "Ühendu" et ühenduda Tor'i.">
+<!ENTITY torSettings.configurePrompt "Kliki "Seadista" et muuta võrgusätteid kui te viibite riigis, mis tsensoreerib Tor'i (näiteks Egiptus, Hiina, Türgi) või kui te ühendute eravõrgust millel on vaja proksit.">
+<!ENTITY torSettings.configure "Seadista">
+<!ENTITY torSettings.connect "Ühendu">
<!-- Other: -->
-<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
+<!ENTITY torsettings.startingTor "Ootan et Tor käivituks...">
<!ENTITY torsettings.restartTor "Taaskäivita Tor">
<!ENTITY torsettings.reconfigTor "Seadista uuesti">
-<!ENTITY torsettings.discardSettings.prompt "You have configured Tor bridges or you have entered local proxy settings.  To make a direct connection to the Tor network, these settings must be removed.">
-<!ENTITY torsettings.discardSettings.proceed "Eemalda seaded ja ühenda">
+<!ENTITY torsettings.discardSettings.prompt "Te olete seadistanud kohalikud Tor'i sillad või olete sisestanud kohalikud proksi sätted.  Et luua otseühendus Tor'i võrguga, tuleb need sätted eemaldada.">
+<!ENTITY torsettings.discardSettings.proceed "Eemalda seaded ja ühendu">
<!ENTITY torsettings.optional "Valikuline">
-<!ENTITY torsettings.useProxy.checkbox "I use a proxy to connect to the Internet">
+<!ENTITY torsettings.useProxy.checkbox "Ma kasutan proksit et ühenduda internetti">
<!ENTITY torsettings.useProxy.type "Proksi tüüp:">
-<!ENTITY torsettings.useProxy.type.placeholder "select a proxy type">
-<!ENTITY torsettings.useProxy.address "Address:">
-<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
+<!ENTITY torsettings.useProxy.type.placeholder "valige proksi tüüp">
+<!ENTITY torsettings.useProxy.address "Aadress:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP aadress või haldaja nimi">
<!ENTITY torsettings.useProxy.port "Port:">
<!ENTITY torsettings.useProxy.username "Kasutajanimi:">
<!ENTITY torsettings.useProxy.password "Parool:">
<!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 "See arvuti läheb läbi tulemüüri mis lubab ainult ühendusi kindlatesse portidesse.">
<!ENTITY torsettings.firewall.allowedPorts "Lubatud pordid:">
-<!ENTITY torsettings.useBridges.checkbox "Tor is censored in my country">
-<!ENTITY torsettings.useBridges.default "Select a built-in bridge">
-<!ENTITY torsettings.useBridges.default.placeholder "select a bridge">
-<!ENTITY torsettings.useBridges.bridgeDB "Request a bridge from torproject.org">
-<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Enter the characters from the image">
-<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Get a new challenge">
-<!ENTITY torsettings.useBridges.captchaSubmit "Submit">
-<!ENTITY torsettings.useBridges.custom "Provide a bridge I know">
-<!ENTITY torsettings.useBridges.label "Enter bridge information from a trusted source.">
-<!ENTITY torsettings.useBridges.placeholder "type address:port (one per line)">
-
-<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
-
-<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
-
-<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
-<!ENTITY torsettings.bridgeHelp2 "Because of how certain countries try to block Tor, certain bridges work in certain countries but not others.  If you are unsure about which bridges work in your country, visit torproject.org/about/contact.html#support">
+<!ENTITY torsettings.useBridges.checkbox "Tor on minu riigis tsensoreeritud">
+<!ENTITY torsettings.useBridges.default "Valige sisseehitatud sild">
+<!ENTITY torsettings.useBridges.default.placeholder "valige sild">
+<!ENTITY torsettings.useBridges.bridgeDB "Saatke päring torproject.org'i et saada sild">
+<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Sisestage pildil olevad tähemärgid">
+<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Võta uus väljakutse">
+<!ENTITY torsettings.useBridges.captchaSubmit "Esita">
+<!ENTITY torsettings.useBridges.custom "Sisesta enda sild">
+<!ENTITY torsettings.useBridges.label "Sisesta sillainfo usaldusväärsest allikast.">
+<!ENTITY torsettings.useBridges.placeholder "tüüp aadress:port (üks iga rea kohta)">
+
+<!ENTITY torsettings.copyLog "Kopeeri Tor'i logi lõikepuhvrisse">
+
+<!ENTITY torsettings.proxyHelpTitle "Proksi abi">
+<!ENTITY torsettings.proxyHelp1 "Kohalik proksi võib olla vajalik kui ühenduda läbi firma, kooli või ülikooli võrgu. Kui te ei ole kindlad kas proksi on vajalik, tutvuge internetisätetega teises brauseris või kontrollige oma süsteemi võrgusätteid.">
+
+<!ENTITY torsettings.bridgeHelpTitle "Silla relee abi">
+<!ENTITY torsettings.bridgeHelp1 "Sillad on järjendamata releed mis teevad Tor'i võrku ühenduvate ühenduste blokeerimise raskemaks.  Kõik sillatüübid kasutavad erinevat meetodit et tsensorlust vältida.  Obfs sillad obfuskeerivad teie andmeliikluse suvaliseks andmemüraks, ja meek tüüpi sillad tekitavad illusiooni et te ühendute sellesse teenusesse, mitte Tor'i.">
+<!ENTITY torsettings.bridgeHelp2 "Kuna erinevad riigid üritavad erinevate meetoditega Tor'i blokeerida, töötavad osad sillad osades riikides, kuid mitte teistes.  Kui Te ei ole kindlad millised sillad teie riigis töötavad, külastage torproject.org/about/contact.html#support">
<!-- Progress -->
-<!ENTITY torprogress.pleaseWait "Palun oota, kuni loome ühenduse Tor-võrguga.  See võib võtta mitu minutit.">
+<!ENTITY torprogress.pleaseWait "Palun oodake kuni loome ühenduse Tor'i võrguga.  See võib võtta mitu minutit.">
diff --git a/src/chrome/locale/et/torlauncher.properties b/src/chrome/locale/et/torlauncher.properties
index 2be485e..e6976b5 100644
--- a/src/chrome/locale/et/torlauncher.properties
+++ b/src/chrome/locale/et/torlauncher.properties
@@ -1,7 +1,7 @@
### Copyright (c) 2016, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.error_title=Tori käivitaja
+torlauncher.error_title=Tor'i käivitaja
torlauncher.tor_exited_during_startup=Tor exited during startup. This might be due to an error in your torrc file, a bug in Tor or another program on your system, or faulty hardware. Until you fix the underlying problem and restart Tor, Tor Browser will not start.
torlauncher.tor_exited=Tor unexpectedly exited. This might be due to a bug in Tor itself, another program on your system, or faulty hardware. Until you restart Tor, the Tor Browser will not able to reach any websites. If the problem persists, please send a copy of your Tor Log to the support team.
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Abi saamiseks külasta %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
-torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
-torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.requesting_descriptors=Relee teabe taotlemine
+torlauncher.bootstrapStatus.loading_descriptors=Relee teabe laadimine
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=valmis
diff --git a/src/chrome/locale/eu/network-settings.dtd b/src/chrome/locale/eu/network-settings.dtd
index e2be54a..8f788af 100644
--- a/src/chrome/locale/eu/network-settings.dtd
+++ b/src/chrome/locale/eu/network-settings.dtd
@@ -46,8 +46,8 @@
<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Lortu erronka berri bat">
<!ENTITY torsettings.useBridges.captchaSubmit "Bidali">
<!ENTITY torsettings.useBridges.custom "Provide a bridge I know">
-<!ENTITY torsettings.useBridges.label "Enter bridge information from a trusted source.">
-<!ENTITY torsettings.useBridges.placeholder "type address:port (one per line)">
+<!ENTITY torsettings.useBridges.label "Idatzi iturri fidagarri batetik ateratako zubiaren informazioa.">
+<!ENTITY torsettings.useBridges.placeholder "idatzi helbidea:ataka (bana lerroko)">
<!ENTITY torsettings.copyLog "Kopiatu Tor erregistroa arbelera">
diff --git a/src/chrome/locale/eu/torlauncher.properties b/src/chrome/locale/eu/torlauncher.properties
index 491ba33..0715cd9 100644
--- a/src/chrome/locale/eu/torlauncher.properties
+++ b/src/chrome/locale/eu/torlauncher.properties
@@ -29,8 +29,8 @@ torlauncher.error_default_bridges_type_missing=Emandako zubietarako garraio mota
torlauncher.error_bridgedb_bridges_missing=Please request a bridge.
torlauncher.error_bridge_bad_default_type=Ez daude eskuragarri %S garraio mota duten emandako zubirik. Mesedez doitu zure ezarpenak.
-torlauncher.bridge_suffix.meek-amazon=(works in China)
-torlauncher.bridge_suffix.meek-azure=(works in China)
+torlauncher.bridge_suffix.meek-amazon=(badabil Txinan)
+torlauncher.bridge_suffix.meek-azure=(badabil Txinan)
torlauncher.request_a_bridge=Request a Bridge…
torlauncher.request_a_new_bridge=Request a New Bridge…
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Laguntzako lortzeko, bisita ezazu %S
torlauncher.copiedNLogMessages=Kopia burutu da. %S Tor erregistro mezuak prest daude testu editore edo email mezu batean itsasteko.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Enkriptatutako direktorio batera konexioa ezartzen
torlauncher.bootstrapStatus.requesting_status=Sarearen egoera eskuratzen
torlauncher.bootstrapStatus.loading_status=Sarearen egoera kargatzen
torlauncher.bootstrapStatus.loading_keys=Aginpide ziurtagiriak kargatzen
torlauncher.bootstrapStatus.requesting_descriptors=Errele informazioa eskatzen
torlauncher.bootstrapStatus.loading_descriptors=Errele informazioa kargatzen
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Tor sarera konektatuta!
torlauncher.bootstrapWarning.done=eginda
diff --git a/src/chrome/locale/fa/network-settings.dtd b/src/chrome/locale/fa/network-settings.dtd
index d194b7d..dc220d4 100644
--- a/src/chrome/locale/fa/network-settings.dtd
+++ b/src/chrome/locale/fa/network-settings.dtd
@@ -55,8 +55,8 @@
<!ENTITY torsettings.proxyHelp1 "اگر از طریق شبکهی یک شرکت، مدرسه، یا دانشگاه به اینترنت متصل میشوید، ممکن است احتیاج به یک پروکسی داخلی داشته باشید. اگر از احتیاج به پروکسی داخلی مطمئن نیستید، به تنظیمات شبکه یک مرورگر دیگر یا تنظیمات شبکه سیستم خود نگاه کنید.">
<!ENTITY torsettings.bridgeHelpTitle "کمک برای پل ارتباطی">
-<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
-<!ENTITY torsettings.bridgeHelp2 "Because of how certain countries try to block Tor, certain bridges work in certain countries but not others.  If you are unsure about which bridges work in your country, visit torproject.org/about/contact.html#support">
+<!ENTITY torsettings.bridgeHelp1 "پلها رلههایی فهرست نشده هستند که مسدودیت ارتباط به شبکه Tor را سختتر میکنند.  هر نوعی از پل از روش مختلفی برای مقابله با سانسور استفاده میکند.  نوع obgs ترافیک شما را شبیه نویزهای راندوم نشان میدهند و نوع meek ترافیک شما را به جای اتصال به تور، در حال اتصال به آن خدمات نشان میدهد.">
+<!ENTITY torsettings.bridgeHelp2 "به دلیل اینکه بعضی کشورها سعی بر مسدودسازی تور دارند، بعضی از پلها فقط در این کشورها کار میکنند.  اگر مطمئن نیستید که کدام پلها در کشور شما کار میکنند، اینجا را ببینید torproject.org/about/contact.html#support">
<!-- Progress -->
<!ENTITY torprogress.pleaseWait "لطفا صبر کنید. در حال برقراری ارتباط با شبکه تٌر.&160; این پروسه ممکن است چند دقیقه به طول بینجامد.">
diff --git a/src/chrome/locale/fa/torlauncher.properties b/src/chrome/locale/fa/torlauncher.properties
index ec83f00..b7e3946 100644
--- a/src/chrome/locale/fa/torlauncher.properties
+++ b/src/chrome/locale/fa/torlauncher.properties
@@ -34,11 +34,11 @@ torlauncher.bridge_suffix.meek-azure=(در چین کار میکند)
torlauncher.request_a_bridge=درخواست یک پل...
torlauncher.request_a_new_bridge=درخواست یک پل جدید...
-torlauncher.contacting_bridgedb=Contacting BridgeDB. Please wait.
+torlauncher.contacting_bridgedb=تماس با BridgeDB. لطفا صبر کنید.
torlauncher.captcha_prompt=برای درخواست یک پل کپچا را حل کنید.
torlauncher.bad_captcha_solution=راه حل درست نیست. لطفا دوباره تلاش کنید.
-torlauncher.unable_to_get_bridge=Unable to obtain a bridge from BridgeDB.\n\n%S
-torlauncher.no_meek=This browser is not configured for meek, which is needed to obtain bridges.
+torlauncher.unable_to_get_bridge=نمیتوان پل را از BridgeDB دریافت کرد. \n\n%S
+torlauncher.no_meek=این مرورگر برای meek پیکربندی نشده است، که برای دستیابی به پلها لازم است.
torlauncher.no_bridges_available=متاسفم. در حال حاضر هیچ کدام از پلها در دسترس نیستند.
torlauncher.connect=اتصال
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=برای کمک، %S را ببینید.
torlauncher.copiedNLogMessages=کپی کامل شد. %S پیامهای ثبت شده آماده است تا Paste شود در ویرایشگر متن یا یک ایمیل.
+torlauncher.bootstrapStatus.starting=راه اندازی
+torlauncher.bootstrapStatus.conn_pt=در حال اتصال به پل
+torlauncher.bootstrapStatus.conn_done_pt=اتصال به پل برقرار شد
+torlauncher.bootstrapStatus.conn_proxy=در حال اتصال به پراکسی
+torlauncher.bootstrapStatus.conn_done_proxy=اتصال به پراکسی برقرار شد
+torlauncher.bootstrapStatus.conn=در حال اتصال به یک پل تور
+torlauncher.bootstrapStatus.conn_done=به یک پل تور متصل شد
+torlauncher.bootstrapStatus.handshake=در حال مذاکره با یک پل تور
+torlauncher.bootstrapStatus.handshake_done=مذاکره با یک پل تور انجام شد
torlauncher.bootstrapStatus.onehop_create=برپایی یک اتصال فهرست رمزبندی شده
torlauncher.bootstrapStatus.requesting_status=بازیابی وضیعت شبکه
torlauncher.bootstrapStatus.loading_status=بارگذاری وضیعت شبکه
torlauncher.bootstrapStatus.loading_keys=بارگذاری مجوز ها
torlauncher.bootstrapStatus.requesting_descriptors=درخواست اطلاعات باز پخش
torlauncher.bootstrapStatus.loading_descriptors=بارگذاری اطلاعات بازپخش
+torlauncher.bootstrapStatus.enough_dirinfo=بارگذاری اطلاعات پل انجام شد
+torlauncher.bootstrapStatus.ap_conn_pt=برقراری مسیریاب: در حال اتصال به یک پل
+torlauncher.bootstrapStatus.ap_conn_done_pt=برقراری مسیریاب: به پل متصل شد
+torlauncher.bootstrapStatus.ap_conn_proxy=برقراری مسیریاب: در حال اتصال به پراکسی
+torlauncher.bootstrapStatus.ap_conn_done_proxy=برقراری مسیریاب: به پراکسی متصل شد
+torlauncher.bootstrapStatus.ap_conn=برقراری مسیریاب: در حال اتصال به یک رله تور
+torlauncher.bootstrapStatus.ap_conn_done=برقراری مسیریاب: به یک رله تور متصل شد
+torlauncher.bootstrapStatus.ap_handshake=برقراری مسیریاب: در حال مذاکره با یک رله تور
+torlauncher.bootstrapStatus.ap_handshake_done=برقراری مسیریاب: مذاکره با یک رله تور انجام شد
+torlauncher.bootstrapStatus.circuit_create=برقراری مسیریاب: در حال برقراری مسیریاب تور
torlauncher.bootstrapStatus.done=به شبکه تور متصل شد!
torlauncher.bootstrapWarning.done=انجام شد
diff --git a/src/chrome/locale/fi/network-settings.dtd b/src/chrome/locale/fi/network-settings.dtd
index 75a613f..33de09f 100644
--- a/src/chrome/locale/fi/network-settings.dtd
+++ b/src/chrome/locale/fi/network-settings.dtd
@@ -1,7 +1,7 @@
<!ENTITY torsettings.dialog.title "Tor-verkkoasetukset">
-<!ENTITY torsettings.wizard.title.default "Connect to Tor">
+<!ENTITY torsettings.wizard.title.default "Yhdistä Tor'iin">
<!ENTITY torsettings.wizard.title.configure "Tor-verkkoasetukset">
-<!ENTITY torsettings.wizard.title.connecting "Establishing a Connection">
+<!ENTITY torsettings.wizard.title.connecting "Luodaan yhteyttä">
<!-- For locale picker: -->
<!ENTITY torlauncher.localePicker.title "Tor-selaimen kieli">
@@ -9,8 +9,8 @@
<!-- For "first run" wizard: -->
-<!ENTITY torSettings.connectPrompt "Click “Connect” to connect to Tor.">
-<!ENTITY torSettings.configurePrompt "Click “Configure” to adjust network settings if you are in a country that censors Tor (such as Egypt, China, Turkey) or if you are connecting from a private network that requires a proxy.">
+<!ENTITY torSettings.connectPrompt "Paina "Yhdistä" yhdistääksesi Tor'iin.">
+<!ENTITY torSettings.configurePrompt "Paina "Määrittele" muokataksesi verkkoasetuksia, jos olet Tor'ia sensuroivassa maassa (kuten Egypti, Kiina, tai Turkki), tai jos yhdistät välityspalvelinta vaativasta yksityisestä verkosta.">
<!ENTITY torSettings.configure "Määritä">
<!ENTITY torSettings.connect "Yhdistä">
@@ -25,9 +25,9 @@
<!ENTITY torsettings.optional "Vaihtoehtoinen">
-<!ENTITY torsettings.useProxy.checkbox "I use a proxy to connect to the Internet">
+<!ENTITY torsettings.useProxy.checkbox "Käytän välityspalvelinta yhdistääkseni internetiin">
<!ENTITY torsettings.useProxy.type "Välityspalvelintyyppi:">
-<!ENTITY torsettings.useProxy.type.placeholder "select a proxy type">
+<!ENTITY torsettings.useProxy.type.placeholder "valitse välityspalvelintyyppi">
<!ENTITY torsettings.useProxy.address "Osoite:">
<!ENTITY torsettings.useProxy.address.placeholder "IP-osoite tai palvelinnimi">
<!ENTITY torsettings.useProxy.port "Portti:">
@@ -38,25 +38,25 @@
<!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 "Tor is censored in my country">
-<!ENTITY torsettings.useBridges.default "Select a built-in bridge">
-<!ENTITY torsettings.useBridges.default.placeholder "select a bridge">
-<!ENTITY torsettings.useBridges.bridgeDB "Request a bridge from torproject.org">
-<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Enter the characters from the image">
-<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Get a new challenge">
+<!ENTITY torsettings.useBridges.checkbox "Maani sensuroi Tor'ia">
+<!ENTITY torsettings.useBridges.default "Valitse sisäänrakennettu silta">
+<!ENTITY torsettings.useBridges.default.placeholder "valitse silta">
+<!ENTITY torsettings.useBridges.bridgeDB "Pyydä silta osoitteesta torproject.org">
+<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Syötä kuvassa näkyvät merkit">
+<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Uusi haaste">
<!ENTITY torsettings.useBridges.captchaSubmit "Lähetä">
-<!ENTITY torsettings.useBridges.custom "Provide a bridge I know">
-<!ENTITY torsettings.useBridges.label "Enter bridge information from a trusted source.">
-<!ENTITY torsettings.useBridges.placeholder "type address:port (one per line)">
+<!ENTITY torsettings.useBridges.custom "Anna tuntemani silta">
+<!ENTITY torsettings.useBridges.label "Syötä luotettavasta lähteestä saatu siltatieto">
+<!ENTITY torsettings.useBridges.placeholder "kirjoita osoite:portti">
<!ENTITY torsettings.copyLog "Kopioi Tor-loki leikepöydälle">
-<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
+<!ENTITY torsettings.proxyHelpTitle "Välitysapua">
+<!ENTITY torsettings.proxyHelp1 "Saatat tarvita paikallista välityspalvelinta, kun yhdistät yritys-, koulu-, tai yliopistoverkon kautta.  Jos et ole varma välityspalvelimen tarpeesta, katso internetasetuksia muussa selaimessa tai tarkista järjestelmäsi verkkoasetukset.">
<!ENTITY torsettings.bridgeHelpTitle "Siltavälityspalvelinopaste">
-<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
-<!ENTITY torsettings.bridgeHelp2 "Because of how certain countries try to block Tor, certain bridges work in certain countries but not others.  If you are unsure about which bridges work in your country, visit torproject.org/about/contact.html#support">
+<!ENTITY torsettings.bridgeHelp1 "Sillat ovat listaamattomia releitä, jotka tekevät Tor-verkkoon yhdistämisen estämisestä vaikeampaa. Jokainen siltatyyppi käyttää eri menetelmää sensuurin välttämiseen.  Obfs-sillat saavat liikenteesi näyttämään satunnaiselta datalta, kun taas meek-sillat saavat sen näyttämään yhteydeltä omiin palveluihinsa Tor'in sijaan.">
+<!ENTITY torsettings.bridgeHelp2 "Riippuen siitä, miten jotkin maat estävät Tor'ia, jotkut sillat toimivat joissain maissa, mutteivät toisissa.  Jos et ole varma siltojen toimivuudesta omassa maassasi, käy osoitteessa torproject.org/about/contact.html#support">
<!-- Progress -->
<!ENTITY torprogress.pleaseWait "Odota pieni hetki, kun yhteys TOR-verkostoon luodaan. 
diff --git a/src/chrome/locale/fi/torlauncher.properties b/src/chrome/locale/fi/torlauncher.properties
index d90ee6d..f683527 100644
--- a/src/chrome/locale/fi/torlauncher.properties
+++ b/src/chrome/locale/fi/torlauncher.properties
@@ -26,20 +26,20 @@ torlauncher.error_proxy_addr_missing=Sinun on määriteltävä sekä IP-osoite e
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_bridgedb_bridges_missing=Please request a bridge.
+torlauncher.error_bridgedb_bridges_missing=Silta on pyydettävä.
torlauncher.error_bridge_bad_default_type=Tarjolla olevissa silloissa ei ole saatavilla siirtotyyppiä %S. Mukauta asetuksiasi.
-torlauncher.bridge_suffix.meek-amazon=(works in China)
-torlauncher.bridge_suffix.meek-azure=(works in China)
+torlauncher.bridge_suffix.meek-amazon=(toimii Kiinassa)
+torlauncher.bridge_suffix.meek-azure=(toimii Kiinassa)
-torlauncher.request_a_bridge=Request a Bridge…
-torlauncher.request_a_new_bridge=Request a New Bridge…
-torlauncher.contacting_bridgedb=Contacting BridgeDB. Please wait.
-torlauncher.captcha_prompt=Solve the CAPTCHA to request a bridge.
-torlauncher.bad_captcha_solution=The solution is not correct. Please try again.
-torlauncher.unable_to_get_bridge=Unable to obtain a bridge from BridgeDB.\n\n%S
-torlauncher.no_meek=This browser is not configured for meek, which is needed to obtain bridges.
-torlauncher.no_bridges_available=No bridges are available at this time. Sorry.
+torlauncher.request_a_bridge=Pyydä siltaa...
+torlauncher.request_a_new_bridge=Pyydä uusi silta...
+torlauncher.contacting_bridgedb=Yhdistetään BridgeDB:hen. Odota hetki.
+torlauncher.captcha_prompt=Ratkaise CAPTCHA jotta voit pyytää sillan.
+torlauncher.bad_captcha_solution=Ratkaisu ei ollut oikein. Yritä uudelleen.
+torlauncher.unable_to_get_bridge=Sillan lataaminen BridgeDB:stä epäonnistui.\n\n%S
+torlauncher.no_meek=Tätä selainta ei ole määritetty meek-yhteensopivaksi. Tarvitset meek-sovellusta siltojen latausta varten.
+torlauncher.no_bridges_available=Siltoja ei ole saatavilla tällä hetkellä. Pahoittelumme.
torlauncher.connect=Yhdistä
torlauncher.restart_tor=Käynnistä Tor uudelleen
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Tukea saat sivustolta %S
torlauncher.copiedNLogMessages=Kopionti suoritettu. %S Tor-lokiviestiä on valmiina kopiotavaksi tekstimuokkaimeen tai sähköpostiviestiin.
+torlauncher.bootstrapStatus.starting=Käynnistetään
+torlauncher.bootstrapStatus.conn_pt=Yhdistetään siltaan
+torlauncher.bootstrapStatus.conn_done_pt=Yhdistetty siltaan
+torlauncher.bootstrapStatus.conn_proxy=Yhdistetään välityspalvelimeen
+torlauncher.bootstrapStatus.conn_done_proxy=Yhdistetty välityspalvelimeen
+torlauncher.bootstrapStatus.conn=Yhdistetään Tor-reitittimeen
+torlauncher.bootstrapStatus.conn_done=Yhdistetty Tor-reitittimeen
+torlauncher.bootstrapStatus.handshake=Neuvotellaan Tor-reitittimen kanssa
+torlauncher.bootstrapStatus.handshake_done=Neuvottelu Tor-reitittimen kanssa valmis
torlauncher.bootstrapStatus.onehop_create=Muodostetaan suojattu yhteys hakemistoon
torlauncher.bootstrapStatus.requesting_status=Noudetaan verkon tila
torlauncher.bootstrapStatus.loading_status=Ladataan verkon tila
torlauncher.bootstrapStatus.loading_keys=Ladataan juurivarmenteita
torlauncher.bootstrapStatus.requesting_descriptors=Pyydetään reititintietoja
torlauncher.bootstrapStatus.loading_descriptors=Ladataan reititintietoja
+torlauncher.bootstrapStatus.enough_dirinfo=Reititintietojen lataus valmis
+torlauncher.bootstrapStatus.ap_conn_pt=Rakennetaan reittiä: Yhdistetään siltaan
+torlauncher.bootstrapStatus.ap_conn_done_pt=Rakennetaan reittiä: Yhdistetty siltaan
+torlauncher.bootstrapStatus.ap_conn_proxy=Rakennetaan reittiä: Yhdistetään välityspalvelimeen
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Rakennetaan reittiä: Yhdistetty välityspalvelimeen
+torlauncher.bootstrapStatus.ap_conn=Rakennetaan reittiä: Yhdistetään Tor-reitittimeen
+torlauncher.bootstrapStatus.ap_conn_done=Rakennetaan reittiä: Yhdistetty Tor-reitittimeen
+torlauncher.bootstrapStatus.ap_handshake=Rakennetaan reittiä: Neuvotellaan Tor-reitittimen kanssa
+torlauncher.bootstrapStatus.ap_handshake_done=Rakennetaan reittiä: Neuvottelu Tor-reitittimen kanssa valmis
+torlauncher.bootstrapStatus.circuit_create=Rakennetaan reittiä: Rakennetaan Tor-reitti
torlauncher.bootstrapStatus.done=Yhdistetty Tor-verkkoon!
torlauncher.bootstrapWarning.done=valmis
@@ -70,6 +89,6 @@ torlauncher.bootstrapWarning.noroute=ei reittiä palvelimelle
torlauncher.bootstrapWarning.ioerror=luku/kirjoitusvirhe
torlauncher.bootstrapWarning.pt_missing=puuttuu kytkettävä liikenne
-torlauncher.nsresult.NS_ERROR_NET_RESET=The connection to the server was lost.
-torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Could not connect to the server.
-torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Could not connect to the proxy.
+torlauncher.nsresult.NS_ERROR_NET_RESET=Yhteys palvelimeen menetetty.
+torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Yhteydenotto palvelimeen epäonnistui.
+torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Yhteydenotto välityspalvelimeen epäonnistui.
diff --git a/src/chrome/locale/fil/torlauncher.properties b/src/chrome/locale/fil/torlauncher.properties
index e0fbc2b..41a5ee3 100644
--- a/src/chrome/locale/fil/torlauncher.properties
+++ b/src/chrome/locale/fil/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=Para sa gabay o tulong, bisitahin ang %S
torlauncher.copiedNLogMessages=Kumpleto na ang Pag-kopya. %S Ang mga log messages ng Tor ay handa na ma-paste sa isang text editor o sa e-mail message.
-torlauncher.bootstrapStatus.onehop_create= Itinatatag ang isang naka-encrypt na direktoryo ng koneksyon
+torlauncher.bootstrapStatus.conn_dir=Kumokonekta sa isang direktoryo ng relay
+torlauncher.bootstrapStatus.handshake_dir= Itinatatag ang isang naka-encrypt na direktoryo ng koneksyon
torlauncher.bootstrapStatus.requesting_status=Kinukuha ang katayuan ng network
torlauncher.bootstrapStatus.loading_status=Ikinakarga ang katayuan ng network
torlauncher.bootstrapStatus.loading_keys=Ikinakarga ang mga sertipiko ng awtoridad
torlauncher.bootstrapStatus.requesting_descriptors=Humihiling ng impormasyon tungkol sa relay
torlauncher.bootstrapStatus.loading_descriptors=Ikinakarga ang impormasyon tungkol sa relay
+torlauncher.bootstrapStatus.conn_or=Kumukonekta sa network ng Tor
+torlauncher.bootstrapStatus.handshake_or=Nagtatatag ng Tor circuit
torlauncher.bootstrapStatus.done=Nakakonekta sa Tor Network.
torlauncher.bootstrapWarning.done=tapos na
diff --git a/src/chrome/locale/fo/torlauncher.properties b/src/chrome/locale/fo/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/fo/torlauncher.properties
+++ b/src/chrome/locale/fo/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/fr/network-settings.dtd b/src/chrome/locale/fr/network-settings.dtd
index cd6fd9c..bb04ab6 100644
--- a/src/chrome/locale/fr/network-settings.dtd
+++ b/src/chrome/locale/fr/network-settings.dtd
@@ -1,10 +1,10 @@
-<!ENTITY torsettings.dialog.title "Paramètres du réseau Tor">
+<!ENTITY torsettings.dialog.title "Paramètres du réseau Tor">
<!ENTITY torsettings.wizard.title.default "Se connecter à Tor">
-<!ENTITY torsettings.wizard.title.configure "Paramètres du réseau Tor">
+<!ENTITY torsettings.wizard.title.configure "Paramètres du réseau Tor">
<!ENTITY torsettings.wizard.title.connecting "Établissement d’une connexion">
<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Langue du Navigateur Tor">
+<!ENTITY torlauncher.localePicker.title "Langue du navigateur Tor Browser">
<!ENTITY torlauncher.localePicker.prompt "Veuillez choisir une langue.">
<!-- For "first run" wizard: -->
@@ -20,7 +20,7 @@
<!ENTITY torsettings.restartTor "Redémarrer Tor">
<!ENTITY torsettings.reconfigTor "Reconfigurer">
-<!ENTITY torsettings.discardSettings.prompt "Vous avez configuré des ponts Tor ou vous avez saisi des paramètres de mandataire local. Pour établir une connexion directe vers le réseau Tor, ces paramètres doivent être supprimés.">
+<!ENTITY torsettings.discardSettings.prompt "Vous avez configuré des ponts Tor ou vous avez saisi des paramètres de mandataire local. Pour établir une connexion directe vers le réseau Tor, ces paramètres doivent être supprimés.">
<!ENTITY torsettings.discardSettings.proceed "Supprimer les paramètres et se connecter">
<!ENTITY torsettings.optional "facultatif">
@@ -59,4 +59,4 @@
<!ENTITY torsettings.bridgeHelp2 "Dans la mesure où certains pays tentent de bloquer Tor, certains ponts fonctionnent dans certains pays, mais pas dans d’autres. Si vous ne savez pas quels ponts fonctionnent dans votre pays, visitez torproject.org/about/contact.html#support">
<!-- Progress -->
-<!ENTITY torprogress.pleaseWait "Veuillez patienter pendant que nous établissons une connexion vers le réseau Tor. Cela pourrait prendre plusieurs minutes.">
+<!ENTITY torprogress.pleaseWait "Veuillez patienter pendant que nous établissons une connexion vers le réseau Tor. Cela pourrait prendre plusieurs minutes.">
diff --git a/src/chrome/locale/fr/torlauncher.properties b/src/chrome/locale/fr/torlauncher.properties
index a30a07f..d05ca96 100644
--- a/src/chrome/locale/fr/torlauncher.properties
+++ b/src/chrome/locale/fr/torlauncher.properties
@@ -1,15 +1,15 @@
### Copyright (c) 2016, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.error_title=Lanceur Tor
+torlauncher.error_title=Lanceur Tor
-torlauncher.tor_exited_during_startup=Tor s’est fermé pendant le démarrage. Cela peut être dû à une erreur dans votre fichier torrc, un bogue dans Tor ou dans un autre programme de votre système, ou encore à un matériel défectueux. Jusqu’à ce que vous corrigiez le problème sous-jacent et redémarriez Tor, le Navigateur Tor ne démarrera pas.
-torlauncher.tor_exited=Tor s’est fermé de manière imprévue. Cela peut être dû à un bogue dans Tor même, un autre programme dans votre système ou un matériel défectueux. Jusqu’à ce que vous redémarriez Tor, le Navigateur Tor ne pourra atteindre aucun site. Si le problème persiste, veuillez envoyer une copie de votre journal de Tor à l’équipe de soutien.
+torlauncher.tor_exited_during_startup=Tor s’est fermé pendant le démarrage. Cela peut être dû à une erreur dans votre fichier torrc, un bogue dans Tor ou dans un autre programme de votre système, ou encore à un matériel défectueux. Jusqu’à ce que vous corrigiez le problème sous-jacent et redémarriez Tor, le navigateur Tor Browser ne démarrera pas.
+torlauncher.tor_exited=Tor s’est fermé de manière imprévue. Cela peut être dû à un bogue dans Tor même, un autre programme dans votre système ou un matériel défectueux. Jusqu’à ce que vous redémarriez Tor, le navigateur Tor Browser ne pourra atteindre aucun site. Si le problème persiste, veuillez envoyer une copie de votre journal de Tor à l’équipe de soutien.
torlauncher.tor_exited2=Redémarrer Tor ne fermera pas les onglets de votre navigateur.
torlauncher.tor_controlconn_failed=Impossible de se connecter au port de contrôle de Tor.
torlauncher.tor_failed_to_start=Tor n’a pas pu démarrer.
torlauncher.tor_control_failed=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=Échec lors de la connexion de Tor au réseau Tor.
torlauncher.tor_bootstrap_failed_details=L’étape %1$S a échoué (%2$S).
torlauncher.unable_to_start_tor=Impossible de démarrer Tor.\n\n%S
@@ -52,13 +52,32 @@ torlauncher.forAssistance2=Pour de l’assistance, visiter %S
torlauncher.copiedNLogMessages=La copie est terminée. %S messages de journalisation de Tor sont prêts à être collés dans un éditeur de texte ou un courriel.
+torlauncher.bootstrapStatus.starting=Démarrage
+torlauncher.bootstrapStatus.conn_pt=Connexion au pont
+torlauncher.bootstrapStatus.conn_done_pt=Nous sommes connecté au pont
+torlauncher.bootstrapStatus.conn_proxy=Connexion au mandataire
+torlauncher.bootstrapStatus.conn_done_proxy=Nous sommes connecté au mandataire
+torlauncher.bootstrapStatus.conn=Connexion à un relais Tor
+torlauncher.bootstrapStatus.conn_done=Nous sommes connecté à un relais Tor
+torlauncher.bootstrapStatus.handshake=Négociation avec un relais Tor
+torlauncher.bootstrapStatus.handshake_done=La négociation avec un relais Tor est terminée
torlauncher.bootstrapStatus.onehop_create=Mise en place d’une connexion chiffrée à l’annuaire
torlauncher.bootstrapStatus.requesting_status=Récupération de l’état du réseau
torlauncher.bootstrapStatus.loading_status=Chargement de l’état du réseau
torlauncher.bootstrapStatus.loading_keys=Chargement des certificats d’autorité
torlauncher.bootstrapStatus.requesting_descriptors=Demande d’informations sur le relais
torlauncher.bootstrapStatus.loading_descriptors=Chargement des informations sur le relais
-torlauncher.bootstrapStatus.done=Vous êtes connecté au réseau Tor !
+torlauncher.bootstrapStatus.enough_dirinfo=Le chargement des renseignements du relais est terminé
+torlauncher.bootstrapStatus.ap_conn_pt=Construction des circuits : connexion au pont
+torlauncher.bootstrapStatus.ap_conn_done_pt=Construction des circuits : nous sommes connecté au pont
+torlauncher.bootstrapStatus.ap_conn_proxy=Construction des circuits : connexion au mandataire
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Construction des circuits : nous sommes connecté au mandataire
+torlauncher.bootstrapStatus.ap_conn=Construction des circuits : connexion à un relais Tor
+torlauncher.bootstrapStatus.ap_conn_done=Construction des circuits : nous sommes connecté à un relais Tor
+torlauncher.bootstrapStatus.ap_handshake=Construction des circuits : négociation avec un relais Tor
+torlauncher.bootstrapStatus.ap_handshake_done=Construction des circuits : la négociation avec un relais Tor est terminée
+torlauncher.bootstrapStatus.circuit_create=Construction des circuits : mise en place d’un circuit Tor
+torlauncher.bootstrapStatus.done=Vous êtes connecté au réseau Tor !
torlauncher.bootstrapWarning.done=terminé
torlauncher.bootstrapWarning.connectrefused=connexion refusée
diff --git a/src/chrome/locale/fur/torlauncher.properties b/src/chrome/locale/fur/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/fur/torlauncher.properties
+++ b/src/chrome/locale/fur/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/fy/torlauncher.properties b/src/chrome/locale/fy/torlauncher.properties
index 7884935..c4eccc9 100644
--- a/src/chrome/locale/fy/torlauncher.properties
+++ b/src/chrome/locale/fy/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
diff --git a/src/chrome/locale/ga/torlauncher.properties b/src/chrome/locale/ga/torlauncher.properties
index 6d233f5..cfea2a0 100644
--- a/src/chrome/locale/ga/torlauncher.properties
+++ b/src/chrome/locale/ga/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Tabhair cuairt ar %S le cúnamh a fháil
torlauncher.copiedNLogMessages=Cóipeáílte. Tá %S teachtaireacht ón logchomhad Tor réidh le greamú in eagarthóir téacs nó i dteachtaireacht rphoist.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Ceangal criptithe le heolaire á bhunú
torlauncher.bootstrapStatus.requesting_status=Stádas an líonra á fháil
torlauncher.bootstrapStatus.loading_status=Stádas an líonra á lódáil
torlauncher.bootstrapStatus.loading_keys=Teastais an údaráis á lódáil
torlauncher.bootstrapStatus.requesting_descriptors=Eolas faoin athsheachadán á iarraidh
torlauncher.bootstrapStatus.loading_descriptors=Eolas faoin athsheachadán á lódáil
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Tá tú ceangailte le líonra Tor!
torlauncher.bootstrapWarning.done=críochnaithe
diff --git a/src/chrome/locale/gl/network-settings.dtd b/src/chrome/locale/gl/network-settings.dtd
index f9beeaa..bde5036 100644
--- a/src/chrome/locale/gl/network-settings.dtd
+++ b/src/chrome/locale/gl/network-settings.dtd
@@ -44,7 +44,7 @@
<!ENTITY torsettings.useBridges.bridgeDB "Request a bridge from torproject.org">
<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Enter the characters from the image">
<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Get a new challenge">
-<!ENTITY torsettings.useBridges.captchaSubmit "Submit">
+<!ENTITY torsettings.useBridges.captchaSubmit "Enviar">
<!ENTITY torsettings.useBridges.custom "Provide a bridge I know">
<!ENTITY torsettings.useBridges.label "Enter bridge information from a trusted source.">
<!ENTITY torsettings.useBridges.placeholder "type address:port (one per line)">
diff --git a/src/chrome/locale/gl/torlauncher.properties b/src/chrome/locale/gl/torlauncher.properties
index 70abb19..c15b89f 100644
--- a/src/chrome/locale/gl/torlauncher.properties
+++ b/src/chrome/locale/gl/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Iniciando
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=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.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Conectado á rede Tor!
torlauncher.bootstrapWarning.done=feito
diff --git a/src/chrome/locale/gu-IN/torlauncher.properties b/src/chrome/locale/gu-IN/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/gu-IN/torlauncher.properties
+++ b/src/chrome/locale/gu-IN/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/gu/torlauncher.properties b/src/chrome/locale/gu/torlauncher.properties
index 1c4ff0f..b040847 100644
--- a/src/chrome/locale/gu/torlauncher.properties
+++ b/src/chrome/locale/gu/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
diff --git a/src/chrome/locale/he/torlauncher.properties b/src/chrome/locale/he/torlauncher.properties
index 118e515..8593edf 100644
--- a/src/chrome/locale/he/torlauncher.properties
+++ b/src/chrome/locale/he/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=לתמיכה, בקר ב-%S
torlauncher.copiedNLogMessages=ההעתקה הושלמה. %S הודעות יומן אירועים של Tor מוכנות להדבקה לתוך עורך מלל או להודעת דוא"ל.
+torlauncher.bootstrapStatus.starting=מתחיל
+torlauncher.bootstrapStatus.conn_pt=מתחבר אל גשר
+torlauncher.bootstrapStatus.conn_done_pt=מחובר אל גשר
+torlauncher.bootstrapStatus.conn_proxy=מתחבר אל ייפוי כוח
+torlauncher.bootstrapStatus.conn_done_proxy=מחובר אל ייפוי כוח
+torlauncher.bootstrapStatus.conn=מתחבר אל ממסר Tor
+torlauncher.bootstrapStatus.conn_done=מחובר אל ממסר Tor
+torlauncher.bootstrapStatus.handshake=מנהל משא ומתן עם ממסר Tor
+torlauncher.bootstrapStatus.handshake_done=סיים לנהל משא ומתן עם ממסר Tor
torlauncher.bootstrapStatus.onehop_create=מקים חיבור סיפרייה מוצפן
-torlauncher.bootstrapStatus.requesting_status=מאחזר מיצב רשת
-torlauncher.bootstrapStatus.loading_status=טוען מיצב רשת
+torlauncher.bootstrapStatus.requesting_status=מאחזר מעמד רשת
+torlauncher.bootstrapStatus.loading_status=טוען מעמד רשת
torlauncher.bootstrapStatus.loading_keys=טוען אישורי רָשׁוּת
torlauncher.bootstrapStatus.requesting_descriptors=מבקש מידע ממסר
torlauncher.bootstrapStatus.loading_descriptors=טוען מידע ממסר
+torlauncher.bootstrapStatus.enough_dirinfo=סיים לטעון מידע ממסר
+torlauncher.bootstrapStatus.ap_conn_pt=בניית מעגלים: מתחבר אל גשר
+torlauncher.bootstrapStatus.ap_conn_done_pt=בניית מעגלים: מחובר אל גשר
+torlauncher.bootstrapStatus.ap_conn_proxy=בניית מעגלים: מתחבר אל ייפוי כוח
+torlauncher.bootstrapStatus.ap_conn_done_proxy=בניית מעגלים: מחובר אל ייפוי כוח
+torlauncher.bootstrapStatus.ap_conn=בניית מעגלים: מתחבר אל ממסר Tor
+torlauncher.bootstrapStatus.ap_conn_done=בניית מעגלים: מחובר אל ממסר Tor
+torlauncher.bootstrapStatus.ap_handshake=בניית מעגלים: מנהל משא ומתן עם ממסר Tor
+torlauncher.bootstrapStatus.ap_handshake_done=בניית מעגלים: סיים לנהל משא ומתן עם ממסר Tor
+torlauncher.bootstrapStatus.circuit_create=בניית מעגלים: מקים מעגל Tor
torlauncher.bootstrapStatus.done=מחובר לרשת Tor!
torlauncher.bootstrapWarning.done=בוצע
diff --git a/src/chrome/locale/hi/torlauncher.properties b/src/chrome/locale/hi/torlauncher.properties
index a7f07f4..143c277 100644
--- a/src/chrome/locale/hi/torlauncher.properties
+++ b/src/chrome/locale/hi/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=सहायता के लिए, %S पर जा
torlauncher.copiedNLogMessages=कॉपी कॉपी करें। %S टोर लॉग संदेश टेक्स्ट एडिटर या ईमेल संदेश में चिपकने के लिए तैयार हैं।
+torlauncher.bootstrapStatus.starting=शुरुआत में
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=एक एन्क्रिप्टेड निर्देशिका कनेक्शन स्थापित किया जा रहा है
torlauncher.bootstrapStatus.requesting_status=नेटवर्क की स्थिति को पुनः प्राप्त करना
torlauncher.bootstrapStatus.loading_status=नेटवर्क स्थिति लोड हो रहा है
torlauncher.bootstrapStatus.loading_keys=प्राधिकरण प्रमाण पत्र लोड हो रहा है
torlauncher.bootstrapStatus.requesting_descriptors=रिले जानकारी का अनुरोध
torlauncher.bootstrapStatus.loading_descriptors=रिले जानकारी लोड हो रहा है
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=टोर नेटवर्क से जुड़ा हुआ है!
torlauncher.bootstrapWarning.done=सम्पन्न
diff --git a/src/chrome/locale/hr-HR/torlauncher.properties b/src/chrome/locale/hr-HR/torlauncher.properties
index c13ba37..1748e08 100644
--- a/src/chrome/locale/hr-HR/torlauncher.properties
+++ b/src/chrome/locale/hr-HR/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Za pomoć posjetite %S
torlauncher.copiedNLogMessages=Kopiranje završeno. %S Tor zapisi su spremni za lijepljenje u uređivač teksta ili email poruku.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Uspostavljanje enkriptirane veze na direktorij
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.requesting_descriptors=Zahtjevanje informacija o releju
torlauncher.bootstrapStatus.loading_descriptors=Učitavanje informacija o releju
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Spojen na Tor mrežu!
torlauncher.bootstrapWarning.done=gotovo
diff --git a/src/chrome/locale/hr/network-settings.dtd b/src/chrome/locale/hr/network-settings.dtd
index 6783163..26ca1a3 100644
--- a/src/chrome/locale/hr/network-settings.dtd
+++ b/src/chrome/locale/hr/network-settings.dtd
@@ -20,7 +20,7 @@
<!ENTITY torsettings.restartTor "Ponovno pokreni Tor">
<!ENTITY torsettings.reconfigTor "Ponovno podesi">
-<!ENTITY torsettings.discardSettings.prompt "You have configured Tor bridges or you have entered local proxy settings.  To make a direct connection to the Tor network, these settings must be removed.">
+<!ENTITY torsettings.discardSettings.prompt "Konfigurirali ste Tor mostove ili ste unijeli postavke lokalnog proxya.  Kako bi ostvarili direktnu vezu s Tor mrežom, ove postavke moraju biti uklonjene.">
<!ENTITY torsettings.discardSettings.proceed "Obriši postavke i poveži se">
<!ENTITY torsettings.optional "Neobavezno">
diff --git a/src/chrome/locale/hr/torlauncher.properties b/src/chrome/locale/hr/torlauncher.properties
index 5a4a8d8..4cccfc8 100644
--- a/src/chrome/locale/hr/torlauncher.properties
+++ b/src/chrome/locale/hr/torlauncher.properties
@@ -9,25 +9,25 @@ torlauncher.tor_exited2=Ponovno pokretanje Tor-a neće zatvoriti vaše kartice p
torlauncher.tor_controlconn_failed=Povezivanje na kontrolni port Tor-a nije uspjelo.
torlauncher.tor_failed_to_start=Pokretanje Tor-a nije uspjelo.
torlauncher.tor_control_failed=Uzimanje kontrole nad Tor-om nije uspjelo
-torlauncher.tor_bootstrap_failed=Tor failed to establish a Tor network connection.
-torlauncher.tor_bootstrap_failed_details=%1$S failed (%2$S).
+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=Unable to start Tor.\n\n%S
-torlauncher.tor_missing=The Tor executable is missing.
-torlauncher.torrc_missing=The torrc file is missing and could not be created.
-torlauncher.datadir_missing=The Tor data directory does not exist and could not be created.
-torlauncher.password_hash_missing=Failed to get hashed password.
+torlauncher.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=Torrc datoteka nedostaje i nije mogla biti stvorena.
+torlauncher.datadir_missing=Direktorij s Tor podacima ne postoji i nije mogao biti stvoren.
+torlauncher.password_hash_missing=Nije moguće dobiti hash lozinke.
-torlauncher.failed_to_get_settings=Unable to retrieve Tor settings.\n\n%S
-torlauncher.failed_to_save_settings=Unable to save Tor settings.\n\n%S
-torlauncher.ensure_tor_is_running=Please ensure that Tor is running.
+torlauncher.failed_to_get_settings=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 je Tor pokrenut.
-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_proxy_addr_missing=Morate navesti i IP adresu ili ime računala i broj porta da biste konfigurirali Tor za korištenje proxya za pristup Internetu.
+torlauncher.error_proxy_type_missing=Morate odabrati tip proxya.
+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_bridgedb_bridges_missing=Please request a bridge.
-torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+torlauncher.error_bridge_bad_default_type=Nema dostupnih pruženih mostova koji imaju %S vrstu transporta. Molimo, prilagodite svoje postavke.
torlauncher.bridge_suffix.meek-amazon=(works in China)
torlauncher.bridge_suffix.meek-azure=(works in China)
@@ -47,28 +47,47 @@ torlauncher.quit=Izlaz
torlauncher.quit_win=Izlaz
torlauncher.done=Gotovo
-torlauncher.forAssistance=For assistance, contact %S
-torlauncher.forAssistance2=For assistance, visit %S
+torlauncher.forAssistance=Za pomoć, kontaktirajte %S
+torlauncher.forAssistance2=Za pomoć posjetite %S
-torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.copiedNLogMessages=Kopiranje završeno. %S Tor zapisi su spremni za lijepljenje u uređivač teksta ili email poruku.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
-torlauncher.bootstrapStatus.requesting_status=Retrieving network status
-torlauncher.bootstrapStatus.loading_status=Loading network status
-torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
-torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
-torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
-torlauncher.bootstrapStatus.done=Connected to the Tor network!
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.onehop_create=Uspostavljanje enkriptirane veze na direktorij
+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.requesting_descriptors=Zahtjevanje informacija o releju
+torlauncher.bootstrapStatus.loading_descriptors=Učitavanje informacija o releju
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
+torlauncher.bootstrapStatus.done=Spojen na Tor mrežu!
-torlauncher.bootstrapWarning.done=done
+torlauncher.bootstrapWarning.done=gotovo
torlauncher.bootstrapWarning.connectrefused=veza odbijena
-torlauncher.bootstrapWarning.misc=miscellaneous
-torlauncher.bootstrapWarning.resourcelimit=insufficient resources
-torlauncher.bootstrapWarning.identity=identity mismatch
-torlauncher.bootstrapWarning.timeout=connection timeout
-torlauncher.bootstrapWarning.noroute=no route to host
-torlauncher.bootstrapWarning.ioerror=read/write error
-torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
+torlauncher.bootstrapWarning.misc=razno
+torlauncher.bootstrapWarning.resourcelimit=nedostatni resursi
+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=nedostaje priključni transport
torlauncher.nsresult.NS_ERROR_NET_RESET=The connection to the server was lost.
torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Could not connect to the server.
diff --git a/src/chrome/locale/ht/torlauncher.properties b/src/chrome/locale/ht/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/ht/torlauncher.properties
+++ b/src/chrome/locale/ht/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/hu/torlauncher.properties b/src/chrome/locale/hu/torlauncher.properties
index c9dfdf3..f46680d 100644
--- a/src/chrome/locale/hu/torlauncher.properties
+++ b/src/chrome/locale/hu/torlauncher.properties
@@ -3,7 +3,7 @@
torlauncher.error_title=Tor Indító
-torlauncher.tor_exited_during_startup=A Tor kilépett indulásnál. Ez lehet egy hiba miatt a torrc fájlodban, a Tor vagy másik program hibája miatt a rendszereden, vagy hibás hardver miatt. Amíg nem javítod ki a mögöttes problémát és indítod újra a Tor-t, addig a Tor Browser nem fog elindulni.
+torlauncher.tor_exited_during_startup=A Tor kilépett indulásnál. Ez lehet egy hiba miatt a torrc fájlodban, a Tor vagy másik program hibája miatt a rendszereden, vagy hibás hardver miatt. Amíg nem javítja ki a mögöttes problémát és indítja újra a Tor-t, addig a Tor Browser nem fog elindulni.
torlauncher.tor_exited=A Tor váratlanul kilépett. Ez bekövetkezhet a Tor-ban található hibából, egy a rendszeren található másik programból, vagy hibás hardverből. Amíg nem indítja újra a tor-t addig a Tor Browser nem ér el semmilyen oldalt. Ha a hiba folyamatosan fennáll, kérjük küldje le a Tor Log-ot a támogatási csoportnak.
torlauncher.tor_exited2=A Tor újraindítása nem fogja bezárni a böngésző füleket.
torlauncher.tor_controlconn_failed=Nem lehetséges csatlakozni a Tor vezérlő portjára
@@ -25,7 +25,7 @@ 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_default_bridges_type_missing=Ki kell választania egy átviteli típust a felkínált hidakhoz.
torlauncher.error_bridgedb_bridges_missing=Kérjük kérjen egy hidat,
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.
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Segítségért látogassa meg: %S
torlauncher.copiedNLogMessages=Másolás kész. %S Tor naplóüzenet áll készen a beillesztésre egy szövegszerkesztőbe vagy egy email üzenetbe.
+torlauncher.bootstrapStatus.starting=Indítás
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Titkosított címtárkapcsolat létrehozása
torlauncher.bootstrapStatus.requesting_status=Hálózat státuszának lekérdezése
torlauncher.bootstrapStatus.loading_status=Hálózat státuszának betöltése
torlauncher.bootstrapStatus.loading_keys=Tanúsítványkiadó tanúsítványok betöltése
torlauncher.bootstrapStatus.requesting_descriptors=Elosztási adatok lekérdezése
torlauncher.bootstrapStatus.loading_descriptors=Elosztási adatok betöltése
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Kapcsolódva a Tor hálózathoz!
torlauncher.bootstrapWarning.done=kész
diff --git a/src/chrome/locale/hy/torlauncher.properties b/src/chrome/locale/hy/torlauncher.properties
index fac6339..a945dde 100644
--- a/src/chrome/locale/hy/torlauncher.properties
+++ b/src/chrome/locale/hy/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
diff --git a/src/chrome/locale/ia/torlauncher.properties b/src/chrome/locale/ia/torlauncher.properties
index 7bfad23..b20f152 100644
--- a/src/chrome/locale/ia/torlauncher.properties
+++ b/src/chrome/locale/ia/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/id/network-settings.dtd b/src/chrome/locale/id/network-settings.dtd
index 6667c5a..d537d7b 100644
--- a/src/chrome/locale/id/network-settings.dtd
+++ b/src/chrome/locale/id/network-settings.dtd
@@ -4,7 +4,7 @@
<!ENTITY torsettings.wizard.title.connecting "Membuat sambungan">
<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Bahasa Peramban Tor">
+<!ENTITY torlauncher.localePicker.title "Bahasa Tor Browser">
<!ENTITY torlauncher.localePicker.prompt "Silahkan pilih bahasa.">
<!-- For "first run" wizard: -->
diff --git a/src/chrome/locale/id/torlauncher.properties b/src/chrome/locale/id/torlauncher.properties
index ea8644e..6e4b484 100644
--- a/src/chrome/locale/id/torlauncher.properties
+++ b/src/chrome/locale/id/torlauncher.properties
@@ -1,10 +1,10 @@
### Copyright (c) 2016, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.error_title=Tor Launcher
+torlauncher.error_title=Peluncur Tor
torlauncher.tor_exited_during_startup=Tor keluar ketika startup. Hal ini mungkin karena suatu kesalahan pada berkas torrc anda, bug pada Tor atau program lain pada sistem anda, atau kerusakan pada perangkat keras. Hingga anda memperbaiki masalah tersebut dan mulai ulang Tor, Tor Browser tidak akan dijalankan.
-torlauncher.tor_exited=Tor keluar mendadak. Ini dapat terjadi karena bug dalam Tor, atau program lain di sistem Anda, atau kerusakan perangkat keras. Sampai anda memuat ulang Tor, Browser Tor tidak dapat mencapai situs web apapun. Jika masalah ini terus bertahan, mohon mengirimkan salinan dari log Tor Anda kepada tim pendukung.
+torlauncher.tor_exited=Tor keluar mendadak. Ini dapat terjadi karena bug dalam Tor, atau program lain di sistem Anda, atau kerusakan perangkat keras. Sampai anda memuat ulang Tor, Tor Browser tidak dapat mencapai situs web apapun. Jika masalah ini terus bertahan, mohon mengirimkan salinan dari log Tor Anda kepada tim pendukung.
torlauncher.tor_exited2=Memuat ulang Tor tidak akan menutup tab browser Anda.
torlauncher.tor_controlconn_failed=Tidak dapat tersambung pada port kontrol Tor.
torlauncher.tor_failed_to_start=Tor gagal untuk memulai.
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Untuk bantuan, kunjungi %S
torlauncher.copiedNLogMessages=Penyalinan selesai. %S log pesan Tor telah siap untuk ditempelkan ke dalam editor text atau pesan email.
-torlauncher.bootstrapStatus.onehop_create=Membuat koneksi direktori terenkripsi
+torlauncher.bootstrapStatus.starting=Mulai
+torlauncher.bootstrapStatus.conn_pt=Menghubungkan ke bridge
+torlauncher.bootstrapStatus.conn_done_pt=Terhubung ke bridge
+torlauncher.bootstrapStatus.conn_proxy=Menghubungkan ke proksi
+torlauncher.bootstrapStatus.conn_done_proxy=Terhubung ke proksi
+torlauncher.bootstrapStatus.conn=Menghubungkan ke relay Tor
+torlauncher.bootstrapStatus.conn_done=Terhubung ke relay Tor
+torlauncher.bootstrapStatus.handshake=Bernegosiasi dengan relay Tor
+torlauncher.bootstrapStatus.handshake_done=Selesai bernegosiasi dengan relay Tor
+torlauncher.bootstrapStatus.onehop_create=Membuat koneksi direktori terenkripsi
torlauncher.bootstrapStatus.requesting_status=Mengambil status jaringan
torlauncher.bootstrapStatus.loading_status=Memuat status jaringan
torlauncher.bootstrapStatus.loading_keys=Memuat sertifikat otoritas
torlauncher.bootstrapStatus.requesting_descriptors=Meminta informasi relay
torlauncher.bootstrapStatus.loading_descriptors=Memuat informasi relay
+torlauncher.bootstrapStatus.enough_dirinfo=Selesai memuat informasi relay
+torlauncher.bootstrapStatus.ap_conn_pt=Membangun sirkuit: Menghubungkan ke bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Membangun sirkuit: Terhubung ke bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Membangun sirkuit: Menghubungkan ke proksi
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Membangun sirkuit: Terhubung ke proksi
+torlauncher.bootstrapStatus.ap_conn=Membangun sirkuit: Menghubungkan ke relay Tor
+torlauncher.bootstrapStatus.ap_conn_done=Membangun sirkuit: Terhubung ke relay Tor
+torlauncher.bootstrapStatus.ap_handshake=Membangun sirkuit: Bernegosiasi dengan relay Tor
+torlauncher.bootstrapStatus.ap_handshake_done=Membangun sirkuit: Selesai bernegosiasi dengan relay Tor
+torlauncher.bootstrapStatus.circuit_create=Membangun sirkuit: Membuat sirkuit Tor
torlauncher.bootstrapStatus.done=Telah terhubung ke jaringan Tor
torlauncher.bootstrapWarning.done=selesai
diff --git a/src/chrome/locale/is/torlauncher.properties b/src/chrome/locale/is/torlauncher.properties
index d10f91a..5d87480 100644
--- a/src/chrome/locale/is/torlauncher.properties
+++ b/src/chrome/locale/is/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Til að fá hjálp, heimsæktu %S
torlauncher.copiedNLogMessages=Afritun lokið. %S færslur úr Tor-atvikaskrá eru tilbúnar til að líma inn í textaritil eða tölvupóst.
+torlauncher.bootstrapStatus.starting=Ræsi
+torlauncher.bootstrapStatus.conn_pt=Tengist við brú
+torlauncher.bootstrapStatus.conn_done_pt=Tengt við brú
+torlauncher.bootstrapStatus.conn_proxy=Tengist við milliþjón
+torlauncher.bootstrapStatus.conn_done_proxy=Tengt við milliþjón
+torlauncher.bootstrapStatus.conn=Tengist við Tor-endurvarpa
+torlauncher.bootstrapStatus.conn_done=Tengt við Tor-endurvarpa
+torlauncher.bootstrapStatus.handshake=Að koma á tengingu við Tor-endurvarpa
+torlauncher.bootstrapStatus.handshake_done=Lauk því að koma á tengingu við Tor-endurvarpa
torlauncher.bootstrapStatus.onehop_create=Kem á tengingu við dulritaða yfirlitsskrá
torlauncher.bootstrapStatus.requesting_status=Næ í stöðu netkerfis
torlauncher.bootstrapStatus.loading_status=Hleð inn stöðu netkerfis
torlauncher.bootstrapStatus.loading_keys=Hleð inn skilríkjum vottunarstöðvar
torlauncher.bootstrapStatus.requesting_descriptors=Bið um upplýsingar endurvarpa
torlauncher.bootstrapStatus.loading_descriptors=Hleð inn upplýsingum endurvarpa
+torlauncher.bootstrapStatus.enough_dirinfo=Lauk við að hlaða inn upplýsingum endurvarpa
+torlauncher.bootstrapStatus.ap_conn_pt=Byggi rásir: Tengist við brú
+torlauncher.bootstrapStatus.ap_conn_done_pt=Byggi rásir: Tengt við brú
+torlauncher.bootstrapStatus.ap_conn_proxy=Byggi rásir: Tengist við milliþjón
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Byggi rásir: Tengt við milliþjón
+torlauncher.bootstrapStatus.ap_conn=Byggi rásir: Tengist við Tor-endurvarpa
+torlauncher.bootstrapStatus.ap_conn_done=Byggi rásir: Tengt við Tor-endurvarpa
+torlauncher.bootstrapStatus.ap_handshake=Byggi rásir: Að koma á tengingu við Tor-endurvarpa
+torlauncher.bootstrapStatus.ap_handshake_done=Byggi rásir: Lauk því að koma á tengingu við Tor-endurvarpa
+torlauncher.bootstrapStatus.circuit_create=Byggi rásir: Kem á Tor-rás
torlauncher.bootstrapStatus.done=Tengdur við Tor-netið!
torlauncher.bootstrapWarning.done=búið
diff --git a/src/chrome/locale/it/torlauncher.properties b/src/chrome/locale/it/torlauncher.properties
index 595497c..f9fbf6a 100644
--- a/src/chrome/locale/it/torlauncher.properties
+++ b/src/chrome/locale/it/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Per assistenza, visita %S
torlauncher.copiedNLogMessages=Copia completata. %S Messaggi di log Tor sono pronti per essere incollato in un editor di testo o un messaggio e-mail.
+torlauncher.bootstrapStatus.starting=Avvio in corso
+torlauncher.bootstrapStatus.conn_pt=Connessione al bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connesso al bridge
+torlauncher.bootstrapStatus.conn_proxy=Connessione al proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connesso al proxy
+torlauncher.bootstrapStatus.conn=Connessione ad un relay Tor
+torlauncher.bootstrapStatus.conn_done=Connesso ad un relay Tor
+torlauncher.bootstrapStatus.handshake=Negoziazione con un relay Tor
+torlauncher.bootstrapStatus.handshake_done=Negoziazione conclusa con un relay Tor
torlauncher.bootstrapStatus.onehop_create=Sto creando una connessione cifrata alla directory
torlauncher.bootstrapStatus.requesting_status=Sto ottenendo informazioni sullo stato della rete
torlauncher.bootstrapStatus.loading_status=Caricamento dello stato della rete
torlauncher.bootstrapStatus.loading_keys=Caricamento dei certificati delle authority
torlauncher.bootstrapStatus.requesting_descriptors=Richiesta di informazioni sui relay
torlauncher.bootstrapStatus.loading_descriptors=Caricamento delle informazioni sui relay
+torlauncher.bootstrapStatus.enough_dirinfo=Caricamento informazioni relay terminato
+torlauncher.bootstrapStatus.ap_conn_pt=Costruzione circuiti: connessione al bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Costruzione circuiti: connesso al bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Costruzione circuiti: connessione al proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Costruzione circuiti: connesso al proxy
+torlauncher.bootstrapStatus.ap_conn=Costruzione circuiti: connessione ad un relay Tor
+torlauncher.bootstrapStatus.ap_conn_done=Costruzione circuiti: connesso ad un relay Tor
+torlauncher.bootstrapStatus.ap_handshake=Costruzione circuiti: negoziazione con un relay Tor
+torlauncher.bootstrapStatus.ap_handshake_done=Costruzione circuiti: negoziazione conclusa con un relay Tor
+torlauncher.bootstrapStatus.circuit_create=Costruzione circuiti: sto creando un circuito Tor
torlauncher.bootstrapStatus.done=Connesso alla rete Tor!
torlauncher.bootstrapWarning.done=fatto
diff --git a/src/chrome/locale/ja/network-settings.dtd b/src/chrome/locale/ja/network-settings.dtd
index 25d2d09..1f22ffa 100644
--- a/src/chrome/locale/ja/network-settings.dtd
+++ b/src/chrome/locale/ja/network-settings.dtd
@@ -1,10 +1,10 @@
-<!ENTITY torsettings.dialog.title "Torネットワーク設定">
+<!ENTITY torsettings.dialog.title "Tor ネットワーク設定">
<!ENTITY torsettings.wizard.title.default "Tor に接続する">
<!ENTITY torsettings.wizard.title.configure "Tor ネットワーク設定">
<!ENTITY torsettings.wizard.title.connecting "接続を確立しています">
<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Tor ブラウザー言語">
+<!ENTITY torlauncher.localePicker.title "Tor Browser 言語">
<!ENTITY torlauncher.localePicker.prompt "言語を選択してください。">
<!-- For "first run" wizard: -->
@@ -20,13 +20,13 @@
<!ENTITY torsettings.restartTor "Torを再起動する">
<!ENTITY torsettings.reconfigTor "再設定">
-<!ENTITY torsettings.discardSettings.prompt "Torブリッジが設定されるか、ローカルプロキシ設定が入力されるかしました。  Torネットワークに直接接続するためには、これらの設定は削除する必要があります。">
+<!ENTITY torsettings.discardSettings.prompt "Tor ブリッジが設定されるか、ローカルプロキシ設定が入力されるかしました。  Tor ネットワークに直接接続するためには、これらの設定は削除する必要があります。">
<!ENTITY torsettings.discardSettings.proceed "設定と接続を削除">
<!ENTITY torsettings.optional "オプション">
<!ENTITY torsettings.useProxy.checkbox "インターネットに接続するのにプロキシを使用します">
-<!ENTITY torsettings.useProxy.type "Proxyの種類:">
+<!ENTITY torsettings.useProxy.type "プロキシの種類:">
<!ENTITY torsettings.useProxy.type.placeholder "プロキシの種類を選択">
<!ENTITY torsettings.useProxy.address "アドレス:">
<!ENTITY torsettings.useProxy.address.placeholder "IPアドレス またはホストネーム">
@@ -41,7 +41,7 @@
<!ENTITY torsettings.useBridges.checkbox "Tor は私の国では検閲されています">
<!ENTITY torsettings.useBridges.default "内蔵ブリッジを選択する">
<!ENTITY torsettings.useBridges.default.placeholder "ブリッジを選択">
-<!ENTITY torsettings.useBridges.bridgeDB "torproject.orgからブリッジの要求をする">
+<!ENTITY torsettings.useBridges.bridgeDB "torproject.org からブリッジの要求をする">
<!ENTITY torsettings.useBridges.captchaSolution.placeholder "画像から文字を入力してください...">
<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "チャレンジを更新する">
<!ENTITY torsettings.useBridges.captchaSubmit "生成">
@@ -59,4 +59,4 @@
<!ENTITY torsettings.bridgeHelp2 "その国がどのようにしてTorをブロックしようと試みているかによって、あるブリッジがある国では機能しても他の国では動かない場合があります。  もしどのブリッジがあなたの国で機能するかわからない場合は torproject.org/about/contact.html#support にアクセスしてください。">
<!-- Progress -->
-<!ENTITY torprogress.pleaseWait "Torネットワークへの接続が確立されるまでお待ちください。  これには数分間かかることがあります。">
+<!ENTITY torprogress.pleaseWait "Tor ネットワークへの接続が確立されるまでお待ちください。  これには数分間かかることがあります。">
diff --git a/src/chrome/locale/ja/torlauncher.properties b/src/chrome/locale/ja/torlauncher.properties
index afa41a2..ae7bc1f 100644
--- a/src/chrome/locale/ja/torlauncher.properties
+++ b/src/chrome/locale/ja/torlauncher.properties
@@ -3,9 +3,9 @@
torlauncher.error_title=Tor Launcher
-torlauncher.tor_exited_during_startup=Torが起動中に終了しました。これは、torrcファイルの誤りや、Torまたは他のプログラムのバグ、もしくはハードウェアの故障に起因しているかもしれません。問題を解決してTorを再起動するまで、Tor Browserは起動されません。
-torlauncher.tor_exited=Torが突然終了しました。原因はおそらくTor自体のバグか、他の常駐プログラムか、あるいはハードウェアーが問題です。Torを再起動するまで、Torブラウザーはウェブサイトに一切接続できません。再起動しても解決されない場合、Torログファイルをサポートチームに送信してください
-torlauncher.tor_exited2=Torを再起動しても、あなたのブラウザータブはそのまま残ります。
+torlauncher.tor_exited_during_startup=Tor が起動中に終了しました。これは、torrc ファイルの誤りや、Tor または他のプログラムのバグ、もしくはハードウェアの故障に起因しているかもしれません。問題を解決して Tor を再起動するまで、Tor Browser は起動されません。
+torlauncher.tor_exited=Tor が突然終了しました。原因はおそらく Tor 自体のバグか、他の常駐プログラムか、あるいはハードウェアーが問題です。Tor を再起動するまで、Tor ブラウザーはウェブサイトに一切接続できません。再起動しても解決されない場合、Tor ログファイルをサポートチームに送信してください。
+torlauncher.tor_exited2=Tor を再起動しても、あなたのブラウザータブはそのまま残ります。
torlauncher.tor_controlconn_failed=Torのコントロールポートに接続出来ませんでした。
torlauncher.tor_failed_to_start=Torは開始出来ませんでした。
torlauncher.tor_control_failed=Tor の制御に失敗しました。
@@ -52,13 +52,32 @@ torlauncher.forAssistance2=サポートについては、%Sをご覧ください
torlauncher.copiedNLogMessages=コピー成功。 %S個のTorログファイルがテキストエディターやEメールにペーストする準備ができました。
+torlauncher.bootstrapStatus.starting=起動中
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=暗号化されたディレクトリとの接続を確立中
torlauncher.bootstrapStatus.requesting_status=ネットワークを検索中
torlauncher.bootstrapStatus.loading_status=ネットワークを読込中
torlauncher.bootstrapStatus.loading_keys=認証局の署名を読込中
torlauncher.bootstrapStatus.requesting_descriptors=リレー情報を要求中
torlauncher.bootstrapStatus.loading_descriptors=リレー情報を読込中
-torlauncher.bootstrapStatus.done=Torネットワークに接続しました!
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
+torlauncher.bootstrapStatus.done=Tor ネットワークに接続しました!
torlauncher.bootstrapWarning.done=完了
torlauncher.bootstrapWarning.connectrefused=接続に失敗
diff --git a/src/chrome/locale/jv/torlauncher.properties b/src/chrome/locale/jv/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/jv/torlauncher.properties
+++ b/src/chrome/locale/jv/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/ka/network-settings.dtd b/src/chrome/locale/ka/network-settings.dtd
index e1b18ac..ba2f65d 100644
--- a/src/chrome/locale/ka/network-settings.dtd
+++ b/src/chrome/locale/ka/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Tor-ის აღრიცხვის ჩანაწერების ასლი">
<!ENTITY torsettings.proxyHelpTitle "პროქსი — დახმარება">
-<!ENTITY torsettings.proxyHelp1 "ადგილობრივი პროქსი მაშინაა საჭირო, როცა ინტერნეტს უკავშირდებით კომპანიის, სკოლის ან უნივერსიტეტის ქსელის გავლით. თუ დარწმუნებული არ ხართ პროქსის საჭიროებაში, გადახედეთ ინტერნეტის პარამეტრებს სხვა ბრაუზერში ან იხილეთ სისტემის ქსელის პარამეტრები.">
+<!ENTITY torsettings.proxyHelp1 "ადგილობრივი პროქსი მაშინაა საჭირო, როცა ინტერნეტს უკავშირდებით დაწესებულების, სკოლის ან უმაღლესი სასწავლებლის ქსელის გავლით. თუ დარწმუნებული არ ხართ პროქსის საჭიროებაში, გადახედეთ ინტერნეტის პარამეტრებს სხვა ბრაუზერში ან იხილეთ სისტემის ქსელის პარამეტრები.">
<!ENTITY torsettings.bridgeHelpTitle "დახმარება გადამცემი ხიდის თაობაზე">
<!ENTITY torsettings.bridgeHelp1 "ხიდები წარმოადგენს აღუნუსხავ გადამცემებს, რომელთა გამოყენებაც ართულებს Tor-ქსელთან კავშირის შეზღუდვას.  თითოეული სახის ხიდი იყენებს განსხვავებულ საშუალებებს, ცენზურის ასარიდებლად.  obfs-გადამყვანი, გადაცემულ მონაცემებს წარმოადგენს შემთხვევითი ხმაურის სახით, ხოლო meek-გადამყვანი კი თქვენს მონაცემთა მიმოცვლას წარმოაჩენს ისე, თითქოს ცალკეულ მომსახურებას უკავ
შირდებით და არა Tor-ს.">
diff --git a/src/chrome/locale/ka/torlauncher.properties b/src/chrome/locale/ka/torlauncher.properties
index 9701026..6543d6e 100644
--- a/src/chrome/locale/ka/torlauncher.properties
+++ b/src/chrome/locale/ka/torlauncher.properties
@@ -50,14 +50,33 @@ torlauncher.done=შესრულებულია
torlauncher.forAssistance=დახმარებისთვის დაუკავშირდით %S
torlauncher.forAssistance2=დახმარებისთვის ეწვიეთ %S
-torlauncher.copiedNLogMessages=ასლის აღება დასრულებულია. %S Tor-ის აღრიცხვის ჩანაწერები მზადაა ტექსტურ რედაქტორში ან ელფოსტის წერილში ჩასასმელად.
+torlauncher.copiedNLogMessages=ასლის აღება დასრულებულია. Tor-ის აღრიცხვის %S ჩანაწერი მზადაა ტექსტურ რედაქტორში ან ელფოსტის წერილში ჩასასმელად.
+torlauncher.bootstrapStatus.starting=გაშვება
+torlauncher.bootstrapStatus.conn_pt=ხიდთან დაკავშირება
+torlauncher.bootstrapStatus.conn_done_pt=ხიდთან დაკავშირებულია
+torlauncher.bootstrapStatus.conn_proxy=პროქსისთან დაკავშირება
+torlauncher.bootstrapStatus.conn_done_proxy=პროქსისთან დაკავშირებულია
+torlauncher.bootstrapStatus.conn=Tor-გადამცემთან დაკავშირება
+torlauncher.bootstrapStatus.conn_done=Tor-გადამცემთან დაკავშირებულია
+torlauncher.bootstrapStatus.handshake=Tor-გადამცემთან კავშირის დამოწმება
+torlauncher.bootstrapStatus.handshake_done=Tor-გადამცემთან კავშირი დამოწმებულია
torlauncher.bootstrapStatus.onehop_create=დაშიფრული კავშირის დამყარება ცნობართან
torlauncher.bootstrapStatus.requesting_status=ქსელის მდგომარეობის დადგენა
torlauncher.bootstrapStatus.loading_status=ქსელის მდგომარეობის ჩატვირთვა
torlauncher.bootstrapStatus.loading_keys=უფლებამოსილი სერტიფიკატების ჩატვირთვა
torlauncher.bootstrapStatus.requesting_descriptors=გადამცემის მონაცემების მოთხოვნა
torlauncher.bootstrapStatus.loading_descriptors=გადამცემის მონაცემების ჩატვირთვა
+torlauncher.bootstrapStatus.enough_dirinfo=გადამცემის მონაცემები ჩაიტვირთა
+torlauncher.bootstrapStatus.ap_conn_pt=წრედების შექმნა: ხიდთან დაკავშირება
+torlauncher.bootstrapStatus.ap_conn_done_pt=წრედების შექმნა: ხიდთან დაკავშირებულია
+torlauncher.bootstrapStatus.ap_conn_proxy=წრედების შექმნა: პროქსისთან დაკავშირება
+torlauncher.bootstrapStatus.ap_conn_done_proxy=წრედების შექმნა: პროქსისთან დაკავშირებულია
+torlauncher.bootstrapStatus.ap_conn=წრედების შექმნა: Tor-გადამცემთან დაკავშირება
+torlauncher.bootstrapStatus.ap_conn_done=წრედების შექმნა: Tor-გადამცემთან დაკავშირებულია
+torlauncher.bootstrapStatus.ap_handshake=წრედების შექმნა: Tor-ქსელთან კავშირის დამოწმება
+torlauncher.bootstrapStatus.ap_handshake_done=წრედების შექმნა: Tor-ქსელთან კავშირი დამოწმებულია
+torlauncher.bootstrapStatus.circuit_create=წრედების შექმნა: Tor-წრედის დამყარება
torlauncher.bootstrapStatus.done=Tor-ქსელთან დაკავშირებულია!
torlauncher.bootstrapWarning.done=მზადაა
diff --git a/src/chrome/locale/kk/network-settings.dtd b/src/chrome/locale/kk/network-settings.dtd
index d1a5f88..e4bd16f 100644
--- a/src/chrome/locale/kk/network-settings.dtd
+++ b/src/chrome/locale/kk/network-settings.dtd
@@ -11,13 +11,13 @@
<!ENTITY torSettings.connectPrompt "Click “Connect” to connect to Tor.">
<!ENTITY torSettings.configurePrompt "Click “Configure” to adjust network settings if you are in a country that censors Tor (such as Egypt, China, Turkey) or if you are connecting from a private network that requires a proxy.">
-<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.configure "Теңшеу">
<!ENTITY torSettings.connect "Қосылу ">
<!-- Other: -->
<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
-<!ENTITY torsettings.restartTor "Restart Tor">
+<!ENTITY torsettings.restartTor "Tor-ды қайта қосу">
<!ENTITY torsettings.reconfigTor "Reconfigure">
<!ENTITY torsettings.discardSettings.prompt "You have configured Tor bridges or you have entered local proxy settings.  To make a direct connection to the Tor network, these settings must be removed.">
diff --git a/src/chrome/locale/kk/torlauncher.properties b/src/chrome/locale/kk/torlauncher.properties
index d083a2b..e9f1e5b 100644
--- a/src/chrome/locale/kk/torlauncher.properties
+++ b/src/chrome/locale/kk/torlauncher.properties
@@ -1,75 +1,94 @@
### Copyright (c) 2016, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.error_title=Tor Launcher
+torlauncher.error_title=Tor іске қосу құрылғысы
-torlauncher.tor_exited_during_startup=Tor exited during startup. This might be due to an error in your torrc file, a bug in Tor or another program on your system, or faulty hardware. Until you fix the underlying problem and restart Tor, Tor Browser will not start.
-torlauncher.tor_exited=Tor unexpectedly exited. This might be due to a bug in Tor itself, another program on your system, or faulty hardware. Until you restart Tor, the Tor Browser will not able to reach any websites. If the problem persists, please send a copy of your Tor Log to the support team.
-torlauncher.tor_exited2=Restarting Tor will not close your browser tabs.
-torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
-torlauncher.tor_failed_to_start=Tor failed to start.
-torlauncher.tor_control_failed=Failed to take control of Tor.
-torlauncher.tor_bootstrap_failed=Tor failed to establish a Tor network connection.
-torlauncher.tor_bootstrap_failed_details=%1$S failed (%2$S).
+torlauncher.tor_exited_during_startup=Tor іске қосу кезінде шығып кетті. Бұл сіздің torrc файлыңыздағы қате, Tor-дегі қате немесе сіздің жүйеңіздегі басқа бағдарлама немесе ақаулы құрал болуы мүмкін. Негізгі проблеманы шешкенше және Tor қайта іске қосылмайынша, Tor Browser іске қосылмайды.
+torlauncher.tor_exited=Tor күтпеген жерден шығып кетті. Бұл Tor-дің қатесінен, жүйеңіздегі басқа бағдарламадан немесе ақаулы жабдықтан туындауы мүмкін. Tor-ды қайта бастағанға дейін, Tor Browser ешқандай веб-сайттарға қол жеткізе алмайды. Егер мәселе шешілмесе, Tor Log журналының көшірмесін қолдау тобына жіберіңіз
+torlauncher.tor_exited2=Tor-ды қайта іске қосу шолғыш қойындыларыңызды жабады.
+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=Unable to start Tor.\n\n%S
-torlauncher.tor_missing=The Tor executable is missing.
-torlauncher.torrc_missing=The torrc file is missing and could not be created.
-torlauncher.datadir_missing=The Tor data directory does not exist and could not be created.
-torlauncher.password_hash_missing=Failed to get hashed password.
+torlauncher.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=Unable to retrieve Tor settings.\n\n%S
-torlauncher.failed_to_save_settings=Unable to save Tor settings.\n\n%S
-torlauncher.ensure_tor_is_running=Please ensure that Tor is running.
+torlauncher.failed_to_get_settings=Tor параметрлерін шығарып алу мүмкін емес.\n\n%S
+torlauncher.failed_to_save_settings=Tor параметрлерін сақтау мүмкін емес.\n\n%S
+torlauncher.ensure_tor_is_running=Tor жұмыс істеп тұрғанына көз жеткізіңіз.
-torlauncher.error_proxy_addr_missing=You must specify both an IP address or hostname and a port number to configure Tor to use a proxy to access the Internet.
-torlauncher.error_proxy_type_missing=You must select the proxy type.
-torlauncher.error_bridges_missing=You must specify one or more bridges.
-torlauncher.error_default_bridges_type_missing=You must select a transport type for the provided bridges.
-torlauncher.error_bridgedb_bridges_missing=Please request a bridge.
-torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+torlauncher.error_proxy_addr_missing=Интернетке кіру үшін проксиді пайдалану үшін Tor бағдарламасын конфигурациялау үшін IP адресін, хост атауын және порт нөмірін көрсетуіңіз керек.
+torlauncher.error_proxy_type_missing=Прокси түрін таңдау керек.
+torlauncher.error_bridges_missing=Сіз бір немесе бірнеше көпірлерді көрсетуіңіз керек.
+torlauncher.error_default_bridges_type_missing=Берілген көпірлер үшін көлік түрін таңдау керек.
+torlauncher.error_bridgedb_bridges_missing=Көпір сұраңыз.
+torlauncher.error_bridge_bad_default_type=% S көлік түріне берілген көпірлер жоқ. Параметрлеріңізді реттеңіз.
-torlauncher.bridge_suffix.meek-amazon=(works in China)
-torlauncher.bridge_suffix.meek-azure=(works in China)
+torlauncher.bridge_suffix.meek-amazon=(Қытайда жұмыс істейді)
+torlauncher.bridge_suffix.meek-azure=(Қытайда жұмыс істейді)
-torlauncher.request_a_bridge=Request a Bridge…
-torlauncher.request_a_new_bridge=Request a New Bridge…
-torlauncher.contacting_bridgedb=Contacting BridgeDB. Please wait.
-torlauncher.captcha_prompt=Solve the CAPTCHA to request a bridge.
-torlauncher.bad_captcha_solution=The solution is not correct. Please try again.
-torlauncher.unable_to_get_bridge=Unable to obtain a bridge from BridgeDB.\n\n%S
-torlauncher.no_meek=This browser is not configured for meek, which is needed to obtain bridges.
-torlauncher.no_bridges_available=No bridges are available at this time. Sorry.
+torlauncher.request_a_bridge=Көпірді сұрау ...
+torlauncher.request_a_new_bridge=Жаңа көпірді сұраңыз...
+torlauncher.contacting_bridgedb=BridgeDB-ке хабарласудамыз. Өтінемін күте тұрыңыз.
+torlauncher.captcha_prompt=Көпірді сұрату үшін CAPTCHA-ны дұрыс жазыңыз
+torlauncher.bad_captcha_solution=Шешім дұрыс емес. Әрекетті қайталап көріңіз.
+torlauncher.unable_to_get_bridge=BridgeDB көпірін алу мүмкін емес.\n\n%S
+torlauncher.no_meek=Бұл браузер көпірді алу үшін қажет мелкомға теңшелмеген.
+torlauncher.no_bridges_available=Қазіргі кезде көпірлер жоқ. Кешіріңіз
torlauncher.connect=Қосылу
-torlauncher.restart_tor=Restart Tor
+torlauncher.restart_tor=Tor-ды қайта қосу
torlauncher.quit=Жұмысын аяқтау
torlauncher.quit_win=Шығу
torlauncher.done=Дайын
-torlauncher.forAssistance=For assistance, contact %S
-torlauncher.forAssistance2=For assistance, visit %S
+torlauncher.forAssistance=Көмек алу үшін %S хабарласыңыз
+torlauncher.forAssistance2=Көмек алу үшін %S кіріңіз
-torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.copiedNLogMessages=Көшіру аяқталды. %S Tor журналы хабарламалары мәтін өңдегішіне немесе электрондық пошта хабарына қоюға дайын.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
-torlauncher.bootstrapStatus.requesting_status=Retrieving network status
-torlauncher.bootstrapStatus.loading_status=Loading network status
-torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
-torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
-torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
-torlauncher.bootstrapStatus.done=Connected to the Tor network!
+torlauncher.bootstrapStatus.starting=Басталу
+torlauncher.bootstrapStatus.conn_pt=Көпірге жалғау
+torlauncher.bootstrapStatus.conn_done_pt=Көпірге қосылды
+torlauncher.bootstrapStatus.conn_proxy=Проксиге жалғау
+torlauncher.bootstrapStatus.conn_done_proxy=Проксиге қосылды
+torlauncher.bootstrapStatus.conn=Tor релесіне жалғау
+torlauncher.bootstrapStatus.conn_done=Tor релесіне қосылды
+torlauncher.bootstrapStatus.handshake=Tor релесі арқылы келіссөздер жүргізу
+torlauncher.bootstrapStatus.handshake_done=Tor релесі арқылы келіссөздер аяқталды
+torlauncher.bootstrapStatus.onehop_create=Шифрланған каталог байланысын орнату
+torlauncher.bootstrapStatus.requesting_status=Желі күйін алу
+torlauncher.bootstrapStatus.loading_status=Желі күйін жүктеу
+torlauncher.bootstrapStatus.loading_keys=Куәліктерді жүктеу
+torlauncher.bootstrapStatus.requesting_descriptors=Релелік ақпаратты сұрату
+torlauncher.bootstrapStatus.loading_descriptors=Релелік ақпаратты жүктелуде
+torlauncher.bootstrapStatus.enough_dirinfo=Релелік ақпараттың жүктелуі аяқталды
+torlauncher.bootstrapStatus.ap_conn_pt=Құрылыс тізбектері: көпірге қосылу
+torlauncher.bootstrapStatus.ap_conn_done_pt=Құрылыс тізбектері:көпірге қосылды
+torlauncher.bootstrapStatus.ap_conn_proxy=Құрылыс тізбектері: проксиге қосылу
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Құрылыс тізбектері: проксиге қосылды
+torlauncher.bootstrapStatus.ap_conn=Құрылыс тізбектері: Tor релесіне қосылу
+torlauncher.bootstrapStatus.ap_conn_done=Құрылыс тізбектері: Tor релесіне қосылды
+torlauncher.bootstrapStatus.ap_handshake=Құрылыс тізбектері: Tor релесі арқылы келіссөздер жүргізу
+torlauncher.bootstrapStatus.ap_handshake_done=Құрылыс тізбектері: Tor релесі арқылы келіссөздер жүргізу аяқталды
+torlauncher.bootstrapStatus.circuit_create=Құрылыс тізбектері: Tor тізбегін құру
+torlauncher.bootstrapStatus.done=Tor желісіне қосылды!
-torlauncher.bootstrapWarning.done=done
-torlauncher.bootstrapWarning.connectrefused=connection refused
-torlauncher.bootstrapWarning.misc=miscellaneous
-torlauncher.bootstrapWarning.resourcelimit=insufficient resources
-torlauncher.bootstrapWarning.identity=identity mismatch
-torlauncher.bootstrapWarning.timeout=connection timeout
-torlauncher.bootstrapWarning.noroute=no route to host
-torlauncher.bootstrapWarning.ioerror=read/write error
-torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
+torlauncher.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=pluggable transport қосылмайды
-torlauncher.nsresult.NS_ERROR_NET_RESET=The connection to the server was lost.
-torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Could not connect to the server.
-torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Could not connect to the proxy.
+torlauncher.nsresult.NS_ERROR_NET_RESET=Сервермен байланыс жоғалды.
+torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Серверге қосылу мүмкін болмады.
+torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Проксиге қосылу мүмкін болмады.
diff --git a/src/chrome/locale/km/torlauncher.properties b/src/chrome/locale/km/torlauncher.properties
index 6e4c0da..5774122 100644
--- a/src/chrome/locale/km/torlauncher.properties
+++ b/src/chrome/locale/km/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=បង្កើតការតភ្ជាប់ថតដែលបានអ៊ិនគ្រីប
torlauncher.bootstrapStatus.requesting_status=ទៅយកស្ថានភាពបណ្ដាញ
torlauncher.bootstrapStatus.loading_status=ការផ្ទុកស្ថានភាពបណ្ដាញ
torlauncher.bootstrapStatus.loading_keys=ផ្ទុកប្រភពវិញ្ញាបនបត្រ
torlauncher.bootstrapStatus.requesting_descriptors=ស្នើព័ត៌មានការបញ្ជូនបន្ត
torlauncher.bootstrapStatus.loading_descriptors=ផ្ទុកព័ត៌មានការបញ្ជូនបន្ត
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=បានតភ្ជាប់ទៅបណ្ដាញ Tor !
torlauncher.bootstrapWarning.done=រួចរាល់
diff --git a/src/chrome/locale/kn/torlauncher.properties b/src/chrome/locale/kn/torlauncher.properties
index 15a3fc1..ca9774b 100644
--- a/src/chrome/locale/kn/torlauncher.properties
+++ b/src/chrome/locale/kn/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
diff --git a/src/chrome/locale/ko/torlauncher.properties b/src/chrome/locale/ko/torlauncher.properties
index 8936d7f..b3f1193 100644
--- a/src/chrome/locale/ko/torlauncher.properties
+++ b/src/chrome/locale/ko/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=도움이 필요하면 %S를 방문하십시오.
torlauncher.copiedNLogMessages=복사 완료. %S Tor 로그 메시지는 텍스트 편집기 나 이메일 메시지에 붙여 넣을 수 있는 상태가 됩니다.
-torlauncher.bootstrapStatus.onehop_create=암호화된 디렉터리 연결을 설정
+torlauncher.bootstrapStatus.starting=시작중
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.onehop_create=경로와의 연결을 암호화해서 만들고 있어요
torlauncher.bootstrapStatus.requesting_status=네트워크의 상태를 가져오는중
torlauncher.bootstrapStatus.loading_status=네트워크의 상태를 요청중
torlauncher.bootstrapStatus.loading_keys=권한 인증서를 로딩중
torlauncher.bootstrapStatus.requesting_descriptors=중계서버 정보를 요청중
torlauncher.bootstrapStatus.loading_descriptors=중계서버 정보를 로딩중
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Tor 네트워크에 연결 성공!
torlauncher.bootstrapWarning.done=완료
diff --git a/src/chrome/locale/ku/torlauncher.properties b/src/chrome/locale/ku/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/ku/torlauncher.properties
+++ b/src/chrome/locale/ku/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/ky/torlauncher.properties b/src/chrome/locale/ky/torlauncher.properties
index 8eb0673..b489a96 100644
--- a/src/chrome/locale/ky/torlauncher.properties
+++ b/src/chrome/locale/ky/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/lb/torlauncher.properties b/src/chrome/locale/lb/torlauncher.properties
index ed7f880..584a9ee 100644
--- a/src/chrome/locale/lb/torlauncher.properties
+++ b/src/chrome/locale/lb/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/lg/torlauncher.properties b/src/chrome/locale/lg/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/lg/torlauncher.properties
+++ b/src/chrome/locale/lg/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/ln/torlauncher.properties b/src/chrome/locale/ln/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/ln/torlauncher.properties
+++ b/src/chrome/locale/ln/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/lo/torlauncher.properties b/src/chrome/locale/lo/torlauncher.properties
index 6468d8c..92d8d3a 100644
--- a/src/chrome/locale/lo/torlauncher.properties
+++ b/src/chrome/locale/lo/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/lt/network-settings.dtd b/src/chrome/locale/lt/network-settings.dtd
index de20331..b8a8d5d 100644
--- a/src/chrome/locale/lt/network-settings.dtd
+++ b/src/chrome/locale/lt/network-settings.dtd
@@ -4,13 +4,13 @@
<!ENTITY torsettings.wizard.title.connecting "Užmezgiamas ryšys">
<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Tor naršyklės kalba">
+<!ENTITY torlauncher.localePicker.title "Tor Browser kalba">
<!ENTITY torlauncher.localePicker.prompt "Prašome pasirinkti kalbą.">
<!-- For "first run" wizard: -->
<!ENTITY torSettings.connectPrompt "Norėdami prisijungti prie Tor, spustelėkite "Prisijungti".">
-<!ENTITY torSettings.configurePrompt "Click “Configure” to adjust network settings if you are in a country that censors Tor (such as Egypt, China, Turkey) or if you are connecting from a private network that requires a proxy.">
+<!ENTITY torSettings.configurePrompt "Spustelėkite "Konfigūruoti", norėdami reguliuoti tinklo nustatymus, jeigu esate šalyje, kuri cenzūruoja Tor (tokioje kaip Egiptas, Kinija, Turkija) arba jeigu jungiatės iš privačiojo tinklo, kuris reikalauja įgaliotojo serverio.">
<!ENTITY torSettings.configure "Konfigūruoti">
<!ENTITY torSettings.connect "Prisijungti">
@@ -31,7 +31,7 @@
<!ENTITY torsettings.useProxy.address "Adresas:">
<!ENTITY torsettings.useProxy.address.placeholder "IP adresas arba serverio vardas">
<!ENTITY torsettings.useProxy.port "Prievadas:">
-<!ENTITY torsettings.useProxy.username "Vartotojo vardas:">
+<!ENTITY torsettings.useProxy.username "Naudotojo vardas:">
<!ENTITY torsettings.useProxy.password "Slaptažodis:">
<!ENTITY torsettings.useProxy.type.socks4 "SOCKS 4">
<!ENTITY torsettings.useProxy.type.socks5 "SOCKS 5">
@@ -39,11 +39,11 @@
<!ENTITY torsettings.firewall.checkbox "Šis kompiuteris jungiasi per užkardą, kuri leidžia jungtis tik prie tam tikrų prievadų">
<!ENTITY torsettings.firewall.allowedPorts "Leidžiami prievadai:">
<!ENTITY torsettings.useBridges.checkbox "Mano šalyje Tor yra cenzūruojamas">
-<!ENTITY torsettings.useBridges.default "Select a built-in bridge">
+<!ENTITY torsettings.useBridges.default "Pasirinkite esamą tinklų tiltą">
<!ENTITY torsettings.useBridges.default.placeholder "pasirinkite tinklų tiltą">
-<!ENTITY torsettings.useBridges.bridgeDB "Request a bridge from torproject.org">
-<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Enter the characters from the image">
-<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Get a new challenge">
+<!ENTITY torsettings.useBridges.bridgeDB "Prašyti tinklų tilto iš torproject.org">
+<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Įveskite ženklus iš paveikslėlio">
+<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Gaukite naują iššūkį">
<!ENTITY torsettings.useBridges.captchaSubmit "Pateikti">
<!ENTITY torsettings.useBridges.custom "Provide a bridge I know">
<!ENTITY torsettings.useBridges.label "Enter bridge information from a trusted source.">
@@ -52,11 +52,11 @@
<!ENTITY torsettings.copyLog "Kopijuoti Tor žurnalą į iškarpinę">
<!ENTITY torsettings.proxyHelpTitle "Įgaliotojo serverio žinynas">
-<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
+<!ENTITY torsettings.proxyHelp1 "Vietinis įgaliotasis serveris gali būti reikalingas, jungiantis per kompanijos, mokyklos ar universiteto tinklą. Jeigu nesate tikri ar įgaliotasis serveris yra reikalingas, žiūrėkite interneto nustatymus kitoje naršyklėje arba patikrinkite savo sistemos tinklo nustatymus.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
<!ENTITY torsettings.bridgeHelp2 "Because of how certain countries try to block Tor, certain bridges work in certain countries but not others.  If you are unsure about which bridges work in your country, visit torproject.org/about/contact.html#support">
<!-- Progress -->
-<!ENTITY torprogress.pleaseWait "Prašome palaukti, kol mes užmegsime ryšį su Tor tinklu.  Tai gali užtrukti kelias minutes.">
+<!ENTITY torprogress.pleaseWait "Palaukite, kol mes užmegsime ryšį su Tor tinklu.  Tai gali užtrukti kelias minutes.">
diff --git a/src/chrome/locale/lt/torlauncher.properties b/src/chrome/locale/lt/torlauncher.properties
index 129fbed..800760c 100644
--- a/src/chrome/locale/lt/torlauncher.properties
+++ b/src/chrome/locale/lt/torlauncher.properties
@@ -8,9 +8,9 @@ torlauncher.tor_exited=Tor netikėtai nustojo veikti. Taip galėjo atsitikti arb
torlauncher.tor_exited2=Paleidus Tor iš naujo, jūsų naršyklės kortelės nebus užvertos.
torlauncher.tor_controlconn_failed=Nepavyko prisijungti prie Tor valdymo prievado.
torlauncher.tor_failed_to_start=Tor nepavyko paleisti.
-torlauncher.tor_control_failed=Nepavyko perimti Tor valdymo
+torlauncher.tor_control_failed=Nepavyko perimti Tor valdymo.
torlauncher.tor_bootstrap_failed=Tor nepavyko užmegzti ryšio su Tor tinklu.
-torlauncher.tor_bootstrap_failed_details=%1$S nepavyko (%2$S).
+torlauncher.tor_bootstrap_failed_details=%1$S patyrė nesėkmę (%2$S).
torlauncher.unable_to_start_tor=Nepavyksta paleisti Tor.\n\n%S
torlauncher.tor_missing=Trūksta Tor vykdomojo failo.
@@ -34,16 +34,16 @@ torlauncher.bridge_suffix.meek-azure=(veikia Kinijoje)
torlauncher.request_a_bridge=Request a Bridge…
torlauncher.request_a_new_bridge=Request a New Bridge…
-torlauncher.contacting_bridgedb=Contacting BridgeDB. Please wait.
+torlauncher.contacting_bridgedb=Susisiekiama su BridgeDB. Palaukite.
torlauncher.captcha_prompt=Solve the CAPTCHA to request a bridge.
-torlauncher.bad_captcha_solution=The solution is not correct. Please try again.
+torlauncher.bad_captcha_solution=Sprendimas neteisingas. Bandykite dar kartą.
torlauncher.unable_to_get_bridge=Unable to obtain a bridge from BridgeDB.\n\n%S
torlauncher.no_meek=This browser is not configured for meek, which is needed to obtain bridges.
-torlauncher.no_bridges_available=No bridges are available at this time. Sorry.
+torlauncher.no_bridges_available=Šiuo metu nėra prieinamų tinklų tiltų. Apgailestaujame.
torlauncher.connect=Prisijungti
-torlauncher.restart_tor=Pakartotinai paleisti Tor
-torlauncher.quit=Nutraukti
+torlauncher.restart_tor=Paleisti Tor iš naujo
+torlauncher.quit=Baigti
torlauncher.quit_win=Išeiti
torlauncher.done=Atlikta
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Norėdami gauti pagalbos, apsilankykite %S
torlauncher.copiedNLogMessages=Kopijavimas atliktas. %S Tor įvykių žurnalas paruoštas įklijuoti į teksto redagavimo programą ar elektroninio pašto pranešimą.
-torlauncher.bootstrapStatus.onehop_create=Užmezgiamas ryšys
+torlauncher.bootstrapStatus.starting=Paleidžiama
+torlauncher.bootstrapStatus.conn_pt=Jungiamasi prie tinklų tilto
+torlauncher.bootstrapStatus.conn_done_pt=Prisijungta prie tinklų tilto
+torlauncher.bootstrapStatus.conn_proxy=Jungiamasi prie įgaliotojo serverio
+torlauncher.bootstrapStatus.conn_done_proxy=Prisijungta prie įgaliotojo serverio
+torlauncher.bootstrapStatus.conn=Jungiamasi prie Tor retransliavimo
+torlauncher.bootstrapStatus.conn_done=Prisijungta prie Tor retransliavimo
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.onehop_create=Užmezgiamas šifruoto katalogo ryšys
torlauncher.bootstrapStatus.requesting_status=Nuskaitoma tinklo būklė
-torlauncher.bootstrapStatus.loading_status=Įkeliama tinklo būklė
+torlauncher.bootstrapStatus.loading_status=Įkeliama tinklo būsena
torlauncher.bootstrapStatus.loading_keys=Įkeliami liudijimų įstaigos liudijimai
torlauncher.bootstrapStatus.requesting_descriptors=Užklausiama retransliavimo informacija
torlauncher.bootstrapStatus.loading_descriptors=Įkeliama retransliavimo informacija
+torlauncher.bootstrapStatus.enough_dirinfo=Užbaigtas retransliavimo informacijos įkėlimas
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Prisijungta prie Tor tinklo!
torlauncher.bootstrapWarning.done=atlikta
@@ -65,11 +84,11 @@ torlauncher.bootstrapWarning.connectrefused=atsisakyta sujungti
torlauncher.bootstrapWarning.misc=įvairūs
torlauncher.bootstrapWarning.resourcelimit=nepakanka išteklių
torlauncher.bootstrapWarning.identity=tapatybės neatitiktis
-torlauncher.bootstrapWarning.timeout=per nustatytą laiką nepavyko prisijungti
+torlauncher.bootstrapWarning.timeout=pasibaigė ryšiui skirtas laikas
torlauncher.bootstrapWarning.noroute=nėra maršruto iki pagrindinio kompiuterio
torlauncher.bootstrapWarning.ioerror=skaitymo/rašymo klaida
torlauncher.bootstrapWarning.pt_missing=trūksta prijungiamo perdavimo
torlauncher.nsresult.NS_ERROR_NET_RESET=Ryšys su serveriu nutrūko.
torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Nepavyko prisijungti prie serverio.
-torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Nepavyko prisijungti prie tarpinio serverio.
+torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Nepavyko prisijungti prie įgaliotojo serverio.
diff --git a/src/chrome/locale/lv/torlauncher.properties b/src/chrome/locale/lv/torlauncher.properties
index 35f26d3..02b1d8e 100644
--- a/src/chrome/locale/lv/torlauncher.properties
+++ b/src/chrome/locale/lv/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Lai saņemtu palīdzību, apmeklējiet %S
torlauncher.copiedNLogMessages=Kopēšana paveikta. %S Tor žurnāla ziņojumi sagatavoti ielīmēšanai teksta redaktorā vai e-pasta ziņojumā.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Izveido šifrētu savienojumu ar direktoriju
torlauncher.bootstrapStatus.requesting_status=Izgūst tīkla statusu
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.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Savienojums ar tīklu Tor izveidots!
torlauncher.bootstrapWarning.done=gatavs
diff --git a/src/chrome/locale/mg/torlauncher.properties b/src/chrome/locale/mg/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/mg/torlauncher.properties
+++ b/src/chrome/locale/mg/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/mi/torlauncher.properties b/src/chrome/locale/mi/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/mi/torlauncher.properties
+++ b/src/chrome/locale/mi/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/mk/torlauncher.properties b/src/chrome/locale/mk/torlauncher.properties
index 505510a..58ea6f3 100644
--- a/src/chrome/locale/mk/torlauncher.properties
+++ b/src/chrome/locale/mk/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=За помош, посетете %S
torlauncher.copiedNLogMessages=Копирањето е завршено. %S Tor лог пораките се подготвени да бидат залепени во уредувач на текст или во порака за е-пошта.
+torlauncher.bootstrapStatus.starting=Започнување
+torlauncher.bootstrapStatus.conn_pt=Поврзување со мост
+torlauncher.bootstrapStatus.conn_done_pt=Поврзан со мост
+torlauncher.bootstrapStatus.conn_proxy=Поврзување со прокси
+torlauncher.bootstrapStatus.conn_done_proxy=Поврзан со мост
+torlauncher.bootstrapStatus.conn=Поврзување со Tor реле
+torlauncher.bootstrapStatus.conn_done=Поврзан со Tor реле
+torlauncher.bootstrapStatus.handshake=Преговарање со Tor реле
+torlauncher.bootstrapStatus.handshake_done=Завршено преговарање со Tor реле
torlauncher.bootstrapStatus.onehop_create=Воспоставување енкриптирано поврзување со директориумот
torlauncher.bootstrapStatus.requesting_status=Добивање на мрежен статус
torlauncher.bootstrapStatus.loading_status=Вчитување на мрежен статус
torlauncher.bootstrapStatus.loading_keys=Вчитување на авторитетни сертификати
torlauncher.bootstrapStatus.requesting_descriptors=Барање на информации за реле
torlauncher.bootstrapStatus.loading_descriptors=Вчитување на информации за реле
+torlauncher.bootstrapStatus.enough_dirinfo=Завршено вчитувањето на информации за релето
+torlauncher.bootstrapStatus.ap_conn_pt=Градење кругови: Поврзување со мост
+torlauncher.bootstrapStatus.ap_conn_done_pt=Градење кругови: Поврзан со мост
+torlauncher.bootstrapStatus.ap_conn_proxy=Градење кругови: Поврзување со прокси
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Градење кругови: Поврзан со прокси
+torlauncher.bootstrapStatus.ap_conn=Градење кругови: Поврзување со Tor реле
+torlauncher.bootstrapStatus.ap_conn_done=Градење кругови: Поврзан со Tor реле
+torlauncher.bootstrapStatus.ap_handshake=Градење кругови: Преговарање со Tor реле
+torlauncher.bootstrapStatus.ap_handshake_done=Градење кругови: Завршено преговарање со Tor реле
+torlauncher.bootstrapStatus.circuit_create=Градење кругови: Воспоставување на Tor круг
torlauncher.bootstrapStatus.done=Поврзани сте на Tor мрежата!
torlauncher.bootstrapWarning.done=завршено
diff --git a/src/chrome/locale/ml/torlauncher.properties b/src/chrome/locale/ml/torlauncher.properties
index ce5215a..7abbd44 100644
--- a/src/chrome/locale/ml/torlauncher.properties
+++ b/src/chrome/locale/ml/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
diff --git a/src/chrome/locale/mn/torlauncher.properties b/src/chrome/locale/mn/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/mn/torlauncher.properties
+++ b/src/chrome/locale/mn/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/mr/torlauncher.properties b/src/chrome/locale/mr/torlauncher.properties
index 54121ff..7590077 100644
--- a/src/chrome/locale/mr/torlauncher.properties
+++ b/src/chrome/locale/mr/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
diff --git a/src/chrome/locale/ms-MY/torlauncher.properties b/src/chrome/locale/ms-MY/torlauncher.properties
index e3f5618..3b4fd06 100644
--- a/src/chrome/locale/ms-MY/torlauncher.properties
+++ b/src/chrome/locale/ms-MY/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Untuk dapatkan bantuan, lawati %S
torlauncher.copiedNLogMessages=Salin selesai. %S mesej log Tor sedia ditampal ke dalam penyunting teks atau mesej emel.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Menjalinkan sambungan direktori tersulit
torlauncher.bootstrapStatus.requesting_status=Memperoleh status rangkaian
torlauncher.bootstrapStatus.loading_status=Memuatkan status rangkaian
torlauncher.bootstrapStatus.loading_keys=Memuatkan sijil kuasa
torlauncher.bootstrapStatus.requesting_descriptors=Meminta maklumat geganti
torlauncher.bootstrapStatus.loading_descriptors=Memuatkan maklumat geganti
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Bersambung dengan rangkaian Tor!
torlauncher.bootstrapWarning.done=selesai
diff --git a/src/chrome/locale/mt/torlauncher.properties b/src/chrome/locale/mt/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/mt/torlauncher.properties
+++ b/src/chrome/locale/mt/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/my/torlauncher.properties b/src/chrome/locale/my/torlauncher.properties
index 36769b0..479280c 100644
--- a/src/chrome/locale/my/torlauncher.properties
+++ b/src/chrome/locale/my/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=စာဝှက်ထားသည့် ဖိုင်လမ်းကြောင်း ချိတ်ဆက်မှု တစ်ခု တည်ဆောက်နေသည်
torlauncher.bootstrapStatus.requesting_status=ကွန်ရက် အနေအထားကို ပြန်ရယူနေသည်
torlauncher.bootstrapStatus.loading_status=ကွန်ရက် အနေအထားကို ဖွင့်နေသည်
torlauncher.bootstrapStatus.loading_keys=လုပ်ပိုင်ခွင့် လက်မှတ်များကို ရယူနေသည်
torlauncher.bootstrapStatus.requesting_descriptors=Relay အချက်အလက်ကို တောင်းခံနေသည်
torlauncher.bootstrapStatus.loading_descriptors=Relay အချက်အလက်များကို ရယူနေသည်
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Tor ကွန်ရက်ကို ချိတ်ဆက်မိသည်!
torlauncher.bootstrapWarning.done=ပြီးသွားပြီ
diff --git a/src/chrome/locale/nah/torlauncher.properties b/src/chrome/locale/nah/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/nah/torlauncher.properties
+++ b/src/chrome/locale/nah/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/nap/torlauncher.properties b/src/chrome/locale/nap/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/nap/torlauncher.properties
+++ b/src/chrome/locale/nap/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/nb/torlauncher.properties b/src/chrome/locale/nb/torlauncher.properties
index 6b5fae0..e1d5bab 100644
--- a/src/chrome/locale/nb/torlauncher.properties
+++ b/src/chrome/locale/nb/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For hjelp, besøk %S
torlauncher.copiedNLogMessages=Kopiering ferdig. %S Loggføringsmeldinger fra Tor er klare til å bli sent til et skriveprogram eller en e-post.
+torlauncher.bootstrapStatus.starting=Starter opp
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Etablerer en kryptert katalogforbindelse
torlauncher.bootstrapStatus.requesting_status=Mottar nettverkstatus
torlauncher.bootstrapStatus.loading_status=Laster nettverkstatus
torlauncher.bootstrapStatus.loading_keys=Laster identitetsbekreftende sertifikater
torlauncher.bootstrapStatus.requesting_descriptors=Sender forespørsel om rutingsstafettoppsettsinformasjon
torlauncher.bootstrapStatus.loading_descriptors=Laster inn rutingsstafettoppsetts-informasjon
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Koblet til Tor-nettverket!
torlauncher.bootstrapWarning.done=ferdig
diff --git a/src/chrome/locale/ne/torlauncher.properties b/src/chrome/locale/ne/torlauncher.properties
index 37fa3c0..f6ff3bd 100644
--- a/src/chrome/locale/ne/torlauncher.properties
+++ b/src/chrome/locale/ne/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
diff --git a/src/chrome/locale/nl-BE/torlauncher.properties b/src/chrome/locale/nl-BE/torlauncher.properties
index 816fceb..c65f71c 100644
--- a/src/chrome/locale/nl-BE/torlauncher.properties
+++ b/src/chrome/locale/nl-BE/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Netwerkstatus aan het ophalen
torlauncher.bootstrapStatus.loading_status=Netwerkstatus aan het lasen
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=klaar
diff --git a/src/chrome/locale/nl/torlauncher.properties b/src/chrome/locale/nl/torlauncher.properties
index 9299ab2..4edb6f7 100644
--- a/src/chrome/locale/nl/torlauncher.properties
+++ b/src/chrome/locale/nl/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Voor bijstand, bezoek %S
torlauncher.copiedNLogMessages=Kopiëren klaar. %S Tor logberichten zijn klaar om in een teksteditor of een e-mailbericht te worden geplakt.
+torlauncher.bootstrapStatus.starting=Starten
+torlauncher.bootstrapStatus.conn_pt=Met brug verbinden
+torlauncher.bootstrapStatus.conn_done_pt=Met brug verbonden
+torlauncher.bootstrapStatus.conn_proxy=Verbinden met proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Verbonden met proxy
+torlauncher.bootstrapStatus.conn=Verbinden met een Tor omleiding
+torlauncher.bootstrapStatus.conn_done=Verbonden met een Tor omleiding
+torlauncher.bootstrapStatus.handshake=Onderhandelen met een Tor omleiding
+torlauncher.bootstrapStatus.handshake_done=Onderhandelen met een Tor omleiding afgerond
torlauncher.bootstrapStatus.onehop_create=Maken van een versleutelde verbinding met de lijst
torlauncher.bootstrapStatus.requesting_status=Ontvangen van de netwerkstatus
torlauncher.bootstrapStatus.loading_status=Laden van de netwerkstatus
torlauncher.bootstrapStatus.loading_keys=Laden van de authoriteitcertificaten
torlauncher.bootstrapStatus.requesting_descriptors=Opvragen van verbindingsinformatie
torlauncher.bootstrapStatus.loading_descriptors=Laden van verbindingsinformatie
+torlauncher.bootstrapStatus.enough_dirinfo=Klaar met het laden van relay informatie
+torlauncher.bootstrapStatus.ap_conn_pt=Circuit maken: verbinden met brug
+torlauncher.bootstrapStatus.ap_conn_done_pt=Circuit maken: verbonden met brug
+torlauncher.bootstrapStatus.ap_conn_proxy=Circuit opbouwen: Verbinden met een proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Circuit opbouwen: Verbonden met een proxy
+torlauncher.bootstrapStatus.ap_conn=Circuit opbouwen: verbinden met een Tor omleiding
+torlauncher.bootstrapStatus.ap_conn_done=Circuit opbouwen: Verbonden met een Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Circuits opzetten: Onderhandelen met een TOR relay
+torlauncher.bootstrapStatus.ap_handshake_done=Circuits opzetten: Klaar met onderhandelen met een TOR relay
+torlauncher.bootstrapStatus.circuit_create=Circuits opzetten: TOR circuit tot stand aan het brengen
torlauncher.bootstrapStatus.done=Verbonden met het Tor-netwerk!
torlauncher.bootstrapWarning.done=uitgevoerd
diff --git a/src/chrome/locale/nn/torlauncher.properties b/src/chrome/locale/nn/torlauncher.properties
index 15ef22f..5116590 100644
--- a/src/chrome/locale/nn/torlauncher.properties
+++ b/src/chrome/locale/nn/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Hentar nettverksstatus
torlauncher.bootstrapStatus.loading_status=Lastar nettverkstatus
torlauncher.bootstrapStatus.loading_keys=Lastar autoritetssertifikat
torlauncher.bootstrapStatus.requesting_descriptors=Ber om relae-informasjon
torlauncher.bootstrapStatus.loading_descriptors=Lastar relae-informasjon
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Kopla til Tor-nettverket!
torlauncher.bootstrapWarning.done=ferdig
diff --git a/src/chrome/locale/nso/torlauncher.properties b/src/chrome/locale/nso/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/nso/torlauncher.properties
+++ b/src/chrome/locale/nso/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/oc/torlauncher.properties b/src/chrome/locale/oc/torlauncher.properties
index 15a3fc1..ca9774b 100644
--- a/src/chrome/locale/oc/torlauncher.properties
+++ b/src/chrome/locale/oc/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
diff --git a/src/chrome/locale/or/torlauncher.properties b/src/chrome/locale/or/torlauncher.properties
index 15a3fc1..ca9774b 100644
--- a/src/chrome/locale/or/torlauncher.properties
+++ b/src/chrome/locale/or/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
diff --git a/src/chrome/locale/pa/torlauncher.properties b/src/chrome/locale/pa/torlauncher.properties
index 6d99d6b..3f32724 100644
--- a/src/chrome/locale/pa/torlauncher.properties
+++ b/src/chrome/locale/pa/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=ਸਹਾਇਤਾ ਲਈ ਜਾਓ %S ਉੱਪਰ
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=ਨੈੱਟਵਰਕ ਸਥਿਤੀ ਪ੍ਰਾਪਤ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ
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.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=ਮੁਕੰਮਲ
diff --git a/src/chrome/locale/pap/torlauncher.properties b/src/chrome/locale/pap/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/pap/torlauncher.properties
+++ b/src/chrome/locale/pap/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/pl/torlauncher.properties b/src/chrome/locale/pl/torlauncher.properties
index 384c66d..a1a5216 100644
--- a/src/chrome/locale/pl/torlauncher.properties
+++ b/src/chrome/locale/pl/torlauncher.properties
@@ -3,7 +3,7 @@
torlauncher.error_title=Tor Launcher
-torlauncher.tor_exited_during_startup=Tor wyłączył się podczas uruchamiania. Może to być spowodowane błędem programu Tor, lub innego programu zainstalowanego w Twoim systemie, lub może to być wina wadliwego sprzętu. Do czasu naprawienia problemu lub restartu programu, przeglądarka Tor się nie uruchomi.
+torlauncher.tor_exited_during_startup=Tor wyłączył się podczas uruchamiania. Może to być spowodowane błędem programu Tor, lub innego programu zainstalowanego w Twoim systemie, lub może to być wina wadliwego sprzętu. Do czasu naprawienia problemu lub restartu programu, Tor Browser się nie uruchomi.
torlauncher.tor_exited=Tor niespodziewanie wyłączył się. Może to być spowodowane błędem programu Tor, lub innego programu zainstalowanym w Twoim systemie, lub może być to wina wadliwego sprzętu. Do czasu ponownego uruchomienia Tora, Tor Browser nie będzie w stanie dotrzeć do wszystkich stron. Jeśli problem nadal występuje, należy wysłać kopię logów Tora do zespołu pomocy technicznej.
torlauncher.tor_exited2=Zrestartowanie Tora nie spowoduje zamknięcia Twoich zakładek.
torlauncher.tor_controlconn_failed=Nie można połączyć się z portem kontrolnym Tora.
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Aby uzyskać pomoc, odwiedź %S
torlauncher.copiedNLogMessages=Kopia zakończona. %S logi Tora są gotowe do wklejenia do notatnika lub wiadomości email.
+torlauncher.bootstrapStatus.starting=Uruchamianie
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=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 uwierzytelnienia
torlauncher.bootstrapStatus.requesting_descriptors=Żądanie informacji o węźle
torlauncher.bootstrapStatus.loading_descriptors=Wczytywanie informacji o węźle
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Połączony z siecią Tor!
torlauncher.bootstrapWarning.done=zrobione
diff --git a/src/chrome/locale/pms/torlauncher.properties b/src/chrome/locale/pms/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/pms/torlauncher.properties
+++ b/src/chrome/locale/pms/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/ps/torlauncher.properties b/src/chrome/locale/ps/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/ps/torlauncher.properties
+++ b/src/chrome/locale/ps/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/pt-BR/torlauncher.properties b/src/chrome/locale/pt-BR/torlauncher.properties
index 786d2bc..96fa6f8 100644
--- a/src/chrome/locale/pt-BR/torlauncher.properties
+++ b/src/chrome/locale/pt-BR/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Se você precisar de assistência, por favor visite %
torlauncher.copiedNLogMessages=Cópia concluída. As mensagens %S do Tor log estão prontas para ser copiadas em um editor de texto ou em uma mensagem de e-mail.
+torlauncher.bootstrapStatus.starting=Conectando
+torlauncher.bootstrapStatus.conn_pt=Conectando-se a ponte
+torlauncher.bootstrapStatus.conn_done_pt=Conectado à ponte
+torlauncher.bootstrapStatus.conn_proxy=Conectando-se ao proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Conectado ao proxy
+torlauncher.bootstrapStatus.conn=Conectando a um retransmissor Tor
+torlauncher.bootstrapStatus.conn_done=Conectado a um retransmissor Tor
+torlauncher.bootstrapStatus.handshake=Negociando com um retransmissor Tor
+torlauncher.bootstrapStatus.handshake_done=Acabou de negociar com um retransmissor Tor
torlauncher.bootstrapStatus.onehop_create=Estabelecendo uma conexão de diretório criptografado
torlauncher.bootstrapStatus.requesting_status=Recebendo estado da rede
torlauncher.bootstrapStatus.loading_status=Carregando estado da rede
torlauncher.bootstrapStatus.loading_keys=Carregando certificados de autoridade
torlauncher.bootstrapStatus.requesting_descriptors=Requisitando informações do retransmissor
torlauncher.bootstrapStatus.loading_descriptors=Carregando informações do retransmissor
+torlauncher.bootstrapStatus.enough_dirinfo=Informações de retransmissor de carregamento finalizados
+torlauncher.bootstrapStatus.ap_conn_pt=Circuitos de construção: conectando a ponte
+torlauncher.bootstrapStatus.ap_conn_done_pt=Circuitos de construção: conectados à ponte
+torlauncher.bootstrapStatus.ap_conn_proxy=Circuitos de construção: conectando-se ao proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Circuitos de construção: conectados ao proxy
+torlauncher.bootstrapStatus.ap_conn=Circuitos de construção: conectando a um retransmissor Tor
+torlauncher.bootstrapStatus.ap_conn_done=Circuitos de construção: conectados a um retransmissor Tor
+torlauncher.bootstrapStatus.ap_handshake=Circuitos de construção: Negociando com um retransmissor Tor
+torlauncher.bootstrapStatus.ap_handshake_done=Circuitos de construção: negociação finalizada com um retransmissor Tor
+torlauncher.bootstrapStatus.circuit_create=Circuitos de construção: estabelecendo um circuito Tor
torlauncher.bootstrapStatus.done=Conectado à rede Tor!
torlauncher.bootstrapWarning.done=pronto
diff --git a/src/chrome/locale/pt/torlauncher.properties b/src/chrome/locale/pt/torlauncher.properties
index 01e80f0..9a58dd2 100644
--- a/src/chrome/locale/pt/torlauncher.properties
+++ b/src/chrome/locale/pt/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Para assistência, visite %S
torlauncher.copiedNLogMessages=Cópia completa. Estão prontas %S mensagens do registo de eventos do Tor para serem coladas num editor de texto ou numa mensagem de correio eletrónico.
+torlauncher.bootstrapStatus.starting=Iniciando
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=A estabelecer uma ligação de diretoria encriptada
torlauncher.bootstrapStatus.requesting_status=A obter o estado da rede
torlauncher.bootstrapStatus.loading_status=A carregar o estado da rede
torlauncher.bootstrapStatus.loading_keys=A carregar os certificados de autoridade
torlauncher.bootstrapStatus.requesting_descriptors=A solicitar a informação do retransmissor
torlauncher.bootstrapStatus.loading_descriptors=A carregar a informação do retransmissor
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Ligado à rede Tor
torlauncher.bootstrapWarning.done=finalizado
diff --git a/src/chrome/locale/ro/network-settings.dtd b/src/chrome/locale/ro/network-settings.dtd
index 628b5fa..cc428b8 100644
--- a/src/chrome/locale/ro/network-settings.dtd
+++ b/src/chrome/locale/ro/network-settings.dtd
@@ -1,17 +1,17 @@
-<!ENTITY torsettings.dialog.title "Setări rețea Tor">
+<!ENTITY torsettings.dialog.title "Setări Rețea Tor">
<!ENTITY torsettings.wizard.title.default "Conectare la Tor">
<!ENTITY torsettings.wizard.title.configure "Setări Rețea Tor">
<!ENTITY torsettings.wizard.title.connecting "Stabilire Conexiune">
<!-- For locale picker: -->
<!ENTITY torlauncher.localePicker.title "Limba pentru Tor Browser">
-<!ENTITY torlauncher.localePicker.prompt "Va rugăm sa alegeți o limba.">
+<!ENTITY torlauncher.localePicker.prompt "Va rugăm sa alegeți o limbă.">
<!-- For "first run" wizard: -->
-<!ENTITY torSettings.connectPrompt "Apasă "Conectare" pentru a te conecta la Tor">
+<!ENTITY torSettings.connectPrompt "Apasă "Conectare" pentru a te conecta la Tor.">
<!ENTITY torSettings.configurePrompt "Apasă "Configurare" pentru a modifica setările de rețea dacă te afli într-o țară care blochează Tor (cum ar fi Egipt, China, Turcia) sau dacă te conectezi dintr-o rețea privată care necesită un proxy.">
-<!ENTITY torSettings.configure "Configuraţi ">
+<!ENTITY torSettings.configure "Configurare">
<!ENTITY torSettings.connect "Conectare">
<!-- Other: -->
@@ -20,8 +20,8 @@
<!ENTITY torsettings.restartTor "Repornește Tor">
<!ENTITY torsettings.reconfigTor "Reconfigurare">
-<!ENTITY torsettings.discardSettings.prompt "Ați configurat bridge-uri Tor sau ați introdus setări proxu locale.  Pentru a face o conexiune directă la rețeaua Tor aceste setări trebuiesc eliminate.">
-<!ENTITY torsettings.discardSettings.proceed "Eliminați Setări și Conectare">
+<!ENTITY torsettings.discardSettings.prompt "Ați configurat punți Tor sau ați introdus setări proxy locale.  Pentru a te conecta direct la rețeaua Tor aceste setări trebuiesc eliminate.">
+<!ENTITY torsettings.discardSettings.proceed "Eliminare Setări și Conectare">
<!ENTITY torsettings.optional "Opțional">
@@ -36,26 +36,26 @@
<!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 "Acest computer iese printr-un firewall care permite doar conexiuni către anumite porturi">
+<!ENTITY torsettings.firewall.checkbox "Acest computer trece printr-un firewall care permite doar conexiuni către anumite porturi">
<!ENTITY torsettings.firewall.allowedPorts "Porturi permise:">
<!ENTITY torsettings.useBridges.checkbox "Tor este cenzurat în țara mea">
<!ENTITY torsettings.useBridges.default "Selectează o punte integrată">
<!ENTITY torsettings.useBridges.default.placeholder "selectează o punte">
<!ENTITY torsettings.useBridges.bridgeDB "Cere o punte de la torproject.org">
<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Introdu caracterele din imagine">
-<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Get a new challenge">
-<!ENTITY torsettings.useBridges.captchaSubmit "A depune">
-<!ENTITY torsettings.useBridges.custom "Furnizează o punte pe care o știu">
+<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Obțineți o nouă provocare">
+<!ENTITY torsettings.useBridges.captchaSubmit "Trimite">
+<!ENTITY torsettings.useBridges.custom "Folosește o punte pe care o știu">
<!ENTITY torsettings.useBridges.label "Introdu informația despre punte dintr-o sursă de încredere">
<!ENTITY torsettings.useBridges.placeholder "scrie adresă:port (una pe linie)">
<!ENTITY torsettings.copyLog "Copiați jurnalul Tor în Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Ajutor Proxy">
-<!ENTITY torsettings.proxyHelp1 "Un proxy local ar putea fi necesar la conectarea din rețeaua unei companii, școli sau universități. Dacă nu ești sigur că un proxy ar fi necesar, vezi setările pentru Internet în alt navigator web sau verifică setările de rețea.">
+<!ENTITY torsettings.proxyHelp1 "Un proxy local ar putea fi necesar la conectarea prin rețeaua unei companii, școli sau universități. Dacă nu ești sigur că un proxy este necesar, vezi setările pentru Internet în alt navigator web sau verifică setările de rețea.">
-<!ENTITY torsettings.bridgeHelpTitle "Ajutor Bridge Relay">
-<!ENTITY torsettings.bridgeHelp1 "Punțile sunt relee ne-listate care fac mai dificilă blocarea conexiunilor spre Rețeaua Tor.   Fiecare tip de punte folosește o altă metodă pentru a evita cenzura.   Cele obfs fac traficul tău să semene cu zgomot aleatoriu, iar cele meek fac traficul să pară că se conectează la acel serviciu în loc de Tor.">
+<!ENTITY torsettings.bridgeHelpTitle "Ajutor Releuri de tip Punte">
+<!ENTITY torsettings.bridgeHelp1 "Punțile sunt relee ne-listate care fac mai dificilă blocarea conexiunilor spre Rețeaua Tor.   Fiecare tip de punte folosește o altă metodă pentru a evita cenzura.   Cele de tip obfs fac traficul tău să semene cu zgomot aleatoriu, iar cele meek fac traficul să pară că se conectează la acel serviciu în loc de Tor.">
<!ENTITY torsettings.bridgeHelp2 "Datorită modului în care diverse țări încearcă să blocheze Tor, unele punți funcționează doar în anumite țări și nu în altele.   Dacă nu ești sigur ce punți funcționează în țara ta, vizitează torproject.org/about/contact.html#support">
<!-- Progress -->
diff --git a/src/chrome/locale/ro/torlauncher.properties b/src/chrome/locale/ro/torlauncher.properties
index f8efe95..dc36fb1 100644
--- a/src/chrome/locale/ro/torlauncher.properties
+++ b/src/chrome/locale/ro/torlauncher.properties
@@ -3,62 +3,81 @@
torlauncher.error_title=Lansator Tor
-torlauncher.tor_exited_during_startup=Tor s-a închis în mod neașteptat. Acest lucru se datorează fie unei erori în Tor, în alt program de pe sistemul dvs., sau a unei defecțiuni de hardware. Până nu vei fixa problema şi restartezi Tor,\nBrowserul Tor nu va porni.
-torlauncher.tor_exited=Tor s-a închis în mod neașteptat. Acest lucru se datorează fie unei erori în Tor, în alt program de pe sistemul dvs., sau a unei defecțiuni în hardware. Browserul Tor nu va putea accesa nici un site decât dacă reporniți Tor. Dacă problema persistă, vă rugăm să trimiteți o copie a Tor Log către echipa de suport.
-torlauncher.tor_exited2=Restartând Tor nu se vor închide ferestrele browserului dvs.
+torlauncher.tor_exited_during_startup=Tor s-a închis în mod neașteptat. Acest lucru se datorează fie unei erori în Tor, în alt program de pe sistemul dvs., sau a unei defecțiuni de hardware. Până nu veți repara problema şi veți reporni Tor, navigatorul Tor Browser nu va porni.
+torlauncher.tor_exited=Tor s-a închis în mod neașteptat. Acest lucru se datorează fie unei erori în Tor, în alt program de pe sistemul dvs., sau a unei defecțiuni în hardware. Navigatorul Tor Browser nu va putea accesa nici un site decât dacă reporniți Tor. Dacă problema persistă, vă rugăm să trimiteți o copie a jurnalului Tor către echipa de suport.
+torlauncher.tor_exited2=Repornirea Tor nu va închide ferestrele navigatorului dvs.
torlauncher.tor_controlconn_failed=Nu s-a putut conecta la portul de control Tor.
-torlauncher.tor_failed_to_start=Tor nu poate porni.
-torlauncher.tor_control_failed=Eșec să preiau controlul Tor.
-torlauncher.tor_bootstrap_failed=Tor nu a reușit să facă o conexiune la rețeaua Tor.
-torlauncher.tor_bootstrap_failed_details=%1$S eșec (%2$S).
+torlauncher.tor_failed_to_start=Tor nu a putut porni.
+torlauncher.tor_control_failed=Eșuare la preluarea controlului Tor.
+torlauncher.tor_bootstrap_failed=Tor nu a reușit să stabilească o conexiune la rețeaua Tor.
+torlauncher.tor_bootstrap_failed_details=%1$S eșuare (%2$S).
-torlauncher.unable_to_start_tor=Tor nu poate porni.
+torlauncher.unable_to_start_tor=Tor nu a putut porni.\n\n%S
torlauncher.tor_missing=Fișierul executabil Tor lipsește.
-torlauncher.torrc_missing=Fişierul torrc lipseşte şi nu s-a putut crea.
+torlauncher.torrc_missing=Fişierul torrc lipseşte şi nu a putut fi creat.
torlauncher.datadir_missing=Directorul de date Tor nu există şi nu a putut fi creat.
torlauncher.password_hash_missing=Eroare la obținerea hash-ului parolei.
-torlauncher.failed_to_get_settings=Nu pot obține Tor settings.\n\n%S
-torlauncher.failed_to_save_settings=Nu pot salva Tor settings.\n\n%S
+torlauncher.failed_to_get_settings=Nu s-au putut obține setările Tor.\n\n%S
+torlauncher.failed_to_save_settings=Nu s-au putut salva setările Tor.\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=Trebuie să alegeți un tip de transport pentru punțile oferite
-torlauncher.error_bridgedb_bridges_missing=Te rog să ceri o punte
-torlauncher.error_bridge_bad_default_type=Nici una din punțile oferite care să ofere transport tip %S este disponibilă. Ajutați setările.
+torlauncher.error_proxy_addr_missing=Pentru a configura Tor să folosească un 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=Tipul de proxy trebuie selectat.
+torlauncher.error_bridges_missing=Trebuiesc specificate una sau mai multe punți.
+torlauncher.error_default_bridges_type_missing=Un tip de transport pentru punțile oferite trebuie selectat.
+torlauncher.error_bridgedb_bridges_missing=Vă rugăm cereți o punte.
+torlauncher.error_bridge_bad_default_type=Nici o punte cu suport pentru transport tip %S nu este disponibilă. Ajustați setările.
torlauncher.bridge_suffix.meek-amazon=(funcționează în China)
torlauncher.bridge_suffix.meek-azure=(funcționează în China)
-torlauncher.request_a_bridge=Cere o punte...
-torlauncher.request_a_new_bridge=Cere o punte nouă…
+torlauncher.request_a_bridge=Cerere Punte...
+torlauncher.request_a_new_bridge=Cerere Punte Nouă
torlauncher.contacting_bridgedb=Se contactează BridgeDB. Așteptați.
-torlauncher.captcha_prompt=Solve the CAPTCHA to request a bridge.
+torlauncher.captcha_prompt=Rezolvă acest CAPTCHA pentru a cere o punte.
torlauncher.bad_captcha_solution=Soluția nu este corectă. Încearcă din nou.
torlauncher.unable_to_get_bridge=Nu s-a putut obține o punte de la BridgeDB.\n\n%S
-torlauncher.no_meek=This browser is not configured for meek, which is needed to obtain bridges.
-torlauncher.no_bridges_available=Nicio punte disponibilă în acest moment. Scuze.
+torlauncher.no_meek=Acest navigator nu este configurat pentru meek, care este necesar pentru a obține punți.
+torlauncher.no_bridges_available=Nu există punți disponibile în acest moment. Ne pare rău.
torlauncher.connect=Conectare
-torlauncher.restart_tor=Repornește Tor
+torlauncher.restart_tor=Repornire Tor
torlauncher.quit=Revocare
torlauncher.quit_win=Ieşire
torlauncher.done=Gata
-torlauncher.forAssistance=Pentru asistență, contactați
-torlauncher.forAssistance2=Pentru asistenţă, vizitează %S
+torlauncher.forAssistance=Pentru asistență, contactați %S
+torlauncher.forAssistance2=Pentru asistenţă, vizitați %S
-torlauncher.copiedNLogMessages=Copiere efectuată. %S Mesajele de log Tor sunt gata pentru a fi lipite într-un editor de text sau un mesaj e-mail.
+torlauncher.copiedNLogMessages=Copiere efectuată. %S mesaje din jurnalul Tor sunt gata de lipire într-un editor de text sau un mesaj e-mail.
+torlauncher.bootstrapStatus.starting=Pornește
+torlauncher.bootstrapStatus.conn_pt=Se conectează la bridge
+torlauncher.bootstrapStatus.conn_done_pt=Conectat la bridge
+torlauncher.bootstrapStatus.conn_proxy=Se conectează la proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Conectat la proxy
+torlauncher.bootstrapStatus.conn=Se conectează la un releu Tor
+torlauncher.bootstrapStatus.conn_done=Conectat la un releu Tor
+torlauncher.bootstrapStatus.handshake=Negociază cun un releu Tor
+torlauncher.bootstrapStatus.handshake_done=S-a încheiat negocierea cu un releu Tor
torlauncher.bootstrapStatus.onehop_create=Se stabileşte o conexiune criptată la director
torlauncher.bootstrapStatus.requesting_status=Se obţin informaţii despre starea reţelei
torlauncher.bootstrapStatus.loading_status=Se încarcă informaţiile despre starea reţelei
torlauncher.bootstrapStatus.loading_keys=Se încarcă certificatele de autoritate
-torlauncher.bootstrapStatus.requesting_descriptors=Se cer informaţii despre relay
-torlauncher.bootstrapStatus.loading_descriptors=Se încarcă informaţiile despre relay
-torlauncher.bootstrapStatus.done=Conectare efectuată cu succes!
+torlauncher.bootstrapStatus.requesting_descriptors=Se cer informaţii despre releuri
+torlauncher.bootstrapStatus.loading_descriptors=Se încarcă informaţiile despre releuri
+torlauncher.bootstrapStatus.enough_dirinfo=S-a încheiat încărcarea informației din releu
+torlauncher.bootstrapStatus.ap_conn_pt=Se construiesc circuite: Conectarea la bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Se construiesc circuite: Conectat la bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Se construiesc circuite: Conectarea la proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Se construiesc circuite: Conectat la proxy
+torlauncher.bootstrapStatus.ap_conn=Se construiesc circuite: Conectarea la releu Tor
+torlauncher.bootstrapStatus.ap_conn_done=Se construiesc circuite: Conectat la releu Tor
+torlauncher.bootstrapStatus.ap_handshake=Se construiesc circuite: Negocierea cu un releu Tor
+torlauncher.bootstrapStatus.ap_handshake_done=Se construiesc circuite: S-a încheiat negocierea cu un releu Tor
+torlauncher.bootstrapStatus.circuit_create=Se construiesc circuite: Stabilirea unui circuit Tor
+torlauncher.bootstrapStatus.done=Conectare la rețeaua Tor efectuată cu succes!
torlauncher.bootstrapWarning.done=efectuat
torlauncher.bootstrapWarning.connectrefused=conexiune refuzată
diff --git a/src/chrome/locale/ru/network-settings.dtd b/src/chrome/locale/ru/network-settings.dtd
index 6e047e6..aa45c11 100644
--- a/src/chrome/locale/ru/network-settings.dtd
+++ b/src/chrome/locale/ru/network-settings.dtd
@@ -55,7 +55,7 @@
<!ENTITY torsettings.proxyHelp1 "Локальный прокси-сервер может понадобиться при подключении через сеть компаний, школ или университетов. Если вы не уверены в необходимости прокси-сервера, посмотрите настройки Интернета в другом браузере или проверьте сетевые настройки вашей системы.">
<!ENTITY torsettings.bridgeHelpTitle "Помощь по ретрансляторам типа мост">
-<!ENTITY torsettings.bridgeHelp1 "Мосты - это незарегистрированные реле, которые затрудняют блокировку соединений с сетью Tor.&#160 Каждый тип моста использует отличный от других метод, чтобы избежать блокировки цезорами. Обходные устройства делают ваш трафик похожим на случайный шум и имитируют то, что он подключается к этой службе вместо Tor.">
+<!ENTITY torsettings.bridgeHelp1 "Мосты - это непубличные реле, которые затрудняют блокировку соединений с сетью Tor.&#160 Каждый тип моста использует отличный от других метод, чтобы избежать блокировки цезорами. Мосты типа obfs делают ваш трафик похожим на случайный шум, в то время, как мосты типа meed имитируют подключение к службе, отличной от Tor.">
<!ENTITY torsettings.bridgeHelp2 "Из-за того, как именно страны пытаются блокировать Tor, определенные мосты работают в одних странах, но не работают в других.  Если вы не уверены в том, какие мосты сработает в вашей стране, посетите torproject.org/about/contact.html#support">
<!-- Progress -->
diff --git a/src/chrome/locale/ru/torlauncher.properties b/src/chrome/locale/ru/torlauncher.properties
index 54996ef..744d6d3 100644
--- a/src/chrome/locale/ru/torlauncher.properties
+++ b/src/chrome/locale/ru/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Посетите %S, чтобы получить по
torlauncher.copiedNLogMessages=Копирование завершено. %S собщение с логами Tor находятся в буфере обмена и могут быть вставлены в текстовый редактор или email.
+torlauncher.bootstrapStatus.starting=Запускается
+torlauncher.bootstrapStatus.conn_pt=Подключение к мосту
+torlauncher.bootstrapStatus.conn_done_pt=Подключено к мосту
+torlauncher.bootstrapStatus.conn_proxy=Подключение к прокси
+torlauncher.bootstrapStatus.conn_done_proxy=Подключено к прокси
+torlauncher.bootstrapStatus.conn=Подключение к ретранслятору Tor
+torlauncher.bootstrapStatus.conn_done=Подключено к ретранслятору Tor
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Создание шифрованного соединения каталогa
torlauncher.bootstrapStatus.requesting_status=Получение статуса сети
torlauncher.bootstrapStatus.loading_status=Загрузка состояния сети
torlauncher.bootstrapStatus.loading_keys=Загрузка сертификатов
torlauncher.bootstrapStatus.requesting_descriptors=Запрос информации ретранслятора
torlauncher.bootstrapStatus.loading_descriptors=Загрузка информации ретранслятора
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Подключен к сети Tor!
torlauncher.bootstrapWarning.done=cделано
diff --git a/src/chrome/locale/ru(a)petr1708/torlauncher.properties b/src/chrome/locale/ru(a)petr1708/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/ru(a)petr1708/torlauncher.properties
+++ b/src/chrome/locale/ru(a)petr1708/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/sco/torlauncher.properties b/src/chrome/locale/sco/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/sco/torlauncher.properties
+++ b/src/chrome/locale/sco/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/si-LK/torlauncher.properties b/src/chrome/locale/si-LK/torlauncher.properties
index f0d81b7..15c4457 100644
--- a/src/chrome/locale/si-LK/torlauncher.properties
+++ b/src/chrome/locale/si-LK/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=සංකේත කරන ලද ඩිරෙක්ටරි සබැදුමක් ස්ථාපනය කරමින්
torlauncher.bootstrapStatus.requesting_status=ජාල තත්වය සමුධ්රණය කරමින්
torlauncher.bootstrapStatus.loading_status=ජාල තත්වය ප්රවේශනය කරමින්
torlauncher.bootstrapStatus.loading_keys=අධිකාරීත්ව සහතික ප්රවේශනය කරමින්
torlauncher.bootstrapStatus.requesting_descriptors=ප්රතියෝජක තොරතුරු අයදුම් කරමින්
torlauncher.bootstrapStatus.loading_descriptors=ප්රතියෝජක තොරතුරු ප්රවේශනය කරමින්
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Tor ජාලයට සබැදියි
torlauncher.bootstrapWarning.done=කරන ලදී
diff --git a/src/chrome/locale/sk-SK/torlauncher.properties b/src/chrome/locale/sk-SK/torlauncher.properties
index 26f6190..2f77c46 100644
--- a/src/chrome/locale/sk-SK/torlauncher.properties
+++ b/src/chrome/locale/sk-SK/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=Pre pomoc navštívte %S
torlauncher.copiedNLogMessages=Kopírovanie kompletné. %S záznamov je pripravených na vloženie do textového editora alebo emailu.
-torlauncher.bootstrapStatus.onehop_create=Vytváram spojenie so zašifrovaným priečinkom
+torlauncher.bootstrapStatus.conn_dir=Pripájam sa do priečinka relé
+torlauncher.bootstrapStatus.handshake_dir=Vytváram spojenie so zašifrovaným priečinkom
torlauncher.bootstrapStatus.requesting_status=Získavam stav siete
torlauncher.bootstrapStatus.loading_status=Načítavam stav siete
torlauncher.bootstrapStatus.loading_keys=Načítavam certifikáty autority
torlauncher.bootstrapStatus.requesting_descriptors=Vyžiadavam informácie o relé
torlauncher.bootstrapStatus.loading_descriptors=Načítavam informácie o relé
+torlauncher.bootstrapStatus.conn_or=Pripájanie do siete Tor
+torlauncher.bootstrapStatus.handshake_or=Vytváram obvod Tor
torlauncher.bootstrapStatus.done=Pripojené do siete Tor!
torlauncher.bootstrapWarning.done=hotovo
diff --git a/src/chrome/locale/sk/network-settings.dtd b/src/chrome/locale/sk/network-settings.dtd
index 780dff1..53e98a9 100644
--- a/src/chrome/locale/sk/network-settings.dtd
+++ b/src/chrome/locale/sk/network-settings.dtd
@@ -1,7 +1,7 @@
<!ENTITY torsettings.dialog.title "Sieťové Nastavenia Tor">
-<!ENTITY torsettings.wizard.title.default "Connect to Tor">
+<!ENTITY torsettings.wizard.title.default "Pripojiť k Tor">
<!ENTITY torsettings.wizard.title.configure "Sieťové Nastavenia Tor">
-<!ENTITY torsettings.wizard.title.connecting "Establishing a Connection">
+<!ENTITY torsettings.wizard.title.connecting "Vytváram spojenie">
<!-- For locale picker: -->
<!ENTITY torlauncher.localePicker.title "Jazyk Prehliadača Tor">
@@ -18,14 +18,14 @@
<!ENTITY torsettings.startingTor "Čakám kým sa Tor spustí...">
<!ENTITY torsettings.restartTor "Reštartujte Tor">
-<!ENTITY torsettings.reconfigTor "Reconfigure">
+<!ENTITY torsettings.reconfigTor "Rekonfigurovať">
-<!ENTITY torsettings.discardSettings.prompt "You have configured Tor bridges or you have entered local proxy settings.  To make a direct connection to the Tor network, these settings must be removed.">
-<!ENTITY torsettings.discardSettings.proceed "Remove Settings and Connect">
+<!ENTITY torsettings.discardSettings.prompt "Nakonfigurovali ste Tor premostenia alebo ste uviedli miestne nastavenia proxy.  Pre vytvorenie priameho spojenia so sieťou Tor, musia byť tieto nastavenia odstránené.">
+<!ENTITY torsettings.discardSettings.proceed "Odstrániť nastavenia a spojenia">
<!ENTITY torsettings.optional "Voliteľné">
-<!ENTITY torsettings.useProxy.checkbox "I use a proxy to connect to the Internet">
+<!ENTITY torsettings.useProxy.checkbox "Na pripojenie k internetu používam proxy">
<!ENTITY torsettings.useProxy.type "Typ Proxy:">
<!ENTITY torsettings.useProxy.type.placeholder "select a proxy type">
<!ENTITY torsettings.useProxy.address "Adresa:">
@@ -38,7 +38,7 @@
<!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 "Tor is censored in my country">
+<!ENTITY torsettings.useBridges.checkbox "Tor je v mojej krajine cenzurovaný">
<!ENTITY torsettings.useBridges.default "Select a built-in bridge">
<!ENTITY torsettings.useBridges.default.placeholder "select a bridge">
<!ENTITY torsettings.useBridges.bridgeDB "Request a bridge from torproject.org">
@@ -59,4 +59,4 @@
<!ENTITY torsettings.bridgeHelp2 "Because of how certain countries try to block Tor, certain bridges work in certain countries but not others.  If you are unsure about which bridges work in your country, visit torproject.org/about/contact.html#support">
<!-- Progress -->
-<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.  This may take several minutes.">
+<!ENTITY torprogress.pleaseWait "Prosím počkajte na vytvorenie pripojenia do siete Tor.  Môže to trvať niekoľko minút. ">
diff --git a/src/chrome/locale/sk/torlauncher.properties b/src/chrome/locale/sk/torlauncher.properties
index b37a631..03362c3 100644
--- a/src/chrome/locale/sk/torlauncher.properties
+++ b/src/chrome/locale/sk/torlauncher.properties
@@ -3,7 +3,7 @@
torlauncher.error_title=Spúšťač Tor
-torlauncher.tor_exited_during_startup=Tor exited during startup. This might be due to an error in your torrc file, a bug in Tor or another program on your system, or faulty hardware. Until you fix the underlying problem and restart Tor, Tor Browser will not start.
+torlauncher.tor_exited_during_startup=Tor bol ukončený počas spúšťania. Mohla to spôsibiť chyba vo Vašom torrc súbore, chyba v Tor alebo inom programe vo Vašom systéme, alebo chybný hardvér. Kým nevyriešite tento problém a nereštartujete Tor, nebude možné spustiť prehliadač Tor.
torlauncher.tor_exited=Tor bol neočakávane ukončený. Mohlo to byť spôsobené chybou v Tor samotnom, iným programom vo vašom systéme, alebo chybným hardvérom. Kým nereštartujete Tor, Tor Browser nebude schopný otvoriť akékoľvek webové stránky. Ak problém pretrváva, prosím pošlite kópiu Tor logu tímu podpory.
torlauncher.tor_exited2=Reštartovanie Tor nezatvorí Vaše záložky prehliadača.
torlauncher.tor_controlconn_failed=Nepodarilo sa pripojiť ku kontrolnému portu Tor.
@@ -14,8 +14,8 @@ 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=The torrc file is missing and could not be created.
-torlauncher.datadir_missing=The Tor data directory does not exist and could not be created.
+torlauncher.torrc_missing=Chýba súbor torrc a nemohol byť vytvorený.
+torlauncher.datadir_missing=Priečinok pre dáta Tor neexistuje a nemohol byť vytvorený.
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
@@ -48,16 +48,35 @@ torlauncher.quit_win=Ukončiť
torlauncher.done=Hotovo
torlauncher.forAssistance=Pre podporu kontaktujte %S
-torlauncher.forAssistance2=For assistance, visit %S
+torlauncher.forAssistance2=Pre pomoc navštívte %S
torlauncher.copiedNLogMessages=Kopirovanie ukončené. %S Tor log správy je pripravené na prilepenie do textového editora alebo emailovej správy.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+torlauncher.bootstrapStatus.starting=Spúšťa sa
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.onehop_create=Vytváram spojenie so zašifrovaným priečinkom
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Načítanie stavu siete
torlauncher.bootstrapStatus.loading_keys=Nahrávanie autorizačných certifikátov
torlauncher.bootstrapStatus.requesting_descriptors=Požiadať o informácie o relay
torlauncher.bootstrapStatus.loading_descriptors=Načítať informácie o relay
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Ste pripojený do siete Tor!
torlauncher.bootstrapWarning.done=hotovo
diff --git a/src/chrome/locale/sl-SI/torlauncher.properties b/src/chrome/locale/sl-SI/torlauncher.properties
index 947ddde..bfbe535 100644
--- a/src/chrome/locale/sl-SI/torlauncher.properties
+++ b/src/chrome/locale/sl-SI/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Kopiranje končano. % S Tor poročila so pripravljena za lepljenje v urejevalnik besedil ali e-poštno sporočilo.
-torlauncher.bootstrapStatus.onehop_create=Urejanje šifriranega imenika povezave
+torlauncher.bootstrapStatus.conn_dir=Povezovanje na imenik vmesnika
+torlauncher.bootstrapStatus.handshake_dir=Urejanje šifriranega imenika povezave
torlauncher.bootstrapStatus.requesting_status=Stanje vzpostavljenega omrežja
torlauncher.bootstrapStatus.loading_status=Stanje nalaganja omrežja
torlauncher.bootstrapStatus.loading_keys=Nalaganje veljavnosti certifikatov
torlauncher.bootstrapStatus.requesting_descriptors=Info zahtevanih vmesnikov
torlauncher.bootstrapStatus.loading_descriptors=Nalaganje informacij vmesnikov
+torlauncher.bootstrapStatus.conn_or=Povezovanje v Tor omrežje
+torlauncher.bootstrapStatus.handshake_or=Vzpostavljanje Tor povezave
torlauncher.bootstrapStatus.done=Povezan v Tor omrežje
torlauncher.bootstrapWarning.done=narejeno
diff --git a/src/chrome/locale/sl/network-settings.dtd b/src/chrome/locale/sl/network-settings.dtd
index be6dbf6..806626a 100644
--- a/src/chrome/locale/sl/network-settings.dtd
+++ b/src/chrome/locale/sl/network-settings.dtd
@@ -1,6 +1,6 @@
-<!ENTITY torsettings.dialog.title "Tor Network Settings">
+<!ENTITY torsettings.dialog.title "Tor mrežne nastavitve">
<!ENTITY torsettings.wizard.title.default "Connect to Tor">
-<!ENTITY torsettings.wizard.title.configure "Tor Network Settings">
+<!ENTITY torsettings.wizard.title.configure "Tor mrežne nastavitve">
<!ENTITY torsettings.wizard.title.connecting "Establishing a Connection">
<!-- For locale picker: -->
@@ -16,28 +16,28 @@
<!-- Other: -->
-<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
-<!ENTITY torsettings.restartTor "Restart Tor">
+<!ENTITY torsettings.startingTor "Čakanje na zagon Tor-a...">
+<!ENTITY torsettings.restartTor "Ponovno zaženite Tor">
<!ENTITY torsettings.reconfigTor "Reconfigure">
<!ENTITY torsettings.discardSettings.prompt "You have configured Tor bridges or you have entered local proxy settings.  To make a direct connection to the Tor network, these settings must be removed.">
<!ENTITY torsettings.discardSettings.proceed "Remove Settings and Connect">
-<!ENTITY torsettings.optional "Optional">
+<!ENTITY torsettings.optional "Po izbiri">
<!ENTITY torsettings.useProxy.checkbox "I use a proxy to connect to the Internet">
-<!ENTITY torsettings.useProxy.type "Proxy Type:">
+<!ENTITY torsettings.useProxy.type "Proxy tip:">
<!ENTITY torsettings.useProxy.type.placeholder "select a proxy type">
-<!ENTITY torsettings.useProxy.address "Address:">
-<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
+<!ENTITY torsettings.useProxy.address "Naslov:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP naslov ali ime domene">
<!ENTITY torsettings.useProxy.port "vrata:">
-<!ENTITY torsettings.useProxy.username "Username:">
+<!ENTITY torsettings.useProxy.username "Uporabniško ime:">
<!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.firewall.checkbox "Računalnik uporablja požarni zid, ki dovoljuje povezavo le na določena vrata">
+<!ENTITY torsettings.firewall.allowedPorts "Dovoljena vrata:">
<!ENTITY torsettings.useBridges.checkbox "Tor is censored in my country">
<!ENTITY torsettings.useBridges.default "Select a built-in bridge">
<!ENTITY torsettings.useBridges.default.placeholder "select a bridge">
@@ -49,12 +49,12 @@
<!ENTITY torsettings.useBridges.label "Enter bridge information from a trusted source.">
<!ENTITY torsettings.useBridges.placeholder "type address:port (one per line)">
-<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.copyLog "Kopirajte Tor poročilo v odložišče">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
-<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
+<!ENTITY torsettings.bridgeHelpTitle "Pomoč premostitveno vozlišče">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
<!ENTITY torsettings.bridgeHelp2 "Because of how certain countries try to block Tor, certain bridges work in certain countries but not others.  If you are unsure about which bridges work in your country, visit torproject.org/about/contact.html#support">
diff --git a/src/chrome/locale/sl/torlauncher.properties b/src/chrome/locale/sl/torlauncher.properties
index ebab3ff..52ff921 100644
--- a/src/chrome/locale/sl/torlauncher.properties
+++ b/src/chrome/locale/sl/torlauncher.properties
@@ -5,12 +5,12 @@ torlauncher.error_title=Tor zaganjalnik
torlauncher.tor_exited_during_startup=Tor exited during startup. This might be due to an error in your torrc file, a bug in Tor or another program on your system, or faulty hardware. Until you fix the underlying problem and restart Tor, Tor Browser will not start.
torlauncher.tor_exited=Tor se je nepričakovano končal. Razlog je lahko hrošč v Toru, katerikoli drug program na računalniku ali pa problem v strojni opremi. Tor brskalnik ne more doseči nobene strani, dokler ga ne zaženete ponovno. Če se težava ponavlja, prosim pošljite kopijo Tor dnevnika ekipi podpore.
-torlauncher.tor_exited2=Restarting Tor will not close your browser tabs.
+torlauncher.tor_exited2=Ponoven zagon Tor-a ne bo zaprl tabulatorjev brskalnika
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_control_failed=Neuspešen nadzor Tor-a.
torlauncher.tor_bootstrap_failed=Tor ni mogel vzpostaviti povezave s Tor omrežjem.
-torlauncher.tor_bootstrap_failed_details=%1$S failed (%2$S).
+torlauncher.tor_bootstrap_failed_details=%1$S neuspešno (%2$S).
torlauncher.unable_to_start_tor=Tor se ne more zagnati.\n\n%S
torlauncher.tor_missing=Manjka Torova izvršljiva datoteka.
@@ -25,9 +25,9 @@ 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_default_bridges_type_missing=Izbrati morate tip prometa za ponujene premostitve.
torlauncher.error_bridgedb_bridges_missing=Please request a bridge.
-torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
+torlauncher.error_bridge_bad_default_type=Nobenih ponujenih premostitev, ki imajo tip transporta% S ni na voljo. Prosimo, da prilagodite nastavitve.
torlauncher.bridge_suffix.meek-amazon=(works in China)
torlauncher.bridge_suffix.meek-azure=(works in China)
@@ -42,7 +42,7 @@ torlauncher.no_meek=This browser is not configured for meek, which is needed to
torlauncher.no_bridges_available=No bridges are available at this time. Sorry.
torlauncher.connect=Poveži
-torlauncher.restart_tor=Restart Tor
+torlauncher.restart_tor=Ponovno zaženite Tor
torlauncher.quit=Zapusti
torlauncher.quit_win=Izhod
torlauncher.done=Končano
@@ -50,25 +50,44 @@ torlauncher.done=Končano
torlauncher.forAssistance=Za pomoč, vzpostavite stik z %S
torlauncher.forAssistance2=For assistance, visit %S
-torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.copiedNLogMessages=Kopiranje končano. % S Tor poročila so pripravljena za lepljenje v urejevalnik besedil ali e-poštno sporočilo.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
-torlauncher.bootstrapStatus.requesting_status=Retrieving network status
-torlauncher.bootstrapStatus.loading_status=Loading network status
-torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
-torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
-torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
-torlauncher.bootstrapStatus.done=Connected to the Tor network!
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.onehop_create=Urejanje šifriranega imenika povezave
+torlauncher.bootstrapStatus.requesting_status=Stanje vzpostavljenega omrežja
+torlauncher.bootstrapStatus.loading_status=Stanje nalaganja omrežja
+torlauncher.bootstrapStatus.loading_keys=Nalaganje veljavnosti certifikatov
+torlauncher.bootstrapStatus.requesting_descriptors=Info zahtevanih vmesnikov
+torlauncher.bootstrapStatus.loading_descriptors=Nalaganje informacij vmesnikov
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
+torlauncher.bootstrapStatus.done=Povezan v Tor omrežje
-torlauncher.bootstrapWarning.done=done
-torlauncher.bootstrapWarning.connectrefused=connection refused
-torlauncher.bootstrapWarning.misc=miscellaneous
-torlauncher.bootstrapWarning.resourcelimit=insufficient resources
-torlauncher.bootstrapWarning.identity=identity mismatch
-torlauncher.bootstrapWarning.timeout=connection timeout
-torlauncher.bootstrapWarning.noroute=no route to host
-torlauncher.bootstrapWarning.ioerror=read/write error
-torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
+torlauncher.bootstrapWarning.done=narejeno
+torlauncher.bootstrapWarning.connectrefused=povezava zavrnjena
+torlauncher.bootstrapWarning.misc=razno
+torlauncher.bootstrapWarning.resourcelimit=nezadostni viri
+torlauncher.bootstrapWarning.identity=zmešnjava identitet
+torlauncher.bootstrapWarning.timeout=potekel čas povezave
+torlauncher.bootstrapWarning.noroute=ni poti gostitelja
+torlauncher.bootstrapWarning.ioerror=napaka read/write
+torlauncher.bootstrapWarning.pt_missing=manjka vtični promet
torlauncher.nsresult.NS_ERROR_NET_RESET=The connection to the server was lost.
torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Could not connect to the server.
diff --git a/src/chrome/locale/sn/torlauncher.properties b/src/chrome/locale/sn/torlauncher.properties
index 71b7fc0..85bb97c 100644
--- a/src/chrome/locale/sn/torlauncher.properties
+++ b/src/chrome/locale/sn/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/so/torlauncher.properties b/src/chrome/locale/so/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/so/torlauncher.properties
+++ b/src/chrome/locale/so/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/son/torlauncher.properties b/src/chrome/locale/son/torlauncher.properties
index 15a3fc1..ca9774b 100644
--- a/src/chrome/locale/son/torlauncher.properties
+++ b/src/chrome/locale/son/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
diff --git a/src/chrome/locale/sq/torlauncher.properties b/src/chrome/locale/sq/torlauncher.properties
index b74eea0..4993eb9 100644
--- a/src/chrome/locale/sq/torlauncher.properties
+++ b/src/chrome/locale/sq/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Kopjimi u krye. Mesazhet e regjistrit të Tor për %S, janë gati për t'u ngjitur në një redaktues teksti, ose në një mesazh e-poste.
+torlauncher.bootstrapStatus.starting=Po niset
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Krijimi i një lidhje me direktori të shifruar
torlauncher.bootstrapStatus.requesting_status=Rigjetja e statusit të rrjetit
torlauncher.bootstrapStatus.loading_status=Ngarkimi i statusit të rrjetit
torlauncher.bootstrapStatus.loading_keys=Ngarkimi i certifikatave të autoritetit
torlauncher.bootstrapStatus.requesting_descriptors=Kërkimi i informacionit të relesë
torlauncher.bootstrapStatus.loading_descriptors=Ngarkimi i informacionit të relesë
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=I lidhur me rrjetin e Tor!
torlauncher.bootstrapWarning.done=kryer
diff --git a/src/chrome/locale/sr/torlauncher.properties b/src/chrome/locale/sr/torlauncher.properties
index 228a80a..d76ac94 100644
--- a/src/chrome/locale/sr/torlauncher.properties
+++ b/src/chrome/locale/sr/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Копирање завршено. %S Top лог поруке су спремне да буду налепљене у уређивач текста или у поруку у електронској пошти.
+torlauncher.bootstrapStatus.starting=Покрећем
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Успостављање шифроване везе директоријума
torlauncher.bootstrapStatus.requesting_status=Преузимање мрежног статуса
torlauncher.bootstrapStatus.loading_status=Учитавање мрежног статуса
torlauncher.bootstrapStatus.loading_keys=Преузимање сертификата ауторитета
torlauncher.bootstrapStatus.requesting_descriptors=Захтев за пренос информације
torlauncher.bootstrapStatus.loading_descriptors=Учитавање преноса информације
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Повезан са Тор мрежом!
torlauncher.bootstrapWarning.done=ради
diff --git a/src/chrome/locale/sr(a)latin/torlauncher.properties b/src/chrome/locale/sr(a)latin/torlauncher.properties
index c6019c2..6a75211 100644
--- a/src/chrome/locale/sr(a)latin/torlauncher.properties
+++ b/src/chrome/locale/sr(a)latin/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/st/torlauncher.properties b/src/chrome/locale/st/torlauncher.properties
index 15a3fc1..a4d097a 100644
--- a/src/chrome/locale/st/torlauncher.properties
+++ b/src/chrome/locale/st/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/sv/torlauncher.properties b/src/chrome/locale/sv/torlauncher.properties
index 03dfa4d..9c4bb36 100644
--- a/src/chrome/locale/sv/torlauncher.properties
+++ b/src/chrome/locale/sv/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=För hjälp, besök %S
torlauncher.copiedNLogMessages=Kopieringen är färdig. %S meddelanden från Tor-loggen som du kan klistra in i en textredigerare eller ett e-postmeddelande.
+torlauncher.bootstrapStatus.starting=Startar
+torlauncher.bootstrapStatus.conn_pt=Ansluter till bryggan
+torlauncher.bootstrapStatus.conn_done_pt=Ansluten till bryggan
+torlauncher.bootstrapStatus.conn_proxy=Ansluter till proxyservern
+torlauncher.bootstrapStatus.conn_done_proxy=Ansluten till proxyservern
+torlauncher.bootstrapStatus.conn=Ansluter till en Tor-relä
+torlauncher.bootstrapStatus.conn_done=Ansluten till en Tor-relä
+torlauncher.bootstrapStatus.handshake=Förhandlar med en Tor-relä
+torlauncher.bootstrapStatus.handshake_done=Avslutade förhandlingarna med en Tor-relä
torlauncher.bootstrapStatus.onehop_create=Skapar en krypterad kataloganslutning
torlauncher.bootstrapStatus.requesting_status=Hämtar nätverksstatus
torlauncher.bootstrapStatus.loading_status=Läser in nätverksstatus
torlauncher.bootstrapStatus.loading_keys=Läser in auktoritära certifikat
torlauncher.bootstrapStatus.requesting_descriptors=Begär reläinformation
torlauncher.bootstrapStatus.loading_descriptors=Läser in reläinformation
+torlauncher.bootstrapStatus.enough_dirinfo=Färdig inläsning av relä-information
+torlauncher.bootstrapStatus.ap_conn_pt=Bygger kretser: Ansluter till bryggan
+torlauncher.bootstrapStatus.ap_conn_done_pt=Bygger kretser: Ansluten till bryggan
+torlauncher.bootstrapStatus.ap_conn_proxy=Bygger kretsar: Ansluter till proxyservern
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Bygger kretsar: Ansluten till proxyservern
+torlauncher.bootstrapStatus.ap_conn=Bygger kretsar: Ansluter till en Tor-relä
+torlauncher.bootstrapStatus.ap_conn_done=Bygger kretsar: Ansluten till en Tor-relä
+torlauncher.bootstrapStatus.ap_handshake=Bygger kretsar: Förhandlar med en Tor-relä
+torlauncher.bootstrapStatus.ap_handshake_done=Bygger kretsar: Avslutade förhandlingarna med ett Tor-relä
+torlauncher.bootstrapStatus.circuit_create=Bygger kretsar: Upprättar en Tor-krets
torlauncher.bootstrapStatus.done=Ansluten till Tor-nätverket!
torlauncher.bootstrapWarning.done=klar
diff --git a/src/chrome/locale/ta/network-settings.dtd b/src/chrome/locale/ta/network-settings.dtd
index 81f0766..dbb7a00 100644
--- a/src/chrome/locale/ta/network-settings.dtd
+++ b/src/chrome/locale/ta/network-settings.dtd
@@ -1,33 +1,33 @@
<!ENTITY torsettings.dialog.title "Tor நெட்வொர்க் அமைப்புகள்">
-<!ENTITY torsettings.wizard.title.default "Connect to Tor">
+<!ENTITY torsettings.wizard.title.default "Tor உடன் இணை">
<!ENTITY torsettings.wizard.title.configure "Tor நெட்வொர்க் அமைப்புகள்">
-<!ENTITY torsettings.wizard.title.connecting "Establishing a Connection">
+<!ENTITY torsettings.wizard.title.connecting "இணைப்பை நிறுவுகிறது">
<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
-<!ENTITY torlauncher.localePicker.prompt "Please select a language.">
+<!ENTITY torlauncher.localePicker.title "Tor உலாவி மொழி">
+<!ENTITY torlauncher.localePicker.prompt "ஒரு மொழியைத் தேர்ந்தெடுங்கள்.">
<!-- For "first run" wizard: -->
-<!ENTITY torSettings.connectPrompt "Click “Connect” to connect to Tor.">
-<!ENTITY torSettings.configurePrompt "Click “Configure” to adjust network settings if you are in a country that censors Tor (such as Egypt, China, Turkey) or if you are connecting from a private network that requires a proxy.">
+<!ENTITY torSettings.connectPrompt "Tor உடன் இணைக்க "இணையை" கிளிக் செய்யுங்கள்.">
+<!ENTITY torSettings.configurePrompt "நீங்கள் Tor ஐ தணிக்கை செய்யும் (எகிப்து, சீனா, துருக்கி போன்ற) நாடுகளில் இருந்தால் அல்லது பதிலாள் தேவைப்படும் தனிப்பட்ட வலைப்பின்னலில் இருந்தால் பிணைய அமைப்புகளைச் சரிசெய்ய "கட்டமையை" கிளிக் செய்யுங்கள்.">
<!ENTITY torSettings.configure "கட்டமைக்க">
<!ENTITY torSettings.connect "இணைக்க">
<!-- Other: -->
<!ENTITY torsettings.startingTor "Tor தொடங்குவதற்கு காத்திருக்கிறது...">
-<!ENTITY torsettings.restartTor "Restart Tor">
-<!ENTITY torsettings.reconfigTor "Reconfigure">
+<!ENTITY torsettings.restartTor "Tor ஐ மறுதொடக்கு">
+<!ENTITY torsettings.reconfigTor "மறுகட்டமை">
-<!ENTITY torsettings.discardSettings.prompt "You have configured Tor bridges or you have entered local proxy settings.  To make a direct connection to the Tor network, these settings must be removed.">
-<!ENTITY torsettings.discardSettings.proceed "Remove Settings and Connect">
+<!ENTITY torsettings.discardSettings.prompt "நீங்கள் Tor bridges கட்டமைத்துள்ளீர்கள் அல்லது உள் பதிலாள் அமைப்பில் நுழைந்துள்ளீர்கள்.  Tor பிணையத்துடன் நேரடி இணைப்பு ஏற்படுத்த, இந்த அமைப்புகள் நீக்கப்பட வேண்டும்.">
+<!ENTITY torsettings.discardSettings.proceed "அமைப்புகளை நீக்கி இணை">
<!ENTITY torsettings.optional "விருப்பத்தேர்வு">
-<!ENTITY torsettings.useProxy.checkbox "I use a proxy to connect to the Internet">
-<!ENTITY torsettings.useProxy.type "Proxy Type:">
-<!ENTITY torsettings.useProxy.type.placeholder "select a proxy type">
+<!ENTITY torsettings.useProxy.checkbox "நான் இணையத்துடன் இணைய ஒரு பதிலாளைப் பயன்படுத்துகிறேன்">
+<!ENTITY torsettings.useProxy.type "பதிலாள் வகை:">
+<!ENTITY torsettings.useProxy.type.placeholder "ஒரு பதிலாள் வகையைத் தேர்ந்தெடுங்கள்">
<!ENTITY torsettings.useProxy.address "முகவரி:">
<!ENTITY torsettings.useProxy.address.placeholder "IP முகவரி அல்லது ஹோஸ்ட்பெயர்">
<!ENTITY torsettings.useProxy.port "Port:">
@@ -36,27 +36,27 @@
<!ENTITY torsettings.useProxy.type.socks4 "SOCKS 4">
<!ENTITY torsettings.useProxy.type.socks5 "SOCKS 5">
<!ENTITY torsettings.useProxy.type.http "HTTP / HTTPS">
-<!ENTITY torsettings.firewall.checkbox "This computer goes through a firewall that only allows connections to certain ports">
-<!ENTITY torsettings.firewall.allowedPorts "Allowed Ports:">
-<!ENTITY torsettings.useBridges.checkbox "Tor is censored in my country">
-<!ENTITY torsettings.useBridges.default "Select a built-in bridge">
-<!ENTITY torsettings.useBridges.default.placeholder "select a bridge">
-<!ENTITY torsettings.useBridges.bridgeDB "Request a bridge from torproject.org">
-<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Enter the characters from the image">
-<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Get a new challenge">
+<!ENTITY torsettings.firewall.checkbox "இந்த கணினி ஒரு தீயரண் வழியே செல்கிறது அது குறிப்பிட்ட முனைகளுக்கான இணைப்புகளை மட்டுமே அனுமதிக்கிறது">
+<!ENTITY torsettings.firewall.allowedPorts "அனுமதிக்கப்பட்ட முனைகள்:">
+<!ENTITY torsettings.useBridges.checkbox "Tor எனது நாட்டின் தணிக்கையிடப்படுகிறது">
+<!ENTITY torsettings.useBridges.default "ஒரு உள்ளமை bridge தேர்ந்தெடுங்கள்">
+<!ENTITY torsettings.useBridges.default.placeholder "ஒரு bridge தேர்ந்தெடுங்கள்">
+<!ENTITY torsettings.useBridges.bridgeDB "torproject.org இலிருந்து bridge கோருங்கள்">
+<!ENTITY torsettings.useBridges.captchaSolution.placeholder "படத்திலிருக்கும் எழுத்துகளை உள்ளிடுங்கள்">
+<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "ஒரு புதிய சவாலைப் பெறுங்கள்">
<!ENTITY torsettings.useBridges.captchaSubmit "சமர்ப்பி">
-<!ENTITY torsettings.useBridges.custom "Provide a bridge I know">
-<!ENTITY torsettings.useBridges.label "Enter bridge information from a trusted source.">
-<!ENTITY torsettings.useBridges.placeholder "type address:port (one per line)">
+<!ENTITY torsettings.useBridges.custom "எனக்குத் தெரிந்த bridge வழங்கு">
+<!ENTITY torsettings.useBridges.label "நம்பிக்கையான மூலத்திலிருந்து bridge தகவலை உள்ளிடுங்கள்.">
+<!ENTITY torsettings.useBridges.placeholder "முகவரி:முனை தட்டச்சிடுங்கள் (ஒரு வரிசைக்கு ஒன்று)">
<!ENTITY torsettings.copyLog " Tor பதிவுகளை கிளிப்போர்டுக்கு நகலெடு">
-<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
+<!ENTITY torsettings.proxyHelpTitle "பதிலாள் உதவி">
+<!ENTITY torsettings.proxyHelp1 "ஒரு நிறுவனம், பள்ளி அல்லது பல்கலைக்கழக வலைப்பின்னல் வழியே இணைக்கும்போது ஒரு உள் பதிலாள் தேவைப்படலாம். பதிலாள் தேவைப்படுகிறதா என்பது உங்களுக்கு உறுதியாகத் தெரியவில்லையெனில், மற்றொரு உலாவியின் இணைய அமைப்புகளைப் பாருங்கள் அல்லது உங்கள் கணினியின் பிணைய அமைப்புகளைச் சரிபாருங்கள்.">
-<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
-<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
-<!ENTITY torsettings.bridgeHelp2 "Because of how certain countries try to block Tor, certain bridges work in certain countries but not others.  If you are unsure about which bridges work in your country, visit torproject.org/about/contact.html#support">
+<!ENTITY torsettings.bridgeHelpTitle "Bridge தொடர் உதவி">
+<!ENTITY torsettings.bridgeHelp1 "Bridges என்பது பட்டியலிடப்படாத தொடர்கள் ஆகும் அவை Tor பிணையத்திற்கான இணைப்புகளைத் தடுப்பது இன்னும் கடினமாக்குகின்றன.  ஒவ்வொரு வகை bridge உம் தணிக்கையைத் தவிர்க்க வெவ்வேறு முறையைப் பயன்படுத்துகிறது.  obfs உங்கள் போக்குவரத்தை ஒரு சமவாய்ப்பு இரைச்சலாகத் தோன்றச் செய்கிறது, மேலும் Tor க்கு பதிலாக அதன் சேவயைஉடன் இணைப்பது போல் உங்கள் போக்குவரத்தைத் தோன்றச் செய்கிறது.">
+<!ENTITY torsettings.bridgeHelp2 "குறிப்பிட்ட நாடுகள் Tor ஐ எப்படி முடக்க முயற்சிக்கின்றன என்பதைப் பொறுத்து , குறிப்பிட்ட bridges குறிப்பிட்ட நாடுகளில் மட்டுமே வேலை செய்கின்றன.  உங்கள் நாட்டில் எந்த bridges வேலை செய்யும் என்பது உங்களுக்கு உறுதியாகத் தெரியவில்லையெனில், torproject.org/about/contact.html#support பக்கத்தைப் பாருங்கள்">
<!-- Progress -->
<!ENTITY torprogress.pleaseWait "தயவுசெய்து நாங்கள் Tor வலையமைப்புடன் ஒரு இணைப்பு நிறுவும்வரை காத்திருங்கள். 
diff --git a/src/chrome/locale/ta/torlauncher.properties b/src/chrome/locale/ta/torlauncher.properties
index 75cb7d1..92833b9 100644
--- a/src/chrome/locale/ta/torlauncher.properties
+++ b/src/chrome/locale/ta/torlauncher.properties
@@ -42,7 +42,7 @@ torlauncher.no_meek=This browser is not configured for meek, which is needed to
torlauncher.no_bridges_available=No bridges are available at this time. Sorry.
torlauncher.connect=இணைக்க
-torlauncher.restart_tor=Restart Tor
+torlauncher.restart_tor=Tor ஐ மறுதொடக்கு
torlauncher.quit=விடுவி
torlauncher.quit_win=வெளியேறு
torlauncher.done=முடிந்தது
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
diff --git a/src/chrome/locale/te/torlauncher.properties b/src/chrome/locale/te/torlauncher.properties
index 2902bc5..8fdef0f 100644
--- a/src/chrome/locale/te/torlauncher.properties
+++ b/src/chrome/locale/te/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
diff --git a/src/chrome/locale/tg/torlauncher.properties b/src/chrome/locale/tg/torlauncher.properties
index 0014efd..bdc9b73 100644
--- a/src/chrome/locale/tg/torlauncher.properties
+++ b/src/chrome/locale/tg/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/th/torlauncher.properties b/src/chrome/locale/th/torlauncher.properties
index bad1a68..c7d7566 100644
--- a/src/chrome/locale/th/torlauncher.properties
+++ b/src/chrome/locale/th/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=สำหรับความช่วยเหล
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=กำลังสร้างการเชื่อมต่อแบบเข้ารหัสกับคลังเก็บรายชื่อ
torlauncher.bootstrapStatus.requesting_status=กำลังตรวจสถานะเครือข่าย
torlauncher.bootstrapStatus.loading_status=กำลังดึงข้อมูลสถานะเครือข่าย
torlauncher.bootstrapStatus.loading_keys=กำลังดึง ใบรับรองการให้สิทธิ (authority certificates)
torlauncher.bootstrapStatus.requesting_descriptors=กำลังร้องขอข้อมูล relay
torlauncher.bootstrapStatus.loading_descriptors=กำลังดึงข้อมูล relay
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=เชื่อมต่อสู่เครือข่าย Tor เรียบร้อย!
torlauncher.bootstrapWarning.done=สำเร็จ
diff --git a/src/chrome/locale/ti/torlauncher.properties b/src/chrome/locale/ti/torlauncher.properties
index 551323b..c438d31 100644
--- a/src/chrome/locale/ti/torlauncher.properties
+++ b/src/chrome/locale/ti/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/tk/torlauncher.properties b/src/chrome/locale/tk/torlauncher.properties
index 7d7cf4d..7a3e6af 100644
--- a/src/chrome/locale/tk/torlauncher.properties
+++ b/src/chrome/locale/tk/torlauncher.properties
@@ -52,12 +52,15 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
-torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
+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
diff --git a/src/chrome/locale/tr/torlauncher.properties b/src/chrome/locale/tr/torlauncher.properties
index 2eb5514..d51aaf9 100644
--- a/src/chrome/locale/tr/torlauncher.properties
+++ b/src/chrome/locale/tr/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Yardım almak için, %S sayfasına bakabilirsiniz
torlauncher.copiedNLogMessages=Kopyalama tamamlandı. %S Tor günlük iletisi bir metin düzenleyici ya da e-posta iletisine kopyalanmaya hazır.
+torlauncher.bootstrapStatus.starting=Başlatılıyor
+torlauncher.bootstrapStatus.conn_pt=Köprü bağlantısı kuruluyor
+torlauncher.bootstrapStatus.conn_done_pt=Köprü bağlantısı kuruldu
+torlauncher.bootstrapStatus.conn_proxy=Vekil sunucu bağlantısı kuruluyor
+torlauncher.bootstrapStatus.conn_done_proxy=Vekil sunucu bağlantısı kuruldu
+torlauncher.bootstrapStatus.conn=Bir Tor aktarıcısı ile bağlantı kuruluyor
+torlauncher.bootstrapStatus.conn_done=Bir Tor aktarıcısı ile bağlantı kuruldu
+torlauncher.bootstrapStatus.handshake=Bir Tor aktarıcısı ile iletişim kuruluyor
+torlauncher.bootstrapStatus.handshake_done=Bir Tor aktarıcısı ile iletişim kuruldu
torlauncher.bootstrapStatus.onehop_create=Şifrelenmiş dizin bağlantısı kuruluyor
torlauncher.bootstrapStatus.requesting_status=Ağ durumu alınıyor
torlauncher.bootstrapStatus.loading_status=Ağ durumu yükleniyor
torlauncher.bootstrapStatus.loading_keys=Otorite sertifikaları yükleniyor
-torlauncher.bootstrapStatus.requesting_descriptors=Aktarıcı bilgisi isteniyor
-torlauncher.bootstrapStatus.loading_descriptors=Aktarıcı bilgisi yükleniyor
+torlauncher.bootstrapStatus.requesting_descriptors=Aktarıcı bilgileri isteniyor
+torlauncher.bootstrapStatus.loading_descriptors=Aktarıcı bilgileri yükleniyor
+torlauncher.bootstrapStatus.enough_dirinfo=Aktarıcı bilgileri yüklendi
+torlauncher.bootstrapStatus.ap_conn_pt=Devreler hazırlanıyor: Köprü bağlantısı kuruluyor
+torlauncher.bootstrapStatus.ap_conn_done_pt=Devreler hazırlanıyor: Köprü bağlantısı kuruldu
+torlauncher.bootstrapStatus.ap_conn_proxy=Devreler hazırlanıyor: Vekil sunucu bağlantısı kuruluyor
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Devreler hazırlanıyor: Vekil sunucu bağlantısı kuruldu
+torlauncher.bootstrapStatus.ap_conn=Devreler hazırlanıyor: Bir Tor aktarıcısı ile bağlantı kuruluyor
+torlauncher.bootstrapStatus.ap_conn_done=Devreler hazırlanıyor: Bir Tor aktarıcısı ile bağlantı kuruldu
+torlauncher.bootstrapStatus.ap_handshake=Devreler hazırlanıyor: Bir Tor aktarıcısı ile iletişim kuruluyor
+torlauncher.bootstrapStatus.ap_handshake_done=Devreler hazırlanıyor: Bir Tor aktarıcısı ile iletişim kuruldu
+torlauncher.bootstrapStatus.circuit_create=Devreler hazırlanıyor: Bir Tor devresi kuruluyor
torlauncher.bootstrapStatus.done=Tor ağına bağlanıldı!
torlauncher.bootstrapWarning.done=bitti
@@ -68,7 +87,7 @@ torlauncher.bootstrapWarning.identity=kimlik uyuşmazlığı
torlauncher.bootstrapWarning.timeout=bağlantı zaman aşımı
torlauncher.bootstrapWarning.noroute=sunucu yöneltmesi yok
torlauncher.bootstrapWarning.ioerror=okuma/yazma hatası
-torlauncher.bootstrapWarning.pt_missing=takılabilir aktarım bulunamadı
+torlauncher.bootstrapWarning.pt_missing=değiştirilebilir taşıyıcı bulunamadı
torlauncher.nsresult.NS_ERROR_NET_RESET=Sunucu ile bağlantı kesildi.
torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Sunucu ile bağlantı kurulamadı.
diff --git a/src/chrome/locale/uk/torlauncher.properties b/src/chrome/locale/uk/torlauncher.properties
index cd37550..f2f13ac 100644
--- a/src/chrome/locale/uk/torlauncher.properties
+++ b/src/chrome/locale/uk/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Для отримання допомоги, будь
torlauncher.copiedNLogMessages=Копіювання завершено. %S повідомлень журналу tor готові до вставки у текстовий редактор або повідомлення електронної пошти.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Встановлення зашифрованого з'єднання до каталогу
torlauncher.bootstrapStatus.requesting_status=Отримання стану мережі
torlauncher.bootstrapStatus.loading_status=Завантаження стану мережі
torlauncher.bootstrapStatus.loading_keys=Завантаження сертифікатів авторизації
torlauncher.bootstrapStatus.requesting_descriptors=Запит інформації про марщрутизацію
torlauncher.bootstrapStatus.loading_descriptors=Завантаження інформації про маршрутизацію
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Підключений до мережі Tor!
torlauncher.bootstrapWarning.done=виконано
diff --git a/src/chrome/locale/ur/torlauncher.properties b/src/chrome/locale/ur/torlauncher.properties
index 4d1db29..64221ff 100644
--- a/src/chrome/locale/ur/torlauncher.properties
+++ b/src/chrome/locale/ur/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
diff --git a/src/chrome/locale/uz/torlauncher.properties b/src/chrome/locale/uz/torlauncher.properties
index 7699aa2..7d25471 100644
--- a/src/chrome/locale/uz/torlauncher.properties
+++ b/src/chrome/locale/uz/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=For assistance, visit %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
diff --git a/src/chrome/locale/vi/torlauncher.properties b/src/chrome/locale/vi/torlauncher.properties
index e95139a..f2e19d1 100644
--- a/src/chrome/locale/vi/torlauncher.properties
+++ b/src/chrome/locale/vi/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=Nếu cần sự giúp đỡ, ghé qua %S
torlauncher.copiedNLogMessages=Sao chép hoàn tất. %S thông điệp nhật ký của Tor đã sẵn sàng để dán vào một chương trình sửa văn bản hoặc một thông điệp email.
+torlauncher.bootstrapStatus.starting=Bắt đầu
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Thành lập một kết nối thư mục được mã hóa
torlauncher.bootstrapStatus.requesting_status=Khôi phục trạng thái mạng
torlauncher.bootstrapStatus.loading_status=Nap tình trạng mạng
torlauncher.bootstrapStatus.loading_keys=Nạp giấy chứng nhận quyền
torlauncher.bootstrapStatus.requesting_descriptors=Yêu cầu thông tin tiếp sức
torlauncher.bootstrapStatus.loading_descriptors=Tải thông tin tiếp sức
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Kết nối với mạng Tor!
torlauncher.bootstrapWarning.done=làm xong
diff --git a/src/chrome/locale/zh-CN/torlauncher.properties b/src/chrome/locale/zh-CN/torlauncher.properties
index 55c4e54..1eec18d 100644
--- a/src/chrome/locale/zh-CN/torlauncher.properties
+++ b/src/chrome/locale/zh-CN/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=如需帮助,请访问 %S
torlauncher.copiedNLogMessages=复制完成。%S 条 Tor 日志信息已准备好,可以将其粘贴到文本编辑器或电子邮件中。
+torlauncher.bootstrapStatus.starting=正在启动
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=正在建立加密的目录连接
torlauncher.bootstrapStatus.requesting_status=正在检索网络状态
torlauncher.bootstrapStatus.loading_status=正在载入网络状态
torlauncher.bootstrapStatus.loading_keys=正在载入证书颁发机构证书
torlauncher.bootstrapStatus.requesting_descriptors=正在请求中继信息
torlauncher.bootstrapStatus.loading_descriptors=正在载入中继信息
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Tor 网络已经连接!
torlauncher.bootstrapWarning.done=完成
diff --git a/src/chrome/locale/zh-HK/torlauncher.properties b/src/chrome/locale/zh-HK/torlauncher.properties
index 5eb4cf4..f41117e 100644
--- a/src/chrome/locale/zh-HK/torlauncher.properties
+++ b/src/chrome/locale/zh-HK/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=如需協助,請到訪%S
torlauncher.copiedNLogMessages=複製完成。%S Tor洋蔥路由日誌已準備好被貼到文字編輯器或電郵。
+torlauncher.bootstrapStatus.starting=Starting
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=正在建立加密嘅目錄連線
torlauncher.bootstrapStatus.requesting_status=正在取得網絡狀態
torlauncher.bootstrapStatus.loading_status=正在載入網絡狀態
torlauncher.bootstrapStatus.loading_keys=正在載入授權憑證
torlauncher.bootstrapStatus.requesting_descriptors=正在索取轉向站資訊
torlauncher.bootstrapStatus.loading_descriptors=正在載入轉向站資訊
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=已連接到Tor洋蔥路由網絡!
torlauncher.bootstrapWarning.done=完成
diff --git a/src/chrome/locale/zh-TW/torlauncher.properties b/src/chrome/locale/zh-TW/torlauncher.properties
index 43172ee..d363e38 100644
--- a/src/chrome/locale/zh-TW/torlauncher.properties
+++ b/src/chrome/locale/zh-TW/torlauncher.properties
@@ -52,12 +52,31 @@ torlauncher.forAssistance2=若需要協助的話,可以造訪 %S
torlauncher.copiedNLogMessages=複製完成。%S 洋蔥路由紀錄訊息已準備好被貼到文字編輯器或是一封電子郵件訊息。
+torlauncher.bootstrapStatus.starting=啟動中
+torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
+torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
+torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
+torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
+torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
+torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
+torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
+torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=正在建立加密的目錄連線
torlauncher.bootstrapStatus.requesting_status=正在擷取網路狀態
torlauncher.bootstrapStatus.loading_status=正在載入網路狀態
torlauncher.bootstrapStatus.loading_keys=正在載入授權憑證
torlauncher.bootstrapStatus.requesting_descriptors=正在索取中繼節點資訊
torlauncher.bootstrapStatus.loading_descriptors=正在載入中繼節點資訊
+torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
+torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
+torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
+torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
+torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
+torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
+torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
+torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
+torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
+torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=已連接到洋蔥路由網路!
torlauncher.bootstrapWarning.done=完成
1
0

[tor-browser/tor-browser-60.5.1esr-8.5-1] Picking up latest Torbutton changes
by gk@torproject.org 15 Mar '19
by gk@torproject.org 15 Mar '19
15 Mar '19
commit d995a31e7e1f0f264949deb8e5f1048707015532
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Mar 15 07:21:29 2019 +0000
Picking up latest Torbutton changes
---
toolkit/torproject/torbutton | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/toolkit/torproject/torbutton b/toolkit/torproject/torbutton
index e2ca58b2dcda..52c12d905ff4 160000
--- a/toolkit/torproject/torbutton
+++ b/toolkit/torproject/torbutton
@@ -1 +1 @@
-Subproject commit e2ca58b2dcda9e37e94c87bf77f443e103216100
+Subproject commit 52c12d905ff4f6d35d5788b5cc379e474be429e9
1
0

[tor-browser/tor-browser-60.5.1esr-8.5-1] fixup! Bug 25658: Replace security slider with security level UI
by gk@torproject.org 15 Mar '19
by gk@torproject.org 15 Mar '19
15 Mar '19
commit d76b18ccef4ba4cb5be25f8c81b5817610f4d292
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Thu Mar 14 20:03:54 2019 -0400
fixup! Bug 25658: Replace security slider with security level UI
---
browser/app/profile/000-tor-browser.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/browser/app/profile/000-tor-browser.js b/browser/app/profile/000-tor-browser.js
index df4d58e1009a..02757a06af72 100644
--- a/browser/app/profile/000-tor-browser.js
+++ b/browser/app/profile/000-tor-browser.js
@@ -271,7 +271,7 @@ pref("extensions.legacy.exceptions", "{972ce4c6-7e08-4474-a285-3208198ce6fd},tor
pref("extensions.webextensions.restrictedDomains", "");
// Toolbar layout
-pref("browser.uiCustomization.state", "{\"placements\":{\"widget-overflow-fixed-list\":[],\"PersonalToolbar\":[\"personal-bookmarks\"],\"nav-bar\":[\"back-button\",\"forward-button\",\"stop-reload-button\",\"torbutton-button\",\"urlbar-container\",\"downloads-button\",\"security-level-button\"],\"TabsToolbar\":[\"tabbrowser-tabs\",\"new-tab-button\",\"alltabs-button\"],\"toolbar-menubar\":[\"menubar-items\"],\"PanelUI-contents\":[\"home-button\",\"edit-controls\",\"zoom-controls\",\"new-window-button\",\"save-page-button\",\"print-button\",\"bookmarks-menu-button\",\"history-panelmenu\",\"find-button\",\"preferences-button\",\"add-ons-button\",\"developer-button\"],\"addon-bar\":[\"addonbar-closebutton\",\"status-bar\"]},\"seen\":[\"developer-button\",\"https-everywhere-eff_eff_org-browser-action\",\"_73a6fe31-595d-460b-a920-fcc0f8843232_-browser-action\"],\"dirtyAreaCache\":[\"PersonalToolbar\",\"nav-bar\",\"TabsToolbar\",\"toolbar-menubar\"],\"currentVersion\":14,\"newElementCount
\":1}");
+pref("browser.uiCustomization.state", "{\"placements\":{\"widget-overflow-fixed-list\":[],\"PersonalToolbar\":[\"personal-bookmarks\"],\"nav-bar\":[\"back-button\",\"forward-button\",\"stop-reload-button\",\"urlbar-container\",\"downloads-button\",\"torbutton-button\",\"security-level-button\"],\"TabsToolbar\":[\"tabbrowser-tabs\",\"new-tab-button\",\"alltabs-button\"],\"toolbar-menubar\":[\"menubar-items\"],\"PanelUI-contents\":[\"home-button\",\"edit-controls\",\"zoom-controls\",\"new-window-button\",\"save-page-button\",\"print-button\",\"bookmarks-menu-button\",\"history-panelmenu\",\"find-button\",\"preferences-button\",\"add-ons-button\",\"developer-button\"],\"addon-bar\":[\"addonbar-closebutton\",\"status-bar\"]},\"seen\":[\"developer-button\",\"https-everywhere-eff_eff_org-browser-action\",\"_73a6fe31-595d-460b-a920-fcc0f8843232_-browser-action\"],\"dirtyAreaCache\":[\"PersonalToolbar\",\"nav-bar\",\"TabsToolbar\",\"toolbar-menubar\"],\"currentVersion\":14,\"newElementCount
\":1}");
// Putting the search engine prefs into this file to fix #11236.
// Default search engine
1
0

[tor-browser/tor-browser-60.5.1esr-8.5-1] squash! Bug 26961: New user onboarding.
by gk@torproject.org 15 Mar '19
by gk@torproject.org 15 Mar '19
15 Mar '19
commit ea65909a1c1060e544ea56a110f948994e2a3df9
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Mar 12 17:03:10 2019 -0400
squash! Bug 26961: New user onboarding.
Also fix bug 28628: Change onboarding Security panel to open new
Security Level panel.
---
browser/components/uitour/UITour-lib.js | 6 +++---
browser/components/uitour/UITour.jsm | 11 ++++++-----
.../extensions/onboarding/content/onboarding-tour-agent.js | 2 +-
browser/extensions/onboarding/content/onboarding.js | 2 +-
4 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/browser/components/uitour/UITour-lib.js b/browser/components/uitour/UITour-lib.js
index 279b2e48bc85..31a43e39bbff 100644
--- a/browser/components/uitour/UITour-lib.js
+++ b/browser/components/uitour/UITour-lib.js
@@ -791,10 +791,10 @@ if (typeof Mozilla == "undefined") {
};
/**
- * @summary Opens Torbutton's Security Settings (aka the Security Slider).
+ * @summary Opens the Security Level Panel.
*/
- Mozilla.UITour.torBrowserOpenSecuritySettings = function() {
- _sendEvent("torBrowserOpenSecuritySettings");
+ Mozilla.UITour.torBrowserOpenSecurityLevelPanel = function() {
+ _sendEvent("torBrowserOpenSecurityLevelPanel");
};
})();
diff --git a/browser/components/uitour/UITour.jsm b/browser/components/uitour/UITour.jsm
index ce3e20fda662..fd8491eae839 100644
--- a/browser/components/uitour/UITour.jsm
+++ b/browser/components/uitour/UITour.jsm
@@ -46,7 +46,7 @@ const TOR_BROWSER_PAGE_ACTIONS_ALLOWED = new Set([
"showMenu", // restricted to TOR_BROWSER_MENUS_ALLOWED
"hideMenu", // restricted to TOR_BROWSER_MENUS_ALLOWED
"closeTab",
- "torBrowserOpenSecuritySettings",
+ "torBrowserOpenSecurityLevelPanel",
]);
const TOR_BROWSER_TARGETS_ALLOWED = new Set([
@@ -717,10 +717,11 @@ var UITour = {
break;
}
- case "torBrowserOpenSecuritySettings":
- // Ask Torbutton to open the Tor Browser Security Settings.
- Services.obs.notifyObservers(undefined, "TorOpenSecuritySettings",
- undefined);
+ case "torBrowserOpenSecurityLevelPanel":
+ let securityLevelButton =
+ window.document.getElementById("security-level-button");
+ if (securityLevelButton)
+ securityLevelButton.doCommand();
break;
}
diff --git a/browser/extensions/onboarding/content/onboarding-tour-agent.js b/browser/extensions/onboarding/content/onboarding-tour-agent.js
index b373c5e0ef01..a08320d0535a 100644
--- a/browser/extensions/onboarding/content/onboarding-tour-agent.js
+++ b/browser/extensions/onboarding/content/onboarding-tour-agent.js
@@ -19,7 +19,7 @@ let onCanSetDefaultBrowserInBackground = () => {
let onClick = evt => {
switch (evt.target.id) {
case "onboarding-tour-tor-security-button":
- Mozilla.UITour.torBrowserOpenSecuritySettings();
+ Mozilla.UITour.torBrowserOpenSecurityLevelPanel();
break;
#if 0
// Firefox onboarding actions. To reduce conflicts when rebasing against
diff --git a/browser/extensions/onboarding/content/onboarding.js b/browser/extensions/onboarding/content/onboarding.js
index 5cb81852bb73..8f62e4f3b9d8 100644
--- a/browser/extensions/onboarding/content/onboarding.js
+++ b/browser/extensions/onboarding/content/onboarding.js
@@ -181,7 +181,7 @@ var onboardingTourset = {
"onboarding.tour-tor-security.title", "onboarding.tour-tor-security.description");
createOnboardingTourContent(div, "resource://onboarding/img/figure_tor-security.png");
createOnboardingTourButton(div,
- "onboarding-tour-tor-security-button", "onboarding.tour-tor-security.button");
+ "onboarding-tour-tor-security-button", "onboarding.tour-tor-security-level.button");
return div;
},
1
0

[tor-browser/tor-browser-60.5.1esr-8.5-1] Bug 25658: Replace security slider with security level UI
by gk@torproject.org 15 Mar '19
by gk@torproject.org 15 Mar '19
15 Mar '19
commit a7ba005d5398a29d95320a5e8c02bf050e58f08b
Author: Richard Pospesel <richard(a)torproject.org>
Date: Mon Mar 4 16:09:51 2019 -0800
Bug 25658: Replace security slider with security level UI
This patch adds a new 'securitylevel' component to Tor Browser intended
to replace the torbutton 'Security Slider'.
This component adds a new Security Level toolbar button which visually
indicates the current global security level via icon (as defined by the
extensions.torbutton.security_slider pref), a drop-down hanger with a
short description of the current security level, and a new section in
the about:preferences#privacy page where users can change their current
security level. In addition, the hanger and the preferences page will
show a visual warning when the user has modified prefs associated with
the security level and provide a one-click 'Restore Defaults' button to
get the user back on recommended settings.
Strings used by this patch are pulled from the torbutton extension, but
en-US defaults are provided if there is an error loading from the
extension. With this patch applied, the usual work-flow of "./mach build
&& ./mach run" work as expected, even if the torbutton extension is
disabled.
---
browser/app/profile/000-tor-browser.js | 2 +-
browser/base/content/browser.js | 7 +
browser/base/content/browser.xul | 5 +
browser/components/moz.build | 1 +
.../preferences/in-content/preferences.js | 18 +-
.../preferences/in-content/preferences.xul | 1 +
.../components/preferences/in-content/privacy.js | 15 +
.../components/preferences/in-content/privacy.xul | 2 +
.../securitylevel/content/securityLevel.js | 528 +++++++++++++++++++++
.../securitylevel/content/securityLevelButton.css | 9 +
.../content/securityLevelButton.inc.xul | 5 +
.../securitylevel/content/securityLevelButton.svg | 21 +
.../securitylevel/content/securityLevelPanel.css | 82 ++++
.../content/securityLevelPanel.inc.xul | 33 ++
.../content/securityLevelPreferences.css | 26 +
.../content/securityLevelPreferences.inc.xul | 66 +++
browser/components/securitylevel/jar.mn | 6 +
browser/components/securitylevel/moz.build | 1 +
18 files changed, 823 insertions(+), 5 deletions(-)
diff --git a/browser/app/profile/000-tor-browser.js b/browser/app/profile/000-tor-browser.js
index a0b370c73279..df4d58e1009a 100644
--- a/browser/app/profile/000-tor-browser.js
+++ b/browser/app/profile/000-tor-browser.js
@@ -271,7 +271,7 @@ pref("extensions.legacy.exceptions", "{972ce4c6-7e08-4474-a285-3208198ce6fd},tor
pref("extensions.webextensions.restrictedDomains", "");
// Toolbar layout
-pref("browser.uiCustomization.state", "{\"placements\":{\"widget-overflow-fixed-list\":[],\"PersonalToolbar\":[\"personal-bookmarks\"],\"nav-bar\":[\"torbutton-button\",\"back-button\",\"forward-button\",\"stop-reload-button\",\"urlbar-container\",\"downloads-button\",\"_73a6fe31-595d-460b-a920-fcc0f8843232_-browser-action\"],\"TabsToolbar\":[\"tabbrowser-tabs\",\"new-tab-button\",\"alltabs-button\"],\"toolbar-menubar\":[\"menubar-items\"],\"PanelUI-contents\":[\"home-button\",\"edit-controls\",\"zoom-controls\",\"new-window-button\",\"save-page-button\",\"print-button\",\"bookmarks-menu-button\",\"history-panelmenu\",\"find-button\",\"preferences-button\",\"add-ons-button\",\"developer-button\",\"https-everywhere-button\"],\"addon-bar\":[\"addonbar-closebutton\",\"status-bar\"]},\"seen\":[\"developer-button\",\"https-everywhere_eff_org-browser-action\",\"_73a6fe31-595d-460b-a920-fcc0f8843232_-browser-action\"],\"dirtyAreaCache\":[\"PersonalToolbar\",\"nav-bar\",\"TabsToolbar\",\"to
olbar-menubar\"],\"currentVersion\":14,\"newElementCount\":1}");
+pref("browser.uiCustomization.state", "{\"placements\":{\"widget-overflow-fixed-list\":[],\"PersonalToolbar\":[\"personal-bookmarks\"],\"nav-bar\":[\"back-button\",\"forward-button\",\"stop-reload-button\",\"torbutton-button\",\"urlbar-container\",\"downloads-button\",\"security-level-button\"],\"TabsToolbar\":[\"tabbrowser-tabs\",\"new-tab-button\",\"alltabs-button\"],\"toolbar-menubar\":[\"menubar-items\"],\"PanelUI-contents\":[\"home-button\",\"edit-controls\",\"zoom-controls\",\"new-window-button\",\"save-page-button\",\"print-button\",\"bookmarks-menu-button\",\"history-panelmenu\",\"find-button\",\"preferences-button\",\"add-ons-button\",\"developer-button\"],\"addon-bar\":[\"addonbar-closebutton\",\"status-bar\"]},\"seen\":[\"developer-button\",\"https-everywhere-eff_eff_org-browser-action\",\"_73a6fe31-595d-460b-a920-fcc0f8843232_-browser-action\"],\"dirtyAreaCache\":[\"PersonalToolbar\",\"nav-bar\",\"TabsToolbar\",\"toolbar-menubar\"],\"currentVersion\":14,\"newElementCount
\":1}");
// Putting the search engine prefs into this file to fix #11236.
// Default search engine
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
index 4d15249afa97..16e712be0ba3 100644
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -116,6 +116,8 @@ XPCOMUtils.defineLazyScriptGetter(this, ["DownloadsPanel",
XPCOMUtils.defineLazyScriptGetter(this, ["DownloadsButton",
"DownloadsIndicatorView"],
"chrome://browser/content/downloads/indicator.js");
+XPCOMUtils.defineLazyScriptGetter(this, ["SecurityLevelButton"],
+ "chrome://browser/content/securitylevel/securityLevel.js");
XPCOMUtils.defineLazyScriptGetter(this, "gEditItemOverlay",
"chrome://browser/content/places/editBookmarkOverlay.js");
if (AppConstants.NIGHTLY_BUILD) {
@@ -1328,6 +1330,9 @@ var gBrowserInit = {
// doesn't flicker as the window is being shown.
DownloadsButton.init();
+ // Init the SecuritySettingsButton
+ SecurityLevelButton.init();
+
// Certain kinds of automigration rely on this notification to complete
// their tasks BEFORE the browser window is shown. SessionStore uses it to
// restore tabs into windows AFTER important parts like gMultiProcessBrowser
@@ -1899,6 +1904,8 @@ var gBrowserInit = {
DownloadsButton.uninit();
+ SecurityLevelButton.uninit();
+
gAccessibilityServiceIndicator.uninit();
LanguagePrompt.uninit();
diff --git a/browser/base/content/browser.xul b/browser/base/content/browser.xul
index 4d8496bbcf24..dac6fcbddf05 100644
--- a/browser/base/content/browser.xul
+++ b/browser/base/content/browser.xul
@@ -8,6 +8,8 @@
<?xml-stylesheet href="chrome://browser/content/browser.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/content/downloads/downloads.css"?>
+<?xml-stylesheet href="chrome://browser/content/securitylevel/securityLevelPanel.css"?>
+<?xml-stylesheet href="chrome://browser/content/securitylevel/securityLevelButton.css"?>
<?xml-stylesheet href="chrome://browser/content/places/places.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/content/usercontext/usercontext.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/skin/controlcenter/panel.css" type="text/css"?>
@@ -500,6 +502,7 @@
#include ../../components/customizableui/content/panelUI.inc.xul
#include ../../components/controlcenter/content/panel.inc.xul
#include ../../components/downloads/content/downloadsPanel.inc.xul
+#include ../../components/securitylevel/content/securityLevelPanel.inc.xul
<hbox id="downloads-animation-container" mousethrough="always">
<vbox id="downloads-notification-anchor" hidden="true">
@@ -954,6 +957,8 @@
</stack>
</toolbarbutton>
+#include ../../components/securitylevel/content/securityLevelButton.inc.xul
+
<toolbarbutton id="library-button" class="toolbarbutton-1 chromeclass-toolbar-additional subviewbutton-nav"
removable="true"
onmousedown="PanelUI.showSubView('appMenu-libraryView', this, event);"
diff --git a/browser/components/moz.build b/browser/components/moz.build
index 587d433eee4d..1ce83d3afb8b 100644
--- a/browser/components/moz.build
+++ b/browser/components/moz.build
@@ -49,6 +49,7 @@ DIRS += [
'privatebrowsing',
'resistfingerprinting',
'search',
+ 'securitylevel',
'sessionstore',
'shell',
'syncedtabs',
diff --git a/browser/components/preferences/in-content/preferences.js b/browser/components/preferences/in-content/preferences.js
index 3da7d9f26403..e195d30061bc 100644
--- a/browser/components/preferences/in-content/preferences.js
+++ b/browser/components/preferences/in-content/preferences.js
@@ -224,10 +224,20 @@ async function spotlight(subcategory) {
}
if (subcategory) {
if (!gSearchResultsPane.categoriesInitialized) {
- await waitForSystemAddonInjectionsFinished([{
- isGoingToInject: formAutofillParent.initialized,
- elementId: "formAutofillGroup",
- }]);
+ // fix for tor #29554
+ // for some reason this code throws an exception when called and
+ // prevents the scrollAndHighlight code from running so we
+ // swallow the exception here
+ //
+ // This entire block has been removed and/or refactored as part of
+ // mozilla #1520350 (commit d524c53377c22913cac387ad77b803aaf4fb754e)
+ // on 2019/01/28
+ try {
+ await waitForSystemAddonInjectionsFinished([{
+ isGoingToInject: formAutofillParent.initialized,
+ elementId: "formAutofillGroup",
+ }]);
+ } catch (e) { }
}
scrollAndHighlight(subcategory);
}
diff --git a/browser/components/preferences/in-content/preferences.xul b/browser/components/preferences/in-content/preferences.xul
index 91e1cf94ebb4..7a606d76a42a 100644
--- a/browser/components/preferences/in-content/preferences.xul
+++ b/browser/components/preferences/in-content/preferences.xul
@@ -15,6 +15,7 @@
<?xml-stylesheet href="chrome://browser/skin/preferences/in-content/search.css"?>
<?xml-stylesheet href="chrome://browser/skin/preferences/in-content/containers.css"?>
<?xml-stylesheet href="chrome://browser/skin/preferences/in-content/privacy.css"?>
+<?xml-stylesheet href="chrome://browser/content/securitylevel/securityLevelPreferences.css"?>
<!DOCTYPE page [
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd">
diff --git a/browser/components/preferences/in-content/privacy.js b/browser/components/preferences/in-content/privacy.js
index e22624c82e0b..d2229d136261 100644
--- a/browser/components/preferences/in-content/privacy.js
+++ b/browser/components/preferences/in-content/privacy.js
@@ -21,6 +21,9 @@ ChromeUtils.defineModuleGetter(this, "SiteDataManager",
XPCOMUtils.defineLazyPreferenceGetter(this, "trackingprotectionUiEnabled",
"privacy.trackingprotection.ui.enabled");
+XPCOMUtils.defineLazyScriptGetter(this, ["SecurityLevelPreferences"],
+ "chrome://browser/content/securitylevel/securityLevel.js");
+
ChromeUtils.import("resource://gre/modules/PrivateBrowsingUtils.jsm");
const PREF_UPLOAD_ENABLED = "datareporting.healthreport.uploadEnabled";
@@ -150,6 +153,17 @@ var gPrivacyPane = {
},
/**
+ * Show the Security Level UI
+ */
+ _initSecurityLevel() {
+ SecurityLevelPreferences.init();
+ let unload = () => {
+ window.removeEventListener("unload", unload);
+ SecurityLevelPreferences.uninit();
+ };
+ },
+
+ /**
* Linkify the Learn More link of the Private Browsing Mode Tracking
* Protection UI.
*/
@@ -245,6 +259,7 @@ var gPrivacyPane = {
this.updatePrivacyMicroControls();
this.initAutoStartPrivateBrowsingReverter();
this._initTrackingProtection();
+ this._initSecurityLevel();
this._initTrackingProtectionPBM();
this._initTrackingProtectionExtensionControl();
this._initAutocomplete();
diff --git a/browser/components/preferences/in-content/privacy.xul b/browser/components/preferences/in-content/privacy.xul
index a5f3d25193c5..81e5d5b5079c 100644
--- a/browser/components/preferences/in-content/privacy.xul
+++ b/browser/components/preferences/in-content/privacy.xul
@@ -583,6 +583,8 @@
<label class="header-name" flex="1">&security.label;</label>
</hbox>
+#include ../../securitylevel/content/securityLevelPreferences.inc.xul
+
<!-- addons, forgery (phishing) UI Security -->
<groupbox id="browsingProtectionGroup" data-category="panePrivacy" hidden="true">
<caption><label>&browsingProtection.label;</label></caption>
diff --git a/browser/components/securitylevel/content/securityLevel.js b/browser/components/securitylevel/content/securityLevel.js
new file mode 100644
index 000000000000..405d38839da0
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevel.js
@@ -0,0 +1,528 @@
+"use strict";
+
+ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
+ChromeUtils.import("resource://gre/modules/Services.jsm");
+
+XPCOMUtils.defineLazyModuleGetters(this, {
+ CustomizableUI: "resource:///modules/CustomizableUI.jsm",
+ PanelMultiView: "resource:///modules/PanelMultiView.jsm",
+});
+
+/*
+ Security Level Strings
+
+ Strings loaded from torbutton, but en-US defaults provided in case torbutton addon not enabled
+*/
+XPCOMUtils.defineLazyGetter(this, "SecurityLevelStrings", function() {
+ let sls = null;
+ try {
+ sls = Services.strings.createBundle("chrome://torbutton/locale/securityLevel.properties");
+ } catch(e) { }
+
+ // tries to get the given key from the string bundle, return fallback on failure
+ let getString = function(key, fallback) {
+ let retval = "";
+ if (sls) {
+ try {
+ retval = sls.GetStringFromName(key);
+ } catch(e) { }
+ }
+ if (retval == "") {
+ retval = fallback;
+ }
+ return retval;
+ };
+
+ // read localized strings from torbutton; but use hard-coded en-US strings as fallbacks in case of error
+ let retval = {
+ securityLevel : getString("securityLevel.securityLevel", "Security Level"),
+ customWarning : getString("securityLevel.customWarning", "Custom"),
+ overview : getString("securityLevel.overview", "Disable certain web features that can be used to attack your security and anonymity."),
+ standard : {
+ level : getString("securityLevel.standard.level", "Standard"),
+ tooltip : getString("securityLevel.standard.tooltip", "Security Level : Standard"),
+ summary : getString("securityLevel.standard.summary", "All Tor Browser and website features are enabled."),
+ },
+ safer : {
+ level : getString("securityLevel.safer.level", "Safer"),
+ tooltip : getString("securityLevel.safer.tooltip", "Security Level : Safer"),
+ summary : getString("securityLevel.safer.summary", "Disables website features that are often dangerous, causing some sites to lose functionality."),
+ description1 : getString("securityLevel.safer.description1", "JavaScript is disabled on non-HTTPS sites."),
+ description2 : getString("securityLevel.safer.description2", "Some fonts and math symbols are disabled."),
+ description3 : getString("securityLevel.safer.description3", "Audio and video (HTML5 media) are click-to-play."),
+ },
+ safest : {
+ level : getString("securityLevel.safest.level", "Safest"),
+ tooltip : getString("securityLevel.safest.tooltip", "Security Level : Safest"),
+ summary : getString("securityLevel.safest.summary", "Only allows website features required for static sites and basic services. These changes affect images, media, and scripts."),
+ description1 : getString("securityLevel.safest.description1", "JavaScript is disabled by default on all sites."),
+ description2 : getString("securityLevel.safest.description2", "Some fonts, icons, math symbols, and images are disabled."),
+ description3 : getString("securityLevel.safest.description3", "Audio and video (HTML5 media) are click-to-play."),
+ },
+ custom : {
+ summary : getString("securityLevel.custom.summary", "Your custom browser preferences have resulted in unusual security settings. For security and privacy reasons, we recommend you choose one of the default security levels."),
+ },
+ learnMore : getString("securityLevel.learnMore", "Learn more"),
+ learnMoreURL : function() {
+ let locale = "";
+ try {
+ let { getLocale } =
+ Cu.import("resource://torbutton/modules/utils.js", {});
+ locale = getLocale();
+ } catch(e) {}
+
+ if (locale == "") {
+ locale = "en-US";
+ }
+
+ return "https://tb-manual.torproject.org/" + locale + "/security-settings.html";
+ }(),
+ restoreDefaults : getString("securityLevel.restoreDefaults", "Restore Defaults"),
+ advancedSecuritySettings : getString("securityLevel.advancedSecuritySettings", "Advanced Security Settings\u2026"),
+ };
+
+
+ return retval;
+});
+
+
+/*
+ Security Level Prefs
+
+ Getters and Setters for relevant torbutton prefs
+*/
+const SecurityLevelPrefs = {
+ security_slider_pref : "extensions.torbutton.security_slider",
+ security_custom_pref : "extensions.torbutton.security_custom",
+
+ get securitySlider() {
+ try {
+ return Services.prefs.getIntPref(this.security_slider_pref);
+ } catch(e) {
+ // init pref to 4 (standard)
+ const val = 4;
+ Services.prefs.setIntPref(this.security_slider_pref, val);
+ return val;
+ }
+ },
+
+ set securitySlider(val) {
+ Services.prefs.setIntPref(this.security_slider_pref, val);
+ },
+
+ get securityCustom() {
+ try {
+ return Services.prefs.getBoolPref(this.security_custom_pref);
+ } catch(e) {
+ // init custom to false
+ const val = false;
+ Services.prefs.setBoolPref(this.security_custom_pref, val);
+ return val;
+ }
+ },
+
+ set securityCustom(val) {
+ Services.prefs.setBoolPref(this.security_custom_pref, val);
+ },
+};
+
+/*
+ Security Level Button Code
+
+ Controls init and update of the security level toolbar button
+*/
+
+const SecurityLevelButton = {
+ _securityPrefsBranch : null,
+
+ _populateXUL : function(securityLevelButton) {
+ if (securityLevelButton != null) {
+ securityLevelButton.setAttribute("tooltiptext", SecurityLevelStrings.securityLevel);
+ securityLevelButton.setAttribute("label", SecurityLevelStrings.securityLevel);
+ }
+ },
+
+ _configUIFromPrefs : function(securityLevelButton) {
+ if (securityLevelButton != null) {
+ let securitySlider = SecurityLevelPrefs.securitySlider;
+ let classList = securityLevelButton.classList;
+ classList.remove("standard", "safer", "safest");
+ switch(securitySlider) {
+ case 4:
+ classList.add("standard");
+ securityLevelButton.setAttribute("tooltiptext", SecurityLevelStrings.standard.tooltip);
+ break;
+ case 2:
+ classList.add("safer");
+ securityLevelButton.setAttribute("tooltiptext", SecurityLevelStrings.safer.tooltip);
+ break;
+ case 1:
+ classList.add("safest");
+ securityLevelButton.setAttribute("tooltiptext", SecurityLevelStrings.safest.tooltip);
+ break;
+ }
+ }
+ },
+
+ init : function() {
+ // set the initial class based off of the current pref
+ let button = document.getElementById("security-level-button");
+ this._populateXUL(button);
+ this._configUIFromPrefs(button);
+
+ this._securityPrefsBranch = Services.prefs.getBranch("extensions.torbutton.");
+ this._securityPrefsBranch.addObserver("", this, false);
+
+ CustomizableUI.addListener(this);
+
+ SecurityLevelPanel.init();
+ },
+
+ uninit : function() {
+ CustomizableUI.removeListener(this);
+
+ this._securityPrefsBranch.removeObserver("", this);
+ this._securityPrefsBranch = null;
+
+ SecurityLevelPanel.uninit();
+ },
+
+ observe : function(subject, topic, data) {
+ switch(topic) {
+ case "nsPref:changed":
+ if (data == "security_slider") {
+ this._configUIFromPrefs(document.getElementById("security-level-button"));
+ }
+ break;
+ }
+ },
+
+ // callbacks for entering the 'Customize Firefox' screen to set icon
+ onCustomizeStart : function(window) {
+ let navigatorToolbox = document.getElementById("navigator-toolbox");
+ let button = navigatorToolbox.palette.querySelector("#security-level-button");
+ this._populateXUL(button);
+ this._configUIFromPrefs(button);
+ },
+
+ // callback when CustomizableUI modifies DOM
+ onWidgetAfterDOMChange : function(aNode, aNextNode, aContainer, aWasRemoval) {
+ if (aNode.id == "security-level-button" && !aWasRemoval) {
+ this._populateXUL(aNode);
+ this._configUIFromPrefs(aNode);
+ }
+ },
+
+ // when toolbar button is pressed
+ onCommand : function(anchor, event) {
+ SecurityLevelPanel.show(anchor);
+ },
+};
+
+/*
+ Security Level Panel Code
+
+ Controls init and update of the panel in the security level hanger
+*/
+
+const SecurityLevelPanel = {
+ _securityPrefsBranch : null,
+ _panel : null,
+ _anchor : null,
+ _populated : false,
+
+ _populateXUL : function() {
+ // get the panel elements we need to populate
+ let panelview = document.getElementById("securityLevel-panelview");
+ let labelHeader = panelview.querySelector("#securityLevel-header");
+ let labelCustomWarning = panelview.querySelector("#securityLevel-customWarning")
+ let labelLearnMore = panelview.querySelector("#securityLevel-learnMore");
+ let buttonRestoreDefaults = panelview.querySelector("#securityLevel-restoreDefaults");
+ let buttonAdvancedSecuritySettings = panelview.querySelector("#securityLevel-advancedSecuritySettings");
+
+ labelHeader.setAttribute("value", SecurityLevelStrings.securityLevel);
+ labelCustomWarning.setAttribute("value", SecurityLevelStrings.customWarning);
+ labelLearnMore.setAttribute("value", SecurityLevelStrings.learnMore);
+ labelLearnMore.setAttribute("href", SecurityLevelStrings.learnMoreURL);
+ buttonRestoreDefaults.setAttribute("label", SecurityLevelStrings.restoreDefaults);
+ buttonAdvancedSecuritySettings.setAttribute("label", SecurityLevelStrings.advancedSecuritySettings);
+
+ // rest of the XUL is set based on security prefs
+ this._configUIFromPrefs();
+
+ this._populated = true;
+ },
+
+ _configUIFromPrefs : function() {
+ // get security prefs
+ let securitySlider = SecurityLevelPrefs.securitySlider;
+ let securityCustom = SecurityLevelPrefs.securityCustom;
+
+ // get the panel elements we need to populate
+ let panelview = document.getElementById("securityLevel-panelview");
+ let labelLevel = panelview.querySelector("#securityLevel-level");
+ let labelCustomWarning = panelview.querySelector("#securityLevel-customWarning")
+ let summary = panelview.querySelector("#securityLevel-summary");
+ let buttonRestoreDefaults = panelview.querySelector("#securityLevel-restoreDefaults");
+ let buttonAdvancedSecuritySettings = panelview.querySelector("#securityLevel-advancedSecuritySettings");
+
+ // only visible when user is using custom settings
+ labelCustomWarning.hidden = !securityCustom;
+ buttonRestoreDefaults.hidden = !securityCustom;
+
+ // Descriptions change based on security level
+ switch(securitySlider) {
+ // standard
+ case 4:
+ labelLevel.setAttribute("value", SecurityLevelStrings.standard.level);
+ summary.textContent = SecurityLevelStrings.standard.summary;
+ break;
+ // safer
+ case 2:
+ labelLevel.setAttribute("value", SecurityLevelStrings.safer.level);
+ summary.textContent = SecurityLevelStrings.safer.summary;
+ break;
+ // safest
+ case 1:
+ labelLevel.setAttribute("value", SecurityLevelStrings.safest.level);
+ summary.textContent = SecurityLevelStrings.safest.summary;
+ break;
+ }
+
+ // override the summary text with custom warning
+ if (securityCustom) {
+ summary.textContent = SecurityLevelStrings.custom.summary;
+ }
+ },
+
+ init : function() {
+ this._securityPrefsBranch = Services.prefs.getBranch("extensions.torbutton.");
+ this._securityPrefsBranch.addObserver("", this, false);
+ },
+
+ uninit : function() {
+ this._securityPrefsBranch.removeObserver("", this);
+ this._securityPrefsBranch = null;
+ },
+
+ show : function(anchor) {
+ // we have to defer this until after the browser has finished init'ing before
+ // we can populate the panel
+ if (!this._populated) {
+ this._populateXUL();
+ }
+
+ // save off anchor in case we want to show from our own code
+ this._anchor = anchor;
+
+ let panel = document.getElementById("securityLevel-panel");
+ panel.hidden = false;
+ PanelMultiView.openPopup(panel, anchor, "bottomcenter topright",
+ 0, 0, false, null).catch(Cu.reportError);
+ },
+
+ hide : function() {
+ let panel = document.getElementById("securityLevel-panel");
+ PanelMultiView.hidePopup(panel);
+ },
+
+ // when prefs change
+ observe : function(subject, topic, data) {
+ switch(topic) {
+ case "nsPref:changed":
+ if (data == "security_slider" || data == "security_custom") {
+ this._configUIFromPrefs();
+ }
+ break;
+ }
+ },
+
+ restoreDefaults : function() {
+ SecurityLevelPrefs.securityCustom = false;
+ // hide and reshow so that layout re-renders properly
+ this.hide();
+ this.show(this._anchor);
+ },
+
+ openAdvancedSecuritySettings : async function() {
+ openPreferences("privacy-securitylevel");
+ this.hide();
+ }
+};
+
+/*
+ Security Level Preferences Code
+
+ Code to handle init and update of security level section in about:preferences#privacy
+*/
+
+const SecurityLevelPreferences =
+{
+ _securityPrefsBranch : null,
+
+ _populateXUL : function() {
+ let groupbox = document.getElementById("securityLevel-groupbox");
+
+ let labelHeader = groupbox.querySelector("#securityLevel-header");
+ labelHeader.setAttribute("value", SecurityLevelStrings.securityLevel);
+
+ let spanOverview = groupbox.querySelector("#securityLevel-overview");
+ spanOverview.textContent = SecurityLevelStrings.overview;
+
+ let labelLearnMore = groupbox.querySelector("#securityLevel-learnMore");
+ labelLearnMore.setAttribute("value", SecurityLevelStrings.learnMore);
+ labelLearnMore.setAttribute("href", SecurityLevelStrings.learnMoreURL);
+
+ let populateRadioElements = function(vboxQuery, stringStruct) {
+ let vbox = groupbox.querySelector(vboxQuery);
+
+ let radio = vbox.querySelector("radio");
+ radio.setAttribute("label", stringStruct.level);
+
+ let customWarning = vbox.querySelector("#securityLevel-customWarning");
+ customWarning.setAttribute("value", SecurityLevelStrings.customWarning);
+
+ let labelSummary = vbox.querySelector("#securityLevel-summary");
+ labelSummary.textContent = stringStruct.summary;
+
+ let labelRestoreDefaults = vbox.querySelector("#securityLevel-restoreDefaults");
+ labelRestoreDefaults.setAttribute("value", SecurityLevelStrings.restoreDefaults);
+
+ let description1 = vbox.querySelector("#securityLevel-description1");
+ if (description1) {
+ description1.textContent = stringStruct.description1;
+ }
+ let description2 = vbox.querySelector("#securityLevel-description2");
+ if (description2) {
+ description2.textContent = stringStruct.description2;
+ }
+ let description3 = vbox.querySelector("#securityLevel-description3");
+ if (description3) {
+ description3.textContent = stringStruct.description3;
+ }
+ };
+
+ populateRadioElements("#securityLevel-vbox-standard", SecurityLevelStrings.standard);
+ populateRadioElements("#securityLevel-vbox-safer", SecurityLevelStrings.safer);
+ populateRadioElements("#securityLevel-vbox-safest", SecurityLevelStrings.safest);
+ },
+
+ _configUIFromPrefs : function() {
+ // read our prefs
+ let securitySlider = SecurityLevelPrefs.securitySlider;
+ let securityCustom = SecurityLevelPrefs.securityCustom;
+
+ // get our elements
+ let groupbox = document.getElementById("securityLevel-groupbox");
+
+ let radiogroup = groupbox.querySelector("#securityLevel-radiogroup");
+ let labelStandardCustom = groupbox.querySelector("#securityLevel-vbox-standard label#securityLevel-customWarning");
+ let labelSaferCustom = groupbox.querySelector("#securityLevel-vbox-safer label#securityLevel-customWarning");
+ let labelSafestCustom = groupbox.querySelector("#securityLevel-vbox-safest label#securityLevel-customWarning");
+ let labelStandardRestoreDefaults = groupbox.querySelector("#securityLevel-vbox-standard label#securityLevel-restoreDefaults");
+ let labelSaferRestoreDefaults = groupbox.querySelector("#securityLevel-vbox-safer label#securityLevel-restoreDefaults");
+ let labelSafestRestoreDefaults = groupbox.querySelector("#securityLevel-vbox-safest label#securityLevel-restoreDefaults");
+
+ // hide custom label by default until we know which level we're at
+ labelStandardCustom.hidden = true;
+ labelSaferCustom.hidden = true;
+ labelSafestCustom.hidden = true;
+
+ labelStandardRestoreDefaults.hidden = true;
+ labelSaferRestoreDefaults.hidden = true;
+ labelSafestRestoreDefaults.hidden = true;
+
+ switch(securitySlider) {
+ // standard
+ case 4:
+ radiogroup.value = "standard";
+ labelStandardCustom.hidden = !securityCustom;
+ labelStandardRestoreDefaults.hidden = !securityCustom;
+ break;
+ // safer
+ case 2:
+ radiogroup.value = "safer";
+ labelSaferCustom.hidden = !securityCustom;
+ labelSaferRestoreDefaults.hidden = !securityCustom;
+ break;
+ // safest
+ case 1:
+ radiogroup.value = "safest";
+ labelSafestCustom.hidden = !securityCustom;
+ labelSafestRestoreDefaults.hidden = !securityCustom;
+ break;
+ }
+ },
+
+ init : function() {
+ // populate XUL with localized strings
+ this._populateXUL();
+
+ // read prefs and populate UI
+ this._configUIFromPrefs();
+
+ // register for pref chagnes
+ this._securityPrefsBranch = Services.prefs.getBranch("extensions.torbutton.");
+ this._securityPrefsBranch.addObserver("", this, false);
+ },
+
+ uninit : function() {
+ // unregister for pref change events
+ this._securityPrefsBranch.removeObserver("", this);
+ this._securityPrefsBranch = null;
+ },
+
+ // callback for when prefs change
+ observe : function(subject, topic, data) {
+ switch(topic) {
+ case "nsPref:changed":
+ if (data == "security_slider" ||
+ data == "security_custom") {
+ this._configUIFromPrefs();
+ }
+ break;
+ }
+ },
+
+ selectSecurityLevel : function() {
+ // radio group elements
+ let radiogroup = document.getElementById("securityLevel-radiogroup");
+
+ // update pref based on selected radio option
+ switch (radiogroup.value) {
+ case "standard":
+ SecurityLevelPrefs.securitySlider = 4;
+ break;
+ case "safer":
+ SecurityLevelPrefs.securitySlider = 2;
+ break;
+ case "safest":
+ SecurityLevelPrefs.securitySlider = 1;
+ break;
+ }
+
+ this.restoreDefaults();
+ },
+
+ restoreDefaults : function() {
+ SecurityLevelPrefs.securityCustom = false;
+ },
+};
+
+Object.defineProperty(this, "SecurityLevelButton", {
+ value: SecurityLevelButton,
+ enumerable: true,
+ writable: false
+});
+
+Object.defineProperty(this, "SecurityLevelPanel", {
+ value: SecurityLevelPanel,
+ enumerable: true,
+ writable: false
+});
+
+Object.defineProperty(this, "SecurityLevelPreferences", {
+ value: SecurityLevelPreferences,
+ enumerable: true,
+ writable: false
+});
diff --git a/browser/components/securitylevel/content/securityLevelButton.css b/browser/components/securitylevel/content/securityLevelButton.css
new file mode 100644
index 000000000000..81f2365bae28
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevelButton.css
@@ -0,0 +1,9 @@
+toolbarbutton#security-level-button.standard {
+ list-style-image: url("chrome://browser/content/securitylevel/securityLevelButton.svg#standard");
+}
+toolbarbutton#security-level-button.safer {
+ list-style-image: url("chrome://browser/content/securitylevel/securityLevelButton.svg#safer");
+}
+toolbarbutton#security-level-button.safest {
+ list-style-image: url("chrome://browser/content/securitylevel/securityLevelButton.svg#safest");
+}
diff --git a/browser/components/securitylevel/content/securityLevelButton.inc.xul b/browser/components/securitylevel/content/securityLevelButton.inc.xul
new file mode 100644
index 000000000000..4ad26f4142bd
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevelButton.inc.xul
@@ -0,0 +1,5 @@
+<toolbarbutton id="security-level-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
+ removable="true"
+ oncommand="SecurityLevelButton.onCommand(this, event);"
+ closemenu="none"
+ cui-areatype="toolbar"/>
diff --git a/browser/components/securitylevel/content/securityLevelButton.svg b/browser/components/securitylevel/content/securityLevelButton.svg
new file mode 100644
index 000000000000..8535cdcc531e
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevelButton.svg
@@ -0,0 +1,21 @@
+<svg width="14px" height="16px" viewBox="0 0 14 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <style>
+ use:not(:target) {
+ display: none;
+ }
+ </style>
+ <defs>
+ <g id="standard_icon" stroke="none" stroke-width="1">
+ <path d="M7.0 2.16583509C7.0 2.16583509 2.0 4.24375717 2.0 4.24375717C2.0 4.24375717 2.0 7.27272727 2.0 7.27272727C2.0 10.2413541 4.13435329 13.0576771 7.0 13.9315843C9.8656467 13.0576771 12.0 10.2413541 12.0 7.27272727C12.0 7.27272727 12.0 4.24375717 12.0 4.24375717C12.0 4.24375717 7.0 2.16583509 7.0 2.16583509C7.0 2.16583509 7.0 2.16583509 7.0 2.16583509M7.0 0.0C7.0 0.0 14.0 2.90909091 14.0 2.90909091C14.0 2.90909091 14.0 7.27272727 14.0 7.27272727C14.0 11.3090909 11.0133333 15.0836364 7.0 16.0C2.98666667 15.0836364 0.0 11.3090909 0.0 7.27272727C0.0 7.27272727 0.0 2.90909091 0.0 2.90909091C0.0 2.90909091 7.0 0.0 7.0 0.0C7.0 0.0 7.0 0.0 7.0 0.0" />
+ </g>
+ <g id="safer_icon" stroke="none" stroke-width="1">
+ <path fill-rule="nonzero" d="M7.0 2.1658351C7.0 13.931584 7.0 2.1658351 7.0 13.931584C9.8656467 13.057677 12.0 10.241354 12.0 7.2727273C12.0 7.2727273 12.0 4.2437572 12.0 4.2437572C12.0 4.2437572 7.0 2.1658351 7.0 2.1658351C7.0 2.1658351 7.0 2.1658351 7.0 2.1658351M7.0 0.0C7.0 0.0 14.0 2.9090909 14.0 2.9090909C14.0 2.9090909 14.0 7.2727273 14.0 7.2727273C14.0 11.309091 11.013333 15.083636 7.0 16.0C2.9866667 15.083636 0.0 11.309091 0.0 7.2727273C0.0 7.2727273 0.0 2.9090909 0.0 2.9090909C0.0 2.9090909 7.0 0.0 7.0 0.0"/>
+ </g>
+ <g id="safest_icon" stroke="none" stroke-width="1">
+ <path d="M7.0 0.0C7.0 0.0 14.0 2.90909091 14.0 2.90909091C14.0 2.90909091 14.0 7.27272727 14.0 7.27272727C14.0 11.3090909 11.0133333 15.0836364 7.0 16.0C2.98666667 15.0836364 0.0 11.3090909 0.0 7.27272727C0.0 7.27272727 0.0 2.90909091 0.0 2.90909091C0.0 2.90909091 7.0 0.0 7.0 0.0C7.0 0.0 7.0 0.0 7.0 0.0" />
+ </g>
+ </defs>
+ <use id="standard" fill="context-fill" fill-opacity="context-fill-opacity" href="#standard_icon" />
+ <use id="safer" fill="context-fill" fill-opacity="context-fill-opacity" href="#safer_icon" />
+ <use id="safest" fill="context-fill" fill-opacity="context-fill-opacity" href="#safest_icon" />
+</svg>
diff --git a/browser/components/securitylevel/content/securityLevelPanel.css b/browser/components/securitylevel/content/securityLevelPanel.css
new file mode 100644
index 000000000000..170bf625ea1d
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevelPanel.css
@@ -0,0 +1,82 @@
+/* Security Level CSS */
+
+panel#securityLevel-panel > .panel-arrowcontainer > .panel-arrowcontent {
+ padding: 0;
+}
+
+panelview#securityLevel-panelview {
+ width: 20em;
+}
+
+panelview#securityLevel-panelview>vbox.panel-subview-body {
+ padding: 1em;
+}
+
+label#securityLevel-header {
+ text-transform: uppercase;
+ color: GrayText;
+ font-size: 0.85em;
+ margin: 0 0 0.4em 0;
+ padding: 0;
+}
+
+hbox#securityLevel-levelHbox {
+ margin-bottom: 1em;
+}
+
+label#securityLevel-level {
+ font-size: 1.5em;
+ margin: 0 0.5em 0 0;
+ padding: 0;
+}
+
+label#securityLevel-customWarning {
+ border-radius: 2px;
+ background-color: #ffe845;
+ text-transform: uppercase;
+ font-weight: bolder;
+ font-size: 0.8em;
+ height: 1em;
+ line-height: 1em;
+ vertical-align: middle;
+ margin: auto;
+ padding: 0.4em;
+}
+
+panelview#securityLevel-panelview description {
+ margin: 0 -0.5em 0.5em 0;
+ padding: 0 !important;
+}
+
+label#securityLevel-learnMore {
+ margin: 0 0 1.0em 0;
+ padding: 0;
+}
+
+panelview#securityLevel-panelview button {
+ -moz-appearance: none;
+ background-color: var(--arrowpanel-dimmed);
+}
+
+panelview#securityLevel-panelview button:hover {
+ background-color: var(--arrowpanel-dimmed-further);
+}
+
+panelview#securityLevel-panelview button:active {
+ background-color: var(--arrowpanel-dimmed-even-further);
+}
+
+button#securityLevel-restoreDefaults {
+ margin: 0 0 1.0em 0;
+ padding: 0.45em;
+ color: inherit !important;
+}
+
+button#securityLevel-advancedSecuritySettings {
+ margin: 0 -1.0em -1.0em -1.0em;
+ border-radius: 0;
+ border-top: 1px solid var(--panel-separator-color);
+ padding: 0;
+ height: 3.0em;
+ color: inherit !important;
+}
diff --git a/browser/components/securitylevel/content/securityLevelPanel.inc.xul b/browser/components/securitylevel/content/securityLevelPanel.inc.xul
new file mode 100644
index 000000000000..532e8dd98b32
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevelPanel.inc.xul
@@ -0,0 +1,33 @@
+<panel id="securityLevel-panel"
+ role="group"
+ type="arrow"
+ orient="vertical"
+ level="top"
+ hidden="true">
+ <panelmultiview mainViewId="securityLevel-panelview">
+ <panelview id="securityLevel-panelview" descriptionheightworkaround="true">
+ <vbox class="panel-subview-body">
+ <label id="securityLevel-header"/>
+ <hbox id="securityLevel-levelHbox">
+ <label id="securityLevel-level"/>
+ <vbox>
+ <spacer flex="1"/>
+ <label id="securityLevel-customWarning"/>
+ <spacer flex="1"/>
+ </vbox>
+ </hbox>
+ <description id="securityLevel-summary"/>
+ <label
+ id="securityLevel-learnMore"
+ class="learnMore text-link"
+ onclick="SecurityLevelPanel.hide();"/>
+ <button
+ id="securityLevel-restoreDefaults"
+ oncommand="SecurityLevelPanel.restoreDefaults();"/>
+ <button
+ id="securityLevel-advancedSecuritySettings"
+ oncommand="SecurityLevelPanel.openAdvancedSecuritySettings();"/>
+ </vbox>
+ </panelview>
+ </panelmultiview>
+</panel>
diff --git a/browser/components/securitylevel/content/securityLevelPreferences.css b/browser/components/securitylevel/content/securityLevelPreferences.css
new file mode 100644
index 000000000000..0d1040d177d8
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevelPreferences.css
@@ -0,0 +1,26 @@
+label#securityLevel-customWarning {
+ border-radius: 2px;
+ background-color: #ffe845;
+ text-transform: uppercase;
+ font-weight: bolder;
+ font-size: 0.7em;
+ height: 1em;
+ line-height: 1em;
+ padding: 0.35em;
+}
+
+radiogroup#securityLevel-radiogroup radio {
+ font-weight: bold;
+}
+
+vbox#securityLevel-vbox-standard,
+vbox#securityLevel-vbox-safer,
+vbox#securityLevel-vbox-safest {
+ margin-top: 0.4em;
+}
+
+vbox#securityLevel-vbox-standard description.indent,
+vbox#securityLevel-vbox-safer description.indent,
+vbox#securityLevel-vbox-safest description.indent {
+ margin-inline-start: 0 !important;
+}
diff --git a/browser/components/securitylevel/content/securityLevelPreferences.inc.xul b/browser/components/securitylevel/content/securityLevelPreferences.inc.xul
new file mode 100644
index 000000000000..0cf05a5f3c9b
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevelPreferences.inc.xul
@@ -0,0 +1,66 @@
+<groupbox id="securityLevel-groupbox" data-category="panePrivacy" hidden="true">
+ <caption><label id="securityLevel-header"/></caption>
+ <vbox data-subcategory="securitylevel" flex="1">
+ <description flex="1">
+ <html:span id="securityLevel-overview" class="tail-with-learn-more"/>
+ <label id="securityLevel-learnMore" class="learnMore text-link"/>
+ </description>
+ <radiogroup id="securityLevel-radiogroup"
+ oncommand="SecurityLevelPreferences.selectSecurityLevel();">
+ <vbox id="securityLevel-vbox-standard">
+ <hbox>
+ <radio value="standard"/>
+ <vbox>
+ <spacer flex="1"/>
+ <label id="securityLevel-customWarning"/>
+ <spacer flex="1"/>
+ </vbox>
+ </hbox>
+ <description flex="1">
+ <html:span id="securityLevel-summary" class="tail-with-learn-more"/>
+ <label id="securityLevel-restoreDefaults"
+ class="learnMore text-link"
+ onclick="SecurityLevelPreferences.restoreDefaults();"/>
+ </description>
+ </vbox>
+ <vbox id="securityLevel-vbox-safer">
+ <hbox>
+ <radio value="safer"/>
+ <vbox>
+ <spacer flex="1"/>
+ <label id="securityLevel-customWarning"/>
+ <spacer flex="1"/>
+ </vbox>
+ </hbox>
+ <description flex="1">
+ <html:span id="securityLevel-summary" class="tail-with-learn-more"/>
+ <label id="securityLevel-restoreDefaults"
+ class="learnMore text-link"
+ onclick="SecurityLevelPreferences.restoreDefaults();"/>
+ </description>
+ <description id="securityLevel-description1" class="indent tip-caption"/>
+ <description id="securityLevel-description2" class="indent tip-caption"/>
+ <description id="securityLevel-description3" class="indent tip-caption"/>
+ </vbox>
+ <vbox id="securityLevel-vbox-safest">
+ <hbox>
+ <radio value="safest"/>
+ <vbox>
+ <spacer flex="1"/>
+ <label id="securityLevel-customWarning"/>
+ <spacer flex="1"/>
+ </vbox>
+ </hbox>
+ <description flex="1">
+ <html:span id="securityLevel-summary" class="tail-with-learn-more"/>
+ <label id="securityLevel-restoreDefaults"
+ class="learnMore text-link"
+ onclick="SecurityLevelPreferences.restoreDefaults();"/>
+ </description>
+ <description id="securityLevel-description1" class="indent tip-caption"/>
+ <description id="securityLevel-description2" class="indent tip-caption"/>
+ <description id="securityLevel-description3" class="indent tip-caption"/>
+ </vbox>
+ </radiogroup>
+ </vbox>
+</groupbox>
diff --git a/browser/components/securitylevel/jar.mn b/browser/components/securitylevel/jar.mn
new file mode 100644
index 000000000000..9ac408083fbc
--- /dev/null
+++ b/browser/components/securitylevel/jar.mn
@@ -0,0 +1,6 @@
+browser.jar:
+ content/browser/securitylevel/securityLevel.js (content/securityLevel.js)
+ content/browser/securitylevel/securityLevelPanel.css (content/securityLevelPanel.css)
+ content/browser/securitylevel/securityLevelButton.css (content/securityLevelButton.css)
+ content/browser/securitylevel/securityLevelPreferences.css (content/securityLevelPreferences.css)
+ content/browser/securitylevel/securityLevelButton.svg (content/securityLevelButton.svg)
diff --git a/browser/components/securitylevel/moz.build b/browser/components/securitylevel/moz.build
new file mode 100644
index 000000000000..7e103239c8d6
--- /dev/null
+++ b/browser/components/securitylevel/moz.build
@@ -0,0 +1 @@
+JAR_MANIFESTS += ['jar.mn']
1
0

[torbutton/master] Bug 28628: Change onboarding Security panel to open new Security Level panel.
by gk@torproject.org 15 Mar '19
by gk@torproject.org 15 Mar '19
15 Mar '19
commit 52c12d905ff4f6d35d5788b5cc379e474be429e9
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Mar 12 16:53:45 2019 -0400
Bug 28628: Change onboarding Security panel to open new Security Level panel.
Add new string: label for the "action" button within the onboarding
Security panel.
---
src/chrome/locale/en-US/browserOnboarding.properties | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/chrome/locale/en-US/browserOnboarding.properties b/src/chrome/locale/en-US/browserOnboarding.properties
index 6c2fb0c8..82c9bcca 100644
--- a/src/chrome/locale/en-US/browserOnboarding.properties
+++ b/src/chrome/locale/en-US/browserOnboarding.properties
@@ -25,7 +25,7 @@ onboarding.tour-tor-circuit-display.button=See My Path
onboarding.tour-tor-security=Security
onboarding.tour-tor-security.title=Choose your experience.
onboarding.tour-tor-security.description=We also provide you with additional settings for bumping up your browser security. Our Security Settings allow you to block elements that could be used to attack your computer. Click below to see what the different options do.
-onboarding.tour-tor-security.button=Review Settings
+onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-expect-differences=Experience Tips
onboarding.tour-tor-expect-differences.title=Expect some differences.
1
0

[torbutton/master] Bug 27478: Torbutton in Tor Browser 8 difficult to see in dark theme
by gk@torproject.org 15 Mar '19
by gk@torproject.org 15 Mar '19
15 Mar '19
commit 2930d898032e04443527af8c6528481f202a2c4e
Author: Richard Pospesel <richard(a)torproject.org>
Date: Thu Mar 14 14:26:39 2019 -0700
Bug 27478: Torbutton in Tor Browser 8 difficult to see in dark theme
Changed the torbutton icon svgs to use 'context-fill' for fill and
'context-opacity' for opacity attributes. With this change firefox
will provide the correct color values to our icons so they always look
correct for with the current theme.
---
src/chrome/skin/torbutton-dark-update-needed.svg | 13 -------------
src/chrome/skin/torbutton-dark.svg | 9 ---------
src/chrome/skin/torbutton-update-needed.svg | 16 ++++++----------
src/chrome/skin/torbutton.css | 15 ---------------
src/chrome/skin/torbutton.svg | 10 ++++------
5 files changed, 10 insertions(+), 53 deletions(-)
diff --git a/src/chrome/skin/torbutton-dark-update-needed.svg b/src/chrome/skin/torbutton-dark-update-needed.svg
deleted file mode 100644
index 44df4a00..00000000
--- a/src/chrome/skin/torbutton-dark-update-needed.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <g id="Icon---Tor-Update---Grey10" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
- <g id="Tor-Button-Icon" fill="#F9F9FA" fill-opacity="0.8">
- <path d="M7.06561268,5.02241519 C6.77772045,5.2116121 5.67952408,5.90554501 5.6853992,5.90178938 C5.35790364,6.11113858 5.09635335,6.28354515 4.86413018,6.44457064 C4.45268439,6.72987059 4.15887546,6.96359333 3.97499388,7.15193679 C2.95731966,8.16499644 2.66333288,8.97771922 2.77290903,10.3548433 C2.86347409,11.8242645 4.01769529,13.1628244 5.73360996,13.7141752 C6.42393225,13.9308094 7.08993386,14 8.24418607,14 C9.69409954,14 11.010192,13.6175745 11.8475477,12.9475461 C12.7611494,12.2214478 13.2954545,11.1244618 13.2954545,10.0058997 C13.2954545,8.86286776 12.7876949,7.76058164 11.8769727,6.9600938 C11.3838667,6.53505399 10.722397,6.11798563 9.75901067,5.60447735 C9.08955454,5.26286683 8.4719792,4.75203246 8.02479915,4.11379651 C7.77978416,4.4739196 7.45874047,4.78154253 7.06561268,5.02241519 Z M13.1898674,5.45132743 C14.5364638,6.63126844 15.2954545,8.28318584 15.2954545,10.0058997 C15.2954545,11.7286136 14.4874967,13.4041298 13.0919331,14.5132743 C11.7943039,15.551622
4 9.98251962,16 8.24418607,16 C7.16690894,16 6.1875661,15.9528024 5.13477254,15.6224189 C2.71089901,14.8436578 0.923598318,12.8613569 0.776696891,10.4778761 C0.629795465,8.63716814 1.07049974,7.22123894 2.56399758,5.73451327 C3.32298828,4.95575221 4.88993683,4.05899705 5.96721396,3.35103245 C6.50585253,3.02064897 7.06897466,2.02949853 5.99169753,0.16519174 L6.21204967,0 L9.41939748,1.27433628 C8.97869321,2.64306785 10.2518389,3.61061947 10.6680596,3.82300885 C11.5984353,4.31858407 12.4798439,4.83775811 13.1898674,5.45132743 Z" id="Border" fill-rule="nonzero"></path>
- <path d="M9.63636041,6.5268042 C10.3279607,6.89485621 10.8036714,7.19446079 11.1684763,7.5087455 C11.8759239,8.12902347 12.2727273,8.98864463 12.2727273,9.88278877 C12.2727273,10.7655864 11.852758,11.6266312 11.1353943,12.1959748 C10.4876507,12.713565 9.5005326,13 8.42423809,13 C8.37244863,13 8.32197458,12.9998006 8.27272727,12.9993871 L8.27272727,5 C8.49625435,5.67889606 9.03172133,6.21869701 9.63636041,6.5268042 Z" id="Half-Content"></path>
- </g>
- <g id="!" transform="translate(0.000000, 6.100000)">
- <polygon id="Triangle-Copy" fill="#414141" points="5 0.714285714 9.28571429 9.28571429 0.714285714 9.28571429"></polygon>
- <path d="M9.78067261,7.86561722 C10.0020131,8.30856238 9.97819173,8.83453755 9.71771774,9.25566142 C9.45724375,9.6767853 8.9972698,9.93299087 8.50210118,9.93276007 L1.42710118,9.93276007 C0.932880889,9.93225088 0.474029854,9.67633171 0.213899592,9.2561101 C-0.0462306709,8.83588849 -0.0706843715,8.31106384 0.149244037,7.86847436 L3.68710118,0.789902932 C3.92904842,0.305811394 4.42377158,0 4.96495832,0 C5.50614506,0 6.00086822,0.305811394 6.24281547,0.789902932 L9.78067261,7.86561722 Z M4.25067261,2.78990293 L4.25067261,5.64704579 C4.25067261,6.0415349 4.57046922,6.3613315 4.96495832,6.3613315 C5.35944743,6.3613315 5.67924404,6.0415349 5.67924404,5.64704579 L5.67924404,2.78990293 C5.67924404,2.39541382 5.35944743,2.07561722 4.96495832,2.07561722 C4.57046922,2.07561722 4.25067261,2.39541382 4.25067261,2.78990293 Z M4.96495832,8.68276007 C5.45806971,8.68276007 5.85781547,8.28301432 5.85781547,7.78990293 C5.85781547,7.29679155 5.45806971,6.89704579 4.96495832,6.89704579 C4.47
184694,6.89704579 4.07210118,7.29679155 4.07210118,7.78990293 C4.07210118,8.28301432 4.47184694,8.68276007 4.96495832,8.68276007 Z" id="Shape-Copy" fill="#FFE900" fill-rule="nonzero"></path>
- </g>
- </g>
-</svg>
diff --git a/src/chrome/skin/torbutton-dark.svg b/src/chrome/skin/torbutton-dark.svg
deleted file mode 100644
index 55d633e8..00000000
--- a/src/chrome/skin/torbutton-dark.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <g id="Icon---Tor---Grey10" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" fill-opacity="0.8">
- <g id="Tor-Button-Icon" fill="#F9F9FA">
- <path d="M7.06561268,5.02241519 C6.77772045,5.2116121 5.67952408,5.90554501 5.6853992,5.90178938 C5.35790364,6.11113858 5.09635335,6.28354515 4.86413018,6.44457064 C4.45268439,6.72987059 4.15887546,6.96359333 3.97499388,7.15193679 C2.95731966,8.16499644 2.66333288,8.97771922 2.77290903,10.3548433 C2.86347409,11.8242645 4.01769529,13.1628244 5.73360996,13.7141752 C6.42393225,13.9308094 7.08993386,14 8.24418607,14 C9.69409954,14 11.010192,13.6175745 11.8475477,12.9475461 C12.7611494,12.2214478 13.2954545,11.1244618 13.2954545,10.0058997 C13.2954545,8.86286776 12.7876949,7.76058164 11.8769727,6.9600938 C11.3838667,6.53505399 10.722397,6.11798563 9.75901067,5.60447735 C9.08955454,5.26286683 8.4719792,4.75203246 8.02479915,4.11379651 C7.77978416,4.4739196 7.45874047,4.78154253 7.06561268,5.02241519 Z M13.1898674,5.45132743 C14.5364638,6.63126844 15.2954545,8.28318584 15.2954545,10.0058997 C15.2954545,11.7286136 14.4874967,13.4041298 13.0919331,14.5132743 C11.7943039,15.551622
4 9.98251962,16 8.24418607,16 C7.16690894,16 6.1875661,15.9528024 5.13477254,15.6224189 C2.71089901,14.8436578 0.923598318,12.8613569 0.776696891,10.4778761 C0.629795465,8.63716814 1.07049974,7.22123894 2.56399758,5.73451327 C3.32298828,4.95575221 4.88993683,4.05899705 5.96721396,3.35103245 C6.50585253,3.02064897 7.06897466,2.02949853 5.99169753,0.16519174 L6.21204967,0 L9.41939748,1.27433628 C8.97869321,2.64306785 10.2518389,3.61061947 10.6680596,3.82300885 C11.5984353,4.31858407 12.4798439,4.83775811 13.1898674,5.45132743 Z" id="Border" fill-rule="nonzero"></path>
- <path d="M8.27272727,5 C8.49625435,5.67889606 9.03172133,6.21869701 9.63636041,6.5268042 C10.3279607,6.89485621 10.8036714,7.19446079 11.1684763,7.5087455 C11.8759239,8.12902347 12.2727273,8.98864463 12.2727273,9.88278877 C12.2727273,10.7655864 11.852758,11.6266312 11.1353943,12.1959748 C10.4876507,12.713565 9.5005326,13 8.42423809,13 C8.37244863,13 8.32197458,12.9998006 8.27272727,12.9993871 L8.27272727,5 Z" id="Half-Content"></path>
- </g>
- </g>
-</svg>
diff --git a/src/chrome/skin/torbutton-update-needed.svg b/src/chrome/skin/torbutton-update-needed.svg
index 12bcca31..654f5ef1 100644
--- a/src/chrome/skin/torbutton-update-needed.svg
+++ b/src/chrome/skin/torbutton-update-needed.svg
@@ -1,13 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <g id="Icon---Tor-Update---Grey" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
- <g id="Tor-Button-Icon" fill="#0C0C0D" fill-opacity="0.8">
- <path d="M7.06561268,5.02241519 C6.77772045,5.2116121 5.67952408,5.90554501 5.6853992,5.90178938 C5.35790364,6.11113858 5.09635335,6.28354515 4.86413018,6.44457064 C4.45268439,6.72987059 4.15887546,6.96359333 3.97499388,7.15193679 C2.95731966,8.16499644 2.66333288,8.97771922 2.77290903,10.3548433 C2.86347409,11.8242645 4.01769529,13.1628244 5.73360996,13.7141752 C6.42393225,13.9308094 7.08993386,14 8.24418607,14 C9.69409954,14 11.010192,13.6175745 11.8475477,12.9475461 C12.7611494,12.2214478 13.2954545,11.1244618 13.2954545,10.0058997 C13.2954545,8.86286776 12.7876949,7.76058164 11.8769727,6.9600938 C11.3838667,6.53505399 10.722397,6.11798563 9.75901067,5.60447735 C9.08955454,5.26286683 8.4719792,4.75203246 8.02479915,4.11379651 C7.77978416,4.4739196 7.45874047,4.78154253 7.06561268,5.02241519 Z M13.1898674,5.45132743 C14.5364638,6.63126844 15.2954545,8.28318584 15.2954545,10.0058997 C15.2954545,11.7286136 14.4874967,13.4041298 13.0919331,14.5132743 C11.7943039,15.551622
4 9.98251962,16 8.24418607,16 C7.16690894,16 6.1875661,15.9528024 5.13477254,15.6224189 C2.71089901,14.8436578 0.923598318,12.8613569 0.776696891,10.4778761 C0.629795465,8.63716814 1.07049974,7.22123894 2.56399758,5.73451327 C3.32298828,4.95575221 4.88993683,4.05899705 5.96721396,3.35103245 C6.50585253,3.02064897 7.06897466,2.02949853 5.99169753,0.16519174 L6.21204967,0 L9.41939748,1.27433628 C8.97869321,2.64306785 10.2518389,3.61061947 10.6680596,3.82300885 C11.5984353,4.31858407 12.4798439,4.83775811 13.1898674,5.45132743 Z" id="Border" fill-rule="nonzero"></path>
- <path d="M8.27272727,5 C8.49625435,5.67889606 9.03172133,6.21869701 9.63636041,6.5268042 C10.3279607,6.89485621 10.8036714,7.19446079 11.1684763,7.5087455 C11.8759239,8.12902347 12.2727273,8.98864463 12.2727273,9.88278877 C12.2727273,10.7655864 11.852758,11.6266312 11.1353943,12.1959748 C10.4876507,12.713565 9.5005326,13 8.42423809,13 C8.37244863,13 8.32197458,12.9998006 8.27272727,12.9993871 L8.27272727,5 Z" id="Half-Content"></path>
- </g>
- <g id="!" transform="translate(0.000000, 6.100000)">
- <polygon id="Triangle-Copy" fill="#414141" points="5 0.714285714 9.28571429 9.28571429 0.714285714 9.28571429"></polygon>
- <path d="M9.78067261,7.86561722 C10.0020131,8.30856238 9.97819173,8.83453755 9.71771774,9.25566142 C9.45724375,9.6767853 8.9972698,9.93299087 8.50210118,9.93276007 L1.42710118,9.93276007 C0.932880889,9.93225088 0.474029854,9.67633171 0.213899592,9.2561101 C-0.0462306709,8.83588849 -0.0706843715,8.31106384 0.149244037,7.86847436 L3.68710118,0.789902932 C3.92904842,0.305811394 4.42377158,0 4.96495832,0 C5.50614506,0 6.00086822,0.305811394 6.24281547,0.789902932 L9.78067261,7.86561722 Z M4.25067261,2.78990293 L4.25067261,5.64704579 C4.25067261,6.0415349 4.57046922,6.3613315 4.96495832,6.3613315 C5.35944743,6.3613315 5.67924404,6.0415349 5.67924404,5.64704579 L5.67924404,2.78990293 C5.67924404,2.39541382 5.35944743,2.07561722 4.96495832,2.07561722 C4.57046922,2.07561722 4.25067261,2.39541382 4.25067261,2.78990293 Z M4.96495832,8.68276007 C5.45806971,8.68276007 5.85781547,8.28301432 5.85781547,7.78990293 C5.85781547,7.29679155 5.45806971,6.89704579 4.96495832,6.89704579 C4.47
184694,6.89704579 4.07210118,7.29679155 4.07210118,7.78990293 C4.07210118,8.28301432 4.47184694,8.68276007 4.96495832,8.68276007 Z" id="Shape-Copy" fill="#FFE900" fill-rule="nonzero"></path>
- </g>
- </g>
+ <g fill="context-fill" fill-opacity="context-fill-opacity">
+ <path d="M7.06561268 5.02241519C6.77772045 5.2116121 5.67952408 5.90554501 5.6853992 5.90178938C5.35790364 6.11113858 5.09635335 6.28354515 4.86413018 6.44457064C4.45268439 6.72987059 4.15887546 6.96359333 3.97499388 7.15193679C2.95731966 8.16499644 2.66333288 8.97771922 2.77290903 10.3548433C2.86347409 11.8242645 4.01769529 13.1628244 5.73360996 13.7141752C6.42393225 13.9308094 7.08993386 14.0 8.24418607 14.0C9.69409954 14.0 11.010192 13.6175745 11.8475477 12.9475461C12.7611494 12.2214478 13.2954545 11.1244618 13.2954545 10.0058997C13.2954545 8.86286776 12.7876949 7.76058164 11.8769727 6.9600938C11.3838667 6.53505399 10.722397 6.11798563 9.75901067 5.60447735C9.08955454 5.26286683 8.4719792 4.75203246 8.02479915 4.11379651C7.77978416 4.4739196 7.45874047 4.78154253 7.06561268 5.02241519C7.06561268 5.02241519 7.06561268 5.02241519 7.06561268 5.02241519M13.1898674 5.45132743C14.5364638 6.63126844 15.2954545 8.28318584 15.2954545 10.0058997C15.2954545 11.7286136 14.4874967 13.4041
298 13.0919331 14.5132743C11.7943039 15.5516224 9.98251962 16.0 8.24418607 16.0C7.16690894 16.0 6.1875661 15.9528024 5.13477254 15.6224189C2.71089901 14.8436578 0.923598318 12.8613569 0.776696891 10.4778761C0.629795465 8.63716814 1.07049974 7.22123894 2.56399758 5.73451327C3.32298828 4.95575221 4.88993683 4.05899705 5.96721396 3.35103245C6.50585253 3.02064897 7.06897466 2.02949853 5.99169753 0.16519174C5.99169753 0.16519174 6.21204967 0.0 6.21204967 0.0C6.21204967 0.0 9.41939748 1.27433628 9.41939748 1.27433628C8.97869321 2.64306785 10.2518389 3.61061947 10.6680596 3.82300885C11.5984353 4.31858407 12.4798439 4.83775811 13.1898674 5.45132743C13.1898674 5.45132743 13.1898674 5.45132743 13.1898674 5.45132743" />
+ <path d="M8.27272727 5.0C8.49625435 5.67889606 9.03172133 6.21869701 9.63636041 6.5268042C10.3279607 6.89485621 10.8036714 7.19446079 11.1684763 7.5087455C11.8759239 8.12902347 12.2727273 8.98864463 12.2727273 9.88278877C12.2727273 10.7655864 11.852758 11.6266312 11.1353943 12.1959748C10.4876507 12.713565 9.5005326 13.0 8.42423809 13.0C8.37244863 13.0 8.32197458 12.9998006 8.27272727 12.9993871C8.27272727 12.9993871 8.27272727 5.0 8.27272727 5.0C8.27272727 5.0 8.27272727 5.0 8.27272727 5.0" />
+ </g>
+ <polygon points="5,7 9,15 1,15" fill="#414141"/>
+ <path fill-rule="nonzero" fill="#FFE900" d="M9.78067261 13.96561722C10.0020131 14.40856238 9.97819173 14.93453755 9.71771774 15.35566142C9.45724375 15.7767853 8.9972698 16.03299087 8.50210118 16.03276007C8.50210118 16.03276007 1.42710118 16.03276007 1.42710118 16.03276007C0.932880889 16.03225088 0.474029854 15.77633171 0.213899592 15.3561101C-0.0462306709 14.93588849 -0.0706843715 14.41106384 0.149244037 13.96847436C0.149244037 13.96847436 3.68710118 6.889902932 3.68710118 6.889902932C3.92904842 6.405811394 4.42377158 6.1 4.96495832 6.1C5.50614506 6.1 6.00086822 6.405811394 6.24281547 6.889902932C6.24281547 6.889902932 9.78067261 13.96561722 9.78067261 13.96561722C9.78067261 13.96561722 9.78067261 13.96561722 9.78067261 13.96561722M4.25067261 8.88990293C4.25067261 8.88990293 4.25067261 11.74704579 4.25067261 11.74704579C4.25067261 12.1415349 4.57046922 12.4613315 4.96495832 12.4613315C5.35944743 12.4613315 5.67924404 12.1415349 5.67924404 11.74704579C5.67924404 11.74704579 5.67924
404 8.88990293 5.67924404 8.88990293C5.67924404 8.49541382 5.35944743 8.17561722 4.96495832 8.17561722C4.57046922 8.17561722 4.25067261 8.49541382 4.25067261 8.88990293C4.25067261 8.88990293 4.25067261 8.88990293 4.25067261 8.88990293M4.96495832 14.78276007C5.45806971 14.78276007 5.85781547 14.38301432 5.85781547 13.88990293C5.85781547 13.39679155 5.45806971 12.99704579 4.96495832 12.99704579C4.47184694 12.99704579 4.07210118 13.39679155 4.07210118 13.88990293C4.07210118 14.38301432 4.47184694 14.78276007 4.96495832 14.78276007C4.96495832 14.78276007 4.96495832 14.78276007 4.96495832 14.78276007" />
</svg>
diff --git a/src/chrome/skin/torbutton.css b/src/chrome/skin/torbutton.css
index 28333874..638520f9 100644
--- a/src/chrome/skin/torbutton.css
+++ b/src/chrome/skin/torbutton.css
@@ -6,21 +6,10 @@
list-style-image: url("chrome://torbutton/skin/torbutton.svg");
}
}
-@keyframes blink-update-dark {
- 0% {
- list-style-image: url("chrome://torbutton/skin/torbutton-dark-update-needed.svg");
- }
- 100% {
- list-style-image: url("chrome://torbutton/skin/torbutton-dark.svg");
- }
-}
#torbutton-button {
list-style-image: url("chrome://torbutton/skin/torbutton.svg");
}
-toolbar[brighttext] #torbutton-button {
- list-style-image: url("chrome://torbutton/skin/torbutton-dark.svg");
-}
#torbutton-button[tbstatus="on"] {
opacity: 1.0;
}
@@ -31,10 +20,6 @@ toolbar[brighttext] #torbutton-button {
opacity: 1.0;
animation: blink-update normal 1s infinite ease-in-out;
}
-toolbar[brighttext] #torbutton-button[tbUpdateNeeded="true"] {
- opacity: 1.0;
- animation: blink-update-dark normal 1s infinite ease-in-out;
-}
#torbutton-button-tb {
list-style-image: url("chrome://torbutton/skin/torbutton.svg");
diff --git a/src/chrome/skin/torbutton.svg b/src/chrome/skin/torbutton.svg
index 11892c6f..d0e4a69c 100644
--- a/src/chrome/skin/torbutton.svg
+++ b/src/chrome/skin/torbutton.svg
@@ -1,9 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <g id="Icon---Tor---Grey" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" fill-opacity="0.8">
- <g id="Tor-Button-Icon" fill="#0C0C0D">
- <path d="M7.06561268,5.02241519 C6.77772045,5.2116121 5.67952408,5.90554501 5.6853992,5.90178938 C5.35790364,6.11113858 5.09635335,6.28354515 4.86413018,6.44457064 C4.45268439,6.72987059 4.15887546,6.96359333 3.97499388,7.15193679 C2.95731966,8.16499644 2.66333288,8.97771922 2.77290903,10.3548433 C2.86347409,11.8242645 4.01769529,13.1628244 5.73360996,13.7141752 C6.42393225,13.9308094 7.08993386,14 8.24418607,14 C9.69409954,14 11.010192,13.6175745 11.8475477,12.9475461 C12.7611494,12.2214478 13.2954545,11.1244618 13.2954545,10.0058997 C13.2954545,8.86286776 12.7876949,7.76058164 11.8769727,6.9600938 C11.3838667,6.53505399 10.722397,6.11798563 9.75901067,5.60447735 C9.08955454,5.26286683 8.4719792,4.75203246 8.02479915,4.11379651 C7.77978416,4.4739196 7.45874047,4.78154253 7.06561268,5.02241519 Z M13.1898674,5.45132743 C14.5364638,6.63126844 15.2954545,8.28318584 15.2954545,10.0058997 C15.2954545,11.7286136 14.4874967,13.4041298 13.0919331,14.5132743 C11.7943039,15.551622
4 9.98251962,16 8.24418607,16 C7.16690894,16 6.1875661,15.9528024 5.13477254,15.6224189 C2.71089901,14.8436578 0.923598318,12.8613569 0.776696891,10.4778761 C0.629795465,8.63716814 1.07049974,7.22123894 2.56399758,5.73451327 C3.32298828,4.95575221 4.88993683,4.05899705 5.96721396,3.35103245 C6.50585253,3.02064897 7.06897466,2.02949853 5.99169753,0.16519174 L6.21204967,0 L9.41939748,1.27433628 C8.97869321,2.64306785 10.2518389,3.61061947 10.6680596,3.82300885 C11.5984353,4.31858407 12.4798439,4.83775811 13.1898674,5.45132743 Z" id="Border" fill-rule="nonzero"></path>
- <path d="M8.27272727,5 C8.49625435,5.67889606 9.03172133,6.21869701 9.63636041,6.5268042 C10.3279607,6.89485621 10.8036714,7.19446079 11.1684763,7.5087455 C11.8759239,8.12902347 12.2727273,8.98864463 12.2727273,9.88278877 C12.2727273,10.7655864 11.852758,11.6266312 11.1353943,12.1959748 C10.4876507,12.713565 9.5005326,13 8.42423809,13 C8.37244863,13 8.32197458,12.9998006 8.27272727,12.9993871 L8.27272727,5 Z" id="Half-Content"></path>
- </g>
- </g>
+ <g fill="context-fill" fill-opacity="context-fill-opacity">
+ <path d="M7.06561268 5.02241519C6.77772045 5.2116121 5.67952408 5.90554501 5.6853992 5.90178938C5.35790364 6.11113858 5.09635335 6.28354515 4.86413018 6.44457064C4.45268439 6.72987059 4.15887546 6.96359333 3.97499388 7.15193679C2.95731966 8.16499644 2.66333288 8.97771922 2.77290903 10.3548433C2.86347409 11.8242645 4.01769529 13.1628244 5.73360996 13.7141752C6.42393225 13.9308094 7.08993386 14.0 8.24418607 14.0C9.69409954 14.0 11.010192 13.6175745 11.8475477 12.9475461C12.7611494 12.2214478 13.2954545 11.1244618 13.2954545 10.0058997C13.2954545 8.86286776 12.7876949 7.76058164 11.8769727 6.9600938C11.3838667 6.53505399 10.722397 6.11798563 9.75901067 5.60447735C9.08955454 5.26286683 8.4719792 4.75203246 8.02479915 4.11379651C7.77978416 4.4739196 7.45874047 4.78154253 7.06561268 5.02241519C7.06561268 5.02241519 7.06561268 5.02241519 7.06561268 5.02241519M13.1898674 5.45132743C14.5364638 6.63126844 15.2954545 8.28318584 15.2954545 10.0058997C15.2954545 11.7286136 14.4874967 13.4041
298 13.0919331 14.5132743C11.7943039 15.5516224 9.98251962 16.0 8.24418607 16.0C7.16690894 16.0 6.1875661 15.9528024 5.13477254 15.6224189C2.71089901 14.8436578 0.923598318 12.8613569 0.776696891 10.4778761C0.629795465 8.63716814 1.07049974 7.22123894 2.56399758 5.73451327C3.32298828 4.95575221 4.88993683 4.05899705 5.96721396 3.35103245C6.50585253 3.02064897 7.06897466 2.02949853 5.99169753 0.16519174C5.99169753 0.16519174 6.21204967 0.0 6.21204967 0.0C6.21204967 0.0 9.41939748 1.27433628 9.41939748 1.27433628C8.97869321 2.64306785 10.2518389 3.61061947 10.6680596 3.82300885C11.5984353 4.31858407 12.4798439 4.83775811 13.1898674 5.45132743C13.1898674 5.45132743 13.1898674 5.45132743 13.1898674 5.45132743" />
+ <path d="M8.27272727 5.0C8.49625435 5.67889606 9.03172133 6.21869701 9.63636041 6.5268042C10.3279607 6.89485621 10.8036714 7.19446079 11.1684763 7.5087455C11.8759239 8.12902347 12.2727273 8.98864463 12.2727273 9.88278877C12.2727273 10.7655864 11.852758 11.6266312 11.1353943 12.1959748C10.4876507 12.713565 9.5005326 13.0 8.42423809 13.0C8.37244863 13.0 8.32197458 12.9998006 8.27272727 12.9993871C8.27272727 12.9993871 8.27272727 5.0 8.27272727 5.0C8.27272727 5.0 8.27272727 5.0 8.27272727 5.0" />
+ </g>
</svg>
1
0

[torbutton/master] Bug 25658: Replace security slider with security level UI
by gk@torproject.org 15 Mar '19
by gk@torproject.org 15 Mar '19
15 Mar '19
commit 5a3d6d26e1f8046b20e51d93ca9457a729063bfc
Author: Richard Pospesel <richard(a)torproject.org>
Date: Thu Mar 14 13:55:28 2019 -0700
Bug 25658: Replace security slider with security level UI
This patch has security level related changes for torbutton.
Migrated 'security level' related strings from torbutton.dtd to new
securityLevel.properties file, loaded by JS in the new securitylevel
component in Tor Browser. Removed the old Security Slider xul and menu
entry in the torbutton menu. Also 'fixed' the german (de) torbutton.dtd
file (was valid listing of XML entities, but it broke my dtd parser used
to migrate strings)
Added new "extensions.torbutton.inserted_security_level" pref to
torbutton that piggy backs off the existing
"extensions.torbutton.inserted_button" pref logic. Toolbars are reset to
the Tor Browser default when the new 'inserted_security_level' pref is
false. Coupled with the changes in tor-browser, users which upgrade will
have their toolbars reset to the new design.
---
.gitignore | 1 +
src/chrome/content/popup.xul | 5 -
src/chrome/content/preferences.js | 126 ------------------
src/chrome/content/preferences.xul | 155 -----------------------
src/chrome/content/torbutton.js | 59 ++++-----
src/chrome/locale/af/torbutton.dtd | 1 -
src/chrome/locale/ak/torbutton.dtd | 1 -
src/chrome/locale/am/torbutton.dtd | 1 -
src/chrome/locale/ar/securityLevel.properties | 16 +++
src/chrome/locale/ar/torbutton.dtd | 4 -
src/chrome/locale/arn/torbutton.dtd | 1 -
src/chrome/locale/ast/torbutton.dtd | 1 -
src/chrome/locale/az/securityLevel.properties | 1 +
src/chrome/locale/az/torbutton.dtd | 1 -
src/chrome/locale/be/torbutton.dtd | 1 -
src/chrome/locale/bg/securityLevel.properties | 1 +
src/chrome/locale/bg/torbutton.dtd | 1 -
src/chrome/locale/bms/securityLevel.properties | 1 +
src/chrome/locale/bms/torbutton.dtd | 1 -
src/chrome/locale/bn-BD/securityLevel.properties | 16 +++
src/chrome/locale/bn-BD/torbutton.dtd | 4 -
src/chrome/locale/bn-IN/torbutton.dtd | 1 -
src/chrome/locale/bn/torbutton.dtd | 1 -
src/chrome/locale/bo/torbutton.dtd | 1 -
src/chrome/locale/br/torbutton.dtd | 1 -
src/chrome/locale/bs/securityLevel.properties | 1 +
src/chrome/locale/bs/torbutton.dtd | 1 -
src/chrome/locale/ca/securityLevel.properties | 16 +++
src/chrome/locale/ca/torbutton.dtd | 4 -
src/chrome/locale/cs/securityLevel.properties | 16 +++
src/chrome/locale/cs/torbutton.dtd | 4 -
src/chrome/locale/csb/torbutton.dtd | 1 -
src/chrome/locale/cy/torbutton.dtd | 1 -
src/chrome/locale/da/securityLevel.properties | 16 +++
src/chrome/locale/da/torbutton.dtd | 4 -
src/chrome/locale/de/securityLevel.properties | 16 +++
src/chrome/locale/de/torbutton.dtd | 7 +-
src/chrome/locale/dz/torbutton.dtd | 1 -
src/chrome/locale/el/securityLevel.properties | 16 +++
src/chrome/locale/el/torbutton.dtd | 4 -
src/chrome/locale/en-US/securityLevel.properties | 22 ++++
src/chrome/locale/en-US/torbutton.dtd | 4 -
src/chrome/locale/eo/securityLevel.properties | 1 +
src/chrome/locale/eo/torbutton.dtd | 1 -
src/chrome/locale/es-AR/securityLevel.properties | 16 +++
src/chrome/locale/es-AR/torbutton.dtd | 4 -
src/chrome/locale/es/securityLevel.properties | 16 +++
src/chrome/locale/es/torbutton.dtd | 4 -
src/chrome/locale/et/torbutton.dtd | 1 -
src/chrome/locale/eu/securityLevel.properties | 16 +++
src/chrome/locale/eu/torbutton.dtd | 4 -
src/chrome/locale/fa/securityLevel.properties | 16 +++
src/chrome/locale/fa/torbutton.dtd | 4 -
src/chrome/locale/fi/securityLevel.properties | 1 +
src/chrome/locale/fi/torbutton.dtd | 1 -
src/chrome/locale/fil/torbutton.dtd | 1 -
src/chrome/locale/fo/torbutton.dtd | 1 -
src/chrome/locale/fr/securityLevel.properties | 16 +++
src/chrome/locale/fr/torbutton.dtd | 4 -
src/chrome/locale/fur/torbutton.dtd | 1 -
src/chrome/locale/fy/torbutton.dtd | 1 -
src/chrome/locale/ga/securityLevel.properties | 16 +++
src/chrome/locale/ga/torbutton.dtd | 4 -
src/chrome/locale/gl/securityLevel.properties | 1 +
src/chrome/locale/gl/torbutton.dtd | 1 -
src/chrome/locale/gu/securityLevel.properties | 1 +
src/chrome/locale/gu/torbutton.dtd | 1 -
src/chrome/locale/gun/torbutton.dtd | 1 -
src/chrome/locale/ha/torbutton.dtd | 1 -
src/chrome/locale/he/securityLevel.properties | 16 +++
src/chrome/locale/he/torbutton.dtd | 4 -
src/chrome/locale/hi/torbutton.dtd | 1 -
src/chrome/locale/hr/torbutton.dtd | 1 -
src/chrome/locale/ht/torbutton.dtd | 1 -
src/chrome/locale/hu/securityLevel.properties | 16 +++
src/chrome/locale/hu/torbutton.dtd | 4 -
src/chrome/locale/hy/torbutton.dtd | 1 -
src/chrome/locale/id/securityLevel.properties | 16 +++
src/chrome/locale/id/torbutton.dtd | 4 -
src/chrome/locale/is/securityLevel.properties | 16 +++
src/chrome/locale/is/torbutton.dtd | 4 -
src/chrome/locale/it/securityLevel.properties | 16 +++
src/chrome/locale/it/torbutton.dtd | 4 -
src/chrome/locale/ja/securityLevel.properties | 16 +++
src/chrome/locale/ja/torbutton.dtd | 4 -
src/chrome/locale/jv/torbutton.dtd | 1 -
src/chrome/locale/ka/securityLevel.properties | 16 +++
src/chrome/locale/ka/torbutton.dtd | 4 -
src/chrome/locale/km/torbutton.dtd | 1 -
src/chrome/locale/kn/torbutton.dtd | 1 -
src/chrome/locale/ko/securityLevel.properties | 16 +++
src/chrome/locale/ko/torbutton.dtd | 4 -
src/chrome/locale/ku/torbutton.dtd | 1 -
src/chrome/locale/kw/torbutton.dtd | 1 -
src/chrome/locale/ky/torbutton.dtd | 1 -
src/chrome/locale/lb/torbutton.dtd | 1 -
src/chrome/locale/lg/torbutton.dtd | 1 -
src/chrome/locale/ln/torbutton.dtd | 1 -
src/chrome/locale/lo/torbutton.dtd | 1 -
src/chrome/locale/lt/securityLevel.properties | 1 +
src/chrome/locale/lt/torbutton.dtd | 1 -
src/chrome/locale/lv/securityLevel.properties | 1 +
src/chrome/locale/lv/torbutton.dtd | 1 -
src/chrome/locale/mg/torbutton.dtd | 1 -
src/chrome/locale/mi/torbutton.dtd | 1 -
src/chrome/locale/mk/securityLevel.properties | 1 +
src/chrome/locale/mk/torbutton.dtd | 1 -
src/chrome/locale/ml/torbutton.dtd | 1 -
src/chrome/locale/mn/torbutton.dtd | 1 -
src/chrome/locale/mr/torbutton.dtd | 1 -
src/chrome/locale/ms/torbutton.dtd | 1 -
src/chrome/locale/mt/torbutton.dtd | 1 -
src/chrome/locale/my/securityLevel.properties | 1 +
src/chrome/locale/my/torbutton.dtd | 1 -
src/chrome/locale/nah/torbutton.dtd | 1 -
src/chrome/locale/nap/torbutton.dtd | 1 -
src/chrome/locale/nb/securityLevel.properties | 16 +++
src/chrome/locale/nb/torbutton.dtd | 4 -
src/chrome/locale/ne/torbutton.dtd | 1 -
src/chrome/locale/nl/securityLevel.properties | 16 +++
src/chrome/locale/nl/torbutton.dtd | 4 -
src/chrome/locale/nn/torbutton.dtd | 1 -
src/chrome/locale/nso/torbutton.dtd | 1 -
src/chrome/locale/oc/torbutton.dtd | 1 -
src/chrome/locale/or/torbutton.dtd | 1 -
src/chrome/locale/pa/torbutton.dtd | 1 -
src/chrome/locale/pap/torbutton.dtd | 1 -
src/chrome/locale/pl/securityLevel.properties | 16 +++
src/chrome/locale/pl/torbutton.dtd | 4 -
src/chrome/locale/pms/torbutton.dtd | 1 -
src/chrome/locale/ps/torbutton.dtd | 1 -
src/chrome/locale/pt-BR/securityLevel.properties | 16 +++
src/chrome/locale/pt-BR/torbutton.dtd | 4 -
src/chrome/locale/pt/securityLevel.properties | 1 +
src/chrome/locale/pt/torbutton.dtd | 4 -
src/chrome/locale/ro/securityLevel.properties | 1 +
src/chrome/locale/ro/torbutton.dtd | 1 -
src/chrome/locale/ru/securityLevel.properties | 16 +++
src/chrome/locale/ru/torbutton.dtd | 4 -
src/chrome/locale/sco/torbutton.dtd | 1 -
src/chrome/locale/sk/securityLevel.properties | 1 +
src/chrome/locale/sk/torbutton.dtd | 1 -
src/chrome/locale/sl/securityLevel.properties | 1 +
src/chrome/locale/sl/torbutton.dtd | 1 -
src/chrome/locale/so/torbutton.dtd | 1 -
src/chrome/locale/son/torbutton.dtd | 1 -
src/chrome/locale/sq/torbutton.dtd | 1 -
src/chrome/locale/sr/securityLevel.properties | 1 +
src/chrome/locale/sr/torbutton.dtd | 1 -
src/chrome/locale/st/torbutton.dtd | 1 -
src/chrome/locale/su/torbutton.dtd | 1 -
src/chrome/locale/sv/securityLevel.properties | 16 +++
src/chrome/locale/sv/torbutton.dtd | 4 -
src/chrome/locale/sw/torbutton.dtd | 1 -
src/chrome/locale/ta/torbutton.dtd | 1 -
src/chrome/locale/te/torbutton.dtd | 1 -
src/chrome/locale/tg/torbutton.dtd | 1 -
src/chrome/locale/th/torbutton.dtd | 1 -
src/chrome/locale/ti/torbutton.dtd | 1 -
src/chrome/locale/tk/torbutton.dtd | 1 -
src/chrome/locale/tr/securityLevel.properties | 16 +++
src/chrome/locale/tr/torbutton.dtd | 4 -
src/chrome/locale/uk/securityLevel.properties | 1 +
src/chrome/locale/uk/torbutton.dtd | 1 -
src/chrome/locale/ur/torbutton.dtd | 1 -
src/chrome/locale/ve/torbutton.dtd | 1 -
src/chrome/locale/vi/securityLevel.properties | 16 +++
src/chrome/locale/vi/torbutton.dtd | 4 -
src/chrome/locale/wa/torbutton.dtd | 1 -
src/chrome/locale/wo/torbutton.dtd | 1 -
src/chrome/locale/zh-CN/securityLevel.properties | 16 +++
src/chrome/locale/zh-CN/torbutton.dtd | 4 -
src/chrome/locale/zh-HK/torbutton.dtd | 1 -
src/chrome/locale/zh-TW/securityLevel.properties | 16 +++
src/chrome/locale/zh-TW/torbutton.dtd | 4 -
src/chrome/locale/zu/torbutton.dtd | 1 -
src/defaults/preferences/preferences.js | 1 +
trans_tools/import-translations.sh | 1 +
178 files changed, 566 insertions(+), 541 deletions(-)
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..5fff1d9c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+pkg
diff --git a/src/chrome/content/popup.xul b/src/chrome/content/popup.xul
index 582593f6..5d9b76ce 100644
--- a/src/chrome/content/popup.xul
+++ b/src/chrome/content/popup.xul
@@ -27,11 +27,6 @@
insertafter="context-stop"
hidden="true"
oncommand="torbutton_open_cookie_dialog()"/>
- <menuitem id="torbutton-preferences"
- label="&torbutton.context_menu.preferences;"
- accesskey="&torbutton.context_menu.preferences.key;"
- insertafter="context-stop"
- oncommand="torbutton_open_prefs_dialog()"/>
<menuitem id="torbutton-networksettings"
label="&torbutton.context_menu.networksettings;"
accesskey="&torbutton.context_menu.networksettings.key;"
diff --git a/src/chrome/content/preferences.js b/src/chrome/content/preferences.js
deleted file mode 100644
index 81668d6e..00000000
--- a/src/chrome/content/preferences.js
+++ /dev/null
@@ -1,126 +0,0 @@
-// # Security Settings User Interface
-
-// Utilities
-let { utils: Cu } = Components;
-let { getBoolPref, getIntPref, setBoolPref, setIntPref, getCharPref } =
- Cu.import("resource://gre/modules/Services.jsm", {}).Services.prefs;
-
-let { getLocale, show_torbrowser_manual } =
- Cu.import("resource://torbutton/modules/utils.js", {});
-
-// Description elements have the follow names.
-const descNames =
- [, "desc_safest", "desc_safer", "desc_standard"];
-// "Learn-more"-elements have the follow names.
-const linkNames =
- [, "link_safest", "link_safer", "link_standard"];
-// A single `state` object that reflects the user settings in this UI.
-
-let state = { slider : 0, custom : false};
-
-// Utility functions to convert between the legacy 4-value pref index
-// and the 3-valued security slider.
-let sliderPositionToPrefSetting = pos => [, 1, 2, 4][pos];
-let prefSettingToSliderPosition = pref => [, 1, 2, 2, 3][pref];
-
-// Set the desired slider value and update UI.
-function torbutton_set_slider(sliderPosition) {
- state.slider = sliderPosition;
- let slider = document.getElementById("torbutton_sec_slider");
- slider.value = sliderPosition;
- let descs = descNames.map(name => document.getElementById(name));
- descs.forEach((desc, i) => desc.collapsed = sliderPosition !== i);
-};
-
-// Set the desired custom value and update UI.
-function torbutton_set_custom(customValue) {
- state.custom = customValue;
- let sliderSettings = document.getElementById("torbutton_slider_settings");
- let customSettings = document.getElementById("torbutton_custom_settings");
- sliderSettings.hidden = customValue;
- customSettings.hidden = !customValue;
-};
-
-// Read prefs 'extensions.torbutton.security_slider' and
-// 'extensions.torbutton.security_custom', and initialize the UI.
-function torbutton_init_security_ui() {
- torbutton_set_slider(prefSettingToSliderPosition(
- getIntPref("extensions.torbutton.security_slider")));
- torbutton_set_custom(getBoolPref("extensions.torbutton.security_custom"));
- torbutton_set_learn_more_links();
- // Make sure the "Accept"-button is focused when we show the dialog and not a
- // possible "Learn more"-link. See: comment:16 in bug 21847.
- let okBtn = document.documentElement.getButton("accept");
- if (okBtn)
- okBtn.focus();
- setTimeout(adjustDialogSize, 0);
-};
-
-// Write the two prefs from the current settings.
-function torbutton_save_security_settings() {
- setIntPref("extensions.torbutton.security_slider",
- sliderPositionToPrefSetting(state.slider));
- setBoolPref("extensions.torbutton.security_custom", state.custom);
-};
-
-// We follow the way we treat the links to the Tor Browser User Manual on the
-// Help Menu and on about:tor: if we have the manual available for a locale,
-// let's show the "Learn more"-link, otherwise hide it.
-function torbutton_set_learn_more_links() {
- let show_manual = show_torbrowser_manual();
- let locale = ""
- if (show_manual) {
- locale = getLocale();
- }
- let links = linkNames.map(name => document.getElementById(name));
- links.forEach(link => {;
- if (show_manual && locale != "") {
- link.href= "https:/tb-manual.torproject.org/" + locale +
- "/security-slider.html";
- link.hidden = false;
- } else {
- link.hidden = true;
- }
- });
-}
-
-// Increase the height of this window so that a vertical scrollbar is not
-// needed on the description box.
-function adjustDialogSize() {
- try {
- // Find the height required by the tallest description element.
- let descHeight = 0;
- let descs = descNames.map(name => document.getElementById(name));
- descs.forEach(elem => {
- let origCollapsed = elem.collapsed;
- elem.collapsed = false;
- let h = elem.scrollHeight;
- elem.collapsed = origCollapsed;
- if (h > descHeight)
- descHeight = h;
- });
-
- // Cap the height (just in case).
- const kMaxDescriptionHeight = 550;
- if (descHeight > kMaxDescriptionHeight)
- descHeight = kMaxDescriptionHeight;
-
- // Increase the height of the description container if it is too short.
- let boxElem = document.getElementById("descBox");
- if (boxElem.clientHeight < descHeight) {
- boxElem.setAttribute("height", descHeight);
-
- // Resize the XUL window to account for the new description height. In
- // order for sizeToContent() to work correctly, it seems that we must
- // remove the height attribute from the dialog (that attribute is added
- // after a user manually resizes the window).
- document.documentElement.removeAttribute("height");
- sizeToContent();
- }
- } catch (e) {}
-
- // Show a scrollbar for the description text if one is needed.
- // To avoid bug 21330, we set the overflow=auto style here instead
- // of directly in the XUL.
- document.getElementById("descBox").style.overflow = "auto";
-}
diff --git a/src/chrome/content/preferences.xul b/src/chrome/content/preferences.xul
deleted file mode 100644
index a6fabff3..00000000
--- a/src/chrome/content/preferences.xul
+++ /dev/null
@@ -1,155 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://torbutton/skin/preferences.css" type="text/css"?>
-
-<!DOCTYPE overlay SYSTEM "chrome://torbutton/locale/torbutton.dtd">
-
-<dialog id="torbutton-prefs"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
- xmlns:html="http://www.w3.org/1999/xhtml"
- title="&torbutton.prefs.security_settings;"
- buttons="accept,cancel"
- persist="screenX screenY width height"
- onload="torbutton_init_security_ui()"
- align="stretch"
- pack="center"
- maxheight="600"
- minwidth="400"
- maxwidth="800"
- ondialogaccept="torbutton_save_security_settings()"
- width="500" >
-
- <script type="application/x-javascript" src="torbutton_util.js"/>
- <script type="application/x-javascript" src="preferences.js"/>
- <vbox flex="1" align="stretch">
- <groupbox align="stretch" flex="1"> <!-- security settings container -->
- <caption label="&torbutton.prefs.sec_caption;"/>
- <hbox id="torbutton_slider_settings" flex="1" align="stretch" hidden="false">
- <vbox>
- <hbox flex="1" minheight="220">
- <vbox>
- <scale id="torbutton_sec_slider" flex="1" min="1" max="3"
- movetoclick="true" orient="vertical"
- onchange="torbutton_set_slider(this.value)"/>
- </vbox>
- <vbox>
- <hbox flex="1" align="start">
- <description id="torbutton_sec_safest"
- onclick="torbutton_set_slider(1);"
- tooltip="safest_preview">
- &torbutton.prefs.sec_safest_label;
- </description>
- </hbox>
- <hbox flex="1" align="center">
- <description id="torbutton_sec_safer"
- onclick="torbutton_set_slider(2);"
- tooltip="safer_preview">
- &torbutton.prefs.sec_safer_label;
- </description>
- </hbox>
- <hbox flex="1" align="end">
- <description id="torbutton_sec_standard"
- onclick="torbutton_set_slider(3);"
- tooltip="standard_preview">
- &torbutton.prefs.sec_standard_label;
- </description>
- </hbox>
- </vbox>
- </hbox>
- </vbox>
- <vbox id="descBox" flex="1" style="overflow: hidden;">
- <vbox id="desc_safest" collapsed="true">
- <description
- class="slider-text-size, slider-text-weight">
- &torbutton.prefs.sec_safest_description;
- </description>
- <separator orient="horizontal" class="thin"/>
- <description class="slider-text-size, slider-text-weight">
- &torbutton.prefs.sec_safest_list_label;
- </description>
- <description class="slider-text-size">
- &torbutton.prefs.sec_js_disabled;
- </description>
- <description class="slider-text-size">
- &torbutton.prefs.sec_limit_graphics_and_typography;
- </description>
- <description class="slider-text-size">
- &torbutton.prefs.sec_click_to_play_media;
- </description>
- <separator orient="horizontal" class="thin"/>
- <label id="link_safest" class="text-link">
- &torbutton.prefs.sec_learn_more_label;
- </label>
- </vbox>
- <vbox id="desc_safer" collapsed="true">
- <description
- class="slider-text-size, slider-text-weight">
- &torbutton.prefs.sec_safer_description;
- </description>
- <separator orient="horizontal" class="thin"/>
- <description class="slider-text-size, slider-text-weight">
- &torbutton.prefs.sec_safer_list_label;
- </description>
- <description class="slider-text-size">
- &torbutton.prefs.sec_js_on_https_sites_only;
- </description>
- <description class="slider-text-size">
- &torbutton.prefs.sec_limit_typography;
- </description>
- <description class="slider-text-size">
- &torbutton.prefs.sec_click_to_play_media;
- </description>
- <separator orient="horizontal" class="thin"/>
- <label id="link_safer" class="text-link">
- &torbutton.prefs.sec_learn_more_label;
- </label>
- </vbox>
- <vbox id="desc_standard" collapsed="false">
- <description
- class="slider-text-size, slider-text-weight">
- &torbutton.prefs.sec_standard_description;
- </description>
- <separator orient="horizontal" class="thin"/>
- <label id="link_standard" class="text-link">
- &torbutton.prefs.sec_learn_more_label;
- </label>
- </vbox>
- </vbox>
- </hbox>
- <vbox id="torbutton_custom_settings"
- hidden="true"
- width="300"
- height="200"
- style="overflow:auto;">
- <description>
- &torbutton.prefs.custom_warning;
- </description>
- <hbox>
- <button id="torbutton_restore_defaults_button"
- oncommand="torbutton_set_custom(false);"
- label="&torbutton.prefs.restore_defaults;"/>
- </hbox>
- </vbox>
- </groupbox>
- </vbox>
-
- <tooltip id="safest_preview">
- <html:b>&torbutton.prefs.sec_safest_list_label;</html:b>
- <html:br></html:br>
- <html:br></html:br>
- <html:div>&torbutton.prefs.sec_js_disabled;</html:div>
- <html:div>&torbutton.prefs.sec_limit_graphics_and_typography;</html:div>
- <html:div>&torbutton.prefs.sec_click_to_play_media;</html:div>
- </tooltip>
- <tooltip id="safer_preview">
- <html:b>&torbutton.prefs.sec_safer_list_label;</html:b>
- <html:br></html:br>
- <html:br></html:br>
- <html:div>&torbutton.prefs.sec_js_on_https_sites_only;</html:div>
- <html:div>&torbutton.prefs.sec_limit_typography;</html:div>
- <html:div>&torbutton.prefs.sec_click_to_play_media;</html:div>
- </tooltip>
- <tooltip id="standard_preview">
- <html:b>&torbutton.prefs.sec_standard_description;</html:b>
- </tooltip>
- </dialog>
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index b425a276..15e8d174 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -125,7 +125,7 @@ var torbutton_unique_pref_observer =
* registers. Thankfully, these notifications arrive only on
* the main thread, *however*, our confirmation dialog suspends
* execution and allows more events to arrive until it is answered
- */
+ */
if (!m_tb_confirming_plugins) {
m_tb_confirming_plugins = true;
torbutton_confirm_plugins();
@@ -368,22 +368,27 @@ function torbutton_init() {
//if (contextMenu)
// contextMenu.addEventListener("popupshowing", torbutton_check_contextmenu, false);
- // Add toolbutton to the bar.
+ // Add torbutton and security level button to the bar.
// This should maybe be in the startup function, but we want to add
// the button to the panel before it's state (color) is set..
- if (!m_tb_prefs.getBoolPref("extensions.torbutton.inserted_button")) {
+ if (!m_tb_prefs.getBoolPref("extensions.torbutton.inserted_button") ||
+ !m_tb_prefs.getBoolPref("extensions.torbutton.inserted_security_level")) {
torbutton_log(3, 'Adding button');
try {
// ESR31-style toolbar is handled by the existing compiled-in pref.
// We also need to prevent first-run toolbar reorg (#13378), so we
// reset this toolbar state on first-run.
try {
+ // reverts the serialized toolbar state to default set in Tor Browser
m_tb_prefs.clearUserPref("browser.uiCustomization.state");
} catch(e) {}
+ // reverts toolbar state to firefox defaults
CustomizableUI.reset();
+ // 'restores' toolbar state from serialized state in "browser.uiCustomization.state"
CustomizableUI.undoReset();
torbutton_log(3, 'Button added');
m_tb_prefs.setBoolPref("extensions.torbutton.inserted_button", true);
+ m_tb_prefs.setBoolPref("extensions.torbutton.inserted_security_level", true);
} catch(e) {
torbutton_log(4, 'Failed to add Torbutton to toolbar: '+e);
}
@@ -477,7 +482,7 @@ function torbutton_confirm_plugins() {
torbutton_log(3, "False positive on plugin notification. Ignoring");
return;
}
-
+
torbutton_log(3, "Confirming plugin usage.");
var prompts = Cc["@mozilla.org/embedcomp/prompt-service;1"]
@@ -485,7 +490,7 @@ function torbutton_confirm_plugins() {
// Display two buttons, both with string titles.
var flags = prompts.STD_YES_NO_BUTTONS + prompts.BUTTON_DELAY_ENABLE;
-
+
var message = torbutton_get_property_string("torbutton.popup.confirm_plugins");
var askAgainText = torbutton_get_property_string("torbutton.popup.never_ask_again");
var askAgain = {value: false};
@@ -500,7 +505,7 @@ function torbutton_confirm_plugins() {
// The pref observer for "plugin.disable" will set the appropriate plugin state.
// So, we only touch the pref if it has changed.
- if (no_plugins !=
+ if (no_plugins !=
m_tb_prefs.getBoolPref("plugin.disable"))
m_tb_prefs.setBoolPref("plugin.disable", no_plugins);
else
@@ -511,12 +516,12 @@ function torbutton_confirm_plugins() {
var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator);
var browserEnumerator = wm.getEnumerator("navigator:browser");
-
+
// Check each browser instance for our URL
while (browserEnumerator.hasMoreElements()) {
var browserWin = browserEnumerator.getNext();
var tabbrowser = browserWin.gBrowser;
-
+
// Check each tab of this browser instance
var numTabs = tabbrowser.browsers.length;
for (var index = 0; index < numTabs; index++) {
@@ -650,7 +655,7 @@ function torbutton_do_async_versioncheck() {
req.open('GET', url, true);
req.channel.loadFlags |= Ci.nsIRequest.LOAD_BYPASS_CACHE;
req.overrideMimeType("text/json");
- req.onreadystatechange = function (oEvent) {
+ req.onreadystatechange = function (oEvent) {
if (req.readyState === 4) {
if(req.status == 200) {
if(!req.responseText) {
@@ -696,8 +701,8 @@ function torbutton_do_async_versioncheck() {
}
torbutton_log(5, "Version check failed! Web server error: "+req.status);
return -1;
- }
- };
+ }
+ };
req.send(null);
} catch(e) {
if(e.result == 0x80004005) { // NS_ERROR_FAILURE
@@ -1651,13 +1656,6 @@ function torbutton_open_cookie_dialog() {
'Cookie Protections', 'centerscreen,chrome,dialog,modal,resizable');
}
-// Bug 1506 P2/P3: Prefs are handled differently on android, I guess?
-function torbutton_open_prefs_dialog() {
- showDialog(window, "chrome://torbutton/content/preferences.xul",
- "torbutton-preferences","centerscreen, chrome");
- torbutton_log(2, 'opened preferences window');
-}
-
// -------------- HISTORY & COOKIES ---------------------
// Bug 1506 P4: Used by New Identity if cookie protections are
@@ -1666,7 +1664,7 @@ function torbutton_clear_cookies() {
torbutton_log(2, 'called torbutton_clear_cookies');
var cm = Components.classes["@mozilla.org/cookiemanager;1"]
.getService(Components.interfaces.nsICookieManager);
-
+
cm.removeAll();
}
@@ -1688,7 +1686,7 @@ function torbutton_disable_browser_js(browser) {
} catch(e) {
torbutton_log(4, "Failed to disable JS events: "+e)
}
-
+
if (browser.docShell)
browser.docShell.allowJavascript = false;
@@ -1721,9 +1719,9 @@ function torbutton_disable_window_js(win) {
var b = browser.browsers[i];
if (b && !b.docShell) {
try {
- if (b.currentURI)
+ if (b.currentURI)
torbutton_log(5, "DocShell is null for: "+b.currentURI.spec);
- else
+ else
torbutton_log(5, "DocShell is null for unknown URL");
} catch(e) {
torbutton_log(5, "DocShell is null for unparsable URL: "+e);
@@ -1867,12 +1865,12 @@ function torbutton_is_windowed(wind) {
torbutton_log(2, "Window is fullScreen");
return false;
}
- if(wind.outerHeight == wind.screen.availHeight
+ if(wind.outerHeight == wind.screen.availHeight
&& wind.outerWidth == wind.screen.availWidth) {
torbutton_log(3, "Window is ratpoisoned/evilwm'ed");
return false;
}
-
+
torbutton_log(2, "Window is normal");
return true;
}
@@ -1955,12 +1953,7 @@ function torbutton_new_window(event)
Ci.nsIWebProgress.NOTIFY_STATE_DOCUMENT);
}
- // Register the TorOpenSecuritySettings observer, which is used by
- // UITour to open the security slider dialog.
- stopOpenSecuritySettingsObserver = observe("TorOpenSecuritySettings",
- torbutton_open_prefs_dialog);
-
- // Check the version on every new window. We're already pinging check in these cases.
+ // Check the version on every new window. We're already pinging check in these cases.
torbutton_do_async_versioncheck();
torbutton_do_tor_check();
@@ -1977,9 +1970,9 @@ function torbutton_close_window(event) {
false);
// TODO: This is a real ghetto hack.. When the original window
- // closes, we need to find another window to handle observing
- // unique events... The right way to do this is to move the
- // majority of torbutton functionality into a XPCOM component..
+ // closes, we need to find another window to handle observing
+ // unique events... The right way to do this is to move the
+ // majority of torbutton functionality into a XPCOM component..
// But that is a major overhaul..
if (m_tb_is_main_window) {
torbutton_log(3, "Original window closed. Searching for another");
diff --git a/src/chrome/locale/af/torbutton.dtd b/src/chrome/locale/af/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/af/torbutton.dtd
+++ b/src/chrome/locale/af/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/ak/torbutton.dtd b/src/chrome/locale/ak/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/ak/torbutton.dtd
+++ b/src/chrome/locale/ak/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/am/torbutton.dtd b/src/chrome/locale/am/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/am/torbutton.dtd
+++ b/src/chrome/locale/am/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/ar/securityLevel.properties b/src/chrome/locale/ar/securityLevel.properties
new file mode 100644
index 00000000..c8e3c161
--- /dev/null
+++ b/src/chrome/locale/ar/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = مستوى الأمان
+securityLevel.standard.level = عادي
+securityLevel.standard.summary = كل خصائص متصفح تور ومواقع الوب مفعلة
+securityLevel.safer.level = آمِن
+securityLevel.safer.summary = يعطل مميزات مواقع الوب التي عادة ما تكون خطيرة. يتسبب في تعطل خصائص بعض المواقع.
+securityLevel.safer.description1 = تعطل جافا سكربت على المواقع التي لا تستخدم HTTPS
+securityLevel.safer.description2 = تعطّل بعض الخطوط والرموز الرياضية.
+securityLevel.safer.description3 = الصوت والفيديو يحتاج للنقر لتشغيله.
+securityLevel.safest.level = الأكثر أمنا
+securityLevel.safest.summary = اسمح فقط بالخصائص المطلوبة للمواقع غير الديناميكية والخدمات الأساسية. تؤثر هذه التغييرات على الصور والوسائط والنصوص البرمجية.
+securityLevel.safest.description1 = تعطل جافا سكربت مبدئيا على جميع المواقع.
+securityLevel.safest.description2 = تعطّل بعض الخطوط والأيقونات والرموز الرياضية والصور.
+securityLevel.safest.description3 = الصوت والفيديو يحتاج للنقر لتشغيله.
+securityLevel.custom.summary = تفضيلاتك الخاصة للمتصفح تسببت في إعدادات أمان غير معتادة. لأمان وخصوصية أفضل ننصح باستخدام أحد مستويات الأمان المبدئية.
+securityLevel.learnMore = تعرّف على المزيد
+securityLevel.restoreDefaults = استعد الإعادات المبدئية
diff --git a/src/chrome/locale/ar/torbutton.dtd b/src/chrome/locale/ar/torbutton.dtd
index baa7e5ff..9c2b5292 100644
--- a/src/chrome/locale/ar/torbutton.dtd
+++ b/src/chrome/locale/ar/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "دائرة تور جديدة لهذا الموقع">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "إعدادات الأمان...">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "إعدادات شبكة تور...">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "تحقق من تحديثات متصفح تور...">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "انقر لبدء زر تور">
<!ENTITY torbutton.prefs.security_settings "إعدادات أمان متصفح طور">
-<!ENTITY torbutton.prefs.restore_defaults "استعد الإعادات المبدئية">
-<!ENTITY torbutton.prefs.custom_warning "تفضيلاتك الخاصة للمتصفح تسببت في إعدادات أمان غير معتادة. لأمان وخصوصية أفضل ننصح باستخدام أحد مستويات الأمان المبدئية.">
<!ENTITY torbutton.cookiedialog.title "إدارة إعدادت الحماية لملفات تعريف الارتباط">
<!ENTITY torbutton.cookiedialog.lockCol "محمية">
<!ENTITY torbutton.cookiedialog.domainCol "استضافة">
diff --git a/src/chrome/locale/arn/torbutton.dtd b/src/chrome/locale/arn/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/arn/torbutton.dtd
+++ b/src/chrome/locale/arn/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/ast/torbutton.dtd b/src/chrome/locale/ast/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/ast/torbutton.dtd
+++ b/src/chrome/locale/ast/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/az/securityLevel.properties b/src/chrome/locale/az/securityLevel.properties
new file mode 100644
index 00000000..16b086a7
--- /dev/null
+++ b/src/chrome/locale/az/securityLevel.properties
@@ -0,0 +1 @@
+securityLevel.restoreDefaults = Varsayılanları yenidən yüklə
diff --git a/src/chrome/locale/az/torbutton.dtd b/src/chrome/locale/az/torbutton.dtd
index 5a5f20ca..589c6fe2 100644
--- a/src/chrome/locale/az/torbutton.dtd
+++ b/src/chrome/locale/az/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Tordüyməsini başlatmaq üçün klikləyin">
-<!ENTITY torbutton.prefs.restore_defaults "Varsayılanları yenidən yüklə">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/be/torbutton.dtd b/src/chrome/locale/be/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/be/torbutton.dtd
+++ b/src/chrome/locale/be/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/bg/securityLevel.properties b/src/chrome/locale/bg/securityLevel.properties
new file mode 100644
index 00000000..6d147b67
--- /dev/null
+++ b/src/chrome/locale/bg/securityLevel.properties
@@ -0,0 +1 @@
+securityLevel.restoreDefaults = Възстанови стандартните
diff --git a/src/chrome/locale/bg/torbutton.dtd b/src/chrome/locale/bg/torbutton.dtd
index 289efda2..52adc2ec 100644
--- a/src/chrome/locale/bg/torbutton.dtd
+++ b/src/chrome/locale/bg/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Възстанови стандартните">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/bms/securityLevel.properties b/src/chrome/locale/bms/securityLevel.properties
new file mode 100644
index 00000000..8cbfd400
--- /dev/null
+++ b/src/chrome/locale/bms/securityLevel.properties
@@ -0,0 +1 @@
+securityLevel.restoreDefaults = မူလအေျခအေနသို႕ ျပန္လည္ ထည့္သြင္းရန္
diff --git a/src/chrome/locale/bms/torbutton.dtd b/src/chrome/locale/bms/torbutton.dtd
index 8a7c8252..773b9efa 100644
--- a/src/chrome/locale/bms/torbutton.dtd
+++ b/src/chrome/locale/bms/torbutton.dtd
@@ -1,7 +1,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Torbutton စတင္ရန္ ကလစ္လုပ္ပါ">
-<!ENTITY torbutton.prefs.restore_defaults "မူလအေျခအေနသို႕ ျပန္လည္ ထည့္သြင္းရန္">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/bn-BD/securityLevel.properties b/src/chrome/locale/bn-BD/securityLevel.properties
new file mode 100644
index 00000000..731353ea
--- /dev/null
+++ b/src/chrome/locale/bn-BD/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = নিরাপত্তার মাত্রা
+securityLevel.standard.level = মান
+securityLevel.standard.summary = সমস্ত টর ব্রাউজার এবং ওয়েবসাইট বৈশিষ্ট্য সক্ষম করা হয়।
+securityLevel.safer.level = নিরাপদ
+securityLevel.safer.summary = ওয়েবসাইটের বৈশিষ্ট্যগুলি প্রায়ই বিপজ্জনক করে, যা কিছু সাইটগুলি কার্যকারিতা হারাতে বাধা দেয়।
+securityLevel.safer.description1 = Non-HTTPS সাইটগুলিতে জাভাস্ক্রিপ্ট অক্ষম করা আছে।
+securityLevel.safer.description2 = কিছু ফন্ট এবং গণিত চিহ্ন অক্ষম আছে।
+securityLevel.safer.description3 = অডিও এবং ভিডিও (HTML5 মিডিয়া) ক্লিক-টু-খেলা।
+securityLevel.safest.level = নিরাপদ
+securityLevel.safest.summary = শুধুমাত্র স্থায়ী সাইট এবং মৌলিক পরিষেবাগুলির জন্য প্রয়োজনীয় ওয়েবসাইট বৈশিষ্ট্যগুলি মঞ্জুরি দেয় এই পরিবর্তনগুলি ইমেজ, মিডিয়া এবং স্ক্রিপ্টগুলি প্রভাবিত করে।
+securityLevel.safest.description1 = জাভাস্ক্রিপ্ট সব সাইটে ডিফল্ট দ্বারা নিষ্ক্রিয় করা হয়।
+securityLevel.safest.description2 = কিছু ফন্ট, আইকন, গণিত প্রতীক এবং ছবি অক্ষম রয়েছে।
+securityLevel.safest.description3 = অডিও এবং ভিডিও (HTML5 মিডিয়া) ক্লিক-টু-খেলা।
+securityLevel.custom.summary = আপনার কাস্টম ব্রাউজারের পছন্দগুলির কারণে অস্বাভাবিক নিরাপত্তা সেটিংস দেখা দিয়েছে নিরাপত্তা এবং গোপনীয়তার কারণে, আমরা আপনাকে ডিফল্ট নিরাপত্তা স্তরগুলির একটি চয়ন করার সুপারিশ করি।
+securityLevel.learnMore = আরও জানুন
+securityLevel.restoreDefaults = পূর্বনির্ধারন পুনরুধার
diff --git a/src/chrome/locale/bn-BD/torbutton.dtd b/src/chrome/locale/bn-BD/torbutton.dtd
index 201f3111..449a49e3 100644
--- a/src/chrome/locale/bn-BD/torbutton.dtd
+++ b/src/chrome/locale/bn-BD/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "এই সাইটের জন্য নতুন টর সার্কিট">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "নিরাপত্তা বিন্যাস…">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "টর নেটওয়ার্ক সেটিংস ...">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "টর ব্রাউজার আপডেটের জন্য চেক করুন ...">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Torbutton আরম্ভ করার জন্য ক্লিক করুন">
<!ENTITY torbutton.prefs.security_settings "টর ব্রাউজার নিরাপত্তা সেটিংস">
-<!ENTITY torbutton.prefs.restore_defaults "পূর্বনির্ধারন পুনরুধার">
-<!ENTITY torbutton.prefs.custom_warning "আপনার কাস্টম ব্রাউজারের পছন্দগুলির কারণে অস্বাভাবিক নিরাপত্তা সেটিংস দেখা দিয়েছে নিরাপত্তা এবং গোপনীয়তার কারণে, আমরা আপনাকে ডিফল্ট নিরাপত্তা স্তরগুলির একটি চয়ন করার সুপারিশ করি।">
<!ENTITY torbutton.cookiedialog.title "কুকি প্রোটেকশনগুলি পরিচালনা করুন">
<!ENTITY torbutton.cookiedialog.lockCol "রক্ষিত">
<!ENTITY torbutton.cookiedialog.domainCol "নিমন্ত্রণকর্তা">
diff --git a/src/chrome/locale/bn-IN/torbutton.dtd b/src/chrome/locale/bn-IN/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/bn-IN/torbutton.dtd
+++ b/src/chrome/locale/bn-IN/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/bn/torbutton.dtd b/src/chrome/locale/bn/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/bn/torbutton.dtd
+++ b/src/chrome/locale/bn/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/bo/torbutton.dtd b/src/chrome/locale/bo/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/bo/torbutton.dtd
+++ b/src/chrome/locale/bo/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/br/torbutton.dtd b/src/chrome/locale/br/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/br/torbutton.dtd
+++ b/src/chrome/locale/br/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/bs/securityLevel.properties b/src/chrome/locale/bs/securityLevel.properties
new file mode 100644
index 00000000..a713fa96
--- /dev/null
+++ b/src/chrome/locale/bs/securityLevel.properties
@@ -0,0 +1 @@
+securityLevel.restoreDefaults = Vrati početno
diff --git a/src/chrome/locale/bs/torbutton.dtd b/src/chrome/locale/bs/torbutton.dtd
index 59167eb2..207f4312 100644
--- a/src/chrome/locale/bs/torbutton.dtd
+++ b/src/chrome/locale/bs/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Zaštita kolačića">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Klikni za pokretanje Torbutton-a">
-<!ENTITY torbutton.prefs.restore_defaults "Vrati početno">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/ca/securityLevel.properties b/src/chrome/locale/ca/securityLevel.properties
new file mode 100644
index 00000000..b17fba84
--- /dev/null
+++ b/src/chrome/locale/ca/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = Nivell de seguretat
+securityLevel.standard.level = Estàndard
+securityLevel.standard.summary = Totes les característiques del buscador Tor i de la pàgina web estan actives.
+securityLevel.safer.level = Més segur.
+securityLevel.safer.summary = Desactivar les funcions del lloc web que sovint són perilloses, pot fent que alguns llocs perden funcionalitat.
+securityLevel.safer.description1 = El JavaScript està desactivat per defecte en tots els llocs no-HTTPS
+securityLevel.safer.description2 = Algunes fonts i símbols matemàtics estan desactivats.
+securityLevel.safer.description3 = L'àudio i el vídeo (mitjans de comunicació HTML5) són click-to-play.
+securityLevel.safest.level = més segur
+securityLevel.safest.summary = Només es permeten funcions del lloc web requerides per a llocs estàtics i serveis bàsics. Aquests canvis afecten imatges, mitjans de comunicació i scripts.
+securityLevel.safest.description1 = El JavaScript està desactivat per defecte a tots els llocs.
+securityLevel.safest.description2 = Algunes fonts, icones, símbols matemàtics, i imatges estan desactivats.
+securityLevel.safest.description3 = L'àudio i el vídeo (mitjans de comunicació HTML5) són click-to-play.
+securityLevel.custom.summary = El navegador personalitzat ha obtingut uns paràmetres inusuals de seguretat. Per raons de privacitat i de seguretat, recomanem l'elecció d'un nivell de seguretat per defecte.
+securityLevel.learnMore = Apreneu-ne més
+securityLevel.restoreDefaults = Torna a les opcions per defecte
diff --git a/src/chrome/locale/ca/torbutton.dtd b/src/chrome/locale/ca/torbutton.dtd
index 0041973e..7537e1d7 100644
--- a/src/chrome/locale/ca/torbutton.dtd
+++ b/src/chrome/locale/ca/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "Nou circuit Tor per a aquest lloc">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "Paràmetres de seguretat...">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Preferències de la Xarxa Tor...7">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Cerca una actualització del navegador Tor...">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Feu clic per a iniciar Torbutton">
<!ENTITY torbutton.prefs.security_settings "Paràmetres de seguretat del navegador Tor">
-<!ENTITY torbutton.prefs.restore_defaults "Torna a les opcions per defecte">
-<!ENTITY torbutton.prefs.custom_warning "El navegador personalitzat ha obtingut uns paràmetres inusuals de seguretat. Per raons de privacitat i de seguretat, recomanem l'elecció d'un nivell de seguretat per defecte.">
<!ENTITY torbutton.cookiedialog.title "Configura proteccions de les galetes">
<!ENTITY torbutton.cookiedialog.lockCol "Protegit">
<!ENTITY torbutton.cookiedialog.domainCol "Allotjador">
diff --git a/src/chrome/locale/cs/securityLevel.properties b/src/chrome/locale/cs/securityLevel.properties
new file mode 100644
index 00000000..f9ab389a
--- /dev/null
+++ b/src/chrome/locale/cs/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = Úroveň zabezpečení
+securityLevel.standard.level = Standardní
+securityLevel.standard.summary = Všechny funkce prohlížeče Tor jsou zapnuté.
+securityLevel.safer.level = Bezpečnější
+securityLevel.safer.summary = Některé méně bezpečné funkce jsou vypnuty, ale některé stránky nemusí fungovat.
+securityLevel.safer.description1 = JavaScript je na stránkách bez HTTPS vypnut.
+securityLevel.safer.description2 = Některá písma a matematické symboly jsou zablokovány.
+securityLevel.safer.description3 = Audio a video (HTML5 média) se přehrávají po kliknutí.
+securityLevel.safest.level = Nejbezpečnější
+securityLevel.safest.summary = Povolí jen funkce pro zobrazení statických webových stránek a fungování základních služeb. Ovlivněno bude zobrazení obrázků, médií a fungování skriptů.
+securityLevel.safest.description1 = JavaScript je ve výchozím nastavení vypnut na všech stránkách.
+securityLevel.safest.description2 = Některá písma, matematické symboly a obrázky jsou zablokovány.
+securityLevel.safest.description3 = Audio a video (HTML5 média) se přehrávají po kliknutí.
+securityLevel.custom.summary = Vaše nastavení prohlížeče neodpovídá standardnímu nastavení zabezpečení. Z důvodu ochrany soukromí a zvýšení bezpečnosti vám doporučujeme vybrat si jednu z výchozích bezpečnostních úrovní.
+securityLevel.learnMore = Zjistit více
+securityLevel.restoreDefaults = Obnovit výchozí
diff --git a/src/chrome/locale/cs/torbutton.dtd b/src/chrome/locale/cs/torbutton.dtd
index 239dbc2f..1a4feeed 100644
--- a/src/chrome/locale/cs/torbutton.dtd
+++ b/src/chrome/locale/cs/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "i">
<!ENTITY torbutton.context_menu.new_circuit "Nový okruh Toru pro tuto stránku">
<!ENTITY torbutton.context_menu.new_circuit_key "o">
-<!ENTITY torbutton.context_menu.preferences "Nastavení zabezpečení…">
-<!ENTITY torbutton.context_menu.preferences.key "b">
<!ENTITY torbutton.context_menu.networksettings "Nastavení sítě Tor...">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Vyhledat aktualizace prohlížeče Tor…">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "c">
<!ENTITY torbutton.button.tooltip "Klepněte pro inicializaci Torbutton">
<!ENTITY torbutton.prefs.security_settings "Nastavení zabezpečení prohlížeče Tor">
-<!ENTITY torbutton.prefs.restore_defaults "Obnovit výchozí">
-<!ENTITY torbutton.prefs.custom_warning "Vaše nastavení prohlížeče neodpovídá standardnímu nastavení zabezpečení. Z důvodu ochrany soukromí a zvýšení bezpečnosti vám doporučujeme vybrat si jednu z výchozích bezpečnostních úrovní.">
<!ENTITY torbutton.cookiedialog.title "Správa ochrany cookies">
<!ENTITY torbutton.cookiedialog.lockCol "Chráněné">
<!ENTITY torbutton.cookiedialog.domainCol "Server">
diff --git a/src/chrome/locale/csb/torbutton.dtd b/src/chrome/locale/csb/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/csb/torbutton.dtd
+++ b/src/chrome/locale/csb/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/cy/torbutton.dtd b/src/chrome/locale/cy/torbutton.dtd
index 84b229b1..507d6960 100644
--- a/src/chrome/locale/cy/torbutton.dtd
+++ b/src/chrome/locale/cy/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Cliciwch i ymgychwyn Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/da/securityLevel.properties b/src/chrome/locale/da/securityLevel.properties
new file mode 100644
index 00000000..8f18cc57
--- /dev/null
+++ b/src/chrome/locale/da/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = Sikkerhedsniveau
+securityLevel.standard.level = Standard
+securityLevel.standard.summary = Alle Tor Browser- og webstedsfunktionaliteter er aktiveret.
+securityLevel.safer.level = Mere sikker
+securityLevel.safer.summary = Deaktiverer webstedsfunktionaliteter som ofte er farlige, hvilket kan gøre at nogle steder mister deres funktionalitet.
+securityLevel.safer.description1 = JavaScript er deaktiveret på ikke-HTTPS steder.
+securityLevel.safer.description2 = Nogle skrifttyper og matematiksymboler er deaktiverede.
+securityLevel.safer.description3 = Lyd og video (HTML5-medier) er klik-for-at-afspille.
+securityLevel.safest.level = Mest sikker
+securityLevel.safest.summary = Tillader kun webstedsfunktionaliteter som kræves til statiske steder og grundlæggende tjenester. Ændringerne påvirker billeder, medier og scripts.
+securityLevel.safest.description1 = JavaScript er som standard deaktiveret på alle steder.
+securityLevel.safest.description2 = Nogle skrifttyper, ikoner, matematiksymboler og billeder er deaktiveret.
+securityLevel.safest.description3 = Lyd og video (HTML5-medier) er klik-for-at-afspille.
+securityLevel.custom.summary = Dine tilpassede browserpræferencer har resulterede i usædvanlige sikkerhedsindstillinger. Pga. sikkerheds- og privatlivsårsagen, anbefaler vi at du vælger en af standardsikkerhedsniveauerne.
+securityLevel.learnMore = Lær mere
+securityLevel.restoreDefaults = Gendan Standarder
diff --git a/src/chrome/locale/da/torbutton.dtd b/src/chrome/locale/da/torbutton.dtd
index e32001d1..4fa64baa 100644
--- a/src/chrome/locale/da/torbutton.dtd
+++ b/src/chrome/locale/da/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "Nyt Tor-kredsløb for dette sted">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "Sikkerhedsindstillinger…">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Tor-netværksindstillinger...">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Søg efter opdateringer til Tor Browser...">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Klik for at starte Torbutton">
<!ENTITY torbutton.prefs.security_settings "Tor Browser-sikkerhedsindstillinger">
-<!ENTITY torbutton.prefs.restore_defaults "Gendan Standarder">
-<!ENTITY torbutton.prefs.custom_warning "Dine tilpassede browserpræferencer har resulterede i usædvanlige sikkerhedsindstillinger. Pga. sikkerheds- og privatlivsårsagen, anbefaler vi at du vælger en af standardsikkerhedsniveauerne.">
<!ENTITY torbutton.cookiedialog.title "Håndtér Cookie-beskyttelser">
<!ENTITY torbutton.cookiedialog.lockCol "Beskyttet">
<!ENTITY torbutton.cookiedialog.domainCol "Vært">
diff --git a/src/chrome/locale/de/securityLevel.properties b/src/chrome/locale/de/securityLevel.properties
new file mode 100644
index 00000000..871f8378
--- /dev/null
+++ b/src/chrome/locale/de/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = Sicherheitsstufe
+securityLevel.standard.level = Standard
+securityLevel.standard.summary = Alle Tor Browser und Webseiten Funktionen sind aktiviert.
+securityLevel.safer.level = Sicherer
+securityLevel.safer.summary = Deaktiviert Webseiten-Funktionen, die oft gefährlich sind. Sorgt dafür, dass manche Seiten nicht mehr so gut funktionieren
+securityLevel.safer.description1 = JavaScript ist auf Nicht-HTTTPS-Sites deaktiviert.
+securityLevel.safer.description2 = Einige Schriftarten und mathematische Symbole sind deaktiviert.
+securityLevel.safer.description3 = Audio und Video (HTML5-Medien) müssen zur Wiedergabe angeklickt werden.
+securityLevel.safest.level = Am sichersten
+securityLevel.safest.summary = Erlaubt nur Webseiten-Funktionen, die für statische Seiten und Basisdienste benötigt werden. Diese Änderungen betreffen Bilder, Medien und Skripte.
+securityLevel.safest.description1 = JavaScript ist standardmäßig auf allen Seiten deaktiviert.
+securityLevel.safest.description2 = Einige Schriftarten, Symbole, mathematische Symbole und Bilder sind deaktiviert.
+securityLevel.safest.description3 = Audio und Video (HTML5-Medien) müssen zur Wiedergabe angeklickt werden.
+securityLevel.custom.summary = Ihre benutzerdefinierten Browser-Einstellungen haben zu ungewöhnlichen Sicherheitseinstellungen geführt. Aus Gründen der Sicherheit und Privatsphäre empfehlen wir dir eine der vorgegebenen Sicherheitsstufen auszuwählen.
+securityLevel.learnMore = Erfahre mehr
+securityLevel.restoreDefaults = Standardeinstellungen wiederherstellen
diff --git a/src/chrome/locale/de/torbutton.dtd b/src/chrome/locale/de/torbutton.dtd
index d155a4ef..1846ff51 100644
--- a/src/chrome/locale/de/torbutton.dtd
+++ b/src/chrome/locale/de/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "Neuer Kanal für diese Seite">
<!ENTITY torbutton.context_menu.new_circuit_key "K">
-<!ENTITY torbutton.context_menu.preferences "Sicherheitseinstellungen …">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Tor-Netzwerk-Einstellungen …">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Auf Tor-Browser-Aktualisierungen prüfen …">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Klicken, um Torbutton zu aktivieren">
<!ENTITY torbutton.prefs.security_settings "Tor-Browser-Sicherheitseinstellungen">
-<!ENTITY torbutton.prefs.restore_defaults "Standardeinstellungen wiederherstellen">
-<!ENTITY torbutton.prefs.custom_warning "Ihre benutzerdefinierten Browser-Einstellungen haben zu ungewöhnlichen Sicherheitseinstellungen geführt. Aus Gründen der Sicherheit und Privatsphäre empfehlen wir dir eine der vorgegebenen Sicherheitsstufen auszuwählen.">
<!ENTITY torbutton.cookiedialog.title "Cookie-Schutz verwalten">
<!ENTITY torbutton.cookiedialog.lockCol "Geschützt">
<!ENTITY torbutton.cookiedialog.domainCol "Rechner">
@@ -27,8 +23,7 @@
<!ENTITY torbutton.cookiedialog.doNotSaveAllCookies "Neue Cookies nicht schützen">
<!ENTITY torbutton.prefs.sec_caption "Sicherheitsstufe">
<!ENTITY torbutton.prefs.sec_caption_tooltip "Mit dem Sicherheitsschieberegler kannst du bestimmte Browserfunktionen, die deinen Browser für mögliche Attacken anfälliger machen, deaktivieren.">
-<!ENTITY torbutton.prefs.sec_standard_label "Standard
-">
+<!ENTITY torbutton.prefs.sec_standard_label "Standard">
<!ENTITY torbutton.prefs.sec_standard_description "Alle Tor Browser und Webseiten Funktionen sind aktiviert.">
<!ENTITY torbutton.prefs.sec_safer_label "Sicherer">
<!ENTITY torbutton.prefs.sec_safer_description "Deaktiviert Webseiten-Funktionen, die oft gefährlich sind. Sorgt dafür, dass manche Seiten nicht mehr so gut funktionieren">
diff --git a/src/chrome/locale/dz/torbutton.dtd b/src/chrome/locale/dz/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/dz/torbutton.dtd
+++ b/src/chrome/locale/dz/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/el/securityLevel.properties b/src/chrome/locale/el/securityLevel.properties
new file mode 100644
index 00000000..722678df
--- /dev/null
+++ b/src/chrome/locale/el/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = Επίπεδο ασφάλειας
+securityLevel.standard.level = Βασικό
+securityLevel.standard.summary = Όλες οι παροχές του περιηγητή Tor και της ιστοσελίδας είναι ενεργοποιημένες.
+securityLevel.safer.level = Ασφαλέστερο
+securityLevel.safer.summary = Απενεργοποιεί παροχές ιστοσελίδων που είναι επικίνδυνες και οδηγούν κάποιες ιστοσελίδες στο να χάνουν λειτουργικότητα.
+securityLevel.safer.description1 = Η JavaScript είναι απενεργοποιημένη σε ιστότοπους που δεν είναι HTTPS.
+securityLevel.safer.description2 = Μερικές γραμματοσειρές και μαθηματικά σύμβολα είναι απενεργοποιημένα.
+securityLevel.safer.description3 = Οι ήχοι και τα βίντεο (μέσα HTML5) παίζουν, αφού γίνει κλικ για αναπαραγωγή.
+securityLevel.safest.level = Ασφαλέστατο
+securityLevel.safest.summary = Επιτρέπει μόνο τις παροχές ιστοσελίδας που απαιτούνται για βασικές ιστοσελίδες και υπηρεσίες. Αυτό επηρεάζει εικόνες, μέσα και scripts.
+securityLevel.safest.description1 = Η JavaScript είναι απενεργοποιημένη σε όλους τους ιστότοπους ως προεπιλογή.
+securityLevel.safest.description2 = Ορισμένες γραμματοσειρές, εικονίδια, μαθηματικά σύμβολα και εικόνες είναι απενεργοποιημένα.
+securityLevel.safest.description3 = Οι ήχοι και τα βίντεο (μέσα HTML5) παίζουν, αφού γίνει κλικ για αναπαραγωγή.
+securityLevel.custom.summary = Οι προσαρμοσμένες προτιμήσεις του browser σας έχουν οδηγήσει σε ασυνήθιστες ρυθμίσεις ασφάλειας. Για λόγους ασφαλείας και ιδιωτικότητας, προτείνουμε να επιλέξετε ένα από τα προεπιλεγμένα επίπεδα ασφάλειας.
+securityLevel.learnMore = Μάθετε περισσότερα
+securityLevel.restoreDefaults = Επαναφορά προεπιλογών
diff --git a/src/chrome/locale/el/torbutton.dtd b/src/chrome/locale/el/torbutton.dtd
index 63d7597a..4f474387 100644
--- a/src/chrome/locale/el/torbutton.dtd
+++ b/src/chrome/locale/el/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "Νέο κύκλωμα Tor για αυτήν την ιστοσελίδα">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "Ρυθμίσεις Ασφαλείας...">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Ρυθμίσεις του Δικτύου Tor...">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Έλεγχος για ενημέρωση του Tor Browser...">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Κάντε κλικ για να εκκινήσετε το Torbutton">
<!ENTITY torbutton.prefs.security_settings "Ρυθμίσεις ασφαλείας του Tor Browser">
-<!ENTITY torbutton.prefs.restore_defaults "Επαναφορά προεπιλογών">
-<!ENTITY torbutton.prefs.custom_warning "Οι προσαρμοσμένες προτιμήσεις του browser σας έχουν οδηγήσει σε ασυνήθιστες ρυθμίσεις ασφάλειας. Για λόγους ασφαλείας και ιδιωτικότητας, προτείνουμε να επιλέξετε ένα από τα προεπιλεγμένα επίπεδα ασφάλειας.">
<!ENTITY torbutton.cookiedialog.title "Διαχείριση Προστασίας Cookie">
<!ENTITY torbutton.cookiedialog.lockCol "Προστατευμένα">
<!ENTITY torbutton.cookiedialog.domainCol "Οικοδεσπότης">
diff --git a/src/chrome/locale/en-US/securityLevel.properties b/src/chrome/locale/en-US/securityLevel.properties
new file mode 100644
index 00000000..6ccbb033
--- /dev/null
+++ b/src/chrome/locale/en-US/securityLevel.properties
@@ -0,0 +1,22 @@
+securityLevel.securityLevel = Security Level
+securityLevel.customWarning = Custom
+securityLevel.overview = Disable certain web features that can be used to attack your security and anonymity.
+securityLevel.standard.level = Standard
+securityLevel.standard.tooltip = Security Level : Standard
+securityLevel.standard.summary = All Tor Browser and website features are enabled.
+securityLevel.safer.level = Safer
+securityLevel.safer.tooltip = Security Level : Safer
+securityLevel.safer.summary = Disables website features that are often dangerous, causing some sites to lose functionality.
+securityLevel.safer.description1 = JavaScript is disabled on non-HTTPS sites.
+securityLevel.safer.description2 = Some fonts and math symbols are disabled.
+securityLevel.safer.description3 = Audio and video (HTML5 media) are click-to-play.
+securityLevel.safest.level = Safest
+securityLevel.safest.tooltip = Security Level : Safest
+securityLevel.safest.summary = Only allows website features required for static sites and basic services. These changes affect images, media, and scripts.
+securityLevel.safest.description1 = JavaScript is disabled by default on all sites.
+securityLevel.safest.description2 = Some fonts, icons, math symbols, and images are disabled.
+securityLevel.safest.description3 = Audio and video (HTML5 media) are click-to-play.
+securityLevel.custom.summary = Your custom browser preferences have resulted in unusual security settings. For security and privacy reasons, we recommend you choose one of the default security levels.
+securityLevel.learnMore = Learn more
+securityLevel.restoreDefaults = Restore Defaults
+securityLevel.advancedSecuritySettings = Advanced Security Settings…
\ No newline at end of file
diff --git a/src/chrome/locale/en-US/torbutton.dtd b/src/chrome/locale/en-US/torbutton.dtd
index 1a299af9..83b1ffb5 100644
--- a/src/chrome/locale/en-US/torbutton.dtd
+++ b/src/chrome/locale/en-US/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "New Tor Circuit for this Site">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "Security Settings…">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Tor Network Settings…">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Check for Tor Browser Update…">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
<!ENTITY torbutton.prefs.security_settings "Tor Browser Security Settings">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
-<!ENTITY torbutton.prefs.custom_warning "Your custom browser preferences have resulted in unusual security settings. For security and privacy reasons, we recommend you choose one of the default security levels.">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/eo/securityLevel.properties b/src/chrome/locale/eo/securityLevel.properties
new file mode 100644
index 00000000..aa80f5cb
--- /dev/null
+++ b/src/chrome/locale/eo/securityLevel.properties
@@ -0,0 +1 @@
+securityLevel.restoreDefaults = Restaŭri defaŭltojn
diff --git a/src/chrome/locale/eo/torbutton.dtd b/src/chrome/locale/eo/torbutton.dtd
index 8dd75e5c..a4c2f3ab 100644
--- a/src/chrome/locale/eo/torbutton.dtd
+++ b/src/chrome/locale/eo/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restaŭri defaŭltojn">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/es-AR/securityLevel.properties b/src/chrome/locale/es-AR/securityLevel.properties
new file mode 100644
index 00000000..ae089179
--- /dev/null
+++ b/src/chrome/locale/es-AR/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = Nivel de seguridad
+securityLevel.standard.level = Estándar
+securityLevel.standard.summary = Todas las características del navegador Tor y el sitio web están habilitadas.
+securityLevel.safer.level = Más seguro
+securityLevel.safer.summary = Deshabilita características del sitio web que son a menudo peligrosas, causando que algunos sitios pierdan funcionalidad.
+securityLevel.safer.description1 = JavaScript está deshabilitado en sitios no-HTTPS.
+securityLevel.safer.description2 = Algunos tipos de letra y símbolos matemáticos están deshabilitados.
+securityLevel.safer.description3 = Audio y video (medios HTML5) son cliquear-para-reproducir.
+securityLevel.safest.level = En extremo seguro
+securityLevel.safest.summary = Sólo permite características del sitio web requeridas por sitios estáticos y servicios básicos. Estos cambios afectan imágenes, medios y código ejecutable.
+securityLevel.safest.description1 = JavaScript está deshabilitado por defecto en todos los sitios.
+securityLevel.safest.description2 = Algunos tipos de letra, iconos, símbolos matemáticos e imágenes están deshabilitados.
+securityLevel.safest.description3 = Audio y video (medios HTML5) son cliquear-para-reproducir.
+securityLevel.custom.summary = Tus preferencias personalizadas del navegador han resultado en ajustes de seguridad inusuales. Por razones de seguridad y privacidad, recomendamos que elijas uno de los niveles de seguridad por defecto.
+securityLevel.learnMore = Más informacion
+securityLevel.restoreDefaults = Restablecer valores por defecto
diff --git a/src/chrome/locale/es-AR/torbutton.dtd b/src/chrome/locale/es-AR/torbutton.dtd
index d58dfb56..3d2315af 100644
--- a/src/chrome/locale/es-AR/torbutton.dtd
+++ b/src/chrome/locale/es-AR/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "Nuevo Circuito Tor para este Sitio">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "Configuración de Seguridad...">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Configuraciones de la Red de Tor">
<!ENTITY torbutton.context_menu.networksettings.key "R">
<!ENTITY torbutton.context_menu.downloadUpdate "Comprobar si hay Actualización para el Navegador Tor">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "K">
<!ENTITY torbutton.button.tooltip "Cliqueá para inicializar Torbutton">
<!ENTITY torbutton.prefs.security_settings "Configuración de Seguridad del Navegador Tor">
-<!ENTITY torbutton.prefs.restore_defaults "Restablecer valores por defecto">
-<!ENTITY torbutton.prefs.custom_warning "Tus preferencias personalizadas del navegador han resultado en ajustes de seguridad inusuales. Por razones de seguridad y privacidad, recomendamos que elijas uno de los niveles de seguridad por defecto.">
<!ENTITY torbutton.cookiedialog.title "Manejar la Protección de cookies">
<!ENTITY torbutton.cookiedialog.lockCol "Protegido">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/es/securityLevel.properties b/src/chrome/locale/es/securityLevel.properties
new file mode 100644
index 00000000..2aebcdbf
--- /dev/null
+++ b/src/chrome/locale/es/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = Nivel de seguridad
+securityLevel.standard.level = Estándar
+securityLevel.standard.summary = Están habilitadas todas las características de Tor Browser y sitio web.
+securityLevel.safer.level = Más segura
+securityLevel.safer.summary = Deshabilita características del sitio web que a menudo son peligrosas, lo que causa que algunos sitios pierdan funcionalidad.
+securityLevel.safer.description1 = JavaScript está deshabilitado en sitios no-HTTPS.
+securityLevel.safer.description2 = Algunas fuentes y símbolos matemáticos están deshabilitados.
+securityLevel.safer.description3 = Audio y vídeo (medios HTML5) son de tipo pulsar-para-reproducir.
+securityLevel.safest.level = La más segura
+securityLevel.safest.summary = Sólo permite las características de sitio web requeridas para sitios estáticos y servicios básicos. Estos cambios afectan a imágenes, medios, y scripts.
+securityLevel.safest.description1 = JavaScript está deshabilitado por defecto en todos los sitios.
+securityLevel.safest.description2 = Algunas fuentes, iconos, símbolos matemáticos, e imágenes están deshabilitados.
+securityLevel.safest.description3 = Audio y vídeo (medios HTML5) son de tipo pulsar-para-reproducir.
+securityLevel.custom.summary = Tus preferencias personalizadas para el navegador han resultado en una configuración de seguridad inusual. Por motivos de seguridad y privacidad, te recomendamos uno de los de los niveles de seguridad predeterminados.
+securityLevel.learnMore = Conocer más
+securityLevel.restoreDefaults = Restaurar valores predeterminados
diff --git a/src/chrome/locale/es/torbutton.dtd b/src/chrome/locale/es/torbutton.dtd
index 3a6c636a..a44dfc6f 100644
--- a/src/chrome/locale/es/torbutton.dtd
+++ b/src/chrome/locale/es/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "Nuevo circuito Tor para este sitio">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "Configuración de seguridad...">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Configuración de red Tor...">
<!ENTITY torbutton.context_menu.networksettings.key "R">
<!ENTITY torbutton.context_menu.downloadUpdate "Comprobar actualización del Tor Browser...">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Haga clic para inicializar Torbutton">
<!ENTITY torbutton.prefs.security_settings "Configuración de seguridad del Tor Browser">
-<!ENTITY torbutton.prefs.restore_defaults "Restaurar valores predeterminados">
-<!ENTITY torbutton.prefs.custom_warning "Tus preferencias personalizadas para el navegador han resultado en una configuración de seguridad inusual. Por motivos de seguridad y privacidad, te recomendamos uno de los de los niveles de seguridad predeterminados.">
<!ENTITY torbutton.cookiedialog.title "Administrar protecciones de cookie">
<!ENTITY torbutton.cookiedialog.lockCol "Protegidas">
<!ENTITY torbutton.cookiedialog.domainCol "Servidor (host)">
diff --git a/src/chrome/locale/et/torbutton.dtd b/src/chrome/locale/et/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/et/torbutton.dtd
+++ b/src/chrome/locale/et/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/eu/securityLevel.properties b/src/chrome/locale/eu/securityLevel.properties
new file mode 100644
index 00000000..bd9dfc0d
--- /dev/null
+++ b/src/chrome/locale/eu/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = Segurtasun maila
+securityLevel.standard.level = Estandarra
+securityLevel.standard.summary = Tor Nabigatzailearen eta web-orriaren ezaugarri guztiak gaituta daude.
+securityLevel.safer.level = Seguruagoa
+securityLevel.safer.summary = Disables website features that are often dangerous, causing some sites to lose functionality.
+securityLevel.safer.description1 = JavaScript ezgaituta dago HTTPS ez diren web-orrietan.
+securityLevel.safer.description2 = Some fonts and math symbols are disabled.
+securityLevel.safer.description3 = Audio and video (HTML5 media) are click-to-play.
+securityLevel.safest.level = Seguruena
+securityLevel.safest.summary = Only allows website features required for static sites and basic services. These changes affect images, media, and scripts.
+securityLevel.safest.description1 = JavaScript is disabled by default on all sites.
+securityLevel.safest.description2 = Some fonts, icons, math symbols, and images are disabled.
+securityLevel.safest.description3 = Audio and video (HTML5 media) are click-to-play.
+securityLevel.custom.summary = Your custom browser preferences have resulted in unusual security settings. For security and privacy reasons, we recommend you choose one of the default security levels.
+securityLevel.learnMore = Gehiago jakin
+securityLevel.restoreDefaults = Lehenetsiak berrezarri
diff --git a/src/chrome/locale/eu/torbutton.dtd b/src/chrome/locale/eu/torbutton.dtd
index ca42906b..18b0bb8f 100644
--- a/src/chrome/locale/eu/torbutton.dtd
+++ b/src/chrome/locale/eu/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "Tor zirkuitu berria gune honetarako">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "Segurtasun Ezarpenak...">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Tor Sarearen Ezarpenak...">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Tor Browser eguneraketa egiaztatu">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Sakatu Torbutton abiarazteko">
<!ENTITY torbutton.prefs.security_settings "Tor Nagibatzailearen Segurtasun Ezarpenak">
-<!ENTITY torbutton.prefs.restore_defaults "Lehenetsiak berrezarri">
-<!ENTITY torbutton.prefs.custom_warning "Your custom browser preferences have resulted in unusual security settings. For security and privacy reasons, we recommend you choose one of the default security levels.">
<!ENTITY torbutton.cookiedialog.title "Cookie Babesak kudeatu">
<!ENTITY torbutton.cookiedialog.lockCol "Babestuta">
<!ENTITY torbutton.cookiedialog.domainCol "Ostalaria">
diff --git a/src/chrome/locale/fa/securityLevel.properties b/src/chrome/locale/fa/securityLevel.properties
new file mode 100644
index 00000000..9336f836
--- /dev/null
+++ b/src/chrome/locale/fa/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = سطح امنیت
+securityLevel.standard.level = استاندارد
+securityLevel.standard.summary = همه مرورگر تور و ویژگیهای وبسایت به کار انداخته شدهاند.
+securityLevel.safer.level = ایمن تر
+securityLevel.safer.summary = از کار انداختن ویژگیهای وبسایت که اغلب خطرناک هستند و باعث از دست رفتن برخی سایتها میشوند.
+securityLevel.safer.description1 = جاوا اسکریپت روی سایتهای غیر HTTPS کار نمیکند.
+securityLevel.safer.description2 = برخی از فونت ها و نمادهای ریاضی غیرفعال هستند
+securityLevel.safer.description3 = صدا و ویدیو ( HTML5 رسانه ) برای بازی کلیک میکنند.
+securityLevel.safest.level = ایمن ترین
+securityLevel.safest.summary = تنها اجازه میدهد که ویژگیهای وبسایت برای سایتهای ایستا و خدمات پایه مورد نیاز باشد. این تغییرات بر تصاویر، رسانهها و متن تاثیر میگذارند.
+securityLevel.safest.description1 = جاوا اسکریپت به طور پیش فرض در تمامی سایت ها غیر فعال است.
+securityLevel.safest.description2 = برخی از فونت ها، شمایلها، علایم ریاضی و تصاویر از کار افتاده هستند.
+securityLevel.safest.description3 = صدا و ویدیو ( HTML5 رسانه ) برای بازی کلیک میکنند.
+securityLevel.custom.summary = تنظیمات سفارشی شما در مرورگر منجر به تغییرات غیر معمول در تنظیمات امنیتی شده است.برای امن نگه داشتن حریم خصوصی خود ما پیشنهاد میکنیم یکی از تنظیمات پیشفرض امنیتی را انتخاب کنید.
+securityLevel.learnMore = اطلاعات بیشتر
+securityLevel.restoreDefaults = بازگردانی تنظیمات اولیه
diff --git a/src/chrome/locale/fa/torbutton.dtd b/src/chrome/locale/fa/torbutton.dtd
index 49385ee1..b748951f 100644
--- a/src/chrome/locale/fa/torbutton.dtd
+++ b/src/chrome/locale/fa/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "شبکه جدید Tor برای این سایت">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "تنظیمات امنیتی…">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "تنظیمات شبکه تور">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "بررسی بروز رسانی مرورگر تور">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "جهت شروع دكمه تُرکليک کنيد">
<!ENTITY torbutton.prefs.security_settings "تنظیمات امنیتی مرورگر تور">
-<!ENTITY torbutton.prefs.restore_defaults "بازگردانی تنظیمات اولیه">
-<!ENTITY torbutton.prefs.custom_warning "تنظیمات سفارشی شما در مرورگر منجر به تغییرات غیر معمول در تنظیمات امنیتی شده است.برای امن نگه داشتن حریم خصوصی خود ما پیشنهاد میکنیم یکی از تنظیمات پیشفرض امنیتی را انتخاب کنید. ">
<!ENTITY torbutton.cookiedialog.title "مديريت حفاظت کلوچکها">
<!ENTITY torbutton.cookiedialog.lockCol "حفاظت شده">
<!ENTITY torbutton.cookiedialog.domainCol "ميزبان">
diff --git a/src/chrome/locale/fi/securityLevel.properties b/src/chrome/locale/fi/securityLevel.properties
new file mode 100644
index 00000000..f270671f
--- /dev/null
+++ b/src/chrome/locale/fi/securityLevel.properties
@@ -0,0 +1 @@
+securityLevel.restoreDefaults = Palauta Oletukset
diff --git a/src/chrome/locale/fi/torbutton.dtd b/src/chrome/locale/fi/torbutton.dtd
index 136cca34..d2088a6a 100644
--- a/src/chrome/locale/fi/torbutton.dtd
+++ b/src/chrome/locale/fi/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Evästeiden suojaukset">
<!ENTITY torbutton.context_menu.cookieProtections.key "E">
<!ENTITY torbutton.button.tooltip "Klikkaa Torbutton aktiiviseksi">
-<!ENTITY torbutton.prefs.restore_defaults "Palauta Oletukset">
<!ENTITY torbutton.cookiedialog.title "Hallitse evästeiden suojauksia">
<!ENTITY torbutton.cookiedialog.lockCol "Suojaus">
<!ENTITY torbutton.cookiedialog.domainCol "Palvelin">
diff --git a/src/chrome/locale/fil/torbutton.dtd b/src/chrome/locale/fil/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/fil/torbutton.dtd
+++ b/src/chrome/locale/fil/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/fo/torbutton.dtd b/src/chrome/locale/fo/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/fo/torbutton.dtd
+++ b/src/chrome/locale/fo/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/fr/securityLevel.properties b/src/chrome/locale/fr/securityLevel.properties
new file mode 100644
index 00000000..54f59750
--- /dev/null
+++ b/src/chrome/locale/fr/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = Niveau de sécurité
+securityLevel.standard.level = Normal
+securityLevel.standard.summary = Toutes les fonctions du Navigateur Tor et des sites Web sont activées.
+securityLevel.safer.level = Plus sûr
+securityLevel.safer.summary = Désactive les fonctions souvent dangereuses des sites Web, ce qui pourrait entraîner une perte de fonctionnalité de certains sites Web.
+securityLevel.safer.description1 = JavaScript est désactivé pour les sites non HTTPS.
+securityLevel.safer.description2 = Certaines polices et certains symboles mathématiques sont désactivés.
+securityLevel.safer.description3 = Le son et la vidéo (médias HTML5) sont « cliquer pour lire ».
+securityLevel.safest.level = Le plus sûr
+securityLevel.safest.summary = Ne permettre que les fonctions de sites Web qui sont exigées pour les sites fixes et les services de base. Ces changements affectent les images, les médias et les scripts.
+securityLevel.safest.description1 = JavaScript est désactivé par défaut pour tous les sites.
+securityLevel.safest.description2 = Certaines polices, icônes, images et certains symboles mathématiques sont désactivés.
+securityLevel.safest.description3 = Le son et la vidéo (médias HTML5) sont « cliquer pour lire ».
+securityLevel.custom.summary = Les préférences personnalisées de votre navigateur ont entraîné des paramètres de sécurité inhabituels. Pour des raisons de sécurité et de protection des informations personnelles, nous vous recommandons de choisir un des niveaux de sécurité par défaut.
+securityLevel.learnMore = En apprendre davantage
+securityLevel.restoreDefaults = Revenir aux paramètres par défaut
diff --git a/src/chrome/locale/fr/torbutton.dtd b/src/chrome/locale/fr/torbutton.dtd
index 294c2f9f..be848ce6 100644
--- a/src/chrome/locale/fr/torbutton.dtd
+++ b/src/chrome/locale/fr/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "Nouveau circuit Tor pour ce site">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "Paramètres de sécurité">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Paramètres du réseau Tor">
<!ENTITY torbutton.context_menu.networksettings.key "R">
<!ENTITY torbutton.context_menu.downloadUpdate "Vérifier les mises à jour du Navigateur Tor">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "T">
<!ENTITY torbutton.button.tooltip "Cliquer pour lancer BoutonTor">
<!ENTITY torbutton.prefs.security_settings "Paramètres de sécurité du Navigateur Tor">
-<!ENTITY torbutton.prefs.restore_defaults "Revenir aux paramètres par défaut">
-<!ENTITY torbutton.prefs.custom_warning "Les préférences personnalisées de votre navigateur ont entraîné des paramètres de sécurité inhabituels. Pour des raisons de sécurité et de protection des informations personnelles, nous vous recommandons de choisir un des niveaux de sécurité par défaut.">
<!ENTITY torbutton.cookiedialog.title "Gérer les protections des fichiers témoins">
<!ENTITY torbutton.cookiedialog.lockCol "Protégé">
<!ENTITY torbutton.cookiedialog.domainCol "Hôte">
diff --git a/src/chrome/locale/fur/torbutton.dtd b/src/chrome/locale/fur/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/fur/torbutton.dtd
+++ b/src/chrome/locale/fur/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/fy/torbutton.dtd b/src/chrome/locale/fy/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/fy/torbutton.dtd
+++ b/src/chrome/locale/fy/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/ga/securityLevel.properties b/src/chrome/locale/ga/securityLevel.properties
new file mode 100644
index 00000000..e728187e
--- /dev/null
+++ b/src/chrome/locale/ga/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = Leibhéal Slándála
+securityLevel.standard.level = Gnáthshlándáil
+securityLevel.standard.summary = Gach gné de bhrabhsálaí Tor agus gach gné de shuímh Ghréasáin ar siúl.
+securityLevel.safer.level = Níos Sábháilte
+securityLevel.safer.summary = Díchumasaítear gnéithe de shuímh atá contúirteach go minic; dá bharr seo, ní fheidhmeoidh gach suíomh mar is ceart.
+securityLevel.safer.description1 = Tá JavaScript díchumasaithe ar shuímh nach mbaineann úsáid as HTTPS.
+securityLevel.safer.description2 = Tá roinnt clófhoirne agus siombailí matamaiticiúla díchumasaithe.
+securityLevel.safer.description3 = Caithfidh tú fuaimeanna agus físeáin (meáin HTML5) a chliceáil lena seinm.
+securityLevel.safest.level = Is Sábháilte
+securityLevel.safest.summary = Ní cheadaítear ach na gnéithe atá de dhíth ar shuímh statacha agus ar bhunseirbhísí. Téann na hathruithe seo i bhfeidhm ar íomhánna, ar mheáin, agus ar scripteanna.
+securityLevel.safest.description1 = Tá JavaScript díchumasaithe ar gach suíomh de réir réamhshocraithe.
+securityLevel.safest.description2 = Tá roinnt clófhoirne, deilbhíní, siombailí matamaiticiúla, agus íomhánna díchumasaithe.
+securityLevel.safest.description3 = Caithfidh tú fuaimeanna agus físeáin (meáin HTML5) a chliceáil lena seinm.
+securityLevel.custom.summary = Tá socruithe slándála an bhrabhsálaí as an ngnáth faoi láthair, mar thoradh ar do chuid sainroghanna. Ar chúiseanna slándála agus príobháideachais, molaimid duit ceann de na leibhéil slándála réamhshocraithe a roghnú.
+securityLevel.learnMore = Tuilleadh eolais
+securityLevel.restoreDefaults = Fill ar na Réamhshocruithe
diff --git a/src/chrome/locale/ga/torbutton.dtd b/src/chrome/locale/ga/torbutton.dtd
index 8738ae94..6f92b5bf 100644
--- a/src/chrome/locale/ga/torbutton.dtd
+++ b/src/chrome/locale/ga/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "Ciorcad Nua Tor don Suíomh seo">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "Socruithe Slándála...">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Socruithe Líonra Tor...">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Lorg Nuashonrú ar Bhrabhsálaí Tor...">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Cliceáil chun cnaipe Tor a thúsú">
<!ENTITY torbutton.prefs.security_settings "Socruithe Slándála Bhrabhsálaí Tor">
-<!ENTITY torbutton.prefs.restore_defaults "Fill ar na Réamhshocruithe">
-<!ENTITY torbutton.prefs.custom_warning "Tá socruithe slándála an bhrabhsálaí as an ngnáth faoi láthair, mar thoradh ar do chuid sainroghanna. Ar chúiseanna slándála agus príobháideachais, molaimid duit ceann de na leibhéil slándála réamhshocraithe a roghnú.">
<!ENTITY torbutton.cookiedialog.title "Bainistigh Caomhnú Fianán">
<!ENTITY torbutton.cookiedialog.lockCol "Cosanta">
<!ENTITY torbutton.cookiedialog.domainCol "Óstríomhaire">
diff --git a/src/chrome/locale/gl/securityLevel.properties b/src/chrome/locale/gl/securityLevel.properties
new file mode 100644
index 00000000..fd621499
--- /dev/null
+++ b/src/chrome/locale/gl/securityLevel.properties
@@ -0,0 +1 @@
+securityLevel.restoreDefaults = Restabelecer valores predeterminados
diff --git a/src/chrome/locale/gl/torbutton.dtd b/src/chrome/locale/gl/torbutton.dtd
index fae2b37a..c6ae5f79 100644
--- a/src/chrome/locale/gl/torbutton.dtd
+++ b/src/chrome/locale/gl/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restabelecer valores predeterminados">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/gu/securityLevel.properties b/src/chrome/locale/gu/securityLevel.properties
new file mode 100644
index 00000000..e6eabc59
--- /dev/null
+++ b/src/chrome/locale/gu/securityLevel.properties
@@ -0,0 +1 @@
+securityLevel.restoreDefaults = મૂળભૂત પાછું લાવો
diff --git a/src/chrome/locale/gu/torbutton.dtd b/src/chrome/locale/gu/torbutton.dtd
index 32adbee7..0a9faa2d 100644
--- a/src/chrome/locale/gu/torbutton.dtd
+++ b/src/chrome/locale/gu/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "ટોરબટન શરુ કરવા ક્લિક કરો">
-<!ENTITY torbutton.prefs.restore_defaults "મૂળભૂત પાછું લાવો">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/gun/torbutton.dtd b/src/chrome/locale/gun/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/gun/torbutton.dtd
+++ b/src/chrome/locale/gun/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/ha/torbutton.dtd b/src/chrome/locale/ha/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/ha/torbutton.dtd
+++ b/src/chrome/locale/ha/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/he/securityLevel.properties b/src/chrome/locale/he/securityLevel.properties
new file mode 100644
index 00000000..2875a982
--- /dev/null
+++ b/src/chrome/locale/he/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = רמת אבטחה
+securityLevel.standard.level = תקני
+securityLevel.standard.summary = כל המאפיינים של דפדפן Tor ומאפייני אתר מושבתים.
+securityLevel.safer.level = בטוח יותר
+securityLevel.safer.summary = משבית מאפייני אתר שמסוכנים לעיתים קרובות, מה שגורם למספר אתרים לאבד תפקודיות.
+securityLevel.safer.description1 = JavaScript מושבת בכל האתרים שאינם HTTPS.
+securityLevel.safer.description2 = מספר גופנים וסמלים מתמטיים מושבתים.
+securityLevel.safer.description3 = שמע ווידאו (מדית HTML5) הם לחץ-כדי-לנגן.
+securityLevel.safest.level = הכי בטוח
+securityLevel.safest.summary = מתיר רק למאפייני אתר הדרושים עבור אתרים נייחים ושירותים יסודיים. שינויים אלו משפיעים על תמונות, מדיה ותסריטים.
+securityLevel.safest.description1 = JavaScript מושבת כברירת מחדל בכל האתרים.
+securityLevel.safest.description2 = מספר גופנים, צלמיות, סמלים מתמטיים ותמונות מושבתים.
+securityLevel.safest.description3 = שמע ווידאו (מדית HTML5) הם לחץ-כדי-לנגן.
+securityLevel.custom.summary = העדפות הדפדפן המותאמות שלך נבעו מהגדרות אבטחה בלתי שגרתיות. מטעמי אבטחה ופרטיות, אנו ממליצים לך לבחור באחת מרמות האבטחה של ברירת המחדל.
+securityLevel.learnMore = למד עוד
+securityLevel.restoreDefaults = שחזר ברירות מחדל
diff --git a/src/chrome/locale/he/torbutton.dtd b/src/chrome/locale/he/torbutton.dtd
index c5373e36..0392f837 100644
--- a/src/chrome/locale/he/torbutton.dtd
+++ b/src/chrome/locale/he/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "נתיב Tor חדש לאתר זה">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "הגדרות אבטחה...">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "הגדרות רשת Tor...">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "בדוק אחר עדכון לדפדפן Tor...">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "לחץ בכדי לאתחל את Torbutton">
<!ENTITY torbutton.prefs.security_settings "הגדרות אבטחה של דפדפן Tor">
-<!ENTITY torbutton.prefs.restore_defaults "שחזר ברירות מחדל">
-<!ENTITY torbutton.prefs.custom_warning "העדפות הדפדפן המותאמות שלך נבעו מהגדרות אבטחה בלתי שגרתיות. מטעמי אבטחה ופרטיות, אנו ממליצים לך לבחור באחת מרמות האבטחה של ברירת המחדל.">
<!ENTITY torbutton.cookiedialog.title "נהל הגנות עוגיות">
<!ENTITY torbutton.cookiedialog.lockCol "מוגן">
<!ENTITY torbutton.cookiedialog.domainCol "מארח">
diff --git a/src/chrome/locale/hi/torbutton.dtd b/src/chrome/locale/hi/torbutton.dtd
index 710b298e..8f3852af 100644
--- a/src/chrome/locale/hi/torbutton.dtd
+++ b/src/chrome/locale/hi/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "टोर बटन को आरंभित करने के लिये क्लिक करे">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/hr/torbutton.dtd b/src/chrome/locale/hr/torbutton.dtd
index 67d9f181..e46ff88f 100644
--- a/src/chrome/locale/hr/torbutton.dtd
+++ b/src/chrome/locale/hr/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Zaštite kolačića">
<!ENTITY torbutton.context_menu.cookieProtections.key "Z">
<!ENTITY torbutton.button.tooltip "Kliknite za pokretanje Torbuttona">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/ht/torbutton.dtd b/src/chrome/locale/ht/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/ht/torbutton.dtd
+++ b/src/chrome/locale/ht/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/hu/securityLevel.properties b/src/chrome/locale/hu/securityLevel.properties
new file mode 100644
index 00000000..9fd3e174
--- /dev/null
+++ b/src/chrome/locale/hu/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = Biztonsági szint
+securityLevel.standard.level = Normál
+securityLevel.standard.summary = Minden Tor Browser és weboldal szolgáltatás engedélyezve.
+securityLevel.safer.level = Biztonságosabb
+securityLevel.safer.summary = Azon weboldal szolgáltatások tiltása, amelyek többnyire veszélyesek, ami néhány oldal működésének problémáit okozhatja.
+securityLevel.safer.description1 = A JavaScript tiltott a nem-HTTPS oldalkon.
+securityLevel.safer.description2 = Néhány betűtípus és matematikai szimbólum tiltásra került.
+securityLevel.safer.description3 = Audió és videó (HTML5 média) kattintásra indul.
+securityLevel.safest.level = Legbiztonságosabb
+securityLevel.safest.summary = Csak azon weboldal szolgáltatások engedélyezése, amelyek a statikus, vagy alap szolgáltatásokhoz szükségesek. Ezek a beállítások érintik a képeket, médiákat és scripteket.
+securityLevel.safest.description1 = A JavaScript alapértelmezetten tiltott minden oldalon.
+securityLevel.safest.description2 = Néhány betűtípus, ikon és matematikai szimbólum és a képek tiltásra kerültek.
+securityLevel.safest.description3 = Audió és videó (HTML5 média) kattintásra indul.
+securityLevel.custom.summary = Az Ön által eszközölt egyéni böngészői beállítások eredményeképp biztonsági kockázatok merülhetnek fel. Biztonsági és adatvédelmi szempontokból kérjük válasszon az alapértelmezett biztonsági szintek közül.
+securityLevel.learnMore = További információ
+securityLevel.restoreDefaults = Alapértelmezések visszaállítása
diff --git a/src/chrome/locale/hu/torbutton.dtd b/src/chrome/locale/hu/torbutton.dtd
index 4e71b100..0cfce62f 100644
--- a/src/chrome/locale/hu/torbutton.dtd
+++ b/src/chrome/locale/hu/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "S">
<!ENTITY torbutton.context_menu.new_circuit "Új Tor áramkör ehhez az oldalhoz">
<!ENTITY torbutton.context_menu.new_circuit_key "S">
-<!ENTITY torbutton.context_menu.preferences "Biztonsági beállítások...">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Tor hálózati beállítások">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Tor Browser frissítések keresése">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "S">
<!ENTITY torbutton.button.tooltip "Kattintson a Torbutton inicializálásához">
<!ENTITY torbutton.prefs.security_settings "Tor Browser biztonsági beállítások">
-<!ENTITY torbutton.prefs.restore_defaults "Alapértelmezések visszaállítása">
-<!ENTITY torbutton.prefs.custom_warning "Az Ön által eszközölt egyéni böngészői beállítások eredményeképp biztonsági kockázatok merülhetnek fel. Biztonsági és adatvédelmi szempontokból kérjük válasszon az alapértelmezett biztonsági szintek közül.">
<!ENTITY torbutton.cookiedialog.title "Süti védelem kezelése">
<!ENTITY torbutton.cookiedialog.lockCol "Védett">
<!ENTITY torbutton.cookiedialog.domainCol "Állomás">
diff --git a/src/chrome/locale/hy/torbutton.dtd b/src/chrome/locale/hy/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/hy/torbutton.dtd
+++ b/src/chrome/locale/hy/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/id/securityLevel.properties b/src/chrome/locale/id/securityLevel.properties
new file mode 100644
index 00000000..597c9ebe
--- /dev/null
+++ b/src/chrome/locale/id/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = Tingkat Keamanan
+securityLevel.standard.level = Standar
+securityLevel.standard.summary = Semua fitur dari Tor Browser dan situs web diaktifkan.
+securityLevel.safer.level = Lebih aman
+securityLevel.safer.summary = Menonaktifkan fitur-fitur situs web yang sering berbahaya, ini akan membuat beberapa situs kehilangan fungsionalitas.
+securityLevel.safer.description1 = JavaScript dinonaktifkan di semua situs non-HTTPS.
+securityLevel.safer.description2 = Beberapa font dan simbol matematika dinonaktifkan.
+securityLevel.safer.description3 = Audio dan video (media HTML5 media) dijalankan saat diklik.
+securityLevel.safest.level = Paling aman
+securityLevel.safest.summary = Hanya menjalankan fitur-fitur situs yang diperlukan untuk menjalankan situs web statis dan servis dasar. Perubahan ini mempengaruhi gambar, media, dan skrip.
+securityLevel.safest.description1 = JavaScript dinonaktifkan secara default di semua situs.
+securityLevel.safest.description2 = Beberapa font, icon, simbol matematika, dan gambar dinonaktifkan.
+securityLevel.safest.description3 = Audio dan video (media HTML5 media) dijalankan saat diklik.
+securityLevel.custom.summary = Preferensi browser khusus anda telah membuat pengaturan keamanan yang tidak biasa. Untuk alasan keamanan dan privasi, kami menyarankan anda untuk memilih satu dari tingkat keamanan bawaan.
+securityLevel.learnMore = Pelajari lebih lanjut
+securityLevel.restoreDefaults = Kembalikan Kestandar
diff --git a/src/chrome/locale/id/torbutton.dtd b/src/chrome/locale/id/torbutton.dtd
index c12cfb6b..ecf771f4 100644
--- a/src/chrome/locale/id/torbutton.dtd
+++ b/src/chrome/locale/id/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "Sirkuit Tor Baru untuk Situs ini">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "Pengaturan Keamanan...">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Pengaturan Jaringan Tor…">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Cek Versi Peramban Tor Terkini">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Klik untuk mengaktifkan TombolTor">
<!ENTITY torbutton.prefs.security_settings "Pengaturan Keamanan Tor Browser">
-<!ENTITY torbutton.prefs.restore_defaults "Kembalikan Kestandar">
-<!ENTITY torbutton.prefs.custom_warning "Preferensi browser khusus anda telah membuat pengaturan keamanan yang tidak biasa. Untuk alasan keamanan dan privasi, kami menyarankan anda untuk memilih satu dari tingkat keamanan bawaan.">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/is/securityLevel.properties b/src/chrome/locale/is/securityLevel.properties
new file mode 100644
index 00000000..b58ccd38
--- /dev/null
+++ b/src/chrome/locale/is/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = Öryggisstig
+securityLevel.standard.level = Staðlað
+securityLevel.standard.summary = Allir eiginleikar Tor-vafrans og vefsvæðisins eru virkjaðir.
+securityLevel.safer.level = Öruggara
+securityLevel.safer.summary = Gerir óvirka ýmsa eiginleika vefsvæða sem oft eru hættulegir, en veldur því að sum vefsvæði hætta að virka eins og þau eiga að gera.
+securityLevel.safer.description1 = JavaScript er óvirkt á öllum ekki-HTTPS vefjum.
+securityLevel.safer.description2 = Sumt letur og stærðfræðitákn eru óvirk.
+securityLevel.safer.description3 = Hljóð og myndskeið (HTML5-gagnamiðla) þarf að smella á til að spila.
+securityLevel.safest.level = Öruggast
+securityLevel.safest.summary = Leyfir aðeins þá eiginleika vefsvæða sem krafist er fyrir beinan lestur (static sites) og grunnþjónustur. Þessar breytingar hafa áhrif á myndir, margmiðlunargögn og skriftur.
+securityLevel.safest.description1 = JavaScript er sjálfgefið óvirkt á öllum vefsvæðum.
+securityLevel.safest.description2 = Sumt letur, táknmyndir, myndir og stærðfræðitákn eru óvirk.
+securityLevel.safest.description3 = Hljóð og myndskeið (HTML5-gagnamiðla) þarf að smella á til að spila.
+securityLevel.custom.summary = Your custom browser preferences have resulted in unusual security settings. For security and privacy reasons, we recommend you choose one of the default security levels.
+securityLevel.learnMore = Læra meira
+securityLevel.restoreDefaults = Frumstilla á sjálfgefið
diff --git a/src/chrome/locale/is/torbutton.dtd b/src/chrome/locale/is/torbutton.dtd
index a03a7329..2468114e 100644
--- a/src/chrome/locale/is/torbutton.dtd
+++ b/src/chrome/locale/is/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "Ný Tor-rás fyrir þetta vefsvæði">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "Öryggisstillingar…">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Netkerfisstillingar Tor…">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Athugaðu með uppfærslur Tor-vafra...">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Smelltu til að kveikja á Tor-hnapp">
<!ENTITY torbutton.prefs.security_settings "Öryggisstillingar Tor-vafrans">
-<!ENTITY torbutton.prefs.restore_defaults "Frumstilla á sjálfgefið">
-<!ENTITY torbutton.prefs.custom_warning "Your custom browser preferences have resulted in unusual security settings. For security and privacy reasons, we recommend you choose one of the default security levels.">
<!ENTITY torbutton.cookiedialog.title "Sýsla með varnir gegn vefkökum">
<!ENTITY torbutton.cookiedialog.lockCol "Varið">
<!ENTITY torbutton.cookiedialog.domainCol "Hýsilvél">
diff --git a/src/chrome/locale/it/securityLevel.properties b/src/chrome/locale/it/securityLevel.properties
new file mode 100644
index 00000000..14793258
--- /dev/null
+++ b/src/chrome/locale/it/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = Livello di Sicurezza
+securityLevel.standard.level = Standard
+securityLevel.standard.summary = Tutte le funzionalità di Tor Browser e dei siti sono attive.
+securityLevel.safer.level = Sicuro
+securityLevel.safer.summary = Disattiva le caratteristiche dei siti spesso pericolose, causando la perdita di funzionalità di alcuni siti.
+securityLevel.safer.description1 = JavaScript è disattivato nei siti non-HTTPS.
+securityLevel.safer.description2 = Alcuni caratteri e simboli matematici sono disattivati.
+securityLevel.safer.description3 = Audio e video (media HTML5) sono click-to-play.
+securityLevel.safest.level = Molto sicuro
+securityLevel.safest.summary = Permette solo le funzionalità necessarie per siti statici e servizi di base. Queste modifiche influiscono su immagini, media e script.
+securityLevel.safest.description1 = JavaScript è disattivato in tutti i siti in modo predefinito.
+securityLevel.safest.description2 = Alcuni caratteri, icone, simboli matematici e immagini sono disattivati.
+securityLevel.safest.description3 = Audio e video (media HTML5) sono click-to-play.
+securityLevel.custom.summary = Le tue impostazioni personalizzate del browser sembrano avere preferenze di sicurezza insolite. Per motivi di sicurezza e privacy, ti consigliamo di scegliere uno dei livelli di sicurezza predefiniti.
+securityLevel.learnMore = Per saperne di più
+securityLevel.restoreDefaults = Ripristina impostazioni iniziali
diff --git a/src/chrome/locale/it/torbutton.dtd b/src/chrome/locale/it/torbutton.dtd
index a45be803..3c46b13e 100644
--- a/src/chrome/locale/it/torbutton.dtd
+++ b/src/chrome/locale/it/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "Nuovo Circuito Tor per questo Sito">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "Impostazioni di sicurezza...">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Impostazioni della rete Tor...">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Controllo degli aggiornamenti di Tor Browser...">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Fai clic per inizializzare Torbutton">
<!ENTITY torbutton.prefs.security_settings "Impostazioni di Sicurezza Tor Browser">
-<!ENTITY torbutton.prefs.restore_defaults "Ripristina impostazioni iniziali">
-<!ENTITY torbutton.prefs.custom_warning "Le tue impostazioni personalizzate del browser sembrano avere preferenze di sicurezza insolite. Per motivi di sicurezza e privacy, ti consigliamo di scegliere uno dei livelli di sicurezza predefiniti.">
<!ENTITY torbutton.cookiedialog.title "Gestisci protezione Cookies">
<!ENTITY torbutton.cookiedialog.lockCol "Protetto">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/ja/securityLevel.properties b/src/chrome/locale/ja/securityLevel.properties
new file mode 100644
index 00000000..30c74471
--- /dev/null
+++ b/src/chrome/locale/ja/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = セキュリティレベル
+securityLevel.standard.level = 標準
+securityLevel.standard.summary = Tor Browser とウェブサイトのすべての機能が有効化されます。
+securityLevel.safer.level = より安全
+securityLevel.safer.summary = ウェブサイトのしばしば危険である機能を無効化します。サイトによっては正常に動作しなくなります。
+securityLevel.safer.description1 = HTTPS非対応のサイトで JavaScript が無効化されます。
+securityLevel.safer.description2 = いくつかのフォントと数学記号が無効化されます。
+securityLevel.safer.description3 = オーディオとビデオ(HTML5メディア)はクリックすると再生されます。
+securityLevel.safest.level = 最も安全
+securityLevel.safest.summary = 静的なサイトと基本的なサービスに必要な機能だけを許可します。この変更は画像、メディア、スクリプトに影響します。
+securityLevel.safest.description1 = すべてのサイトで JavaScript が無効化されます。
+securityLevel.safest.description2 = いくつかのアイコン、数学記号および画像が無効化されます。
+securityLevel.safest.description3 = オーディオとビデオ(HTML5メディア)はクリックすると再生されます。
+securityLevel.custom.summary = あなたのブラウザーにおけるカスタム設定はセキュリティ結果に影響を及ぼしません。セキュリティとプライバシーに関してはデフォルトのセキュリティレベルのひとつを選択することをおすすめいたします。
+securityLevel.learnMore = さらに知る
+securityLevel.restoreDefaults = デフォルトにもどす
diff --git a/src/chrome/locale/ja/torbutton.dtd b/src/chrome/locale/ja/torbutton.dtd
index ae495084..be6c4dc0 100644
--- a/src/chrome/locale/ja/torbutton.dtd
+++ b/src/chrome/locale/ja/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "このサイト用の新しい Tor サーキット">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "セキュリティの設定...">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Tor ネットワークの設定...">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Tor Browser のアップデートを確認">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Torbuttonを初期状態に戻す">
<!ENTITY torbutton.prefs.security_settings "Tor Browser セキュリティの設定">
-<!ENTITY torbutton.prefs.restore_defaults "デフォルトにもどす">
-<!ENTITY torbutton.prefs.custom_warning "あなたのブラウザーにおけるカスタム設定はセキュリティ結果に影響を及ぼしません。セキュリティとプライバシーに関してはデフォルトのセキュリティレベルのひとつを選択することをおすすめいたします。">
<!ENTITY torbutton.cookiedialog.title "Cookie保護を管理">
<!ENTITY torbutton.cookiedialog.lockCol "保護済み">
<!ENTITY torbutton.cookiedialog.domainCol "ホスト">
diff --git a/src/chrome/locale/jv/torbutton.dtd b/src/chrome/locale/jv/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/jv/torbutton.dtd
+++ b/src/chrome/locale/jv/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/ka/securityLevel.properties b/src/chrome/locale/ka/securityLevel.properties
new file mode 100644
index 00000000..758209d6
--- /dev/null
+++ b/src/chrome/locale/ka/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = უსაფრთხოების დონე
+securityLevel.standard.level = ჩვეულებრივი
+securityLevel.standard.summary = Tor-ბრაუზერისა და ვებსაიტის ყველა შესაძლებლობა ჩართულია.
+securityLevel.safer.level = მეტად დაცული
+securityLevel.safer.summary = გაითიშება ვებსაიტის საფრთხისშემცველი შესაძლებლობები, სავარაუდოდ საიტების ნაწილი ვერ იმუშავებს გამართულად.
+securityLevel.safer.description1 = JavaScript გათიშულია HTTPS-ს არმქონე ყველა საიტზე.
+securityLevel.safer.description2 = შრიფტებისა და მათემატიკური სიმბოლოების ნაწილი გათიშულია.
+securityLevel.safer.description3 = ხმოვანი და ვიდეოფაილები (HTML5) ეშვება მხოლოდ დაწკაპებით.
+securityLevel.safest.level = სრულიად დაცული
+securityLevel.safest.summary = დაშვებულია მხოლოდ ის შესაძლებლობები, რომლებსაც საჭიროებს უცვლელი შიგთავსის მქონე საიტები და ძირითადი მომსახურებები. ცვლილებები შეეხება სურათებს, ფაილებსა და სკრიპტებს.
+securityLevel.safest.description1 = JavaScript გათიშულია ყველა საიტზე ნაგულისხმევად.
+securityLevel.safest.description2 = შრიფტების, ხატულების, მათემატიკური სიმბოლოებისა და სურათების ნაწილი გათიშულია.
+securityLevel.safest.description3 = ხმოვანი და ვიდეოფაილები (HTML5) ეშვება მხოლოდ დაწკაპებით.
+securityLevel.custom.summary = თქვენ მიერ მითითებული პარამეტრები ბრაუზერში, არაა მისაღები უსაფრთხოებისთვის. პირადი მონაცემების სათანადოდ დაცვის უზრუნველსაყოფად, გირჩევთ შეარჩიოთ უსაფრთხოების ნაგულისხმევი დონეებიდან რომელიმე.
+securityLevel.learnMore = იხილეთ ვრცლად
+securityLevel.restoreDefaults = ნაგულისხმევის აღდგენა
diff --git a/src/chrome/locale/ka/torbutton.dtd b/src/chrome/locale/ka/torbutton.dtd
index 47b49321..ca4fa8b6 100644
--- a/src/chrome/locale/ka/torbutton.dtd
+++ b/src/chrome/locale/ka/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "ვ">
<!ENTITY torbutton.context_menu.new_circuit "ახალი Tor-წრედი ამ საიტისთვის">
<!ENTITY torbutton.context_menu.new_circuit_key "წ">
-<!ENTITY torbutton.context_menu.preferences "უსაფრთხოების პარამეტრები">
-<!ENTITY torbutton.context_menu.preferences.key "უ">
<!ENTITY torbutton.context_menu.networksettings "Tor-ქსელის პარამეტრები...">
<!ENTITY torbutton.context_menu.networksettings.key "ქ">
<!ENTITY torbutton.context_menu.downloadUpdate "Tor-ბრაუზერის განახლებებზე შემოწმება...">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "ფ">
<!ENTITY torbutton.button.tooltip "დააწკაპეთ Torbutton-ის გასაშვებად">
<!ENTITY torbutton.prefs.security_settings "Tor-ბრაუზერის უსაფრთხოების პარამეტრები">
-<!ENTITY torbutton.prefs.restore_defaults "ნაგულისხმევის აღდგენა">
-<!ENTITY torbutton.prefs.custom_warning "თქვენ მიერ მითითებული პარამეტრები ბრაუზერში, არაა მისაღები უსაფრთხოებისთვის. პირადი მონაცემების სათანადოდ დაცვის უზრუნველსაყოფად, გირჩევთ შეარჩიოთ უსაფრთხოების ნაგულისხმევი დონეებიდან რომელიმე.">
<!ENTITY torbutton.cookiedialog.title "ფუნთუშების უსაფრთხოების მართვა">
<!ENTITY torbutton.cookiedialog.lockCol "დაცულია">
<!ENTITY torbutton.cookiedialog.domainCol "მისამართი">
diff --git a/src/chrome/locale/km/torbutton.dtd b/src/chrome/locale/km/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/km/torbutton.dtd
+++ b/src/chrome/locale/km/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/kn/torbutton.dtd b/src/chrome/locale/kn/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/kn/torbutton.dtd
+++ b/src/chrome/locale/kn/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/ko/securityLevel.properties b/src/chrome/locale/ko/securityLevel.properties
new file mode 100644
index 00000000..bc5238d0
--- /dev/null
+++ b/src/chrome/locale/ko/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = 보안 등급
+securityLevel.standard.level = 표준
+securityLevel.standard.summary = 모든 Tor 브라우저와 웹사이트의 기능들이 활성화 됩니다.
+securityLevel.safer.level = 더 안전합니다
+securityLevel.safer.summary = 이 설정으로 흔히 위험한 웹사이트의 기능이 비활성화하면 일부의 사이트의 기능들을 사용 할 수 없습니다.
+securityLevel.safer.description1 = JavaScript가 HTTPS을 적용되지 않은 사이트에서 비활성화 됩니다.
+securityLevel.safer.description2 = 일부 글꼴이며 수학기호가 비활성화 됩니다.
+securityLevel.safer.description3 = 오디오와 동영상(HTML5 media) 보려면 누르십시오.
+securityLevel.safest.level = 제일 안전합니다
+securityLevel.safest.summary = 정적 사이트와 기본 서비스에 필요한 기능이만 용남합니다. 그 변경들은 사진이며 메디아며 스크립트를 영향할 것입니다.
+securityLevel.safest.description1 = 자바 스크립트는 기본 설정으로 모든 사이트에서 비활성화 되어 있습니다.
+securityLevel.safest.description2 = 일부 글꼴이며 상징이며 수학기호며 사진이 비활성화 됩니다.
+securityLevel.safest.description3 = 오디오와 동영상(HTML5 media) 보려면 누르십시오.
+securityLevel.custom.summary = 사용자 지정 브라우저 기본 설정으로 인해 비정상적인 보안 설정이 발생했습니다. 보안 및 개인 정보 보호를 위해 기본 보안 수준 중 하나를 선택하는 것이 좋습니다.
+securityLevel.learnMore = 더 알아보기
+securityLevel.restoreDefaults = 기본값으로 복구
diff --git a/src/chrome/locale/ko/torbutton.dtd b/src/chrome/locale/ko/torbutton.dtd
index ab359411..03dfc033 100644
--- a/src/chrome/locale/ko/torbutton.dtd
+++ b/src/chrome/locale/ko/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "Tor 서킷 재구축">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "보안 설정...">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "토르 네트워크 설정...">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "토르 브라우저 업데이트 체크하기...">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Torbutton 설정 초기화">
<!ENTITY torbutton.prefs.security_settings "Tor 브라우저 보안 설정">
-<!ENTITY torbutton.prefs.restore_defaults "기본값으로 복구">
-<!ENTITY torbutton.prefs.custom_warning "사용자 지정 브라우저 기본 설정으로 인해 비정상적인 보안 설정이 발생했습니다. 보안 및 개인 정보 보호를 위해 기본 보안 수준 중 하나를 선택하는 것이 좋습니다.">
<!ENTITY torbutton.cookiedialog.title "쿠키 보호 관리">
<!ENTITY torbutton.cookiedialog.lockCol "보호됨">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/ku/torbutton.dtd b/src/chrome/locale/ku/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/ku/torbutton.dtd
+++ b/src/chrome/locale/ku/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/kw/torbutton.dtd b/src/chrome/locale/kw/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/kw/torbutton.dtd
+++ b/src/chrome/locale/kw/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/ky/torbutton.dtd b/src/chrome/locale/ky/torbutton.dtd
index 8be58090..5fe03c20 100644
--- a/src/chrome/locale/ky/torbutton.dtd
+++ b/src/chrome/locale/ky/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/lb/torbutton.dtd b/src/chrome/locale/lb/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/lb/torbutton.dtd
+++ b/src/chrome/locale/lb/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/lg/torbutton.dtd b/src/chrome/locale/lg/torbutton.dtd
index ee8c0d28..a8e1fe51 100644
--- a/src/chrome/locale/lg/torbutton.dtd
+++ b/src/chrome/locale/lg/torbutton.dtd
@@ -1,7 +1,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/ln/torbutton.dtd b/src/chrome/locale/ln/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/ln/torbutton.dtd
+++ b/src/chrome/locale/ln/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/lo/torbutton.dtd b/src/chrome/locale/lo/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/lo/torbutton.dtd
+++ b/src/chrome/locale/lo/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/lt/securityLevel.properties b/src/chrome/locale/lt/securityLevel.properties
new file mode 100644
index 00000000..92fcf4b1
--- /dev/null
+++ b/src/chrome/locale/lt/securityLevel.properties
@@ -0,0 +1 @@
+securityLevel.restoreDefaults = Atstatyti numatytuosius
diff --git a/src/chrome/locale/lt/torbutton.dtd b/src/chrome/locale/lt/torbutton.dtd
index 85e41b2d..6cf6f9ca 100644
--- a/src/chrome/locale/lt/torbutton.dtd
+++ b/src/chrome/locale/lt/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Slapukų apsaugos">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Paspauskite kad aktyvuoti Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Atstatyti numatytuosius">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/lv/securityLevel.properties b/src/chrome/locale/lv/securityLevel.properties
new file mode 100644
index 00000000..f3d2eab9
--- /dev/null
+++ b/src/chrome/locale/lv/securityLevel.properties
@@ -0,0 +1 @@
+securityLevel.restoreDefaults = Atjaunot noklusējuma vērtības
diff --git a/src/chrome/locale/lv/torbutton.dtd b/src/chrome/locale/lv/torbutton.dtd
index ea5e250b..2b52a966 100644
--- a/src/chrome/locale/lv/torbutton.dtd
+++ b/src/chrome/locale/lv/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Aizsardzība no sīkdatnēm">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Noklikšķināt, lai inicializētu Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Atjaunot noklusējuma vērtības">
<!ENTITY torbutton.cookiedialog.title "Pārvaldīt aizsardzību no sīkdatnēm">
<!ENTITY torbutton.cookiedialog.lockCol "Aizsargāts">
<!ENTITY torbutton.cookiedialog.domainCol "Viesotājs">
diff --git a/src/chrome/locale/mg/torbutton.dtd b/src/chrome/locale/mg/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/mg/torbutton.dtd
+++ b/src/chrome/locale/mg/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/mi/torbutton.dtd b/src/chrome/locale/mi/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/mi/torbutton.dtd
+++ b/src/chrome/locale/mi/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/mk/securityLevel.properties b/src/chrome/locale/mk/securityLevel.properties
new file mode 100644
index 00000000..b6ceb35c
--- /dev/null
+++ b/src/chrome/locale/mk/securityLevel.properties
@@ -0,0 +1 @@
+securityLevel.restoreDefaults = Стандардни подесувања
diff --git a/src/chrome/locale/mk/torbutton.dtd b/src/chrome/locale/mk/torbutton.dtd
index 28cfc0b8..cc240827 100644
--- a/src/chrome/locale/mk/torbutton.dtd
+++ b/src/chrome/locale/mk/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Кликнете за иницирање на Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Стандардни подесувања">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/ml/torbutton.dtd b/src/chrome/locale/ml/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/ml/torbutton.dtd
+++ b/src/chrome/locale/ml/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/mn/torbutton.dtd b/src/chrome/locale/mn/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/mn/torbutton.dtd
+++ b/src/chrome/locale/mn/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/mr/torbutton.dtd b/src/chrome/locale/mr/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/mr/torbutton.dtd
+++ b/src/chrome/locale/mr/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/ms/torbutton.dtd b/src/chrome/locale/ms/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/ms/torbutton.dtd
+++ b/src/chrome/locale/ms/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/mt/torbutton.dtd b/src/chrome/locale/mt/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/mt/torbutton.dtd
+++ b/src/chrome/locale/mt/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/my/securityLevel.properties b/src/chrome/locale/my/securityLevel.properties
new file mode 100644
index 00000000..69808509
--- /dev/null
+++ b/src/chrome/locale/my/securityLevel.properties
@@ -0,0 +1 @@
+securityLevel.restoreDefaults = မူလအတိုင်း ပြန်ထားရန်
diff --git a/src/chrome/locale/my/torbutton.dtd b/src/chrome/locale/my/torbutton.dtd
index b628fd23..06bc4078 100644
--- a/src/chrome/locale/my/torbutton.dtd
+++ b/src/chrome/locale/my/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "ကွတ်ကီး ကာကွယ်မှုများ">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Torbutton ကို အစပြုရန် နှိပ်ပါ။">
-<!ENTITY torbutton.prefs.restore_defaults " မူလအတိုင်း ပြန်ထားရန်">
<!ENTITY torbutton.cookiedialog.title "ကွတ်ကီး ကာကွယ်မှုများကို စီမံခန့်ခွဲရန်">
<!ENTITY torbutton.cookiedialog.lockCol "အကာအကွယ် လုပ်ထားသည်">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/nah/torbutton.dtd b/src/chrome/locale/nah/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/nah/torbutton.dtd
+++ b/src/chrome/locale/nah/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/nap/torbutton.dtd b/src/chrome/locale/nap/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/nap/torbutton.dtd
+++ b/src/chrome/locale/nap/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/nb/securityLevel.properties b/src/chrome/locale/nb/securityLevel.properties
new file mode 100644
index 00000000..8b36964f
--- /dev/null
+++ b/src/chrome/locale/nb/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = Sikkerhetsnivå
+securityLevel.standard.level = Forvalg
+securityLevel.standard.summary = Alle Tor-nettleser- og nettside-funksjoner er på.
+securityLevel.safer.level = Tryggere
+securityLevel.safer.summary = Skrur av nettsidefunksjoner som ofte er farlige, som gjør at noen sider blir skadelidende.
+securityLevel.safer.description1 = JavaScript er avskrudd på sider som ikke er HTTPS.
+securityLevel.safer.description2 = Noen skrifter og mattesymboler er avskrudd.
+securityLevel.safer.description3 = Lyd og video (HTML5-media) må klikkes for å spilles av.
+securityLevel.safest.level = Tryggest
+securityLevel.safest.summary = Tillater bare nettsidefunksjoner som kreves for statiske sider og grunnleggende tjenester. Disse endringene har innvirkning på bilder, media, og skript.
+securityLevel.safest.description1 = JavaScript er som forvalg slått av for alle nettsteder.
+securityLevel.safest.description2 = Noen skrifter, ikoner, mattesymboler og bilder er avskrudd.
+securityLevel.safest.description3 = Lyd og video (HTML5-media) må klikkes for å spilles av.
+securityLevel.custom.summary = Dine nettleserinnstillinger har ført med seg uvanlige sikkerhetsvalg. Av sikkerhet- og personverns-hensyn anbefaler vi at du velger en av de forvalgte sikkerhetsnivåene.
+securityLevel.learnMore = Lær mer
+securityLevel.restoreDefaults = Gjenopprett forvalg
diff --git a/src/chrome/locale/nb/torbutton.dtd b/src/chrome/locale/nb/torbutton.dtd
index 67e2fc2b..be9665d5 100644
--- a/src/chrome/locale/nb/torbutton.dtd
+++ b/src/chrome/locale/nb/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "Ny Tor-krets for denne siden">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "Sikkerhetsinnstillinger…">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Nettverksinnstillinger for Tor…">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Se etter oppdatering for Tor-nettleseren…">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Klikk for å igangsette Torbutton">
<!ENTITY torbutton.prefs.security_settings "Sikkerhetsinnstillinger for Tor-nettleseren">
-<!ENTITY torbutton.prefs.restore_defaults "Gjenopprett forvalg">
-<!ENTITY torbutton.prefs.custom_warning "Dine nettleserinnstillinger har ført med seg uvanlige sikkerhetsvalg. Av sikkerhet- og personverns-hensyn anbefaler vi at du velger en av de forvalgte sikkerhetsnivåene.">
<!ENTITY torbutton.cookiedialog.title "Administrer beskyttelse av informasjonskapsler">
<!ENTITY torbutton.cookiedialog.lockCol "Beskyttet">
<!ENTITY torbutton.cookiedialog.domainCol "Vert">
diff --git a/src/chrome/locale/ne/torbutton.dtd b/src/chrome/locale/ne/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/ne/torbutton.dtd
+++ b/src/chrome/locale/ne/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/nl/securityLevel.properties b/src/chrome/locale/nl/securityLevel.properties
new file mode 100644
index 00000000..2410b725
--- /dev/null
+++ b/src/chrome/locale/nl/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = Beveiligingsniveau
+securityLevel.standard.level = Standaard
+securityLevel.standard.summary = Alle Tor Browser- en websitefuncties zijn ingeschakeld.
+securityLevel.safer.level = Veiliger
+securityLevel.safer.summary = Uitgeschakelde websitefuncties die zijn meestal gevaarlijk, waardoor sommige sites functionaliteit vaak verliezen.
+securityLevel.safer.description1 = JavaScript zijn uitgeschakeld op non-HTTP sites.
+securityLevel.safer.description2 = Sommige lettertypen en wiskundige symbolen zijn uitgeschakeld.
+securityLevel.safer.description3 = Audio en video (HTML5-media) zijn klik-bij-afspelen.
+securityLevel.safest.level = Veiligste
+securityLevel.safest.summary = Alleen websitefuncties toestaan die vereist zijn voor statische sites en basis diensten. Deze wijzigingen zijn van invloed op afbeeldingen, media en scripts.
+securityLevel.safest.description1 = Javascript zijn standaard uitgeschakeld op alle sites.
+securityLevel.safest.description2 = Sommige lettertypen, pictogrammen, wiskundige symbolen en afbeeldingen zijn uitgeschakeld.
+securityLevel.safest.description3 = Audio en video (HTML5-media) zijn klik-bij-afspelen.
+securityLevel.custom.summary = Je aangepaste browservoorkeuren hebben geleid tot ongebruikelijke beveiligingsinstellingen. Uit veiligheids- en privacy-overwegingen raden we je aan één van de standaardbeveiligingsniveaus te kiezen.
+securityLevel.learnMore = Leer Meer
+securityLevel.restoreDefaults = Standaardwaarden herstellen
diff --git a/src/chrome/locale/nl/torbutton.dtd b/src/chrome/locale/nl/torbutton.dtd
index d31b4153..0ab3164b 100644
--- a/src/chrome/locale/nl/torbutton.dtd
+++ b/src/chrome/locale/nl/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "Nieuw Tor-circuit voor deze website">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "Beveiligingsinstellingen…">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Tor-netwerkinstellingen…">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Controleer op updates voor de Tor-browser...">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Klik hier om Tor-knop te initialiseren">
<!ENTITY torbutton.prefs.security_settings "Tor-browser Beveiligingsinstellingen">
-<!ENTITY torbutton.prefs.restore_defaults "Standaardwaarden herstellen">
-<!ENTITY torbutton.prefs.custom_warning "Je aangepaste browservoorkeuren hebben geleid tot ongebruikelijke beveiligingsinstellingen. Uit veiligheids- en privacy-overwegingen raden we je aan één van de standaardbeveiligingsniveaus te kiezen.">
<!ENTITY torbutton.cookiedialog.title "Beheer Cookie Beveiligingen">
<!ENTITY torbutton.cookiedialog.lockCol "Beveiligd">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/nn/torbutton.dtd b/src/chrome/locale/nn/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/nn/torbutton.dtd
+++ b/src/chrome/locale/nn/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/nso/torbutton.dtd b/src/chrome/locale/nso/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/nso/torbutton.dtd
+++ b/src/chrome/locale/nso/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/oc/torbutton.dtd b/src/chrome/locale/oc/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/oc/torbutton.dtd
+++ b/src/chrome/locale/oc/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/or/torbutton.dtd b/src/chrome/locale/or/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/or/torbutton.dtd
+++ b/src/chrome/locale/or/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/pa/torbutton.dtd b/src/chrome/locale/pa/torbutton.dtd
index c7185f22..2ff04d9a 100644
--- a/src/chrome/locale/pa/torbutton.dtd
+++ b/src/chrome/locale/pa/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/pap/torbutton.dtd b/src/chrome/locale/pap/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/pap/torbutton.dtd
+++ b/src/chrome/locale/pap/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/pl/securityLevel.properties b/src/chrome/locale/pl/securityLevel.properties
new file mode 100644
index 00000000..0b5e04da
--- /dev/null
+++ b/src/chrome/locale/pl/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = Poziom bezpieczeństwa
+securityLevel.standard.level = Standardowy
+securityLevel.standard.summary = Wszystkie funkcje Przeglądarki Tor i strony zostały włączone.
+securityLevel.safer.level = Bezpieczniej
+securityLevel.safer.summary = Wyłącza funkcje witryny, które często są niebezpieczne, co powoduje, że niektóre witryny tracą funkcjonalność.
+securityLevel.safer.description1 = Obsługa skryptów Java na stronach bez HTTPS jest wyłączona.
+securityLevel.safer.description2 = Niektóre fonty i symbole są wyłączone.
+securityLevel.safer.description3 = Dźwięk i obraz (media HTML5) to "kliknij, aby odtworzyć".
+securityLevel.safest.level = Najbezpieczniejszy
+securityLevel.safest.summary = Pozwala tylko na funkcje serwisu wymagane w przypadku witryn statycznych i podstawowych usług. Te zmiany dotyczą obrazów, multimediów i skryptów.
+securityLevel.safest.description1 = JavaScript jest domyślnie wyłączona na wszystkich stronach.
+securityLevel.safest.description2 = Niektóre fonty, ikony, symbole i obrazki są wyłączone.
+securityLevel.safest.description3 = Dźwięk i obraz (media HTML5) to "kliknij, aby odtworzyć".
+securityLevel.custom.summary = Niestandardowe preferencje przeglądarki spowodowały nietypowe ustawienia zabezpieczeń. Ze względów bezpieczeństwa i prywatności zalecamy wybranie jednego z domyślnych poziomów zabezpieczeń.
+securityLevel.learnMore = Dowiedz się więcej
+securityLevel.restoreDefaults = Przywróć domyślne
diff --git a/src/chrome/locale/pl/torbutton.dtd b/src/chrome/locale/pl/torbutton.dtd
index ba43142b..134b01fe 100644
--- a/src/chrome/locale/pl/torbutton.dtd
+++ b/src/chrome/locale/pl/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "o">
<!ENTITY torbutton.context_menu.new_circuit "Nowy obwód dla tej strony">
<!ENTITY torbutton.context_menu.new_circuit_key "c">
-<!ENTITY torbutton.context_menu.preferences "Ustawienia bezpieczeństwa...">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Ustawienia Sieci Tor...">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Sprawdź czy są aktualizacje Tor Browser...">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "c">
<!ENTITY torbutton.button.tooltip "Kliknij tutaj, aby uruchomić Torbutton">
<!ENTITY torbutton.prefs.security_settings "Ustawienia Bezpieczeństwa Przeglądarki Tor">
-<!ENTITY torbutton.prefs.restore_defaults "Przywróć domyślne">
-<!ENTITY torbutton.prefs.custom_warning "Niestandardowe preferencje przeglądarki spowodowały nietypowe ustawienia zabezpieczeń. Ze względów bezpieczeństwa i prywatności zalecamy wybranie jednego z domyślnych poziomów zabezpieczeń.">
<!ENTITY torbutton.cookiedialog.title "Zarządzaj ochroną ciasteczek">
<!ENTITY torbutton.cookiedialog.lockCol "Chronione">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/pms/torbutton.dtd b/src/chrome/locale/pms/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/pms/torbutton.dtd
+++ b/src/chrome/locale/pms/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/ps/torbutton.dtd b/src/chrome/locale/ps/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/ps/torbutton.dtd
+++ b/src/chrome/locale/ps/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/pt-BR/securityLevel.properties b/src/chrome/locale/pt-BR/securityLevel.properties
new file mode 100644
index 00000000..5ad5d318
--- /dev/null
+++ b/src/chrome/locale/pt-BR/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = Nível de Segurança
+securityLevel.standard.level = Padrão
+securityLevel.standard.summary = Todos os recursos do Navegador Tor e do website estão ativos.
+securityLevel.safer.level = Seguro
+securityLevel.safer.summary = Desativar recursos geralmente inseguros de websites, o que pode fazer com que alguns sites percam a funcionalidade.
+securityLevel.safer.description1 = JavaScript está desativado em todos os sites sem HTTPS.
+securityLevel.safer.description2 = Algumas fontes e símbolos matemáticos estão desativados.
+securityLevel.safer.description3 = Clicar para tocar ou ver áudio ou vídeo (mídia HTML5).
+securityLevel.safest.level = Segurança máxima
+securityLevel.safest.summary = Apenas permitir os recursos dos websites necessários para sites estáticos e serviços básicos. Essas mudanças afetam imagens, mídias e scripts.
+securityLevel.safest.description1 = JavaScript está desativado por padrão em todos os sites.
+securityLevel.safest.description2 = Algumas fontes, ícones, símbolos matemáticas e imagens estão desativadas.
+securityLevel.safest.description3 = Clicar para tocar ou ver áudio ou vídeo (mídia HTML5).
+securityLevel.custom.summary = As configurações personalizadas do seu navegador ficaram fora do comum. Por razões de segurança e de privacidade, recomendamos que você escolha um dos níveis padrões de segurança.
+securityLevel.learnMore = Aprenda mais
+securityLevel.restoreDefaults = Restaurar Padrões
diff --git a/src/chrome/locale/pt-BR/torbutton.dtd b/src/chrome/locale/pt-BR/torbutton.dtd
index 5ca71899..cf4026bd 100644
--- a/src/chrome/locale/pt-BR/torbutton.dtd
+++ b/src/chrome/locale/pt-BR/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "Eu">
<!ENTITY torbutton.context_menu.new_circuit "Novo Circuito Tor para este Site">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "Configurações de Segurança...">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Configurações da Rede Tor...">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Procurar Atualizações do Navegador Tor...">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Clique para iniciar o Torbutton">
<!ENTITY torbutton.prefs.security_settings "Configurações de Segurança do Navegador Tor">
-<!ENTITY torbutton.prefs.restore_defaults "Restaurar Padrões">
-<!ENTITY torbutton.prefs.custom_warning "As configurações personalizadas do seu navegador ficaram fora do comum. Por razões de segurança e de privacidade, recomendamos que você escolha um dos níveis padrões de segurança. ">
<!ENTITY torbutton.cookiedialog.title "Gerenciar Proteções de Cookies">
<!ENTITY torbutton.cookiedialog.lockCol "Protegido">
<!ENTITY torbutton.cookiedialog.domainCol "Hospedeiro">
diff --git a/src/chrome/locale/pt/securityLevel.properties b/src/chrome/locale/pt/securityLevel.properties
new file mode 100644
index 00000000..1c8fdfe2
--- /dev/null
+++ b/src/chrome/locale/pt/securityLevel.properties
@@ -0,0 +1 @@
+securityLevel.securityLevel = Nível de Segurança
diff --git a/src/chrome/locale/pt/torbutton.dtd b/src/chrome/locale/pt/torbutton.dtd
index efff3d9b..24c8df67 100644
--- a/src/chrome/locale/pt/torbutton.dtd
+++ b/src/chrome/locale/pt/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "Novo Circuito Tor para este Site">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "Security Settings…">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Configurações da Rede Tor...">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Procurar por atualizações do Navegador Tor...">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Clique para inicializar o Torbutton">
<!ENTITY torbutton.prefs.security_settings "Tor Browser Security Settings">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
-<!ENTITY torbutton.prefs.custom_warning "Your custom browser preferences have resulted in unusual security settings. For security and privacy reasons, we recommend you choose one of the default security levels.">
<!ENTITY torbutton.cookiedialog.title "Gerir Proteções dos Cookies">
<!ENTITY torbutton.cookiedialog.lockCol "Protegido">
<!ENTITY torbutton.cookiedialog.domainCol "Hospedeiro">
diff --git a/src/chrome/locale/ro/securityLevel.properties b/src/chrome/locale/ro/securityLevel.properties
new file mode 100644
index 00000000..52d4889f
--- /dev/null
+++ b/src/chrome/locale/ro/securityLevel.properties
@@ -0,0 +1 @@
+securityLevel.restoreDefaults = Restaurează setările implicite
diff --git a/src/chrome/locale/ro/torbutton.dtd b/src/chrome/locale/ro/torbutton.dtd
index 8bbcaf85..9a9f85fe 100644
--- a/src/chrome/locale/ro/torbutton.dtd
+++ b/src/chrome/locale/ro/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Protectii Cookie-uri.">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Apasă pentru pornirea Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restaurează setările implicite">
<!ENTITY torbutton.cookiedialog.title "Gestionează Protecţii Cookie">
<!ENTITY torbutton.cookiedialog.lockCol "Protejat">
<!ENTITY torbutton.cookiedialog.domainCol "Gazda">
diff --git a/src/chrome/locale/ru/securityLevel.properties b/src/chrome/locale/ru/securityLevel.properties
new file mode 100644
index 00000000..ed2685d8
--- /dev/null
+++ b/src/chrome/locale/ru/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = Уровень безопасности
+securityLevel.standard.level = Стандартные
+securityLevel.standard.summary = Все функции Tor Browser и веб-сайтов включены.
+securityLevel.safer.level = Более безопасные
+securityLevel.safer.summary = Отключены функции веб-сайтов, которые часто бывают опасны, что может привести к потере функциональности некоторыми сайтами.
+securityLevel.safer.description1 = JavaScript отключен на всех не HTTPS сайтах.
+securityLevel.safer.description2 = Некоторые шрифты и математические символы отключены.
+securityLevel.safer.description3 = Аудио и видео (HTML5 медиа) проигрываются только после клика.
+securityLevel.safest.level = Наиболее безопасные
+securityLevel.safest.summary = Разрешены только функции веб-сайтов, требующиеся для статических сайтов и основных сервисов. Эти изменения влияют на изображения, медиа и скрипты.
+securityLevel.safest.description1 = JavaScript отключен по умолчанию на всех сайтах.
+securityLevel.safest.description2 = Некоторые шрифты, значки, математические символы и изображения отключены.
+securityLevel.safest.description3 = Аудио и видео (HTML5 медиа) проигрываются только после клика.
+securityLevel.custom.summary = Ваши настройки браузера привели к необычным параметрам безопасности. По соображениям безопасности и приватности мы рекомендуем выбрать один из уровней безопасности по умолчанию.
+securityLevel.learnMore = Подробнее
+securityLevel.restoreDefaults = Восстановить значения по умолчанию
diff --git a/src/chrome/locale/ru/torbutton.dtd b/src/chrome/locale/ru/torbutton.dtd
index 3acf77f4..bbf416a4 100644
--- a/src/chrome/locale/ru/torbutton.dtd
+++ b/src/chrome/locale/ru/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "Я">
<!ENTITY torbutton.context_menu.new_circuit "Новая цепочка Tor для этого cайта">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "Настройки безопасности...">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Настройки сети Tor">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Проверить на наличие обновлений Tor Browser">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Нажмите, чтобы инициализировать Torbutton">
<!ENTITY torbutton.prefs.security_settings "Настройки безопасности Tor Browser">
-<!ENTITY torbutton.prefs.restore_defaults "Восстановить значения по умолчанию">
-<!ENTITY torbutton.prefs.custom_warning "Ваши настройки браузера привели к необычным параметрам безопасности. По соображениям безопасности и приватности мы рекомендуем выбрать один из уровней безопасности по умолчанию.">
<!ENTITY torbutton.cookiedialog.title "Управление защитой куки-файлов">
<!ENTITY torbutton.cookiedialog.lockCol "Защищено">
<!ENTITY torbutton.cookiedialog.domainCol "Ведущий узел">
diff --git a/src/chrome/locale/sco/torbutton.dtd b/src/chrome/locale/sco/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/sco/torbutton.dtd
+++ b/src/chrome/locale/sco/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/sk/securityLevel.properties b/src/chrome/locale/sk/securityLevel.properties
new file mode 100644
index 00000000..e0a3a746
--- /dev/null
+++ b/src/chrome/locale/sk/securityLevel.properties
@@ -0,0 +1 @@
+securityLevel.restoreDefaults = Obnoviť predvolené
diff --git a/src/chrome/locale/sk/torbutton.dtd b/src/chrome/locale/sk/torbutton.dtd
index 25dc5886..f4e7ad73 100644
--- a/src/chrome/locale/sk/torbutton.dtd
+++ b/src/chrome/locale/sk/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Obnoviť predvolené">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/sl/securityLevel.properties b/src/chrome/locale/sl/securityLevel.properties
new file mode 100644
index 00000000..4418f738
--- /dev/null
+++ b/src/chrome/locale/sl/securityLevel.properties
@@ -0,0 +1 @@
+securityLevel.restoreDefaults = Privzete nastavitve
diff --git a/src/chrome/locale/sl/torbutton.dtd b/src/chrome/locale/sl/torbutton.dtd
index 475724e3..f3243f95 100644
--- a/src/chrome/locale/sl/torbutton.dtd
+++ b/src/chrome/locale/sl/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "piškotkina zaščita">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Klikni za inicializiranje razširitve Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Privzete nastavitve">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/so/torbutton.dtd b/src/chrome/locale/so/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/so/torbutton.dtd
+++ b/src/chrome/locale/so/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/son/torbutton.dtd b/src/chrome/locale/son/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/son/torbutton.dtd
+++ b/src/chrome/locale/son/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/sq/torbutton.dtd b/src/chrome/locale/sq/torbutton.dtd
index 0f77148b..9d2ddd42 100644
--- a/src/chrome/locale/sq/torbutton.dtd
+++ b/src/chrome/locale/sq/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/sr/securityLevel.properties b/src/chrome/locale/sr/securityLevel.properties
new file mode 100644
index 00000000..57f1ebf1
--- /dev/null
+++ b/src/chrome/locale/sr/securityLevel.properties
@@ -0,0 +1 @@
+securityLevel.restoreDefaults = Поврати подразумевано
diff --git a/src/chrome/locale/sr/torbutton.dtd b/src/chrome/locale/sr/torbutton.dtd
index a945b001..dd24b25c 100644
--- a/src/chrome/locale/sr/torbutton.dtd
+++ b/src/chrome/locale/sr/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Дозволе за колачиће">
<!ENTITY torbutton.context_menu.cookieProtections.key "Ц">
<!ENTITY torbutton.button.tooltip "Кликните да бисте покренули Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Поврати подразумевано">
<!ENTITY torbutton.cookiedialog.title "Уреди заштиту колачића">
<!ENTITY torbutton.cookiedialog.lockCol "Заштићен">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/st/torbutton.dtd b/src/chrome/locale/st/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/st/torbutton.dtd
+++ b/src/chrome/locale/st/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/su/torbutton.dtd b/src/chrome/locale/su/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/su/torbutton.dtd
+++ b/src/chrome/locale/su/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/sv/securityLevel.properties b/src/chrome/locale/sv/securityLevel.properties
new file mode 100644
index 00000000..8a51da05
--- /dev/null
+++ b/src/chrome/locale/sv/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = Säkerhetsnivå
+securityLevel.standard.level = Standard
+securityLevel.standard.summary = Alla funktioner för Tor Browser och webbplatsfunktioner är aktiverade.
+securityLevel.safer.level = Säkrare
+securityLevel.safer.summary = Inaktiverar webbplatsfunktioner som ofta är farliga, vilket gör att vissa webbplatser förlorar funktionalitet.
+securityLevel.safer.description1 = JavaScript är inaktiverat på webbplatser utan HTTPS.
+securityLevel.safer.description2 = Vissa typsnitt och matte symboler är inaktiverade.
+securityLevel.safer.description3 = Ljud och video (HTML5-media) är klicka-för-att-spel.
+securityLevel.safest.level = Säkrast
+securityLevel.safest.summary = Tillåt endast webbplatsfunktioner som krävs för statiska webbplatser och grundläggande tjänster. Dessa förändringar påverkar bilder, media och skript.
+securityLevel.safest.description1 = JavaScript är inaktiverat som standard på alla webbplatser.
+securityLevel.safest.description2 = Vissa typsnitt, ikoner, matte symboler och bilder är inaktiverade.
+securityLevel.safest.description3 = Ljud och video (HTML5-media) är klicka-för-att-spel.
+securityLevel.custom.summary = Dina anpassade webbläsarinställningar har resulterat i ovanliga säkerhetsinställningar. Av säkerhets- och integritetsskäl rekommenderar vi att du använder en av de fördefinierade säkerhetsnivåerna.
+securityLevel.learnMore = Läs mer
+securityLevel.restoreDefaults = Återställ standard
diff --git a/src/chrome/locale/sv/torbutton.dtd b/src/chrome/locale/sv/torbutton.dtd
index d05c163e..5c074a65 100644
--- a/src/chrome/locale/sv/torbutton.dtd
+++ b/src/chrome/locale/sv/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "N">
<!ENTITY torbutton.context_menu.new_circuit "Ny Tor-krets för den här webbplatsen">
<!ENTITY torbutton.context_menu.new_circuit_key "S">
-<!ENTITY torbutton.context_menu.preferences "Säkerhetsinställningar...">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Tor-nätverksinställningar...">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Sök efter uppdateringar för Tor Browser...">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "S">
<!ENTITY torbutton.button.tooltip "Klicka för att initialisera Torbutton">
<!ENTITY torbutton.prefs.security_settings "Säkerhetsinställningar i Tor Browser">
-<!ENTITY torbutton.prefs.restore_defaults "Återställ standard">
-<!ENTITY torbutton.prefs.custom_warning "Dina anpassade webbläsarinställningar har resulterat i ovanliga säkerhetsinställningar. Av säkerhets- och integritetsskäl rekommenderar vi att du använder en av de fördefinierade säkerhetsnivåerna.">
<!ENTITY torbutton.cookiedialog.title "Hantera Cookies skydd">
<!ENTITY torbutton.cookiedialog.lockCol "Skyddad">
<!ENTITY torbutton.cookiedialog.domainCol "Värd">
diff --git a/src/chrome/locale/sw/torbutton.dtd b/src/chrome/locale/sw/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/sw/torbutton.dtd
+++ b/src/chrome/locale/sw/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/ta/torbutton.dtd b/src/chrome/locale/ta/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/ta/torbutton.dtd
+++ b/src/chrome/locale/ta/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/te/torbutton.dtd b/src/chrome/locale/te/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/te/torbutton.dtd
+++ b/src/chrome/locale/te/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/tg/torbutton.dtd b/src/chrome/locale/tg/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/tg/torbutton.dtd
+++ b/src/chrome/locale/tg/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/th/torbutton.dtd b/src/chrome/locale/th/torbutton.dtd
index 4f4b87fd..e0da4be2 100644
--- a/src/chrome/locale/th/torbutton.dtd
+++ b/src/chrome/locale/th/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/ti/torbutton.dtd b/src/chrome/locale/ti/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/ti/torbutton.dtd
+++ b/src/chrome/locale/ti/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/tk/torbutton.dtd b/src/chrome/locale/tk/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/tk/torbutton.dtd
+++ b/src/chrome/locale/tk/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/tr/securityLevel.properties b/src/chrome/locale/tr/securityLevel.properties
new file mode 100644
index 00000000..45ca83be
--- /dev/null
+++ b/src/chrome/locale/tr/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = Güvenlik Düzeyi
+securityLevel.standard.level = Standart
+securityLevel.standard.summary = Tüm Tor Browser ve web sitesi özellikleri kullanılabilir.
+securityLevel.safer.level = Daha Güvenli
+securityLevel.safer.summary = Sıklıkla tehlikeli olan web sitesi özellikleri devre dışı bırakılır ve bazı sitelerin işlevlerinde kayıplar olabilir.
+securityLevel.safer.description1 = JavaScript, HTTPS kullanmayan sitelerde devre dışı bırakılır.
+securityLevel.safer.description2 = Bazı yazı türleri ve matematik simgeleri devre dışı bırakılır.
+securityLevel.safer.description3 = Ses ve görüntüler (HTML5 ortamı) tıklayarak çalıştırılabilir.
+securityLevel.safest.level = En Güvenli
+securityLevel.safest.summary = Yalnız durağan siteler ve temel hizmetler için gerekli web sitesi özelliklerine izin verilir. Bu değişiklikler görselleri, ortamları ve betikleri etkiler.
+securityLevel.safest.description1 = JavaScript betikleri tüm sitelerde varsayılan olarak devre dışı bırakılır.
+securityLevel.safest.description2 = Bazı yazı türleri, simgeler, matematik simgeleri ve görseller devre dışı bırakılır.
+securityLevel.safest.description3 = Ses ve görüntüler (HTML5 ortamı) tıklayarak çalıştırılabilir.
+securityLevel.custom.summary = Tarayıcınız standart olmayan özel güvenlik ayarları kullanıyor. Güvenlik ve gizlilik nedenleriyle aşağıdaki varsayılan güvenlik ayarı düzeylerinden birini seçmeniz önerilir.
+securityLevel.learnMore = Ayrıntılı bilgi alın
+securityLevel.restoreDefaults = Varsayılanlara Sıfırla
diff --git a/src/chrome/locale/tr/torbutton.dtd b/src/chrome/locale/tr/torbutton.dtd
index 24b3dfff..e6be6713 100644
--- a/src/chrome/locale/tr/torbutton.dtd
+++ b/src/chrome/locale/tr/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "Bu Sitenin Tor Devresini Yenile">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "Güvenlik Ayarları...">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Tor Ağ Ayarları...">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Tor Browser Güncelleme Denetimi...">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Torbutton uygulamasını başlatmak için tıklayın">
<!ENTITY torbutton.prefs.security_settings "Tor Browser Güvenlik Ayarları">
-<!ENTITY torbutton.prefs.restore_defaults "Varsayılanlara Sıfırla">
-<!ENTITY torbutton.prefs.custom_warning "Tarayıcınız standart olmayan özel güvenlik ayarları kullanıyor. Güvenlik ve gizlilik nedenleriyle aşağıdaki varsayılan güvenlik ayarı düzeylerinden birini seçmeniz önerilir.">
<!ENTITY torbutton.cookiedialog.title "Çerez Koruması Yönetimi">
<!ENTITY torbutton.cookiedialog.lockCol "Korunmuş">
<!ENTITY torbutton.cookiedialog.domainCol "Sunucu">
diff --git a/src/chrome/locale/uk/securityLevel.properties b/src/chrome/locale/uk/securityLevel.properties
new file mode 100644
index 00000000..0148214f
--- /dev/null
+++ b/src/chrome/locale/uk/securityLevel.properties
@@ -0,0 +1 @@
+securityLevel.restoreDefaults = За Замовчуванням
diff --git a/src/chrome/locale/uk/torbutton.dtd b/src/chrome/locale/uk/torbutton.dtd
index 742060f9..1a746b53 100644
--- a/src/chrome/locale/uk/torbutton.dtd
+++ b/src/chrome/locale/uk/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Захист куки">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Клацніть для запуску Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "За Замовчуванням">
<!ENTITY torbutton.cookiedialog.title "Керувати Захистом Куків">
<!ENTITY torbutton.cookiedialog.lockCol "Захищено">
<!ENTITY torbutton.cookiedialog.domainCol "Хост">
diff --git a/src/chrome/locale/ur/torbutton.dtd b/src/chrome/locale/ur/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/ur/torbutton.dtd
+++ b/src/chrome/locale/ur/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/ve/torbutton.dtd b/src/chrome/locale/ve/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/ve/torbutton.dtd
+++ b/src/chrome/locale/ve/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/vi/securityLevel.properties b/src/chrome/locale/vi/securityLevel.properties
new file mode 100644
index 00000000..314ba0bd
--- /dev/null
+++ b/src/chrome/locale/vi/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = Mức độ Bảo mật
+securityLevel.standard.level = Chuẩn
+securityLevel.standard.summary = Tất cả các tính năng của Trình duyệt Tor và trang web đều được bật.
+securityLevel.safer.level = An toàn hơn
+securityLevel.safer.summary = Vô hiệu hóa tính năng website thường gây nguy hiểm, khiến một số trang web mất chức năng.
+securityLevel.safer.description1 = JavaScript bị vô hiệu trên các trang web không có HTTPS.
+securityLevel.safer.description2 = Một số phông chữ và ký hiêu toán học bị vô hiệu.
+securityLevel.safer.description3 = Âm thanh và video (HTML5 media) phải bấm-để-phát.
+securityLevel.safest.level = An toàn nhất
+securityLevel.safest.summary = Chỉ cho phép các tính năng trang web được yêu cầu cho các trang web tĩnh và các dịch vụ cơ bản. Những thay đổi này ảnh hưởng đến hình ảnh, phương tiện và tập lệnh.
+securityLevel.safest.description1 = JavaScript mặc định bị vô hiệu trên tất cả các trang.
+securityLevel.safest.description2 = Một số phông chữ, biểu tượng, và hình ảnh bị vô hiệu.
+securityLevel.safest.description3 = Âm thanh và video (HTML5 media) phải bấm-để-phát.
+securityLevel.custom.summary = Những điều chỉnh trong trình duyệt của bạn vừa tạo ra những lỗi bảo mật bất thường. Vì những lý do bảo mật và riêng tư, chúng tôi khuyến cáo bạn chọn những cấp độ bảo mật mặc định khác.
+securityLevel.learnMore = Biết thêm
+securityLevel.restoreDefaults = Khôi phục trạng thái mặc định
diff --git a/src/chrome/locale/vi/torbutton.dtd b/src/chrome/locale/vi/torbutton.dtd
index 9f1c50e3..695f6bf1 100644
--- a/src/chrome/locale/vi/torbutton.dtd
+++ b/src/chrome/locale/vi/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "Mạch nối Tor mới cho trang này">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "Những cài đặt về an ninh...">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Những cài đặt Mạng Tor...">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Kiểm tra Bản cập nhật của trình duyệt Tor...">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Bấm chuột để khởi chạy Torbutton">
<!ENTITY torbutton.prefs.security_settings "Những cài đặt bảo mật cho trình duyệt Tor">
-<!ENTITY torbutton.prefs.restore_defaults "Khôi phục trạng thái mặc định">
-<!ENTITY torbutton.prefs.custom_warning "Những điều chỉnh trong trình duyệt của bạn vừa tạo ra những lỗi bảo mật bất thường. Vì những lý do bảo mật và riêng tư, chúng tôi khuyến cáo bạn chọn những cấp độ bảo mật mặc định khác.">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/wa/torbutton.dtd b/src/chrome/locale/wa/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/wa/torbutton.dtd
+++ b/src/chrome/locale/wa/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/wo/torbutton.dtd b/src/chrome/locale/wo/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/wo/torbutton.dtd
+++ b/src/chrome/locale/wo/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/zh-CN/securityLevel.properties b/src/chrome/locale/zh-CN/securityLevel.properties
new file mode 100644
index 00000000..93cea12e
--- /dev/null
+++ b/src/chrome/locale/zh-CN/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = 安全等级
+securityLevel.standard.level = 标准安全性
+securityLevel.standard.summary = 将启用所有Tor浏览器与网站功能。
+securityLevel.safer.level = 中等安全性
+securityLevel.safer.summary = 禁用网站功能通常是危险的,这会导致一些站不能正常运作。
+securityLevel.safer.description1 = 在非HTTPS网站,JavaScripts被禁用。
+securityLevel.safer.description2 = 一些字体与数学符号被禁用。
+securityLevel.safer.description3 = 点击播放音频或视频(HTML5 媒体)。
+securityLevel.safest.level = 最高安全性
+securityLevel.safest.summary = 只允许网站请求静态网页与基本服务。这将会影响图片,媒体与脚本。
+securityLevel.safest.description1 = 在所有网站上默认禁用JavaScript。
+securityLevel.safest.description2 = 一些字体,图标,数学符号与图片被禁用。
+securityLevel.safest.description3 = 点击播放音频或视频(HTML5 媒体)。
+securityLevel.custom.summary = 您自定义的浏览器设置导致了不安全的安全设置。出于安全和隐私考虑,我们建议您选择一个默认的安全级别。
+securityLevel.learnMore = 更多详情
+securityLevel.restoreDefaults = 恢复默认设置
diff --git a/src/chrome/locale/zh-CN/torbutton.dtd b/src/chrome/locale/zh-CN/torbutton.dtd
index 5cdea120..483b5c44 100644
--- a/src/chrome/locale/zh-CN/torbutton.dtd
+++ b/src/chrome/locale/zh-CN/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "为此站点使用新 Tor 线路">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "安全设置…">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Tor 网络设置…">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Tor Browser 检查更新…">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "点此初始化 Torbutton">
<!ENTITY torbutton.prefs.security_settings "Tor 浏览器安全设置">
-<!ENTITY torbutton.prefs.restore_defaults "恢复默认设置">
-<!ENTITY torbutton.prefs.custom_warning "您自定义的浏览器设置导致了不安全的安全设置。出于安全和隐私考虑,我们建议您选择一个默认的安全级别。">
<!ENTITY torbutton.cookiedialog.title "管理受保护的 Cookie">
<!ENTITY torbutton.cookiedialog.lockCol "受保护">
<!ENTITY torbutton.cookiedialog.domainCol "主机">
diff --git a/src/chrome/locale/zh-HK/torbutton.dtd b/src/chrome/locale/zh-HK/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/zh-HK/torbutton.dtd
+++ b/src/chrome/locale/zh-HK/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/chrome/locale/zh-TW/securityLevel.properties b/src/chrome/locale/zh-TW/securityLevel.properties
new file mode 100644
index 00000000..0b5f36a0
--- /dev/null
+++ b/src/chrome/locale/zh-TW/securityLevel.properties
@@ -0,0 +1,16 @@
+securityLevel.securityLevel = 安全等級
+securityLevel.standard.level = 標準
+securityLevel.standard.summary = 所有瀏覽器與網站的功能都啟用
+securityLevel.safer.level = 較安全
+securityLevel.safer.summary = 停用某些功能,因為其有危險,會造成部份網站失能
+securityLevel.safer.description1 = 所有非HTTPS網站會預設停用JavaScript
+securityLevel.safer.description2 = 有些字形與數學符號被停用
+securityLevel.safer.description3 = 聲音和影片 (HTML5 媒體) 要點擊播放
+securityLevel.safest.level = 最安全
+securityLevel.safest.summary = 只同意靜態網站和基本服務的網站功能.這些變動會影響圖片,媒體和腳本.
+securityLevel.safest.description1 = 所有網站會預設停用JavaScript
+securityLevel.safest.description2 = 有些字型,圖標,數學符號與圖片被停用
+securityLevel.safest.description3 = 聲音和影片 (HTML5 媒體) 要點擊播放
+securityLevel.custom.summary = 您的瀏覽器個人化設定可能會造成安全性的疑慮。基於個人網路安全與隱私的考量,建議您選用預設的安全性層級選項。
+securityLevel.learnMore = 繼續閱讀
+securityLevel.restoreDefaults = 恢復到預設值
diff --git a/src/chrome/locale/zh-TW/torbutton.dtd b/src/chrome/locale/zh-TW/torbutton.dtd
index e3824e9c..8f3fefcf 100644
--- a/src/chrome/locale/zh-TW/torbutton.dtd
+++ b/src/chrome/locale/zh-TW/torbutton.dtd
@@ -2,8 +2,6 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.new_circuit "建立新的洋蔥路由迴路來連接上此網站">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
-<!ENTITY torbutton.context_menu.preferences "安全設定...">
-<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "洋蔥路由網路設定...">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "檢查洋蔥路由瀏覽器更新…">
@@ -12,8 +10,6 @@
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "按一下以初始化 Torbutton">
<!ENTITY torbutton.prefs.security_settings "洋蔥路由瀏覽器之安全性設定">
-<!ENTITY torbutton.prefs.restore_defaults "恢復到預設值">
-<!ENTITY torbutton.prefs.custom_warning "您的瀏覽器個人化設定可能會造成安全性的疑慮。基於個人網路安全與隱私的考量,建議您選用預設的安全性層級選項。">
<!ENTITY torbutton.cookiedialog.title "管理 Cookie 的保護">
<!ENTITY torbutton.cookiedialog.lockCol "受保護">
<!ENTITY torbutton.cookiedialog.domainCol "主機">
diff --git a/src/chrome/locale/zu/torbutton.dtd b/src/chrome/locale/zu/torbutton.dtd
index baffea1d..fa587065 100644
--- a/src/chrome/locale/zu/torbutton.dtd
+++ b/src/chrome/locale/zu/torbutton.dtd
@@ -6,7 +6,6 @@
<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/src/defaults/preferences/preferences.js b/src/defaults/preferences/preferences.js
index 270131d2..e5d66d55 100644
--- a/src/defaults/preferences/preferences.js
+++ b/src/defaults/preferences/preferences.js
@@ -18,6 +18,7 @@ pref("extensions.torbutton.use_nontor_proxy",false);
// State prefs:
pref("extensions.torbutton.startup",false);
pref("extensions.torbutton.inserted_button",false);
+pref("extensions.torbutton.inserted_security_level",false);
// TODO: This is just part of a stopgap until #14429 gets properly implemented.
// See #7255 for details. We display the warning three times to make sure the
diff --git a/trans_tools/import-translations.sh b/trans_tools/import-translations.sh
index 00de8243..088cdf95 100755
--- a/trans_tools/import-translations.sh
+++ b/trans_tools/import-translations.sh
@@ -24,6 +24,7 @@ FILEMAP=( "aboutDialog.dtd:torbutton-aboutdialogdtd"
"browserOnboarding.properties:torbutton-browseronboardingproperties"
"torbutton.dtd:torbutton-torbuttondtd"
"torbutton.properties:torbutton-torbuttonproperties"
+ "securityLevel.properties:torbutton-securityLevelproperties"
)
# Verify that the FILEMAP contains an entry for each Torbutton file.
1
0

14 Mar '19
commit 7411e180c3eb2e1c37867a67473ba3775d7eee7c
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Mar 14 07:09:12 2019 +0000
Picking up build2 from Mozilla
---
projects/firefox-langpacks/config | 2 +-
projects/firefox/config | 2 +-
rbm.conf | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/projects/firefox-langpacks/config b/projects/firefox-langpacks/config
index 4e42939..04cd7dd 100644
--- a/projects/firefox-langpacks/config
+++ b/projects/firefox-langpacks/config
@@ -4,7 +4,7 @@ filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/buil
var:
ff_version: '[% pc("firefox", "var/firefox_version") %]'
- ff_build: build1
+ ff_build: build2
ff_arch: linux-i686
input_filename: 'dl-langpack-[% c("var/ff_arch") %]-[% c("version") %]'
diff --git a/projects/firefox/config b/projects/firefox/config
index 9476cac..0d7834c 100644
--- a/projects/firefox/config
+++ b/projects/firefox/config
@@ -1,7 +1,7 @@
# vim: filetype=yaml sw=2
version: '[% c("abbrev") %]'
filename: 'firefox-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %]'
-git_hash: 'tor-browser-[% c("var/firefox_version") %]-[% c("var/torbrowser_branch") %]-1-build1'
+git_hash: 'tor-browser-[% c("var/firefox_version") %]-[% c("var/torbrowser_branch") %]-2-build1'
tag_gpg_id: 1
git_url: https://git.torproject.org/tor-browser.git
gpg_keyring: torbutton.gpg
diff --git a/rbm.conf b/rbm.conf
index 3de1879..8d3377b 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -16,7 +16,7 @@ buildconf:
var:
torbrowser_version: '8.0.7'
- torbrowser_build: 'build2'
+ torbrowser_build: 'build3'
torbrowser_incremental_from:
- 8.0.6
project_name: tor-browser
1
0

[tor-browser/tor-browser-60.5.1esr-8.5-1] Revert "Bug 29182: Fix Android build bustage"
by gk@torproject.org 13 Mar '19
by gk@torproject.org 13 Mar '19
13 Mar '19
commit 9b575de574d95df16c34e64e38aa6d0b53b76837
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon Feb 25 07:53:53 2019 +0000
Revert "Bug 29182: Fix Android build bustage"
This reverts commit 5f2ca067b1a8baa523e60fd7d5e6a0202d669c2e.
---
parser/expat/lib/xmlparse.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/parser/expat/lib/xmlparse.c b/parser/expat/lib/xmlparse.c
index 95ff14f8e154..209f20e094dc 100644
--- a/parser/expat/lib/xmlparse.c
+++ b/parser/expat/lib/xmlparse.c
@@ -839,7 +839,7 @@ generate_hash_secret_salt(XML_Parser parser)
{
unsigned long entropy;
(void)parser;
-#if !defined(__ANDROID__) && (defined(HAVE_ARC4RANDOM_BUF) || defined(__CloudABI__))
+#if defined(HAVE_ARC4RANDOM_BUF) || defined(__CloudABI__)
(void)gather_time_entropy;
arc4random_buf(&entropy, sizeof(entropy));
return ENTROPY_DEBUG("arc4random_buf", entropy);
1
0

[tor-browser/tor-browser-60.5.1esr-8.5-1] Bug 1516642 - Add a function declaration for arc4random_buf in expat. r=peterv
by gk@torproject.org 13 Mar '19
by gk@torproject.org 13 Mar '19
13 Mar '19
commit 8de1662514e5191715055479b503dbb016899e84
Author: Mike Hommey <mh+mozilla(a)glandium.org>
Date: Fri Feb 8 13:48:36 2019 +0000
Bug 1516642 - Add a function declaration for arc4random_buf in expat. r=peterv
The function has been in bionic (Android's libc since the first commit
in the upstream repository), but it's not been in stdlib.h until
recently. As it happens, we have a similar declaration in
xpcom/base/nsUUIDGenerator.cpp.
Differential Revision: https://phabricator.services.mozilla.com/D19120
--HG--
extra : moz-landing-system : lando
---
parser/expat/lib/xmlparse.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/parser/expat/lib/xmlparse.c b/parser/expat/lib/xmlparse.c
index 209f20e094dc..12a7fc232e5f 100644
--- a/parser/expat/lib/xmlparse.c
+++ b/parser/expat/lib/xmlparse.c
@@ -818,6 +818,13 @@ gather_time_entropy(void)
# include <bsd/stdlib.h>
#endif
+/* BEGIN MOZILLA CHANGE (not all Android NDK versions have the function
+ * declaration, although the function has been available in bionic forever) */
+#if defined(HAVE_ARC4RANDOM_BUF) && defined(__ANDROID__)
+__attribute__((visibility("default"))) void arc4random_buf(void*, size_t);
+#endif
+/* END MOZILLA CHANGE */
+
static unsigned long
ENTROPY_DEBUG(const char * label, unsigned long entropy) {
/* BEGIN MOZILLA CHANGE (don't getenv every time we set up a hash) */
1
0

[torbutton/master] Revert "Bug 26962: Circuit display onboarding (part 2)."
by gk@torproject.org 13 Mar '19
by gk@torproject.org 13 Mar '19
13 Mar '19
commit d45e7f502c05101660e77d430d939582728952f2
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Wed Mar 13 10:42:45 2019 -0400
Revert "Bug 26962: Circuit display onboarding (part 2)."
Remove strings that were used for the "New Circuit Display" promotional
banner which previously was shown on the about:tbupdate page.
This reverts commit c93f06417e0bdbd6d709ec5109938347d1d38123.
---
src/chrome/locale/en-US/aboutTBUpdate.dtd | 4 ----
1 file changed, 4 deletions(-)
diff --git a/src/chrome/locale/en-US/aboutTBUpdate.dtd b/src/chrome/locale/en-US/aboutTBUpdate.dtd
index f7b3f2ed..37567bd7 100644
--- a/src/chrome/locale/en-US/aboutTBUpdate.dtd
+++ b/src/chrome/locale/en-US/aboutTBUpdate.dtd
@@ -4,7 +4,3 @@
<!ENTITY aboutTBUpdate.linkLabel "visit our website">
<!ENTITY aboutTBUpdate.linkSuffix ".">
<!ENTITY aboutTBUpdate.changeLogHeading "Changelog:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "New, Redesigned Circuit Display">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "The Tor circuit display has been relocated and improved! Click the Site Identity button (located on the left side of the URL bar) to see the new circuit display.">
-<!ENTITY aboutTBUpdate.learnMore "Learn More">
1
0

[torbutton/master] Bug 29440: Update about:tor when Tor Browser is updated
by gk@torproject.org 13 Mar '19
by gk@torproject.org 13 Mar '19
13 Mar '19
commit 82a5f8665a6b5a7f5d4c78f0a526dfa16834ec7f
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Mon Mar 11 11:28:20 2019 -0400
Bug 29440: Update about:tor when Tor Browser is updated
After the browser has been updated, notify the user by displaying
a message on the about:tor page. Also, in release and alpha builds,
include on the about:tor page below the Tor Browser version a link
to a simplified changelog page (which continues to be located at
about:tbupdate).
---
src/chrome/content/aboutTor/aboutTor-content.js | 15 +++++++++--
src/chrome/content/aboutTor/aboutTor.xhtml | 16 +++++++++---
src/chrome/content/torbutton.js | 30 +++++++++++++++++++---
src/chrome/locale/en-US/aboutTBUpdate.dtd | 6 +++--
src/chrome/locale/en-US/aboutTor.dtd | 2 ++
src/chrome/skin/aboutTor.css | 33 ++++++++++++++++---------
6 files changed, 79 insertions(+), 23 deletions(-)
diff --git a/src/chrome/content/aboutTor/aboutTor-content.js b/src/chrome/content/aboutTor/aboutTor-content.js
index b91fd17d..2b65dbcf 100644
--- a/src/chrome/content/aboutTor/aboutTor-content.js
+++ b/src/chrome/content/aboutTor/aboutTor-content.js
@@ -94,6 +94,17 @@ var AboutTorListener = {
else
body.removeAttribute("showmanual");
+ if (aData.updateChannel)
+ body.setAttribute("updatechannel", aData.updateChannel);
+ else
+ body.removeAttribute("updatechannel");
+
+ if (aData.hasBeenUpdated) {
+ body.setAttribute("hasbeenupdated", "yes");
+ content.document.getElementById("update-infolink").setAttribute("href",
+ aData.updateMoreInfoURL);
+ }
+
if (aData.mobile)
body.setAttribute("mobile", "yes");
@@ -114,11 +125,11 @@ var AboutTorListener = {
.createBundle(kBrandBundle);
let productName = brandBundle.GetStringFromName("brandFullName");
let tbbVersion = Services.prefs.getCharPref("torbrowser.version");
- elem = content.document.getElementById("torstatus-version");
+ let elem = content.document.getElementById("torbrowser-version");
while (elem.firstChild)
elem.removeChild(elem.firstChild);
- elem.appendChild(content.document.createTextNode(productName + '\n'
+ elem.appendChild(content.document.createTextNode(productName + ' '
+ tbbVersion));
} catch (e) {}
}
diff --git a/src/chrome/content/aboutTor/aboutTor.xhtml b/src/chrome/content/aboutTor/aboutTor.xhtml
index 639c2fca..0789f851 100644
--- a/src/chrome/content/aboutTor/aboutTor.xhtml
+++ b/src/chrome/content/aboutTor/aboutTor.xhtml
@@ -14,6 +14,8 @@
%globalDTD;
<!ENTITY % aboutTorDTD SYSTEM "chrome://torbutton/locale/aboutTor.dtd">
%aboutTorDTD;
+ <!ENTITY % tbUpdateDTD SYSTEM "chrome://browser/locale/aboutTBUpdate.dtd">
+ %tbUpdateDTD;
]>
<html xmlns="http://www.w3.org/1999/xhtml">
@@ -33,15 +35,23 @@ window.addEventListener("pageshow", function() {
</head>
<body dir="&locale.dir;">
<div class="torcontent-container">
- <div id="torstatus-version"/>
+ <div id="torbrowser-info">
+ <div id="torbrowser-version"/>
+ <div id="torbrowser-changelog-link"><a href="about:tbupdate">&aboutTor.viewChangelog.label;</a></div>
+ </div>
<img class="torcontent-logo" src="resource://torbutton-assets/torbrowser_mobile_logo.png"/>
<div id="torstatus" class="top">
- <div id="torstatus-on-container" class="hideIfTorOff torstatus-container">
+ <div class="hideIfTorOff hideIfHasBeenUpdated torstatus-container">
<div class="heading1">&aboutTor.ready.label;</div>
<br/>
<div class="heading2">&aboutTor.ready2.label;</div>
</div>
- <div id="torstatus-off-container" class="hideIfTorOn torstatus-container">
+ <div class="showIfHasBeenUpdated torstatus-container">
+ <div class="heading1">&aboutTBUpdate.updated;</div>
+ <br/>
+ <div class="heading2">&aboutTBUpdate.linkPrefix;<a id="update-infolink">&aboutTBUpdate.linkLabel;</a>&aboutTBUpdate.linkSuffix;</div>
+ </div>
+ <div class="hideIfTorOn torstatus-container">
<div class="heading1">&aboutTor.failure.label;</div>
<br/>
<div class="heading2">&aboutTor.failure2.label;</div>
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index f99be5b0..b425a276 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -8,6 +8,7 @@
// http://kb.mozillazine.org/Links_to_local_pages_don%27t_work
let { Services } = Cu.import("resource://gre/modules/Services.jsm", {});
+const {AppConstants} = ChromeUtils.import("resource://gre/modules/AppConstants.jsm");
let { showDialog, show_torbrowser_manual } = Cu.import("resource://torbutton/modules/utils.js", {});
let { unescapeTorString } = Cu.import("resource://torbutton/modules/utils.js", {});
let SecurityPrefs = Cu.import("resource://torbutton/modules/security-prefs.js", {});
@@ -418,7 +419,7 @@ var torbutton_abouttor_message_handler = {
switch(aMessage.name) {
case "AboutTor:Loaded":
aMessage.target.messageManager.sendAsyncMessage("AboutTor:ChromeData",
- this.chromeData);
+ this.getChromeData(true));
break;
}
},
@@ -426,7 +427,7 @@ var torbutton_abouttor_message_handler = {
// Send privileged data to all of the about:tor content scripts.
updateAllOpenPages: function() {
window.messageManager.broadcastAsyncMessage("AboutTor:ChromeData",
- this.chromeData);
+ this.getChromeData(false));
},
// The chrome data contains all of the data needed by the about:tor
@@ -434,11 +435,32 @@ var torbutton_abouttor_message_handler = {
// It is sent to the content process when an about:tor window is opened
// and in response to events such as the browser noticing that Tor is
// not working.
- get chromeData() {
- return {
+ getChromeData: function(aIsRespondingToPageLoad) {
+ let dataObj = {
mobile: torbutton_is_mobile(),
+ updateChannel: AppConstants.MOZ_UPDATE_CHANNEL,
torOn: torbutton_tor_check_ok()
};
+
+ if (aIsRespondingToPageLoad) {
+ const kShouldNotifyPref = "torbrowser.post_update.shouldNotify";
+ if (m_tb_prefs.getBoolPref(kShouldNotifyPref, false)) {
+ m_tb_prefs.clearUserPref(kShouldNotifyPref);
+ dataObj.hasBeenUpdated = true;
+ dataObj.updateMoreInfoURL = this.getUpdateMoreInfoURL();
+ }
+ }
+
+ return dataObj;
+ },
+
+ getUpdateMoreInfoURL: function() {
+ try {
+ return Services.prefs.getCharPref("torbrowser.post_update.url");
+ } catch (e) {}
+
+ // Use the default URL as a fallback.
+ return Services.urlFormatter.formatURLPref("startup.homepage_override_url");
}
};
diff --git a/src/chrome/locale/en-US/aboutTBUpdate.dtd b/src/chrome/locale/en-US/aboutTBUpdate.dtd
index 37567bd7..2d1e59b4 100644
--- a/src/chrome/locale/en-US/aboutTBUpdate.dtd
+++ b/src/chrome/locale/en-US/aboutTBUpdate.dtd
@@ -1,6 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Tor Browser Update">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "Tor Browser has been updated.">
<!ENTITY aboutTBUpdate.linkPrefix "For the most up-to-date information about this release, ">
<!ENTITY aboutTBUpdate.linkLabel "visit our website">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "Changelog:">
+<!ENTITY aboutTBUpdate.version "Version">
+<!ENTITY aboutTBUpdate.releaseDate "Release Date">
+<!ENTITY aboutTBUpdate.releaseNotes "Release Notes">
diff --git a/src/chrome/locale/en-US/aboutTor.dtd b/src/chrome/locale/en-US/aboutTor.dtd
index 1400d7b5..4f360a91 100644
--- a/src/chrome/locale/en-US/aboutTor.dtd
+++ b/src/chrome/locale/en-US/aboutTor.dtd
@@ -6,6 +6,8 @@
<!ENTITY aboutTor.title "About Tor">
+<!ENTITY aboutTor.viewChangelog.label "View Changelog">
+
<!ENTITY aboutTor.ready.label "Explore. Privately.">
<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
<!ENTITY aboutTor.failure.label "Something Went Wrong!">
diff --git a/src/chrome/skin/aboutTor.css b/src/chrome/skin/aboutTor.css
index 1bdf301d..baa92b42 100644
--- a/src/chrome/skin/aboutTor.css
+++ b/src/chrome/skin/aboutTor.css
@@ -60,16 +60,25 @@ body:not([initialized]) {
}
}
-#torstatus-version {
+#torbrowser-info {
position: absolute;
- top: 6px;
- offset-inline-end: 6px;
- inset-inline-end: 6px;
- height: 30px;
+ top: 16px;
+ offset-inline-end: 16px;
+ inset-inline-end: 16px;
+ height: 36px;
width: 200px;
- font-size: 15px;
+}
+
+#torbrowser-info div {
+ font-size: 14px;
white-space: pre-wrap;
text-align: end;
+ margin-bottom: 6px;
+}
+
+/* Hide "View Changelog" link if update channel is not release or alpha. */
+body:not([updatechannel="release"]):not([updatechannel="alpha"]) #torbrowser-changelog-link {
+ display: none;
}
a {
@@ -79,15 +88,13 @@ a {
#torstatus {
margin-top: 135px;
display: flex;
- justify-content: center;
+ flex-direction: column;
+ align-content: center;
+ justify-content: flex-end;
vertical-align: bottom;
min-height: 92px;
}
-#torstatus > div {
- align-self: flex-end; /* align text to bottom of container */
-}
-
.top {
white-space: nowrap;
}
@@ -96,11 +103,13 @@ a {
text-align: center;
}
+body[hasbeenupdated] .hideIfHasBeenUpdated,
body[toron] .hideIfTorOn,
body:not([toron]) .hideIfTorOff {
display: none;
}
+body:not([hasbeenupdated]) .showIfHasBeenUpdated,
body:not([showmanual]) .showForManual {
display: none;
}
@@ -303,7 +312,7 @@ body:not([showmanual]) .showForManual {
display: none;
}
-body[mobile] #torstatus-version,
+body[mobile] #torbrowser-info,
body[mobile] .searchbox,
body[mobile] .top .heading2,
body[mobile] #manual,
1
0

[tor-browser/tor-browser-60.5.1esr-8.5-1] Revert "Bug 26962 - implement new features onboarding (part 2)."
by gk@torproject.org 13 Mar '19
by gk@torproject.org 13 Mar '19
13 Mar '19
commit 681eefdd4234007f4984dd88abc2dfe10cbc2740
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Wed Mar 6 16:04:42 2019 -0500
Revert "Bug 26962 - implement new features onboarding (part 2)."
This reverts commit 73018a0de3eab8cf12f0b9554a7595b35ceaeb53.
---
.../base/content/abouttbupdate/aboutTBUpdate.css | 25 ----------------------
.../base/content/abouttbupdate/aboutTBUpdate.js | 9 +-------
.../base/content/abouttbupdate/aboutTBUpdate.xhtml | 5 -----
browser/base/content/tab-content.js | 10 ---------
.../locales/en-US/chrome/browser/aboutTBUpdate.dtd | 4 ----
5 files changed, 1 insertion(+), 52 deletions(-)
diff --git a/browser/base/content/abouttbupdate/aboutTBUpdate.css b/browser/base/content/abouttbupdate/aboutTBUpdate.css
index dc42f8ff5f9e..90252d77a739 100644
--- a/browser/base/content/abouttbupdate/aboutTBUpdate.css
+++ b/browser/base/content/abouttbupdate/aboutTBUpdate.css
@@ -53,31 +53,6 @@ a {
margin-bottom: 20px;
}
-#new-features {
- margin-bottom: 15px;
- padding: 10px;
- text-align: center;
- /* swap text and background colors in this section */
- color: var(--abouttor-bg-toron-color);
- background-color: var(--abouttor-text-color);
-}
-
-#new-features-description {
- margin: 15px auto;
- max-width: 500px;
- font-size: 85%;
-}
-
-#new-features button {
- padding: 8px 20px;
- border: none;
- border-radius: 3px;
- font-size: 90%;
- color: var(--abouttor-text-color);
- background-color: var(--abouttor-bg-toron-color);
- cursor: pointer;
-}
-
#changelog-container {
margin: 0px 20px 20px 20px;
}
diff --git a/browser/base/content/abouttbupdate/aboutTBUpdate.js b/browser/base/content/abouttbupdate/aboutTBUpdate.js
index fa8bd3241a28..8243647c5708 100644
--- a/browser/base/content/abouttbupdate/aboutTBUpdate.js
+++ b/browser/base/content/abouttbupdate/aboutTBUpdate.js
@@ -1,4 +1,4 @@
-// Copyright (c) 2018, The Tor Project, Inc.
+// Copyright (c) 2015, The Tor Project, Inc.
// See LICENSE for licensing information.
//
// vim: set sw=2 sts=2 ts=8 et syntax=javascript:
@@ -8,10 +8,3 @@ function init()
let event = new CustomEvent("AboutTBUpdateLoad", { bubbles: true });
document.dispatchEvent(event);
}
-
-function showNewFeaturesOnboarding()
-{
- let event = new CustomEvent("AboutTBUpdateNewFeaturesOnboarding",
- { bubbles: true });
- document.dispatchEvent(event);
-}
diff --git a/browser/base/content/abouttbupdate/aboutTBUpdate.xhtml b/browser/base/content/abouttbupdate/aboutTBUpdate.xhtml
index a046f2658a5a..fe8ed69b537f 100644
--- a/browser/base/content/abouttbupdate/aboutTBUpdate.xhtml
+++ b/browser/base/content/abouttbupdate/aboutTBUpdate.xhtml
@@ -28,11 +28,6 @@
</div>
</div>
<br clear="all"/>
-<div id="new-features">
- <div>&aboutTBUpdate.circuitDisplayHeading;</div>
- <div id="new-features-description">&aboutTBUpdate.circuitDisplayDescription;</div>
- <button onclick="showNewFeaturesOnboarding()">&aboutTBUpdate.learnMore;</button>
-</div>
<div id="changelog-container">
<div id="changelog-heading">&aboutTBUpdate.changeLogHeading;</div>
<div id="changelog"></div>
diff --git a/browser/base/content/tab-content.js b/browser/base/content/tab-content.js
index c0987dbc05c7..e0cf6747aaa4 100644
--- a/browser/base/content/tab-content.js
+++ b/browser/base/content/tab-content.js
@@ -359,8 +359,6 @@ AboutReaderListener.init();
let AboutTBUpdateListener = {
init: function(chromeGlobal) {
chromeGlobal.addEventListener('AboutTBUpdateLoad', this, false, true);
- chromeGlobal.addEventListener("AboutTBUpdateNewFeaturesOnboarding",
- this, false, true);
},
get isAboutTBUpdate() {
@@ -375,9 +373,6 @@ let AboutTBUpdateListener = {
case "AboutTBUpdateLoad":
this.onPageLoad();
break;
- case "AboutTBUpdateNewFeaturesOnboarding":
- this.onNewFeaturesOnboarding();
- break;
case "pagehide":
this.onPageHide(aEvent);
break;
@@ -411,11 +406,6 @@ let AboutTBUpdateListener = {
removeEventListener("pagehide", this, true);
},
- onNewFeaturesOnboarding: function() {
- // Tell the onboarding extension to open the circuit display onboarding.
- sendAsyncMessage("Onboarding:OnContentMessage",
- {action: "tor-open-circuit-display-page"});
- },
};
AboutTBUpdateListener.init(this);
#endif
diff --git a/browser/locales/en-US/chrome/browser/aboutTBUpdate.dtd b/browser/locales/en-US/chrome/browser/aboutTBUpdate.dtd
index f7b3f2ed8fcd..37567bd7e38c 100644
--- a/browser/locales/en-US/chrome/browser/aboutTBUpdate.dtd
+++ b/browser/locales/en-US/chrome/browser/aboutTBUpdate.dtd
@@ -4,7 +4,3 @@
<!ENTITY aboutTBUpdate.linkLabel "visit our website">
<!ENTITY aboutTBUpdate.linkSuffix ".">
<!ENTITY aboutTBUpdate.changeLogHeading "Changelog:">
-
-<!ENTITY aboutTBUpdate.circuitDisplayHeading "New, Redesigned Circuit Display">
-<!ENTITY aboutTBUpdate.circuitDisplayDescription "The Tor circuit display has been relocated and improved! Click the Site Identity button (located on the left side of the URL bar) to see the new circuit display.">
-<!ENTITY aboutTBUpdate.learnMore "Learn More">
1
0

[tor-browser/tor-browser-60.5.1esr-8.5-1] squash! Bug 16940: After update, load local change notes.
by gk@torproject.org 13 Mar '19
by gk@torproject.org 13 Mar '19
13 Mar '19
commit 0c7bd3b2fa73e8be38f5aac46cbc68d025071f05
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Thu Mar 7 15:48:00 2019 -0500
squash! Bug 16940: After update, load local change notes.
Also fix bug 29440. Now about:tbupdate is styled as a fairly simple
changelog page that is designed to be displayed via a link that is on
about:tor.
---
.../base/content/abouttbupdate/aboutTBUpdate.css | 71 ++++++++++++----------
.../base/content/abouttbupdate/aboutTBUpdate.xhtml | 26 ++++----
browser/base/content/tab-content.js | 13 +++-
browser/components/nsBrowserContentHandler.js | 49 +++++++++------
.../locales/en-US/chrome/browser/aboutTBUpdate.dtd | 6 +-
browser/modules/AboutTBUpdate.jsm | 67 ++++++++++++++------
6 files changed, 147 insertions(+), 85 deletions(-)
diff --git a/browser/base/content/abouttbupdate/aboutTBUpdate.css b/browser/base/content/abouttbupdate/aboutTBUpdate.css
index 90252d77a739..7c1a34b77f17 100644
--- a/browser/base/content/abouttbupdate/aboutTBUpdate.css
+++ b/browser/base/content/abouttbupdate/aboutTBUpdate.css
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018, The Tor Project, Inc.
+ * Copyright (c) 2019, The Tor Project, Inc.
* See LICENSE for licensing information.
*
* vim: set sw=2 sts=2 ts=8 et syntax=css:
@@ -12,56 +12,63 @@
body {
font-family: Helvetica, Arial, sans-serif;
- font-size: 110%;
color: var(--abouttor-text-color);
background-color: var(--abouttor-bg-toron-color);
background-attachment: fixed;
background-size: 100% 100%;
}
-#torbrowser-version {
- /* These CSS rules match the about:tor page */
- position: fixed;
- top: 6px;
- right: 6px;
- height: 30px;
- width: 200px;
- font-size: 15px;
- white-space: pre-wrap;
- text-align: right;
-}
-
a {
color: var(--abouttor-text-color);
}
-#logo {
- background-image: url("chrome://branding/content/icon128.png");
- height: 128px;
- width: 128px;
- margin: 20px;
- float: left;
+.two-column-grid {
+ display: inline-grid;
+ grid-template-columns: auto auto;
+ grid-column-gap: 50px;
+ margin: 10px 0px 0px 50px;
+}
+
+.two-column-grid div {
+ margin-top: 40px;
+ align-self: baseline; /* Align baseline of text across the row. */
+}
+
+.label-column {
+ font-size: 14px;
+ font-weight: 400;
+}
+
+/*
+ * Use a reduced top margin to bring the row that contains the
+ * "visit our website" link closer to the row that precedes it. This
+ * looks better because the "visit our website" row does not have a
+ * label in the left column.
+ */
+div.more-info-row {
+ margin-top: 5px;
+ font-size: 14px;
}
-#msg {
- margin-top: 50px;
- float: left;
+#version-content {
+ font-size: 50px;
+ font-weight: 300;
}
-#msg-updated {
- font-size: 120%;
- margin-bottom: 20px;
+body:not([havereleasedate]) .release-date-cell {
+ display: none;
}
-#changelog-container {
- margin: 0px 20px 20px 20px;
+#releasedate-content {
+ font-size: 17px;
}
-#changelog-heading {
- margin-bottom: 4px;
+#releasenotes-label {
+ align-self: start; /* Anchor "Release Notes" label at the top. */
}
-#changelog {
- margin-left: 20px;
+#releasenotes-content {
+ font-family: monospace;
+ font-size: 15px;
white-space: pre;
}
diff --git a/browser/base/content/abouttbupdate/aboutTBUpdate.xhtml b/browser/base/content/abouttbupdate/aboutTBUpdate.xhtml
index fe8ed69b537f..f703fe1e13a1 100644
--- a/browser/base/content/abouttbupdate/aboutTBUpdate.xhtml
+++ b/browser/base/content/abouttbupdate/aboutTBUpdate.xhtml
@@ -13,24 +13,26 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <title>&aboutTBUpdate.title;</title>
+ <title>&aboutTBUpdate.changelogTitle;</title>
<link rel="stylesheet" type="text/css"
href="chrome://browser/content/abouttbupdate/aboutTBUpdate.css"/>
<script src="chrome://browser/content/abouttbupdate/aboutTBUpdate.js"
type="text/javascript"/>
</head>
<body dir="&locale.dir;" onload="init()">
-<div id="torbrowser-version"/>
-<div id="logo"/>
-<div id="msg">
-<div id="msg-updated">&aboutTBUpdate.updated;</div>
-<div>&aboutTBUpdate.linkPrefix;<a id="infolink">&aboutTBUpdate.linkLabel;</a>&aboutTBUpdate.linkSuffix;
-</div>
-</div>
-<br clear="all"/>
-<div id="changelog-container">
-<div id="changelog-heading">&aboutTBUpdate.changeLogHeading;</div>
-<div id="changelog"></div>
+<div class="two-column-grid">
+ <div class="label-column">&aboutTBUpdate.version;</div>
+ <div id="version-content"/>
+
+ <div class="label-column release-date-cell">&aboutTBUpdate.releaseDate;</div>
+ <div id="releasedate-content" class="release-date-cell"/>
+
+ <div class="more-info-row"/>
+ <div class="more-info-row">&aboutTBUpdate.linkPrefix;<a id="infolink">&aboutTBUpdate.linkLabel;</a>&aboutTBUpdate.linkSuffix;</div>
+
+ <div id="releasenotes-label"
+ class="label-column">&aboutTBUpdate.releaseNotes;</div>
+ <div id="releasenotes-content"></div>
</div>
</body>
</html>
diff --git a/browser/base/content/tab-content.js b/browser/base/content/tab-content.js
index e0cf6747aaa4..6450baa6d060 100644
--- a/browser/base/content/tab-content.js
+++ b/browser/base/content/tab-content.js
@@ -384,12 +384,21 @@ let AboutTBUpdateListener = {
this.onUpdate(aMessage.data);
},
+ // aData may contain the following string properties:
+ // version
+ // releaseDate
+ // moreInfoURL
+ // releaseNotes
onUpdate: function(aData) {
let doc = content.document;
- doc.getElementById("torbrowser-version").textContent = aData.productInfo;
+ doc.getElementById("version-content").textContent = aData.version;
+ if (aData.releaseDate) {
+ doc.body.setAttribute("havereleasedate", "true");
+ doc.getElementById("releasedate-content").textContent = aData.releaseDate;
+ }
if (aData.moreInfoURL)
doc.getElementById("infolink").setAttribute("href", aData.moreInfoURL);
- doc.getElementById("changelog").textContent = aData.changeLog;
+ doc.getElementById("releasenotes-content").textContent = aData.releaseNotes;
},
onPageLoad: function() {
diff --git a/browser/components/nsBrowserContentHandler.js b/browser/components/nsBrowserContentHandler.js
index a640bfc57663..4c698a9ebd90 100644
--- a/browser/components/nsBrowserContentHandler.js
+++ b/browser/components/nsBrowserContentHandler.js
@@ -541,6 +541,21 @@ nsBrowserContentHandler.prototype = {
}
}
+ // Retrieve the home page early so we can compare it against about:tor
+ // to decide whether or not we need an override page (second tab) after
+ // an update was applied.
+ var startPage = "";
+ try {
+ var choice = prefb.getIntPref("browser.startup.page");
+ if (choice == 1 || choice == 3)
+ startPage = this.startPage;
+ } catch (e) {
+ Cu.reportError(e);
+ }
+
+ if (startPage == "about:blank")
+ startPage = "";
+
var override;
var overridePage = "";
var additionalPage = "";
@@ -580,11 +595,14 @@ nsBrowserContentHandler.prototype = {
// we may open the startPage in addition to restoring the session.
//
// Tor Browser: Instead of opening the post-update "override page"
- // directly, an about:tbupdate page is opened that includes a link
- // to the override page as well as text from the first part of the
- // local ChangeLog.txt file. The override page URL comes from the
- // openURL attribute within the updates.xml file or, if no showURL
- // action is present, from the startup.homepage_override_url pref.
+ // directly, we ensure that about:tor will be opened in a special
+ // mode that notifies the user that their browser was updated.
+ // The about:tor page will provide a link to the override page
+ // where the user can learn more about the update, as well as a
+ // link to the Tor Browser changelog page (about:tbupdate). The
+ // override page URL comes from the openURL attribute within the
+ // updates.xml file or, if no showURL action is present, from the
+ // startup.homepage_override_url pref.
var ss = Cc["@mozilla.org/browser/sessionstartup;1"]
.getService(Ci.nsISessionStartup);
willRestoreSession = ss.isAutomaticRestoreEnabled();
@@ -606,7 +624,14 @@ nsBrowserContentHandler.prototype = {
if (overridePage)
{
prefb.setCharPref("torbrowser.post_update.url", overridePage);
- overridePage = "about:tbupdate"
+ prefb.setBoolPref("torbrowser.post_update.shouldNotify", true);
+ // If the user's homepage is about:tor, we will inform them
+ // about the update on that page; otherwise, we arrange to
+ // open about:tor in a secondary tab.
+ if (startPage === "about:tor")
+ overridePage = "";
+ else
+ overridePage = "about:tor";
}
#endif
break;
@@ -636,18 +661,6 @@ nsBrowserContentHandler.prototype = {
}
}
- var startPage = "";
- try {
- var choice = prefb.getIntPref("browser.startup.page");
- if (choice == 1 || choice == 3)
- startPage = this.startPage;
- } catch (e) {
- Cu.reportError(e);
- }
-
- if (startPage == "about:blank")
- startPage = "";
-
let skipStartPage = override == OVERRIDE_NEW_PROFILE &&
prefb.getBoolPref("browser.startup.firstrunSkipsHomepage");
// Only show the startPage if we're not restoring an update session and are
diff --git a/browser/locales/en-US/chrome/browser/aboutTBUpdate.dtd b/browser/locales/en-US/chrome/browser/aboutTBUpdate.dtd
index 37567bd7e38c..2d1e59b40eaf 100644
--- a/browser/locales/en-US/chrome/browser/aboutTBUpdate.dtd
+++ b/browser/locales/en-US/chrome/browser/aboutTBUpdate.dtd
@@ -1,6 +1,8 @@
-<!ENTITY aboutTBUpdate.title "Tor Browser Update">
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "Tor Browser has been updated.">
<!ENTITY aboutTBUpdate.linkPrefix "For the most up-to-date information about this release, ">
<!ENTITY aboutTBUpdate.linkLabel "visit our website">
<!ENTITY aboutTBUpdate.linkSuffix ".">
-<!ENTITY aboutTBUpdate.changeLogHeading "Changelog:">
+<!ENTITY aboutTBUpdate.version "Version">
+<!ENTITY aboutTBUpdate.releaseDate "Release Date">
+<!ENTITY aboutTBUpdate.releaseNotes "Release Notes">
diff --git a/browser/modules/AboutTBUpdate.jsm b/browser/modules/AboutTBUpdate.jsm
index 49d9d9b0e18d..4d18d2980a6c 100644
--- a/browser/modules/AboutTBUpdate.jsm
+++ b/browser/modules/AboutTBUpdate.jsm
@@ -40,10 +40,8 @@ var AboutTBUpdate = {
},
sendAboutTBUpdateData: function(aTarget) {
- let data = { productInfo: this.productInfo,
- moreInfoURL: this.moreInfoURL,
- changeLog: this.changeLog };
-
+ let data = this.releaseNoteInfo;
+ data.moreInfoURL = this.moreInfoURL;
if (aTarget && aTarget.messageManager) {
aTarget.messageManager.sendAsyncMessage(kSendUpdateMessageName, data);
} else {
@@ -53,15 +51,6 @@ var AboutTBUpdate = {
}
},
- get productInfo() {
- const kBrandBundle = "chrome://branding/locale/brand.properties";
- let brandBundle = Cc["@mozilla.org/intl/stringbundle;1"]
- .getService(Ci.nsIStringBundleService)
- .createBundle(kBrandBundle);
- return brandBundle.GetStringFromName("brandFullName")
- + "\n" + TOR_BROWSER_VERSION;
- },
-
get moreInfoURL() {
try {
return Services.prefs.getCharPref("torbrowser.post_update.url");
@@ -71,12 +60,22 @@ var AboutTBUpdate = {
return Services.urlFormatter.formatURLPref("startup.homepage_override_url");
},
- // Read and return the text from the beginning of the changelog file that is
- // located at TorBrowser/Docs/ChangeLog.txt.
+ // Read the text from the beginning of the changelog file that is located
+ // at TorBrowser/Docs/ChangeLog.txt and return an object that contains
+ // the following properties:
+ // version e.g., Tor Browser 8.5
+ // releaseDate e.g., March 31 2019
+ // releaseNotes details of changes (lines 2 - end of ChangeLog.txt)
+ // We attempt to parse the first line of ChangeLog.txt to extract the
+ // version and releaseDate. If parsing fails, we return the entire first
+ // line in version and omit releaseDate.
+ //
// On Mac OS, when building with --enable-tor-browser-data-outside-app-dir
- // to support Gatekeeper signing, the file is located in
+ // to support Gatekeeper signing, the ChangeLog.txt file is located in
// TorBrowser.app/Contents/Resources/TorBrowser/Docs/.
- get changeLog() {
+ get releaseNoteInfo() {
+ let info = {};
+
try {
#ifdef TOR_BROWSER_DATA_OUTSIDE_APP_DIR
// "XREExeF".parent is the directory that contains firefox, i.e.,
@@ -103,9 +102,39 @@ var AboutTBUpdate = {
fs.close();
// Truncate at the first empty line.
- return s.replace(/[\r\n][\r\n][\s\S]*$/m, "");
+ s = s.replace(/[\r\n][\r\n][\s\S]*$/m, "");
+
+ // Split into first line (version plus releaseDate) and
+ // remainder (releaseNotes).
+ // This first match() uses multiline mode with two capture groups:
+ // first line: (.*$)
+ // remaining lines: ([\s\S]+)
+ // [\s\S] matches all characters including end of line. This trick
+ // is needed because when using JavaScript regex in multiline mode,
+ // . does not match an end of line character.
+ let matchArray = s.match(/(.*$)\s*([\s\S]+)/m);
+ if (matchArray && (matchArray.length == 3)) {
+ info.releaseNotes = matchArray[2];
+ let line1 = matchArray[1];
+ // Extract the version and releaseDate. The first line looks like:
+ // Tor Browser 8.5 -- May 1 2019
+ // The regex uses two capture groups:
+ // text that does not include a hyphen: (^[^-]*)
+ // remaining text: (.*$)
+ // In between we match optional whitespace, one or more hyphens, and
+ // optional whitespace by using: \s*-+\s*
+ matchArray = line1.match(/(^[^-]*)\s*-+\s*(.*$)/);
+ if (matchArray && (matchArray.length == 3)) {
+ info.version = matchArray[1];
+ info.releaseDate = matchArray[2];
+ } else {
+ info.version = line1; // Match failed: return entire line in version.
+ }
+ } else {
+ info.releaseNotes = s; // Only one line: use as releaseNotes.
+ }
} catch (e) {}
- return "";
+ return info;
},
};
1
0