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

[tor-browser/tor-browser-60.3.0esr-8.5-1] Bug 28051 - Use Orbot's notification-builder wrapper class
by gk@torproject.org 29 Nov '18
by gk@torproject.org 29 Nov '18
29 Nov '18
commit e6c7c8b6022a3d9e5c1dab2966ab45b467d84630
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Fri Nov 23 20:39:24 2018 +0000
Bug 28051 - Use Orbot's notification-builder wrapper class
This allows for notifications on all supported versions of Android.
---
.../gecko/notifications/NotificationClient.java | 39 ++++++++++++++++++++--
.../gecko/notifications/NotificationHelper.java | 5 +--
2 files changed, 40 insertions(+), 4 deletions(-)
diff --git a/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationClient.java b/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationClient.java
index d8392a801e13..b2312b8780d2 100644
--- a/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationClient.java
+++ b/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationClient.java
@@ -7,12 +7,15 @@ package org.mozilla.gecko.notifications;
import android.app.Activity;
import android.app.Notification;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
+import android.os.Build;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.NotificationManagerCompat;
import android.util.Log;
@@ -28,6 +31,8 @@ import org.mozilla.gecko.NotificationListener;
import org.mozilla.gecko.R;
import org.mozilla.gecko.util.BitmapUtils;
+import org.torproject.android.service.util.NotificationBuilderCompat;
+
/**
* Client for posting notifications.
*/
@@ -37,8 +42,11 @@ public final class NotificationClient implements NotificationListener {
/* package */ static final String CLOSE_ACTION = AppConstants.ANDROID_PACKAGE_NAME + ".NOTIFICATION_CLOSE";
/* package */ static final String PERSISTENT_INTENT_EXTRA = "persistentIntent";
+ private static final String NOTIFICATION_CHANNEL_ID = NotificationBuilderCompat.DEFAULT_CHANNEL_ID;
+
private final Context mContext;
private final NotificationManagerCompat mNotificationManager;
+ private NotificationManager mNativeNotificationManager;
private final HashMap<String, Notification> mNotifications = new HashMap<>();
@@ -57,6 +65,8 @@ public final class NotificationClient implements NotificationListener {
public NotificationClient(Context context) {
mContext = context.getApplicationContext();
mNotificationManager = NotificationManagerCompat.from(mContext);
+
+ createNotificationChannel();
}
@Override // NotificationListener
@@ -72,6 +82,31 @@ public final class NotificationClient implements NotificationListener {
showNotification(name, cookie, title, text, host, imageUrl, data != null ? data : "");
}
+ /* Only create the notification channel if we're running on Android O or later.
+ * The notification channel is required for notifications on new Android versions.
+ */
+ private void createNotificationChannel() {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
+ return;
+ }
+
+ NotificationManager mNativeNotificationManager =
+ (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
+
+ CharSequence name = mContext.getString(R.string.app_name);
+ String description = mContext.getString(R.string.app_description);
+ int importance = NotificationManager.IMPORTANCE_LOW;
+
+ NotificationChannel mChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, name, importance);
+ mChannel.setDescription(description);
+ mChannel.enableLights(false);
+ mChannel.enableVibration(false);
+ mChannel.setShowBadge(false);
+ mChannel.setLockscreenVisibility(Notification.VISIBILITY_SECRET);
+
+ mNativeNotificationManager.createNotificationChannel(mChannel);
+ }
+
private void showNotification(String name, String cookie, String title,
String text, String host, String imageUrl,
String persistentData) {
@@ -142,7 +177,7 @@ public final class NotificationClient implements NotificationListener {
private void add(final String name, final String imageUrl, final String host,
final String alertTitle, final String alertText,
final PendingIntent contentIntent, final PendingIntent deleteIntent) {
- final NotificationCompat.Builder builder = new NotificationCompat.Builder(mContext)
+ final NotificationBuilderCompat builder = new NotificationBuilderCompat(mContext)
.setContentTitle(alertTitle)
.setContentText(alertText)
.setSmallIcon(R.drawable.ic_status_logo)
@@ -150,7 +185,7 @@ public final class NotificationClient implements NotificationListener {
.setDeleteIntent(deleteIntent)
.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_SOUND)
- .setStyle(new NotificationCompat.BigTextStyle()
+ .setStyle(new Notification.BigTextStyle()
.bigText(alertText)
.setSummaryText(host));
diff --git a/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationHelper.java b/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationHelper.java
index 34ea99882d9a..35366609da49 100644
--- a/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationHelper.java
+++ b/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationHelper.java
@@ -32,10 +32,11 @@ import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.Bitmap;
import android.net.Uri;
-import android.support.v4.app.NotificationCompat;
import android.support.v4.util.SimpleArrayMap;
import android.util.Log;
+import org.torproject.android.service.util.NotificationBuilderCompat;
+
public final class NotificationHelper implements BundleEventListener {
public static final String HELPER_BROADCAST_ACTION = AppConstants.ANDROID_PACKAGE_NAME + ".helperBroadcastAction";
@@ -233,7 +234,7 @@ public final class NotificationHelper implements BundleEventListener {
private void showNotification(final GeckoBundle message) {
ThreadUtils.assertOnUiThread();
- final NotificationCompat.Builder builder = new NotificationCompat.Builder(mContext);
+ final NotificationBuilderCompat builder = new NotificationBuilderCompat(mContext);
// These attributes are required
final String id = message.getString(ID_ATTR);
1
0
commit 3a3dc1797bf5c9975ed2a35acf3c6c82c8ee39d5
Author: Georg Koppen <gk(a)torproject.org>
Date: Wed Nov 28 21:43:57 2018 +0000
Translations updatte
---
src/chrome/locale/cs/network-settings.dtd | 2 +-
src/chrome/locale/da/torlauncher.properties | 8 +--
src/chrome/locale/el/network-settings.dtd | 16 +++---
src/chrome/locale/es/torlauncher.properties | 2 +-
src/chrome/locale/fa/torlauncher.properties | 22 ++++-----
src/chrome/locale/gu/torlauncher.properties | 2 +-
src/chrome/locale/hr-HR/network-settings.dtd | 36 +++++++-------
src/chrome/locale/hr/network-settings.dtd | 74 ++++++++++++++--------------
src/chrome/locale/hr/torlauncher.properties | 14 +++---
src/chrome/locale/ja/network-settings.dtd | 4 +-
src/chrome/locale/ka/network-settings.dtd | 2 +-
src/chrome/locale/ka/torlauncher.properties | 4 +-
src/chrome/locale/mk/network-settings.dtd | 38 +++++++-------
src/chrome/locale/mk/torlauncher.properties | 58 +++++++++++-----------
src/chrome/locale/nl/network-settings.dtd | 2 +-
src/chrome/locale/nl/torlauncher.properties | 2 +-
src/chrome/locale/pl/network-settings.dtd | 34 ++++++-------
src/chrome/locale/pl/torlauncher.properties | 28 +++++------
src/chrome/locale/sv/network-settings.dtd | 4 +-
src/chrome/locale/sv/torlauncher.properties | 4 +-
src/chrome/locale/ur/network-settings.dtd | 2 +-
src/chrome/locale/ur/torlauncher.properties | 6 +--
22 files changed, 182 insertions(+), 182 deletions(-)
diff --git a/src/chrome/locale/cs/network-settings.dtd b/src/chrome/locale/cs/network-settings.dtd
index 53fc3a1..1e76823 100644
--- a/src/chrome/locale/cs/network-settings.dtd
+++ b/src/chrome/locale/cs/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Zkopírovat protokol Toru do schránky">
<!ENTITY torsettings.proxyHelpTitle "Nápověda k proxy">
-<!ENTITY torsettings.proxyHelp1 "Pří připojení skrze síť firmy, školy nebo univerzity může být potřeba lokální proxy. Pokud si nejste jisti, jestli je proxy potřeba, podívejte se do nastavení internetu jiného prohlížeče, nebo do systémového nastavení sítě.">
+<!ENTITY torsettings.proxyHelp1 "Pří připojení skrze síť firmy, školy nebo univerzity může být vyžadována lokální proxy. Pokud si nejste jisti, jestli je proxy potřeba, podívejte se do nastavení internetu jiného prohlížeče, nebo do systémového nastavení sítě.">
<!ENTITY torsettings.bridgeHelpTitle "Nápověda o mostních uzlech">
<!ENTITY torsettings.bridgeHelp1 "Mosty jsou neveřejné uzly, které znesnadňují blokování sítě Tor.  Každý typ mostu používá odlišný způsob jak zabránit cenzuře.  Obfs mosty dělají z vašich dat náhodný šum a meek mosty vytvářejí dojem, že se připojujete k dané službě a ne k Toru.">
diff --git a/src/chrome/locale/da/torlauncher.properties b/src/chrome/locale/da/torlauncher.properties
index a036c91..c959ed1 100644
--- a/src/chrome/locale/da/torlauncher.properties
+++ b/src/chrome/locale/da/torlauncher.properties
@@ -6,10 +6,10 @@ torlauncher.error_title=Tor starter
torlauncher.tor_exited_during_startup=Tor lukkede under opstart. Det kan skyldes en fejl i din torrc-fil, en fejl i Tor eller et andet program på dit system, eller hardwarefejl. Tor Browser vil ikke starte, før du løser det underliggende problem og genstarter Tor.
torlauncher.tor_exited=Tor lukkede uventet. Dette kan skyldes en fejl i selve Tor, et andet program i dit system eller en hardware-fejl. Tor Browser vil ikke være i stand til at forbinde til noget som helst websted før du genstarter Tor. Send en kopi af din Tor-log til support-teamet hvis problemet fortsætter.
torlauncher.tor_exited2=Fanebladene i din browser vil ikke blive lukket ved af at du genstarter Tor.
-torlauncher.tor_controlconn_failed=Kunne ikke forbinde til Tor kontrol-porten.
+torlauncher.tor_controlconn_failed=Kunne ikke oprette forbindelse til Tor kontrol-porten.
torlauncher.tor_failed_to_start=Tor kunne ikke starte.
torlauncher.tor_control_failed=Det lykkedes ikke at tage kontrol over Tor.
-torlauncher.tor_bootstrap_failed=Tor kunne ikke etablere forbindelse til Tor-netværket
+torlauncher.tor_bootstrap_failed=Tor kunne ikke etablere en forbindelse til Tor-netværket.
torlauncher.tor_bootstrap_failed_details=%1$S fejlede (%2$S).
torlauncher.unable_to_start_tor=Kan ikke starte Tor.\n\n%S
@@ -18,8 +18,8 @@ torlauncher.torrc_missing=torrc-filen mangler og kunne ikke dannes.
torlauncher.datadir_missing=Tor-datamappen findes ikke og kunne ikke dannes.
torlauncher.password_hash_missing=Kunne ikke finde hash-værdi af adgangskode.
-torlauncher.failed_to_get_settings=Kunne ikke læse Tor indstillingerne..⏎\n⏎\n%S
-torlauncher.failed_to_save_settings=Kunne ikke gemme Tor indstillingerne.⏎\n⏎\n%S
+torlauncher.failed_to_get_settings=Kan ikke hente Tor-indstillingerne..\n\n%S
+torlauncher.failed_to_save_settings=Kan ikke gemme Tor-indstillingerne.\n\n%S
torlauncher.ensure_tor_is_running=Kontroller venligst at Tor kører.
torlauncher.error_proxy_addr_missing=Du skal angive både IP adresse eller værts navn og en port, for at konfigurere Tor til at bruge en proxy som forbindelse til internettet.
diff --git a/src/chrome/locale/el/network-settings.dtd b/src/chrome/locale/el/network-settings.dtd
index eacb515..a5b525b 100644
--- a/src/chrome/locale/el/network-settings.dtd
+++ b/src/chrome/locale/el/network-settings.dtd
@@ -9,7 +9,7 @@
<!-- For "first run" wizard: -->
-<!ENTITY torSettings.connectPrompt "Πατήστε "Σύνδεση" για να συνδεθείτε στο Tor">
+<!ENTITY torSettings.connectPrompt "Πατήστε "Σύνδεση" για να συνδεθείτε στο Tor.">
<!ENTITY torSettings.configurePrompt "Πατήστε "Ρύθμιση" για να προσαρμόσετε τις ρυθμίσεις δικτύου αν βρίσκεστε σε χώρα που αποκλείει το Tor (όπως η Αίγυπτος, η Κίνα, η Τουρκία) ή αν συνδέεστε από προσωπικό δίκτυο που χρειάζεται διακομιστή μεσολάβησης.">
<!ENTITY torSettings.configure "Ρύθμιση ">
<!ENTITY torSettings.connect "Σύνδεση">
@@ -39,14 +39,14 @@
<!ENTITY torsettings.firewall.checkbox "Το τείχος προστασίας μου με αφήνει να συνδέομαι μόνο σε συγκεκριμένες θύρες συστήματος">
<!ENTITY torsettings.firewall.allowedPorts "Επιτρεπόμενες Θύρες:">
<!ENTITY torsettings.useBridges.checkbox "Ο Tor είναι αποκλεισμένος στη χώρα μου">
-<!ENTITY torsettings.useBridges.default "Επιλέξτε μία ενταγμένη γέφυρα">
-<!ENTITY torsettings.useBridges.default.placeholder "Επιλέξτε μία γέφυρα">
-<!ENTITY torsettings.useBridges.bridgeDB "Αιτηθείτε μίας γέφυρας από το torproject.org">
+<!ENTITY torsettings.useBridges.default "Επιλέξτε ένα ενταγμένο bridge">
+<!ENTITY torsettings.useBridges.default.placeholder "Επιλέξτε ένα bridge">
+<!ENTITY torsettings.useBridges.bridgeDB "Αιτηθείτε ενός bridge από το torproject.org">
<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Πληκτρολογήστε τους χαρακτήρες της εικόνας">
<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Πάρτε μία νέα πρόκληση.">
<!ENTITY torsettings.useBridges.captchaSubmit "Υποβολή">
-<!ENTITY torsettings.useBridges.custom "Δώστε μου μία γέφυρα που να την γνωρίζω">
-<!ENTITY torsettings.useBridges.label "Συμπληρώστε πληροφορίες γέφυρας από έγκυρη πηγή">
+<!ENTITY torsettings.useBridges.custom "Δώστε μου ένα bridge που να το γνωρίζω">
+<!ENTITY torsettings.useBridges.label "Συμπληρώστε πληροφορίες bridge από έγκυρη πηγή.">
<!ENTITY torsettings.useBridges.placeholder "πληκτρολογήστε διεύθυνση:πύλη (μία σε κάθε σειρά)">
<!ENTITY torsettings.copyLog "Αντιγραφή στο πρόχειρο">
@@ -55,8 +55,8 @@
<!ENTITY torsettings.proxyHelp1 "Ο τοπικός διακομιστής μεσολάβησης μπορεί να χρειαστεί, όταν συνδέεστε από μία εταιρία, ένα σχολείο ή ένα δίκτυο πανεπιστημίου. Αν δεν είστε σίγουρος αν χρειάζεστε διακομιστή μεσολάβησης, ελέγξτε τις ρυθμίσεις ίντερνετ ενός άλλου περιηγητή ή τις ρυθμίσεις του δικτύου συστήματος. ">
<!ENTITY torsettings.bridgeHelpTitle "Γεφυρες αναμεταδοτων Βοηθεια">
-<!ENTITY torsettings.bridgeHelp1 "Οι γέφυρες είναι μη καταχωρημένες διευθύνσεις που κάνουν πιο δύσκολο τον αποκλεισμό της σύνδεσης στο δίκτυο Tor.  Κάθε τύπος γέφυρας χρησιμοποιεί διαφορετική μέθοδο για να αποφύγει τον αποκλεισμό.  Οι obfs κάνουν τις κινήσεις σας να μοιάζουν με τυχαίο ήχο και οι meek κάνουν τις συνδέσεις σας να μοιάζουν πως γίνονται μέσω της αντίστοιχης υπηρεσίας αντί του Tor.">
-<!ENTITY torsettings.bridgeHelp2 "Λόγω του τρόπου που προσπαθούν κάποιες χώρες να αποκλείσουν το Tor, κάποιες γέφυρες λειτουργούν σε κάποιες χώρες, ενώ άλλες όχι.  Αν δεν είστε σίγουρος για το ποιες γέφυρες λειτουργούν στη χώρα σας, επισκεφτείτε το torproject.org/about/contact.html#support">
+<!ENTITY torsettings.bridgeHelp1 "Τα bridges είναι μη καταχωρημένες διευθύνσεις που κάνουν πιο δύσκολο τον αποκλεισμό της σύνδεσης στο δίκτυο Tor.  Κάθε τύπος γέφυρας χρησιμοποιεί διαφορετική μέθοδο για να αποφύγει τον αποκλεισμό.  Οι obfs κάνουν τις κινήσεις σας να μοιάζουν με τυχαίο ήχο και οι meek κάνουν τις συνδέσεις σας να μοιάζουν πως γίνονται μέσω της αντίστοιχης υπηρεσίας αντί του Tor.">
+<!ENTITY torsettings.bridgeHelp2 "Λόγω του τρόπου που προσπαθούν κάποιες χώρες να αποκλείσουν το Tor, κάποια bridges λειτουργούν σε κάποιες χώρες, ενώ σε άλλες όχι.  Αν δεν είστε σίγουρος για το ποια bridges λειτουργούν στη χώρα σας, επισκεφτείτε το torproject.org/about/contact.html#support">
<!-- Progress -->
<!ENTITY torprogress.pleaseWait "Παρακαλώ περιμένετε καθώς δημιουργούμε σύνδεση στο δίκτυο Tor.  Αυτό μπορεί να πάρει μερικά λεπτά.">
diff --git a/src/chrome/locale/es/torlauncher.properties b/src/chrome/locale/es/torlauncher.properties
index 365318a..31ffb6a 100644
--- a/src/chrome/locale/es/torlauncher.properties
+++ b/src/chrome/locale/es/torlauncher.properties
@@ -25,7 +25,7 @@ torlauncher.ensure_tor_is_running=Por favor, asegúrese de que Tor se está ejec
torlauncher.error_proxy_addr_missing=Tiene que especificar tanto una dirección IP o nombre de máquina ('hostname') como un número de puerto para configurar Tor para que utilice un 'proxy' para acceder a la Internet.
torlauncher.error_proxy_type_missing=Debe seleccionar el tipo de 'proxy'.
torlauncher.error_bridges_missing=Debe especificar uno o más puentes ('bridges').
-torlauncher.error_default_bridges_type_missing=Debe seleccionar un tipo de transporte para los repetidores puente ('bridges') proporcionados.
+torlauncher.error_default_bridges_type_missing=Debes seleccionar un tipo de transporte para los repetidores puente ('bridges') proporcionados.
torlauncher.error_bridgedb_bridges_missing=Por favor solicita un puente.
torlauncher.error_bridge_bad_default_type=No hay disponible ningún repetidor puente proporcionado que tenga el tipo de transporte %S. Por favor ajuste sus preferencias.
diff --git a/src/chrome/locale/fa/torlauncher.properties b/src/chrome/locale/fa/torlauncher.properties
index 533c491..169d5e2 100644
--- a/src/chrome/locale/fa/torlauncher.properties
+++ b/src/chrome/locale/fa/torlauncher.properties
@@ -26,20 +26,20 @@ torlauncher.error_proxy_addr_missing=شما میبایست یک آدرس آی پ
torlauncher.error_proxy_type_missing=شما باید نوع پراکسی را انتخاب کنید.
torlauncher.error_bridges_missing=شما باید یک یا پل های بیشتری را مشخص کنید.
torlauncher.error_default_bridges_type_missing=نوع انتقال باید برای پلها مشخص گردد.
-torlauncher.error_bridgedb_bridges_missing=Please request a bridge.
+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.request_a_bridge=درخواست یک پل...
+torlauncher.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.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.no_bridges_available=No bridges are available at this time. Sorry.
+torlauncher.no_bridges_available=متاسفم. در حال حاضر هیچ کدام از پلها در دسترس نیستند.
torlauncher.connect=اتصال
torlauncher.restart_tor=تور را ریستارت کنید.
@@ -73,6 +73,6 @@ torlauncher.bootstrapWarning.noroute=نبود مسیر به میزبان
torlauncher.bootstrapWarning.ioerror=خطای خواندن/نوشتن
torlauncher.bootstrapWarning.pt_missing=انتقال جایگزین مفقود است.
-torlauncher.nsresult.NS_ERROR_NET_RESET=The connection to the server was lost.
-torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Could not connect to the server.
-torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Could not connect to the proxy.
+torlauncher.nsresult.NS_ERROR_NET_RESET=ارتباط با کارساز از دست رفت.
+torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=اتصال به کارساز امکان پذیر نمیباشد.
+torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=اتصال به پروکسی امکان پذیر نمیباشد.
diff --git a/src/chrome/locale/gu/torlauncher.properties b/src/chrome/locale/gu/torlauncher.properties
index 0f0bdee..f6bc2fe 100644
--- a/src/chrome/locale/gu/torlauncher.properties
+++ b/src/chrome/locale/gu/torlauncher.properties
@@ -44,7 +44,7 @@ torlauncher.no_bridges_available=No bridges are available at this time. Sorry.
torlauncher.connect=Connect
torlauncher.restart_tor=Restart Tor
torlauncher.quit=Quit
-torlauncher.quit_win=Exit
+torlauncher.quit_win=બહાર નીકળો
torlauncher.done=થઈ ગયું
torlauncher.forAssistance=For assistance, contact %S
diff --git a/src/chrome/locale/hr-HR/network-settings.dtd b/src/chrome/locale/hr-HR/network-settings.dtd
index 2c0ffd8..e4dc474 100644
--- a/src/chrome/locale/hr-HR/network-settings.dtd
+++ b/src/chrome/locale/hr-HR/network-settings.dtd
@@ -1,7 +1,7 @@
<!ENTITY torsettings.dialog.title "Postavke Tor mreže">
-<!ENTITY torsettings.wizard.title.default "Connect to Tor">
+<!ENTITY torsettings.wizard.title.default "Poveži se na Tor">
<!ENTITY torsettings.wizard.title.configure "Postavke Tor mreže">
-<!ENTITY torsettings.wizard.title.connecting "Establishing a Connection">
+<!ENTITY torsettings.wizard.title.connecting "Uspostavljanje veze">
<!-- For locale picker: -->
<!ENTITY torlauncher.localePicker.title "Jezik Tor Browsera">
@@ -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 "Kliknite "Spoji" kako biste se spojili na Tor.">
+<!ENTITY torSettings.configurePrompt "Kliknite "Podesi" kako biste promijenili postavke mreže ako ste u državi koja cenzurira Tor (kao Egipat, Kina, Turska) ili ako se spajate preko privatne mreže za koju je potreban proxy.">
<!ENTITY torSettings.configure "Podesi">
<!ENTITY torSettings.connect "Spoji">
@@ -25,9 +25,9 @@
<!ENTITY torsettings.optional "Opcionalno">
-<!ENTITY torsettings.useProxy.checkbox "I use a proxy to connect to the Internet">
+<!ENTITY torsettings.useProxy.checkbox "Koristim proxy za spajanje na Internet">
<!ENTITY torsettings.useProxy.type "Tip proxya:">
-<!ENTITY torsettings.useProxy.type.placeholder "select a proxy type">
+<!ENTITY torsettings.useProxy.type.placeholder "odaberite tip proxya">
<!ENTITY torsettings.useProxy.address "Adresa:">
<!ENTITY torsettings.useProxy.address.placeholder "IP adresa ili hostname">
<!ENTITY torsettings.useProxy.port "Port:">
@@ -38,21 +38,21 @@
<!ENTITY torsettings.useProxy.type.http "HTTP / HTTPS">
<!ENTITY torsettings.firewall.checkbox "Ovo računalo je iza vatrozida koji dopušta spajanje samo na određene portove">
<!ENTITY torsettings.firewall.allowedPorts "Dozvoljeni portovi:">
-<!ENTITY torsettings.useBridges.checkbox "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 "Predaj">
-<!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.checkbox "Tor je cenzuriran u mojoj državi">
+<!ENTITY torsettings.useBridges.default "Odaberite ugrađeni most">
+<!ENTITY torsettings.useBridges.default.placeholder "odaberite most">
+<!ENTITY torsettings.useBridges.bridgeDB "Zatražite most od torproject.org">
+<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Unesite znakove sa slike">
+<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Dobij novi izazov">
+<!ENTITY torsettings.useBridges.captchaSubmit "Pošalji">
+<!ENTITY torsettings.useBridges.custom "Pruži mi most koji poznajem">
+<!ENTITY torsettings.useBridges.label "Unesite informacije o mostu iz povjerenog izvora">
+<!ENTITY torsettings.useBridges.placeholder "vrsta adresa:port (jedan po liniji)">
<!ENTITY torsettings.copyLog "Kopiraj Tor zapisnik u međuspremnik">
-<!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 "Pomoć s proxyem">
+<!ENTITY torsettings.proxyHelp1 "Ako se povezujete kroz mrežu tvrtke, škole ili sveučilišta moguće je da će vam trebati lokalni proxy. Ako niste sigurni treba li vam proxy, pregledajte postavke interneta u drugom pregledniku ili provjerite postavke mreže Vašeg sistema.">
<!ENTITY torsettings.bridgeHelpTitle "Pomoć za releje mostove">
<!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.">
diff --git a/src/chrome/locale/hr/network-settings.dtd b/src/chrome/locale/hr/network-settings.dtd
index 1c89cc2..6783163 100644
--- a/src/chrome/locale/hr/network-settings.dtd
+++ b/src/chrome/locale/hr/network-settings.dtd
@@ -1,60 +1,60 @@
-<!ENTITY torsettings.dialog.title "Postavke Tor Mreže">
+<!ENTITY torsettings.dialog.title "Postavke Tor mreže">
<!ENTITY torsettings.wizard.title.default "Spoji se na Tor">
-<!ENTITY torsettings.wizard.title.configure "Postavke Tor Mreže">
-<!ENTITY torsettings.wizard.title.connecting "Establishing a Connection">
+<!ENTITY torsettings.wizard.title.configure "Postavke Tor mreže">
+<!ENTITY torsettings.wizard.title.connecting "Uspostavljanje veze">
<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
-<!ENTITY torlauncher.localePicker.prompt "Please select a language.">
+<!ENTITY torlauncher.localePicker.title "Jezik Tor preglednika">
+<!ENTITY torlauncher.localePicker.prompt "Odaberite jezik">
<!-- 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 "Konfiguriraj">
+<!ENTITY torSettings.connectPrompt "Za povezivanje s Tor-om kliknite "Poveži se"">
+<!ENTITY torSettings.configurePrompt "Ako ste u zemlji koja cenzurira Tor (kao Egipat, Kina, Turska) ili ste spojeni preko privatne mreže za koju je potrebno proxy, kliknite "Podesi" kako biste promijenili postavke mreže.">
+<!ENTITY torSettings.configure "Podesi">
<!ENTITY torSettings.connect "Poveži se">
<!-- Other: -->
-<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
-<!ENTITY torsettings.restartTor "Restart Tor">
-<!ENTITY torsettings.reconfigTor "Reconfigure">
+<!ENTITY torsettings.startingTor "Čekanje na pokretanje Tor-a…">
+<!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.proceed "Remove Settings and Connect">
+<!ENTITY torsettings.discardSettings.proceed "Obriši postavke i poveži se">
-<!ENTITY torsettings.optional "Optional">
+<!ENTITY torsettings.optional "Neobavezno">
-<!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 "Koristim proxy za spajanje na internet">
+<!ENTITY torsettings.useProxy.type "Tip proxy-a:">
+<!ENTITY torsettings.useProxy.type.placeholder "odaberite tip proxy-a">
<!ENTITY torsettings.useProxy.address "Adresa:">
-<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
-<!ENTITY torsettings.useProxy.port "Priključak:">
+<!ENTITY torsettings.useProxy.address.placeholder "IP adresa ili poslužitelj">
+<!ENTITY torsettings.useProxy.port "Port:">
<!ENTITY torsettings.useProxy.username "Korisničko ime:">
<!ENTITY torsettings.useProxy.password "Lozinka:">
<!ENTITY torsettings.useProxy.type.socks4 "SOCKS 4">
<!ENTITY torsettings.useProxy.type.socks5 "SOCKS 5">
<!ENTITY torsettings.useProxy.type.http "HTTP / HTTPS">
-<!ENTITY torsettings.firewall.checkbox "This computer goes through a firewall that only allows connections to certain ports">
-<!ENTITY torsettings.firewall.allowedPorts "Allowed Ports:">
-<!ENTITY torsettings.useBridges.checkbox "Tor is censored in my country">
-<!ENTITY torsettings.useBridges.default "Select a built-in bridge">
-<!ENTITY torsettings.useBridges.default.placeholder "select a bridge">
-<!ENTITY torsettings.useBridges.bridgeDB "Request a bridge from torproject.org">
-<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Enter the characters from the image">
-<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Get a new challenge">
-<!ENTITY torsettings.useBridges.captchaSubmit "Unesi">
-<!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.firewall.checkbox "Ovo raučunalo ide kroz vatrozid koji dozvoljava veze samo preko pojedinih portova.">
+<!ENTITY torsettings.firewall.allowedPorts "Dopušteni portovi:">
+<!ENTITY torsettings.useBridges.checkbox "Tor je cenzuriran u mojoj zemlji">
+<!ENTITY torsettings.useBridges.default "Odaberite ugrađeni most">
+<!ENTITY torsettings.useBridges.default.placeholder "odaberite most">
+<!ENTITY torsettings.useBridges.bridgeDB "Zatražite most od torproject.org">
+<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Unesite znakove sa slike">
+<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Dobijte novi izazov">
+<!ENTITY torsettings.useBridges.captchaSubmit "Pošalji">
+<!ENTITY torsettings.useBridges.custom "Pružaj mi most koji poznajem">
+<!ENTITY torsettings.useBridges.label "Unesite informacije o mostu sa pouzdanog izvora.">
+<!ENTITY torsettings.useBridges.placeholder "tip adresa:port (jedna po retku)">
+
+<!ENTITY torsettings.copyLog "Kopiraj Tor zapisnik u međuspremnik">
+
+<!ENTITY torsettings.proxyHelpTitle "Pomoć s proxy-em">
+<!ENTITY torsettings.proxyHelp1 "Ako se povezujete kroz mrežu tvrtke, škole ili sveučilišta moguće je da će vam trebati lokalni proxy. Ako niste sigurni treba li vam proxy, pregledajte postavke interneta u drugom pregledniku ili provjerite postavke mreže Vašeg sistema.">
+
+<!ENTITY torsettings.bridgeHelpTitle "Pomoć s mostovima">
<!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/hr/torlauncher.properties b/src/chrome/locale/hr/torlauncher.properties
index c6143af..1424083 100644
--- a/src/chrome/locale/hr/torlauncher.properties
+++ b/src/chrome/locale/hr/torlauncher.properties
@@ -3,12 +3,12 @@
torlauncher.error_title=Tor Launcher
-torlauncher.tor_exited_during_startup=Tor exited during startup. This might be due to an error in your torrc file, a bug in Tor or another program on your system, or faulty hardware. Until you fix the underlying problem and restart Tor, Tor Browser will not start.
-torlauncher.tor_exited=Tor unexpectedly exited. This might be due to a bug in Tor itself, another program on your system, or faulty hardware. Until you restart Tor, the Tor Browser will not able to reach any websites. If the problem persists, please send a copy of your Tor Log to the support team.
-torlauncher.tor_exited2=Restarting Tor will not close your browser tabs.
-torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
-torlauncher.tor_failed_to_start=Tor failed to start.
-torlauncher.tor_control_failed=Failed to take control of Tor.
+torlauncher.tor_exited_during_startup=Tor je prekinut tijekom pokretanja. Ovo može biti zbog pogreške u vašoj torrc datoteci, pogreške u Tor-u ili u drugom programu na vašem sistemu, ili zbog neispravnog hardvera. Dok ne riješite temeljni problem i ponovno pokrenete Tor, Tor preglednik se neće pokrenuti.
+torlauncher.tor_exited=Tor je neočekivano prekinut. To može biti zbog greške u samom Tor-u, drugom programu na vašem sistemu ili zbog neispravnog hardvera. Dok ponovno ne pokrenete Tor, Tor preglednik neće moči pristupiti web stranicama. Ako se problem nastavi, pošaljite kopiju vašeg Tor zapisnika timu za podršku.
+torlauncher.tor_exited2=Ponovno pokretanje Tor-a neće zatvoriti vaše kartice preglednika.
+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).
@@ -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 se
-torlauncher.restart_tor=Restart Tor
+torlauncher.restart_tor=Ponovno pokreni Tor
torlauncher.quit=Izlaz
torlauncher.quit_win=Izlaz
torlauncher.done=Gotovo
diff --git a/src/chrome/locale/ja/network-settings.dtd b/src/chrome/locale/ja/network-settings.dtd
index 4a51455..25d2d09 100644
--- a/src/chrome/locale/ja/network-settings.dtd
+++ b/src/chrome/locale/ja/network-settings.dtd
@@ -11,7 +11,7 @@
<!ENTITY torSettings.connectPrompt "「接続」をクリックすると Tor に接続します。">
<!ENTITY torSettings.configurePrompt "Tor による通信を検閲する国(エジプト、中国、トルコ等)にいる場合やプロキシを要求するプライベートネットワークから接続する場合、「設定」をクリックしてネットワーク設定を調整します。">
-<!ENTITY torSettings.configure "構成">
+<!ENTITY torSettings.configure "設定">
<!ENTITY torSettings.connect "接続">
<!-- Other: -->
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Torのログをクリップボードにコピー">
<!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 "会社、学校、大学等のネットワークを通して接続する場合、ローカルプロクシが必要になる場合があります。 プロクシが必要であるかどうかわからない場合は、他のブラウザのインターネット設定を見るか、システムのネットワーク設定を確認してください。">
<!ENTITY torsettings.bridgeHelpTitle "ブリッジリレーのヘルプ">
<!ENTITY torsettings.bridgeHelp1 "ブリッジとはTorネットワークへの接続をブロックすることを難しくするためのリストされていないリレーです。  それぞれの種類のブリッジは検閲を避けるための異なる手法を利用しています。  obfsのものはあなたのトラフィックをランダムなノイズのように見せかけ,meekのものはあなたのトラフィックをTorではなくそのサービスへの接続であるように見せかけます。">
diff --git a/src/chrome/locale/ka/network-settings.dtd b/src/chrome/locale/ka/network-settings.dtd
index 72017f1..e1b18ac 100644
--- a/src/chrome/locale/ka/network-settings.dtd
+++ b/src/chrome/locale/ka/network-settings.dtd
@@ -49,7 +49,7 @@
<!ENTITY torsettings.useBridges.label "გადამცემი ხიდის მონაცემების მითითება სანდო წყაროდან.">
<!ENTITY torsettings.useBridges.placeholder "აკრიფეთ მისამართი:პორტი (თითო ცალკე ხაზზე)">
-<!ENTITY torsettings.copyLog "Tor-ის აღრიცხვის ჩანაწერების დაკოპირება">
+<!ENTITY torsettings.copyLog "Tor-ის აღრიცხვის ჩანაწერების ასლი">
<!ENTITY torsettings.proxyHelpTitle "პროქსი — დახმარება">
<!ENTITY torsettings.proxyHelp1 "ადგილობრივი პროქსი მაშინაა საჭირო, როცა ინტერნეტს უკავშირდებით კომპანიის, სკოლის ან უნივერსიტეტის ქსელის გავლით. თუ დარწმუნებული არ ხართ პროქსის საჭიროებაში, გადახედეთ ინტერნეტის პარამეტრებს სხვა ბრაუზერში ან იხილეთ სისტემის ქსელის პარამეტრები.">
diff --git a/src/chrome/locale/ka/torlauncher.properties b/src/chrome/locale/ka/torlauncher.properties
index 48a7acf..457c46f 100644
--- a/src/chrome/locale/ka/torlauncher.properties
+++ b/src/chrome/locale/ka/torlauncher.properties
@@ -50,7 +50,7 @@ torlauncher.done=შესრულებულია
torlauncher.forAssistance=დახმარებისთვის დაუკავშირდით %S
torlauncher.forAssistance2=დახმარებისთვის ეწვიეთ %S
-torlauncher.copiedNLogMessages=დაკოპირება დასრულებულია. %S Tor-ის აღრიცხვის ჩანაწერები მზადაა ტექსტურ რედაქტორში ან ელფოსტის წერილში ჩასასმელად.
+torlauncher.copiedNLogMessages=ასლის აღება დასრულებულია. %S Tor-ის აღრიცხვის ჩანაწერები მზადაა ტექსტურ რედაქტორში ან ელფოსტის წერილში ჩასასმელად.
torlauncher.bootstrapStatus.conn_dir=გადამცემთა ცნობართან დაკავშირება
torlauncher.bootstrapStatus.handshake_dir=დაშიფრული კავშირის დამყარება ცნობართან
@@ -68,7 +68,7 @@ torlauncher.bootstrapWarning.connectrefused=კავშირი უარყ
torlauncher.bootstrapWarning.misc=სხვადასხვა
torlauncher.bootstrapWarning.resourcelimit=არასაკმარისი რესურსები
torlauncher.bootstrapWarning.identity=მოწმობა არ ემთხვევა
-torlauncher.bootstrapWarning.timeout=კავშირის ვადა
+torlauncher.bootstrapWarning.timeout=კავშირის დაყოვნება
torlauncher.bootstrapWarning.noroute=მისამართი არაა აღნიშნული
torlauncher.bootstrapWarning.ioerror=წაკითხვა/ჩაწერის შეცდომა
torlauncher.bootstrapWarning.pt_missing=მისაერთებელი გადამყვანი ვერ მოიძებნა
diff --git a/src/chrome/locale/mk/network-settings.dtd b/src/chrome/locale/mk/network-settings.dtd
index 6885070..7a258c5 100644
--- a/src/chrome/locale/mk/network-settings.dtd
+++ b/src/chrome/locale/mk/network-settings.dtd
@@ -1,7 +1,7 @@
<!ENTITY torsettings.dialog.title "Tor мрежни поставки">
<!ENTITY torsettings.wizard.title.default "Поврзи се на Tor">
<!ENTITY torsettings.wizard.title.configure "Tor мрежни поставки">
-<!ENTITY torsettings.wizard.title.connecting "Воспоставување на конекција">
+<!ENTITY torsettings.wizard.title.connecting "Воспоставување на поврзување">
<!-- For locale picker: -->
<!ENTITY torlauncher.localePicker.title "Tor Browser јазик">
@@ -9,19 +9,19 @@
<!-- For "first run" wizard: -->
-<!ENTITY torSettings.connectPrompt "Кликнете "Конектирај" да се конектирате на Tor.">
-<!ENTITY torSettings.configurePrompt "Кликни на "Постави" да ги поставите мрежните поставки ако сте во земја која го цензурира Tor (како Египет, Кина, Турција) или ако се поврзувате од приватна мрежа која бара прокси.">
-<!ENTITY torSettings.configure "Постави">
-<!ENTITY torSettings.connect "Конектирај">
+<!ENTITY torSettings.connectPrompt "Кликнете "Поврзи" да се поврзете на Tor.">
+<!ENTITY torSettings.configurePrompt "Кликни на "Конфигурирај" да ги конфигурирате мрежните поставки ако сте во земја која го цензурира Tor (како Египет, Кина, Турција) или ако се поврзувате од приватна мрежа која бара прокси.">
+<!ENTITY torSettings.configure "Конфигурирај">
+<!ENTITY torSettings.connect "Поврзи">
<!-- Other: -->
<!ENTITY torsettings.startingTor "Почекај за стартување на Tor...">
-<!ENTITY torsettings.restartTor "Повторно стартување на Tor">
-<!ENTITY torsettings.reconfigTor "Промени поставки">
+<!ENTITY torsettings.restartTor "Рестартирај го Tor">
+<!ENTITY torsettings.reconfigTor "Пре-конфигурирај">
-<!ENTITY torsettings.discardSettings.prompt "Имате поставено Tor мостови или имате внесено локални прокси поставки.  Директно да се поврзете на Tor мрежата, овие поставки мораат да бидат избришани.">
-<!ENTITY torsettings.discardSettings.proceed "Избриши ги поставките и конектирај се">
+<!ENTITY torsettings.discardSettings.prompt "Имате конфигурирано Tor мостови или имате внесено локални прокси поставки.  За директно да се поврзете на Tor мрежата, овие поставки мораат да бидат избришани.">
+<!ENTITY torsettings.discardSettings.proceed "Избриши ги поставките и поврзи се">
<!ENTITY torsettings.optional "Опционално">
@@ -36,15 +36,15 @@
<!ENTITY torsettings.useProxy.type.socks4 "SOCKS 4">
<!ENTITY torsettings.useProxy.type.socks5 "SOCKS 5">
<!ENTITY torsettings.useProxy.type.http "HTTP / HTTPS">
-<!ENTITY torsettings.firewall.checkbox "Овој компјутер оди преку заштитен ѕид кој дозволува конекции до одредени порти">
+<!ENTITY torsettings.firewall.checkbox "Овој компјутер оди преку заштитен ѕид кој дозволува поврзувања до одредени порти">
<!ENTITY torsettings.firewall.allowedPorts "Дозволени порти:">
<!ENTITY torsettings.useBridges.checkbox "Tor е цензуриран во мојата држава">
<!ENTITY torsettings.useBridges.default "Одбери вграден мост">
<!ENTITY torsettings.useBridges.default.placeholder "одбери мост">
-<!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.bridgeDB "Барање за мост од torproject.org">
+<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Внесете ги карактерите од сликата">
+<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Пробајте нов предизвик">
+<!ENTITY torsettings.useBridges.captchaSubmit "Испрати">
<!ENTITY torsettings.useBridges.custom "Обезбеди мост кој го знам">
<!ENTITY torsettings.useBridges.label "Внесете информации за мост од доверлив извор.">
<!ENTITY torsettings.useBridges.placeholder "внеси адреса:порта (по една во секој ред)">
@@ -52,11 +52,11 @@
<!ENTITY torsettings.copyLog "Копирај го Tor логот за залепување">
<!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 "Може да ви биде потребно локално прокси кога се поврзувате преку мрежа на компанија, училиште, или универзитет. Ако не сте сигурни дали е потребно прокси, погледнете во Интернет поставки во друг прелистувач или проверете ги мрежните поставки на системот.">
-<!ENTITY torsettings.bridgeHelpTitle "Мост јазол помош">
-<!ENTITY torsettings.bridgeHelp1 "Мостовите се неизлистани јазли кои го прават потешко блокирањето на врските кон Tor мрежата.  Секој тип на мост користи различен метод за избегнување на цензурирањето.  obfs мостот го прави протокот на информации да изгледа нормален, како да е од некој стандарден прелистувач наместо од Tor.">
-<!ENTITY torsettings.bridgeHelp2 "Поради колку конкретно државите се обидуваат да го блокираат Tor, конкретни мостови работат во едни конкретни држави но не и во други.  Ако не си сигурен кои мостови работат во твојата држава, посети torproject.org/about/contact.html#support">
+<!ENTITY torsettings.bridgeHelpTitle "Помош за мост реле">
+<!ENTITY torsettings.bridgeHelp1 "Мостовите се неизлистани релеа кои го прават потешко блокирањето на поврзувањата кон Tor мрежата.  Секој тип на мост користи различен метод за избегнување на цензурирањето.  obfs мостот го прави протокот на информации да изгледа нормален, како да е од некој стандарден прелистувач наместо од Tor.">
+<!ENTITY torsettings.bridgeHelp2 "Поради тоа колку конкретно државите се обидуваат да го блокираат Tor, конкретни мостови работат во едни конкретни држави но не и во други.  Ако не си сигурен кои мостови работат во твојата држава, посети torproject.org/about/contact.html#support">
<!-- Progress -->
-<!ENTITY torprogress.pleaseWait "Ве молиме почекајте додека се воспостави конекција со Тор мрежата.  Ова може да потрае неколку минути.">
+<!ENTITY torprogress.pleaseWait "Ве молиме почекајте додека се воспостави поврзувањето со Тор мрежата.  Ова може да потрае неколку минути.">
diff --git a/src/chrome/locale/mk/torlauncher.properties b/src/chrome/locale/mk/torlauncher.properties
index 8b065d3..8dfecbb 100644
--- a/src/chrome/locale/mk/torlauncher.properties
+++ b/src/chrome/locale/mk/torlauncher.properties
@@ -3,13 +3,13 @@
torlauncher.error_title=Tor стартувач
-torlauncher.tor_exited_during_startup=Tor се исклучи за време на вклучувањето. Ова може да е поради грашка во вашата torrc датотека, грешка во Tor или друга програма во вашиот систем, или проблем со хардеверот. Додека не го поправите проблемот кој го предизвикува ова, и повторно не го вклучите Tor, Tor Browser нема да се стартува.
-torlauncher.tor_exited=Tor неочекувано се исклучи. Ова може да е до грешка во самиот Tor, друга програма во системот, или проблем со хардверот. Додека повторно го стартувате Tor, Tor Browser нема да може да ја отвори било која веб страна. Ако проблемот остане, ве молиме испратете копија од вашиот Tor лог на тимот за поддршка.
-torlauncher.tor_exited2=Повротното старување на Tor нема да ви ги затвори табовите во вашиот прелистувач.
-torlauncher.tor_controlconn_failed=Не може да се конектира на Tor контролната порта.
+torlauncher.tor_exited_during_startup=Tor се исклучи за време на вклучувањето. Ова може да е поради грашка во вашата torrc датотека, грешка во Tor или друга програма во вашиот систем, или проблем со хардеверот. Додека не го поправите проблемот кој го предизвикува ова, и не го рестартирате Tor, Tor Browser нема да се стартува.
+torlauncher.tor_exited=Tor неочекувано се исклучи. Ова може да е до грешка во самиот Tor, друга програма во системот, или проблем со хардверот. Додека не го рестартирате Tor, Tor Browser нема да може да ја отвори било која веб страна. Ако проблемот остане, ве молиме испратете копија од вашиот Tor лог на тимот за поддршка.
+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=Tor не успеа да воспостави поврзување со Tor мрежата.
torlauncher.tor_bootstrap_failed_details=%1$S не успеаа (%2$S).
torlauncher.unable_to_start_tor=Не може да се стартува Tor.\n\n%S
@@ -22,27 +22,27 @@ torlauncher.failed_to_get_settings=Невозможно е да се добиј
torlauncher.failed_to_save_settings=Невозможно е да се зачуваат Tor поставките.\n\n%S
torlauncher.ensure_tor_is_running=Проверете дали Tor е вклучен.
-torlauncher.error_proxy_addr_missing=Мора да ги посочите и IP адресите или хостовите и бројот на портата за да го поставите Tor да користи прокси за пристап на Интернет.
+torlauncher.error_proxy_addr_missing=Мора да ги посочите и IP адресите или хостовите и бројот на портата за да го конфигурирате Tor да користи прокси за пристап на Интернет.
torlauncher.error_proxy_type_missing=Морате да одберете тип на прокси.
torlauncher.error_bridges_missing=Морате да одберете еден или повеќе мостови.
torlauncher.error_default_bridges_type_missing=Мора да одберете тип на транспорт за обезбедените мостови.
-torlauncher.error_bridgedb_bridges_missing=Please request a bridge.
+torlauncher.error_bridgedb_bridges_missing=Ве молиме побарајте мост.
torlauncher.error_bridge_bad_default_type=Нема обезбедени мостови кои го имаат типот на транспорт %S а се достапни. Прилагодете ги вашите поставки.
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=Решете ја ЗАДАЧАТА за да побарате мост.
+torlauncher.bad_captcha_solution=Решението е погрешно. Ве молиме обидете се повторно.
+torlauncher.unable_to_get_bridge=Не е во можност добивањето на мост од BridgeDB.\n\n%S
+torlauncher.no_meek=Овој прелистувач не е конфигуриран за meek, кој е потребен за добивање на мостови.
+torlauncher.no_bridges_available=Нема достапни мостови во овој момент. Извинете.
-torlauncher.connect=Конектирај
-torlauncher.restart_tor=Повторно стартување на Tor
+torlauncher.connect=Поврзи
+torlauncher.restart_tor= Повторно стартување на Tor
torlauncher.quit=Прекини
torlauncher.quit_win=Излез
torlauncher.done=Завршено
@@ -52,27 +52,27 @@ torlauncher.forAssistance2=За помош, посетете %S
torlauncher.copiedNLogMessages=Копирањето е завршено. %S Tor лог пораките се подготвени да бидат залепени во уредувач на текст или во порака за е-пошта.
-torlauncher.bootstrapStatus.conn_dir=Конектирање на јазол директориум
-torlauncher.bootstrapStatus.handshake_dir=Воспоставување енкриптирана конекција со директориумот
+torlauncher.bootstrapStatus.conn_dir=Поврзување на реле директориум
+torlauncher.bootstrapStatus.handshake_dir=Воспоставување енкриптирано поврзување со директориумот
torlauncher.bootstrapStatus.requesting_status=Добивање на мрежен статус
torlauncher.bootstrapStatus.loading_status=Вчитување на мрежен статус
-torlauncher.bootstrapStatus.loading_keys=Вчитување на авторитетски сертификати
-torlauncher.bootstrapStatus.requesting_descriptors=Барање на информации за јазол
-torlauncher.bootstrapStatus.loading_descriptors=Вчитување на информации за јазол
-torlauncher.bootstrapStatus.conn_or=Конектирање на Tor мрежата
+torlauncher.bootstrapStatus.loading_keys=Вчитување на авторитетни сертификати
+torlauncher.bootstrapStatus.requesting_descriptors=Барање на информации за реле
+torlauncher.bootstrapStatus.loading_descriptors=Вчитување на информации за реле
+torlauncher.bootstrapStatus.conn_or=Поврзување на Tor мрежата
torlauncher.bootstrapStatus.handshake_or=Воспоставување на Tor круг
-torlauncher.bootstrapStatus.done=Конектирани сте на Tor мрежата!
+torlauncher.bootstrapStatus.done=Поврзани сте на Tor мрежата!
torlauncher.bootstrapWarning.done=завршено
-torlauncher.bootstrapWarning.connectrefused=конекцијата е одбиена
+torlauncher.bootstrapWarning.connectrefused=поврзувањето е одбиено
torlauncher.bootstrapWarning.misc=разно
torlauncher.bootstrapWarning.resourcelimit=недоволни ресурси
torlauncher.bootstrapWarning.identity=идентитетско несогласување
-torlauncher.bootstrapWarning.timeout=времето за конекција истече
+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/nl/network-settings.dtd b/src/chrome/locale/nl/network-settings.dtd
index e8aa4eb..4dabeb6 100644
--- a/src/chrome/locale/nl/network-settings.dtd
+++ b/src/chrome/locale/nl/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Kopieer Tor-log naar het klembord">
<!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.proxyHelp1 "Een lokale proxy kan nodig zijn als u verbinding maakt via het netwerk van een bedrijf, school, of universiteit. Als u niet zeker weet of een proxy nodig is, kijk dan naar de internetinstellingen in een andere browser of kijk naar de netwerkinstellingen van het systeem.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge relay-hulp">
<!ENTITY torsettings.bridgeHelp1 "Bridges zijn niet vermelde relays die het moeilijk maken om verbindingen naar het Tor Network te blokkeren.  Elk van deze bridges gebruikt een andere methode om censuur te vermijden.  Degene die obfs gebruiken, zien eruit gelijk willekeurige ruis, en de andere laten uw netwerk verkeer eruit zien alsof u verbind met een andere service in plaats van met Tor.">
diff --git a/src/chrome/locale/nl/torlauncher.properties b/src/chrome/locale/nl/torlauncher.properties
index 3807906..48557bb 100644
--- a/src/chrome/locale/nl/torlauncher.properties
+++ b/src/chrome/locale/nl/torlauncher.properties
@@ -38,7 +38,7 @@ torlauncher.contacting_bridgedb=Contact maken met BridgeDB. Een ogenblik.
torlauncher.captcha_prompt=Los de CAPTCHA op om een brug te verzoeken.
torlauncher.bad_captcha_solution=De oplossing is niet correct. Probeer opnieuw.
torlauncher.unable_to_get_bridge=Kan geen brug verkrijgen van BridgeDB.\n\n%S
-torlauncher.no_meek=This browser is not configured for meek, which is needed to obtain bridges.
+torlauncher.no_meek=Deze browser is niet geconfigureerd voor meek, wat nodig is om bridges te verkrijgen.
torlauncher.no_bridges_available=Geen bruggen zijn beschikbaar op dit moment. Sorry.
torlauncher.connect=Verbind
diff --git a/src/chrome/locale/pl/network-settings.dtd b/src/chrome/locale/pl/network-settings.dtd
index a45fc68..76131f7 100644
--- a/src/chrome/locale/pl/network-settings.dtd
+++ b/src/chrome/locale/pl/network-settings.dtd
@@ -1,7 +1,7 @@
<!ENTITY torsettings.dialog.title "Ustawienia Sieci">
<!ENTITY torsettings.wizard.title.default "Połącz z siecią Tor">
<!ENTITY torsettings.wizard.title.configure "Ustawienia Sieci">
-<!ENTITY torsettings.wizard.title.connecting "Establishing a Connection">
+<!ENTITY torsettings.wizard.title.connecting "Nawiązanie połączenia">
<!-- For locale picker: -->
<!ENTITY torlauncher.localePicker.title "Język przeglądarki Tor.">
@@ -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 "Kliknij "Połącz", aby połączyć się z Torem.">
+<!ENTITY torSettings.configurePrompt "Kliknij "Konfiguruj", aby dostosować ustawienia sieci, jeśli jesteś w kraju, który cenzuruje Tora (np. Egipt, Chiny, Turcja) lub jeśli łączysz się z prywatną siecią, która wymaga serwera proxy.">
<!ENTITY torSettings.configure "Konfiguruj">
<!ENTITY torSettings.connect "Połącz">
@@ -25,9 +25,9 @@
<!ENTITY torsettings.optional "(opcjonalnie)">
-<!ENTITY torsettings.useProxy.checkbox "I use a proxy to connect to the Internet">
+<!ENTITY torsettings.useProxy.checkbox "Używam proxy do łączenia się z Internetem">
<!ENTITY torsettings.useProxy.type "Typ Proxy:">
-<!ENTITY torsettings.useProxy.type.placeholder "select a proxy type">
+<!ENTITY torsettings.useProxy.type.placeholder "wybierz typ proxy">
<!ENTITY torsettings.useProxy.address "Adres:">
<!ENTITY torsettings.useProxy.address.placeholder "Nazwa hosta lub adres IP">
<!ENTITY torsettings.useProxy.port "Port:">
@@ -39,24 +39,24 @@
<!ENTITY torsettings.firewall.checkbox "Ten komputer pozwala na połączenie z ustalonymi portami">
<!ENTITY torsettings.firewall.allowedPorts "Dozwolone porty:">
<!ENTITY torsettings.useBridges.checkbox "Tor jest ocenzurowany w moim kraju">
-<!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.default "Wybierz wbudowany most">
+<!ENTITY torsettings.useBridges.default.placeholder "wybierz most">
+<!ENTITY torsettings.useBridges.bridgeDB "Zażądaj mostu od torproject.org">
+<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Wprowadź znaki z obrazka">
+<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Uzyskaj nowe wyzwanie">
<!ENTITY torsettings.useBridges.captchaSubmit "Podsumowując">
-<!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 "Dostarcz mostek, który znam">
+<!ENTITY torsettings.useBridges.label "Wprowadź informacje o mostku z zaufanego źródła.">
+<!ENTITY torsettings.useBridges.placeholder "wpisz adres:port (po jednym w linii)">
<!ENTITY torsettings.copyLog "Skopiuj log do schowka">
-<!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 "Pomoc Proxy">
+<!ENTITY torsettings.proxyHelp1 "Lokalny serwer proxy może być potrzebny podczas łączenia się przez sieć firmową, szkolną lub uniwersytecką. Jeśli nie masz pewności, czy serwer proxy jest potrzebny, sprawdź ustawienia internetowe w innej przeglądarce lub sprawdź ustawienia sieciowe systemu.">
<!ENTITY torsettings.bridgeHelpTitle "Pomoc Przekaźników Mostkowych">
-<!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 "Mosty są zastrzeżonymi przekaźnikami, które utrudniają blokowanie połączeń z siecią Tor. Każdy rodzaj mostu wykorzystuje inną metodę unikania cenzury.  Obiekty obfs sprawiają, że twój ruch wygląda jak losowy szum, a łagodne połączenia sprawiają, że twój ruch wygląda jakbyś łączył się z tą usługą zamiast z Torem.">
+<!ENTITY torsettings.bridgeHelp2 "Ze względu na to, jak niektóre kraje próbują blokować Tora, niektóre mosty działają w niektórych krajach, ale nie w innych.  Jeśli nie masz pewności, które mosty działają w Twoim kraju, odwiedź torproject.org/about/contact.html#support">
<!-- Progress -->
<!ENTITY torprogress.pleaseWait "Proszę zaczekać, aż ustanowimy połączenie do sieci Tor.  To może zająć kilka minut.">
diff --git a/src/chrome/locale/pl/torlauncher.properties b/src/chrome/locale/pl/torlauncher.properties
index 356947b..32b912a 100644
--- a/src/chrome/locale/pl/torlauncher.properties
+++ b/src/chrome/locale/pl/torlauncher.properties
@@ -26,20 +26,20 @@ torlauncher.error_proxy_addr_missing=Musisz określić adres IP lub nazwę hosta
torlauncher.error_proxy_type_missing=Musisz wybrać typ proxy.
torlauncher.error_bridges_missing=Musisz podać jeden lub więcej mostów. (bridges)
torlauncher.error_default_bridges_type_missing=Musisz wybrać rodzaj transportu dla dostępnych mostów.
-torlauncher.error_bridgedb_bridges_missing=Please request a bridge.
+torlauncher.error_bridgedb_bridges_missing=Proszę poprosić o most.
torlauncher.error_bridge_bad_default_type=Brak dostępnych mostków, które mają typ transportu %S. Proszę zmienić swoje ustawienia.
-torlauncher.bridge_suffix.meek-amazon=(works in China)
-torlauncher.bridge_suffix.meek-azure=(works in China)
+torlauncher.bridge_suffix.meek-amazon=(działa w Chinach)
+torlauncher.bridge_suffix.meek-azure=(działa w Chinach)
-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=Poproś o most...
+torlauncher.request_a_new_bridge=Poproś o nowy most...
+torlauncher.contacting_bridgedb=Kontakt z BridgeDB. Proszę czekać.
+torlauncher.captcha_prompt=Rozwiąż CAPTCHA, aby poprosić o most.
+torlauncher.bad_captcha_solution=Rozwiązanie nie jest poprawne. Proszę spróbuj ponownie.
+torlauncher.unable_to_get_bridge=Nie można uzyskać mostu z BridgeDB.\n\n%S
+torlauncher.no_meek=Ta przeglądarka nie jest skonfigurowana dla połączeń, które są potrzebne do uzyskania mostów.
+torlauncher.no_bridges_available=W tej chwili nie są dostępne żadne mosty. Przepraszam.
torlauncher.connect=Połącz
torlauncher.restart_tor=Zrestartuj Tora
@@ -73,6 +73,6 @@ torlauncher.bootstrapWarning.noroute=brak trasy do hosta
torlauncher.bootstrapWarning.ioerror=błąd zapisu/odczytu
torlauncher.bootstrapWarning.pt_missing=brak podłączanego transportu
-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=Połączenie z serwerem zostało utracone.
+torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Nie można połączyć się z serwerem.
+torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Nie można połączyć się z serwerem proxy.
diff --git a/src/chrome/locale/sv/network-settings.dtd b/src/chrome/locale/sv/network-settings.dtd
index 8e67127..47473df 100644
--- a/src/chrome/locale/sv/network-settings.dtd
+++ b/src/chrome/locale/sv/network-settings.dtd
@@ -4,7 +4,7 @@
<!ENTITY torsettings.wizard.title.connecting "Etablerar en anslutning">
<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Språk i Tor-webbläsare">
+<!ENTITY torlauncher.localePicker.title "Språk i Tor Browser">
<!ENTITY torlauncher.localePicker.prompt "Välj ett språk.">
<!-- For "first run" wizard: -->
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Kopiera Tor-loggen till urklippet">
<!ENTITY torsettings.proxyHelpTitle "Proxy hjälp">
-<!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 "En lokal proxy kan behövas när du ansluter via ett företag, skola eller universitetsnätverk. Om du inte är säker på om en proxy behövs, titta på internetinställningarna i en annan webbläsare eller kontrollera systemets nätverksinställningar.">
<!ENTITY torsettings.bridgeHelpTitle "Hjälp om relä bryggor">
<!ENTITY torsettings.bridgeHelp1 "Bryggor är olistade reläer som gör det svårare att blockera anslutningar till Tor nätverket.   Var typ av brygga använder sig av olika metoder för att undvika censur.   Obfs gör att din trafik ser ut som brus och meek gör att din trafik ser ut som att du ansluter till tjänsten istället för Tor.">
diff --git a/src/chrome/locale/sv/torlauncher.properties b/src/chrome/locale/sv/torlauncher.properties
index 92800d7..406dfb9 100644
--- a/src/chrome/locale/sv/torlauncher.properties
+++ b/src/chrome/locale/sv/torlauncher.properties
@@ -3,8 +3,8 @@
torlauncher.error_title=Tor Launcher
-torlauncher.tor_exited_during_startup=Tor stängdes av under uppstart. Detta kan bero på ett fel i din torrc-fil, en bugg i Tor eller ett annat program på ditt system, eller ett hårdvarufel. Tills dess att du har fixat det underliggande problemet och startat om Tor, kommer Tor Browser inte starta.
-torlauncher.tor_exited=Tor stängdes oväntat ner. Det kan bero på en bugg i Tor eller i ett annat program på din dator, eller ett hårdvarufel. Tor Browser kommer inte kunna komma åt några sidor förrän du har startat om Tor. Om problemet återkommer, skicka en kopia på din Tor-logg till vår support.
+torlauncher.tor_exited_during_startup=Tor stängdes av under uppstart. Detta kan bero på ett fel i din torrc-fil, ett fel i Tor eller ett annat program på ditt system, eller ett hårdvarufel. Tills dess att du har åtgärdat det underliggande problemet och startat om Tor, kommer Tor Browser inte starta.
+torlauncher.tor_exited=Tor stängdes oväntat ner. Det kan bero på ett fel i Tor eller i ett annat program på din dator, eller ett hårdvarufel. Tor Browser kommer inte kunna komma åt några sidor förrän du har startat om Tor. Om problemet återkommer, skicka en kopia på din Tor-logg till vår support.
torlauncher.tor_exited2=Att starta om Tor kommer inte stänga några av dina flikar i webbläsaren.
torlauncher.tor_controlconn_failed=Kunde inte ansluta till Tors kontrollport.
torlauncher.tor_failed_to_start=Det gick inte att starta Tor.
diff --git a/src/chrome/locale/ur/network-settings.dtd b/src/chrome/locale/ur/network-settings.dtd
index debbd66..eeb35c3 100644
--- a/src/chrome/locale/ur/network-settings.dtd
+++ b/src/chrome/locale/ur/network-settings.dtd
@@ -23,7 +23,7 @@
<!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 "اختیاری">
<!ENTITY torsettings.useProxy.checkbox "I use a proxy to connect to the Internet">
<!ENTITY torsettings.useProxy.type "Proxy Type:">
diff --git a/src/chrome/locale/ur/torlauncher.properties b/src/chrome/locale/ur/torlauncher.properties
index a4d097a..caf020b 100644
--- a/src/chrome/locale/ur/torlauncher.properties
+++ b/src/chrome/locale/ur/torlauncher.properties
@@ -43,9 +43,9 @@ torlauncher.no_bridges_available=No bridges are available at this time. Sorry.
torlauncher.connect=Connect
torlauncher.restart_tor=Restart Tor
-torlauncher.quit=Quit
+torlauncher.quit=چھوڑدیجیے (Quit)
torlauncher.quit_win=Exit
-torlauncher.done=Done
+torlauncher.done=مکمل ہوگیا
torlauncher.forAssistance=For assistance, contact %S
torlauncher.forAssistance2=For assistance, visit %S
@@ -59,7 +59,7 @@ 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.conn_or=ٹار نیٹ ورکس سے رابطہ بنائیں
torlauncher.bootstrapStatus.handshake_or=Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
1
0

28 Nov '18
commit 3378261a8cce3a8e1d908c8b73ee448ec572bec4
Author: Georg Koppen <gk(a)torproject.org>
Date: Wed Nov 28 13:38:28 2018 +0000
Update rbm to pick up fix for #28466
---
rbm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rbm b/rbm
index 8adbc46..eb500fa 160000
--- a/rbm
+++ b/rbm
@@ -1 +1 @@
-Subproject commit 8adbc46dc9e8358abad75ac81faf4646d8165b9e
+Subproject commit eb500fa9467fb4d7229c9ca87f202ef18603d023
1
0

28 Nov '18
commit eb500fa9467fb4d7229c9ca87f202ef18603d023
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Mon Nov 26 11:49:25 2018 +0100
Bug 28466: fix issue with git submodule URL changes
We replace a call to:
git submodule update --init
with calls to:
git submodule init
git submodule sync
git submodule update
The call to `git submodule sync` is solving the issue that could occur
when a submodule URL is changing.
---
lib/RBM.pm | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/lib/RBM.pm b/lib/RBM.pm
index 8875a7c..3ef20ae 100644
--- a/lib/RBM.pm
+++ b/lib/RBM.pm
@@ -474,10 +474,12 @@ sub execute {
= capture_exec('git', 'checkout', $git_hash);
exit_error "Cannot checkout $git_hash:\n$stderr" unless $success;
if (project_config($project, 'git_submodule', $options)) {
- ($stdout, $stderr, $success, $exit_code)
- = capture_exec('git', 'submodule', 'update', '--init');
- exit_error "Error running git submodule update:\n$stderr"
- unless $success;
+ foreach my $action (qw(init sync update)) {
+ ($stdout, $stderr, $success, $exit_code)
+ = capture_exec('git', 'submodule', $action);
+ exit_error "Error running git submodule $action\n$stderr"
+ unless $success;
+ }
}
} elsif (project_config($project, 'hg_url', $options)) {
my $hg_hash = project_config($project, 'hg_hash', $options)
@@ -550,10 +552,12 @@ sub maketar {
my ($stdout, $stderr, $success, $exit_code)
= capture_exec('git', 'checkout', $commit_hash);
exit_error "Cannot checkout $commit_hash: $stderr" unless $success;
- ($stdout, $stderr, $success, $exit_code)
- = capture_exec('git', 'submodule', 'update', '--init');
- exit_error "Error running git submodule update:\n$stderr"
- unless $success;
+ foreach my $action (qw(init sync update)) {
+ ($stdout, $stderr, $success, $exit_code)
+ = capture_exec('git', 'submodule', $action);
+ exit_error "Error running git submodule $action\n$stderr"
+ unless $success;
+ }
($stdout, $stderr, $success, $exit_code)
= capture_exec('git', 'submodule', 'foreach',
"git archive --prefix=$project-$version/\$path/"
1
0
commit dc85b56f80732893cf68e8e636948d3fc187990d
Author: Georg Koppen <gk(a)torproject.org>
Date: Tue Nov 27 21:23:02 2018 +0000
Translations update
---
src/chrome/locale/ar/aboutTor.dtd | 5 +++++
src/chrome/locale/bn-BD/aboutTor.dtd | 5 +++++
src/chrome/locale/ca/aboutTor.dtd | 13 +++++++++----
src/chrome/locale/cs/aboutTor.dtd | 5 +++++
src/chrome/locale/da/aboutTor.dtd | 5 +++++
src/chrome/locale/de/aboutTor.dtd | 5 +++++
src/chrome/locale/el/aboutTor.dtd | 5 +++++
src/chrome/locale/es/aboutTor.dtd | 5 +++++
src/chrome/locale/eu/aboutTor.dtd | 5 +++++
src/chrome/locale/fa/aboutTor.dtd | 5 +++++
src/chrome/locale/fa/browserOnboarding.properties | 2 +-
src/chrome/locale/fr/aboutTor.dtd | 7 ++++++-
src/chrome/locale/fr/browserOnboarding.properties | 2 +-
src/chrome/locale/ga/aboutTor.dtd | 5 +++++
src/chrome/locale/he/aboutTor.dtd | 5 +++++
src/chrome/locale/hu/aboutTor.dtd | 5 +++++
src/chrome/locale/id/aboutTor.dtd | 5 +++++
src/chrome/locale/is/aboutTor.dtd | 5 +++++
src/chrome/locale/it/aboutTor.dtd | 5 +++++
src/chrome/locale/ja/aboutTor.dtd | 5 +++++
src/chrome/locale/ja/browserOnboarding.properties | 20 ++++++++++----------
src/chrome/locale/ka/aboutTor.dtd | 5 +++++
src/chrome/locale/ka/torbutton.properties | 4 ++--
src/chrome/locale/ko/aboutTor.dtd | 5 +++++
src/chrome/locale/nb/aboutTor.dtd | 5 +++++
src/chrome/locale/nl/aboutTor.dtd | 5 +++++
src/chrome/locale/pl/aboutTBUpdate.dtd | 4 ++--
src/chrome/locale/pl/aboutTor.dtd | 13 +++++++++----
src/chrome/locale/pl/browserOnboarding.properties | 2 +-
src/chrome/locale/pl/torbutton.dtd | 18 +++++++++---------
src/chrome/locale/pl/torbutton.properties | 6 +++---
src/chrome/locale/pt-BR/aboutTor.dtd | 5 +++++
src/chrome/locale/ru/aboutTor.dtd | 5 +++++
src/chrome/locale/sv/aboutTor.dtd | 5 +++++
src/chrome/locale/sv/torbutton.properties | 2 +-
src/chrome/locale/tr/aboutTor.dtd | 5 +++++
src/chrome/locale/vi/aboutTor.dtd | 5 +++++
src/chrome/locale/zh-CN/aboutTor.dtd | 5 +++++
src/chrome/locale/zh-TW/aboutTor.dtd | 5 +++++
39 files changed, 189 insertions(+), 39 deletions(-)
diff --git a/src/chrome/locale/ar/aboutTor.dtd b/src/chrome/locale/ar/aboutTor.dtd
index 183d47f8..7fda4740 100644
--- a/src/chrome/locale/ar/aboutTor.dtd
+++ b/src/chrome/locale/ar/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "احم خصوصية الملايين.">
<!ENTITY aboutTor.donationBanner.line2e "حافظ على قوة تور.">
<!ENTITY aboutTor.donationBanner.line2f "نحتاج دعمك.">
+<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
+<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
+<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
<!ENTITY aboutTor.donationBanner.line3 "تبرع اليوم، وستجاريك موزيلا وتبرع بنفس المبلغ.">
+<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
<!ENTITY aboutTor.donationBanner.buttonA "تبرع الآن">
<!ENTITY aboutTor.donationBanner.buttonB "سأشارك">
diff --git a/src/chrome/locale/bn-BD/aboutTor.dtd b/src/chrome/locale/bn-BD/aboutTor.dtd
index a7458617..fdac71be 100644
--- a/src/chrome/locale/bn-BD/aboutTor.dtd
+++ b/src/chrome/locale/bn-BD/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "লাখো লোকের ব্যক্তিগত গোপনীয়তা রক্ষা করুন। ">
<!ENTITY aboutTor.donationBanner.line2e "টরকে শক্তিশালী রাখুন। ">
<!ENTITY aboutTor.donationBanner.line2f "আপনাদের সাহায্য দরকার! ">
+<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
+<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
+<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
<!ENTITY aboutTor.donationBanner.line3 "অর্থ সাহায্য করুন, এবং মজিলা সমপরিমাণ সাহায্য করবে। ">
+<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
<!ENTITY aboutTor.donationBanner.buttonA "এখুনি দান করুন! ">
<!ENTITY aboutTor.donationBanner.buttonB "আমাকেও সাথে নিন">
diff --git a/src/chrome/locale/ca/aboutTor.dtd b/src/chrome/locale/ca/aboutTor.dtd
index 91132da8..878ce7ad 100644
--- a/src/chrome/locale/ca/aboutTor.dtd
+++ b/src/chrome/locale/ca/aboutTor.dtd
@@ -30,13 +30,18 @@
<!ENTITY aboutTor.donationBanner.line1 "Tor: Strength in Numbers">
<!ENTITY aboutTor.donationBanner.line2a "Anonymity loves company.">
-<!ENTITY aboutTor.donationBanner.line2b "Advance universal human rights.">
+<!ENTITY aboutTor.donationBanner.line2b "Avançats drets humans universals.">
<!ENTITY aboutTor.donationBanner.line2c "Stand up for freedom.">
-<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
+<!ENTITY aboutTor.donationBanner.line2d "Protegeix la privacitat de milions.">
<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
-<!ENTITY aboutTor.donationBanner.line2f "We need your support!">
+<!ENTITY aboutTor.donationBanner.line2f "Necessitem el teu suport!">
+<!ENTITY aboutTor.donationBanner.line2g "Recolça la llibertat a internet.">
+<!ENTITY aboutTor.donationBanner.line2h "Defensa la web oberta.">
+<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
+<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
<!ENTITY aboutTor.donationBanner.buttonA "Donate Now">
-<!ENTITY aboutTor.donationBanner.buttonB "Count Me In">
+<!ENTITY aboutTor.donationBanner.buttonB "Compta amb mi">
diff --git a/src/chrome/locale/cs/aboutTor.dtd b/src/chrome/locale/cs/aboutTor.dtd
index 7c5ba384..31ccf6bd 100644
--- a/src/chrome/locale/cs/aboutTor.dtd
+++ b/src/chrome/locale/cs/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "Chráníme soukromí milionů lidí.">
<!ENTITY aboutTor.donationBanner.line2e "Pomozte Toru sílit.">
<!ENTITY aboutTor.donationBanner.line2f "Potřebujeme vaši podporu!">
+<!ENTITY aboutTor.donationBanner.line2g "Podpořte svobodu internetu.">
+<!ENTITY aboutTor.donationBanner.line2h "Braňte otevřený web.">
+<!ENTITY aboutTor.donationBanner.line2i "Podpořte online soukromí a svobodu.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla dorovná každý příspěvek až do začátku roku 2019.">
<!ENTITY aboutTor.donationBanner.line3 "Přispějte hned a Mozilla vás dar zdvojnásobí.">
+<!ENTITY aboutTor.donationBanner.line3b "Pošlete příspěvek a ten se zdvojnásobí.">
<!ENTITY aboutTor.donationBanner.buttonA "Přispějte">
<!ENTITY aboutTor.donationBanner.buttonB "Jdu do toho">
diff --git a/src/chrome/locale/da/aboutTor.dtd b/src/chrome/locale/da/aboutTor.dtd
index 7a2df3b0..ba40ff02 100644
--- a/src/chrome/locale/da/aboutTor.dtd
+++ b/src/chrome/locale/da/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "Beskyt privatlivet af millioner.">
<!ENTITY aboutTor.donationBanner.line2e "Hold Tor stærk.">
<!ENTITY aboutTor.donationBanner.line2f "Vi har brug for din støtte!">
+<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
+<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
+<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
<!ENTITY aboutTor.donationBanner.line3 "Giv i dag, og Mozilla vil matche din donation.">
+<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
<!ENTITY aboutTor.donationBanner.buttonA "Donér nu">
<!ENTITY aboutTor.donationBanner.buttonB "Jeg er med">
diff --git a/src/chrome/locale/de/aboutTor.dtd b/src/chrome/locale/de/aboutTor.dtd
index 6c43e2c6..0ffc979f 100644
--- a/src/chrome/locale/de/aboutTor.dtd
+++ b/src/chrome/locale/de/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "Schütze die Privatsphäre von Millionen Menschen.">
<!ENTITY aboutTor.donationBanner.line2e "Mache Tor stark.">
<!ENTITY aboutTor.donationBanner.line2f "Wir brauchen deine Unterstützung.">
+<!ENTITY aboutTor.donationBanner.line2g "Unterstütze Internetfreiheit.">
+<!ENTITY aboutTor.donationBanner.line2h "Verteidige das offene Netz.">
+<!ENTITY aboutTor.donationBanner.line2i "Unterstütze Datenschutz und Freiheit im Internet.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla unterstützt jede Spende bis 2019.">
<!ENTITY aboutTor.donationBanner.line3 "Gib noch heute, und Mozilla wird deiner Spende entsprechen.">
+<!ENTITY aboutTor.donationBanner.line3b "Spende jetzt, und dein Geschenk wird doppelt so stark.">
<!ENTITY aboutTor.donationBanner.buttonA "Spende jetzt">
<!ENTITY aboutTor.donationBanner.buttonB "Zähl mich mit">
diff --git a/src/chrome/locale/el/aboutTor.dtd b/src/chrome/locale/el/aboutTor.dtd
index 96301e2a..d93a5a5a 100644
--- a/src/chrome/locale/el/aboutTor.dtd
+++ b/src/chrome/locale/el/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "Προστατέψτε την ιδιωτικότητα εκατομμυρίων.">
<!ENTITY aboutTor.donationBanner.line2e "Διατηρήστε το Tor ισχυρό.">
<!ENTITY aboutTor.donationBanner.line2f "Χρειαζόμαστε την υποστήριξη σας!">
+<!ENTITY aboutTor.donationBanner.line2g "Στηρίξτε την ελευθερία στο διαδίκτυο.">
+<!ENTITY aboutTor.donationBanner.line2h "Υπερασπιστείτε τον ανοιχτό ιστό.">
+<!ENTITY aboutTor.donationBanner.line2i "Στηρίξτε την ιδιωτικότητα και την ελευθερία στο διαδίκτυο.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
<!ENTITY aboutTor.donationBanner.line3 "Δωρίστε σήμερα και το Mozilla θα δωρίσει το ίδιο ποσό!">
+<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
<!ENTITY aboutTor.donationBanner.buttonA "Κάντε μια δωρεά τώρα!">
<!ENTITY aboutTor.donationBanner.buttonB "Υπολογίστε με">
diff --git a/src/chrome/locale/es/aboutTor.dtd b/src/chrome/locale/es/aboutTor.dtd
index b20f45d5..2bb31865 100644
--- a/src/chrome/locale/es/aboutTor.dtd
+++ b/src/chrome/locale/es/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "Protege la privacidad de millones de personas.">
<!ENTITY aboutTor.donationBanner.line2e "Mantén fuerte a Tor.">
<!ENTITY aboutTor.donationBanner.line2f "Necesitamos tu apoyo.">
+<!ENTITY aboutTor.donationBanner.line2g "Apoya la libertad en internet">
+<!ENTITY aboutTor.donationBanner.line2h "Defiende la web abierta">
+<!ENTITY aboutTor.donationBanner.line2i "Apoya la privacidad y la libertad en línea.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla donará una cantidad idéntica a cada donación hasta 2019.">
<!ENTITY aboutTor.donationBanner.line3 "Dona hoy, y Mozilla igualará tu donación.">
+<!ENTITY aboutTor.donationBanner.line3b "Dona ahora, y tu donación se duplicará.">
<!ENTITY aboutTor.donationBanner.buttonA "Dona ahora.">
<!ENTITY aboutTor.donationBanner.buttonB "Cuenta conmigo.">
diff --git a/src/chrome/locale/eu/aboutTor.dtd b/src/chrome/locale/eu/aboutTor.dtd
index 24acba36..9f1224bb 100644
--- a/src/chrome/locale/eu/aboutTor.dtd
+++ b/src/chrome/locale/eu/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
<!ENTITY aboutTor.donationBanner.line2f "We need your support!">
+<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
+<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
+<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
+<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
<!ENTITY aboutTor.donationBanner.buttonA "Donate Now">
<!ENTITY aboutTor.donationBanner.buttonB "Count Me In">
diff --git a/src/chrome/locale/fa/aboutTor.dtd b/src/chrome/locale/fa/aboutTor.dtd
index da917341..2f572883 100644
--- a/src/chrome/locale/fa/aboutTor.dtd
+++ b/src/chrome/locale/fa/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "از حریم خصوصی میلیونها محافظت کنید">
<!ENTITY aboutTor.donationBanner.line2e "تور را محکم نگه دارید.">
<!ENTITY aboutTor.donationBanner.line2f "ما به حمایت شما نیاز داریم!">
+<!ENTITY aboutTor.donationBanner.line2g "از آزادی اینترنت پشتیبانی کنید.">
+<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
+<!ENTITY aboutTor.donationBanner.line2i "از حریم شخصی و آزادی برخط دفاع کنید.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
+<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
<!ENTITY aboutTor.donationBanner.buttonA "اکنون اهداء کنید">
<!ENTITY aboutTor.donationBanner.buttonB "روی من حساب کن">
diff --git a/src/chrome/locale/fa/browserOnboarding.properties b/src/chrome/locale/fa/browserOnboarding.properties
index 2dcbded9..3845e2ee 100644
--- a/src/chrome/locale/fa/browserOnboarding.properties
+++ b/src/chrome/locale/fa/browserOnboarding.properties
@@ -12,7 +12,7 @@ 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.button=به شبکه تور برو
-onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network=شبکه تور
onboarding.tour-tor-network.title=Travel a decentralized network.
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.button=Go to Circuit Display
diff --git a/src/chrome/locale/fr/aboutTor.dtd b/src/chrome/locale/fr/aboutTor.dtd
index 959842c6..69dcd0f8 100644
--- a/src/chrome/locale/fr/aboutTor.dtd
+++ b/src/chrome/locale/fr/aboutTor.dtd
@@ -8,7 +8,7 @@
<!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 "Une erreur s’est produite !">
+<!ENTITY aboutTor.failure.label "Un problème est survenu !">
<!ENTITY aboutTor.failure2.label "Tor ne fonctionne pas dans ce navigateur.">
<!ENTITY aboutTor.search.label "Chercher avec DuckDuckGo">
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "Protéger la vie privée de millions de personnes.">
<!ENTITY aboutTor.donationBanner.line2e "Assurer la robustesse de Tor.">
<!ENTITY aboutTor.donationBanner.line2f "Nous avons besoin de votre soutien !">
+<!ENTITY aboutTor.donationBanner.line2g "Soutenez la liberté sur Internet.">
+<!ENTITY aboutTor.donationBanner.line2h "Défendez le web ouvert.">
+<!ENTITY aboutTor.donationBanner.line2i "Prise en charge de la vie privée et de la liberté en ligne.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla s'engage à verser un montant équivalent à chaque don jusqu'en 2019.">
<!ENTITY aboutTor.donationBanner.line3 "Faites un don aujourd’hui et Mozilla fera un don équivalent.">
+<!ENTITY aboutTor.donationBanner.line3b "Donnez maintenant, et votre don devient deux fois plus fort.">
<!ENTITY aboutTor.donationBanner.buttonA "Faites un don maintenant">
<!ENTITY aboutTor.donationBanner.buttonB "Comptez sur moi">
diff --git a/src/chrome/locale/fr/browserOnboarding.properties b/src/chrome/locale/fr/browserOnboarding.properties
index 8fe3650a..28065b44 100644
--- a/src/chrome/locale/fr/browserOnboarding.properties
+++ b/src/chrome/locale/fr/browserOnboarding.properties
@@ -27,7 +27,7 @@ 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-expect-differences=Informations concernant l’expérience
+onboarding.tour-tor-expect-differences=Conseils sur l’expérience
onboarding.tour-tor-expect-differences.title=Attendez-vous à des différences.
onboarding.tour-tor-expect-differences.description=Avec toutes les fonctions de sécurité et de confidentialité offertes par Tor, votre expérience de navigation sur Internet pourrait être un peu différente. Les choses pourraient être un peu plus lentes et selon votre niveau de sécurité, certains éléments pourraient ne pas fonctionner ou ne pas se charger. On pourrait aussi vous demander de prouver que vous êtes un humain et non un robot.
onboarding.tour-tor-expect-differences.button=Consulter les FAQ
diff --git a/src/chrome/locale/ga/aboutTor.dtd b/src/chrome/locale/ga/aboutTor.dtd
index a2c65352..1978847e 100644
--- a/src/chrome/locale/ga/aboutTor.dtd
+++ b/src/chrome/locale/ga/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "Cosain príobháideachas na milliún duine.">
<!ENTITY aboutTor.donationBanner.line2e "Cuir taca le Tor.">
<!ENTITY aboutTor.donationBanner.line2f "Tá do chúnamh de dhíth orainn!">
+<!ENTITY aboutTor.donationBanner.line2g "Tacaigh le saoirse ar an idirlíon.">
+<!ENTITY aboutTor.donationBanner.line2h "Seas an fód ar son an Ghréasáin oscailte">
+<!ENTITY aboutTor.donationBanner.line2i "Tacaigh le príobháideachas agus le saoirse ar líne.">
+<!ENTITY aboutTor.donationBanner.line2j "Tá Mozilla ag meaitseáil gach euro a bhronntar orainn go dtí 2019.">
<!ENTITY aboutTor.donationBanner.line3 "Tabhair síntiús airgid inniu agus tabharfaidh Mozilla an méid céanna arís dúinn.">
+<!ENTITY aboutTor.donationBanner.line3b "Beidh do bhronntanas airgid dhá uair níos láidre.">
<!ENTITY aboutTor.donationBanner.buttonA "Tabhair síntiús airgid anois">
<!ENTITY aboutTor.donationBanner.buttonB "Cuir mise san áireamh">
diff --git a/src/chrome/locale/he/aboutTor.dtd b/src/chrome/locale/he/aboutTor.dtd
index e4659b67..81a4386f 100644
--- a/src/chrome/locale/he/aboutTor.dtd
+++ b/src/chrome/locale/he/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "הגן על פרטיותם של מיליונים.">
<!ENTITY aboutTor.donationBanner.line2e "שמור על Tor חזק.">
<!ENTITY aboutTor.donationBanner.line2f "אנחנו צריכים את תמיכתך!">
+<!ENTITY aboutTor.donationBanner.line2g "תמוך בחירות אינטרנט.">
+<!ENTITY aboutTor.donationBanner.line2h "הגן על הרשת הפתוחה.">
+<!ENTITY aboutTor.donationBanner.line2i "תמוך בפרטיות ובחירות באופן מקוון.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla משווה כל תרומה עד 2019.">
<!ENTITY aboutTor.donationBanner.line3 "תן היום, ו־Mozilla תשווה את תרומתך.">
+<!ENTITY aboutTor.donationBanner.line3b "תן עכשיו, והמתנה שלך הופכת לחזקה פי שניים.">
<!ENTITY aboutTor.donationBanner.buttonA "תרום עכשיו">
<!ENTITY aboutTor.donationBanner.buttonB "החשב אותי">
diff --git a/src/chrome/locale/hu/aboutTor.dtd b/src/chrome/locale/hu/aboutTor.dtd
index 6ac1ae1d..cbc0c571 100644
--- a/src/chrome/locale/hu/aboutTor.dtd
+++ b/src/chrome/locale/hu/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "Védi milliók magánéletét.">
<!ENTITY aboutTor.donationBanner.line2e "Tartsuk a Tor-t erősnek.">
<!ENTITY aboutTor.donationBanner.line2f "Szükségünk van a támogatására!">
+<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
+<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
+<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
<!ENTITY aboutTor.donationBanner.line3 "Adjon ma és a Mozilla is annyival támogat.">
+<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
<!ENTITY aboutTor.donationBanner.buttonA "Támogasson most">
<!ENTITY aboutTor.donationBanner.buttonB "Számítsatok bele">
diff --git a/src/chrome/locale/id/aboutTor.dtd b/src/chrome/locale/id/aboutTor.dtd
index 7d56a131..9370e3ad 100644
--- a/src/chrome/locale/id/aboutTor.dtd
+++ b/src/chrome/locale/id/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
<!ENTITY aboutTor.donationBanner.line2f "We need your support!">
+<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
+<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
+<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
+<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
<!ENTITY aboutTor.donationBanner.buttonA "Donate Now">
<!ENTITY aboutTor.donationBanner.buttonB "Count Me In">
diff --git a/src/chrome/locale/is/aboutTor.dtd b/src/chrome/locale/is/aboutTor.dtd
index cc2317c5..0fd4f643 100644
--- a/src/chrome/locale/is/aboutTor.dtd
+++ b/src/chrome/locale/is/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "Verndum friðhelgi milljóna manna.">
<!ENTITY aboutTor.donationBanner.line2e "Höldum Tor sterku">
<!ENTITY aboutTor.donationBanner.line2f "Við þörfnumst stuðnings þíns!">
+<!ENTITY aboutTor.donationBanner.line2g "Stattu með frelsi á netinu.">
+<!ENTITY aboutTor.donationBanner.line2h "Verðu hinn opna vef.">
+<!ENTITY aboutTor.donationBanner.line2i "Verðu rétt þinn til einkalífs og frelsis á netinu.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla jafnar upp hvert fjárframlag allt til 2019.">
<!ENTITY aboutTor.donationBanner.line3 "Gefðu í dag - og Mozilla mun jafna framlag þitt.">
+<!ENTITY aboutTor.donationBanner.line3b "Gefðu upphæð núna - og gjöfin þín mun tvöfaldast.">
<!ENTITY aboutTor.donationBanner.buttonA "Styrkja núna">
<!ENTITY aboutTor.donationBanner.buttonB "Reiknið með mér">
diff --git a/src/chrome/locale/it/aboutTor.dtd b/src/chrome/locale/it/aboutTor.dtd
index f023c259..128a95bd 100644
--- a/src/chrome/locale/it/aboutTor.dtd
+++ b/src/chrome/locale/it/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "Protegge la privacy di milioni.">
<!ENTITY aboutTor.donationBanner.line2e "Mantieni Tor forte.">
<!ENTITY aboutTor.donationBanner.line2f "Abbiamo bisogno del tuo supporto!">
+<!ENTITY aboutTor.donationBanner.line2g "Supporta la libertà di internet.">
+<!ENTITY aboutTor.donationBanner.line2h "Difendi il web aperto.">
+<!ENTITY aboutTor.donationBanner.line2i "Sostieni la privacy e la libertà online.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
<!ENTITY aboutTor.donationBanner.line3 "Dai oggi, e Mozilla ricambierà la tua donazione.">
+<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
<!ENTITY aboutTor.donationBanner.buttonA "Dona Ora">
<!ENTITY aboutTor.donationBanner.buttonB "Contami">
diff --git a/src/chrome/locale/ja/aboutTor.dtd b/src/chrome/locale/ja/aboutTor.dtd
index 19a54e77..e5c0d7ea 100644
--- a/src/chrome/locale/ja/aboutTor.dtd
+++ b/src/chrome/locale/ja/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
<!ENTITY aboutTor.donationBanner.line2f "我々にはあなたのサポートが必要です!">
+<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
+<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
+<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
+<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
<!ENTITY aboutTor.donationBanner.buttonA "今すぐ寄付">
<!ENTITY aboutTor.donationBanner.buttonB "Count Me In">
diff --git a/src/chrome/locale/ja/browserOnboarding.properties b/src/chrome/locale/ja/browserOnboarding.properties
index e3f09909..230123cf 100644
--- a/src/chrome/locale/ja/browserOnboarding.properties
+++ b/src/chrome/locale/ja/browserOnboarding.properties
@@ -3,19 +3,19 @@
# vim: set sw=2 sts=2 ts=8 et:
onboarding.tour-tor-welcome=ようこそ
-onboarding.tour-tor-welcome.title=You’re ready.
-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.title=準備できました。
+onboarding.tour-tor-welcome.description=Torブラウザは、ウェブブラウジング中に、最高水準のプライバシーとセキュリティを提供します。あなたは現在、トラッキング、監視、および検閲から保護されています。このクイックのオンボードは方法を提示します。
onboarding.tour-tor-welcome.button=今すぐ開始
onboarding.tour-tor-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.button=Go to Tor Network
+onboarding.tour-tor-privacy.title=トラッカーとスヌーパーを追い払う。
+onboarding.tour-tor-privacy.description=Torブラウザは、cookieを分離し、セッション後にブラウザの履歴を削除します。これらの変更により、あなたのプライバシーとセキュリティがブラウザによって保護されます。ネットワークレベルでの保護方法については、「Torネットワーク」をクリックしてください。
+onboarding.tour-tor-privacy.button=Torネットワークへ
onboarding.tour-tor-network=Torネットワーク
onboarding.tour-tor-network.title=Travel a decentralized network.
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.button=Go to Circuit Display
+onboarding.tour-tor-network.button=次のページへ
onboarding.tour-tor-circuit-display=Circuit Display
onboarding.tour-tor-circuit-display.title=See your path.
@@ -25,17 +25,17 @@ 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.button=設定の確認
onboarding.tour-tor-expect-differences=Experience Tips
onboarding.tour-tor-expect-differences.title=Expect some differences.
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.button=よくある質問を見る
-onboarding.tour-tor-onion-services=Onion Services
-onboarding.tour-tor-onion-services.title=Be extra protected.
+onboarding.tour-tor-onion-services=Onion サービス
+onboarding.tour-tor-onion-services.title=更なる保護。
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.button=Onionサイトを訪問
# Circuit Display onboarding.
onboarding.tor-circuit-display.next=次へ
diff --git a/src/chrome/locale/ka/aboutTor.dtd b/src/chrome/locale/ka/aboutTor.dtd
index f6b9dd76..3b5bdad3 100644
--- a/src/chrome/locale/ka/aboutTor.dtd
+++ b/src/chrome/locale/ka/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "დაიცავით მილიონობით ადამიანის პირადი მონაცემები.">
<!ENTITY aboutTor.donationBanner.line2e "შეინარჩუნეთ Tor ძლიერი.">
<!ENTITY aboutTor.donationBanner.line2f "ჩვენ გვესაჭიროება თქვენი გვერდში დგომა!">
+<!ENTITY aboutTor.donationBanner.line2g "მხარი დაუჭირეთ თავისუფალ ინტერნეტს.">
+<!ENTITY aboutTor.donationBanner.line2h "დაიცავით ინტერნეტის ღიაობა.">
+<!ENTITY aboutTor.donationBanner.line2i "მხარი დაუჭირეთ პირადი მონაცემების ხელშეუხებლობისა და თავისუფლების უზრუნველყოფას ინტერნეტსივრცეში.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla გააორმაგებს თითოეულ შემოწირულ შენატანს 2019 წლამდე.">
<!ENTITY aboutTor.donationBanner.line3 "გაეცით დღესვე და Mozilla გააორმაგებს თქვენს შემოწირულობას.">
+<!ENTITY aboutTor.donationBanner.line3b "გაეცით თანხა ახლავე და თქვენი შემოწირულობა ორჯერ მეტად მძლავრი იქნება.">
<!ENTITY aboutTor.donationBanner.buttonA "თანხის გაღება ახლავე">
<!ENTITY aboutTor.donationBanner.buttonB "ჩემი წვლილის აღნიშვნა">
diff --git a/src/chrome/locale/ka/torbutton.properties b/src/chrome/locale/ka/torbutton.properties
index cbe0d8b0..e025bfde 100644
--- a/src/chrome/locale/ka/torbutton.properties
+++ b/src/chrome/locale/ka/torbutton.properties
@@ -45,8 +45,8 @@ canvas.neverAccessKey=რ
# Profile/startup error messages. Strings are kept here for ease of translation.
# LOCALIZATION NOTE: %S is the application name.
profileProblemTitle=%S პროფილის ხარვეზი
-profileReadOnly=თქვენ ვერ შეძლებთ გაუშვათ %S მხოლოდ წაკითხვის შესაძლებლობის მქონე საფაილო სისტემიდან. გთხოვთ, გადააკოპიროთ %S სხვა ადგილზე, გამოყენებამდე.
-profileReadOnlyMac=თქვენ ვერ შეძლებთ გაუშვათ %S მხოლოდ წაკითხვის შესაძლებლობის მქონე საფაილო სისტემიდან. გთხოვთ, გადააკოპიროთ %S თქვენს მთავარ ეკრანის ან პროგრამების საქაღალდეში, მის გამოყენებამდე.
+profileReadOnly=თქვენ ვერ შეძლებთ გაუშვათ %S მხოლოდ წაკითხვის შესაძლებლობის მქონე საფაილო სისტემიდან. გთხოვთ, %S-ის ასლი შექმნათ სხვა ადგილზე, გამოყენებამდე.
+profileReadOnlyMac=თქვენ ვერ შეძლებთ გაუშვათ %S მხოლოდ წაკითხვის შესაძლებლობის მქონე საფაილო სისტემიდან. გთხოვთ, %S-ის ასლი შექმნათ თქვენს მთავარ ეკრანის ან პროგრამების საქაღალდეში, მის გამოყენებამდე.
profileAccessDenied=%S-ს არ გააჩნია პროფილთან წვდომის ნებართვა. გთხოვთ, სათანადოდ გამართოთ თქვენი საფაილო სისტემის ნებართვები და სცადოთ ხელახლა.
profileMigrationFailed=თქვენი არსებული %S პროფილის გადატანა ვერ მოხერხდა.\nგამოყენებული იქნება ახალი პარამეტრები.
diff --git a/src/chrome/locale/ko/aboutTor.dtd b/src/chrome/locale/ko/aboutTor.dtd
index 8c8065a5..cf8143ab 100644
--- a/src/chrome/locale/ko/aboutTor.dtd
+++ b/src/chrome/locale/ko/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
<!ENTITY aboutTor.donationBanner.line2f "We need your support!">
+<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
+<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
+<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
+<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
<!ENTITY aboutTor.donationBanner.buttonA "Donate Now">
<!ENTITY aboutTor.donationBanner.buttonB "Count Me In">
diff --git a/src/chrome/locale/nb/aboutTor.dtd b/src/chrome/locale/nb/aboutTor.dtd
index d5899000..a5e61845 100644
--- a/src/chrome/locale/nb/aboutTor.dtd
+++ b/src/chrome/locale/nb/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
<!ENTITY aboutTor.donationBanner.line2f "We need your support!">
+<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
+<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
+<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
+<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
<!ENTITY aboutTor.donationBanner.buttonA "Donate Now">
<!ENTITY aboutTor.donationBanner.buttonB "Count Me In">
diff --git a/src/chrome/locale/nl/aboutTor.dtd b/src/chrome/locale/nl/aboutTor.dtd
index 4b462d6c..8929fc65 100644
--- a/src/chrome/locale/nl/aboutTor.dtd
+++ b/src/chrome/locale/nl/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "Bescherm de privacy van miljoenen.">
<!ENTITY aboutTor.donationBanner.line2e "Houdt Tor sterk.">
<!ENTITY aboutTor.donationBanner.line2f "We hebben jouw ondersteuning nodig!">
+<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
+<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
+<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
<!ENTITY aboutTor.donationBanner.line3 "Geef vandaag, en Mozilla geeft hetzelfde bedrag.">
+<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
<!ENTITY aboutTor.donationBanner.buttonA "Geef Nu">
<!ENTITY aboutTor.donationBanner.buttonB "Ik Doe Mee">
diff --git a/src/chrome/locale/pl/aboutTBUpdate.dtd b/src/chrome/locale/pl/aboutTBUpdate.dtd
index d2900789..c227f7d1 100644
--- a/src/chrome/locale/pl/aboutTBUpdate.dtd
+++ b/src/chrome/locale/pl/aboutTBUpdate.dtd
@@ -5,6 +5,6 @@
<!ENTITY aboutTBUpdate.linkSuffix ".">
<!ENTITY aboutTBUpdate.changeLogHeading "Lista zmian:">
-<!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.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">
diff --git a/src/chrome/locale/pl/aboutTor.dtd b/src/chrome/locale/pl/aboutTor.dtd
index 53d22a06..31df7d7b 100644
--- a/src/chrome/locale/pl/aboutTor.dtd
+++ b/src/chrome/locale/pl/aboutTor.dtd
@@ -6,19 +6,19 @@
<!ENTITY aboutTor.title "Informacje na temat Tor'a">
-<!ENTITY aboutTor.ready.label "Explore. Privately.">
+<!ENTITY aboutTor.ready.label "Odkrywaj. Prywatnie.">
<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
<!ENTITY aboutTor.failure.label "Coś poszło nie tak!">
<!ENTITY aboutTor.failure2.label "Tor nie działa w tej przeglądarce.">
-<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
+<!ENTITY aboutTor.search.label "Wyszukaj z DuckDuckGo">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
<!ENTITY aboutTor.torbrowser_user_manual_questions.label "Pytania?">
-<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Sprawdź naszą instrukcje korzystania z przeglądarki Tor »">
<!-- 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 Manual">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Instrukcja korzystania z Tor Browser">
<!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.getInvolved.label "Get Involved »">
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
<!ENTITY aboutTor.donationBanner.line2f "We need your support!">
+<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
+<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
+<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
<!ENTITY aboutTor.donationBanner.line3 "Give today, and Mozilla will match your donation.">
+<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
<!ENTITY aboutTor.donationBanner.buttonA "Donate Now">
<!ENTITY aboutTor.donationBanner.buttonB "Count Me In">
diff --git a/src/chrome/locale/pl/browserOnboarding.properties b/src/chrome/locale/pl/browserOnboarding.properties
index b1c1ebd1..8c1730b0 100644
--- a/src/chrome/locale/pl/browserOnboarding.properties
+++ b/src/chrome/locale/pl/browserOnboarding.properties
@@ -3,7 +3,7 @@
# vim: set sw=2 sts=2 ts=8 et:
onboarding.tour-tor-welcome=Witamy
-onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.title=Jesteś gotowy.
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 Now
diff --git a/src/chrome/locale/pl/torbutton.dtd b/src/chrome/locale/pl/torbutton.dtd
index 2ceab63a..7b60431c 100644
--- a/src/chrome/locale/pl/torbutton.dtd
+++ b/src/chrome/locale/pl/torbutton.dtd
@@ -35,17 +35,17 @@
<!ENTITY torbutton.prefs.sec_caption_tooltip "Suwak poziomu bezpieczeństwa pozwala na wyłączenie pewnych funkcji przeglądarki, które mogą uczynić ten program bardziej narażonym na próby ataku hakerskiego.">
<!ENTITY torbutton.prefs.sec_standard_label "Standardowy">
<!ENTITY torbutton.prefs.sec_standard_description "Wszystkie funkcje Przeglądarki Tor i strony zostały włączone.">
-<!ENTITY torbutton.prefs.sec_safer_label "Safer">
-<!ENTITY torbutton.prefs.sec_safer_description "Disables website features that are often dangerous, causing some sites to lose functionality.">
-<!ENTITY torbutton.prefs.sec_safer_list_label "At the safer setting:">
-<!ENTITY torbutton.prefs.sec_safest_label "Safest">
-<!ENTITY torbutton.prefs.sec_safest_description "Only allows website features required for static sites and basic services. These changes affect images, media, and scripts.">
-<!ENTITY torbutton.prefs.sec_safest_list_label "At the safest setting:">
+<!ENTITY torbutton.prefs.sec_safer_label "Bezpieczniej">
+<!ENTITY torbutton.prefs.sec_safer_description "Wyłącza funkcje witryny, które często są niebezpieczne, co powoduje, że niektóre witryny tracą funkcjonalność.">
+<!ENTITY torbutton.prefs.sec_safer_list_label "W bezpieczniejszych ustawieniach:">
+<!ENTITY torbutton.prefs.sec_safest_label "Najbezpieczniejszy">
+<!ENTITY torbutton.prefs.sec_safest_description "Pozwala tylko na funkcje serwisu wymagane w przypadku witryn statycznych i podstawowych usług. Te zmiany dotyczą obrazów, multimediów i skryptów.">
+<!ENTITY torbutton.prefs.sec_safest_list_label "W najbezpieczniejszych ustawieniach:">
<!ENTITY torbutton.prefs.sec_learn_more_label "Dowiedz się więcej">
<!ENTITY torbutton.prefs.sec_js_on_https_sites_only "Obsługa skryptów Java na stronach bez HTTPS jest wyłączona.">
<!ENTITY torbutton.prefs.sec_js_disabled "JavaScript jest domyślnie wyłączona na wszystkich stronach.">
<!ENTITY torbutton.prefs.sec_limit_typography "Niektóre fonty i symbole są wyłączone.">
<!ENTITY torbutton.prefs.sec_limit_graphics_and_typography "Niektóre fonty, ikony, symbole i obrazki są wyłączone.">
-<!ENTITY torbutton.prefs.sec_click_to_play_media "Audio and video (HTML5 media) are click-to-play.">
-<!ENTITY torbutton.circuit_display.title "Tor Circuit">
-<!ENTITY torbutton.circuit_display.new_circuit "New Circuit for this Site">
+<!ENTITY torbutton.prefs.sec_click_to_play_media "Dźwięk i obraz (media HTML5) to "kliknij, aby odtworzyć".">
+<!ENTITY torbutton.circuit_display.title "Obwód Tor">
+<!ENTITY torbutton.circuit_display.new_circuit "Nowy obwód dla tej strony">
diff --git a/src/chrome/locale/pl/torbutton.properties b/src/chrome/locale/pl/torbutton.properties
index d08b96a8..c3983412 100644
--- a/src/chrome/locale/pl/torbutton.properties
+++ b/src/chrome/locale/pl/torbutton.properties
@@ -6,7 +6,7 @@ torbutton.circuit_display.relay = Przekaźnik
torbutton.circuit_display.tor_bridge = Bridge
torbutton.circuit_display.unknown_country = Nieznane państwo
torbutton.circuit_display.guard = Guard
-torbutton.circuit_display.guard_note = Your [Guard] node may not change.
+torbutton.circuit_display.guard_note = Twój węzeł [Guard] może się nie zmienić.
torbutton.circuit_display.learn_more = Dowiedz się więcej
torbutton.content_sizer.margin_tooltip = Przeglądarka Tor dodaje ten margines po to, aby szerokość i wysokość okna Twojej przeglądarki była mniej charakterystyczna, dzięki temu zmniejszysz szanse śledzenia Ciebie online.
torbutton.panel.tooltip.disabled = Kliknij tutaj, aby włączyć Tora
@@ -51,5 +51,5 @@ profileAccessDenied=%S nie posiada uprawnień, aby zobaczyć ten profil. Prosimy
profileMigrationFailed=Migracja Twojego isniejącego profilu %S nie powiodła się.\nNowe ustawienia zostaną użyte.
# .Onion Page Info prompt. Strings are kept here for ease of translation.
-pageInfo_OnionEncryptionWithBitsAndProtocol=Connection Encrypted (Onion Service, %1$S, %2$S bit keys, %3$S)
-pageInfo_OnionEncryption=Connection Encrypted (Onion Service)
+pageInfo_OnionEncryptionWithBitsAndProtocol=Połączenie zaszyfrowane (usługa Onion, %1$S, %2$S klucze bitowe, %3$S)
+pageInfo_OnionEncryption=Połączenie zaszyfrowane (usługa Onion)
diff --git a/src/chrome/locale/pt-BR/aboutTor.dtd b/src/chrome/locale/pt-BR/aboutTor.dtd
index a90f3e1a..c137ac41 100644
--- a/src/chrome/locale/pt-BR/aboutTor.dtd
+++ b/src/chrome/locale/pt-BR/aboutTor.dtd
@@ -36,8 +36,13 @@
<!ENTITY aboutTor.donationBanner.line2d "Proteger a privacidade de milhões de pessoas.">
<!ENTITY aboutTor.donationBanner.line2e "Manter a força do Tor.">
<!ENTITY aboutTor.donationBanner.line2f "Precisamos do seu apoio!">
+<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
+<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
+<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
<!ENTITY aboutTor.donationBanner.line3 "Doe hoje, e a Mozilla duplicará a sua doação.">
+<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
<!ENTITY aboutTor.donationBanner.buttonA "Doar Agora">
<!ENTITY aboutTor.donationBanner.buttonB "Estou dentro">
diff --git a/src/chrome/locale/ru/aboutTor.dtd b/src/chrome/locale/ru/aboutTor.dtd
index 879d708e..1bc187b8 100644
--- a/src/chrome/locale/ru/aboutTor.dtd
+++ b/src/chrome/locale/ru/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "Обеспечиваем конфиденциальность миллионам людей.">
<!ENTITY aboutTor.donationBanner.line2e "Сохраните Tor сильным.">
<!ENTITY aboutTor.donationBanner.line2f "Нам нужна твоя поддержка!">
+<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
+<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
+<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
<!ENTITY aboutTor.donationBanner.line3 "Пожертвуйте сегодня и Mozilla удвоит Ваше пожертвование.">
+<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
<!ENTITY aboutTor.donationBanner.buttonA "Пожертвовать">
<!ENTITY aboutTor.donationBanner.buttonB "Посчитайте">
diff --git a/src/chrome/locale/sv/aboutTor.dtd b/src/chrome/locale/sv/aboutTor.dtd
index 110322e4..f2938e54 100644
--- a/src/chrome/locale/sv/aboutTor.dtd
+++ b/src/chrome/locale/sv/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "Skydda miljontals privatliv.">
<!ENTITY aboutTor.donationBanner.line2e "Håll Tor stark.">
<!ENTITY aboutTor.donationBanner.line2f "Vi behöver ert stöd!">
+<!ENTITY aboutTor.donationBanner.line2g "Stöd internetfrihet.">
+<!ENTITY aboutTor.donationBanner.line2h "Försvara den öppna webben.">
+<!ENTITY aboutTor.donationBanner.line2i "Stöd integritet och frihet på nätet.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla matchar varje donation fram till 2019.">
<!ENTITY aboutTor.donationBanner.line3 "Ge idag, och Mozilla kommer att matcha din donation.">
+<!ENTITY aboutTor.donationBanner.line3b "Ge nu, och din gåva blir dubbelt så stark.">
<!ENTITY aboutTor.donationBanner.buttonA "Donera nu">
<!ENTITY aboutTor.donationBanner.buttonB "Räkna med mig">
diff --git a/src/chrome/locale/sv/torbutton.properties b/src/chrome/locale/sv/torbutton.properties
index 83f5eee7..aaa6856e 100644
--- a/src/chrome/locale/sv/torbutton.properties
+++ b/src/chrome/locale/sv/torbutton.properties
@@ -24,7 +24,7 @@ torbutton.popup.dontask = Hämta hem filer automatiskt i fortsättningen
torbutton.popup.no_newnym = Torbutton kan inte säkert ge dig en ny identitet. Det har inte tillgång till Tor Control Port.\n\nKör du Tor Browser Bundle?
torbutton.security_settings.menu.title = Säkerhetsinställningar
torbutton.title.prompt_torbrowser = Viktig information om Torbutton
-torbutton.popup.prompt_torbrowser = Torbutton fungerar annorlunda nu: Du kan inte slå av den längre.\n\nVi gjorde denna förändring eftersom det inte är säkert att använda Torbutton i en webbläsare som också används för icke-Tor surfning. Det var för många buggar som vi inte kunde fixa på något annat sätt.\n\nOm du vill fortsätta använda Firefox normalt så bör du avinstallera Tor Browser och ladda ner Tor Browser Bundle. Tor Browser skyddar din integritet bättre än vanliga Firefox, även när Firefox används med Tor Button.\n\nFör att ta bort Torbutton, gå till Verktyg->Tillägg->Tillägg och klicka på Ta bort-knappen bredvid Torbutton.
+torbutton.popup.prompt_torbrowser = Torbutton fungerar annorlunda nu: Du kan inte slå av den längre.\n\nVi gjorde denna förändring eftersom det inte är säkert att använda Torbutton i en webbläsare som också används för icke-Tor surfning. Det var för många fel som vi inte kunde åtgärda på något annat sätt.\n\nOm du vill fortsätta använda Firefox normalt så bör du avinstallera Tor Browser och hämta Tor Browser Bundle. Tor Browser skyddar din integritet bättre än vanliga Firefox, även när Firefox används med Tor Button.\n\nFör att ta bort Torbutton, gå till Verktyg->Tillägg->Tillägg och klicka på Ta bort-knappen bredvid Torbutton.
torbutton.popup.short_torbrowser = Viktig information om Torbutton!\n\nTorbutton är nu alltid aktiverad.\n\nKlicka på Torbutton för mer information.
torbutton.popup.confirm_plugins = Insticksmoduler så som Flash kan äventyra din anonymitet och personliga integritet.\n\nDe kan också kringgå Tor för att avslöja var du befinner dig och vad din IP-adress är.\n\nÄr du säker på att du vill aktivera plugins?\n\n
diff --git a/src/chrome/locale/tr/aboutTor.dtd b/src/chrome/locale/tr/aboutTor.dtd
index e4a2443d..789e3d81 100644
--- a/src/chrome/locale/tr/aboutTor.dtd
+++ b/src/chrome/locale/tr/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "Milyonların gizliliğini koru.">
<!ENTITY aboutTor.donationBanner.line2e "Tor uygulamasının gücünü koru.">
<!ENTITY aboutTor.donationBanner.line2f "Desteğinize ihtiyacımız var!">
+<!ENTITY aboutTor.donationBanner.line2g "İnternet özgürlüğünü destekleyin">
+<!ENTITY aboutTor.donationBanner.line2h "Açık web düşüncesini savunun.">
+<!ENTITY aboutTor.donationBanner.line2i "Kişisel gizliliği ve çevrimiçi özgürlüğü destekleyin.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla 2019 yılına kadar yapılan her bağışa karşılık veriyor.">
<!ENTITY aboutTor.donationBanner.line3 "Bugün yaptığınız her bağış kadar Mozilla da bağış yapacak.">
+<!ENTITY aboutTor.donationBanner.line3b "Bağış yapın ve hediyeniz iki kat güzel olsun.">
<!ENTITY aboutTor.donationBanner.buttonA "Şimdi Bağış Yapın">
<!ENTITY aboutTor.donationBanner.buttonB "Ben de Varım">
diff --git a/src/chrome/locale/vi/aboutTor.dtd b/src/chrome/locale/vi/aboutTor.dtd
index 820d92c9..09c26101 100644
--- a/src/chrome/locale/vi/aboutTor.dtd
+++ b/src/chrome/locale/vi/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "Bảo vệ sự riêng tư của hàng triệu người.">
<!ENTITY aboutTor.donationBanner.line2e "Giữ cho Tor trở nên mạnh mẽ.">
<!ENTITY aboutTor.donationBanner.line2f "Chúng tôi cần sự hỗ trợ của bạn!">
+<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
+<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
+<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
<!ENTITY aboutTor.donationBanner.line3 "Hãy đóng góp ngay hôm nay, và Mozilla sẽ đóng góp tương ứng với phần của bạn.">
+<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
<!ENTITY aboutTor.donationBanner.buttonA "Đóng góp Ngay bây giờ">
<!ENTITY aboutTor.donationBanner.buttonB "Hãy cho tôi tham gia">
diff --git a/src/chrome/locale/zh-CN/aboutTor.dtd b/src/chrome/locale/zh-CN/aboutTor.dtd
index f61e2a91..0ae7596e 100644
--- a/src/chrome/locale/zh-CN/aboutTor.dtd
+++ b/src/chrome/locale/zh-CN/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "保护数百万人的隐私。">
<!ENTITY aboutTor.donationBanner.line2e "让 Tor 网络保持健壮。">
<!ENTITY aboutTor.donationBanner.line2f "我们需要你的帮助!">
+<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
+<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
+<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
<!ENTITY aboutTor.donationBanner.line3 "现在捐款, Mozilla 也能从你的捐赠中受益。">
+<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
<!ENTITY aboutTor.donationBanner.buttonA "现在就捐助">
<!ENTITY aboutTor.donationBanner.buttonB "算我一个">
diff --git a/src/chrome/locale/zh-TW/aboutTor.dtd b/src/chrome/locale/zh-TW/aboutTor.dtd
index a679ed55..bcbec612 100644
--- a/src/chrome/locale/zh-TW/aboutTor.dtd
+++ b/src/chrome/locale/zh-TW/aboutTor.dtd
@@ -35,8 +35,13 @@
<!ENTITY aboutTor.donationBanner.line2d "Protect the privacy of millions.">
<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
<!ENTITY aboutTor.donationBanner.line2f "我們需要您的支援!">
+<!ENTITY aboutTor.donationBanner.line2g "Support internet freedom.">
+<!ENTITY aboutTor.donationBanner.line2h "Defend the open web.">
+<!ENTITY aboutTor.donationBanner.line2i "Support privacy and freedom online.">
+<!ENTITY aboutTor.donationBanner.line2j "Mozilla is matching every donation until 2019.">
<!ENTITY aboutTor.donationBanner.line3 "今日您捐款,Mozilla 也會捐出相同數額。">
+<!ENTITY aboutTor.donationBanner.line3b "Give now, and your gift becomes twice as strong.">
<!ENTITY aboutTor.donationBanner.buttonA "立刻捐款">
<!ENTITY aboutTor.donationBanner.buttonB "我也要加入!">
1
0

[torbutton/master] Bug 28543: about:tor has scroll bar between widths 900px and 1000px.
by gk@torproject.org 27 Nov '18
by gk@torproject.org 27 Nov '18
27 Nov '18
commit 9ae78d32be280bcf58819676f700994544049ae8
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Mon Nov 26 12:04:34 2018 -0500
Bug 28543: about:tor has scroll bar between widths 900px and 1000px.
Remove unnecessary min-width from the .torcontent-container rule.
---
src/chrome/skin/aboutTor.css | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/chrome/skin/aboutTor.css b/src/chrome/skin/aboutTor.css
index cf8290c9..37fa30fe 100644
--- a/src/chrome/skin/aboutTor.css
+++ b/src/chrome/skin/aboutTor.css
@@ -51,7 +51,6 @@ body:not([initialized]) {
.torcontent-container {
margin: 40px auto 28px auto;
max-width: 1000px;
- min-width: 1000px;
}
}
1
0

[tor-browser-build/master] Bug 23384: Remove user arthuredelstein on build-sunet-a.torproject.net
by boklm@torproject.org 27 Nov '18
by boklm@torproject.org 27 Nov '18
27 Nov '18
commit 1aaca9195d0ba07db68ceaab1f516f91e0ee8a49
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Tue Nov 27 17:55:04 2018 +0100
Bug 23384: Remove user arthuredelstein on build-sunet-a.torproject.net
Arthur said he doesn't need access to this machine anymore, so we remove
his user account from the ansible config (the account will be removed
from the machine manually).
---
tools/ansible/roles/tbb-team/defaults/main.yml | 1 -
tools/ansible/roles/tbb-team/files/arthuredelstein.pub | 1 -
2 files changed, 2 deletions(-)
diff --git a/tools/ansible/roles/tbb-team/defaults/main.yml b/tools/ansible/roles/tbb-team/defaults/main.yml
index 8bf2e66..fa8ffa3 100644
--- a/tools/ansible/roles/tbb-team/defaults/main.yml
+++ b/tools/ansible/roles/tbb-team/defaults/main.yml
@@ -1,6 +1,5 @@
---
tbb_team_members:
- - arthuredelstein
- boklm
- brade
- gk
diff --git a/tools/ansible/roles/tbb-team/files/arthuredelstein.pub b/tools/ansible/roles/tbb-team/files/arthuredelstein.pub
deleted file mode 100644
index e7f0c39..0000000
--- a/tools/ansible/roles/tbb-team/files/arthuredelstein.pub
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDTn6K3kVN90fKK4BFC2I6wU9Ngb0v1U9JG9Ongt8UlTnbT58tLXATj65a7JwLcFHTjfTyDe2YLA5ujec2Az9LVYNezf4lIbykkDMg125En0HVhjanae9JwCWbOH9BhaEcB9ILc/gAeEXedxvZjpdTkcuJRoYem0jzyBXIm1eCb7gSbGJ5ma9JVFysOxFFor3SiOAjTDotgqVtfG3SF0ecRnViO/dfW9sCzwpTABOg0FZTKV/0AzbPoLE9w8OGe3qZU/eyK+Uw4gP/ZmF9veP1Npnvhf3wS4xkyg0zIvhIeOWQyArbir7dr0xTPhoOv3+GrDwKfCVfEvLEAwcL4TZPx arthur(a)Arthur.local
1
0

[tor-browser-build/master] Bug 28594: Remove tor browser alpha nightly builds
by boklm@torproject.org 26 Nov '18
by boklm@torproject.org 26 Nov '18
26 Nov '18
commit e24e2dea8ebe54b9e8ddd27044bffa21adf08c94
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Mon Nov 26 19:34:45 2018 +0100
Bug 28594: Remove tor browser alpha nightly builds
Update testsuite_git_commit to remove tor browser alpha nightly builds.
---
tools/ansible/roles/tbb-nightly-build/defaults/main.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/ansible/roles/tbb-nightly-build/defaults/main.yml b/tools/ansible/roles/tbb-nightly-build/defaults/main.yml
index 5f04029..26820a9 100644
--- a/tools/ansible/roles/tbb-nightly-build/defaults/main.yml
+++ b/tools/ansible/roles/tbb-nightly-build/defaults/main.yml
@@ -5,7 +5,7 @@ nightly_build_cron_minute: 20
nightly_build_keep_builds: 2
testsuite_dir: "/home/{{ nightly_build_user }}/tbb-testsuite"
testsuite_git_url: https://git.torproject.org/user/boklm/tor-browser-bundle-testsuite.git
-testsuite_git_commit: 7b0dcd9f21bfde6b097b687c63f84fa579296804
+testsuite_git_commit: 7b1e23e06761c7336795d2b2a6fa40f5914b0aef
nightly_build_wwwdir: "/home/{{ nightly_build_user }}/www"
nightly_build_nginx_enable: true
nightly_build_nginx_listen: 127.0.0.1:80
1
0
commit 6b9a93c0517d8b11d0e843f7c17abfc9090b7332
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Nov 22 21:31:48 2018 +0000
Revert "28051"
We are not ready for that yet.
This reverts commit 8e8445c1d47644e6e34fc1b96d6934a9aa13f58b.
---
build.gradle | 4 --
mobile/android/app/000-tor-browser-android.js | 3 ++
mobile/android/app/build.gradle | 11 -----
mobile/android/base/AndroidManifest.xml.in | 1 -
.../base/java/org/mozilla/gecko/BrowserApp.java | 53 ++++++++++++----------
.../base/java/org/mozilla/gecko/GeckoApp.java | 29 ------------
.../java/org/mozilla/gecko/GeckoApplication.java | 5 --
.../java/org/mozilla/gecko/LauncherActivity.java | 18 --------
.../gecko/notifications/NotificationClient.java | 6 +--
.../gecko/notifications/NotificationHelper.java | 5 +-
mobile/android/config/proguard/proguard.cfg | 15 ------
.../java/org/mozilla/gecko/util/ProxySelector.java | 4 +-
12 files changed, 38 insertions(+), 116 deletions(-)
diff --git a/build.gradle b/build.gradle
index 6cf2d4cc0e7a..a080e15b2fac 100644
--- a/build.gradle
+++ b/build.gradle
@@ -32,10 +32,6 @@ allprojects {
url repository
}
}
- // These are needed for Orbot's dependencies
- maven { url "https://raw.githubusercontent.com/guardianproject/gpmaven/master" }
- maven { url 'https://jitpack.io' }
- jcenter()
}
}
diff --git a/mobile/android/app/000-tor-browser-android.js b/mobile/android/app/000-tor-browser-android.js
index e7e337276acb..c329fcdee5f7 100644
--- a/mobile/android/app/000-tor-browser-android.js
+++ b/mobile/android/app/000-tor-browser-android.js
@@ -54,6 +54,9 @@ pref("media.realtime_decoder.enabled", false);
pref("general.useragent.updates.enabled", false);
pref("general.useragent.updates.url", "");
+// Override this because Orbot uses 9050 as the default
+pref("network.proxy.socks_port", 9050);
+
// Do not allow the user to install extensions from web
pref("xpinstall.enabled", false);
pref("extensions.enabledScopes", 1);
diff --git a/mobile/android/app/build.gradle b/mobile/android/app/build.gradle
index d0060901b6b3..7c515bbe65a7 100644
--- a/mobile/android/app/build.gradle
+++ b/mobile/android/app/build.gradle
@@ -225,9 +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')
if (mozconfig.substs.MOZ_NATIVE_DEVICES) {
implementation "com.android.support:mediarouter-v7:${mozconfig.substs.ANDROID_SUPPORT_LIBRARY_VERSION}"
@@ -265,14 +262,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'
}
// TODO: (bug 1261486): This impl is not robust -
diff --git a/mobile/android/base/AndroidManifest.xml.in b/mobile/android/base/AndroidManifest.xml.in
index 0e5f4edaf814..c4ea9a37683e 100644
--- a/mobile/android/base/AndroidManifest.xml.in
+++ b/mobile/android/base/AndroidManifest.xml.in
@@ -24,7 +24,6 @@
#include FennecManifest_permissions.xml.in
<application android:label="@string/moz_app_displayname"
- tools:replace="android:label"
android:icon="@drawable/icon"
android:logo="@drawable/logo"
android:name="@MOZ_ANDROID_APPLICATION_CLASS@"
diff --git a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
index 42b9ebd0a3f7..5efd83398775 100644
--- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
@@ -181,8 +181,7 @@ 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.TorServiceConstants;
+import info.guardianproject.netcipher.proxy.OrbotHelper;
import java.io.File;
import java.io.FileNotFoundException;
@@ -240,9 +239,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;
-
- private static boolean mOrbotRun = false;
public static final String ACTION_VIEW_MULTIPLE = AppConstants.ANDROID_PACKAGE_NAME + ".action.VIEW_MULTIPLE";
@@ -1286,26 +1282,41 @@ public class BrowserApp extends GeckoApp
@Override
public void onReceive(Context context, Intent intent) {
- if (TextUtils.equals(intent.getAction(), TorServiceConstants.ACTION_STATUS)) {
+ if (TextUtils.equals(intent.getAction(), OrbotHelper.ACTION_STATUS)) {
GeckoAppShell.setTorStatus(intent);
}
}
};
public void checkStartOrbot() {
- /* run in thread so Tor status updates will be received while the
- * Gecko event sync is blocking the main thread */
- HandlerThread handlerThread = new HandlerThread("torStatusReceiver");
- handlerThread.start();
- Looper looper = handlerThread.getLooper();
- Handler handler = new Handler(looper);
- registerReceiver(torStatusReceiver, new IntentFilter(TorServiceConstants.ACTION_STATUS),
- null, handler);
+ if (!OrbotHelper.isOrbotInstalled(this)) {
+ final Intent installOrbotIntent = OrbotHelper.getOrbotInstallIntent(this);
- if (!mOrbotRun) {
- final String orbotStartAction = "android.intent.action.MAIN";
- final Intent launchOrbot = new Intent(orbotStartAction, null, this, OrbotMainActivity.class);
- startActivityForResult(launchOrbot, ACTIVITY_RESULT_ORBOT_LAUNCH, null);
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setTitle(R.string.install_orbot);
+ builder.setMessage(R.string.you_must_have_orbot);
+ builder.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ startActivity(installOrbotIntent);
+ }
+ });
+ builder.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ }
+ });
+ builder.show();
+ } else {
+ /* run in thread so Tor status updates will be received while the
+ * Gecko event sync is blocking the main thread */
+ HandlerThread handlerThread = new HandlerThread("torStatusReceiver");
+ handlerThread.start();
+ Looper looper = handlerThread.getLooper();
+ Handler handler = new Handler(looper);
+ registerReceiver(torStatusReceiver, new IntentFilter(OrbotHelper.ACTION_STATUS),
+ null, handler);
+ OrbotHelper.requestStartTor(this);
}
}
@@ -3007,12 +3018,6 @@ public class BrowserApp extends GeckoApp
TabQueueHelper.processTabQueuePromptResponse(resultCode, this);
break;
- case ACTIVITY_RESULT_ORBOT_LAUNCH:
- final SafeIntent intent = new SafeIntent(getIntent());
- Log.d(LOGTAG, "onActivityResult: ACTIVITY_RESULT_ORBOT_LAUNCH");
- mOrbotRun = true;
- break;
-
default:
for (final BrowserAppDelegate delegate : delegates) {
delegate.onActivityResult(this, requestCode, resultCode, data);
diff --git a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java
index 3741c26fe0e8..802d8adafbeb 100644
--- a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java
@@ -91,8 +91,6 @@ import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
-import org.torproject.android.service.TorService;
-
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
@@ -598,9 +596,6 @@ public abstract class GeckoApp extends GeckoActivity
EventDispatcher.getInstance().dispatch("Browser:Quit", res);
- Intent torService = new Intent(this, TorService.class);
- stopService(torService);
-
// We don't call shutdown here because this creates a race condition which
// can cause the clearing of private data to fail. Instead, we shut down the
// UI only after we're done sanitizing.
@@ -1217,30 +1212,6 @@ public abstract class GeckoApp extends GeckoActivity
}
}
}
- } else if (mIsRestoringActivity) {
- /* Synchronize Tabs state with Gecko. We're restoring the Activity, this
- * mean all of the Chrome state was lost, but the previously created
- * Tabs still exist within the Android application, because those are
- * static and the application keeps track of those (and only the Activity
- * is starting, the application was never destroyed). */
- Iterable<Tab> tabs = Tabs.getInstance().getTabsInOrder();
- Tab selectedTab = Tabs.getInstance().getSelectedTab();
- for (Tab tab : tabs) {
- GeckoBundle reloadMessage = new GeckoBundle();
- reloadMessage.putString("url", tab.getURL());
- reloadMessage.putString("engine", null);
- reloadMessage.putInt("parentId", tab.getParentId());
- reloadMessage.putBoolean("userEntered", true);
- reloadMessage.putBoolean("isPrivate", tab.isPrivate());
- reloadMessage.putBoolean("pinned", false);
- reloadMessage.putBoolean("desktopMode", tab.getDesktopMode());
- reloadMessage.putString("referrerURI", null);
- reloadMessage.putInt("tabID", tab.getId());
- reloadMessage.putBoolean("newTab", true);
- reloadMessage.putBoolean("delayLoad", selectedTab != tab);
- reloadMessage.putBoolean("selected", selectedTab == tab);
- getAppEventDispatcher().dispatch("Tab:Load", reloadMessage);
- }
}
synchronized (GeckoApp.this) {
diff --git a/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java b/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java
index b38e7184c798..e896134e0af9 100644
--- a/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java
+++ b/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java
@@ -62,8 +62,6 @@ import java.lang.reflect.Method;
import java.net.URL;
import java.util.UUID;
-import org.torproject.android.service.util.Prefs;
-
public class GeckoApplication extends Application
implements HapticFeedbackDelegate {
private static final String LOG_TAG = "GeckoApplication";
@@ -321,9 +319,6 @@ public class GeckoApplication extends Application
"Profile:Create",
null);
- // Give Orbot the base Context
- Prefs.setContext(context);
-
super.onCreate();
}
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));
diff --git a/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationClient.java b/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationClient.java
index c66d67f32787..d8392a801e13 100644
--- a/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationClient.java
+++ b/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationClient.java
@@ -28,8 +28,6 @@ import org.mozilla.gecko.NotificationListener;
import org.mozilla.gecko.R;
import org.mozilla.gecko.util.BitmapUtils;
-import org.torproject.android.service.util.NotificationBuilderCompat;
-
/**
* Client for posting notifications.
*/
@@ -144,7 +142,7 @@ public final class NotificationClient implements NotificationListener {
private void add(final String name, final String imageUrl, final String host,
final String alertTitle, final String alertText,
final PendingIntent contentIntent, final PendingIntent deleteIntent) {
- final NotificationBuilderCompat builder = new NotificationBuilderCompat(mContext)
+ final NotificationCompat.Builder builder = new NotificationCompat.Builder(mContext)
.setContentTitle(alertTitle)
.setContentText(alertText)
.setSmallIcon(R.drawable.ic_status_logo)
@@ -152,7 +150,7 @@ public final class NotificationClient implements NotificationListener {
.setDeleteIntent(deleteIntent)
.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_SOUND)
- .setStyle(new Notification.BigTextStyle()
+ .setStyle(new NotificationCompat.BigTextStyle()
.bigText(alertText)
.setSummaryText(host));
diff --git a/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationHelper.java b/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationHelper.java
index 35366609da49..34ea99882d9a 100644
--- a/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationHelper.java
+++ b/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationHelper.java
@@ -32,11 +32,10 @@ import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.Bitmap;
import android.net.Uri;
+import android.support.v4.app.NotificationCompat;
import android.support.v4.util.SimpleArrayMap;
import android.util.Log;
-import org.torproject.android.service.util.NotificationBuilderCompat;
-
public final class NotificationHelper implements BundleEventListener {
public static final String HELPER_BROADCAST_ACTION = AppConstants.ANDROID_PACKAGE_NAME + ".helperBroadcastAction";
@@ -234,7 +233,7 @@ public final class NotificationHelper implements BundleEventListener {
private void showNotification(final GeckoBundle message) {
ThreadUtils.assertOnUiThread();
- final NotificationBuilderCompat builder = new NotificationBuilderCompat(mContext);
+ final NotificationCompat.Builder builder = new NotificationCompat.Builder(mContext);
// These attributes are required
final String id = message.getString(ID_ATTR);
diff --git a/mobile/android/config/proguard/proguard.cfg b/mobile/android/config/proguard/proguard.cfg
index 3d03e3107c72..0be8a745e44b 100644
--- a/mobile/android/config/proguard/proguard.cfg
+++ b/mobile/android/config/proguard/proguard.cfg
@@ -165,21 +165,6 @@
# See: http://stackoverflow.com/questions/22441366/note-android-support-v4-text-ic…
-dontnote android.support.**
-# From https://github.com/square/okhttp/blob/master/okhttp/src/main/resources/META…
-# JSR 305 annotations are for embedding nullability information.
--dontwarn javax.annotation.**
-
-# A resource is loaded with a relative path so the package of this class must be preserved.
--keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
-
-# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java.
--dontwarn org.codehaus.mojo.animal_sniffer.*
-
-# OkHttp platform used only on JVM and when Conscrypt dependency is available.
--dontwarn okhttp3.internal.platform.ConscryptPlatform
-
-#-keepnames class org.torproject.*
-
-include "adjust-keeps.cfg"
-include "leakcanary-keeps.cfg"
diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ProxySelector.java b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ProxySelector.java
index 41c2c7e705a1..f05716fe1d09 100644
--- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ProxySelector.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ProxySelector.java
@@ -30,8 +30,8 @@ import java.util.List;
public class ProxySelector {
private static final String TOR_PROXY_ADDRESS = "127.0.0.1";
- private static final int TOR_SOCKS_PROXY_PORT = 9150;
- private static final int TOR_HTTP_PROXY_PORT = 8218;
+ private static final int TOR_SOCKS_PROXY_PORT = 9050;
+ private static final int TOR_HTTP_PROXY_PORT = 8118;
public static URLConnection openConnectionWithProxy(URI uri) throws IOException {
java.net.ProxySelector ps = java.net.ProxySelector.getDefault();
1
0
commit 8e8445c1d47644e6e34fc1b96d6934a9aa13f58b
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Nov 22 14:58:20 2018 +0000
28051
---
build.gradle | 4 ++
mobile/android/app/000-tor-browser-android.js | 3 --
mobile/android/app/build.gradle | 11 +++++
mobile/android/base/AndroidManifest.xml.in | 1 +
.../base/java/org/mozilla/gecko/BrowserApp.java | 53 ++++++++++------------
.../base/java/org/mozilla/gecko/GeckoApp.java | 29 ++++++++++++
.../java/org/mozilla/gecko/GeckoApplication.java | 5 ++
.../java/org/mozilla/gecko/LauncherActivity.java | 18 ++++++++
.../gecko/notifications/NotificationClient.java | 6 ++-
.../gecko/notifications/NotificationHelper.java | 5 +-
mobile/android/config/proguard/proguard.cfg | 15 ++++++
.../java/org/mozilla/gecko/util/ProxySelector.java | 4 +-
12 files changed, 116 insertions(+), 38 deletions(-)
diff --git a/build.gradle b/build.gradle
index a080e15b2fac..6cf2d4cc0e7a 100644
--- a/build.gradle
+++ b/build.gradle
@@ -32,6 +32,10 @@ allprojects {
url repository
}
}
+ // These are needed for Orbot's dependencies
+ maven { url "https://raw.githubusercontent.com/guardianproject/gpmaven/master" }
+ maven { url 'https://jitpack.io' }
+ jcenter()
}
}
diff --git a/mobile/android/app/000-tor-browser-android.js b/mobile/android/app/000-tor-browser-android.js
index c329fcdee5f7..e7e337276acb 100644
--- a/mobile/android/app/000-tor-browser-android.js
+++ b/mobile/android/app/000-tor-browser-android.js
@@ -54,9 +54,6 @@ pref("media.realtime_decoder.enabled", false);
pref("general.useragent.updates.enabled", false);
pref("general.useragent.updates.url", "");
-// Override this because Orbot uses 9050 as the default
-pref("network.proxy.socks_port", 9050);
-
// Do not allow the user to install extensions from web
pref("xpinstall.enabled", false);
pref("extensions.enabledScopes", 1);
diff --git a/mobile/android/app/build.gradle b/mobile/android/app/build.gradle
index 7c515bbe65a7..d0060901b6b3 100644
--- a/mobile/android/app/build.gradle
+++ b/mobile/android/app/build.gradle
@@ -225,6 +225,9 @@ 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')
if (mozconfig.substs.MOZ_NATIVE_DEVICES) {
implementation "com.android.support:mediarouter-v7:${mozconfig.substs.ANDROID_SUPPORT_LIBRARY_VERSION}"
@@ -262,6 +265,14 @@ 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'
}
// TODO: (bug 1261486): This impl is not robust -
diff --git a/mobile/android/base/AndroidManifest.xml.in b/mobile/android/base/AndroidManifest.xml.in
index c4ea9a37683e..0e5f4edaf814 100644
--- a/mobile/android/base/AndroidManifest.xml.in
+++ b/mobile/android/base/AndroidManifest.xml.in
@@ -24,6 +24,7 @@
#include FennecManifest_permissions.xml.in
<application android:label="@string/moz_app_displayname"
+ tools:replace="android:label"
android:icon="@drawable/icon"
android:logo="@drawable/logo"
android:name="@MOZ_ANDROID_APPLICATION_CLASS@"
diff --git a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
index 5efd83398775..42b9ebd0a3f7 100644
--- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
@@ -181,7 +181,8 @@ import org.mozilla.gecko.widget.GeckoActionProvider;
import org.mozilla.gecko.widget.SplashScreen;
import org.mozilla.geckoview.GeckoSession;
-import info.guardianproject.netcipher.proxy.OrbotHelper;
+import org.torproject.android.OrbotMainActivity;
+import org.torproject.android.service.TorServiceConstants;
import java.io.File;
import java.io.FileNotFoundException;
@@ -239,6 +240,9 @@ 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;
+
+ private static boolean mOrbotRun = false;
public static final String ACTION_VIEW_MULTIPLE = AppConstants.ANDROID_PACKAGE_NAME + ".action.VIEW_MULTIPLE";
@@ -1282,41 +1286,26 @@ public class BrowserApp extends GeckoApp
@Override
public void onReceive(Context context, Intent intent) {
- if (TextUtils.equals(intent.getAction(), OrbotHelper.ACTION_STATUS)) {
+ if (TextUtils.equals(intent.getAction(), TorServiceConstants.ACTION_STATUS)) {
GeckoAppShell.setTorStatus(intent);
}
}
};
public void checkStartOrbot() {
- if (!OrbotHelper.isOrbotInstalled(this)) {
- final Intent installOrbotIntent = OrbotHelper.getOrbotInstallIntent(this);
+ /* run in thread so Tor status updates will be received while the
+ * Gecko event sync is blocking the main thread */
+ HandlerThread handlerThread = new HandlerThread("torStatusReceiver");
+ handlerThread.start();
+ Looper looper = handlerThread.getLooper();
+ Handler handler = new Handler(looper);
+ registerReceiver(torStatusReceiver, new IntentFilter(TorServiceConstants.ACTION_STATUS),
+ null, handler);
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setTitle(R.string.install_orbot);
- builder.setMessage(R.string.you_must_have_orbot);
- builder.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- startActivity(installOrbotIntent);
- }
- });
- builder.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- }
- });
- builder.show();
- } else {
- /* run in thread so Tor status updates will be received while the
- * Gecko event sync is blocking the main thread */
- HandlerThread handlerThread = new HandlerThread("torStatusReceiver");
- handlerThread.start();
- Looper looper = handlerThread.getLooper();
- Handler handler = new Handler(looper);
- registerReceiver(torStatusReceiver, new IntentFilter(OrbotHelper.ACTION_STATUS),
- null, handler);
- OrbotHelper.requestStartTor(this);
+ if (!mOrbotRun) {
+ final String orbotStartAction = "android.intent.action.MAIN";
+ final Intent launchOrbot = new Intent(orbotStartAction, null, this, OrbotMainActivity.class);
+ startActivityForResult(launchOrbot, ACTIVITY_RESULT_ORBOT_LAUNCH, null);
}
}
@@ -3018,6 +3007,12 @@ public class BrowserApp extends GeckoApp
TabQueueHelper.processTabQueuePromptResponse(resultCode, this);
break;
+ case ACTIVITY_RESULT_ORBOT_LAUNCH:
+ final SafeIntent intent = new SafeIntent(getIntent());
+ Log.d(LOGTAG, "onActivityResult: ACTIVITY_RESULT_ORBOT_LAUNCH");
+ mOrbotRun = true;
+ break;
+
default:
for (final BrowserAppDelegate delegate : delegates) {
delegate.onActivityResult(this, requestCode, resultCode, data);
diff --git a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java
index 63a136541970..ef7da17e19a1 100644
--- a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java
@@ -91,6 +91,8 @@ import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
+import org.torproject.android.service.TorService;
+
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
@@ -592,6 +594,9 @@ public abstract class GeckoApp extends GeckoActivity
EventDispatcher.getInstance().dispatch("Browser:Quit", res);
+ Intent torService = new Intent(this, TorService.class);
+ stopService(torService);
+
// We don't call shutdown here because this creates a race condition which
// can cause the clearing of private data to fail. Instead, we shut down the
// UI only after we're done sanitizing.
@@ -1201,6 +1206,30 @@ public abstract class GeckoApp extends GeckoActivity
}
}
}
+ } else if (mIsRestoringActivity) {
+ /* Synchronize Tabs state with Gecko. We're restoring the Activity, this
+ * mean all of the Chrome state was lost, but the previously created
+ * Tabs still exist within the Android application, because those are
+ * static and the application keeps track of those (and only the Activity
+ * is starting, the application was never destroyed). */
+ Iterable<Tab> tabs = Tabs.getInstance().getTabsInOrder();
+ Tab selectedTab = Tabs.getInstance().getSelectedTab();
+ for (Tab tab : tabs) {
+ GeckoBundle reloadMessage = new GeckoBundle();
+ reloadMessage.putString("url", tab.getURL());
+ reloadMessage.putString("engine", null);
+ reloadMessage.putInt("parentId", tab.getParentId());
+ reloadMessage.putBoolean("userEntered", true);
+ reloadMessage.putBoolean("isPrivate", tab.isPrivate());
+ reloadMessage.putBoolean("pinned", false);
+ reloadMessage.putBoolean("desktopMode", tab.getDesktopMode());
+ reloadMessage.putString("referrerURI", null);
+ reloadMessage.putInt("tabID", tab.getId());
+ reloadMessage.putBoolean("newTab", true);
+ reloadMessage.putBoolean("delayLoad", selectedTab != tab);
+ reloadMessage.putBoolean("selected", selectedTab == tab);
+ getAppEventDispatcher().dispatch("Tab:Load", reloadMessage);
+ }
}
synchronized (GeckoApp.this) {
diff --git a/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java b/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java
index e896134e0af9..b38e7184c798 100644
--- a/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java
+++ b/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java
@@ -62,6 +62,8 @@ import java.lang.reflect.Method;
import java.net.URL;
import java.util.UUID;
+import org.torproject.android.service.util.Prefs;
+
public class GeckoApplication extends Application
implements HapticFeedbackDelegate {
private static final String LOG_TAG = "GeckoApplication";
@@ -319,6 +321,9 @@ public class GeckoApplication extends Application
"Profile:Create",
null);
+ // Give Orbot the base Context
+ Prefs.setContext(context);
+
super.onCreate();
}
diff --git a/mobile/android/base/java/org/mozilla/gecko/LauncherActivity.java b/mobile/android/base/java/org/mozilla/gecko/LauncherActivity.java
index e8f8facc24c6..4cd94ed538c7 100644
--- a/mobile/android/base/java/org/mozilla/gecko/LauncherActivity.java
+++ b/mobile/android/base/java/org/mozilla/gecko/LauncherActivity.java
@@ -45,6 +45,9 @@ 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).
*/
@@ -67,6 +70,9 @@ 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();
@@ -116,6 +122,18 @@ 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));
diff --git a/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationClient.java b/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationClient.java
index d8392a801e13..c66d67f32787 100644
--- a/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationClient.java
+++ b/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationClient.java
@@ -28,6 +28,8 @@ import org.mozilla.gecko.NotificationListener;
import org.mozilla.gecko.R;
import org.mozilla.gecko.util.BitmapUtils;
+import org.torproject.android.service.util.NotificationBuilderCompat;
+
/**
* Client for posting notifications.
*/
@@ -142,7 +144,7 @@ public final class NotificationClient implements NotificationListener {
private void add(final String name, final String imageUrl, final String host,
final String alertTitle, final String alertText,
final PendingIntent contentIntent, final PendingIntent deleteIntent) {
- final NotificationCompat.Builder builder = new NotificationCompat.Builder(mContext)
+ final NotificationBuilderCompat builder = new NotificationBuilderCompat(mContext)
.setContentTitle(alertTitle)
.setContentText(alertText)
.setSmallIcon(R.drawable.ic_status_logo)
@@ -150,7 +152,7 @@ public final class NotificationClient implements NotificationListener {
.setDeleteIntent(deleteIntent)
.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_SOUND)
- .setStyle(new NotificationCompat.BigTextStyle()
+ .setStyle(new Notification.BigTextStyle()
.bigText(alertText)
.setSummaryText(host));
diff --git a/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationHelper.java b/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationHelper.java
index 34ea99882d9a..35366609da49 100644
--- a/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationHelper.java
+++ b/mobile/android/base/java/org/mozilla/gecko/notifications/NotificationHelper.java
@@ -32,10 +32,11 @@ import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.Bitmap;
import android.net.Uri;
-import android.support.v4.app.NotificationCompat;
import android.support.v4.util.SimpleArrayMap;
import android.util.Log;
+import org.torproject.android.service.util.NotificationBuilderCompat;
+
public final class NotificationHelper implements BundleEventListener {
public static final String HELPER_BROADCAST_ACTION = AppConstants.ANDROID_PACKAGE_NAME + ".helperBroadcastAction";
@@ -233,7 +234,7 @@ public final class NotificationHelper implements BundleEventListener {
private void showNotification(final GeckoBundle message) {
ThreadUtils.assertOnUiThread();
- final NotificationCompat.Builder builder = new NotificationCompat.Builder(mContext);
+ final NotificationBuilderCompat builder = new NotificationBuilderCompat(mContext);
// These attributes are required
final String id = message.getString(ID_ATTR);
diff --git a/mobile/android/config/proguard/proguard.cfg b/mobile/android/config/proguard/proguard.cfg
index 0be8a745e44b..3d03e3107c72 100644
--- a/mobile/android/config/proguard/proguard.cfg
+++ b/mobile/android/config/proguard/proguard.cfg
@@ -165,6 +165,21 @@
# See: http://stackoverflow.com/questions/22441366/note-android-support-v4-text-ic…
-dontnote android.support.**
+# From https://github.com/square/okhttp/blob/master/okhttp/src/main/resources/META…
+# JSR 305 annotations are for embedding nullability information.
+-dontwarn javax.annotation.**
+
+# A resource is loaded with a relative path so the package of this class must be preserved.
+-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
+
+# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java.
+-dontwarn org.codehaus.mojo.animal_sniffer.*
+
+# OkHttp platform used only on JVM and when Conscrypt dependency is available.
+-dontwarn okhttp3.internal.platform.ConscryptPlatform
+
+#-keepnames class org.torproject.*
+
-include "adjust-keeps.cfg"
-include "leakcanary-keeps.cfg"
diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ProxySelector.java b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ProxySelector.java
index f05716fe1d09..41c2c7e705a1 100644
--- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ProxySelector.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ProxySelector.java
@@ -30,8 +30,8 @@ import java.util.List;
public class ProxySelector {
private static final String TOR_PROXY_ADDRESS = "127.0.0.1";
- private static final int TOR_SOCKS_PROXY_PORT = 9050;
- private static final int TOR_HTTP_PROXY_PORT = 8118;
+ private static final int TOR_SOCKS_PROXY_PORT = 9150;
+ private static final int TOR_HTTP_PROXY_PORT = 8218;
public static URLConnection openConnectionWithProxy(URI uri) throws IOException {
java.net.ProxySelector ps = java.net.ProxySelector.getDefault();
1
0