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

[tor-browser-bundle/master] Bug 13169: Don't use /dev/random on Windows.
by gk@torproject.org 16 Feb '15
by gk@torproject.org 16 Feb '15
16 Feb '15
commit d4950e565f93396ebbd310c71e49576af9224d25
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon Feb 16 17:13:47 2015 +0000
Bug 13169: Don't use /dev/random on Windows.
This patch got done by skruffy and is a backport of the one merged into
GCC trunk as commit 19fef1633156a2c7ddd267b43d08f1b245a6e1f4.
---
gitian/descriptors/windows/gitian-utils.yml | 5 ++
gitian/patches/gcc-dev-random.patch | 72 +++++++++++++++++++++++++++
2 files changed, 77 insertions(+)
diff --git a/gitian/descriptors/windows/gitian-utils.yml b/gitian/descriptors/windows/gitian-utils.yml
index 7846e59..bef262d 100644
--- a/gitian/descriptors/windows/gitian-utils.yml
+++ b/gitian/descriptors/windows/gitian-utils.yml
@@ -28,6 +28,7 @@ files:
- "gmp.tar.bz2"
- "enable-reloc-section-ld.patch"
- "peXXigen.patch"
+- "gcc-dev-random.patch"
- "versions"
- "dzip.sh"
script: |
@@ -64,6 +65,10 @@ script: |
mkdir gcc
cd gcc
tar -xjvf ../gcc.tar.bz2
+ cd gcc-*
+ # Don't use /dev/random on Windows. See bug 13169 for details.
+ patch -p1 < ../../gcc-dev-random.patch
+ cd ..
# We don't want to link against msvcrt.dll due to bug 9084.
i686-w64-mingw32-g++ -dumpspecs > ~/build/msvcr100.spec
sed 's/msvcrt/msvcr100/' -i ~/build/msvcr100.spec
diff --git a/gitian/patches/gcc-dev-random.patch b/gitian/patches/gcc-dev-random.patch
new file mode 100644
index 0000000..9757f92
--- /dev/null
+++ b/gitian/patches/gcc-dev-random.patch
@@ -0,0 +1,72 @@
+From b0ce14899060267b5b5e4d7e3d91edcdf5c09514 Mon Sep 17 00:00:00 2001
+From: law <law@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Tue, 10 Feb 2015 01:44:08 +0000
+Subject: [PATCH] * ssp.c (__guard_setup): For Windows, use approved methods
+ to get a suitable random number for the stack check guard
+ rather than reading /dev/random.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@220559 138bc75d-0d04-0410-961f-82ee72b054a4
+---
+ libssp/ChangeLog | 7 +++++++
+ libssp/ssp.c | 16 ++++++++++++++++
+ 2 files changed, 23 insertions(+)
+
+diff --git a/libssp/ChangeLog b/libssp/ChangeLog
+index a445537..676d2a7 100644
+--- a/libssp/ChangeLog
++++ b/libssp/ChangeLog
+@@ -1,3 +1,10 @@
++2015-02-09 Georg Koppen <gk(a)torproject.org>
++
++ * ssp.c: Conditionally include <windows.h>
++ (__guard_setup): For Windows, use approved methods to get
++ a suitable random number for the stack check guard rather
++ than reading /dev/random.
++
+ 2014-07-16 Release Manager
+
+ * GCC 4.9.1 released.
+diff --git a/libssp/ssp.c b/libssp/ssp.c
+index 96adf17..38e3ec8 100644
+--- a/libssp/ssp.c
++++ b/libssp/ssp.c
+@@ -55,6 +55,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+ /* Native win32 apps don't know about /dev/tty but can print directly
+ to the console using "CONOUT$" */
+ #if defined (_WIN32) && !defined (__CYGWIN__)
++#include <windows.h>
+ # define _PATH_TTY "CONOUT$"
+ #else
+ # define _PATH_TTY "/dev/tty"
+@@ -75,6 +76,20 @@ __guard_setup (void)
+ if (__stack_chk_guard != 0)
+ return;
+
++#if defined (_WIN32) && !defined (__CYGWIN__)
++ HCRYPTPROV hprovider = 0;
++ if (CryptAcquireContext(&hprovider, NULL, NULL, PROV_RSA_FULL,
++ CRYPT_VERIFYCONTEXT | CRYPT_SILENT))
++ {
++ if (CryptGenRandom(hprovider, sizeof (__stack_chk_guard),
++ (BYTE *)&__stack_chk_guard) && __stack_chk_guard != 0)
++ {
++ CryptReleaseContext(hprovider, 0);
++ return;
++ }
++ CryptReleaseContext(hprovider, 0);
++ }
++#else
+ fd = open ("/dev/urandom", O_RDONLY);
+ if (fd != -1)
+ {
+@@ -85,6 +100,7 @@ __guard_setup (void)
+ return;
+ }
+
++#endif
+ /* If a random generator can't be used, the protector switches the guard
+ to the "terminator canary". */
+ p = (unsigned char *) &__stack_chk_guard;
+--
+1.7.10.4
+
1
0
commit 959da7f6b237910d2ff5132394bbcb9628983bc4
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon Feb 16 11:12:32 2015 +0000
Update translations
---
src/chrome/locale/ar/aboutTor.dtd | 5 +++--
src/chrome/locale/ar/brand.dtd | 6 ++++++
src/chrome/locale/ar/browser.properties | 8 --------
src/chrome/locale/ar/torbutton.dtd | 11 +++++++----
src/chrome/locale/ar/torbutton.properties | 6 ++++++
src/chrome/locale/de/aboutTor.dtd | 5 +++--
src/chrome/locale/de/brand.dtd | 6 ++++++
src/chrome/locale/de/browser.properties | 8 --------
src/chrome/locale/de/torbutton.dtd | 11 +++++++----
src/chrome/locale/de/torbutton.properties | 6 ++++++
src/chrome/locale/es/aboutTor.dtd | 5 +++--
src/chrome/locale/es/brand.dtd | 6 ++++++
src/chrome/locale/es/browser.properties | 8 --------
src/chrome/locale/es/torbutton.dtd | 11 +++++++----
src/chrome/locale/es/torbutton.properties | 6 ++++++
src/chrome/locale/eu/aboutTor.dtd | 5 +++--
src/chrome/locale/eu/brand.dtd | 6 ++++++
src/chrome/locale/eu/browser.properties | 8 --------
src/chrome/locale/eu/torbutton.dtd | 25 ++++++++++++++-----------
src/chrome/locale/eu/torbutton.properties | 6 ++++++
src/chrome/locale/fa/aboutTor.dtd | 5 +++--
src/chrome/locale/fa/brand.dtd | 6 ++++++
src/chrome/locale/fa/browser.properties | 8 --------
src/chrome/locale/fa/torbutton.dtd | 11 +++++++----
src/chrome/locale/fa/torbutton.properties | 6 ++++++
src/chrome/locale/fr/aboutTor.dtd | 5 +++--
src/chrome/locale/fr/brand.dtd | 6 ++++++
src/chrome/locale/fr/browser.properties | 8 --------
src/chrome/locale/fr/torbutton.dtd | 11 +++++++----
src/chrome/locale/fr/torbutton.properties | 6 ++++++
src/chrome/locale/it/aboutTor.dtd | 5 +++--
src/chrome/locale/it/brand.dtd | 6 ++++++
src/chrome/locale/it/browser.properties | 8 --------
src/chrome/locale/it/torbutton.dtd | 11 +++++++----
src/chrome/locale/it/torbutton.properties | 6 ++++++
src/chrome/locale/ja/aboutTor.dtd | 5 +++--
src/chrome/locale/ja/brand.dtd | 6 ++++++
src/chrome/locale/ja/browser.properties | 8 --------
src/chrome/locale/ja/torbutton.dtd | 11 +++++++----
src/chrome/locale/ja/torbutton.properties | 6 ++++++
src/chrome/locale/ko/aboutTor.dtd | 5 +++--
src/chrome/locale/ko/brand.dtd | 6 ++++++
src/chrome/locale/ko/browser.properties | 8 --------
src/chrome/locale/ko/torbutton.dtd | 11 +++++++----
src/chrome/locale/ko/torbutton.properties | 6 ++++++
src/chrome/locale/nl/aboutTor.dtd | 15 ++++++++-------
src/chrome/locale/nl/brand.dtd | 6 ++++++
src/chrome/locale/nl/browser.properties | 8 --------
src/chrome/locale/nl/torbutton.dtd | 11 +++++++----
src/chrome/locale/nl/torbutton.properties | 6 ++++++
src/chrome/locale/pl/aboutTor.dtd | 5 +++--
src/chrome/locale/pl/brand.dtd | 6 ++++++
src/chrome/locale/pl/browser.properties | 8 --------
src/chrome/locale/pl/torbutton.dtd | 11 +++++++----
src/chrome/locale/pl/torbutton.properties | 6 ++++++
src/chrome/locale/pt/aboutTor.dtd | 5 +++--
src/chrome/locale/pt/brand.dtd | 6 ++++++
src/chrome/locale/pt/browser.properties | 8 --------
src/chrome/locale/pt/torbutton.dtd | 11 +++++++----
src/chrome/locale/pt/torbutton.properties | 6 ++++++
src/chrome/locale/ru/aboutTor.dtd | 5 +++--
src/chrome/locale/ru/brand.dtd | 6 ++++++
src/chrome/locale/ru/browser.properties | 8 --------
src/chrome/locale/ru/torbutton.dtd | 11 +++++++----
src/chrome/locale/ru/torbutton.properties | 6 ++++++
src/chrome/locale/sv/aboutTor.dtd | 5 +++--
src/chrome/locale/sv/brand.dtd | 6 ++++++
src/chrome/locale/sv/browser.properties | 8 --------
src/chrome/locale/sv/torbutton.dtd | 11 +++++++----
src/chrome/locale/sv/torbutton.properties | 6 ++++++
src/chrome/locale/tr/aboutTor.dtd | 5 +++--
src/chrome/locale/tr/brand.dtd | 6 ++++++
src/chrome/locale/tr/browser.properties | 8 --------
src/chrome/locale/tr/torbutton.dtd | 11 +++++++----
src/chrome/locale/tr/torbutton.properties | 6 ++++++
src/chrome/locale/vi/aboutTor.dtd | 5 +++--
src/chrome/locale/vi/brand.dtd | 6 ++++++
src/chrome/locale/vi/browser.properties | 8 --------
src/chrome/locale/vi/torbutton.dtd | 11 +++++++----
src/chrome/locale/vi/torbutton.properties | 6 ++++++
src/chrome/locale/zh-CN/aboutTor.dtd | 5 +++--
src/chrome/locale/zh-CN/brand.dtd | 6 ++++++
src/chrome/locale/zh-CN/browser.properties | 8 --------
src/chrome/locale/zh-CN/torbutton.dtd | 11 +++++++----
src/chrome/locale/zh-CN/torbutton.properties | 6 ++++++
85 files changed, 386 insertions(+), 250 deletions(-)
diff --git a/src/chrome/locale/ar/aboutTor.dtd b/src/chrome/locale/ar/aboutTor.dtd
index e02388f..4ab6609 100644
--- a/src/chrome/locale/ar/aboutTor.dtd
+++ b/src/chrome/locale/ar/aboutTor.dtd
@@ -1,5 +1,5 @@
<!--
- - Copyright (c) 2014, The Tor Project, Inc.
+ - Copyright (c) 2015, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -8,7 +8,7 @@
<!ENTITY aboutTor.outOfDateTorOn.label "ومع ذلك، هذا المتصفح قديم.">
<!ENTITY aboutTor.outOfDateTorOff.label "أيضاً، هذا المتصفح قديم.">
-<!ENTITY aboutTor.outOfDate2.label "اضغط على البصلة و اختر حمل تحديث حزمة متصفح تور.">
+<!ENTITY aboutTor.outOfDate2.label "Click on the onion and then choose Check for Tor Browser Update.">
<!ENTITY aboutTor.check.label "اختبر إعدادات شبكة تور.">
@@ -25,6 +25,7 @@
<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
+<!ENTITY aboutTor.searchDCPost.link "https://search.disconnect.me/searchTerms/search?ses=Google&location_opt…">
<!ENTITY aboutTor.torInfo1.label "معلومات إضافية:">
<!ENTITY aboutTor.torInfo2.label "الدولة وعنوان الإنترنت:">
diff --git a/src/chrome/locale/ar/brand.dtd b/src/chrome/locale/ar/brand.dtd
index 3faaf01..b599c91 100644
--- a/src/chrome/locale/ar/brand.dtd
+++ b/src/chrome/locale/ar/brand.dtd
@@ -6,3 +6,9 @@
<!ENTITY brandFullName "متصفح تور">
<!ENTITY vendorShortName "مشروع تور">
<!ENTITY trademarkInfo.part1 "فايرفوكس وشعارات فايرفوكس علامات تجارية مسجلة لمؤسسة موزيلا.">
+
+<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
+<!ENTITY plugins.installed.find "Click to load installed system plugins">
+<!ENTITY plugins.installed.enable "Enable plugins">
+<!ENTITY plugins.installed.disable "Disable plugins">
+<!ENTITY plugins.installed.disable.tip "Click to prevent loading system plugins">
diff --git a/src/chrome/locale/ar/browser.properties b/src/chrome/locale/ar/browser.properties
index 295a03a..8849b67 100644
--- a/src/chrome/locale/ar/browser.properties
+++ b/src/chrome/locale/ar/browser.properties
@@ -3,11 +3,3 @@ browser.startup.homepage=about:tor
# Spell checker dictionary
spellchecker.dictionary=en_US
-
-# Default search engine
-browser.search.defaultenginename=Startpage
-
-# Search engine order (order displayed in the search bar dropdown)
-browser.search.order.1=Startpage
-browser.search.order.2=DuckDuckGo
-browser.search.order.3=Google
diff --git a/src/chrome/locale/ar/torbutton.dtd b/src/chrome/locale/ar/torbutton.dtd
index 94ef3aa..2928c62 100644
--- a/src/chrome/locale/ar/torbutton.dtd
+++ b/src/chrome/locale/ar/torbutton.dtd
@@ -24,17 +24,19 @@
<!ENTITY torbutton.pref_connection_more_info.text "زر تور مفعّل حاليًا. إن كنت تريد تغيير إعدادات الوسيط غير المتعلقة بتور، فضلاً عطل زر تور أولاً ثم عد إلى هنا. إن كنت تريد تعديل إعدادات زر تور فاستخدم نافذة تفضيلات زر تور.">
<!ENTITY torbutton.context_menu.new_identity "هوية جديدة">
<!ENTITY torbutton.context_menu.new_identity_key "أنا">
+<!ENTITY torbutton.context_menu.new_circuit "New Tor Circuit for this Site">
+<!ENTITY torbutton.context_menu.new_circuit_key "C">
<!ENTITY torbutton.context_menu.toggle "بدّل حالة تور">
<!ENTITY torbutton.context_menu.toggle.key "ت">
-<!ENTITY torbutton.context_menu.preferences "التفضيلات...">
+<!ENTITY torbutton.context_menu.preferences "Privacy and Security Settings…">
<!ENTITY torbutton.context_menu.preferences.key "ف">
<!ENTITY torbutton.context_menu.about "عن زر تور...">
<!ENTITY torbutton.context_menu.about.key "ح">
-<!ENTITY torbutton.context_menu.networksettings "فتح إعدادات الشبكة...">
+<!ENTITY torbutton.context_menu.networksettings "Tor Network Settings…">
<!ENTITY torbutton.context_menu.networksettings.key "ح">
-<!ENTITY torbutton.context_menu.downloadUpdate "تنزيل تحديث حزمة متصفح تور...">
+<!ENTITY torbutton.context_menu.downloadUpdate "Check for Tor Browser Update…">
<!ENTITY torbutton.context_menu.downloadUpdate.key "ت">
-<!ENTITY torbutton.context_menu.cookieProtections "كعكة الحماية">
+<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections…">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.context_menu.copyTor "نسخ رابط تور">
<!ENTITY torbutton.context_menu.copyTor.key "p">
@@ -155,3 +157,4 @@
<!ENTITY torbutton.prefs.sec_med_high "شبه عالٍ">
<!ENTITY torbutton.prefs.sec_high "عالٍ">
<!ENTITY torbutton.prefs.sec_custom "قيم مخصصة">
+<!ENTITY torbutton.circuit_display.title "Tor circuit for this site">
diff --git a/src/chrome/locale/ar/torbutton.properties b/src/chrome/locale/ar/torbutton.properties
index f35285f..8846f57 100644
--- a/src/chrome/locale/ar/torbutton.properties
+++ b/src/chrome/locale/ar/torbutton.properties
@@ -1,5 +1,10 @@
torbutton.button.tooltip.disabled = فعّل تور
torbutton.button.tooltip.enabled = عطّل تور
+torbutton.circuit_display.internet = Internet
+torbutton.circuit_display.ip_unknown = IP unknown
+torbutton.circuit_display.this_browser = This browser
+torbutton.circuit_display.tor_bridge = Bridge
+torbutton.circuit_display.unknown_country = Unknown country
torbutton.panel.tooltip.disabled = انقر لتفعيل تور
torbutton.panel.tooltip.enabled = انقر لتعطيل تور
torbutton.panel.plugins.disabled = انقر لتفعيل الملحقات
@@ -46,6 +51,7 @@ torbutton.popup.short_torbrowser = معلومات هامة عن زر تور \n\n
torbutton.popup.confirm_plugins = البرامج الإضافية مثل فلاش تستطيع ان تضر بخصوصيتك و تكشف هويتك.\n\nو تستطيع ايضا ان تتجنب تور و تكشف عن مكانك الحالي و عنوان الأي بي الخاص بك.\n\nهل أنت متأكد أنك تريد تفعيل البرامج الإضافية؟\n\n
torbutton.popup.never_ask_again = لا تسألني مرة اخري
+torbutton.popup.confirm_newnym = Tor Browser will close all windows and tabs. All website sessions will be lost.\n\nRestart Tor Browser now to reset your identity?\n\n
# Canvas permission prompt. Strings are kept here for ease of translation.
canvas.siteprompt=هذا الموقع (٪ S) حاول استخراج بيانات الصورة HTML5، والتي يمكن استخدامها لتحديد مكانك وتحديد الكومبيوتر.\n\nهل تريد أن يسمح متصفح Tor لهذا الموقع لاستخراج بيانات الصورة ؟
diff --git a/src/chrome/locale/de/aboutTor.dtd b/src/chrome/locale/de/aboutTor.dtd
index beab0ff..f757363 100644
--- a/src/chrome/locale/de/aboutTor.dtd
+++ b/src/chrome/locale/de/aboutTor.dtd
@@ -1,5 +1,5 @@
<!--
- - Copyright (c) 2014, The Tor Project, Inc.
+ - Copyright (c) 2015, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -8,7 +8,7 @@
<!ENTITY aboutTor.outOfDateTorOn.label "Dieser Browser ist nicht mehr aktuell.">
<!ENTITY aboutTor.outOfDateTorOff.label "DIESER Browser ist auch veraltet.">
-<!ENTITY aboutTor.outOfDate2.label "Auf die Zwiebel klicken und dann die Aktualisierung des Tor-Browser-Paketes herunterladen.">
+<!ENTITY aboutTor.outOfDate2.label "Klicke auf die Zwiebel und dann ">
<!ENTITY aboutTor.check.label "Tor-Netzwerkeinstellungen testen">
@@ -25,6 +25,7 @@
<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
+<!ENTITY aboutTor.searchDCPost.link "https://search.disconnect.me/searchTerms/search?ses=Google&location_opt…">
<!ENTITY aboutTor.torInfo1.label "Zusätzliche Informationen:">
<!ENTITY aboutTor.torInfo2.label "Land & IP-Adresse:">
diff --git a/src/chrome/locale/de/brand.dtd b/src/chrome/locale/de/brand.dtd
index e3a2aae..6089707 100644
--- a/src/chrome/locale/de/brand.dtd
+++ b/src/chrome/locale/de/brand.dtd
@@ -6,3 +6,9 @@
<!ENTITY brandFullName "Tor-Browser">
<!ENTITY vendorShortName "Tor-Projekt">
<!ENTITY trademarkInfo.part1 "Firefox und die Firefox-Logos sind Warenzeichen der Mozilla Foundation.">
+
+<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
+<!ENTITY plugins.installed.find "Klicke um System-Erweiterungen zu laden">
+<!ENTITY plugins.installed.enable "Erweiterungen aktivieren">
+<!ENTITY plugins.installed.disable "Erweiterungen deaktivieren">
+<!ENTITY plugins.installed.disable.tip "Klicke um das Laden von System-Erweiterungen zu verhindern">
diff --git a/src/chrome/locale/de/browser.properties b/src/chrome/locale/de/browser.properties
index df47914..c8a19c5 100644
--- a/src/chrome/locale/de/browser.properties
+++ b/src/chrome/locale/de/browser.properties
@@ -3,11 +3,3 @@ browser.startup.homepage=about:tor
# Spell checker dictionary
spellchecker.dictionary=de_DE
-
-# Default search engine
-browser.search.defaultenginename=Startseite
-
-# Search engine order (order displayed in the search bar dropdown)
-browser.search.order.1=Startseite
-browser.search.order.2=DuckDuckGo
-browser.search.order.3=Google
diff --git a/src/chrome/locale/de/torbutton.dtd b/src/chrome/locale/de/torbutton.dtd
index e0199c4..1772e47 100644
--- a/src/chrome/locale/de/torbutton.dtd
+++ b/src/chrome/locale/de/torbutton.dtd
@@ -24,17 +24,19 @@
<!ENTITY torbutton.pref_connection_more_info.text "Torbutten ist momentan aktiv. Wenn Sie die Vermittlungsservereinstellungen für den Betrieb ohne Tor ändern möchten, bitte zuerst Torbutton deaktivieren. Zum Ändern der Tor-Einstellungen bitte das Fenster »Torbutton-Einstellungen« verwenden.">
<!ENTITY torbutton.context_menu.new_identity "Neue Identität">
<!ENTITY torbutton.context_menu.new_identity_key "N">
+<!ENTITY torbutton.context_menu.new_circuit "Neuer Kanal für diese Seite">
+<!ENTITY torbutton.context_menu.new_circuit_key "B">
<!ENTITY torbutton.context_menu.toggle "Tor-Modus umschalten">
<!ENTITY torbutton.context_menu.toggle.key "T">
-<!ENTITY torbutton.context_menu.preferences "Einstellungen …">
+<!ENTITY torbutton.context_menu.preferences "Privatssphäre- und Sicherheits-Einstellungen...">
<!ENTITY torbutton.context_menu.preferences.key "E">
<!ENTITY torbutton.context_menu.about "Über Torbutton …">
<!ENTITY torbutton.context_menu.about.key "Ü">
-<!ENTITY torbutton.context_menu.networksettings "Netzwerkeinstellungen öffnen …">
+<!ENTITY torbutton.context_menu.networksettings "Tor-Netzwerk-Einstellungen...">
<!ENTITY torbutton.context_menu.networksettings.key "N">
-<!ENTITY torbutton.context_menu.downloadUpdate "Aktualisierung des Tor-Browser-Pakets herunterladen …">
+<!ENTITY torbutton.context_menu.downloadUpdate "Suche nach Tor-Browser-Aktualisierungen...">
<!ENTITY torbutton.context_menu.downloadUpdate.key "A">
-<!ENTITY torbutton.context_menu.cookieProtections "Cookie-Schutzvorkehrungen">
+<!ENTITY torbutton.context_menu.cookieProtections "Cookie-Schutz...">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.context_menu.copyTor "Tor-Adresse kopieren">
<!ENTITY torbutton.context_menu.copyTor.key "k">
@@ -155,3 +157,4 @@
<!ENTITY torbutton.prefs.sec_med_high "oberes Mittel">
<!ENTITY torbutton.prefs.sec_high "hoch">
<!ENTITY torbutton.prefs.sec_custom "Eigene Werte">
+<!ENTITY torbutton.circuit_display.title "Tor-Kanal für diese Seite">
diff --git a/src/chrome/locale/de/torbutton.properties b/src/chrome/locale/de/torbutton.properties
index 29bfaf4..ba20cf9 100644
--- a/src/chrome/locale/de/torbutton.properties
+++ b/src/chrome/locale/de/torbutton.properties
@@ -1,5 +1,10 @@
torbutton.button.tooltip.disabled = Tor aktivieren
torbutton.button.tooltip.enabled = Tor deaktivieren
+torbutton.circuit_display.internet = Internet
+torbutton.circuit_display.ip_unknown = IP unbekannt
+torbutton.circuit_display.this_browser = Dieser Browser
+torbutton.circuit_display.tor_bridge = Bridge
+torbutton.circuit_display.unknown_country = Unbekanntes Land
torbutton.panel.tooltip.disabled = Klicken, um Tor zu aktivieren
torbutton.panel.tooltip.enabled = Klicken, um Tor zu deaktivieren
torbutton.panel.plugins.disabled = Klicken, um die Erweiterungen zu aktivieren
@@ -46,6 +51,7 @@ torbutton.popup.short_torbrowser = Wichtige Torbutton-Information!\n\nTorbutton
torbutton.popup.confirm_plugins = Erweiterungen wie Flash können ihre Privatsphäre und Anonymität schädigen.\n\nSie können auch das Tor-Netzwerk umgehen, und Ihren derzeitigen Aufenthaltsort und ihre IP-Adresse verraten.\n\nSind Sie sicher, dass Sie Erweiterungen aktivieren wollen?\n\n
torbutton.popup.never_ask_again = Nicht mehr nachfragen
+torbutton.popup.confirm_newnym = Tor-Browser wird alle Fenster und Tabs schließen. Alle Webseiten-Sitzungen gehen verloren.\n\nTor-Browser jetzt neu starten um Ihre Identität zurückzusetzen?\n\n
# Canvas permission prompt. Strings are kept here for ease of translation.
canvas.siteprompt=Die Internetseite (%S) hat versucht, HTML5-Canvas-Bilddaten zu extrahieren, die verwendet werden können, um Ihren Rechner eindeutig zu identifizieren. \n\nSoll Tor-Browser es dieser Internetseite erlauben HTML5-Canvas-Bilddaten zu extrahieren?
diff --git a/src/chrome/locale/es/aboutTor.dtd b/src/chrome/locale/es/aboutTor.dtd
index af9ff47..f2c865c 100644
--- a/src/chrome/locale/es/aboutTor.dtd
+++ b/src/chrome/locale/es/aboutTor.dtd
@@ -1,5 +1,5 @@
<!--
- - Copyright (c) 2014, The Tor Project, Inc.
+ - Copyright (c) 2015, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -8,7 +8,7 @@
<!ENTITY aboutTor.outOfDateTorOn.label "SIN EMBARGO, este navegador no está actualizado.">
<!ENTITY aboutTor.outOfDateTorOff.label "ADEMÁS, este navegador tampoco está actualizado.">
-<!ENTITY aboutTor.outOfDate2.label "Haga clic en la cebolla y luego elija 'Descargar actualización del Paquete de Navegador Tor'.">
+<!ENTITY aboutTor.outOfDate2.label "Haga clic en la cebolla y luego seleccione Comprobar actualizaciones del Navegador Tor.">
<!ENTITY aboutTor.check.label "Probar las preferencias de red Tor">
@@ -25,6 +25,7 @@
<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
+<!ENTITY aboutTor.searchDCPost.link "https://search.disconnect.me/searchTerms/search?ses=Google&location_opt…">
<!ENTITY aboutTor.torInfo1.label "Información adicional:">
<!ENTITY aboutTor.torInfo2.label "País y dirección IP:">
diff --git a/src/chrome/locale/es/brand.dtd b/src/chrome/locale/es/brand.dtd
index 7710d47..c2c9e68 100644
--- a/src/chrome/locale/es/brand.dtd
+++ b/src/chrome/locale/es/brand.dtd
@@ -6,3 +6,9 @@
<!ENTITY brandFullName "Navegador Tor">
<!ENTITY vendorShortName "Proyecto Tor">
<!ENTITY trademarkInfo.part1 "Firefox y los logotipos de Firefox son marcas registradas de la Mozilla Foundation.">
+
+<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
+<!ENTITY plugins.installed.find "Haga clic para cargar los complementos de sistema instalados">
+<!ENTITY plugins.installed.enable "Habilitar complementos">
+<!ENTITY plugins.installed.disable "Deshabilitar complementos">
+<!ENTITY plugins.installed.disable.tip "Haga clic para prevenir que se carguen complementos de sistema">
diff --git a/src/chrome/locale/es/browser.properties b/src/chrome/locale/es/browser.properties
index b236c3c..173fa7b 100644
--- a/src/chrome/locale/es/browser.properties
+++ b/src/chrome/locale/es/browser.properties
@@ -3,11 +3,3 @@ browser.startup.homepage=about:tor
# Spell checker dictionary
spellchecker.dictionary=es-ES
-
-# Default search engine
-browser.search.defaultenginename=Startpage
-
-# Search engine order (order displayed in the search bar dropdown)
-browser.search.order.1=Startpage
-browser.search.order.2=DuckDuckGo
-browser.search.order.3=Google
diff --git a/src/chrome/locale/es/torbutton.dtd b/src/chrome/locale/es/torbutton.dtd
index c51f7f9..c33695c 100644
--- a/src/chrome/locale/es/torbutton.dtd
+++ b/src/chrome/locale/es/torbutton.dtd
@@ -24,17 +24,19 @@
<!ENTITY torbutton.pref_connection_more_info.text "Torbutton está activo. Si desea cambiar la configuración para proxy de su navegación sin Tor, desactive Torbutton y regrese aquí. Si desea cambiar su configuración para Tor, use la ventana de preferencias de Torbutton.">
<!ENTITY torbutton.context_menu.new_identity "Nueva identidad (nueva instancia y conexiones de Tor)">
<!ENTITY torbutton.context_menu.new_identity_key "I">
+<!ENTITY torbutton.context_menu.new_circuit "Nuevo circuito Tor para este sitio">
+<!ENTITY torbutton.context_menu.new_circuit_key "C">
<!ENTITY torbutton.context_menu.toggle "Cambiar estado de Tor">
<!ENTITY torbutton.context_menu.toggle.key "T">
-<!ENTITY torbutton.context_menu.preferences "Preferencias...">
+<!ENTITY torbutton.context_menu.preferences "Configuración de privacidad y seguridad...">
<!ENTITY torbutton.context_menu.preferences.key "P">
<!ENTITY torbutton.context_menu.about "Acerca de Torbutton...">
<!ENTITY torbutton.context_menu.about.key "A">
-<!ENTITY torbutton.context_menu.networksettings "Abrir configuración de red…">
+<!ENTITY torbutton.context_menu.networksettings "Configuración de red Tor...">
<!ENTITY torbutton.context_menu.networksettings.key "G">
-<!ENTITY torbutton.context_menu.downloadUpdate "Descargar actualización del Paquete de Navegador Tor">
+<!ENTITY torbutton.context_menu.downloadUpdate "Comprobar actualización del Navegador Tor...">
<!ENTITY torbutton.context_menu.downloadUpdate.key "a">
-<!ENTITY torbutton.context_menu.cookieProtections "Protecciones de cookie">
+<!ENTITY torbutton.context_menu.cookieProtections "Protecciones de cookie...">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.context_menu.copyTor "Copiar URL de Tor">
<!ENTITY torbutton.context_menu.copyTor.key "U">
@@ -155,3 +157,4 @@
<!ENTITY torbutton.prefs.sec_med_high "Medio-Alto">
<!ENTITY torbutton.prefs.sec_high "Alto">
<!ENTITY torbutton.prefs.sec_custom "Valores Personalizados">
+<!ENTITY torbutton.circuit_display.title "Circuito Tor para este sitio">
diff --git a/src/chrome/locale/es/torbutton.properties b/src/chrome/locale/es/torbutton.properties
index f40fc06..8cd1ed5 100644
--- a/src/chrome/locale/es/torbutton.properties
+++ b/src/chrome/locale/es/torbutton.properties
@@ -1,5 +1,10 @@
torbutton.button.tooltip.disabled = Habilitar Tor
torbutton.button.tooltip.enabled = Deshabilitar Tor
+torbutton.circuit_display.internet = Internet
+torbutton.circuit_display.ip_unknown = IP desconocida
+torbutton.circuit_display.this_browser = Este navegador
+torbutton.circuit_display.tor_bridge = Repetior puente (bridge)
+torbutton.circuit_display.unknown_country = País desconocido
torbutton.panel.tooltip.disabled = Haga clic para habilitar Tor
torbutton.panel.tooltip.enabled = Haga clic para deshabilitar Tor
torbutton.panel.plugins.disabled = Haga clic para habilitar extensiones (plugins).
@@ -46,6 +51,7 @@ torbutton.popup.short_torbrowser = ¡Información importante sobre Torbutton! \n
torbutton.popup.confirm_plugins = Complementos (plugins) como Flash pueden dañar su privacidad y anonimato.\n\nTambién pueden evitar Tor, revelando su actual ubicación y dirección IP.\n\n¿Está seguro de que quiere habilitar los complementos?\n\n
torbutton.popup.never_ask_again = No volver a preguntar
+torbutton.popup.confirm_newnym = El Navegador Tor cerrará todas las ventanas y pestañas. Todas las sesiones de sitios web se perderán.\n\n¿Reiniciar el Navegador Tor para restablecer su identidad?\n\n
# Canvas permission prompt. Strings are kept here for ease of translation.
canvas.siteprompt=Este sitio web (%s) intentó extraer datos de imagen de un lienzo HTML5, que podrían usarse para identificar de forma única su computadora.\n\n¿Debe permitir el Navegador Tor a este sitio web extraer los datos de imagen de lienzos HTML5?
diff --git a/src/chrome/locale/eu/aboutTor.dtd b/src/chrome/locale/eu/aboutTor.dtd
index 7afe64b..692e1d1 100644
--- a/src/chrome/locale/eu/aboutTor.dtd
+++ b/src/chrome/locale/eu/aboutTor.dtd
@@ -1,5 +1,5 @@
<!--
- - Copyright (c) 2014, The Tor Project, Inc.
+ - Copyright (c) 2015, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -8,7 +8,7 @@
<!ENTITY aboutTor.outOfDateTorOn.label "HALA ERE, nabigatzaile hau zaharkituta dago.">
<!ENTITY aboutTor.outOfDateTorOff.label "BAITA, nabigatzaile hau zaharkituta dago.">
-<!ENTITY aboutTor.outOfDate2.label "Tipulan sakatu eta ondoren hautatu Tor Browser Bundle eguneraketa deskargatu.">
+<!ENTITY aboutTor.outOfDate2.label "Click on the onion and then choose Check for Tor Browser Update.">
<!ENTITY aboutTor.check.label "Tor sare ezarpenak frogatu">
@@ -25,6 +25,7 @@
<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
+<!ENTITY aboutTor.searchDCPost.link "https://search.disconnect.me/searchTerms/search?ses=Google&location_opt…">
<!ENTITY aboutTor.torInfo1.label "Informazio gehiago:">
<!ENTITY aboutTor.torInfo2.label "Herrialde eta IP helbidea:">
diff --git a/src/chrome/locale/eu/brand.dtd b/src/chrome/locale/eu/brand.dtd
index f144e27..c4f0039 100644
--- a/src/chrome/locale/eu/brand.dtd
+++ b/src/chrome/locale/eu/brand.dtd
@@ -6,3 +6,9 @@
<!ENTITY brandFullName "Tor Browser">
<!ENTITY vendorShortName "Tor Project">
<!ENTITY trademarkInfo.part1 "Firefox eta Firefox logoak Mozilla Fundazioaren marka errgistratuak dira.">
+
+<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
+<!ENTITY plugins.installed.find "Click to load installed system plugins">
+<!ENTITY plugins.installed.enable "Enable plugins">
+<!ENTITY plugins.installed.disable "Disable plugins">
+<!ENTITY plugins.installed.disable.tip "Click to prevent loading system plugins">
diff --git a/src/chrome/locale/eu/browser.properties b/src/chrome/locale/eu/browser.properties
index 295a03a..8849b67 100644
--- a/src/chrome/locale/eu/browser.properties
+++ b/src/chrome/locale/eu/browser.properties
@@ -3,11 +3,3 @@ browser.startup.homepage=about:tor
# Spell checker dictionary
spellchecker.dictionary=en_US
-
-# Default search engine
-browser.search.defaultenginename=Startpage
-
-# Search engine order (order displayed in the search bar dropdown)
-browser.search.order.1=Startpage
-browser.search.order.2=DuckDuckGo
-browser.search.order.3=Google
diff --git a/src/chrome/locale/eu/torbutton.dtd b/src/chrome/locale/eu/torbutton.dtd
index 3c6d032..14f216f 100644
--- a/src/chrome/locale/eu/torbutton.dtd
+++ b/src/chrome/locale/eu/torbutton.dtd
@@ -24,17 +24,19 @@
<!ENTITY torbutton.pref_connection_more_info.text "Une honetan Torbutton gaituta dago. Zure ez-Tor proxy ezarpenak aldatu nahi badituzu, mesedez ezgaitu Torbutton eta hona bueltatu. Zure Tor ezarpenak aldatu nahi badituzu, mesedez erabili Torbutton ezarpen leihoa.">
<!ENTITY torbutton.context_menu.new_identity "Nortasun berria">
<!ENTITY torbutton.context_menu.new_identity_key "I">
+<!ENTITY torbutton.context_menu.new_circuit "New Tor Circuit for this Site">
+<!ENTITY torbutton.context_menu.new_circuit_key "C">
<!ENTITY torbutton.context_menu.toggle "Aldatu Toren egoera">
<!ENTITY torbutton.context_menu.toggle.key "T">
-<!ENTITY torbutton.context_menu.preferences "Hobespenak...">
+<!ENTITY torbutton.context_menu.preferences "Privacy and Security Settings…">
<!ENTITY torbutton.context_menu.preferences.key "P">
<!ENTITY torbutton.context_menu.about "Torbuttoni buruz...">
<!ENTITY torbutton.context_menu.about.key "A">
-<!ENTITY torbutton.context_menu.networksettings "Sare ezarpenak ireki...">
+<!ENTITY torbutton.context_menu.networksettings "Tor Network Settings…">
<!ENTITY torbutton.context_menu.networksettings.key "S">
-<!ENTITY torbutton.context_menu.downloadUpdate "Deskargatu Tor Browser Bundle eguneraketa...">
+<!ENTITY torbutton.context_menu.downloadUpdate "Check for Tor Browser Update…">
<!ENTITY torbutton.context_menu.downloadUpdate.key "U">
-<!ENTITY torbutton.context_menu.cookieProtections "Cookie Babesak">
+<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections…">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.context_menu.copyTor "Kopiatu Tor URLa">
<!ENTITY torbutton.context_menu.copyTor.key "p">
@@ -44,7 +46,7 @@
<!ENTITY torbutton.context_menu.openTorWindow.key "d">
<!ENTITY torbutton.button.label "Torbutton">
<!ENTITY torbutton.button.tooltip "Sakatu Torbutton abiarazteko">
-<!ENTITY torbutton.prefs.privacy_security_settings "Privacy and Security Settings">
+<!ENTITY torbutton.prefs.privacy_security_settings "Pribatutasun eta segurtasun ezarpenak">
<!ENTITY torbutton.prefs.block_thread "Blokeatu historia irakurketak Tor bitartean (erabakigarria)">
<!ENTITY torbutton.prefs.block_thwrite "Blokeatu historia idazketak Tor bitartean (gomendatua)">
<!ENTITY torbutton.prefs.block_nthread "Blokeatu historia irakurketak Ez-Tor bitartean (hautazkoa)">
@@ -149,9 +151,10 @@
<!ENTITY torbutton.prefs.restrict_thirdparty "Hirugarrenen cookie-ak eta beste jarraipen datuak murriztu">
<!ENTITY torbutton.prefs.block_plugins "Nabigatzaile pluginak ezgaitu (Flash bezala)">
<!ENTITY torbutton.prefs.resist_fingerprinting "Zu beste Tor Browser erabiltzaileengandik nabarmentzen zaituzten xehetasunak aldatu">
-<!ENTITY torbutton.prefs.sec_caption "Security Level">
-<!ENTITY torbutton.prefs.sec_low "Low (default)">
-<!ENTITY torbutton.prefs.sec_med_low "Medium-Low">
-<!ENTITY torbutton.prefs.sec_med_high "Medium-High">
-<!ENTITY torbutton.prefs.sec_high "High">
-<!ENTITY torbutton.prefs.sec_custom "Custom Values">
+<!ENTITY torbutton.prefs.sec_caption "Segurtasun maila">
+<!ENTITY torbutton.prefs.sec_low "Baxua (lehentsia)">
+<!ENTITY torbutton.prefs.sec_med_low "Ertaina-baxua">
+<!ENTITY torbutton.prefs.sec_med_high "Ertaina-altua">
+<!ENTITY torbutton.prefs.sec_high "Altua">
+<!ENTITY torbutton.prefs.sec_custom "Balio pertsonalizatuak">
+<!ENTITY torbutton.circuit_display.title "Tor circuit for this site">
diff --git a/src/chrome/locale/eu/torbutton.properties b/src/chrome/locale/eu/torbutton.properties
index bd4f51e..d856bec 100644
--- a/src/chrome/locale/eu/torbutton.properties
+++ b/src/chrome/locale/eu/torbutton.properties
@@ -1,5 +1,10 @@
torbutton.button.tooltip.disabled = Tor gaitu
torbutton.button.tooltip.enabled = Tor ezgaitu
+torbutton.circuit_display.internet = Internet
+torbutton.circuit_display.ip_unknown = IP unknown
+torbutton.circuit_display.this_browser = This browser
+torbutton.circuit_display.tor_bridge = Bridge
+torbutton.circuit_display.unknown_country = Unknown country
torbutton.panel.tooltip.disabled = Sakatu Tor gaitzeko
torbutton.panel.tooltip.enabled = Sakatu Tor ezgaitzeko
torbutton.panel.plugins.disabled = Sakatu gehigarriak gaitzeko
@@ -46,6 +51,7 @@ torbutton.popup.short_torbrowser = Torbutton informazio garrantzitsua!\n\nTorbut
torbutton.popup.confirm_plugins = Flash bezalako pluginek zure pribatutasuna eta anonimotasuna kaltetu dezakete.\n\nTor saltatu dezakete zure uneko kokalekua eta IP helbidea erakusteko.\n\nPluginak gaitu nahi dituzulaz ziur al zaude?\n\n
torbutton.popup.never_ask_again = Ez nazazu galdetu berriz
+torbutton.popup.confirm_newnym = Tor Browser will close all windows and tabs. All website sessions will be lost.\n\nRestart Tor Browser now to reset your identity?\n\n
# Canvas permission prompt. Strings are kept here for ease of translation.
canvas.siteprompt=Webgune hau (% S) HTML5 canvas irudi datuak ateratzen saiatu da, eta zure ordenagailua identifikatzeko erabil daitezke.\n\nTor Nabigatzailea baimendu nahi duzu webgune honetan HTML5 canvas irudiaren datuak ateratzeko?
diff --git a/src/chrome/locale/fa/aboutTor.dtd b/src/chrome/locale/fa/aboutTor.dtd
index e0768d3..8c94506 100644
--- a/src/chrome/locale/fa/aboutTor.dtd
+++ b/src/chrome/locale/fa/aboutTor.dtd
@@ -1,5 +1,5 @@
<!--
- - Copyright (c) 2014, The Tor Project, Inc.
+ - Copyright (c) 2015, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -8,7 +8,7 @@
<!ENTITY aboutTor.outOfDateTorOn.label "با این حال ٫ این مرورگر قدیمی می باشد.">
<!ENTITY aboutTor.outOfDateTorOff.label "همچنین ٫ این مرورگر قدیمی می باشد .">
-<!ENTITY aboutTor.outOfDate2.label "بر روی پیاز(نماد تور) کلیک نمایید و بسته مرورگر تور را جهت بروزرسانی دریافت نمایید.">
+<!ENTITY aboutTor.outOfDate2.label "Click on the onion and then choose Check for Tor Browser Update.">
<!ENTITY aboutTor.check.label "تنظیمات شبکهی تور را بررسی کنید">
@@ -25,6 +25,7 @@
<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
+<!ENTITY aboutTor.searchDCPost.link "https://search.disconnect.me/searchTerms/search?ses=Google&location_opt…">
<!ENTITY aboutTor.torInfo1.label "اطلاعات بيشتر">
<!ENTITY aboutTor.torInfo2.label "كشور و آدرس آى پی:">
diff --git a/src/chrome/locale/fa/brand.dtd b/src/chrome/locale/fa/brand.dtd
index b11f2dc..62d877c 100644
--- a/src/chrome/locale/fa/brand.dtd
+++ b/src/chrome/locale/fa/brand.dtd
@@ -6,3 +6,9 @@
<!ENTITY brandFullName "مرورگر تور">
<!ENTITY vendorShortName "پروژهٔ تور">
<!ENTITY trademarkInfo.part1 "فایرفاکس و لوگو فایرفاکس نشان تجاری بنیاد موزیلا می باشند.">
+
+<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
+<!ENTITY plugins.installed.find "Click to load installed system plugins">
+<!ENTITY plugins.installed.enable "Enable plugins">
+<!ENTITY plugins.installed.disable "Disable plugins">
+<!ENTITY plugins.installed.disable.tip "Click to prevent loading system plugins">
diff --git a/src/chrome/locale/fa/browser.properties b/src/chrome/locale/fa/browser.properties
index 37e0215..8849b67 100644
--- a/src/chrome/locale/fa/browser.properties
+++ b/src/chrome/locale/fa/browser.properties
@@ -3,11 +3,3 @@ browser.startup.homepage=about:tor
# Spell checker dictionary
spellchecker.dictionary=en_US
-
-# Default search engine
-browser.search.defaultenginename=Startpage
-
-# Search engine order (order displayed in the search bar dropdown)
-browser.search.order.1=Startpage
-browser.search.order.2=DuckDuckGo
-browser.search.order.3=گوگل کانادا
diff --git a/src/chrome/locale/fa/torbutton.dtd b/src/chrome/locale/fa/torbutton.dtd
index 07c0bc7..1c999fd 100644
--- a/src/chrome/locale/fa/torbutton.dtd
+++ b/src/chrome/locale/fa/torbutton.dtd
@@ -24,17 +24,19 @@
<!ENTITY torbutton.pref_connection_more_info.text "دکمه تُرهم اکنون فعال شده است.اگر میخواهيد تنظيمات پراکسی غيرمرتبط با تُر را تغيير دهيد، لطفا دکمه تُر را غيرفعال کنيد و دوباره به اينجا بازگرديد. اگر ميخواهيد تنظيمات تُر را تغيير دهيد، از پنجره تنظيمات دکمه تُر استفاده کنيد.">
<!ENTITY torbutton.context_menu.new_identity "هویت جدید">
<!ENTITY torbutton.context_menu.new_identity_key "من">
+<!ENTITY torbutton.context_menu.new_circuit "New Tor Circuit for this Site">
+<!ENTITY torbutton.context_menu.new_circuit_key "C">
<!ENTITY torbutton.context_menu.toggle "ضامن فعال/غيرفعال کردن تُر">
<!ENTITY torbutton.context_menu.toggle.key "T">
-<!ENTITY torbutton.context_menu.preferences "تنظيمات...">
+<!ENTITY torbutton.context_menu.preferences "Privacy and Security Settings…">
<!ENTITY torbutton.context_menu.preferences.key "P">
<!ENTITY torbutton.context_menu.about "درباره ي دکمه تُر...">
<!ENTITY torbutton.context_menu.about.key "A">
-<!ENTITY torbutton.context_menu.networksettings "باز کردن تنظیمات شبکه">
+<!ENTITY torbutton.context_menu.networksettings "Tor Network Settings…">
<!ENTITY torbutton.context_menu.networksettings.key "S">
-<!ENTITY torbutton.context_menu.downloadUpdate "بهروزرساندن مرورگر تُر">
+<!ENTITY torbutton.context_menu.downloadUpdate "Check for Tor Browser Update…">
<!ENTITY torbutton.context_menu.downloadUpdate.key "U">
-<!ENTITY torbutton.context_menu.cookieProtections "حفاظت کلوچکها">
+<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections…">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.context_menu.copyTor "کپی به نشانی اينترنتی">
<!ENTITY torbutton.context_menu.copyTor.key "p">
@@ -155,3 +157,4 @@
<!ENTITY torbutton.prefs.sec_med_high "متوسط - بالا">
<!ENTITY torbutton.prefs.sec_high "زیاد">
<!ENTITY torbutton.prefs.sec_custom "تنظیم سفارشی">
+<!ENTITY torbutton.circuit_display.title "Tor circuit for this site">
diff --git a/src/chrome/locale/fa/torbutton.properties b/src/chrome/locale/fa/torbutton.properties
index 265aa65..8e02910 100644
--- a/src/chrome/locale/fa/torbutton.properties
+++ b/src/chrome/locale/fa/torbutton.properties
@@ -1,5 +1,10 @@
torbutton.button.tooltip.disabled = فعال کردن تُر
torbutton.button.tooltip.enabled = غيرفعال کردن تُر
+torbutton.circuit_display.internet = Internet
+torbutton.circuit_display.ip_unknown = IP unknown
+torbutton.circuit_display.this_browser = This browser
+torbutton.circuit_display.tor_bridge = Bridge
+torbutton.circuit_display.unknown_country = Unknown country
torbutton.panel.tooltip.disabled = برای فعال کردن تُرکليک کنيد
torbutton.panel.tooltip.enabled = برای غيرفعال کردن تُر کليک کنيد
torbutton.panel.plugins.disabled = برای فعال کردن پلاگين ها کليک کنيد
@@ -46,6 +51,7 @@ torbutton.popup.short_torbrowser = اطلاعلت مهم Torbutton!\n\nTorbutton
torbutton.popup.confirm_plugins = پلاگینها مانند فلش، میتوانند اختفا و ناشناس بودن شما را به خطر بیاندازند.\n\nآنها همچنین میتوانند "تر" را دور زده تا موقعیت کنونی و آدرس IP شما را برملا کنند.\n\nمطمئنید که میخواهید پلاگینها را فعال کنید؟\n\n
torbutton.popup.never_ask_again = دیگر هیچگاه این را از من نپرس
+torbutton.popup.confirm_newnym = Tor Browser will close all windows and tabs. All website sessions will be lost.\n\nRestart Tor Browser now to reset your identity?\n\n
# Canvas permission prompt. Strings are kept here for ease of translation.
canvas.siteprompt=این وبسایت (%S) سعی دارد اطلاعات بوم تصویر HTML5 را دریافت کند که ممکن است برای شناسایی منحصر به فرد کامپیوتر شما استفاده شود.\n\nآیا مرورگر تور میبایست اجازه دریافت این اطلاعات را بدهد؟
diff --git a/src/chrome/locale/fr/aboutTor.dtd b/src/chrome/locale/fr/aboutTor.dtd
index 41ad3e5..baeba8e 100644
--- a/src/chrome/locale/fr/aboutTor.dtd
+++ b/src/chrome/locale/fr/aboutTor.dtd
@@ -1,5 +1,5 @@
<!--
- - Copyright (c) 2014, The Tor Project, Inc.
+ - Copyright (c) 2015, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -8,7 +8,7 @@
<!ENTITY aboutTor.outOfDateTorOn.label "CEPENDANT, ce navigateur n'est pas à jour.">
<!ENTITY aboutTor.outOfDateTorOff.label "DE PLUS, ce navigateur n'est pas à jour.">
-<!ENTITY aboutTor.outOfDate2.label "Cliquez sur l'oignon, puis choisissez Télécharger les mises à jour du Tor Browser Bundle.">
+<!ENTITY aboutTor.outOfDate2.label "Cliquez sur l'oignon et choissisez ensuite Vérifier les mises à jour du Tor Browser">
<!ENTITY aboutTor.check.label "Tester les paramètres du réseau Tor">
@@ -25,6 +25,7 @@
<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
+<!ENTITY aboutTor.searchDCPost.link "https://search.disconnect.me/searchTerms/search?ses=Google&location_opt…">
<!ENTITY aboutTor.torInfo1.label "Informations supplémentaires :">
<!ENTITY aboutTor.torInfo2.label "Pays & adresse IP :">
diff --git a/src/chrome/locale/fr/brand.dtd b/src/chrome/locale/fr/brand.dtd
index 775472a..4a4f0ea 100644
--- a/src/chrome/locale/fr/brand.dtd
+++ b/src/chrome/locale/fr/brand.dtd
@@ -6,3 +6,9 @@
<!ENTITY brandFullName "Navigateur Tor">
<!ENTITY vendorShortName "Projet Tor">
<!ENTITY trademarkInfo.part1 "Firefox et les logos de Firefox sont des marques déposées de la Fondation Mozilla.">
+
+<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
+<!ENTITY plugins.installed.find "Cliquer pour charger les modules complémentaires du système installés">
+<!ENTITY plugins.installed.enable "Activer les modules complémentaires">
+<!ENTITY plugins.installed.disable "Désactiver les modules complémentaires">
+<!ENTITY plugins.installed.disable.tip "Cliquer pour empêcher le chargement de modules complémentaires du système">
diff --git a/src/chrome/locale/fr/browser.properties b/src/chrome/locale/fr/browser.properties
index e8c588c..3b96d52 100644
--- a/src/chrome/locale/fr/browser.properties
+++ b/src/chrome/locale/fr/browser.properties
@@ -3,11 +3,3 @@ browser.startup.homepage=about:tor
# Spell checker dictionary
spellchecker.dictionary=fr_FR
-
-# Default search engine
-browser.search.defaultenginename=Page d'accueil
-
-# Search engine order (order displayed in the search bar dropdown)
-browser.search.order.1=Page d'accueil
-browser.search.order.2=DuckDuckGo
-browser.search.order.3=Google
diff --git a/src/chrome/locale/fr/torbutton.dtd b/src/chrome/locale/fr/torbutton.dtd
index f72e094..0e7b345 100644
--- a/src/chrome/locale/fr/torbutton.dtd
+++ b/src/chrome/locale/fr/torbutton.dtd
@@ -24,17 +24,19 @@
<!ENTITY torbutton.pref_connection_more_info.text "Torbutton est actuellement activé. Si vous souhaitez modifier vos paramètres proxy non-Tor, veuillez désactiver Torbutton et revenir à cette fenêtre. Si vous souhaitez modifier vos paramètres Tor, veuillez utiliser la fenêtre des préférences Torbutton.">
<!ENTITY torbutton.context_menu.new_identity "Nouvelle identité">
<!ENTITY torbutton.context_menu.new_identity_key "I">
+<!ENTITY torbutton.context_menu.new_circuit "New Tor Circuit for this Site">
+<!ENTITY torbutton.context_menu.new_circuit_key "C">
<!ENTITY torbutton.context_menu.toggle "Activer/Désactiver Tor">
<!ENTITY torbutton.context_menu.toggle.key "T">
-<!ENTITY torbutton.context_menu.preferences "Préférences...">
+<!ENTITY torbutton.context_menu.preferences "Privacy and Security Settings…">
<!ENTITY torbutton.context_menu.preferences.key "P">
<!ENTITY torbutton.context_menu.about "À propos de Torbutton...">
<!ENTITY torbutton.context_menu.about.key "A">
-<!ENTITY torbutton.context_menu.networksettings "Ouvrir les paramètres réseaux...">
+<!ENTITY torbutton.context_menu.networksettings "Tor Network Settings…">
<!ENTITY torbutton.context_menu.networksettings.key "S">
-<!ENTITY torbutton.context_menu.downloadUpdate "Télécharger la mise à jour de Tor Browser Bundle...">
+<!ENTITY torbutton.context_menu.downloadUpdate "Check for Tor Browser Update…">
<!ENTITY torbutton.context_menu.downloadUpdate.key "U">
-<!ENTITY torbutton.context_menu.cookieProtections "Protections de cookies">
+<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections…">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.context_menu.copyTor "Copier l'URL Tor">
<!ENTITY torbutton.context_menu.copyTor.key "p">
@@ -155,3 +157,4 @@
<!ENTITY torbutton.prefs.sec_med_high "Moyen-Haut">
<!ENTITY torbutton.prefs.sec_high "Haut">
<!ENTITY torbutton.prefs.sec_custom "Valeurs personnalisées">
+<!ENTITY torbutton.circuit_display.title "Tor circuit for this site">
diff --git a/src/chrome/locale/fr/torbutton.properties b/src/chrome/locale/fr/torbutton.properties
index 870d293..61083eb 100644
--- a/src/chrome/locale/fr/torbutton.properties
+++ b/src/chrome/locale/fr/torbutton.properties
@@ -1,5 +1,10 @@
torbutton.button.tooltip.disabled = Activer Tor
torbutton.button.tooltip.enabled = Désactiver Tor
+torbutton.circuit_display.internet = Internet
+torbutton.circuit_display.ip_unknown = IP unknown
+torbutton.circuit_display.this_browser = This browser
+torbutton.circuit_display.tor_bridge = Bridge
+torbutton.circuit_display.unknown_country = Unknown country
torbutton.panel.tooltip.disabled = Cliquer pour activer Tor
torbutton.panel.tooltip.enabled = Cliquer pour désactiver Tor
torbutton.panel.plugins.disabled = Cliquer pour activer les plugins
@@ -46,6 +51,7 @@ torbutton.popup.short_torbrowser = Information importante concernant Torbutton!\
torbutton.popup.confirm_plugins = Les greffons tels que Flash peuvent nuire à votre anonymat et vie privée.\n\nIls peuvent également contourner Tor afin de révéler votre position actuelle ainsi que votre adresse IP.\n\nÊtes-vous certain de vouloir activer les greffons ?\n\n
torbutton.popup.never_ask_again = Ne plus me poser la question.
+torbutton.popup.confirm_newnym = Tor Browser will close all windows and tabs. All website sessions will be lost.\n\nRestart Tor Browser now to reset your identity?\n\n
# Canvas permission prompt. Strings are kept here for ease of translation.
canvas.siteprompt=Ce site (%S) tente d'extraire des informations d'image canvas HTML5 qui pourraient être utilisées comme identifiant unique pour votre ordinateur.\n\nTor Browser doit-il autoriser le site à extraire les informations d'image canvas HTML5 ?
diff --git a/src/chrome/locale/it/aboutTor.dtd b/src/chrome/locale/it/aboutTor.dtd
index 09e2064..ae9aeae 100644
--- a/src/chrome/locale/it/aboutTor.dtd
+++ b/src/chrome/locale/it/aboutTor.dtd
@@ -1,5 +1,5 @@
<!--
- - Copyright (c) 2014, The Tor Project, Inc.
+ - Copyright (c) 2015, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -8,7 +8,7 @@
<!ENTITY aboutTor.outOfDateTorOn.label "TUTTAVIA, questo browser non è aggiornato.">
<!ENTITY aboutTor.outOfDateTorOff.label "INOLTRE, questo browser non è aggiornato.">
-<!ENTITY aboutTor.outOfDate2.label "Clicca sulla cipolla e poi scegli Scarica Aggiornamento Tor Browser Bundle.">
+<!ENTITY aboutTor.outOfDate2.label "Click on the onion and then choose Check for Tor Browser Update.">
<!ENTITY aboutTor.check.label "Test Impostazioni della Rete Tor">
@@ -25,6 +25,7 @@
<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
+<!ENTITY aboutTor.searchDCPost.link "https://search.disconnect.me/searchTerms/search?ses=Google&location_opt…">
<!ENTITY aboutTor.torInfo1.label "Ulteriori Info:">
<!ENTITY aboutTor.torInfo2.label "Nazione & Indirizzo IP:">
diff --git a/src/chrome/locale/it/brand.dtd b/src/chrome/locale/it/brand.dtd
index f813020..17fbe4b 100644
--- a/src/chrome/locale/it/brand.dtd
+++ b/src/chrome/locale/it/brand.dtd
@@ -6,3 +6,9 @@
<!ENTITY brandFullName "Tor Browser">
<!ENTITY vendorShortName "Tor Project">
<!ENTITY trademarkInfo.part1 "Firefox e i loghi Firefox sono marchi registrati della Mozilla Foundation.">
+
+<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
+<!ENTITY plugins.installed.find "Click to load installed system plugins">
+<!ENTITY plugins.installed.enable "Enable plugins">
+<!ENTITY plugins.installed.disable "Disable plugins">
+<!ENTITY plugins.installed.disable.tip "Click to prevent loading system plugins">
diff --git a/src/chrome/locale/it/browser.properties b/src/chrome/locale/it/browser.properties
index 295a03a..8849b67 100644
--- a/src/chrome/locale/it/browser.properties
+++ b/src/chrome/locale/it/browser.properties
@@ -3,11 +3,3 @@ browser.startup.homepage=about:tor
# Spell checker dictionary
spellchecker.dictionary=en_US
-
-# Default search engine
-browser.search.defaultenginename=Startpage
-
-# Search engine order (order displayed in the search bar dropdown)
-browser.search.order.1=Startpage
-browser.search.order.2=DuckDuckGo
-browser.search.order.3=Google
diff --git a/src/chrome/locale/it/torbutton.dtd b/src/chrome/locale/it/torbutton.dtd
index 11741a7..18d0a25 100644
--- a/src/chrome/locale/it/torbutton.dtd
+++ b/src/chrome/locale/it/torbutton.dtd
@@ -24,17 +24,19 @@
<!ENTITY torbutton.pref_connection_more_info.text "Torbutton è attualmente attivo. Se vuoi cambiare la configurazione del proxy quando non usi Tor, disabilita Torbutton e torna qui. Se vuoi modificare la configurazione quando usi Tor, usa la finestra delle preferenze di Torbutton.">
<!ENTITY torbutton.context_menu.new_identity "Nuova identità">
<!ENTITY torbutton.context_menu.new_identity_key "I">
+<!ENTITY torbutton.context_menu.new_circuit "New Tor Circuit for this Site">
+<!ENTITY torbutton.context_menu.new_circuit_key "C">
<!ENTITY torbutton.context_menu.toggle "Cambia lo stato di Tor">
<!ENTITY torbutton.context_menu.toggle.key "T">
-<!ENTITY torbutton.context_menu.preferences "Preferenze...">
+<!ENTITY torbutton.context_menu.preferences "Privacy and Security Settings…">
<!ENTITY torbutton.context_menu.preferences.key "P">
<!ENTITY torbutton.context_menu.about "Informazioni su Torbutton...">
<!ENTITY torbutton.context_menu.about.key "A">
-<!ENTITY torbutton.context_menu.networksettings "Apri Impostazioni di Rete...">
+<!ENTITY torbutton.context_menu.networksettings "Tor Network Settings…">
<!ENTITY torbutton.context_menu.networksettings.key "S">
-<!ENTITY torbutton.context_menu.downloadUpdate "Download Aggiornamento Tor Browser Bundle...">
+<!ENTITY torbutton.context_menu.downloadUpdate "Check for Tor Browser Update…">
<!ENTITY torbutton.context_menu.downloadUpdate.key "A">
-<!ENTITY torbutton.context_menu.cookieProtections "Protezione dei Cookies">
+<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections…">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.context_menu.copyTor "Copia URL Tor">
<!ENTITY torbutton.context_menu.copyTor.key "p">
@@ -155,3 +157,4 @@
<!ENTITY torbutton.prefs.sec_med_high "Medio-Alto">
<!ENTITY torbutton.prefs.sec_high "Alto">
<!ENTITY torbutton.prefs.sec_custom "Valori Customizzabili">
+<!ENTITY torbutton.circuit_display.title "Tor circuit for this site">
diff --git a/src/chrome/locale/it/torbutton.properties b/src/chrome/locale/it/torbutton.properties
index 34f7671..641dc07 100644
--- a/src/chrome/locale/it/torbutton.properties
+++ b/src/chrome/locale/it/torbutton.properties
@@ -1,5 +1,10 @@
torbutton.button.tooltip.disabled = Attiva Tor
torbutton.button.tooltip.enabled = Disattiva Tor
+torbutton.circuit_display.internet = Internet
+torbutton.circuit_display.ip_unknown = IP unknown
+torbutton.circuit_display.this_browser = This browser
+torbutton.circuit_display.tor_bridge = Bridge
+torbutton.circuit_display.unknown_country = Unknown country
torbutton.panel.tooltip.disabled = Fai clic per attivare Tor
torbutton.panel.tooltip.enabled = Fai clic per disattivare Tor
torbutton.panel.plugins.disabled = Fai clic per attivare i plugin
@@ -46,6 +51,7 @@ torbutton.popup.short_torbrowser = Informazioni importanti su Torbutton!\n\nTorb
torbutton.popup.confirm_plugins = Alcuni plugin come Flash possono violare la tua privacy e anonimità.\n\nPossono anche eludere Tor per rivelare la tua posizione attuale e il tuo indirizzo IP.\n\nSei sicuro di volere attivare i plugin?\n
torbutton.popup.never_ask_again = Non chiedermelo più
+torbutton.popup.confirm_newnym = Tor Browser will close all windows and tabs. All website sessions will be lost.\n\nRestart Tor Browser now to reset your identity?\n\n
# Canvas permission prompt. Strings are kept here for ease of translation.
canvas.siteprompt=Questo sito (%S) tentato di estrarre i dati di immagine HTML5 canvas, che possono essere utilizzati per identificare in modo univoco il computer.\n\nPermettere a Tor Browser di estrarre l'immagine HTML5 canvas per questo sito?
diff --git a/src/chrome/locale/ja/aboutTor.dtd b/src/chrome/locale/ja/aboutTor.dtd
index cf272b4..fe1edef 100644
--- a/src/chrome/locale/ja/aboutTor.dtd
+++ b/src/chrome/locale/ja/aboutTor.dtd
@@ -1,5 +1,5 @@
<!--
- - Copyright (c) 2014, The Tor Project, Inc.
+ - Copyright (c) 2015, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -8,7 +8,7 @@
<!ENTITY aboutTor.outOfDateTorOn.label "しかし、このブラウザは古いバージョンです。">
<!ENTITY aboutTor.outOfDateTorOff.label "また、このブラウザは古いバージョンです。">
-<!ENTITY aboutTor.outOfDate2.label "オニオンをクリックして、Tor Browser Bundleのアップデートをダウンロードを選択">
+<!ENTITY aboutTor.outOfDate2.label "Click on the onion and then choose Check for Tor Browser Update.">
<!ENTITY aboutTor.check.label "Torのネットワーク設定をテストする">
@@ -25,6 +25,7 @@
<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
+<!ENTITY aboutTor.searchDCPost.link "https://search.disconnect.me/searchTerms/search?ses=Google&location_opt…">
<!ENTITY aboutTor.torInfo1.label "追加情報: ">
<!ENTITY aboutTor.torInfo2.label "国とIPアドレス:">
diff --git a/src/chrome/locale/ja/brand.dtd b/src/chrome/locale/ja/brand.dtd
index dd9e0d2..35a8894 100644
--- a/src/chrome/locale/ja/brand.dtd
+++ b/src/chrome/locale/ja/brand.dtd
@@ -6,3 +6,9 @@
<!ENTITY brandFullName "Tor Browser">
<!ENTITY vendorShortName "Tor Project">
<!ENTITY trademarkInfo.part1 "FirefoxおよびFirefoxのロゴはMozilla財団の登録商標です。">
+
+<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
+<!ENTITY plugins.installed.find "Click to load installed system plugins">
+<!ENTITY plugins.installed.enable "Enable plugins">
+<!ENTITY plugins.installed.disable "Disable plugins">
+<!ENTITY plugins.installed.disable.tip "Click to prevent loading system plugins">
diff --git a/src/chrome/locale/ja/browser.properties b/src/chrome/locale/ja/browser.properties
index 1c59f6e..8849b67 100644
--- a/src/chrome/locale/ja/browser.properties
+++ b/src/chrome/locale/ja/browser.properties
@@ -3,11 +3,3 @@ browser.startup.homepage=about:tor
# Spell checker dictionary
spellchecker.dictionary=en_US
-
-# Default search engine
-browser.search.defaultenginename=スタートページ
-
-# Search engine order (order displayed in the search bar dropdown)
-browser.search.order.1=スタートページ
-browser.search.order.2=DuckDuckGo
-browser.search.order.3=Google
diff --git a/src/chrome/locale/ja/torbutton.dtd b/src/chrome/locale/ja/torbutton.dtd
index 1f1d0a2..1dc7e6c 100644
--- a/src/chrome/locale/ja/torbutton.dtd
+++ b/src/chrome/locale/ja/torbutton.dtd
@@ -24,17 +24,19 @@
<!ENTITY torbutton.pref_connection_more_info.text "Torbuttonは現在オンになっています。もし、非Torの設定を変更する場合は、まずTorbuttonをオフにしてください。Torの設定を変更する場合にはTorbutton設定ウィンドウを使ってください。">
<!ENTITY torbutton.context_menu.new_identity "新しい識別">
<!ENTITY torbutton.context_menu.new_identity_key "I">
+<!ENTITY torbutton.context_menu.new_circuit "New Tor Circuit for this Site">
+<!ENTITY torbutton.context_menu.new_circuit_key "C">
<!ENTITY torbutton.context_menu.toggle "Torのステータスを変更">
<!ENTITY torbutton.context_menu.toggle.key "T">
-<!ENTITY torbutton.context_menu.preferences "設定...">
+<!ENTITY torbutton.context_menu.preferences "Privacy and Security Settings…">
<!ENTITY torbutton.context_menu.preferences.key "P">
<!ENTITY torbutton.context_menu.about "Torbuttonについて...">
<!ENTITY torbutton.context_menu.about.key "A">
-<!ENTITY torbutton.context_menu.networksettings "ネットワーク設定を開く...">
+<!ENTITY torbutton.context_menu.networksettings "Tor Network Settings…">
<!ENTITY torbutton.context_menu.networksettings.key "S">
-<!ENTITY torbutton.context_menu.downloadUpdate "Tor Browser Bundleのアップデートをダウンロード">
+<!ENTITY torbutton.context_menu.downloadUpdate "Check for Tor Browser Update…">
<!ENTITY torbutton.context_menu.downloadUpdate.key "U">
-<!ENTITY torbutton.context_menu.cookieProtections "Cookie保護">
+<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections…">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.context_menu.copyTor "TorのURLをコピー">
<!ENTITY torbutton.context_menu.copyTor.key "p">
@@ -155,3 +157,4 @@
<!ENTITY torbutton.prefs.sec_med_high "中の上">
<!ENTITY torbutton.prefs.sec_high "高い">
<!ENTITY torbutton.prefs.sec_custom "カスタム値">
+<!ENTITY torbutton.circuit_display.title "Tor circuit for this site">
diff --git a/src/chrome/locale/ja/torbutton.properties b/src/chrome/locale/ja/torbutton.properties
index 4d10949..44c6155 100644
--- a/src/chrome/locale/ja/torbutton.properties
+++ b/src/chrome/locale/ja/torbutton.properties
@@ -1,5 +1,10 @@
torbutton.button.tooltip.disabled = Torを有効にする
torbutton.button.tooltip.enabled = Torを無効にする
+torbutton.circuit_display.internet = Internet
+torbutton.circuit_display.ip_unknown = IP unknown
+torbutton.circuit_display.this_browser = This browser
+torbutton.circuit_display.tor_bridge = Bridge
+torbutton.circuit_display.unknown_country = Unknown country
torbutton.panel.tooltip.disabled = クリックしてTorを有効にする
torbutton.panel.tooltip.enabled = クリックしてTorを無効にする
torbutton.panel.plugins.disabled = プラグインを有効にする
@@ -46,6 +51,7 @@ torbutton.popup.short_torbrowser = 重要なTorbuttonの情報!\n\nTorbuttonは
torbutton.popup.confirm_plugins = Flashなどのプラグインはあなたのプライバシーや匿名性を損なう恐れがあります。 \n\nそれらはTorを迂回しあなたの現在の位置やIPアドレスを漏らしてしまう恐れがあります。\n\n本当にプラグインを有効にしますか?\n\n
torbutton.popup.never_ask_again = 次からはたずねない
+torbutton.popup.confirm_newnym = Tor Browser will close all windows and tabs. All website sessions will be lost.\n\nRestart Tor Browser now to reset your identity?\n\n
# Canvas permission prompt. Strings are kept here for ease of translation.
canvas.siteprompt=このWebサイト(%S)がHTML5 canvas画像を使用しようとしています。これはあなたのコンピューターを識別するために使われる可能性があります。\n\nTor ブラウザーにHTML5 canvas画像の使用を許可しますか?
diff --git a/src/chrome/locale/ko/aboutTor.dtd b/src/chrome/locale/ko/aboutTor.dtd
index 2817dd6..53f141e 100644
--- a/src/chrome/locale/ko/aboutTor.dtd
+++ b/src/chrome/locale/ko/aboutTor.dtd
@@ -1,5 +1,5 @@
<!--
- - Copyright (c) 2014, The Tor Project, Inc.
+ - Copyright (c) 2015, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -8,7 +8,7 @@
<!ENTITY aboutTor.outOfDateTorOn.label "그러나, 이 브라우저가 업데이트 되지 않았습니다.">
<!ENTITY aboutTor.outOfDateTorOff.label "또한, 이 브라우저가 업데이트 되지 않았습니다.">
-<!ENTITY aboutTor.outOfDate2.label "양파 모양을 클릭하고 Tor 브라우저 번들 업데이트를 다운로드 합니다.">
+<!ENTITY aboutTor.outOfDate2.label "Click on the onion and then choose Check for Tor Browser Update.">
<!ENTITY aboutTor.check.label "Tor 네트워크 설정 테스트">
@@ -25,6 +25,7 @@
<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
+<!ENTITY aboutTor.searchDCPost.link "https://search.disconnect.me/searchTerms/search?ses=Google&location_opt…">
<!ENTITY aboutTor.torInfo1.label "추가 정보 :">
<!ENTITY aboutTor.torInfo2.label "국가 & IP 주소 :">
diff --git a/src/chrome/locale/ko/brand.dtd b/src/chrome/locale/ko/brand.dtd
index 4b55e20..c7bdff6 100644
--- a/src/chrome/locale/ko/brand.dtd
+++ b/src/chrome/locale/ko/brand.dtd
@@ -6,3 +6,9 @@
<!ENTITY brandFullName "Tor 브라우저">
<!ENTITY vendorShortName "Tor 프로젝트">
<!ENTITY trademarkInfo.part1 "파이어폭스와 파이어폭스 로고들은 모질라 재단의 등록 상표입니다.">
+
+<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
+<!ENTITY plugins.installed.find "Click to load installed system plugins">
+<!ENTITY plugins.installed.enable "Enable plugins">
+<!ENTITY plugins.installed.disable "Disable plugins">
+<!ENTITY plugins.installed.disable.tip "Click to prevent loading system plugins">
diff --git a/src/chrome/locale/ko/browser.properties b/src/chrome/locale/ko/browser.properties
index a2b61b5..99872f4 100644
--- a/src/chrome/locale/ko/browser.properties
+++ b/src/chrome/locale/ko/browser.properties
@@ -3,11 +3,3 @@ browser.startup.homepage=Tor에 관하여
# Spell checker dictionary
spellchecker.dictionary=영어-미국
-
-# Default search engine
-browser.search.defaultenginename=시작 페이지
-
-# Search engine order (order displayed in the search bar dropdown)
-browser.search.order.1=시작 페이지
-browser.search.order.2=DuckDuckGo
-browser.search.order.3=구글
diff --git a/src/chrome/locale/ko/torbutton.dtd b/src/chrome/locale/ko/torbutton.dtd
index 26023f7..9ef3362 100644
--- a/src/chrome/locale/ko/torbutton.dtd
+++ b/src/chrome/locale/ko/torbutton.dtd
@@ -24,17 +24,19 @@
<!ENTITY torbutton.pref_connection_more_info.text "Torbutton이 현재 활성화되었습니다. 만약 Tor 프록시가 아닌 일반 프록시 서버 설정을 하시려면, Torbutton을 비활성화하고 이 창으로 돌아오십시오. 혹시 Tor 프록시 설정을 바꾸고 싶으시다면, Torbutton 설정 화면을 사용해 주세요.">
<!ENTITY torbutton.context_menu.new_identity "새로운 신원">
<!ENTITY torbutton.context_menu.new_identity_key "I">
+<!ENTITY torbutton.context_menu.new_circuit "New Tor Circuit for this Site">
+<!ENTITY torbutton.context_menu.new_circuit_key "C">
<!ENTITY torbutton.context_menu.toggle "Tor 작동 상태">
<!ENTITY torbutton.context_menu.toggle.key "T">
-<!ENTITY torbutton.context_menu.preferences "설정...">
+<!ENTITY torbutton.context_menu.preferences "Privacy and Security Settings…">
<!ENTITY torbutton.context_menu.preferences.key "P">
<!ENTITY torbutton.context_menu.about "Torbutton에 대하여...">
<!ENTITY torbutton.context_menu.about.key "A">
-<!ENTITY torbutton.context_menu.networksettings "네트워크 설정 열기">
+<!ENTITY torbutton.context_menu.networksettings "Tor Network Settings…">
<!ENTITY torbutton.context_menu.networksettings.key "S">
-<!ENTITY torbutton.context_menu.downloadUpdate "Tor browser bundle 업데이트 다운로드">
+<!ENTITY torbutton.context_menu.downloadUpdate "Check for Tor Browser Update…">
<!ENTITY torbutton.context_menu.downloadUpdate.key "U">
-<!ENTITY torbutton.context_menu.cookieProtections "쿠키 보호">
+<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections…">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.context_menu.copyTor "Tor URL 복사">
<!ENTITY torbutton.context_menu.copyTor.key "P">
@@ -155,3 +157,4 @@
<!ENTITY torbutton.prefs.sec_med_high "중간 높음">
<!ENTITY torbutton.prefs.sec_high "높음">
<!ENTITY torbutton.prefs.sec_custom "맞춤 값">
+<!ENTITY torbutton.circuit_display.title "Tor circuit for this site">
diff --git a/src/chrome/locale/ko/torbutton.properties b/src/chrome/locale/ko/torbutton.properties
index 03ce18a..2a72a99 100644
--- a/src/chrome/locale/ko/torbutton.properties
+++ b/src/chrome/locale/ko/torbutton.properties
@@ -1,5 +1,10 @@
torbutton.button.tooltip.disabled = Tor 활성화
torbutton.button.tooltip.enabled = Tor 비활성화
+torbutton.circuit_display.internet = Internet
+torbutton.circuit_display.ip_unknown = IP unknown
+torbutton.circuit_display.this_browser = This browser
+torbutton.circuit_display.tor_bridge = Bridge
+torbutton.circuit_display.unknown_country = Unknown country
torbutton.panel.tooltip.disabled = Tor를 활성화하려면 클릭
torbutton.panel.tooltip.enabled = Tor를 비활성화하려면 클릭
torbutton.panel.plugins.disabled = 플러그인을 활성화하려면 클릭
@@ -46,6 +51,7 @@ torbutton.popup.short_torbrowser = 중요한 Torbutton 정보! Torbutton은 이
torbutton.popup.confirm_plugins = 플래시와 같은 플러그인들은 당신의 프라이버시와 익명성을 해칠 수 있습니다.\n\n또한 Tor을 우회하여 당신의 현재 위치와 IP주소를 노출시킬 수도 있습니다.\n\n정말로 플러그인을 허용하시겠습니까?\n\n
torbutton.popup.never_ask_again = 다시는 물어보지 않기
+torbutton.popup.confirm_newnym = Tor Browser will close all windows and tabs. All website sessions will be lost.\n\nRestart Tor Browser now to reset your identity?\n\n
# Canvas permission prompt. Strings are kept here for ease of translation.
canvas.siteprompt=This website (%S) attempted to extract HTML5 canvas image data, which may be used to uniquely identify your computer.\n\nShould Tor Browser allow this website to extract HTML5 canvas image data?
diff --git a/src/chrome/locale/nl/aboutTor.dtd b/src/chrome/locale/nl/aboutTor.dtd
index 980ac35..6e92558 100644
--- a/src/chrome/locale/nl/aboutTor.dtd
+++ b/src/chrome/locale/nl/aboutTor.dtd
@@ -1,5 +1,5 @@
<!--
- - Copyright (c) 2014, The Tor Project, Inc.
+ - Copyright (c) 2015, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -8,9 +8,9 @@
<!ENTITY aboutTor.outOfDateTorOn.label "ECHTER, deze browser is verouderd.">
<!ENTITY aboutTor.outOfDateTorOff.label "BOVENDIEN is deze browser verouderd.">
-<!ENTITY aboutTor.outOfDate2.label "Click op de ui en kies Download Tor Browser Pakket Update.">
+<!ENTITY aboutTor.outOfDate2.label "Klik op de ui en kies Controleer op Tor Browser Update">
-<!ENTITY aboutTor.check.label "Test Tor Netwerk Instellingen">
+<!ENTITY aboutTor.check.label "Test Tor Netwerkinstellingen">
<!ENTITY aboutTor.success.label "Gefeliciteerd!">
<!ENTITY aboutTor.success2.label "Deze browser is ingesteld om Tor te gebruiken.">
@@ -25,22 +25,23 @@
<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
+<!ENTITY aboutTor.searchDCPost.link "https://search.disconnect.me/searchTerms/search?ses=Google&location_opt…">
<!ENTITY aboutTor.torInfo1.label "Bijkomende informatie:">
-<!ENTITY aboutTor.torInfo2.label "Land & IP Adres:">
+<!ENTITY aboutTor.torInfo2.label "Land & IP-adres:">
<!ENTITY aboutTor.torInfo3.label "Exit Node:">
<!ENTITY aboutTor.torInfo4.label "Deze server logt geen enkele informatie over bezoekers.">
<!ENTITY aboutTor.whatnextQuestion.label "Wat nu?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor is NIET alles wat u nodig heeft om anoniem te kunnen browsen. Mogelijk is het nodig dat u bepaalde browsing-gewoontes veranderen om te vezekeren dat uw identiteit veilig blijft.">
+<!ENTITY aboutTor.whatnextAnswer.label "Tor is NIET alles wat je nodig hebt om anoniem te kunnen browsen. Mogelijk is het nodig dat je bepaalde browsing-gewoontes veranderen om te verzekeren dat je identiteit veilig blijft.">
<!ENTITY aboutTor.whatnext.label "Tips om anoniem te blijven »">
<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
<!ENTITY aboutTor.helpInfo1.label "Jij kan helpen!">
<!ENTITY aboutTor.helpInfo2.label "Er zijn veel verschillende manieren hoe jij kan helpen het Tor Netwerk sneller en sterker te maken:">
<!ENTITY aboutTor.helpInfo3.label "Draai een Tor Relay Node »">
<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "Wordt vrijwilliger">
+<!ENTITY aboutTor.helpInfo4.label "Word vrijwilliger">
<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "Doe een donatie »">
+<!ENTITY aboutTor.helpInfo5.label "Maak een donatie »">
<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
<!ENTITY aboutTor.footer.label "Het Tor Project is een US 501(c)(3) non-profit voor onderzoek, ontwikkeling, onderwijs in online anonimiteit en privacy.">
diff --git a/src/chrome/locale/nl/brand.dtd b/src/chrome/locale/nl/brand.dtd
index af3e58a..bdd9afb 100644
--- a/src/chrome/locale/nl/brand.dtd
+++ b/src/chrome/locale/nl/brand.dtd
@@ -6,3 +6,9 @@
<!ENTITY brandFullName "Tor Browser">
<!ENTITY vendorShortName "Tor Project">
<!ENTITY trademarkInfo.part1 "Firefox and het Firefox logo zijn handelsmerken van de Mozilla Foundation.">
+
+<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
+<!ENTITY plugins.installed.find "Klok om de geïnstalleerde systeem plugins te laden">
+<!ENTITY plugins.installed.enable "Zet de plugins aan">
+<!ENTITY plugins.installed.disable "Zet de plugins uit">
+<!ENTITY plugins.installed.disable.tip "Klik om het laden van systeem plugins te voorkomen">
diff --git a/src/chrome/locale/nl/browser.properties b/src/chrome/locale/nl/browser.properties
index 8196ec1..8849b67 100644
--- a/src/chrome/locale/nl/browser.properties
+++ b/src/chrome/locale/nl/browser.properties
@@ -3,11 +3,3 @@ browser.startup.homepage=about:tor
# Spell checker dictionary
spellchecker.dictionary=en_US
-
-# Default search engine
-browser.search.defaultenginename=Startpage
-
-# Search engine order (order displayed in the search bar dropdown)
-browser.search.order.1=Startpage
-browser.search.order.2=Startpage
-browser.search.order.3=Startpage
diff --git a/src/chrome/locale/nl/torbutton.dtd b/src/chrome/locale/nl/torbutton.dtd
index c963be5..4e48991 100644
--- a/src/chrome/locale/nl/torbutton.dtd
+++ b/src/chrome/locale/nl/torbutton.dtd
@@ -24,17 +24,19 @@
<!ENTITY torbutton.pref_connection_more_info.text "Torbutton is momenteel ingeschakeld. Als u uw niet aan Tor gerelateerde proxy-instellingen wilt wijzigen dient u Torbutton uit te schakelen en dan hier terug te komen. Als u uw Tor instellingen wilt wijzigen, gebruik dan het Torbutton Voorkeuren-venster.">
<!ENTITY torbutton.context_menu.new_identity "Nieuwe identiteit">
<!ENTITY torbutton.context_menu.new_identity_key "I">
+<!ENTITY torbutton.context_menu.new_circuit "Nieuw tor circuit voor deze website">
+<!ENTITY torbutton.context_menu.new_circuit_key "C">
<!ENTITY torbutton.context_menu.toggle "Tor status wisselen">
<!ENTITY torbutton.context_menu.toggle.key "W">
-<!ENTITY torbutton.context_menu.preferences "Voorkeuren...">
+<!ENTITY torbutton.context_menu.preferences "Privacy en beveiliging instellingen...">
<!ENTITY torbutton.context_menu.preferences.key "V">
<!ENTITY torbutton.context_menu.about "Over Torbutton...">
<!ENTITY torbutton.context_menu.about.key "O">
-<!ENTITY torbutton.context_menu.networksettings "Open netwerkinstellingen">
+<!ENTITY torbutton.context_menu.networksettings "Tor netwerk instellingen">
<!ENTITY torbutton.context_menu.networksettings.key "S">
-<!ENTITY torbutton.context_menu.downloadUpdate "Download Tor Browser Bundle update...">
+<!ENTITY torbutton.context_menu.downloadUpdate "Controleer op updates voor de Tor Browser...">
<!ENTITY torbutton.context_menu.downloadUpdate.key "U">
-<!ENTITY torbutton.context_menu.cookieProtections "Cookie Beveiligingen">
+<!ENTITY torbutton.context_menu.cookieProtections "Cookie beveiligingen...">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.context_menu.copyTor "Kopieer Tor URL">
<!ENTITY torbutton.context_menu.copyTor.key "P">
@@ -155,3 +157,4 @@
<!ENTITY torbutton.prefs.sec_med_high "Medium-Hoog">
<!ENTITY torbutton.prefs.sec_high "Hoog">
<!ENTITY torbutton.prefs.sec_custom "Aangepaste waarden">
+<!ENTITY torbutton.circuit_display.title "Tor circuit voor deze website">
diff --git a/src/chrome/locale/nl/torbutton.properties b/src/chrome/locale/nl/torbutton.properties
index c2e105d..4e24acf 100644
--- a/src/chrome/locale/nl/torbutton.properties
+++ b/src/chrome/locale/nl/torbutton.properties
@@ -1,5 +1,10 @@
torbutton.button.tooltip.disabled = Tor inschakelen
torbutton.button.tooltip.enabled = Tor uitschakelen
+torbutton.circuit_display.internet = Internet
+torbutton.circuit_display.ip_unknown = Onbekend IP adres
+torbutton.circuit_display.this_browser = Deze browser
+torbutton.circuit_display.tor_bridge = Bridge
+torbutton.circuit_display.unknown_country = Onbekend land
torbutton.panel.tooltip.disabled = Hier klikken om Tor in te schakelen
torbutton.panel.tooltip.enabled = Hier klikken om Tor uit te schakelen
torbutton.panel.plugins.disabled = Hier klikken om plugins in te schakelen
@@ -46,6 +51,7 @@ torbutton.popup.short_torbrowser = Belangrijke Torbutton Informatie!\n\nTorbutte
torbutton.popup.confirm_plugins = plug-ins zoals flash kunnen u privacy en anonimiteit schaden.⏎ ⏎ Ze kunnen ook tor negeren om zo u huidige locatie en IP adres uit te vinden⏎ ⏎ Weet u zeker dat u deze plug-ins wilt inschakelen?⏎ \n\n
torbutton.popup.never_ask_again = Vraag me dit nooit meer.
+torbutton.popup.confirm_newnym = De Tor Browser zal alle windows en tabs sluiten. Alle website sessies zullen verloren gaan.\n\nHerstart de Tor Browser om je identiteit te resetten?\n\n
# Canvas permission prompt. Strings are kept here for ease of translation.
canvas.siteprompt=De website (%S) heeft geprobeerd HTML5 canvas image data op te vragen, wat kan gebruikt worden voor een unieke identificatie van je computer.\n\nMoet Tor Browser deze website toestaan om HTML5 canvas image data op te vragen?
diff --git a/src/chrome/locale/pl/aboutTor.dtd b/src/chrome/locale/pl/aboutTor.dtd
index 654dc58..d3a938d 100644
--- a/src/chrome/locale/pl/aboutTor.dtd
+++ b/src/chrome/locale/pl/aboutTor.dtd
@@ -1,5 +1,5 @@
<!--
- - Copyright (c) 2014, The Tor Project, Inc.
+ - Copyright (c) 2015, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -8,7 +8,7 @@
<!ENTITY aboutTor.outOfDateTorOn.label "JEDNAK, ta przeglądarka jest nieaktualna.">
<!ENTITY aboutTor.outOfDateTorOff.label "PONADTO, ta przeglądarka jest nieaktualna.">
-<!ENTITY aboutTor.outOfDate2.label "Kliknij na cebulę, a następnie wybierz Pobierz aktualizację Tor Browser Bundle.">
+<!ENTITY aboutTor.outOfDate2.label "Kliknij na cebulę a następnie wybierz Sprawdź czy są dostępne aktualizacje.">
<!ENTITY aboutTor.check.label "Przetestuj Ustawienia Sieci Tor">
@@ -25,6 +25,7 @@
<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
+<!ENTITY aboutTor.searchDCPost.link "https://search.disconnect.me/searchTerms/search?ses=Google&location_opt…">
<!ENTITY aboutTor.torInfo1.label "Dodatkowe informacje:">
<!ENTITY aboutTor.torInfo2.label "Kraj i adres IP:">
diff --git a/src/chrome/locale/pl/brand.dtd b/src/chrome/locale/pl/brand.dtd
index 5f8db34..f325478 100644
--- a/src/chrome/locale/pl/brand.dtd
+++ b/src/chrome/locale/pl/brand.dtd
@@ -6,3 +6,9 @@
<!ENTITY brandFullName "Przeglądarka Tor">
<!ENTITY vendorShortName "Project Tor">
<!ENTITY trademarkInfo.part1 "Firefox i jego loga są znakami towarowymi Mozilla Foundation.">
+
+<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
+<!ENTITY plugins.installed.find "Kliknij, aby załadować wszystkie zainstalowane wtyczki">
+<!ENTITY plugins.installed.enable "Włącz wtyczki">
+<!ENTITY plugins.installed.disable "Wyłącz wtyczki">
+<!ENTITY plugins.installed.disable.tip "Kliknij, aby zapobiec włączaniu wtyczek systemowych.">
diff --git a/src/chrome/locale/pl/browser.properties b/src/chrome/locale/pl/browser.properties
index 9d1593f..8849b67 100644
--- a/src/chrome/locale/pl/browser.properties
+++ b/src/chrome/locale/pl/browser.properties
@@ -3,11 +3,3 @@ browser.startup.homepage=about:tor
# Spell checker dictionary
spellchecker.dictionary=en_US
-
-# Default search engine
-browser.search.defaultenginename=Strona startowa
-
-# Search engine order (order displayed in the search bar dropdown)
-browser.search.order.1=Strona startowa
-browser.search.order.2=DuckDuckGo
-browser.search.order.3=Google
diff --git a/src/chrome/locale/pl/torbutton.dtd b/src/chrome/locale/pl/torbutton.dtd
index 5cfb5ef..0e16322 100644
--- a/src/chrome/locale/pl/torbutton.dtd
+++ b/src/chrome/locale/pl/torbutton.dtd
@@ -24,17 +24,19 @@
<!ENTITY torbutton.pref_connection_more_info.text "Torbutton jest włączony. Jeśli chcesz zmienić inne ustawienia proxy musisz wyłączyć Torbutton i powrócić tutaj. Jeśli chcesz zmienić ustawienia proxy Tor, zrób to tutaj.">
<!ENTITY torbutton.context_menu.new_identity "Nowa Tożsamość">
<!ENTITY torbutton.context_menu.new_identity_key "o">
+<!ENTITY torbutton.context_menu.new_circuit "Nowy obwód dla tej strony">
+<!ENTITY torbutton.context_menu.new_circuit_key "c">
<!ENTITY torbutton.context_menu.toggle "Zmień status Tora">
<!ENTITY torbutton.context_menu.toggle.key "Z">
-<!ENTITY torbutton.context_menu.preferences "Ustawienia">
+<!ENTITY torbutton.context_menu.preferences "Ustawienia Prywatności i Bezpieczeństwa...">
<!ENTITY torbutton.context_menu.preferences.key "U">
<!ENTITY torbutton.context_menu.about "O Torbutton">
<!ENTITY torbutton.context_menu.about.key "T">
-<!ENTITY torbutton.context_menu.networksettings "Otwórz ustawienia sieci...">
+<!ENTITY torbutton.context_menu.networksettings "Ustawienia Sieci Tor...">
<!ENTITY torbutton.context_menu.networksettings.key "s">
-<!ENTITY torbutton.context_menu.downloadUpdate "Pobierz aktualizację Paczki Tora z Przeglądarką">
+<!ENTITY torbutton.context_menu.downloadUpdate "Sprawdź czy są aktualizacje Tor Browser...">
<!ENTITY torbutton.context_menu.downloadUpdate.key "u">
-<!ENTITY torbutton.context_menu.cookieProtections "Ochrona Ciasteczek">
+<!ENTITY torbutton.context_menu.cookieProtections "Ochrona plików cookie...">
<!ENTITY torbutton.context_menu.cookieProtections.key "c">
<!ENTITY torbutton.context_menu.copyTor "Kopiuj URL Tora">
<!ENTITY torbutton.context_menu.copyTor.key "p">
@@ -155,3 +157,4 @@
<!ENTITY torbutton.prefs.sec_med_high "Średni-Wysoki">
<!ENTITY torbutton.prefs.sec_high "Wysoki">
<!ENTITY torbutton.prefs.sec_custom "Wartości niestandardowe">
+<!ENTITY torbutton.circuit_display.title "Obwód Tor dla tej strony">
diff --git a/src/chrome/locale/pl/torbutton.properties b/src/chrome/locale/pl/torbutton.properties
index 2b78918..f267dbe 100644
--- a/src/chrome/locale/pl/torbutton.properties
+++ b/src/chrome/locale/pl/torbutton.properties
@@ -1,5 +1,10 @@
torbutton.button.tooltip.disabled = Włącz Tora
torbutton.button.tooltip.enabled = Wyłącz Tora
+torbutton.circuit_display.internet = Internet
+torbutton.circuit_display.ip_unknown = IP nieznany
+torbutton.circuit_display.this_browser = Ta przeglądarka
+torbutton.circuit_display.tor_bridge = Bridge
+torbutton.circuit_display.unknown_country = Nieznane państwo
torbutton.panel.tooltip.disabled = Kliknij tutaj, aby włączyć Tora
torbutton.panel.tooltip.enabled = Kliknij tutaj, aby wyłączyć Tora
torbutton.panel.plugins.disabled = Kliknij aby włączyć wtyczki
@@ -46,6 +51,7 @@ torbutton.popup.short_torbrowser = Ważne informacje o Torbuttonie!\n\nTorbutton
torbutton.popup.confirm_plugins = Wtyczki takie jak Flash mogą szkodzić Twojej prywatności i anonimowości.\n\nMogą też omijać Tora, aby odkryć Twoją bieżącą lokalizację i adres IP.\n\nCzy na pewno chcesz włączyć wtyczki?\n\n
torbutton.popup.never_ask_again = Nie pytaj mnie więcej
+torbutton.popup.confirm_newnym = Tor Browser zamknie wszystkie otwarte okna i karty. Wszystkie sesje zostaną utracone.\n\nCzy chcesz zrestartować Tor Browser teraz, aby zmienić tożsamość?\n\n
# Canvas permission prompt. Strings are kept here for ease of translation.
canvas.siteprompt=Ta strona internetowa (%S) próbowała wydobyć HTML5 canvas danych obrazu, które mogą być wykorzystane w celu identyfikacji Twojego komputera.\n\nCzy chcesz, aby Tor Browser pozwolił tej stronie na wydobycie danych obrazu HTML5 canvas?
diff --git a/src/chrome/locale/pt/aboutTor.dtd b/src/chrome/locale/pt/aboutTor.dtd
index fd5cea7..3ad709e 100644
--- a/src/chrome/locale/pt/aboutTor.dtd
+++ b/src/chrome/locale/pt/aboutTor.dtd
@@ -1,5 +1,5 @@
<!--
- - Copyright (c) 2014, The Tor Project, Inc.
+ - Copyright (c) 2015, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -8,7 +8,7 @@
<!ENTITY aboutTor.outOfDateTorOn.label "CONTUDO, este navegador está desatualizado.">
<!ENTITY aboutTor.outOfDateTorOff.label "TAMBÉM, este navegador está desatualizado.">
-<!ENTITY aboutTor.outOfDate2.label "Clique no símbolo da cebola e escolha Download Tor Browser Bundle Update.">
+<!ENTITY aboutTor.outOfDate2.label "Click on the onion and then choose Check for Tor Browser Update.">
<!ENTITY aboutTor.check.label "Testar as Definições da Rede Tor">
@@ -25,6 +25,7 @@
<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
+<!ENTITY aboutTor.searchDCPost.link "https://search.disconnect.me/searchTerms/search?ses=Google&location_opt…">
<!ENTITY aboutTor.torInfo1.label "Informação adicional:">
<!ENTITY aboutTor.torInfo2.label "País e endereço IP:">
diff --git a/src/chrome/locale/pt/brand.dtd b/src/chrome/locale/pt/brand.dtd
index 95bd25c..2969197 100644
--- a/src/chrome/locale/pt/brand.dtd
+++ b/src/chrome/locale/pt/brand.dtd
@@ -6,3 +6,9 @@
<!ENTITY brandFullName "Navegador Tor">
<!ENTITY vendorShortName "Projeto Tor">
<!ENTITY trademarkInfo.part1 "O Firefox e os logos Firefox são marcas registadas da Fundação Mozilla.">
+
+<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
+<!ENTITY plugins.installed.find "Click to load installed system plugins">
+<!ENTITY plugins.installed.enable "Enable plugins">
+<!ENTITY plugins.installed.disable "Disable plugins">
+<!ENTITY plugins.installed.disable.tip "Click to prevent loading system plugins">
diff --git a/src/chrome/locale/pt/browser.properties b/src/chrome/locale/pt/browser.properties
index 57324c5..8849b67 100644
--- a/src/chrome/locale/pt/browser.properties
+++ b/src/chrome/locale/pt/browser.properties
@@ -3,11 +3,3 @@ browser.startup.homepage=about:tor
# Spell checker dictionary
spellchecker.dictionary=en_US
-
-# Default search engine
-browser.search.defaultenginename=Página inicial
-
-# Search engine order (order displayed in the search bar dropdown)
-browser.search.order.1=Página inicial
-browser.search.order.2=DuckDuckGo
-browser.search.order.3=Google
diff --git a/src/chrome/locale/pt/torbutton.dtd b/src/chrome/locale/pt/torbutton.dtd
index d2b83a9..b7cc81c 100644
--- a/src/chrome/locale/pt/torbutton.dtd
+++ b/src/chrome/locale/pt/torbutton.dtd
@@ -24,17 +24,19 @@
<!ENTITY torbutton.pref_connection_more_info.text "Torbutton está activo. Se deseja mudar as configurações de Proxy que não sejam do Tor, por favor desactive o Torbutton e volte aqui. Se deseja alterar as configurações do Tor, por favor, use a janela de preferências do Torbutton.">
<!ENTITY torbutton.context_menu.new_identity "Identidade Nova">
<!ENTITY torbutton.context_menu.new_identity_key "I">
+<!ENTITY torbutton.context_menu.new_circuit "New Tor Circuit for this Site">
+<!ENTITY torbutton.context_menu.new_circuit_key "C">
<!ENTITY torbutton.context_menu.toggle "Alterar Status Tor">
<!ENTITY torbutton.context_menu.toggle.key "T">
-<!ENTITY torbutton.context_menu.preferences "Preferências...">
+<!ENTITY torbutton.context_menu.preferences "Privacy and Security Settings…">
<!ENTITY torbutton.context_menu.preferences.key "P">
<!ENTITY torbutton.context_menu.about "Sobre o Torbutton...">
<!ENTITY torbutton.context_menu.about.key "A">
-<!ENTITY torbutton.context_menu.networksettings "Open Network Settings…">
+<!ENTITY torbutton.context_menu.networksettings "Tor Network Settings…">
<!ENTITY torbutton.context_menu.networksettings.key "S">
-<!ENTITY torbutton.context_menu.downloadUpdate "Download Tor Browser Bundle Update...">
+<!ENTITY torbutton.context_menu.downloadUpdate "Check for Tor Browser Update…">
<!ENTITY torbutton.context_menu.downloadUpdate.key "A">
-<!ENTITY torbutton.context_menu.cookieProtections "Proteções de Cookies">
+<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections…">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.context_menu.copyTor "Copiar endereço do Tor">
<!ENTITY torbutton.context_menu.copyTor.key "P">
@@ -155,3 +157,4 @@
<!ENTITY torbutton.prefs.sec_med_high "Médio-Alto">
<!ENTITY torbutton.prefs.sec_high "Alto">
<!ENTITY torbutton.prefs.sec_custom "Valores definidos">
+<!ENTITY torbutton.circuit_display.title "Tor circuit for this site">
diff --git a/src/chrome/locale/pt/torbutton.properties b/src/chrome/locale/pt/torbutton.properties
index 4c920a3..3130115 100644
--- a/src/chrome/locale/pt/torbutton.properties
+++ b/src/chrome/locale/pt/torbutton.properties
@@ -1,5 +1,10 @@
torbutton.button.tooltip.disabled = Activar Tor
torbutton.button.tooltip.enabled = Desactivar Tor
+torbutton.circuit_display.internet = Internet
+torbutton.circuit_display.ip_unknown = IP unknown
+torbutton.circuit_display.this_browser = This browser
+torbutton.circuit_display.tor_bridge = Bridge
+torbutton.circuit_display.unknown_country = Unknown country
torbutton.panel.tooltip.disabled = Clique para activar Tor
torbutton.panel.tooltip.enabled = Clique para desactivar Tor
torbutton.panel.plugins.disabled = Clique para activar plugins
@@ -46,6 +51,7 @@ torbutton.popup.short_torbrowser = Informação importante do Torbutton!\nO Torb
torbutton.popup.confirm_plugins = Plugins such as Flash can harm your privacy and anonymity.\n\nThey can also bypass Tor to reveal your current location and IP address.\n\nAre you sure you want to enable plugins?\n\n
torbutton.popup.never_ask_again = Never ask me again
+torbutton.popup.confirm_newnym = Tor Browser will close all windows and tabs. All website sessions will be lost.\n\nRestart Tor Browser now to reset your identity?\n\n
# Canvas permission prompt. Strings are kept here for ease of translation.
canvas.siteprompt=Este site (%S) tentou extrair informação HTML5, que pode ser usada para identificar claramente o seu computador.\n\nQuer que o navegador Tor permita que o site extraia a informação HTML5?
diff --git a/src/chrome/locale/ru/aboutTor.dtd b/src/chrome/locale/ru/aboutTor.dtd
index efe3ff1..c1cdf4c 100644
--- a/src/chrome/locale/ru/aboutTor.dtd
+++ b/src/chrome/locale/ru/aboutTor.dtd
@@ -1,5 +1,5 @@
<!--
- - Copyright (c) 2014, The Tor Project, Inc.
+ - Copyright (c) 2015, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -8,7 +8,7 @@
<!ENTITY aboutTor.outOfDateTorOn.label "ТЕМ НЕ МЕНЕЕ, данный браузер устарел.">
<!ENTITY aboutTor.outOfDateTorOff.label "КРОМЕ ТОГО, данный браузер устарел.">
-<!ENTITY aboutTor.outOfDate2.label "Кликните по изображению лука и выбирите Загрузить обновление пакета Tor для браузера.">
+<!ENTITY aboutTor.outOfDate2.label "Нажмите на "лук"и затем выберите "Проверить обновления Tor Browser"">
<!ENTITY aboutTor.check.label "Проверка интернет-настроек Tor">
@@ -25,6 +25,7 @@
<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
+<!ENTITY aboutTor.searchDCPost.link "https://search.disconnect.me/searchTerms/search?ses=Google&location_opt…">
<!ENTITY aboutTor.torInfo1.label "Дополнительные сведения:">
<!ENTITY aboutTor.torInfo2.label "Страна & IP-адрес">
diff --git a/src/chrome/locale/ru/brand.dtd b/src/chrome/locale/ru/brand.dtd
index 043e478..dff02f0 100644
--- a/src/chrome/locale/ru/brand.dtd
+++ b/src/chrome/locale/ru/brand.dtd
@@ -6,3 +6,9 @@
<!ENTITY brandFullName "Tor Browser">
<!ENTITY vendorShortName "Проект Tor">
<!ENTITY trademarkInfo.part1 "Firefox и его логотипы это торговые знаки Mozilla Foundation.">
+
+<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
+<!ENTITY plugins.installed.find "Click to load installed system plugins">
+<!ENTITY plugins.installed.enable "Enable plugins">
+<!ENTITY plugins.installed.disable "Disable plugins">
+<!ENTITY plugins.installed.disable.tip "Click to prevent loading system plugins">
diff --git a/src/chrome/locale/ru/browser.properties b/src/chrome/locale/ru/browser.properties
index e34fcba..8849b67 100644
--- a/src/chrome/locale/ru/browser.properties
+++ b/src/chrome/locale/ru/browser.properties
@@ -3,11 +3,3 @@ browser.startup.homepage=about:tor
# Spell checker dictionary
spellchecker.dictionary=en_US
-
-# Default search engine
-browser.search.defaultenginename=Начальная страница
-
-# Search engine order (order displayed in the search bar dropdown)
-browser.search.order.1=Начальная страница
-browser.search.order.2=DuckDuckGo
-browser.search.order.3=Google
diff --git a/src/chrome/locale/ru/torbutton.dtd b/src/chrome/locale/ru/torbutton.dtd
index 3bc9df2..760ce93 100644
--- a/src/chrome/locale/ru/torbutton.dtd
+++ b/src/chrome/locale/ru/torbutton.dtd
@@ -24,17 +24,19 @@
<!ENTITY torbutton.pref_connection_more_info.text "Torbutton включен. Если будут изменяться настройки прокси, не являющегося частью сети Tor, необходимо сначала отключить Torbutton и затем вернуться сюда. Если будут изменяться настройки Tor, необходимо использовать окно настроек Torbutton.">
<!ENTITY torbutton.context_menu.new_identity "Новая личность">
<!ENTITY torbutton.context_menu.new_identity_key "Я">
+<!ENTITY torbutton.context_menu.new_circuit "New Tor Circuit for this Site">
+<!ENTITY torbutton.context_menu.new_circuit_key "C">
<!ENTITY torbutton.context_menu.toggle "Изменить состояние Tor">
<!ENTITY torbutton.context_menu.toggle.key "T">
-<!ENTITY torbutton.context_menu.preferences "Настройки...">
+<!ENTITY torbutton.context_menu.preferences "Privacy and Security Settings…">
<!ENTITY torbutton.context_menu.preferences.key "Н">
<!ENTITY torbutton.context_menu.about "О Torbutton...">
<!ENTITY torbutton.context_menu.about.key "О">
-<!ENTITY torbutton.context_menu.networksettings "Открыть Сетевые настройки...">
+<!ENTITY torbutton.context_menu.networksettings "Tor Network Settings…">
<!ENTITY torbutton.context_menu.networksettings.key "S">
-<!ENTITY torbutton.context_menu.downloadUpdate "Скачать обновления Tor Browser Bundle">
+<!ENTITY torbutton.context_menu.downloadUpdate "Check for Tor Browser Update…">
<!ENTITY torbutton.context_menu.downloadUpdate.key "U">
-<!ENTITY torbutton.context_menu.cookieProtections "Защита Cookie">
+<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections…">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.context_menu.copyTor "Копировать URL Tor">
<!ENTITY torbutton.context_menu.copyTor.key "p">
@@ -155,3 +157,4 @@
<!ENTITY torbutton.prefs.sec_med_high "Средне-Высокий">
<!ENTITY torbutton.prefs.sec_high "Высокий">
<!ENTITY torbutton.prefs.sec_custom "Собственные Значения">
+<!ENTITY torbutton.circuit_display.title "Tor circuit for this site">
diff --git a/src/chrome/locale/ru/torbutton.properties b/src/chrome/locale/ru/torbutton.properties
index ae55102..33ced7f 100644
--- a/src/chrome/locale/ru/torbutton.properties
+++ b/src/chrome/locale/ru/torbutton.properties
@@ -1,5 +1,10 @@
torbutton.button.tooltip.disabled = Включить Tor
torbutton.button.tooltip.enabled = Отключить Tor
+torbutton.circuit_display.internet = Internet
+torbutton.circuit_display.ip_unknown = IP unknown
+torbutton.circuit_display.this_browser = This browser
+torbutton.circuit_display.tor_bridge = Bridge
+torbutton.circuit_display.unknown_country = Unknown country
torbutton.panel.tooltip.disabled = Нажмите, чтобы включить Tor
torbutton.panel.tooltip.enabled = Нажмите, чтобы отключить Tor
torbutton.panel.plugins.disabled = Нажмите, чтобы включить плагины
@@ -46,6 +51,7 @@ torbutton.popup.short_torbrowser = Важная информация Torbutton!
torbutton.popup.confirm_plugins = Плагины вроде Flash могут нанести вред вашей конфиденциальности и анонимности.\nОни также могут обходить Tor, чтобы раскрыть ваше текущее местоположение и IP-адрес.\nВы уверены, что хотите включить плагины?\n
torbutton.popup.never_ask_again = Больше не спрашивать
+torbutton.popup.confirm_newnym = Tor Browser will close all windows and tabs. All website sessions will be lost.\n\nRestart Tor Browser now to reset your identity?\n\n
# Canvas permission prompt. Strings are kept here for ease of translation.
canvas.siteprompt=Этот веб-сайт (%S) пытается извлечь данные изображения HTML5 canvas, что может быть использовано для получения информации о вашем компьютере.\n\nДолжен ли Tor Browser разрешить этому сайту извлечь данные изображения HTML5 canvas?
diff --git a/src/chrome/locale/sv/aboutTor.dtd b/src/chrome/locale/sv/aboutTor.dtd
index 7fd6957..5b454fb 100644
--- a/src/chrome/locale/sv/aboutTor.dtd
+++ b/src/chrome/locale/sv/aboutTor.dtd
@@ -1,5 +1,5 @@
<!--
- - Copyright (c) 2014, The Tor Project, Inc.
+ - Copyright (c) 2015, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -8,7 +8,7 @@
<!ENTITY aboutTor.outOfDateTorOn.label "EMELLERTID, denna webbläsare är ej uppdaterad.">
<!ENTITY aboutTor.outOfDateTorOff.label "DESSUTOM, denna webbläsare är ej uppdaterad.">
-<!ENTITY aboutTor.outOfDate2.label "Klicka på löken och välj sedan Ladda ner uppdatering för Tor Browser Bundle.">
+<!ENTITY aboutTor.outOfDate2.label "Click on the onion and then choose Check for Tor Browser Update.">
<!ENTITY aboutTor.check.label "Testa nätverksinställningarna för Tor">
@@ -25,6 +25,7 @@
<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
+<!ENTITY aboutTor.searchDCPost.link "https://search.disconnect.me/searchTerms/search?ses=Google&location_opt…">
<!ENTITY aboutTor.torInfo1.label "Ytterligare information:">
<!ENTITY aboutTor.torInfo2.label "Land och IP-adress:">
diff --git a/src/chrome/locale/sv/brand.dtd b/src/chrome/locale/sv/brand.dtd
index 312a603..83a75a4 100644
--- a/src/chrome/locale/sv/brand.dtd
+++ b/src/chrome/locale/sv/brand.dtd
@@ -6,3 +6,9 @@
<!ENTITY brandFullName "Tor Browser">
<!ENTITY vendorShortName "Tor-projektet">
<!ENTITY trademarkInfo.part1 "Firefox och Firefox-logotypen är varumärken som tillhör Mozilla Foundation.">
+
+<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
+<!ENTITY plugins.installed.find "Click to load installed system plugins">
+<!ENTITY plugins.installed.enable "Enable plugins">
+<!ENTITY plugins.installed.disable "Disable plugins">
+<!ENTITY plugins.installed.disable.tip "Click to prevent loading system plugins">
diff --git a/src/chrome/locale/sv/browser.properties b/src/chrome/locale/sv/browser.properties
index cade860..6542522 100644
--- a/src/chrome/locale/sv/browser.properties
+++ b/src/chrome/locale/sv/browser.properties
@@ -3,11 +3,3 @@ browser.startup.homepage=about:tor
# Spell checker dictionary
spellchecker.dictionary=sv_SE
-
-# Default search engine
-browser.search.defaultenginename=Startpage
-
-# Search engine order (order displayed in the search bar dropdown)
-browser.search.order.1=Startpage
-browser.search.order.2=DuckDuckGo
-browser.search.order.3=Google
diff --git a/src/chrome/locale/sv/torbutton.dtd b/src/chrome/locale/sv/torbutton.dtd
index d88a10c..2285c2a 100644
--- a/src/chrome/locale/sv/torbutton.dtd
+++ b/src/chrome/locale/sv/torbutton.dtd
@@ -24,17 +24,19 @@
<!ENTITY torbutton.pref_connection_more_info.text "Torbutton är aktiverad. Om du vill ändra inställningar för proxy utan Tor, inaktivera Tor och kom tillbaka hit. Om du vill ändra inställningar för Tor, använd Torbutton-inställningarna.">
<!ENTITY torbutton.context_menu.new_identity "Ny identitet">
<!ENTITY torbutton.context_menu.new_identity_key "N">
+<!ENTITY torbutton.context_menu.new_circuit "New Tor Circuit for this Site">
+<!ENTITY torbutton.context_menu.new_circuit_key "S">
<!ENTITY torbutton.context_menu.toggle "Slå på/av Tor">
<!ENTITY torbutton.context_menu.toggle.key "T">
-<!ENTITY torbutton.context_menu.preferences "Inställningar...">
+<!ENTITY torbutton.context_menu.preferences "Privacy and Security Settings…">
<!ENTITY torbutton.context_menu.preferences.key "I">
<!ENTITY torbutton.context_menu.about "Om Torbutton...">
<!ENTITY torbutton.context_menu.about.key "O">
-<!ENTITY torbutton.context_menu.networksettings "Öppna nätverksinställningar...">
+<!ENTITY torbutton.context_menu.networksettings "Tor Network Settings…">
<!ENTITY torbutton.context_menu.networksettings.key "Ö">
-<!ENTITY torbutton.context_menu.downloadUpdate "Ladda ner uppdatering för Tor Browser Bundle...">
+<!ENTITY torbutton.context_menu.downloadUpdate "Check for Tor Browser Update…">
<!ENTITY torbutton.context_menu.downloadUpdate.key "U">
-<!ENTITY torbutton.context_menu.cookieProtections "Skyddade kakor">
+<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections…">
<!ENTITY torbutton.context_menu.cookieProtections.key "S">
<!ENTITY torbutton.context_menu.copyTor "Kopiera Tor URL">
<!ENTITY torbutton.context_menu.copyTor.key "p">
@@ -155,3 +157,4 @@
<!ENTITY torbutton.prefs.sec_med_high "Medium-hög">
<!ENTITY torbutton.prefs.sec_high "Hög">
<!ENTITY torbutton.prefs.sec_custom "Anpassad nivå">
+<!ENTITY torbutton.circuit_display.title "Tor circuit for this site">
diff --git a/src/chrome/locale/sv/torbutton.properties b/src/chrome/locale/sv/torbutton.properties
index d55e43a..5289a40 100644
--- a/src/chrome/locale/sv/torbutton.properties
+++ b/src/chrome/locale/sv/torbutton.properties
@@ -1,5 +1,10 @@
torbutton.button.tooltip.disabled = Aktivera Tor
torbutton.button.tooltip.enabled = Inaktivera Tor
+torbutton.circuit_display.internet = Internet
+torbutton.circuit_display.ip_unknown = IP unknown
+torbutton.circuit_display.this_browser = This browser
+torbutton.circuit_display.tor_bridge = Bridge
+torbutton.circuit_display.unknown_country = Unknown country
torbutton.panel.tooltip.disabled = Klicka för att aktivera Tor
torbutton.panel.tooltip.enabled = Klicka för att inaktivera Tor
torbutton.panel.plugins.disabled = Klicka för att aktivera plugins
@@ -46,6 +51,7 @@ torbutton.popup.short_torbrowser = Viktig information om Torbutton!\n\nTorbutton
torbutton.popup.confirm_plugins = Insticksmoduler så som Flash kan äventyra din anonymitet och personliga integritet.\n\nDe kan också kringgå Tor för att avslöja var du befinner dig och vad din IP-adress är.\n\nÄr du säker på att du vill aktivera insticksmoduler?\n\n
torbutton.popup.never_ask_again = Fråga aldrig igen
+torbutton.popup.confirm_newnym = Tor Browser will close all windows and tabs. All website sessions will be lost.\n\nRestart Tor Browser now to reset your identity?\n\n
# Canvas permission prompt. Strings are kept here for ease of translation.
canvas.siteprompt=Denna webbsida (%S) försökte komma åt HTML5-bilddata på ett kanvas, som skulle kunna användas för att identifiera just din dator.\n\nSka Tor Browser tillåta den här webbsidan att använda HTML5-bilddata på kanvas?
diff --git a/src/chrome/locale/tr/aboutTor.dtd b/src/chrome/locale/tr/aboutTor.dtd
index bdcd023..e14481c 100644
--- a/src/chrome/locale/tr/aboutTor.dtd
+++ b/src/chrome/locale/tr/aboutTor.dtd
@@ -1,5 +1,5 @@
<!--
- - Copyright (c) 2014, The Tor Project, Inc.
+ - Copyright (c) 2015, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -8,7 +8,7 @@
<!ENTITY aboutTor.outOfDateTorOn.label "AMA, bu tarayıcı güncel değil.">
<!ENTITY aboutTor.outOfDateTorOff.label "AYRICA, bu tarayıcı güncel değil.">
-<!ENTITY aboutTor.outOfDate2.label "Soğana tıklayın ve Tor Tarayıcı Paketi Güncellemesini İndir'i seçin.">
+<!ENTITY aboutTor.outOfDate2.label "Soğan'a tıklayın ve ardından Tor Tarayıcı Güncellemesini Denetle seçin.">
<!ENTITY aboutTor.check.label "Tor Ağ Ayarlarını Test Edin">
@@ -25,6 +25,7 @@
<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
+<!ENTITY aboutTor.searchDCPost.link "https://search.disconnect.me/searchTerms/search?ses=Google&location_opt…">
<!ENTITY aboutTor.torInfo1.label "Ek bilgi:">
<!ENTITY aboutTor.torInfo2.label "Ülke ve IP Adresi:">
diff --git a/src/chrome/locale/tr/brand.dtd b/src/chrome/locale/tr/brand.dtd
index f07182a..45ea406 100644
--- a/src/chrome/locale/tr/brand.dtd
+++ b/src/chrome/locale/tr/brand.dtd
@@ -6,3 +6,9 @@
<!ENTITY brandFullName "Tor Tarayıcı">
<!ENTITY vendorShortName "Tor Projesi">
<!ENTITY trademarkInfo.part1 "Firefox ve Firefox logoları Mozilla Vakfı'nın ticari markalarıdır.">
+
+<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
+<!ENTITY plugins.installed.find "Yüklü sistem eklentilerini yüklemek için tıklayın">
+<!ENTITY plugins.installed.enable "Eklentileri etkinleştir">
+<!ENTITY plugins.installed.disable "Eklentileri devre dışı bırak">
+<!ENTITY plugins.installed.disable.tip "Sistem eklentilerinin yüklenmesini önlemek için tıklayın">
diff --git a/src/chrome/locale/tr/browser.properties b/src/chrome/locale/tr/browser.properties
index d788077..7b312a5 100644
--- a/src/chrome/locale/tr/browser.properties
+++ b/src/chrome/locale/tr/browser.properties
@@ -3,11 +3,3 @@ browser.startup.homepage=about:tor
# Spell checker dictionary
spellchecker.dictionary=tr_TR
-
-# Default search engine
-browser.search.defaultenginename=Startpage
-
-# Search engine order (order displayed in the search bar dropdown)
-browser.search.order.1=Startpage
-browser.search.order.2=DuckDuckGo
-browser.search.order.3=Google
diff --git a/src/chrome/locale/tr/torbutton.dtd b/src/chrome/locale/tr/torbutton.dtd
index 606928a..a4e7a21 100644
--- a/src/chrome/locale/tr/torbutton.dtd
+++ b/src/chrome/locale/tr/torbutton.dtd
@@ -24,17 +24,19 @@
<!ENTITY torbutton.pref_connection_more_info.text "Torbutton şu anda devre dışı. Vekil sunucu ayarlarını değiştirmek istiyorsanız, Torbutton'ı tekrar devre dışı bırakın. Genel ayarları değiştirecekseniz, ayarlar penceresini kullanın.">
<!ENTITY torbutton.context_menu.new_identity "Yeni Bağlantı">
<!ENTITY torbutton.context_menu.new_identity_key "S">
+<!ENTITY torbutton.context_menu.new_circuit "Bu site için yeni Tor devresi">
+<!ENTITY torbutton.context_menu.new_circuit_key "C">
<!ENTITY torbutton.context_menu.toggle "Durum">
<!ENTITY torbutton.context_menu.toggle.key "T">
-<!ENTITY torbutton.context_menu.preferences "Ayarlar">
+<!ENTITY torbutton.context_menu.preferences "Gizlilik ve Güvenlik Ayarları...">
<!ENTITY torbutton.context_menu.preferences.key "A">
<!ENTITY torbutton.context_menu.about "Hakkında">
<!ENTITY torbutton.context_menu.about.key "H">
-<!ENTITY torbutton.context_menu.networksettings "Ağ Ayarlarını Aç...">
+<!ENTITY torbutton.context_menu.networksettings "Tor Ağ Ayarları...">
<!ENTITY torbutton.context_menu.networksettings.key "S">
-<!ENTITY torbutton.context_menu.downloadUpdate "Tor Tarayıcı Paketi Güncelleştirmesini İndirin.">
+<!ENTITY torbutton.context_menu.downloadUpdate "Tor Tarayıcı Güncellemesini Denetle...">
<!ENTITY torbutton.context_menu.downloadUpdate.key "H">
-<!ENTITY torbutton.context_menu.cookieProtections "Çerez Korumaları">
+<!ENTITY torbutton.context_menu.cookieProtections "Çerez Korumaları...">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.context_menu.copyTor "Tor URL'sini kopyala">
<!ENTITY torbutton.context_menu.copyTor.key "p">
@@ -155,3 +157,4 @@
<!ENTITY torbutton.prefs.sec_med_high "Orta-Yüksek">
<!ENTITY torbutton.prefs.sec_high "Yüksek">
<!ENTITY torbutton.prefs.sec_custom "Özel Değerler">
+<!ENTITY torbutton.circuit_display.title "Bu site için Tor devresi">
diff --git a/src/chrome/locale/tr/torbutton.properties b/src/chrome/locale/tr/torbutton.properties
index 5a39ac2..d5d3276 100644
--- a/src/chrome/locale/tr/torbutton.properties
+++ b/src/chrome/locale/tr/torbutton.properties
@@ -1,5 +1,10 @@
torbutton.button.tooltip.disabled = Tor'u Etkinleştir
torbutton.button.tooltip.enabled = Tor'u Devre Dışı Bırak
+torbutton.circuit_display.internet = İnternet
+torbutton.circuit_display.ip_unknown = Bilinmeyen IP
+torbutton.circuit_display.this_browser = Bu tarayıcı
+torbutton.circuit_display.tor_bridge = Köprü
+torbutton.circuit_display.unknown_country = Bilinmeyen ülke
torbutton.panel.tooltip.disabled = Tor'u etkinleştirmek için tıklayın
torbutton.panel.tooltip.enabled = Tor'u devre dışı bırakmak için tıklayın
torbutton.panel.plugins.disabled = Eklentileri etkinleştirmek için tıklayın
@@ -46,6 +51,7 @@ torbutton.popup.short_torbrowser = Önemli Torbutton bilgisi!\nTorbutton şimdi
torbutton.popup.confirm_plugins = Flash gibi eklentiler gizliliğinizi ve anonimliğinizi zedeleyebilir.\n\nAynı zaman Tor'u atlatarak geçerli konumunuzu ve IP adresinizi ortaya çıkarabilir.\n\nEklentileri aktif etmek istiyor musunuz?\n
torbutton.popup.never_ask_again = Bir daha sorma
+torbutton.popup.confirm_newnym = Tor Browser will close all windows and tabs. All website sessions will be lost.\n\nRestart Tor Browser now to reset your identity?\n\n
# Canvas permission prompt. Strings are kept here for ease of translation.
canvas.siteprompt=Bu web sitesi (%S) bilgisayarınızı benzersiz olarak tanımlayabilmek için kullanılabilen HTML5 tuvalindeki resim verisine erişmeye çalıştı.\n\nTor Tarayıcı bu web sitesine HTML5 tuval resim verisini çıkarmasına izin vermeli mi?
diff --git a/src/chrome/locale/vi/aboutTor.dtd b/src/chrome/locale/vi/aboutTor.dtd
index afb7da7..c3c8027 100644
--- a/src/chrome/locale/vi/aboutTor.dtd
+++ b/src/chrome/locale/vi/aboutTor.dtd
@@ -1,5 +1,5 @@
<!--
- - Copyright (c) 2014, The Tor Project, Inc.
+ - Copyright (c) 2015, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -8,7 +8,7 @@
<!ENTITY aboutTor.outOfDateTorOn.label "Tuy nhiên, trình duyệt này đã lỗi thời.">
<!ENTITY aboutTor.outOfDateTorOff.label "Ngoài ra, trình duyệt này đã lỗi thời.">
-<!ENTITY aboutTor.outOfDate2.label "Click on the onion and then choose Download Tor Browser Bundle Update.">
+<!ENTITY aboutTor.outOfDate2.label "Click on the onion and then choose Check for Tor Browser Update.">
<!ENTITY aboutTor.check.label "Test Tor Network Settings">
@@ -25,6 +25,7 @@
<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
+<!ENTITY aboutTor.searchDCPost.link "https://search.disconnect.me/searchTerms/search?ses=Google&location_opt…">
<!ENTITY aboutTor.torInfo1.label "Additional Info:">
<!ENTITY aboutTor.torInfo2.label "Quốc gia & Địa chỉ IP:">
diff --git a/src/chrome/locale/vi/brand.dtd b/src/chrome/locale/vi/brand.dtd
index 49ca087..c73eca2 100644
--- a/src/chrome/locale/vi/brand.dtd
+++ b/src/chrome/locale/vi/brand.dtd
@@ -6,3 +6,9 @@
<!ENTITY brandFullName "Tor Browser">
<!ENTITY vendorShortName "Dự án Tor">
<!ENTITY trademarkInfo.part1 "Firefox and the Firefox logos are trademarks of the Mozilla Foundation.">
+
+<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
+<!ENTITY plugins.installed.find "Click to load installed system plugins">
+<!ENTITY plugins.installed.enable "Enable plugins">
+<!ENTITY plugins.installed.disable "Disable plugins">
+<!ENTITY plugins.installed.disable.tip "Click to prevent loading system plugins">
diff --git a/src/chrome/locale/vi/browser.properties b/src/chrome/locale/vi/browser.properties
index 295a03a..8849b67 100644
--- a/src/chrome/locale/vi/browser.properties
+++ b/src/chrome/locale/vi/browser.properties
@@ -3,11 +3,3 @@ browser.startup.homepage=about:tor
# Spell checker dictionary
spellchecker.dictionary=en_US
-
-# Default search engine
-browser.search.defaultenginename=Startpage
-
-# Search engine order (order displayed in the search bar dropdown)
-browser.search.order.1=Startpage
-browser.search.order.2=DuckDuckGo
-browser.search.order.3=Google
diff --git a/src/chrome/locale/vi/torbutton.dtd b/src/chrome/locale/vi/torbutton.dtd
index f33340d..5378f43 100644
--- a/src/chrome/locale/vi/torbutton.dtd
+++ b/src/chrome/locale/vi/torbutton.dtd
@@ -24,17 +24,19 @@
<!ENTITY torbutton.pref_connection_more_info.text "Torbutton hiện đang được hiệu hóa. Nếu bạn muốn thay đổi thiết lập proxy không thuộc chương trình Tor, vui lòng tắt Torbutton và quay trở lại đây. Nếu bạn muốn thay đổi thiết lập từ Tor, vui lòng dùng cửa sổ tùy chỉnh Torbutton.">
<!ENTITY torbutton.context_menu.new_identity "Giám định Mới">
<!ENTITY torbutton.context_menu.new_identity_key "I">
+<!ENTITY torbutton.context_menu.new_circuit "New Tor Circuit for this Site">
+<!ENTITY torbutton.context_menu.new_circuit_key "C">
<!ENTITY torbutton.context_menu.toggle "Bật/tắt trạng thái của Tor">
<!ENTITY torbutton.context_menu.toggle.key "T">
-<!ENTITY torbutton.context_menu.preferences "Tùy chỉnh...">
+<!ENTITY torbutton.context_menu.preferences "Privacy and Security Settings…">
<!ENTITY torbutton.context_menu.preferences.key "P">
<!ENTITY torbutton.context_menu.about "Thông tin về Torbutton...">
<!ENTITY torbutton.context_menu.about.key "A">
-<!ENTITY torbutton.context_menu.networksettings "Mở các Thiết đặt Mạng...">
+<!ENTITY torbutton.context_menu.networksettings "Tor Network Settings…">
<!ENTITY torbutton.context_menu.networksettings.key "S">
-<!ENTITY torbutton.context_menu.downloadUpdate "Tải về Bản cập nhật Bổ trợ cho Trình duyệt Tor...">
+<!ENTITY torbutton.context_menu.downloadUpdate "Check for Tor Browser Update…">
<!ENTITY torbutton.context_menu.downloadUpdate.key "U">
-<!ENTITY torbutton.context_menu.cookieProtections "Cơ chế bảo vệ Cookie">
+<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections…">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.context_menu.copyTor "Sao chép địa chỉ URL của Tor">
<!ENTITY torbutton.context_menu.copyTor.key "p">
@@ -155,3 +157,4 @@
<!ENTITY torbutton.prefs.sec_med_high "Medium-High">
<!ENTITY torbutton.prefs.sec_high "High">
<!ENTITY torbutton.prefs.sec_custom "Custom Values">
+<!ENTITY torbutton.circuit_display.title "Tor circuit for this site">
diff --git a/src/chrome/locale/vi/torbutton.properties b/src/chrome/locale/vi/torbutton.properties
index 20b1f61..9c563d4 100644
--- a/src/chrome/locale/vi/torbutton.properties
+++ b/src/chrome/locale/vi/torbutton.properties
@@ -1,5 +1,10 @@
torbutton.button.tooltip.disabled = Bật Tor
torbutton.button.tooltip.enabled = Tắt Tor
+torbutton.circuit_display.internet = Internet
+torbutton.circuit_display.ip_unknown = IP unknown
+torbutton.circuit_display.this_browser = This browser
+torbutton.circuit_display.tor_bridge = Bridge
+torbutton.circuit_display.unknown_country = Unknown country
torbutton.panel.tooltip.disabled = Nhấn để bật Tor
torbutton.panel.tooltip.enabled = Nhấn để tắt Tor
torbutton.panel.plugins.disabled = Nhấn để bật phần bổ trợ
@@ -46,6 +51,7 @@ torbutton.popup.short_torbrowser = Important Torbutton Information!\n\nTorbutton
torbutton.popup.confirm_plugins = Plugins such as Flash can harm your privacy and anonymity.\n\nThey can also bypass Tor to reveal your current location and IP address.\n\nAre you sure you want to enable plugins?\n\n
torbutton.popup.never_ask_again = Never ask me again
+torbutton.popup.confirm_newnym = Tor Browser will close all windows and tabs. All website sessions will be lost.\n\nRestart Tor Browser now to reset your identity?\n\n
# Canvas permission prompt. Strings are kept here for ease of translation.
canvas.siteprompt=This website (%S) attempted to extract HTML5 canvas image data, which may be used to uniquely identify your computer.\n\nShould Tor Browser allow this website to extract HTML5 canvas image data?
diff --git a/src/chrome/locale/zh-CN/aboutTor.dtd b/src/chrome/locale/zh-CN/aboutTor.dtd
index 3e2cff4..8237217 100644
--- a/src/chrome/locale/zh-CN/aboutTor.dtd
+++ b/src/chrome/locale/zh-CN/aboutTor.dtd
@@ -1,5 +1,5 @@
<!--
- - Copyright (c) 2014, The Tor Project, Inc.
+ - Copyright (c) 2015, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -8,7 +8,7 @@
<!ENTITY aboutTor.outOfDateTorOn.label "但是该浏览器并非最新版本。">
<!ENTITY aboutTor.outOfDateTorOff.label "另外,该浏览器并非最新版本。">
-<!ENTITY aboutTor.outOfDate2.label "请单击洋葱图标,然后选择“下载 Tor Browser Bundle”更新。">
+<!ENTITY aboutTor.outOfDate2.label "点击洋葱,然后选择 Tor Browser 检查更新。">
<!ENTITY aboutTor.check.label "测试 Tor 网络设置">
@@ -25,6 +25,7 @@
<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/rth/search">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
+<!ENTITY aboutTor.searchDCPost.link "https://search.disconnect.me/searchTerms/search?ses=Google&location_opt…">
<!ENTITY aboutTor.torInfo1.label "更多信息:">
<!ENTITY aboutTor.torInfo2.label "国家与 IP 地址:">
diff --git a/src/chrome/locale/zh-CN/brand.dtd b/src/chrome/locale/zh-CN/brand.dtd
index 7868d2d..97f75bb 100644
--- a/src/chrome/locale/zh-CN/brand.dtd
+++ b/src/chrome/locale/zh-CN/brand.dtd
@@ -6,3 +6,9 @@
<!ENTITY brandFullName "Tor Browser">
<!ENTITY vendorShortName "Tor Project">
<!ENTITY trademarkInfo.part1 "Firefox 与 Firefox 图标为 Mozilla Foundation 的商标。">
+
+<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
+<!ENTITY plugins.installed.find "点击加载已安装的系统插件">
+<!ENTITY plugins.installed.enable "启用插件">
+<!ENTITY plugins.installed.disable "禁用插件">
+<!ENTITY plugins.installed.disable.tip "点击阻止加载系统插件">
diff --git a/src/chrome/locale/zh-CN/browser.properties b/src/chrome/locale/zh-CN/browser.properties
index b3a313b..452496c 100644
--- a/src/chrome/locale/zh-CN/browser.properties
+++ b/src/chrome/locale/zh-CN/browser.properties
@@ -3,11 +3,3 @@ browser.startup.homepage=about:tor
# Spell checker dictionary
spellchecker.dictionary=zh_CN
-
-# Default search engine
-browser.search.defaultenginename=Startpage
-
-# Search engine order (order displayed in the search bar dropdown)
-browser.search.order.1=Startpage
-browser.search.order.2=DuckDuckGo
-browser.search.order.3=Google
diff --git a/src/chrome/locale/zh-CN/torbutton.dtd b/src/chrome/locale/zh-CN/torbutton.dtd
index 39b07dc..7da1472 100644
--- a/src/chrome/locale/zh-CN/torbutton.dtd
+++ b/src/chrome/locale/zh-CN/torbutton.dtd
@@ -24,17 +24,19 @@
<!ENTITY torbutton.pref_connection_more_info.text "Torbutton 当前已启用。如需对 Tor 之外的代理设置进行更改,请禁用 Torbutton 后再返回这里。如需更改 Tor 的设置,请在 Torbutton 首选项窗口中进行设置。">
<!ENTITY torbutton.context_menu.new_identity "新标识">
<!ENTITY torbutton.context_menu.new_identity_key "I">
+<!ENTITY torbutton.context_menu.new_circuit "对此网站使用新的 Tor 线路">
+<!ENTITY torbutton.context_menu.new_circuit_key "C">
<!ENTITY torbutton.context_menu.toggle "切换 Tor 状态">
<!ENTITY torbutton.context_menu.toggle.key "T">
-<!ENTITY torbutton.context_menu.preferences "首选项...">
+<!ENTITY torbutton.context_menu.preferences "隐私与安全设置…">
<!ENTITY torbutton.context_menu.preferences.key "P">
<!ENTITY torbutton.context_menu.about "关于 Torbutton...">
<!ENTITY torbutton.context_menu.about.key "A">
-<!ENTITY torbutton.context_menu.networksettings "打开网络设置…">
+<!ENTITY torbutton.context_menu.networksettings "Tor 网络设置…">
<!ENTITY torbutton.context_menu.networksettings.key "S">
-<!ENTITY torbutton.context_menu.downloadUpdate "下载 Tor Browser Bundle 更新...">
+<!ENTITY torbutton.context_menu.downloadUpdate "Tor Browser 检查更新…">
<!ENTITY torbutton.context_menu.downloadUpdate.key "U">
-<!ENTITY torbutton.context_menu.cookieProtections "Cookie 保护">
+<!ENTITY torbutton.context_menu.cookieProtections "Cookie 保护…">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.context_menu.copyTor "复制 Tor 网址">
<!ENTITY torbutton.context_menu.copyTor.key "p">
@@ -155,3 +157,4 @@
<!ENTITY torbutton.prefs.sec_med_high "中高">
<!ENTITY torbutton.prefs.sec_high "高">
<!ENTITY torbutton.prefs.sec_custom "自定义">
+<!ENTITY torbutton.circuit_display.title "对此网站的 Tor 线路">
diff --git a/src/chrome/locale/zh-CN/torbutton.properties b/src/chrome/locale/zh-CN/torbutton.properties
index 49bb702..cee64a2 100644
--- a/src/chrome/locale/zh-CN/torbutton.properties
+++ b/src/chrome/locale/zh-CN/torbutton.properties
@@ -1,5 +1,10 @@
torbutton.button.tooltip.disabled = 启用 Tor
torbutton.button.tooltip.enabled = 禁用 Tor
+torbutton.circuit_display.internet = 互联网
+torbutton.circuit_display.ip_unknown = IP 未知
+torbutton.circuit_display.this_browser = 本浏览器
+torbutton.circuit_display.tor_bridge = 网桥
+torbutton.circuit_display.unknown_country = 未知国家
torbutton.panel.tooltip.disabled = 点击启用 Tor
torbutton.panel.tooltip.enabled = 点击禁用 Tor
torbutton.panel.plugins.disabled = 点击启用插件
@@ -46,6 +51,7 @@ torbutton.popup.short_torbrowser = Torbutton的重要信息!\n\nTorbutton 目
torbutton.popup.confirm_plugins = Flash 之类的插件可对用户的隐私与匿名性造成危害。\n\n它们还可能绕过 Tor 而泄漏用户的当前位置和 IP 地址。\n\n是否确定启用插件?\n\n
torbutton.popup.never_ask_again = 不再询问
+torbutton.popup.confirm_newnym = Tor Browser 将关闭所有窗口和标签页。所有网站登录状态都将丢失。\n\n重新启动 Tor Browser 以重置您的身份?\n\n
# Canvas permission prompt. Strings are kept here for ease of translation.
canvas.siteprompt=此网站 (%S) 试图获取 HTML5 Canva 图像数据,该数据可用作你所用计算机的唯一标识。\n\nTor Browser 是否应允许此网站获取 HTML5 Canva 图像数据?
1
0

[tor-launcher/master] Bug 13271: Ask about bridges before proxy in wizard.
by mikeperry@torproject.org 13 Feb '15
by mikeperry@torproject.org 13 Feb '15
13 Feb '15
commit 23704117fbbfc90f18e90c61874fa120e6e1de3a
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Wed Feb 11 15:09:24 2015 -0500
Bug 13271: Ask about bridges before proxy in wizard.
Reorder wizardpage elements and fix associated logic.
Replace "proxy" with "local proxy" within prompts to help users distinguish
bridges from proxies that are needed for local Internet access.
Reorder Network Settings dialog elements to match wizard order.
Remove unneeded label=" " from wizardpage elements.
Linux and Windows: Fix problem where prev/next buttons were displayed
on first wizard page.
Use showWizardNavButtons() in more places.
---
src/chrome/content/network-settings-wizard.xul | 62 +++++++++++-----------
src/chrome/content/network-settings.js | 67 ++++++++++++++----------
src/chrome/content/network-settings.xul | 16 +++---
src/chrome/locale/en/network-settings.dtd | 8 +--
4 files changed, 83 insertions(+), 70 deletions(-)
diff --git a/src/chrome/content/network-settings-wizard.xul b/src/chrome/content/network-settings-wizard.xul
index 33ba6c5..9c75894 100644
--- a/src/chrome/content/network-settings-wizard.xul
+++ b/src/chrome/content/network-settings-wizard.xul
@@ -29,7 +29,7 @@
<!-- This page requires a setTimeout for onpageshow because it may be
shown first -->
- <wizardpage label=" " pageid="first" next="proxy" onextra2="onCopyLog();"
+ <wizardpage pageid="first" next="proxy" onextra2="onCopyLog();"
onpageshow="setTimeout(function() { showWizardNavButtons(false); }, 0);">
<hbox class="tbb-header">
<vbox class="tbb-logo-box" align="start">
@@ -54,72 +54,74 @@
</vbox>
</wizardpage>
- <wizardpage label=" " pageid="proxy" next="bridges" onextra2="onCopyLog();"
+ <wizardpage pageid="bridges" next="proxy" onextra2="onCopyLog();"
onpageshow="showWizardNavButtons(true);"
- onpageadvanced="return onWizardProxyNext(this);">
+ onpageadvanced="return onWizardUseBridgesNext(this)">
<vbox class="tbb-logo-box" align="start">
<image class="tbb-logo" />
</vbox>
<separator class="tbb-logo-separator" />
<hbox>
<vbox flex="1">
- <label class="question">&torSettings.proxyQuestion;</label>
- <radiogroup id="proxyRadioGroup">
- <radio id="proxyRadioYes" label="&torSettings.yes;" />
- <radio id="proxyRadioNo" label="&torSettings.no;" selected="true" />
+ <label class="question">&torSettings.bridgeQuestion;</label>
+ <radiogroup id="useBridgesRadioGroup">
+ <radio id="bridgesRadioYes" label="&torSettings.yes;" />
+ <radio id="bridgesRadioNo" label="&torSettings.no;" selected="true" />
</radiogroup>
- <description class="questionHelp">&torSettings.proxyHelp;
+ <description class="questionHelp">&torSettings.bridgeHelp;
</description>
</vbox>
</hbox>
</wizardpage>
- <wizardpage pageid="proxyYES" next="bridges" onextra2="onCopyLog();"
- onpageadvanced="return (getAndValidateProxySettings() != null)">
+ <wizardpage pageid="bridgeSettings" next="proxy" onextra2="onCopyLog();"
+ onpageshow="onWizardBridgeSettingsShow();">
<vbox class="tbb-logo-box" align="start">
<image class="tbb-logo" />
</vbox>
<separator class="tbb-logo-separator" />
- <label class="instructions">&torSettings.enterProxy;</label>
- <groupbox id="proxySpecificSettings" />
+ <vbox>
+ <label id="bridgeSettingsPrompt"
+ class="question">&torSettings.bridgeSettingsPrompt;</label>
+ <groupbox id="bridgeSpecificSettings" />
+ </vbox>
</wizardpage>
- <wizardpage pageid="bridges" onextra2="onCopyLog();"
- onpageshow="onWizardUseBridgesRadioChange(this)">
+ <wizardpage pageid="proxy" onextra2="onCopyLog();"
+ onpageshow="onWizardUseProxyRadioChange()"
+ onpageadvanced="return onWizardProxyNext(this);">
<vbox class="tbb-logo-box" align="start">
<image class="tbb-logo" />
</vbox>
<separator class="tbb-logo-separator" />
<hbox>
<vbox flex="1">
- <label class="question">&torSettings.bridgeQuestion;</label>
- <radiogroup id="useBridgesRadioGroup"
- oncommand="onWizardUseBridgesRadioChange()">
- <radio id="bridgesRadioYes" label="&torSettings.yes;" />
- <radio id="bridgesRadioNo" label="&torSettings.no;" selected="true" />
+ <label class="question">&torSettings.proxyQuestion;</label>
+ <radiogroup id="proxyRadioGroup"
+ oncommand="onWizardUseProxyRadioChange()">
+ <radio id="proxyRadioYes" label="&torSettings.yes;" />
+ <radio id="proxyRadioNo" label="&torSettings.no;" selected="true" />
</radiogroup>
- <description class="questionHelp">&torSettings.bridgeHelp;
+ <description class="questionHelp">&torSettings.proxyHelp;
</description>
</vbox>
</hbox>
</wizardpage>
- <wizardpage label=" " pageid="bridgeSettings" onextra2="onCopyLog();"
- onpageshow="onWizardBridgeSettingsShow()">
+ <wizardpage pageid="proxyYES" onextra2="onCopyLog();"
+ onpageshow="onWizardProxySettingsShow()"
+ onpageadvanced="return (getAndValidateProxySettings() != null)">
<vbox class="tbb-logo-box" align="start">
<image class="tbb-logo" />
</vbox>
<separator class="tbb-logo-separator" />
- <vbox>
- <label id="bridgeSettingsPrompt"
- class="question">&torSettings.bridgeSettingsPrompt;</label>
- <groupbox id="bridgeSpecificSettings" />
- </vbox>
+ <label class="instructions">&torSettings.enterProxy;</label>
+ <groupbox id="proxySpecificSettings" />
</wizardpage>
<!-- This page requires a setTimeout for onpageshow because it may be
shown first -->
- <wizardpage label=" " pageid="startingTor" next="notUsed"
+ <wizardpage pageid="startingTor" next="notUsed"
onpageshow="setTimeout(function() { showWizardNavButtons(false); }, 0);">
<spring flex="1" />
<hbox>
@@ -130,7 +132,7 @@
<spring flex="1" />
</wizardpage>
- <wizardpage label=" " pageid="errorPanel" next="notUsed"
+ <wizardpage pageid="errorPanel" next="notUsed"
onpageshow="showWizardNavButtons(false);"
onextra2="onCopyLog();">
<spring flex="1" />
@@ -149,7 +151,7 @@
<spring flex="1" />
</wizardpage>
- <wizardpage class="help" label=" " pageid="bridgeHelp" next="notUsed"
+ <wizardpage class="help" pageid="bridgeHelp" next="notUsed"
onpageadvanced="closeHelp(); return false;">
<vbox id="bridgeHelpContent" />
</wizardpage>
diff --git a/src/chrome/content/network-settings.js b/src/chrome/content/network-settings.js
index aa07e1e..3277553 100644
--- a/src/chrome/content/network-settings.js
+++ b/src/chrome/content/network-settings.js
@@ -248,7 +248,7 @@ function getWizard()
function onWizardConfigure()
{
- getWizard().advance("proxy");
+ getWizard().advance("bridges");
}
@@ -257,34 +257,51 @@ function onWizardProxyNext(aWizPage)
if (aWizPage)
{
var hasProxy = getElemValue("proxyRadioYes", false);
- aWizPage.next = (hasProxy) ? "proxyYES" : "bridges";
+ aWizPage.next = (hasProxy) ? "proxyYES" : "";
}
return true;
}
-function onWizardUseBridgesRadioChange(aWizPage)
+function onWizardUseProxyRadioChange()
{
var wizard = getWizard();
- if (!aWizPage)
- aWizPage = wizard.currentPage;
+ if (wizard && wizard.currentPage)
+ {
+ var hasProxy = getElemValue("proxyRadioYes", false);
+ wizard.setAttribute("lastpage", !hasProxy);
+ wizard._wizardButtons.onPageChange();
+ }
+}
+
+
+function onWizardProxySettingsShow()
+{
+ var wizard = getWizard();
+ if (wizard)
+ {
+ wizard.setAttribute("lastpage", true);
+ wizard._wizardButtons.onPageChange();
+ }
+}
+
+
+function onWizardUseBridgesNext(aWizPage)
+{
if (aWizPage)
{
var useBridges = getElemValue("bridgesRadioYes", false);
- aWizPage.next = (useBridges) ? "bridgeSettings" : "";
- wizard.setAttribute("lastpage", !useBridges);
- wizard._wizardButtons.onPageChange();
+ aWizPage.next = (useBridges) ? "bridgeSettings" : "proxy";
}
+
+ return true;
}
function onWizardBridgeSettingsShow()
{
- var wizard = getWizard();
- wizard.setAttribute("lastpage", true);
- wizard._wizardButtons.onPageChange();
- var btn = document.documentElement.getButton("finish");
+ var btn = document.documentElement.getButton("next");
if (btn)
btn.focus();
}
@@ -335,10 +352,7 @@ var gObserver = {
var haveWizard = (getWizard() != null);
showPanel();
if (haveWizard)
- {
- showOrHideButton("back", true, false);
- showOrHideButton("next", true, false);
- }
+ showWizardNavButtons(true);
readTorSettings();
}
else if (kTorProcessDidNotStartTopic == aTopic)
@@ -400,8 +414,8 @@ function readTorSettings()
try
{
// TODO: retrieve > 1 key at one time inside initProxySettings() et al.
- didSucceed = initProxySettings() && initFirewallSettings() &&
- initBridgeSettings();
+ didSucceed = initBridgeSettings() &&
+ initProxySettings() && initFirewallSettings();
}
catch (e) { TorLauncherLogger.safelog(4, "Error in readTorSettings: ", e); }
@@ -437,6 +451,9 @@ function showPanel(aPanelID)
else if (wizard.currentPage.pageid != aPanelID)
wizard.goTo(aPanelID);
+ if (wizard && (aPanelID == "first"))
+ setTimeout( function() { showWizardNavButtons(false); }, 0);
+
showOrHideButton("accept", (aPanelID == "settings"), true);
}
@@ -466,10 +483,7 @@ function showStartingTorPanel()
{
var haveWizard = (getWizard() != null);
if (haveWizard)
- {
- showOrHideButton("back", false, false);
- showOrHideButton("next", false, false);
- }
+ showWizardNavButtons(false);
showPanel("startingTor");
}
@@ -505,10 +519,7 @@ function showErrorMessage(aTorExited, aErrorMsg)
var haveWizard = (getWizard() != null);
if (haveWizard)
- {
- showOrHideButton("back", false, false);
- showOrHideButton("next", false, false);
- }
+ showWizardNavButtons(false);
var haveErrorOrWarning = (gTorProcessService.TorBootstrapErrorOccurred ||
gProtocolSvc.TorLogHasWarnOrErr)
@@ -969,8 +980,8 @@ function applySettings()
var didSucceed = false;
try
{
- didSucceed = applyProxySettings() && applyFirewallSettings() &&
- applyBridgeSettings();
+ didSucceed = applyBridgeSettings() &&
+ applyProxySettings() && applyFirewallSettings();
}
catch (e) { TorLauncherLogger.safelog(4, "Error in applySettings: ", e); }
diff --git a/src/chrome/content/network-settings.xul b/src/chrome/content/network-settings.xul
index 4f98559..9fffbec 100644
--- a/src/chrome/content/network-settings.xul
+++ b/src/chrome/content/network-settings.xul
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<!--
- - Copyright (c) 2014, The Tor Project, Inc.
+ - Copyright (c) 2015, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -33,6 +33,13 @@
<deck id="deck">
<vbox id="settings">
<vbox>
+ <checkbox id="useBridges" groupboxID="bridgeSpecificSettings"
+ label="&torsettings.useBridges.checkbox;"
+ oncommand="toggleElemUI(this);" />
+ <groupbox id="bridgeSpecificSettings" />
+ </vbox>
+
+ <vbox>
<separator orient="horizontal" class="thin" />
<checkbox id="useProxy" groupboxID="proxySpecificSettings"
label="&torsettings.useProxy.checkbox;"
@@ -46,13 +53,6 @@
oncommand="toggleElemUI(this)"/>
<groupbox id="firewallSpecificSettings" />
</vbox>
-
- <vbox>
- <checkbox id="useBridges" groupboxID="bridgeSpecificSettings"
- label="&torsettings.useBridges.checkbox;"
- oncommand="toggleElemUI(this);" />
- <groupbox id="bridgeSpecificSettings" />
- </vbox>
</vbox>
<vbox id="startingTor">
<spring flex="1" />
diff --git a/src/chrome/locale/en/network-settings.dtd b/src/chrome/locale/en/network-settings.dtd
index 3661088..5ce6ee8 100644
--- a/src/chrome/locale/en/network-settings.dtd
+++ b/src/chrome/locale/en/network-settings.dtd
@@ -9,15 +9,15 @@
<!ENTITY torSettings.firstQuestion "Which of the following best describes your situation?">
<!ENTITY torSettings.configurePrompt1 "This computer's Internet connection is censored or proxied.">
-<!ENTITY torSettings.configurePrompt2 "I need to configure bridge or proxy settings.">
+<!ENTITY torSettings.configurePrompt2 "I need to configure bridge or local proxy settings.">
<!ENTITY torSettings.configure "Configure">
<!ENTITY torSettings.connectPrompt2 "I would like to connect directly to the Tor network.">
<!ENTITY torSettings.connectPrompt3 "This will work in most situations.">
<!ENTITY torSettings.connect "Connect">
-<!ENTITY torSettings.proxyQuestion "Does this computer need to use a proxy to access the Internet?">
+<!ENTITY torSettings.proxyQuestion "Does this computer need to use a local proxy to access the Internet?">
<!-- see https://www.torproject.org/docs/proxychain.html.en -->
-<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a proxy.">
+<!ENTITY torSettings.proxyHelp "If you are not sure how to answer this question, look at the Internet settings in another browser to see whether it is configured to use a local proxy.">
<!ENTITY torSettings.enterProxy "Enter the proxy settings.">
<!ENTITY torSettings.bridgeQuestion "Does your Internet Service Provider (ISP) block or otherwise censor connections to the Tor Network?">
<!ENTITY torSettings.bridgeHelp "If you are not sure how to answer this question, choose No.  If you choose Yes, you will be asked to configure Tor Bridges, which are unlisted relays that make it more difficult to block connections to the Tor Network.">
@@ -30,7 +30,7 @@
<!ENTITY torsettings.optional "Optional">
-<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a proxy to access the Internet">
+<!ENTITY torsettings.useProxy.checkbox "This computer needs to use a local proxy to access the Internet">
<!ENTITY torsettings.useProxy.type "Proxy Type:">
<!ENTITY torsettings.useProxy.address "Address:">
<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
1
0

[torbutton/master] Bug 14632: Disable Cookie Manager until we get it working.
by mikeperry@torproject.org 13 Feb '15
by mikeperry@torproject.org 13 Feb '15
13 Feb '15
commit 3b8c21044edea186da1e7039f4c4151fde3a0cd8
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Mon Feb 9 15:04:48 2015 -0800
Bug 14632: Disable Cookie Manager until we get it working.
Also update the string so it is more clear that it is a secondary
dialog, once we do get it working again.
---
src/chrome/content/popup.xul | 3 ++-
src/chrome/content/torbutton.js | 4 ++++
src/chrome/locale/en/torbutton.dtd | 2 +-
3 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/chrome/content/popup.xul b/src/chrome/content/popup.xul
index f4ad7d2..9a77c54 100644
--- a/src/chrome/content/popup.xul
+++ b/src/chrome/content/popup.xul
@@ -21,7 +21,8 @@
<menuitem id="torbutton-cookie-protector"
label="&torbutton.context_menu.cookieProtections;"
accesskey="&torbutton.context_menu.cookieProtections.key;"
- insertafter="context-stop"
+ insertafter="context-stop"
+ hidden="true"
oncommand="torbutton_open_cookie_dialog()"/>
<menuitem id="torbutton-preferences"
label="&torbutton.context_menu.preferences;"
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index 01591cc..bdb3b2d 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -2061,6 +2061,10 @@ function torbutton_update_disk_prefs() {
m_tb_prefs.setIntPref("browser.download.manager.retention", 2);
}
+ // XXX: Bug 14632: The cookie dialog is useless in private browsing mode in FF31ESR
+ // See https://trac.torproject.org/projects/tor/ticket/10353 for more info.
+ document.getElementById("torbutton-cookie-protector").hidden = mode;
+
// Force prefs to be synced to disk
var prefService = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefService);
diff --git a/src/chrome/locale/en/torbutton.dtd b/src/chrome/locale/en/torbutton.dtd
index 7a4284f..ea37d19 100644
--- a/src/chrome/locale/en/torbutton.dtd
+++ b/src/chrome/locale/en/torbutton.dtd
@@ -34,7 +34,7 @@
<!ENTITY torbutton.context_menu.networksettings.key "S">
<!ENTITY torbutton.context_menu.downloadUpdate "Check for Tor Browser Update…">
<!ENTITY torbutton.context_menu.downloadUpdate.key "U">
-<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
+<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections…">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.context_menu.copyTor "Copy Tor URL">
<!ENTITY torbutton.context_menu.copyTor.key "p">
1
0

13 Feb '15
commit 2d94a9de3e8b7c3e611bfe18db1f2316a8b88a70
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Wed Feb 4 11:01:37 2015 -0500
Bug 13900: Remove SafeCache code.
The SafeCache functionality that we need has been reimplemented
in C++ inside Tor Browser.
---
src/chrome/content/stanford-safecache.js | 448 ------------------------------
src/chrome/content/torbutton.js | 7 -
src/chrome/content/torbutton.xul | 3 -
src/defaults/preferences/preferences.js | 3 -
4 files changed, 461 deletions(-)
diff --git a/src/chrome/content/stanford-safecache.js b/src/chrome/content/stanford-safecache.js
deleted file mode 100644
index 0ef52ad..0000000
--- a/src/chrome/content/stanford-safecache.js
+++ /dev/null
@@ -1,448 +0,0 @@
-// Bug 1506 P3: This file provides important cache isolation properties,
-// but it is not very useful without a patched Firefox to go with it.
-// It could probably also use some refactoring into an XPCOM component.
-// It is currently registered from torbutton.js's "main window" observers,
-// which is not the right place.
-
-/*
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- * Neither the name of Stanford University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-*/
-// Dual-keyed cache/cookie same-origin policy
-// Ensures that cache and cookies set in HTTP headers cannot be used for
-// non-cooperative or semi-cooperative tracking.
-//
-// Author: Edward Pastuszenski
-//
-// Based on Stanford SafeCache
-// Author: Collin Jackson
-// Other contributors: Andrew Bortz, John Mitchell, Dan Boneh
-//
-
-//////////////////////////////////////////////////////////////////////////////
-// Constants
-
-const kSSC_ENABLED_PREF = "extensions.torbutton.safecache";
-const kSSC_SC_ENABLED_PREF = "extensions.torbutton.dual_key_cookies";
-const kSSC_TORBUTTON_PREF = "extensions.torbutton.tor_enabled";
-const kSSC_COOKIE_JS_PREF = "extensions.torbutton.cookie_js_allow";
-
-////////////////////////////////////////////////////////////////////////////
-// Debug stuff
-
-/**
- * Dump information to the console?
- */
-var SSC_debug = true;
-
-/**
- * Sends data to the console if we're in debug mode
- * @param msg The string containing the message to display
- */
-function SSC_dump(msg) {
- if (SSC_debug)
- torbutton_log(3, "SSC: " + msg);
-}
-
-////////////////////////////////////////////////////////////////////////////
-// "Major" objects/classes
-
-/**
- * SafeCache HTTP Request Listener
- * Watches for the authentication requests and presents password dialog
- */
-
-function SSC_RequestListener(controller) {
- this.controller = controller;
- this.thirdPartyUtil = Cc["@mozilla.org/thirdpartyutil;1"].
- getService(Ci.mozIThirdPartyUtil);
- this.cookie_permissions = Cc["@mozilla.org/cookie/permission;1"].
- getService(Ci.nsICookiePermission);
-}
-
-SSC_RequestListener.prototype =
-{
- controller: null, // The SSC_Controller that created this
-
- observe: function(subject, topic, data) {
- try {
- if(this.controller.getEnabled() == 2) return;
- if(this.controller.getEnabled() == 1
- && !this.controller.getTorButton()) return;
- if (topic == 'http-on-modify-request') {
- subject.QueryInterface(Components.interfaces.nsIHttpChannel);
- subject.QueryInterface(Components.interfaces.nsIHttpChannelInternal);
- subject.QueryInterface(Components.interfaces.nsICachingChannel);
- subject.QueryInterface(Components.interfaces.nsIChannel);
- this.onModifyRequest(subject);
- } else if (topic == 'http-on-examine-response') {
- subject.QueryInterface(Components.interfaces.nsIHttpChannel);
- subject.QueryInterface(Components.interfaces.nsIHttpChannelInternal);
- subject.QueryInterface(Components.interfaces.nsICachingChannel);
- subject.QueryInterface(Components.interfaces.nsIChannel);
- this.onExamineResponse(subject);
- }
- } catch(e) {try {torbutton_log(4, "SSC: "+e);} catch(ex) {}}
- },
-
- bypassCache: function(channel) {
- channel.loadFlags |= channel.LOAD_BYPASS_CACHE;
- // INHIBIT_PERSISTENT_CACHING instead?
- channel.cacheKey = this.newCacheKey(0);
- SSC_dump("Bypassed cache for " + channel.URI.spec);
- },
-
- setCacheKey: function(channel, str) {
- try {
- channel.cacheDomain = str;
- SSC_dump("Set cacheDomain to "+str+" for "+channel.URI.spec);
- } catch(e) {
- var oldData = this.readCacheKey(channel);
- var newKey = this.newCacheKey(this.getHash(str) + oldData);
- channel.cacheKey = newKey;
- SSC_dump("Set cache key to hash(" + str + ") = " +
- newKey.data + " for " + channel.URI.spec);
- }
- },
-
- onModifyRequest: function(channel) {
- var parent_host = null;
- var parent_spec = null;
- if (channel.notificationCallbacks ||
- channel.loadGroup && channel.loadGroup.notificationCallbacks) {
- var callbacks = null;
- if (channel.notificationCallbacks) {
- callbacks = channel.notificationCallbacks;
- } else {
- callbacks = channel.loadGroup.notificationCallbacks;
- }
- try {
- var wind = callbacks.QueryInterface(
- Components.interfaces.nsIInterfaceRequestor).getInterface(
- Components.interfaces.nsIDOMWindow);
- parent_host = wind.window.top.location.hostname;
- parent_spec = wind.window.top.location.href;
- } catch(e) {
- }
- SSC_dump("Parent "+parent_host+" for "+ channel.URI.spec);
- }
-
- if (channel.documentURI && channel.documentURI == channel.URI) {
- parent_host = null; // first party interaction
- parent_spec = null;
- } else if(!parent_host) {
- // Questionable first party interaction..
- try {
- var anuri = null;
- try {
- anuri = this.thirdPartyUtil.getFirstPartyURIFromChannel(channel, false);
- } catch (e) {
- torbutton_safelog(2, "FirstParty API failed to get parent: "+e+" ", channel.URI.spec);
- // We are not using the TBB based on ESR 24. Falling back to the old
- // method.
- anuri = this.cookie_permissions.getOriginatingURI(channel);
- }
- parent_host = anuri.host;
- parent_spec = anuri.spec;
- } catch(e) {
- // XXX: This can still fail for OCSP and other windowless requests..
- torbutton_safelog(3, "Cookie API failed to get parent: "+e+" ",channel.URI.spec);
- if (!channel.referrer) {
- torbutton_safelog(3, "SSC: No cache isolation parent for ", channel.URI.spec);
- } else {
- parent_host = channel.referrer.host;
- parent_spec = channel.referrer.spec;
- }
- }
- }
-
- // Same-origin policy
- var referrer;
- if (parent_host && parent_host != channel.URI.host) {
- SSC_dump("Segmenting " + channel.URI.spec +
- " content loaded by " + parent_host);
- this.setCacheKey(channel, parent_host);
- referrer = parent_host;
- try {
- // Disable 3rd party http auth, but exempt the browser (for favicon loads)
- // FIXME: Hrmm, this is just going to disable auth for 3rd party domains.
- // It would be better if we could isolate the auth, but still
- // allow it to be transmitted.. But I guess, who still uses http auth anyways?
- if (channel.getRequestHeader("Authorization") !== null) {
- if (parent_spec == "chrome://browser/content/browser.xul") {
- torbutton_log(3, "Allowing auth for browser load of "+channel.URI.spec);
- } else {
- torbutton_safelog(4, "Removing 3rd party HTTP auth for url ",
- channel.URI.spec+", parent: "+parent_spec);
- channel.setRequestHeader("Authorization", null, false);
- channel.setRequestHeader("Pragma", null, false);
- channel.setRequestHeader("Cache-Control", null, false);
- }
- }
- } catch (e) {}
- } else {
- referrer = channel.URI.host;
- if(!this.readCacheKey(channel)) {
- this.setCacheKey(channel, channel.URI.host);
- } else {
- SSC_dump("Existing cache key detected; leaving it unchanged.");
- }
- }
-
- if (this.controller.getBlockThirdPartyCache()) {
- if(parent_host && parent_host != channel.URI.host) {
- //SSC_dump("Third party cache blocked for " + channel.URI.spec +
- //" content loaded by " + parent_host);
- this.bypassCache(channel);
- }
- }
-
- var cookie = null;
- if (this.controller.getSafeCookieEnabled()) {
- try{
- cookie = channel.getRequestHeader("Cookie");
- //SSC_dump("Cookie: " + cookie);
- } catch(e) {cookie = null;}
- }
-
- if(cookie) {
- //Strip the secondary key from every referrer-matched cookie
- var newHeader = "";
- var i = 0;
- var lastStart = 0;
- //State 0: no information on next cookie
- //State 1: cookie will be sent.
- //State 2: cookie will not be sent.
- var state = 0;
- while (i < cookie.length) {
- //Dual-keyed cookie
- if(state == 0 && cookie.charAt(i) == '|'){
- //If referrers match, strip key and send cookie
- var cookieReferrer = cookie.toString().substr(lastStart, i - lastStart);
- if (referrer == cookieReferrer){
- lastStart = i+1;
- state = 1;
- } else {
- state = 2;
- }
- }
- //Single-keyed cookie that was set via scripting.
- if (state == 0 && cookie.charAt(i) == '='){
- if(this.controller.getCookieJS()) state = 1;
- else {
- if (referrer == channel.getRequestHeader("Host")) state = 1;
- else state = 2;
- }
- }
- //End of a cookie
- if (cookie.charAt(i) == ';') {
- var thisCookie = cookie.toString().substr(lastStart, i - lastStart + 2);
- if (state == 1){
- newHeader += thisCookie;
- }
- if (state == 2){
- SSC_dump("Declining to send " + thisCookie +
- " for request by embedded domain " + channel.URI.host +
- + " " + channel.getRequestHeader("Host") +
- " on embedding page " + referrer);
- }
- lastStart = i+2;
- state = 0;
- }
- //End of the string
- if (i == cookie.length - 1){
- thisCookie = cookie.toString().substr(lastStart, i - lastStart + 1);
- if (state == 1){
- newHeader += thisCookie;
- }
- if (state == 2){
- SSC_dump("Declining to send " + thisCookie +
- " for request by embedded domain " + channel.URI.host +
- + " " + channel.getRequestHeader("Host") +
- " on embedding page " + referrer);
- }
- lastStart = i+1;
- }
- i++;
- }
- channel.setRequestHeader("Cookie", newHeader, false);
- }
-
- },
-
- onExamineResponse: function(channel) {
- var setCookie;
- try{
- setCookie = channel.getResponseHeader("Set-Cookie");
- } catch(e) {setCookie = null;}
-
- if(setCookie) {
- var parent = null;
- // XXX: need to use loadGroup here if null..
- if (channel.notificationCallbacks) {
- var wind = channel.notificationCallbacks.QueryInterface(
- Components.interfaces.nsIInterfaceRequestor).getInterface(
- Components.interfaces.nsIDOMWindow);
- parent = wind.window.top.location;
- }
-
- if (channel.documentURI && channel.documentURI == channel.URI) {
- parent = null; // first party interaction
- }
-
- var referrer;
- // Same-origin policy
- if (parent && parent.hostname != channel.URI.host) {
- //SSC_dump("Segmenting " + channel.URI.host +
- //" content loaded by " + parent.host);
- referrer = parent.hostname;
- } else {
- referrer = channel.URI.host;
- }
- //Dual-key each cookie set in the header
- var newHeader = "";
- var i = 0;
- var lastStart = 0;
- //Some messy code that prevents multiple embedding-domain keys
- //from being concatenated to cookie names.
- var passedname = false;
- var namebar = false;
- while (i < setCookie.length) {
- if (setCookie.charAt(i) == '=') passedname = true;
- else if (setCookie.charAt(i) == '|' && passedname == false)
- namebar = true;
- if (i == setCookie.length - 1 || setCookie.charAt(i) == '\n'){
- if(!namebar){
- newHeader += referrer + "|" +
- setCookie.toString().substr(lastStart, i - lastStart + 1);
- }
- lastStart = i+1;
- passedname = false;
- namebar = false;
- }
- i++;
- }
- //SSC_dump("MODIFIED Set-Cookie: " + newHeader);
- channel.setResponseHeader("Set-Cookie", newHeader, false);
- }
- },
-
- // Read the integer data contained in a cache key
- readCacheKey: function(channel) {
- try {
- return channel.cacheDomain;
- } catch(e) {
- channel.cacheKey.QueryInterface(Components.interfaces.nsISupportsPRUint32);
- return channel.cacheKey.data;
- }
- },
-
- // Construct a new cache key with some integer data
- newCacheKey: function(data) {
- var cacheKey =
- Components.classes["@mozilla.org/supports-PRUint32;1"]
- .createInstance(Components.interfaces.nsISupportsPRUint32);
- cacheKey.data = data;
- return cacheKey;
- },
-
- strMD5: function(str) {
- var converter =
- Components.classes["@mozilla.org/intl/scriptableunicodeconverter"].
- createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
-
- // nsIURI.host is UTF-8
- converter.charset = "UTF-8";
- // result.value will contain the array length
- var result = {};
- // data is an array of bytes
- var data = converter.convertToByteArray(str, result);
- var ch = Components.classes["@mozilla.org/security/hash;1"]
- .createInstance(Components.interfaces.nsICryptoHash);
- ch.init(ch.MD5);
- ch.update(data, data.length);
- return ch.finish(false);
- },
-
- // Get an integer hash of a string
- getHash: function(str) {
- var hash = this.strMD5(str);
- var intHash = 0;
- for(var i = 0; i < hash.length && i < 8; i++)
- intHash += hash.charCodeAt(i) << (i << 3);
- return intHash;
- },
-}
-
-/**
- * Master control object. Adds and removes the RequestListener
- */
-function SSC_Controller() {
- this.prefs = Components.classes["@mozilla.org/preferences-service;1"]
- .getService(Components.interfaces.nsIPrefService);
- this.addListener(new SSC_RequestListener(this));
-}
-
-SSC_Controller.prototype = {
-
- getEnabled: function() {
- return (this.prefs.getIntPref(kSSC_ENABLED_PREF));
- },
-
- getSafeCookieEnabled: function() {
- return (this.prefs.getBoolPref(kSSC_SC_ENABLED_PREF));
- },
-
- getBlockThirdPartyCache: function() {
- // Meh, no pref for now. Always allow.
- return false;
- },
-
- getTorButton: function() {
- return (this.prefs.getBoolPref(kSSC_TORBUTTON_PREF));
- },
-
- getCookieJS: function() {
- return (this.prefs.getBoolPref(kSSC_COOKIE_JS_PREF));
- },
-
- addListener: function(listener) {
- this.listener = listener;
- var observerService =
- Components.classes["@mozilla.org/observer-service;1"]
- .getService(Components.interfaces.nsIObserverService);
- observerService.addObserver(listener, "http-on-modify-request", false);
- // XXX: We need an observer to add this listener when the pref gets set
- if (this.getSafeCookieEnabled()) {
- observerService.addObserver(listener, "http-on-examine-response", false);
- }
- },
-
- removeListener: function() {
- var observerService =
- Components.classes["@mozilla.org/observer-service;1"]
- .getService(Components.interfaces.nsIObserverService);
- observerService.removeObserver(this.listener, "http-on-modify-request");
- if (this.getSafeCookieEnabled()) {
- observerService.removeObserver(this.listener, "http-on-examine-response");
- }
- },
-}
-
-////////////////////////////////////////////////////////////////////////////
-// Global stuff
-// "What script would be complete without a couple of globals?" --Fritz
-
-var SSC_controller;
-
-function SSC_startup() {
- if(!SSC_controller) SSC_controller = new SSC_Controller();
- SSC_dump("Loaded controller");
-}
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index 2fa7189..01591cc 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -2865,10 +2865,6 @@ function torbutton_do_main_window_startup()
//torbutton_wrap_search_service();
torbutton_unique_pref_observer.register();
-
- // Bug 1506: This is probably the most important observer in this function
- // XXX: We should fold this into our code/move it to its own component
- SSC_startup();
}
// Bug 1506 P4: Most of this function is now useless, save
@@ -3134,9 +3130,6 @@ function torbutton_close_window(event) {
progress.removeProgressListener(torbutton_weblistener);
torbutton_unique_pref_observer.unregister();
- // XXX: We should fold this into our code..
- SSC_controller.removeListener();
-
if(m_tb_is_main_window) { // main window not reset above
// This happens on Mac OS because they allow firefox
// to still persist without a navigator window
diff --git a/src/chrome/content/torbutton.xul b/src/chrome/content/torbutton.xul
index 00dc6f0..5da3439 100644
--- a/src/chrome/content/torbutton.xul
+++ b/src/chrome/content/torbutton.xul
@@ -7,9 +7,6 @@
<overlay id="torbutton-overlay"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
- <!-- SAFECACHE -->
- <script src="chrome://torbutton/content/stanford-safecache.js" />
-
<script type="application/x-javascript" src="chrome://torbutton/content/torbutton_util.js" />
<script type="application/x-javascript" src="chrome://torbutton/content/tor-circuit-display.js" />
<script type="application/x-javascript" src="chrome://torbutton/content/torbutton.js" />
diff --git a/src/defaults/preferences/preferences.js b/src/defaults/preferences/preferences.js
index c6fb8e4..6dde983 100644
--- a/src/defaults/preferences/preferences.js
+++ b/src/defaults/preferences/preferences.js
@@ -219,9 +219,6 @@ pref("extensions.torbutton.buildID_override","0");
pref("extensions.torbutton.useragent_vendor", "");
pref("extensions.torbutton.useragent_vendorSub","");
-pref("extensions.torbutton.safecache",1); // 0=always, 1=during tor, 2=never
-pref("extensions.torbutton.dual_key_cookies",false);
-pref("extensions.torbutton.cookie_js_allow", true);
pref("extensions.torbutton.prompt_torbrowser", true);
pref("extensions.torbutton.confirm_plugins", true);
1
0

[torbutton/master] Bug #14866: Show correct circuit when more than one exists for a given domain
by mikeperry@torproject.org 13 Feb '15
by mikeperry@torproject.org 13 Feb '15
13 Feb '15
commit b862e0c70af24fb18da276bcda1b22ea39896093
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Wed Feb 11 22:10:31 2015 -0800
Bug #14866: Show correct circuit when more than one exists for a given domain
---
src/chrome/content/tor-circuit-display.js | 56 ++++++++++++++++++-----------
1 file changed, 36 insertions(+), 20 deletions(-)
diff --git a/src/chrome/content/tor-circuit-display.js b/src/chrome/content/tor-circuit-display.js
index d0977f1..35a7dfc 100644
--- a/src/chrome/content/tor-circuit-display.js
+++ b/src/chrome/content/tor-circuit-display.js
@@ -36,12 +36,13 @@ let { controller } = Cu.import("resource://torbutton/modules/tor-control-port.js
let logger = Cc["@torproject.org/torbutton-logger;1"]
.getService(Components.interfaces.nsISupports).wrappedJSObject;
-// ## Circuit/stream domain and node monitoring
+// ## Circuit/stream credentials and node monitoring
-// A mutable map that stores the current nodes for each domain.
-let domainToNodeDataMap = {},
+// A mutable map that stores the current nodes for each
+// SOCKS username/password pair.
+let credentialsToNodeDataMap = {},
// A mutable map that reports `true` for IDs of "mature" circuits
- // (those that have conveyed a stream)..
+ // (those that have conveyed a stream).
knownCircuitIDs = {},
// A map from bridge fingerprint to its IP address.
bridgeIDtoIPmap = new Map();
@@ -130,7 +131,7 @@ let getCircuitStatusByID = function* (aController, circuitID) {
// Watches for STREAM SENTCONNECT events. When a SENTCONNECT event occurs, then
// we assume isolation settings (SOCKS username+password) are now fixed for the
// corresponding circuit. Whenever the first stream on a new circuit is seen,
-// looks up u+p and records the node data in the domainToNodeDataMap.
+// looks up u+p and records the node data in the credentialsToNodeDataMap.
let collectIsolationData = function (aController) {
aController.watchEvent(
"STREAM",
@@ -140,10 +141,11 @@ let collectIsolationData = function (aController) {
logger.eclog(3, "streamEvent.CircuitID: " + streamEvent.CircuitID);
knownCircuitIDs[streamEvent.CircuitID] = true;
let circuitStatus = yield getCircuitStatusByID(aController, streamEvent.CircuitID),
- domain = trimQuotes(circuitStatus.SOCKS_USERNAME);
- if (domain) {
+ credentials = trimQuotes(circuitStatus.SOCKS_USERNAME) + ":" +
+ trimQuotes(circuitStatus.SOCKS_PASSWORD);
+ if (credentials) {
let nodeData = yield nodeDataForCircuit(aController, circuitStatus);
- domainToNodeDataMap[domain] = nodeData;
+ credentialsToNodeDataMap[credentials] = nodeData;
}
}
}).then(null, Cu.reportError));
@@ -204,24 +206,38 @@ let nodeLines = function (nodeData) {
return result;
};
+// __getSOCKSCredentials(browser)__.
+// Reads the SOCKS credentials for the corresponding browser object.
+let getSOCKSCredentialsForBrowser = function (browser) {
+ if (browser === null) return null;
+ let docShell = browser.docShell;
+ if (docShell === null) return null;
+ let channel = docShell.currentDocumentChannel;
+ if (channel === null) return null;
+ try {
+ channel.QueryInterface(Ci.nsIProxiedChannel);
+ } catch (e) {
+ return null;
+ }
+ let proxyInfo = channel.proxyInfo;
+ if (proxyInfo === null) return null;
+ return proxyInfo.username + ":" + proxyInfo.password;
+};
+
// __updateCircuitDisplay()__.
// Updates the Tor circuit display SVG, showing the current domain
// and the relay nodes for that domain.
let updateCircuitDisplay = function () {
let selectedBrowser = gBrowser.selectedBrowser;
if (selectedBrowser) {
- let URI = selectedBrowser.currentURI,
- domain = null,
- nodeData = null;
- // Try to get a domain for this URI. Otherwise it remains null.
- try {
- domain = URI.host;
- } catch (e) { }
- if (domain) {
- // Check if we have anything to show for this domain.
- nodeData = domainToNodeDataMap[domain];
+ let credentials = getSOCKSCredentialsForBrowser(selectedBrowser),
+ nodeData = null;
+ if (credentials) {
+ // Check if we have anything to show for these credentials.
+ nodeData = credentialsToNodeDataMap[credentials];
if (nodeData) {
// Update the displayed domain.
+ let domain = credentials.split(":")[0];
document.querySelector("svg#tor-circuit text#domain").innerHTML = "(" + domain + "):";
// Update the displayed information for the relay nodes.
let diagramNodes = document.querySelectorAll("svg#tor-circuit text.node-text"),
@@ -232,8 +248,8 @@ let updateCircuitDisplay = function () {
}
}
}
- // Only show the Tor circuit if we have a domain and node data.
- showCircuitDisplay(domain && nodeData);
+ // Only show the Tor circuit if we have credentials and node data.
+ showCircuitDisplay(credentials && nodeData);
}
};
1
0

13 Feb '15
commit 0020d0dda4af8ef64919d27de5f4b2d0f259f395
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Tue Feb 10 16:25:02 2015 -0800
Bug 9442: Add New Circuit button
This adds a button to utilize the domain isolation to get a new circuit for
the current tab only.
---
src/chrome/content/popup.xul | 5 +++++
src/chrome/content/torbutton.js | 16 ++++++++++++++++
src/chrome/locale/en/torbutton.dtd | 2 ++
src/components/domain-isolator.js | 20 +++++++++++++++++---
4 files changed, 40 insertions(+), 3 deletions(-)
diff --git a/src/chrome/content/popup.xul b/src/chrome/content/popup.xul
index 4117632..e0c1f74 100644
--- a/src/chrome/content/popup.xul
+++ b/src/chrome/content/popup.xul
@@ -18,6 +18,11 @@
accesskey="&torbutton.context_menu.new_identity_key;"
insertafter="context-stop"
oncommand="torbutton_new_identity()"/>
+ <menuitem id="torbutton-new-circuit"
+ label="&torbutton.context_menu.new_circuit;"
+ accesskey="&torbutton.context_menu.new_circuit_key;"
+ insertafter="context-stop"
+ oncommand="torbutton_new_circuit()"/>
<menuseparator/>
<menuitem id="torbutton-cookie-protector"
label="&torbutton.context_menu.cookieProtections;"
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index cd534a7..8ae1d5d 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -1552,6 +1552,22 @@ function torbutton_send_ctrl_cmd(command) {
}
}
+// Bug 1506 P4: Needed for New IP Address
+function torbutton_new_circuit() {
+ let thirdPartyUtil = Cc["@mozilla.org/thirdpartyutil;1"]
+ .getService(Ci.mozIThirdPartyUtil);
+
+ let firstPartyDomain = thirdPartyUtil
+ .getFirstPartyHostForIsolation(gBrowser.currentURI);
+
+ let domainIsolator = Cc["@torproject.org/domain-isolator;1"]
+ .getService(Ci.nsISupports).wrappedJSObject;
+
+ domainIsolator.newCircuitForDomain(firstPartyDomain);
+
+ gBrowser.reloadWithFlags(Ci.nsIWebNavigation.LOAD_FLAGS_BYPASS_CACHE);
+}
+
// Bug 1506 P4: Needed for New Identity.
function torbutton_new_identity() {
try {
diff --git a/src/chrome/locale/en/torbutton.dtd b/src/chrome/locale/en/torbutton.dtd
index 1b90d63..15ae1e6 100644
--- a/src/chrome/locale/en/torbutton.dtd
+++ b/src/chrome/locale/en/torbutton.dtd
@@ -24,6 +24,8 @@
<!ENTITY torbutton.pref_connection_more_info.text "Torbutton is currently enabled. If you would like to change your non-Tor proxy settings, please disable Torbutton and return here. If you would like to change your Tor settings, please use the Torbutton preference window.">
<!ENTITY torbutton.context_menu.new_identity "New Identity">
<!ENTITY torbutton.context_menu.new_identity_key "I">
+<!ENTITY torbutton.context_menu.new_circuit "New Tor Circuit for this Site">
+<!ENTITY torbutton.context_menu.new_circuit_key "C">
<!ENTITY torbutton.context_menu.toggle "Toggle Tor status">
<!ENTITY torbutton.context_menu.toggle.key "T">
<!ENTITY torbutton.context_menu.preferences "Privacy and Security Settings…">
diff --git a/src/components/domain-isolator.js b/src/components/domain-isolator.js
index e8e6bfa..6e6201e 100644
--- a/src/components/domain-isolator.js
+++ b/src/components/domain-isolator.js
@@ -108,8 +108,10 @@ const kMODULE_CID = Components.ID("e33fd6d4-270f-475f-a96f-ff3140279f68");
// Import XPCOMUtils object.
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-// DomainIsolator object. Constructor does nothing.
-function DomainIsolator() { }
+// DomainIsolator object.
+function DomainIsolator() {
+ this.wrappedJSObject = this;
+}
// Firefox component requirements
DomainIsolator.prototype = {
QueryInterface: XPCOMUtils.generateQI([Ci.nsISupports, Ci.nsIObserver]),
@@ -121,7 +123,19 @@ DomainIsolator.prototype = {
logger.eclog(3, "domain isolator: set up isolating circuits by domain");
tor.isolateCircuitsByDomain();
}
- }
+ },
+ newCircuitForDomain: function (domain) {
+ // Check if we already have a nonce. If not, create
+ // one for this domain.
+ if (!tor.noncesForDomains.hasOwnProperty(domain)) {
+ tor.noncesForDomains[domain] = 0;
+ } else {
+ tor.noncesForDomains[domain] += 1;
+ }
+ logger.eclog(3, "New domain isolation count " +tor.noncesForDomains[domain] + " for " + domain);
+ },
+
+ wrappedJSObject: null
};
// Assign factory to global object.
1
0

[torbutton/master] Bug 9906: Warn users before closing all windows and performing new identity.
by mikeperry@torproject.org 13 Feb '15
by mikeperry@torproject.org 13 Feb '15
13 Feb '15
commit 2310af87aafc831db955c06616e282d3def99e21
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Tue Feb 10 15:07:38 2015 -0800
Bug 9906: Warn users before closing all windows and performing new identity.
---
src/chrome/content/torbutton.js | 28 +++++++++++++++++++++++++++-
src/chrome/locale/en/torbutton.properties | 1 +
src/defaults/preferences/preferences.js | 1 +
3 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index 4fa3d63..cd534a7 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -1558,7 +1558,33 @@ function torbutton_new_identity() {
// Make sure that we can only click once on New Identiy to avoid race
// conditions leading to failures (see bug 11783 for an example).
document.getElementById("torbutton-new-identity").disabled = true;
- torbutton_do_new_identity();
+
+ let shouldConfirm = m_tb_prefs.getBoolPref("extensions.torbutton.confirm_newnym");
+
+ if (shouldConfirm) {
+ let prompts = Cc["@mozilla.org/embedcomp/prompt-service;1"]
+ .getService(Ci.nsIPromptService);
+
+ // Display two buttons, both with string titles.
+ let flags = prompts.STD_YES_NO_BUTTONS;
+
+ let message = torbutton_get_property_string("torbutton.popup.confirm_newnym");
+ let askAgainText = torbutton_get_property_string("torbutton.popup.never_ask_again");
+ let askAgain = {value: false};
+
+ let confirmed = (prompts.confirmEx(null, "", message, flags, null, null, null,
+ askAgainText, askAgain) == 0);
+
+ m_tb_prefs.setBoolPref("extensions.torbutton.confirm_newnym", !askAgain.value);
+
+ if (confirmed) {
+ torbutton_do_new_identity();
+ } else {
+ document.getElementById("torbutton-new-identity").disabled = false;
+ }
+ } else {
+ torbutton_do_new_identity();
+ }
} catch(e) {
// If something went wrong make sure we have the New Identity button
// enabled (again).
diff --git a/src/chrome/locale/en/torbutton.properties b/src/chrome/locale/en/torbutton.properties
index c3e85a3..505f31b 100644
--- a/src/chrome/locale/en/torbutton.properties
+++ b/src/chrome/locale/en/torbutton.properties
@@ -51,6 +51,7 @@ torbutton.popup.short_torbrowser = Important Torbutton Information!\n\nTorbutton
torbutton.popup.confirm_plugins = Plugins such as Flash can harm your privacy and anonymity.\n\nThey can also bypass Tor to reveal your current location and IP address.\n\nAre you sure you want to enable plugins?\n\n
torbutton.popup.never_ask_again = Never ask me again
+torbutton.popup.confirm_newnym = Tor Browser will close all windows and tabs. All website sessions will be lost.\n\nRestart Tor Browser now to reset your identity?\n\n
# Canvas permission prompt. Strings are kept here for ease of translation.
canvas.siteprompt=This website (%S) attempted to extract HTML5 canvas image data, which may be used to uniquely identify your computer.\n\nShould Tor Browser allow this website to extract HTML5 canvas image data?
diff --git a/src/defaults/preferences/preferences.js b/src/defaults/preferences/preferences.js
index 6dde983..3584581 100644
--- a/src/defaults/preferences/preferences.js
+++ b/src/defaults/preferences/preferences.js
@@ -221,6 +221,7 @@ pref("extensions.torbutton.useragent_vendorSub","");
pref("extensions.torbutton.prompt_torbrowser", true);
pref("extensions.torbutton.confirm_plugins", true);
+pref("extensions.torbutton.confirm_newnym", true);
// Browser home page, and spell checker dictionary:
pref("browser.startup.homepage", "chrome://torbutton/locale/browser.properties");
1
0

[torbutton/master] Bug 8400: Prompt for restart if disk records are enabled/disabled.
by mikeperry@torproject.org 13 Feb '15
by mikeperry@torproject.org 13 Feb '15
13 Feb '15
commit 1e5da0646b288f3621588af08aa81efca09063fa
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Mon Feb 9 18:39:53 2015 -0800
Bug 8400: Prompt for restart if disk records are enabled/disabled.
The private browsing pref doesn't actually take effect until restart..
---
src/chrome/content/preferences.js | 43 ++++++++++++++++++++++++++++++++++++
src/chrome/content/preferences.xul | 3 ++-
src/chrome/content/torbutton.js | 1 +
3 files changed, 46 insertions(+), 1 deletion(-)
diff --git a/src/chrome/content/preferences.js b/src/chrome/content/preferences.js
index 1151176..eaaa059 100644
--- a/src/chrome/content/preferences.js
+++ b/src/chrome/content/preferences.js
@@ -6,6 +6,7 @@
// torbutton_prefs_save() -- on dialog save
var tor_enabled = false;
+const Cc = Components.classes, Ci = Components.interfaces;
function torbutton_prefs_set_field_attributes(doc)
{
@@ -473,3 +474,45 @@ function torbutton_toggle_slider(doc, pos) {
sec_custom.checked = false;
}
}
+
+function torbutton_prefs_check_disk() {
+ let o_torprefs = torbutton_get_prefbranch('extensions.torbutton.');
+ let old_mode = o_torprefs.getBoolPref('block_disk');
+ let mode = document.getElementById('torbutton_blockDisk').checked;
+
+ if (mode === old_mode) {
+ // Either revert, or uncheck.
+ return;
+ }
+
+ let sb = Cc["@mozilla.org/intl/stringbundle;1"]
+ .getService(Ci.nsIStringBundleService);
+ let bundle = sb.createBundle("chrome://browser/locale/preferences/preferences.properties");
+ let brandName = sb.createBundle("chrome://branding/locale/brand.properties").GetStringFromName("brandShortName");
+
+ let msg = bundle.formatStringFromName(mode ?
+ "featureEnableRequiresRestart" : "featureDisableRequiresRestart",
+ [brandName], 1);
+ let title = bundle.formatStringFromName("shouldRestartTitle", [brandName], 1);
+ let prompts = Cc["@mozilla.org/embedcomp/prompt-service;1"].getService(Ci.nsIPromptService);
+ let shouldProceed = prompts.confirm(window, title, msg)
+ if (shouldProceed) {
+ let cancelQuit = Cc["@mozilla.org/supports-PRBool;1"]
+ .createInstance(Ci.nsISupportsPRBool);
+ let obsSvc = Cc["@mozilla.org/observer-service;1"]
+ .getService(Ci.nsIObserverService);
+ obsSvc.notifyObservers(cancelQuit, "quit-application-requested",
+ "restart");
+ shouldProceed = !cancelQuit.data;
+
+ if (shouldProceed) {
+ document.documentElement.acceptDialog();
+ let appStartup = Cc["@mozilla.org/toolkit/app-startup;1"]
+ .getService(Ci.nsIAppStartup);
+ appStartup.quit(Ci.nsIAppStartup.eAttemptQuit | Ci.nsIAppStartup.eRestart);
+ return;
+ }
+ }
+
+ document.getElementById('torbutton_blockDisk').checked = old_mode;
+}
diff --git a/src/chrome/content/preferences.xul b/src/chrome/content/preferences.xul
index f4fcb4d..0a90f0f 100644
--- a/src/chrome/content/preferences.xul
+++ b/src/chrome/content/preferences.xul
@@ -143,7 +143,8 @@
<groupbox>
<caption label="&torbutton.prefs.priv_caption;"/>
<checkbox id="torbutton_blockDisk"
- label="&torbutton.prefs.block_disk;"/>
+ label="&torbutton.prefs.block_disk;"
+ oncommand="torbutton_prefs_check_disk();"/>
<checkbox id="torbutton_blockPlugins"
label="&torbutton.prefs.block_plugins;"/>
<checkbox id="torbutton_restrictThirdParty"
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index bdb3b2d..4fa3d63 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -2042,6 +2042,7 @@ function torbutton_update_disk_prefs() {
m_tb_prefs.setBoolPref("browser.privatebrowsing.autostart", mode);
m_tb_prefs.setBoolPref("browser.cache.disk.enable", !mode);
+ m_tb_prefs.setBoolPref("places.history.enabled", !mode);
m_tb_prefs.setBoolPref("security.nocertdb", mode);
1
0

[torbutton/master] Bug 14630: Hide Torbutton's proxy settings tab.
by mikeperry@torproject.org 13 Feb '15
by mikeperry@torproject.org 13 Feb '15
13 Feb '15
commit bf942275f1b46b3a2ab52b68963199dd976b7c98
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Mon Feb 9 15:59:47 2015 -0800
Bug 14630: Hide Torbutton's proxy settings tab.
We only hide this for now in case we want to bring it back as a secondary
tab after everyone cries about it. It also simplifies the code changes to
simply hide it.
Also clean up the associated Torbutton menu and strings for clarity.
---
src/chrome/content/popup.xul | 1 +
src/chrome/content/preferences.xul | 10 +++++-----
src/chrome/locale/en/torbutton.dtd | 4 ++--
3 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/src/chrome/content/popup.xul b/src/chrome/content/popup.xul
index 9a77c54..4117632 100644
--- a/src/chrome/content/popup.xul
+++ b/src/chrome/content/popup.xul
@@ -18,6 +18,7 @@
accesskey="&torbutton.context_menu.new_identity_key;"
insertafter="context-stop"
oncommand="torbutton_new_identity()"/>
+ <menuseparator/>
<menuitem id="torbutton-cookie-protector"
label="&torbutton.context_menu.cookieProtections;"
accesskey="&torbutton.context_menu.cookieProtections.key;"
diff --git a/src/chrome/content/preferences.xul b/src/chrome/content/preferences.xul
index 57b013a..f4fcb4d 100644
--- a/src/chrome/content/preferences.xul
+++ b/src/chrome/content/preferences.xul
@@ -6,7 +6,7 @@
<dialog id="torbutton-prefs"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:html="http://www.w3.org/1999/xhtml"
- title="&torbutton.prefs.title;"
+ title="&torbutton.prefs.privacy_security_settings;"
buttons="accept,cancel,extra1"
buttonlabelextra1="&torbutton.prefs.restore_defaults;"
ondialogextra1="torbutton_prefs_reset_defaults();"
@@ -18,11 +18,11 @@
<script type="application/x-javascript" src="preferences.js"/>
<tabbox>
<tabs>
- <tab label="&torbutton.prefs.tor_settings;"/>
- <tab label="&torbutton.prefs.privacy_security_settings;"/>
+ <tab hidden="true" label="&torbutton.prefs.privacy_security_settings;"/>
+ <tab hidden="true" label="&torbutton.prefs.tor_settings;"/>
</tabs>
<tabpanels>
- <tabpanel>
+ <tabpanel hidden="true">
<vbox>
<radiogroup id="torbutton_settingsMethod">
<radio value="recommended" id="torbutton_useRecommendedSettings"
@@ -138,7 +138,7 @@
</hbox>
</vbox>
</tabpanel>
- <tabpanel>
+ <tabpanel hidden="false">
<vbox>
<groupbox>
<caption label="&torbutton.prefs.priv_caption;"/>
diff --git a/src/chrome/locale/en/torbutton.dtd b/src/chrome/locale/en/torbutton.dtd
index ea37d19..1b90d63 100644
--- a/src/chrome/locale/en/torbutton.dtd
+++ b/src/chrome/locale/en/torbutton.dtd
@@ -26,11 +26,11 @@
<!ENTITY torbutton.context_menu.new_identity_key "I">
<!ENTITY torbutton.context_menu.toggle "Toggle Tor status">
<!ENTITY torbutton.context_menu.toggle.key "T">
-<!ENTITY torbutton.context_menu.preferences "Preferences...">
+<!ENTITY torbutton.context_menu.preferences "Privacy and Security Settings…">
<!ENTITY torbutton.context_menu.preferences.key "P">
<!ENTITY torbutton.context_menu.about "About Torbutton...">
<!ENTITY torbutton.context_menu.about.key "A">
-<!ENTITY torbutton.context_menu.networksettings "Open Network Settings…">
+<!ENTITY torbutton.context_menu.networksettings "Tor Network Settings…">
<!ENTITY torbutton.context_menu.networksettings.key "S">
<!ENTITY torbutton.context_menu.downloadUpdate "Check for Tor Browser Update…">
<!ENTITY torbutton.context_menu.downloadUpdate.key "U">
1
0