[tor-commits] [tor-messenger-build/master] Add patches for trac 20204

2016-09-30 Thread arlo
commit eb37fc7a210b86efd6a407b8527a41cb1330ebfb
Author: Arlo Breault 
Date:   Fri Sep 30 21:44:52 2016 -0700

Add patches for trac 20204
---
 ChangeLog  |   3 +-
 ...d-mozilla-ViewRegion-which-assembles-a.mozpatch | 192 
 ...e-ViewRegion-for-vibrant-areas-in-Vibr.mozpatch | 180 +++
 ...e-ViewRegion-for-window-dragging.-r-sp.mozpatch | 199 +
 projects/instantbird/config|   3 +
 5 files changed, 576 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index 164a902..50ca933 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,7 +5,8 @@ Tor Messenger 0.2.0b3 --
* Bug 20208: Put conversations on hold by default
* Properly handle incoming xmpp server messages (bugzilla 1246431)
  * Mac
-   * Bug 20206: Avoid prompting to download font "Osaka"
+   * Bug 20206: Avoid prompting to download font "Osaka" on macOS Sierra
+   * Bug 20204: Windows don't drag on macOS Sierra
 
 Tor Messenger 0.2.0b2 -- September 06, 2016
  * Mac
diff --git 
a/projects/instantbird/0001-Bug-1070710-Add-mozilla-ViewRegion-which-assembles-a.mozpatch
 
b/projects/instantbird/0001-Bug-1070710-Add-mozilla-ViewRegion-which-assembles-a.mozpatch
new file mode 100644
index 000..c5280e8
--- /dev/null
+++ 
b/projects/instantbird/0001-Bug-1070710-Add-mozilla-ViewRegion-which-assembles-a.mozpatch
@@ -0,0 +1,192 @@
+From 20344dc64a7177eb6d894df3ee6a77419c67284b Mon Sep 17 00:00:00 2001
+From: Markus Stange 
+Date: Sat, 16 Jul 2016 17:07:45 -0400
+Subject: [PATCH 1/3] Bug 1070710 - Add mozilla::ViewRegion which assembles a
+ LayoutDeviceIntRegion as NSViews. r=spohl
+
+MozReview-Commit-ID: RrVzLcv27T
+
+--HG--
+extra : amend_source : d14dc262bf300a81feaf03954d5783ea1c7451cb
+extra : histedit_source : aa39b53c122a719a5181b5a41d5351bbdf04cbd8
+---
+ widget/cocoa/ViewRegion.h | 53 
+ widget/cocoa/ViewRegion.mm| 70 +++
+ widget/cocoa/moz.build|  1 +
+ widget/cocoa/nsScreenCocoa.mm |  4 +--
+ 4 files changed, 126 insertions(+), 2 deletions(-)
+ create mode 100644 widget/cocoa/ViewRegion.h
+ create mode 100644 widget/cocoa/ViewRegion.mm
+
+diff --git a/widget/cocoa/ViewRegion.h b/widget/cocoa/ViewRegion.h
+new file mode 100644
+index 000..a8efcca
+--- /dev/null
 b/widget/cocoa/ViewRegion.h
+@@ -0,0 +1,53 @@
++/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- 
*/
++/* vim: set ts=8 sts=2 et sw=2 tw=80: */
++/* This Source Code Form is subject to the terms of the Mozilla Public
++ * License, v. 2.0. If a copy of the MPL was not distributed with this
++ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
++
++#ifndef ViewRegion_h
++#define ViewRegion_h
++
++#include "Units.h"
++#include "nsTArray.h"
++
++@class NSView;
++
++namespace mozilla {
++
++/**
++ * Manages a set of NSViews to cover a LayoutDeviceIntRegion.
++ */
++class ViewRegion {
++public:
++  ~ViewRegion();
++
++  mozilla::LayoutDeviceIntRegion Region() { return mRegion; }
++
++  /**
++   * Update the region.
++   * @param aRegion  The new region.
++   * @param aCoordinateConverter  The nsChildView to use for converting
++   *   LayoutDeviceIntRect device pixel coordinates into Cocoa NSRect 
coordinates.
++   * @param aContainerView  The view that's going to be the superview of the
++   *   NSViews which will be created for this region.
++   * @param aViewCreationCallback  A block that instantiates new NSViews.
++   * @return  Whether or not the region changed.
++   */
++  bool UpdateRegion(const mozilla::LayoutDeviceIntRegion& aRegion,
++const nsChildView& aCoordinateConverter,
++NSView* aContainerView,
++NSView* (^aViewCreationCallback)());
++
++  /**
++   * Return an NSView from the region, if there is any.
++   */
++  NSView* GetAnyView() { return mViews.Length() > 0 ? mViews[0] : nil; }
++
++private:
++  mozilla::LayoutDeviceIntRegion mRegion;
++  nsTArray mViews;
++};
++
++} // namespace mozilla
++
++#endif // ViewRegion_h
+diff --git a/widget/cocoa/ViewRegion.mm b/widget/cocoa/ViewRegion.mm
+new file mode 100644
+index 000..3459849
+--- /dev/null
 b/widget/cocoa/ViewRegion.mm
+@@ -0,0 +1,70 @@
++/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- 
*/
++/* vim: set ts=8 sts=2 et sw=2 tw=80: */
++/* This Source Code Form is subject to the terms of the Mozilla Public
++ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
++ * You can obtain one at http://mozilla.org/MPL/2.0/. */
++
++#include "ViewRegion.h"
++#import 
++
++using namespace mozilla;
++
++ViewRegion::~ViewRegion()
++{
++  for (size_t i = 0; i < mViews.Length(); i++) {
++[mViews[i] removeFromSuperview];
++  }
++}
++
++bool
++ViewRegion::UpdateRegion(const LayoutDeviceIntRegion& aRegion,
++

[tor-commits] [translation/tor-and-https_completed] Update translations for tor-and-https_completed

2016-09-30 Thread translation
commit 7b2796974ea0f0bded9a1c1e6806bc8439fb15cb
Author: Translation commit bot 
Date:   Sat Oct 1 05:16:49 2016 +

Update translations for tor-and-https_completed
---
 vi.po | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/vi.po b/vi.po
index 9d08bcb..f997dc4 100644
--- a/vi.po
+++ b/vi.po
@@ -1,15 +1,15 @@
 # 
 # Translators:
 # Anh Phan , 2014
-# Khanh Nguyen , 2015
-# lvnam96, 2016
+# Khanh Nguyen , 2015-2016
+# Văn Nam Lê, 2016
 # Nguyen Thanh Tai , 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "POT-Creation-Date: 2014-07-17 14:23+\n"
-"PO-Revision-Date: 2016-04-02 14:47+\n"
-"Last-Translator: lvnam96\n"
+"PO-Revision-Date: 2016-10-01 05:09+\n"
+"Last-Translator: Khanh Nguyen \n"
 "Language-Team: Vietnamese 
(http://www.transifex.com/otf/torproject/language/vi/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -23,7 +23,7 @@ msgstr ""
 #. languages (e.g. Arabic or Hebrew).
 #: C/tor-and-https.svg:3
 msgid "ltr"
-msgstr "trái sang phải"
+msgstr "ltr"
 
 #. (itstool) path: svg/title
 #: C/tor-and-https.svg:14

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-and-https] Update translations for tor-and-https

2016-09-30 Thread translation
commit bfcb09b7c26d97f39fd7fb5bd9c9c78b965522a3
Author: Translation commit bot 
Date:   Sat Oct 1 05:16:45 2016 +

Update translations for tor-and-https
---
 vi.po | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/vi.po b/vi.po
index 9d08bcb..f997dc4 100644
--- a/vi.po
+++ b/vi.po
@@ -1,15 +1,15 @@
 # 
 # Translators:
 # Anh Phan , 2014
-# Khanh Nguyen , 2015
-# lvnam96, 2016
+# Khanh Nguyen , 2015-2016
+# Văn Nam Lê, 2016
 # Nguyen Thanh Tai , 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "POT-Creation-Date: 2014-07-17 14:23+\n"
-"PO-Revision-Date: 2016-04-02 14:47+\n"
-"Last-Translator: lvnam96\n"
+"PO-Revision-Date: 2016-10-01 05:09+\n"
+"Last-Translator: Khanh Nguyen \n"
 "Language-Team: Vietnamese 
(http://www.transifex.com/otf/torproject/language/vi/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -23,7 +23,7 @@ msgstr ""
 #. languages (e.g. Arabic or Hebrew).
 #: C/tor-and-https.svg:3
 msgid "ltr"
-msgstr "trái sang phải"
+msgstr "ltr"
 
 #. (itstool) path: svg/title
 #: C/tor-and-https.svg:14

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-conversationsproperties_completed] Update translations for tor-messenger-conversationsproperties_completed

2016-09-30 Thread translation
commit e6818728e82ffa46641460344bf0f8332757ca38
Author: Translation commit bot 
Date:   Sat Oct 1 04:47:34 2016 +

Update translations for tor-messenger-conversationsproperties_completed
---
 vi/conversations.properties | 80 +
 1 file changed, 80 insertions(+)

diff --git a/vi/conversations.properties b/vi/conversations.properties
new file mode 100644
index 000..106f244
--- /dev/null
+++ b/vi/conversations.properties
@@ -0,0 +1,80 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (targetChanged):
+#  %1$S is the new conversation title (display name of the new target),
+#  %2$S is the protocol name used for the new target.
+targetChanged=Đoạn hội thoại sẽ tiếp tục với %1$S, sử dụng 
%2$S.
+
+# LOCALIZATION NOTE (statusChanged):
+#  %1$S is the display name of the contact.
+#  %2$S is the new status type (a value from status.properties).
+statusChanged=%1$S bây giờ là %2$S.
+# LOCALIZATION NOTE (statusChangedWithStatusText):
+#  %1$S is the display name of the contact.
+#  %2$S is the new status type (a value from status.properties).
+#  %3$S is the status text (eg. "I'm currently away from the computer").
+statusChangedWithStatusText=%1$S bây giờ là %2$S: %3$S.
+# LOCALIZATION NOTE (statusChangedFromUnknown[WithStatusText]):
+#  special case of the previous 2 strings for when the status was
+#  previously unknown. These 2 strings should not mislead the user
+#  into thinking the person's status has just changed.
+statusChangedFromUnknown=%1$S là %2$S.
+statusChangedFromUnknownWithStatusText=%1$S là %2$S: %3$S.
+# LOCALIZATION NOTE (statusKnown[WithStatusText]):
+# special case of the previous 2 strings for when an account has just
+# been reconnected, so the status is now known. These 2 strings should not
+# mislead the user into thinking the person's status has just changed.
+statusKnown=Tài khoản của bạn đã được kết nối lại (%1$S là 
%2$S).
+statusKnownWithStatusText=Tài khoản của bạn đã được kết nối 
lại (%1$S là %2$S: %3$S).
+# LOCALIZATION NOTE (statusUnknown):
+#  %S is the display name of the contact.
+statusUnknown=Tài khoản của bạn bị ngắt kết nối (tình trạng 
của %S không còn được biết đến).
+
+accountDisconnected=Tài khoản của bạn bị ngắt kết nối.
+accountReconnected=Tài khoản của bạn đã bị ngắt kết nối.
+
+# LOCALIZATION NOTE (autoReply):
+#  %S is replaced by the text of a message that was sent as an automatic reply.
+autoReply=Tự động trả lời - %S
+
+# LOCALIZATION NOTE (noTopic):
+# Displayed instead of the topic when no topic is set.
+noTopic=Không có thông điệp chủ đề của phòng này.
+
+# LOCALIZATION NOTE (topicSet):
+#  %1$S is the conversation name, %2$S is the topic.
+topicSet=Chủ đề cho %1$S là: %2$S.
+# LOCALIZATION NOTE (topicNotSet):
+#  %S is the conversation name.
+topicNotSet=Không có chủ đề cho %S.
+# LOCALIZATION NOTE (topicChanged):
+#  %1$S is the user who changed the topic, %2$S is the new topic.
+topicChanged=%1$S đã đổi chủ đề thành: %2$S.
+# LOCALIZATION NOTE (topicCleared):
+#  %1$S is the user who cleared the topic.
+topicCleared=%1$S đã xóa chủ đề %2$S.
+
+# LOCALIZATION NOTE (nickSet):
+#   This is displayed as a system message when a participant changes his/her
+#   nickname in a conversation.
+#   %1$S is the old nick.
+#   %2$S is the new nick.
+nickSet=%1$S giờ được biết đến như là %2$S.
+# LOCALIZATION NOTE (nickSet.you):
+#   This is displayed as a system message when your nickname is changed.
+#   %S is your new nick.
+nickSet.you=Giờ bạn được biết đến như là %S.
+
+# LOCALIZATION NOTE (messenger.conversations.selections.ellipsis):
+#  ellipsis is used when copying a part of a message to show that the message 
was cut
+messenger.conversations.selections.ellipsis=[...]
+
+# LOCALIZATION NOTE 
(messenger.conversations.selections.{system,content,action}MessagesTemplate):
+#  These 3 templates are used to format selected messages before copying them.
+#  Do not translate the texts between % characters, but feel free to adjust
+#  whitespace and separators to make them fit your locale.
+messenger.conversations.selections.systemMessagesTemplate=%time% - %message%
+messenger.conversations.selections.contentMessagesTemplate=%time% - %sender%: 
%message%
+messenger.conversations.selections.actionMessagesTemplate=%time% * %sender% 
%message%

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-conversationsproperties] Update translations for tor-messenger-conversationsproperties

2016-09-30 Thread translation
commit c25316476b12ef9eefb9ccd0d676f00f6004e414
Author: Translation commit bot 
Date:   Sat Oct 1 04:47:31 2016 +

Update translations for tor-messenger-conversationsproperties
---
 vi/conversations.properties | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/vi/conversations.properties b/vi/conversations.properties
index ceae6b1..106f244 100644
--- a/vi/conversations.properties
+++ b/vi/conversations.properties
@@ -61,11 +61,11 @@ topicCleared=%1$S đã xóa chủ đề %2$S.
 #   nickname in a conversation.
 #   %1$S is the old nick.
 #   %2$S is the new nick.
-nickSet=%1$S is now known as %2$S.
+nickSet=%1$S giờ được biết đến như là %2$S.
 # LOCALIZATION NOTE (nickSet.you):
 #   This is displayed as a system message when your nickname is changed.
 #   %S is your new nick.
-nickSet.you=You are now known as %S.
+nickSet.you=Giờ bạn được biết đến như là %S.
 
 # LOCALIZATION NOTE (messenger.conversations.selections.ellipsis):
 #  ellipsis is used when copying a part of a message to show that the message 
was cut

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbutton-abouttorproperties_completed] Update translations for torbutton-abouttorproperties_completed

2016-09-30 Thread translation
commit 54ebbf35ff6ab25c65f9e7b7a3ec54819a14011c
Author: Translation commit bot 
Date:   Sat Oct 1 04:47:03 2016 +

Update translations for torbutton-abouttorproperties_completed
---
 vi/abouttor.properties | 21 +
 1 file changed, 21 insertions(+)

diff --git a/vi/abouttor.properties b/vi/abouttor.properties
new file mode 100644
index 000..b8a93ad
--- /dev/null
+++ b/vi/abouttor.properties
@@ -0,0 +1,21 @@
+# Copyright (c) 2014, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+aboutTor.searchSP.privacy=Tìm kiếm một cách an toà
nvới  Trang bắt đầu.
+# The following string is a link which replaces %1$S above.
+aboutTor.searchSP.privacy.link=https://startpage.com/eng/protect-privacy.html
+# The following string is a link which replaces %2$S above.
+aboutTor.searchSP.search.link=https://startpage.com/
+
+aboutTor.searchDDG.privacy=Tìm kiếm một cách an toà
nvới  DuckDuckGo.
+# The following string is a link which replaces %1$S above.
+aboutTor.searchDDG.privacy.link=https://duckduckgo.com/privacy.html
+# The following string is a link which replaces %2$S above.
+aboutTor.searchDDG.search.link=https://duckduckgo.com/
+
+aboutTor.searchDC.privacy=Tìm kiếm một cách an toà
nvới  Disconnect.me.
+# The following string is a link which replaces %1$S above.
+aboutTor.searchDC.privacy.link=https://disconnect.me/privacy
+# The following string is a link which replaces %2$S above.
+aboutTor.searchDC.search.link=https://search.disconnect.me/

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbutton-abouttorproperties] Update translations for torbutton-abouttorproperties

2016-09-30 Thread translation
commit a80383d22b36cf4074f05d4f69eaad45c9444d94
Author: Translation commit bot 
Date:   Sat Oct 1 04:46:59 2016 +

Update translations for torbutton-abouttorproperties
---
 vi/abouttor.properties | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/vi/abouttor.properties b/vi/abouttor.properties
index d607324..b8a93ad 100644
--- a/vi/abouttor.properties
+++ b/vi/abouttor.properties
@@ -2,19 +2,19 @@
 # See LICENSE for licensing information.
 # vim: set sw=2 sts=2 ts=8 et:
 
-aboutTor.searchSP.privacy=Search securely with Startpage.
+aboutTor.searchSP.privacy=Tìm kiếm một cách an toà
nvới  Trang bắt đầu.
 # The following string is a link which replaces %1$S above.
 aboutTor.searchSP.privacy.link=https://startpage.com/eng/protect-privacy.html
 # The following string is a link which replaces %2$S above.
 aboutTor.searchSP.search.link=https://startpage.com/
 
-aboutTor.searchDDG.privacy=Search securely with DuckDuckGo.
+aboutTor.searchDDG.privacy=Tìm kiếm một cách an toà
nvới  DuckDuckGo.
 # The following string is a link which replaces %1$S above.
 aboutTor.searchDDG.privacy.link=https://duckduckgo.com/privacy.html
 # The following string is a link which replaces %2$S above.
 aboutTor.searchDDG.search.link=https://duckduckgo.com/
 
-aboutTor.searchDC.privacy=Search securely with Disconnect.me.
+aboutTor.searchDC.privacy=Tìm kiếm một cách an toà
nvới  Disconnect.me.
 # The following string is a link which replaces %1$S above.
 aboutTor.searchDC.privacy.link=https://disconnect.me/privacy
 # The following string is a link which replaces %2$S above.

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-loggerproperties_completed] Update translations for tor-messenger-loggerproperties_completed

2016-09-30 Thread translation
commit d7871c1d49cc5a73654be23e1a21691b708042b1
Author: Translation commit bot 
Date:   Sat Oct 1 04:18:43 2016 +

Update translations for tor-messenger-loggerproperties_completed
---
 vi/logger.properties | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/vi/logger.properties b/vi/logger.properties
new file mode 100644
index 000..7b4c59d
--- /dev/null
+++ b/vi/logger.properties
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (badLogfile):
+#  %S is the filename of the log file.
+badLogfile=Tập tin nhật ký trống hoặc bị sửa: %S

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-ircproperties_completed] Update translations for tor-messenger-ircproperties_completed

2016-09-30 Thread translation
commit 2fd393721c34f2b00e282bd7a780fbff7f9e604f
Author: Translation commit bot 
Date:   Sat Oct 1 04:18:30 2016 +

Update translations for tor-messenger-ircproperties_completed
---
 vi/irc.properties | 208 ++
 1 file changed, 208 insertions(+)

diff --git a/vi/irc.properties b/vi/irc.properties
new file mode 100644
index 000..d5eba42
--- /dev/null
+++ b/vi/irc.properties
@@ -0,0 +1,208 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (irc.usernameHint):
+#  This is displayed inside the accountUsernameInfoWithDescription
+#  string defined in imAccounts.properties when the user is
+#  configuring an IRC account.
+irc.usernameHint=biệt danh
+
+# LOCALIZATION NOTE (connection.error.*):
+#   These will show in the account manager if the account is
+#   disconnected because of an error.
+connection.error.lost=Đã mất kết nối với máy chủ
+connection.error.timeOut=Kết nối đã hết hạn
+connection.error.invalidUsername=%S không phải là một tên người 
dùng được cho phép
+connection.error.invalidPassword=Mật khẩu máy chủ không hợp lệ
+connection.error.passwordRequired=Yêu cầu có mật khẩu
+
+# LOCALIZATION NOTE (joinChat.*):
+#   These show up on the join chat menu. An underscore is for the access key.
+joinChat.channel=_Kênh
+joinChat.password=_Mật khẩu
+
+# LOCALIZATION NOTE (options.*):
+#   These are the protocol specific options shown in the account manager and
+#   account wizard windows.
+options.server=Máy chủ
+options.port=Cổng
+options.ssl=Sử dụng SSL
+options.encoding=Bộ ký tự
+options.quitMessage=Thoát khỏi thông điệp
+options.partMessage=Thông điệp mảnh
+options.showServerTab=Hiển thị thông điệp từ máy chủ
+options.alternateNicks=Những biệt danh thay thế
+
+# LOCALIZATION NOTE (ctcp.version):
+#   %1$S is the nickname of the user whose version was requested.
+#   %2$S is the version response from the client.
+ctcp.version=%1$S đang sử dụng "%2$S".
+# LOCALIZATION NOTE (ctcp.time):
+#   %1$S is the nickname of the user whose time was requested.
+#   %2$S is the time response.
+ctcp.time=Thời gian của  %1$S là %2$S.
+
+# LOCALZIATION NOTE (command.*):
+#   These are the help messages for each command, the %S is the command name
+#   Each command first gives the parameter it accepts and then a description of
+#   the command.
+command.action=%S action to perform: Thực hiện một hành động.
+command.ctcp=%S nick msg: Gửi một thông điệp CTCP 
tới biệt danh.
+command.chanserv=%S command: Gửi một lệnh tới ChanServ.
+command.deop=%S nick1[,nick2]*: Loại bỏ tình trạng 
của người vận hành kênh khỏi ai đó. Bạn phải là người 
vận hành kênh để làm được điều này.
+command.devoice=%S nick1[,nick2]*: Loại bỏ tình trạng 
giọng nói khỏi ai đó, ngăn chặn họ nói nếu kênh được 
điều chỉnh (+m). Bạn phải là người vận hành kênh để làm 
được điều này.
+command.invite2=%S nick[ nick]* [channel]: Mời một 
hoặc nhiều biệt danh khác tham gia vào kệnh hiện tại, hoặc tham 
gia kênh riêng.
+command.join=%S room1[ key1][,room2[ key2]]*: 
Nhập một hoặc nhiều kênh khác, cung cấp một cách tùy chọn 
khóa của kênh cho mỗi người nếu cần thiết.
+command.kick=%S nick [message]: Loại bỏ một người nà
o đó ra khỏi kênh. Bạn phải là người vận hành kênh để làm 
được điều này.
+command.list=%S: Hiển thị một danh sách các phòng trò chuyện trên 
mạng lưới. Cảnh báo, một vài máy chủ có thể ngắt kết nối 
của bạn vì làm điều này.
+command.memoserv=%S command: Gửi một lệnh tới MemoServ.
+command.modeUser=%S (+|-)new mode [nick]: Đặt hoặc bỏ 
đặt một cách thức của người dùng.
+command.modeChannel=%S channel[ (+|-)new mode 
[parameter][,parameter]*]: Lấy, đặt hoặc bỏ đặt 
một phương thức của kênh.
+command.msg=%S nick message: Gửi một thông điệp riêng 
tư với một người dùng (đối ngược với một kênh).
+command.nick=%S new nickname: Đổi biệt danh của bạn.
+command.nickserv=%S command: Gửi một lệnh tới NickServ.
+command.notice=%S target message: Gửi một ghi chú tới 
một người dùng hoặc một kênh.
+command.op=%S nick1[,nick2]*: Cấp trạng thái vận hành 
kênh tới một người nào đó. Bạn phải là người vận hành 
kênh để làm được điều này.
+command.operserv=%S command: Gửi một lệnh tới OperServ.
+command.part=%S [message]: Để lại lời nhắn tùy chọn 

[tor-commits] [translation/tor-messenger-ircproperties] Update translations for tor-messenger-ircproperties

2016-09-30 Thread translation
commit 5d9b7dfe45648c2f441fac4972c17d2fc6cbd2d5
Author: Translation commit bot 
Date:   Sat Oct 1 04:18:24 2016 +

Update translations for tor-messenger-ircproperties
---
 vi/irc.properties | 144 +++---
 1 file changed, 72 insertions(+), 72 deletions(-)

diff --git a/vi/irc.properties b/vi/irc.properties
index 55d178f..d5eba42 100644
--- a/vi/irc.properties
+++ b/vi/irc.properties
@@ -58,120 +58,120 @@ command.kick=%S nick [message]: Loại 
bỏ một người nào
 command.list=%S: Hiển thị một danh sách các phòng trò chuyện trên 
mạng lưới. Cảnh báo, một vài máy chủ có thể ngắt kết nối 
của bạn vì làm điều này.
 command.memoserv=%S command: Gửi một lệnh tới MemoServ.
 command.modeUser=%S (+|-)new mode [nick]: Đặt hoặc bỏ 
đặt một cách thức của người dùng.
-command.modeChannel=%S channel[ (+|-)new mode 
[parameter][,parameter]*]: Get, set or unset a channel mode.
-command.msg=%S nick message: Send a private message to a user 
(as opposed to a channel).
+command.modeChannel=%S channel[ (+|-)new mode 
[parameter][,parameter]*]: Lấy, đặt hoặc bỏ đặt 
một phương thức của kênh.
+command.msg=%S nick message: Gửi một thông điệp riêng 
tư với một người dùng (đối ngược với một kênh).
 command.nick=%S new nickname: Đổi biệt danh của bạn.
-command.nickserv=%S command: Send a command to NickServ.
-command.notice=%S target message: Send a notice to a user or 
channel.
-command.op=%S nick1[,nick2]*: Grant channel operator status to 
someone. You must be a channel operator to do this.
-command.operserv=%S command: Send a command to OperServ.
-command.part=%S [message]: Leave the current channel with an optional message.
-command.ping=%S [nick]: Asks how much lag a user (or the server if no 
user specified) has.
-command.quit=%S message: Disconnect from the server, with an optional 
message.
-command.quote=%S command: Send a raw command to the server.
-command.time=%S: Displays the current local time at the IRC server.
-command.topic=%S [new topic]: Set this channel's topic.
-command.umode=%S (+|-)new mode: Set or unset a user mode.
-command.version=%S nick: Request the version of a user's client.
-command.voice=%S nick1[,nick2]*: Grant channel voice status to 
someone. You must be a channel operator to do this.
-command.whois2=%S [nick]: Get information on a user.
+command.nickserv=%S command: Gửi một lệnh tới NickServ.
+command.notice=%S target message: Gửi một ghi chú tới 
một người dùng hoặc một kênh.
+command.op=%S nick1[,nick2]*: Cấp trạng thái vận hành 
kênh tới một người nào đó. Bạn phải là người vận hành 
kênh để làm được điều này.
+command.operserv=%S command: Gửi một lệnh tới OperServ.
+command.part=%S [message]: Để lại lời nhắn tùy chọn lại kênh 
hiện tại.
+command.ping=%S [nick]: Hỏi một người dùng (hoặc máy chủ 
nếu không có người dùng nào được xác minh) bị nghẽn nhiều 
như thế nào.
+command.quit=%S message: Ngắt kết nối khỏi máy chủ, với 
một thông điệp tùy chọn.
+command.quote=%S command: Gửi một lệnh thô tới máy chủ.
+command.time=%S: Hiển thị thời gian địa phương ở máy chủ IRC.
+command.topic=%S [new topic]: Đặt chủ đề cho kênh này.
+command.umode=%S (+|-)new mode: Đặt hoặc bỏ đặt một 
phương thức của người dùng.
+command.version=%S nick: Yêu cầu phiên bản của của máy 
trạm của người dùng.
+command.voice=%S nick1[,nick2]*: Cấp phép tình trạng 
giọng nói cho ai đó. Bạn phải là người vận hành kênh để là
m được điều này.
+command.whois2=%S [nick]: Lấy thông tin của một người dùng.
 
 # LOCALIZATION NOTE (message.*):
 #These are shown as system messages in the conversation.
 #%1$S is the nick and %2$S is the nick and host of the user who joined.
-message.join=%1$S [%2$S] entered the room.
+message.join=%1$S [%2$S] vừa gia nhập phòng.
 message.rejoined=Bạn đã gia nhập lại vào phòng.
 #%1$S is the nick of who kicked you.
 #%2$S is message.kicked.reason, if a kick message was given.
-message.kicked.you=You have been kicked by %1$S%2$S.
+message.kicked.you=Bạn vừa mới bị đuổi ra bởi %1$S%2$S.
 #%1$S is the nick that is kicked, %2$S the nick of the person who kicked
 #%1$S. %3$S is message.kicked.reason, if a kick message was given.
-message.kicked=%1$S has been kicked by %2$S%3$S.
+message.kicked=%1$S vừa bị đuổi ra bởi %2$S%3$S.
 #%S is the kick message
 message.kicked.reason=: %S
 #%1$S is the new mode, %2$S is the nickname of the user whose mode
 #was changed, and %3$S is who set the mode.
-message.usermode=Mode %1$S for %2$S set by %3$S.

[tor-commits] [translation/tor-messenger-loggerproperties] Update translations for tor-messenger-loggerproperties

2016-09-30 Thread translation
commit cb76253ef30c60f268a91c0dae236f7fe900e77b
Author: Translation commit bot 
Date:   Sat Oct 1 04:18:39 2016 +

Update translations for tor-messenger-loggerproperties
---
 vi/logger.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/vi/logger.properties b/vi/logger.properties
index 2228c50..7b4c59d 100644
--- a/vi/logger.properties
+++ b/vi/logger.properties
@@ -4,4 +4,4 @@
 
 # LOCALIZATION NOTE (badLogfile):
 #  %S is the filename of the log file.
-badLogfile=Empty or corrupt log file: %S
+badLogfile=Tập tin nhật ký trống hoặc bị sửa: %S

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-imtooltipproperties] Update translations for tor-messenger-imtooltipproperties

2016-09-30 Thread translation
commit 1f813948c7fc2d82240c5589a3604f1ff0411867
Author: Translation commit bot 
Date:   Sat Oct 1 03:47:54 2016 +

Update translations for tor-messenger-imtooltipproperties
---
 vi/imtooltip.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/vi/imtooltip.properties b/vi/imtooltip.properties
index 0d32805..7e672ac 100644
--- a/vi/imtooltip.properties
+++ b/vi/imtooltip.properties
@@ -4,4 +4,4 @@
 
 buddy.username=Tên người dùng
 buddy.account=Tài khoản
-contact.tags=Tags
+contact.tags=Những tấm thẻ ghi

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-imtooltipproperties_completed] Update translations for tor-messenger-imtooltipproperties_completed

2016-09-30 Thread translation
commit 8786eb2fb1c8103a2a85d0a021e9c45d1e5ab3bf
Author: Translation commit bot 
Date:   Sat Oct 1 03:47:57 2016 +

Update translations for tor-messenger-imtooltipproperties_completed
---
 vi/imtooltip.properties | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/vi/imtooltip.properties b/vi/imtooltip.properties
new file mode 100644
index 000..7e672ac
--- /dev/null
+++ b/vi/imtooltip.properties
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+buddy.username=Tên người dùng
+buddy.account=Tài khoản
+contact.tags=Những tấm thẻ ghi

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-facebookproperties_completed] Update translations for tor-messenger-facebookproperties_completed

2016-09-30 Thread translation
commit ed8eca8c4db285d5fbf0d32d26c1963299ebe704
Author: Translation commit bot 
Date:   Sat Oct 1 03:47:45 2016 +

Update translations for tor-messenger-facebookproperties_completed
---
 vi/facebook.properties | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/vi/facebook.properties b/vi/facebook.properties
new file mode 100644
index 000..cfa19b3
--- /dev/null
+++ b/vi/facebook.properties
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+connection.error.useUsernameNotEmailAddress=Vui lòng sử dụng tên tài 
khoản Facebook, không phải là địa chỉ email
+
+facebook.chat.name=Facebook Chat

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-ircproperties] Update translations for tor-messenger-ircproperties

2016-09-30 Thread translation
commit ba342fb579b727bc9844d38200981681bc750770
Author: Translation commit bot 
Date:   Sat Oct 1 03:48:00 2016 +

Update translations for tor-messenger-ircproperties
---
 vi/irc.properties | 50 +-
 1 file changed, 25 insertions(+), 25 deletions(-)

diff --git a/vi/irc.properties b/vi/irc.properties
index 819e9f7..55d178f 100644
--- a/vi/irc.properties
+++ b/vi/irc.properties
@@ -6,20 +6,20 @@
 #  This is displayed inside the accountUsernameInfoWithDescription
 #  string defined in imAccounts.properties when the user is
 #  configuring an IRC account.
-irc.usernameHint=nick
+irc.usernameHint=biệt danh
 
 # LOCALIZATION NOTE (connection.error.*):
 #   These will show in the account manager if the account is
 #   disconnected because of an error.
-connection.error.lost=Lost connection with server
-connection.error.timeOut=Connection timed out
-connection.error.invalidUsername=%S is not an allowed username
-connection.error.invalidPassword=Invalid server password
-connection.error.passwordRequired=Password required
+connection.error.lost=Đã mất kết nối với máy chủ
+connection.error.timeOut=Kết nối đã hết hạn
+connection.error.invalidUsername=%S không phải là một tên người 
dùng được cho phép
+connection.error.invalidPassword=Mật khẩu máy chủ không hợp lệ
+connection.error.passwordRequired=Yêu cầu có mật khẩu
 
 # LOCALIZATION NOTE (joinChat.*):
 #   These show up on the join chat menu. An underscore is for the access key.
-joinChat.channel=_Channel
+joinChat.channel=_Kênh
 joinChat.password=_Mật khẩu
 
 # LOCALIZATION NOTE (options.*):
@@ -27,37 +27,37 @@ joinChat.password=_Mật khẩu
 #   account wizard windows.
 options.server=Máy chủ
 options.port=Cổng
-options.ssl=Use SSL
-options.encoding=Character Set
-options.quitMessage=Quit message
-options.partMessage=Part message
-options.showServerTab=Show messages from the server
-options.alternateNicks=Alternate nicks
+options.ssl=Sử dụng SSL
+options.encoding=Bộ ký tự
+options.quitMessage=Thoát khỏi thông điệp
+options.partMessage=Thông điệp mảnh
+options.showServerTab=Hiển thị thông điệp từ máy chủ
+options.alternateNicks=Những biệt danh thay thế
 
 # LOCALIZATION NOTE (ctcp.version):
 #   %1$S is the nickname of the user whose version was requested.
 #   %2$S is the version response from the client.
-ctcp.version=%1$S is using "%2$S".
+ctcp.version=%1$S đang sử dụng "%2$S".
 # LOCALIZATION NOTE (ctcp.time):
 #   %1$S is the nickname of the user whose time was requested.
 #   %2$S is the time response.
-ctcp.time=The time for %1$S is %2$S.
+ctcp.time=Thời gian của  %1$S là %2$S.
 
 # LOCALZIATION NOTE (command.*):
 #   These are the help messages for each command, the %S is the command name
 #   Each command first gives the parameter it accepts and then a description of
 #   the command.
 command.action=%S action to perform: Thực hiện một hành động.
-command.ctcp=%S nick msg: Sends a CTCP message to the nick.
-command.chanserv=%S command: Send a command to ChanServ.
-command.deop=%S nick1[,nick2]*: Remove channel operator status 
from someone. You must be a channel operator to do this.
-command.devoice=%S nick1[,nick2]*: Remove channel voice status 
from someone, preventing them from speaking if the channel is moderated (+m). 
You must be a channel operator to do this.
-command.invite2=%S nick[ nick]* [channel]: Invite one 
or more nicks to join you in the current channel, or to join the specified 
channel.
-command.join=%S room1[ key1][,room2[ key2]]*: 
Enter one or more channels, optionally providing a channel key for each if 
needed.
-command.kick=%S nick [message]: Remove someone from a channel. 
You must be a channel operator to do this.
-command.list=%S: Display a list of chat rooms on the network. Warning, some 
servers may disconnect you upon doing this.
-command.memoserv=%S command: Send a command to MemoServ.
-command.modeUser=%S (+|-)new mode [nick]: Set or unset a 
user's mode.
+command.ctcp=%S nick msg: Gửi một thông điệp CTCP 
tới biệt danh.
+command.chanserv=%S command: Gửi một lệnh tới ChanServ.
+command.deop=%S nick1[,nick2]*: Loại bỏ tình trạng 
của người vận hành kênh khỏi ai đó. Bạn phải là người 
vận hành kênh để làm được điều này.
+command.devoice=%S nick1[,nick2]*: Loại bỏ tình trạng 
giọng nói khỏi ai đó, ngăn chặn họ nói nếu kênh được 
điều chỉnh (+m). Bạn phải là người vận hành kênh để làm 
được điều này.
+command.invite2=%S nick[ nick]* [channel]: Mời một 
hoặc nhiều biệt danh khác tham gia vào kệnh hiện tại, hoặc tham 
gia kênh riêng.
+command.join=%S room1[ key1][,room2[ key2]]*: 
Nhập một hoặc nhiều kênh khác, cung cấp một cách tùy chọn 
khóa của kênh cho 

[tor-commits] [translation/tor-messenger-commandsproperties] Update translations for tor-messenger-commandsproperties

2016-09-30 Thread translation
commit 65cf5a317854b9c97524f19dd4a4c892f8122ed4
Author: Translation commit bot 
Date:   Sat Oct 1 03:47:23 2016 +

Update translations for tor-messenger-commandsproperties
---
 vi/commands.properties | 24 
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/vi/commands.properties b/vi/commands.properties
index d4e3a91..7499120 100644
--- a/vi/commands.properties
+++ b/vi/commands.properties
@@ -4,24 +4,24 @@
 
 # LOCALIZATION NOTE (commands):
 #  %S is a comma separated list of command names.
-commands=Commands: %S.\nUse /help command for more information.
+commands=Lệnh: %S.\nUse /help command để có thêm thông tin.
 # LOCALIZATION NOTE (noCommand, noHelp):
 #  %S is the command name the user typed.
-noCommand=No '%S' command.
-noHelp=No help message for the '%S' command, sorry!
+noCommand=Không có lệnh '%S'
+noHelp=Không có thông điệp trợ giúp cho lệnh '%S', rất tiếc!
 
-sayHelpString=say message: send a message without processing commands.
-rawHelpString=raw message: send a message without escaping HTML 
entities.
-helpHelpString=help name: show the help message for the name 
command, or the list of possible commands when used without parameter.
+sayHelpString=say message: gửi một thông điệp mà không có 
những lệnh thực thi.
+rawHelpString=raw message: gửi một thông điệp mà không 
thoát khỏi các thực thể HTML.
+helpHelpString=help name: hiển thị thông điệp giúp đỡ cho 
lệnh name hoặc danh sách của những lệnh khả thi khi 
được sử dụng mà không có tham số.
 
 # LOCALIZATION NOTE (statusCommand):
 #  %1$S is replaced with a status command name
 #   (one of "back", "away", "busy", "dnd", or "offline").
 #  %2$S is replaced with the localized version of that status type
 #   (one of the 5 strings below).
-statusCommand=%1$S status message: set the status to %2$S with an 
optional status message.
-back=available
-away=away
-busy=unavailable
-dnd=unavailable
-offline=offline
+statusCommand=%1$S status message: đặt trạng thái thành %2$S 
với một thông điệp trạng thái tùy chọn.
+back=có sẵn
+away=ngay lập tức
+busy=không có sẵn
+dnd=không có sẵn
+offline=ngoại tuyến

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-contactsproperties_completed] Update translations for tor-messenger-contactsproperties_completed

2016-09-30 Thread translation
commit 7900a45dc74cf6d33d0defb1d962dc2f031d6ec4
Author: Translation commit bot 
Date:   Sat Oct 1 03:47:33 2016 +

Update translations for tor-messenger-contactsproperties_completed
---
 vi/contacts.properties | 8 
 1 file changed, 8 insertions(+)

diff --git a/vi/contacts.properties b/vi/contacts.properties
new file mode 100644
index 000..011a613
--- /dev/null
+++ b/vi/contacts.properties
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (defaultGroup):
+# This is the name of the group that will automatically be created when adding 
a
+# buddy without specifying a group.
+defaultGroup=Những người liên hệ

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-commandsproperties_completed] Update translations for tor-messenger-commandsproperties_completed

2016-09-30 Thread translation
commit cb7ca86a290e00a09eaa3c9a1211b1e255140381
Author: Translation commit bot 
Date:   Sat Oct 1 03:47:26 2016 +

Update translations for tor-messenger-commandsproperties_completed
---
 vi/commands.properties | 27 +++
 1 file changed, 27 insertions(+)

diff --git a/vi/commands.properties b/vi/commands.properties
new file mode 100644
index 000..7499120
--- /dev/null
+++ b/vi/commands.properties
@@ -0,0 +1,27 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (commands):
+#  %S is a comma separated list of command names.
+commands=Lệnh: %S.\nUse /help command để có thêm thông tin.
+# LOCALIZATION NOTE (noCommand, noHelp):
+#  %S is the command name the user typed.
+noCommand=Không có lệnh '%S'
+noHelp=Không có thông điệp trợ giúp cho lệnh '%S', rất tiếc!
+
+sayHelpString=say message: gửi một thông điệp mà không có 
những lệnh thực thi.
+rawHelpString=raw message: gửi một thông điệp mà không 
thoát khỏi các thực thể HTML.
+helpHelpString=help name: hiển thị thông điệp giúp đỡ cho 
lệnh name hoặc danh sách của những lệnh khả thi khi 
được sử dụng mà không có tham số.
+
+# LOCALIZATION NOTE (statusCommand):
+#  %1$S is replaced with a status command name
+#   (one of "back", "away", "busy", "dnd", or "offline").
+#  %2$S is replaced with the localized version of that status type
+#   (one of the 5 strings below).
+statusCommand=%1$S status message: đặt trạng thái thành %2$S 
với một thông điệp trạng thái tùy chọn.
+back=có sẵn
+away=ngay lập tức
+busy=không có sẵn
+dnd=không có sẵn
+offline=ngoại tuyến

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-contactsproperties] Update translations for tor-messenger-contactsproperties

2016-09-30 Thread translation
commit f295a5450ee981b1dc7d9dea7d9ebe033f57cb9f
Author: Translation commit bot 
Date:   Sat Oct 1 03:47:29 2016 +

Update translations for tor-messenger-contactsproperties
---
 vi/contacts.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/vi/contacts.properties b/vi/contacts.properties
index 33af79c..011a613 100644
--- a/vi/contacts.properties
+++ b/vi/contacts.properties
@@ -5,4 +5,4 @@
 # LOCALIZATION NOTE (defaultGroup):
 # This is the name of the group that will automatically be created when adding 
a
 # buddy without specifying a group.
-defaultGroup=Contacts
+defaultGroup=Những người liên hệ

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tails-greeter_completed] Update translations for tails-greeter_completed

2016-09-30 Thread translation
commit 9431e9c5e0144ebe3c3967365bdd82eaf6be9ec6
Author: Translation commit bot 
Date:   Sat Oct 1 03:45:41 2016 +

Update translations for tails-greeter_completed
---
 vi/vi.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/vi/vi.po b/vi/vi.po
index 421462e..0a17222 100644
--- a/vi/vi.po
+++ b/vi/vi.po
@@ -10,7 +10,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2016-09-02 14:43+0200\n"
-"PO-Revision-Date: 2016-09-29 08:48+\n"
+"PO-Revision-Date: 2016-10-01 03:17+\n"
 "Last-Translator: Khanh Nguyen \n"
 "Language-Team: Vietnamese 
(http://www.transifex.com/otf/torproject/language/vi/)\n"
 "MIME-Version: 1.0\n"
@@ -21,7 +21,7 @@ msgstr ""
 
 #: ../glade/persistencewindow.glade.h:1
 msgid "Forward"
-msgstr "chuyển tiếp"
+msgstr "Chuyển tiếp"
 
 #: ../glade/persistencewindow.glade.h:2 ../glade/optionswindow.glade.h:1
 msgid "Login"

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbutton-torbuttonproperties] Update translations for torbutton-torbuttonproperties

2016-09-30 Thread translation
commit f1eac9a9e509d1e5ad20689c45397a2f8ff611f0
Author: Translation commit bot 
Date:   Sat Oct 1 03:46:32 2016 +

Update translations for torbutton-torbuttonproperties
---
 vi/torbutton.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/vi/torbutton.properties b/vi/torbutton.properties
index d7f382f..2dc7b98 100644
--- a/vi/torbutton.properties
+++ b/vi/torbutton.properties
@@ -5,7 +5,7 @@ torbutton.circuit_display.this_browser = Trình duyệt này
 torbutton.circuit_display.relay = tiếp sức
 torbutton.circuit_display.tor_bridge = Cầu nối
 torbutton.circuit_display.unknown_country = Đất nước không được 
biết đến
-torbutton.content_sizer.margin_tooltip = Tor Browser adds this margin to make 
the width and height of your window less distinctive, and thus reduces the 
ability of people to track you online.
+torbutton.content_sizer.margin_tooltip = Trình duyệt Tor thêm lề này 
để làm cho chiều rộng và chiều cao của màn hình của bạn ít 
dễ bị phân biệt hơn, và vì thế giảm khả năng của những 
người theo dõi bạn trực tuyến.
 torbutton.panel.tooltip.disabled = Nhấn để bật Tor
 torbutton.panel.tooltip.enabled = Nhấn để tắt Tor
 torbutton.panel.label.disabled = Tor bị tắt

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-conversationsproperties] Update translations for tor-messenger-conversationsproperties

2016-09-30 Thread translation
commit 7401320b5ee04fa0f4d5363efdc9dca9e0a0d5c3
Author: Translation commit bot 
Date:   Sat Oct 1 03:47:36 2016 +

Update translations for tor-messenger-conversationsproperties
---
 vi/conversations.properties | 34 +-
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/vi/conversations.properties b/vi/conversations.properties
index 1a5564a..ceae6b1 100644
--- a/vi/conversations.properties
+++ b/vi/conversations.properties
@@ -5,56 +5,56 @@
 # LOCALIZATION NOTE (targetChanged):
 #  %1$S is the new conversation title (display name of the new target),
 #  %2$S is the protocol name used for the new target.
-targetChanged=The conversation will continue with %1$S, using %2$S.
+targetChanged=Đoạn hội thoại sẽ tiếp tục với %1$S, sử dụng 
%2$S.
 
 # LOCALIZATION NOTE (statusChanged):
 #  %1$S is the display name of the contact.
 #  %2$S is the new status type (a value from status.properties).
-statusChanged=%1$S is now %2$S.
+statusChanged=%1$S bây giờ là %2$S.
 # LOCALIZATION NOTE (statusChangedWithStatusText):
 #  %1$S is the display name of the contact.
 #  %2$S is the new status type (a value from status.properties).
 #  %3$S is the status text (eg. "I'm currently away from the computer").
-statusChangedWithStatusText=%1$S is now %2$S: %3$S.
+statusChangedWithStatusText=%1$S bây giờ là %2$S: %3$S.
 # LOCALIZATION NOTE (statusChangedFromUnknown[WithStatusText]):
 #  special case of the previous 2 strings for when the status was
 #  previously unknown. These 2 strings should not mislead the user
 #  into thinking the person's status has just changed.
-statusChangedFromUnknown=%1$S is %2$S.
-statusChangedFromUnknownWithStatusText=%1$S is %2$S: %3$S.
+statusChangedFromUnknown=%1$S là %2$S.
+statusChangedFromUnknownWithStatusText=%1$S là %2$S: %3$S.
 # LOCALIZATION NOTE (statusKnown[WithStatusText]):
 # special case of the previous 2 strings for when an account has just
 # been reconnected, so the status is now known. These 2 strings should not
 # mislead the user into thinking the person's status has just changed.
-statusKnown=Your account has been reconnected (%1$S is %2$S).
-statusKnownWithStatusText=Your account has been reconnected (%1$S is %2$S: 
%3$S).
+statusKnown=Tài khoản của bạn đã được kết nối lại (%1$S là 
%2$S).
+statusKnownWithStatusText=Tài khoản của bạn đã được kết nối 
lại (%1$S là %2$S: %3$S).
 # LOCALIZATION NOTE (statusUnknown):
 #  %S is the display name of the contact.
-statusUnknown=Your account is disconnected (the status of %S is no longer 
known).
+statusUnknown=Tài khoản của bạn bị ngắt kết nối (tình trạng 
của %S không còn được biết đến).
 
-accountDisconnected=Your account is disconnected.
-accountReconnected=Your account has been reconnected.
+accountDisconnected=Tài khoản của bạn bị ngắt kết nối.
+accountReconnected=Tài khoản của bạn đã bị ngắt kết nối.
 
 # LOCALIZATION NOTE (autoReply):
 #  %S is replaced by the text of a message that was sent as an automatic reply.
-autoReply=Auto-reply - %S
+autoReply=Tự động trả lời - %S
 
 # LOCALIZATION NOTE (noTopic):
 # Displayed instead of the topic when no topic is set.
-noTopic=No topic message for this room.
+noTopic=Không có thông điệp chủ đề của phòng này.
 
 # LOCALIZATION NOTE (topicSet):
 #  %1$S is the conversation name, %2$S is the topic.
-topicSet=The topic for %1$S is: %2$S.
+topicSet=Chủ đề cho %1$S là: %2$S.
 # LOCALIZATION NOTE (topicNotSet):
 #  %S is the conversation name.
-topicNotSet=There is no topic for %S.
+topicNotSet=Không có chủ đề cho %S.
 # LOCALIZATION NOTE (topicChanged):
 #  %1$S is the user who changed the topic, %2$S is the new topic.
-topicChanged=%1$S has changed the topic to: %2$S.
+topicChanged=%1$S đã đổi chủ đề thành: %2$S.
 # LOCALIZATION NOTE (topicCleared):
 #  %1$S is the user who cleared the topic.
-topicCleared=%1$S has cleared the topic.
+topicCleared=%1$S đã xóa chủ đề %2$S.
 
 # LOCALIZATION NOTE (nickSet):
 #   This is displayed as a system message when a participant changes his/her
@@ -69,7 +69,7 @@ nickSet.you=You are now known as %S.
 
 # LOCALIZATION NOTE (messenger.conversations.selections.ellipsis):
 #  ellipsis is used when copying a part of a message to show that the message 
was cut
-messenger.conversations.selections.ellipsis=[…]
+messenger.conversations.selections.ellipsis=[...]
 
 # LOCALIZATION NOTE 
(messenger.conversations.selections.{system,content,action}MessagesTemplate):
 #  These 3 templates are used to format selected messages before copying them.

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tails-greeter] Update translations for tails-greeter

2016-09-30 Thread translation
commit c4c79abc9a15a9ed8212918b885515c6d457b102
Author: Translation commit bot 
Date:   Sat Oct 1 03:45:38 2016 +

Update translations for tails-greeter
---
 vi/vi.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/vi/vi.po b/vi/vi.po
index 421462e..0a17222 100644
--- a/vi/vi.po
+++ b/vi/vi.po
@@ -10,7 +10,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2016-09-02 14:43+0200\n"
-"PO-Revision-Date: 2016-09-29 08:48+\n"
+"PO-Revision-Date: 2016-10-01 03:17+\n"
 "Last-Translator: Khanh Nguyen \n"
 "Language-Team: Vietnamese 
(http://www.transifex.com/otf/torproject/language/vi/)\n"
 "MIME-Version: 1.0\n"
@@ -21,7 +21,7 @@ msgstr ""
 
 #: ../glade/persistencewindow.glade.h:1
 msgid "Forward"
-msgstr "chuyển tiếp"
+msgstr "Chuyển tiếp"
 
 #: ../glade/persistencewindow.glade.h:2 ../glade/optionswindow.glade.h:1
 msgid "Login"

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor-messenger-build/master] Bump tags to THUNDERBIRD_45_4_0_RELEASE

2016-09-30 Thread arlo
commit 1b8a9ab223c9390fa94ae81a6f4fb63182cbee2f
Author: Arlo Breault 
Date:   Fri Sep 30 20:01:52 2016 -0700

Bump tags to THUNDERBIRD_45_4_0_RELEASE

 * Also, fixup the changelog for the previous few commits.
---
 ChangeLog   | 13 +++--
 projects/instantbird/config |  2 +-
 projects/mozilla/config |  2 +-
 3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index e4f5546..164a902 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,16 @@
+Tor Messenger 0.2.0b3 --
+ * All Platforms
+   * Use the THUNDERBIRD_45_4_0_RELEASE tag on mozilla-esr45
+   * Use the THUNDERBIRD_45_4_0_RELEASE tag on comm-esr45
+   * Bug 20208: Put conversations on hold by default
+   * Properly handle incoming xmpp server messages (bugzilla 1246431)
+ * Mac
+   * Bug 20206: Avoid prompting to download font "Osaka"
+
 Tor Messenger 0.2.0b2 -- September 06, 2016
  * Mac
-  * Bug 19269: Fix OS X file permissions
-  * Fix OS X profile when application is not placed in /Applications
+   * Bug 19269: Fix OS X file permissions
+   * Fix OS X profile when application is not placed in /Applications
 
 Tor Messenger 0.2.0b1 -- September 02, 2016
  * All Platforms
diff --git a/projects/instantbird/config b/projects/instantbird/config
index e5343af..32cc28c 100644
--- a/projects/instantbird/config
+++ b/projects/instantbird/config
@@ -1,7 +1,7 @@
 # vim: filetype=yaml sw=2
 version: '[% c("abbrev") %]'
 hg_url: https://hg.mozilla.org/releases/comm-esr45/
-hg_hash: THUNDERBIRD_45_3_0_RELEASE
+hg_hash: THUNDERBIRD_45_4_0_RELEASE
 filename: "[% project %]-[% c('version') %]-[% c('var/osname') %]-[% 
c('var/build_id') %].[% c('var/archive_suffix') %]"
 remote_docker: 1
 var:
diff --git a/projects/mozilla/config b/projects/mozilla/config
index 2c14535..f88bfa3 100644
--- a/projects/mozilla/config
+++ b/projects/mozilla/config
@@ -1,7 +1,7 @@
 # vim: filetype=yaml sw=2
 version: '[% c("abbrev") %]'
 hg_url: https://hg.mozilla.org/releases/mozilla-esr45/
-hg_hash: THUNDERBIRD_45_3_0_RELEASE
+hg_hash: THUNDERBIRD_45_4_0_RELEASE
 src: |
   #!/bin/sh
   set -e

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [flashproxy/master] imperialviolet.org has https.

2016-09-30 Thread dcf
commit ac33274b7b033938dc48778870e1f77b2652b4ac
Author: David Fifield 
Date:   Fri Sep 30 17:09:38 2016 -0700

imperialviolet.org has https.
---
 flashproxy/keys.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/flashproxy/keys.py b/flashproxy/keys.py
index 8c60dc0..7e7998f 100644
--- a/flashproxy/keys.py
+++ b/flashproxy/keys.py
@@ -56,7 +56,7 @@ 
A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
 -END CERTIFICATE-
 """
 # SHA-1 digest of expected public keys. Any of these is valid. See
-# http://www.imperialviolet.org/2011/05/04/pinning.html for the reason behind
+# https://www.imperialviolet.org/2011/05/04/pinning.html for the reason behind
 # hashing the public key, not the entire certificate.
 PIN_GOOGLE_PUBKEY_SHA1 = (
 # 
https://src.chromium.org/viewvc/chrome/trunk/src/net/http/transport_security_state_static.h?revision=209003=markup

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [tor-messenger-build/master] Hold conversations by default (see #20208)

2016-09-30 Thread sukhbir
commit a1020540940e2d2d086e7d944ec9534b3fe54339
Author: Sukhbir Singh 
Date:   Fri Sep 30 20:06:48 2016 -0400

Hold conversations by default (see #20208)
---
 projects/instantbird/preferences.patch | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/projects/instantbird/preferences.patch 
b/projects/instantbird/preferences.patch
index 3c75b02..bcca575 100644
--- a/projects/instantbird/preferences.patch
+++ b/projects/instantbird/preferences.patch
@@ -116,7 +116,7 @@ diff --git a/im/app/profile/all-instantbird.js 
b/im/app/profile/all-instantbird.
  
  // We have an Error Console menu item by default so let's display chrome 
errors
  pref("javascript.options.showInConsole", true);
-@@ -300,14 +302,73 @@
+@@ -300,14 +302,76 @@
  // 3  at the end of the tabstrip
  pref("browser.tabs.closeButtons", 1);
  
@@ -193,3 +193,6 @@ diff --git a/im/app/profile/all-instantbird.js 
b/im/app/profile/all-instantbird.
 +
 +// Other Updates
 +pref("app.update.promptWaitTime", 3600);
++
++// Put conversations on hold so that OTR disconnect is not sent. See #20208.
++pref("messenger.conversations.holdByDefault", true);

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/master] Task-20234: the first description of CollecTor's client facing file structure.

2016-09-30 Thread karsten
commit 96a4006fd107426f2c6bc9d879d8ce18b2c2c109
Author: iwakeh 
Date:   Thu Sep 29 20:15:45 2016 +0200

Task-20234: the first description of CollecTor's client facing file 
structure.
Version 0.9
---
 src/main/resources/docs/PROTOCOL | 384 +++
 1 file changed, 384 insertions(+)

diff --git a/src/main/resources/docs/PROTOCOL b/src/main/resources/docs/PROTOCOL
new file mode 100644
index 000..0949f3e
--- /dev/null
+++ b/src/main/resources/docs/PROTOCOL
@@ -0,0 +1,384 @@
+
+ Protocol of CollecTor's File Structure
+DRAFT
+
+1.0 Introduction
+
+   This protocol describes the file structure of the data offered by
+   CollecTor mirrors.  The description of the data contained in the
+   structure is not part of this protocol and can be found on the
+   main page of a CollecTor instance, e.g. https://collector.torproject.org
+
+   CollecTor's data resides in three top elements:
+
+   * archive folder
+   * index files
+   * recent folder
+
+   These can be located anywhere on the providing systems memory, permanent
+   or in-memory.  As long as they can be accesses from the root folder of
+   the web-interface, i.e.
+
+ https://collector.someinstance.org/archive
+ https://collector.someinstance.org/index.json*
+ https://collector.someinstance.org/recent
+
+   The fourth file system structure that is part of the protocol is the
+   output directory (in the following referred to as 'out'), which is not
+   directly visible to CollecTor's clients.  This directory is the place
+   for internal storage and its file system structure is later contained
+   in the provided tar-balls with archived data.
+
+   The following sections describe the substructure of the storage locations.
+
+2.0 The 'archive' Folder
+
+   The 'archive' folder contains the Tor network history as compressed
+   tarballs.
+
+2.1 Immediate Subfolders of 'archive'
+
+   The top structure of 'archive' is comprised of
+
+   * bridge-descriptors
+   * bridge-pool-assignments
+   * exit-lists
+   * relay-descriptors
+   * torperf
+
+   The substructure of these folders differs depending on their content.
+
+2.2 'bridge-pool-assignments', 'exit-lists', and 'torperf' below 'archive'
+
+   'bridge-pool-assignments', 'exit-lists', and 'torperf' directly contain the
+   compressed tar-balls named according to the following rules:
+
+   marker DASH year DASH month DOT TAR DOT compression-type
+
+   DASH is the "-" symbol.
+   DOT a dot ".".
+   TAR is the string "tar".
+
+   'marker' is the either 'bridge-pool-assignments', 'torperf', or 
'exit-lists'.
+   'year' and 'month' are derived from the published dates (bridge pool
+   assignments), measurement dates (torperf), or download dates (exit lists) of
+   the contained data.
+   The 'compression-type' is one element of "xz", "gz", "bz2", or "zip".  The
+   current default compression type is set to "xz".
+
+2.3 'bridge-descriptors' below 'archive'
+
+   'bridge-descriptors' contains the following subdirectories:
+
+   * extra-infos
+   * server-descriptors
+   * statuses
+
+   These directories contain compressed tar-balls of the respective 
descriptors.
+   The compressed tar-balls are named in the following way:
+
+   BRIDGE DASH marker DASH year DASH month DOT TAR DOT compression-type
+
+   BRIDGE is the string "bridge".
+
+   'marker' is one of 'extra-infos', 'server-descriptors', or 'statuses'.
+   'year' and 'month' are derived from the published dates of the contained
+   data.
+
+2.4 'relay-descriptors' below 'archive'
+
+   'relay-descriptors' contains  the following substructure:
+
+   * consensuses
+   * extra-infos
+   * microdescs
+   * server-descriptors
+   * statuses
+   * tor
+   * votes
+   * certs.tar.xz
+
+   'consensuses', 'extra-infos', 'microdescs', 'server-descriptors',
+   'statuses', 'tor', and 'votes' contain compressed tar-balls of the
+   respective descriptors.
+   The compressed tar-balls are named in the following way:
+
+   marker DASH year DASH month DOT TAR DOT compression-type
+
+   'marker' is one of'consensuses', 'extra-infos', 'microdescs',
+   'server-descriptors', 'statuses', 'tor', or 'votes'
+   'year' and 'month' are derived from different dates found in the data:
+
+   * for consensuses, microdescs, and votes from the valid-after dates,
+   * for extra-infos, server-descriptors, statuses, and tor from the
+ published dates.
+
+3.0 Index Files
+
+   The index.json file and its compressed versions of various types are
+   contained under the web-root of the main CollecTor instance.
+   Future versions of this protocol might move these files to a separate
+   'index' folder.
+
+4.0 The 'recent' folder
+
+   'recent' provides data from the last 72 hours in the following
+   subfolders:
+
+   * bridge-descriptors
+   * exit-lists
+   * relay-descriptors
+   * torperf
+
+4.1 'exit-lists' and 'torperf' below 'recent'
+
+4.1.1
+   'exit-lists' 

[tor-commits] [collector/master] Check "extra-info" lines more carefully.

2016-09-30 Thread karsten
commit 5b6f2b50a48f49eea0f7b349b02d2c3391ad4121
Author: Karsten Loesing 
Date:   Wed Sep 28 16:28:55 2016 +0200

Check "extra-info" lines more carefully.
---
 .../torproject/collector/bridgedescs/SanitizedBridgesWriter.java  | 5 +
 .../collector/bridgedescs/SanitizedBridgesWriterTest.java | 8 
 2 files changed, 13 insertions(+)

diff --git 
a/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
 
b/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
index ac3e39f..abec743 100644
--- 
a/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
+++ 
b/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
@@ -1071,6 +1071,11 @@ public class SanitizedBridgesWriter extends 
CollecTorMain {
  * its hash in the sanitized descriptor. */
 String[] parts = line.split(" ");
 if (line.startsWith("extra-info ")) {
+  if (parts.length < 3) {
+logger.debug("Illegal line in extra-info descriptor: '" + line
++ "'.  Skipping descriptor.");
+return;
+  }
   hashedBridgeIdentity = DigestUtils.shaHex(Hex.decodeHex(
   parts[2].toCharArray())).toLowerCase();
   scrubbed = new StringBuilder("extra-info " + parts[1] + " "
diff --git 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
index 8634eae..9f3857f 100644
--- 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
+++ 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
@@ -414,6 +414,14 @@ public class SanitizedBridgesWriterTest {
   }
 
   @Test
+  public void testExtraInfoDescriptorExtraInfoLineTruncated()
+  throws Exception {
+this.defaultExtraInfoDescriptorBuilder.replaceLineStartingWith(
+"extra-info ", Arrays.asList("extra-info "));
+this.runTest();
+  }
+
+  @Test
   public void testExtraInfoDescriptorExtraInfoInvalidHex()
   throws Exception {
 this.defaultExtraInfoDescriptorBuilder.replaceLineStartingWith(



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/master] Use try-with-resources and refer to new bridge auth in comment.

2016-09-30 Thread karsten
commit 105c1f82a92988e0932ac65eca16de356e318ed5
Author: iwakeh 
Date:   Fri Sep 30 12:01:47 2016 +0200

Use try-with-resources and refer to new bridge auth in comment.
---
 .../torproject/collector/bridgedescs/BridgeSnapshotReader.java| 8 +++-
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git 
a/src/main/java/org/torproject/collector/bridgedescs/BridgeSnapshotReader.java 
b/src/main/java/org/torproject/collector/bridgedescs/BridgeSnapshotReader.java
index 683cb1c..2a9b568 100644
--- 
a/src/main/java/org/torproject/collector/bridgedescs/BridgeSnapshotReader.java
+++ 
b/src/main/java/org/torproject/collector/bridgedescs/BridgeSnapshotReader.java
@@ -34,7 +34,7 @@ public class BridgeSnapshotReader {
   BridgeSnapshotReader.class);
 
   /**
-   * Reads the half-hourly snapshots of bridge descriptors from Tonga.
+   * Reads the half-hourly snapshots of bridge descriptors from Bifroest.
*/
   public BridgeSnapshotReader(BridgeDescriptorParser bdp,
   File bridgeDirectoriesDir, File statsDirectory) throws 
ConfigurationException {
@@ -241,13 +241,11 @@ public class BridgeSnapshotReader {
   + "(skipped " + skippedExtraInfoDescriptors + ").");
   if (!parsed.isEmpty() && modified) {
 logger.debug("Writing file " + pbdFile.getAbsolutePath() + "...");
-try {
-  pbdFile.getParentFile().mkdirs();
-  BufferedWriter bw = new BufferedWriter(new FileWriter(pbdFile));
+pbdFile.getParentFile().mkdirs();
+try (BufferedWriter bw = new BufferedWriter(new FileWriter(pbdFile))) {
   for (String f : parsed) {
 bw.append(f + "\n");
   }
-  bw.close();
   logger.debug("Finished writing file " + pbdFile.getAbsolutePath()
   + ".");
 } catch (IOException e) {



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/master] Add test for unknown bridge network status lines.

2016-09-30 Thread karsten
commit 61bd56b61c3c8a26200aee51d3fc7306c18ccf8d
Author: Karsten Loesing 
Date:   Wed Sep 28 21:04:28 2016 +0200

Add test for unknown bridge network status lines.
---
 .../torproject/collector/bridgedescs/SanitizedBridgesWriter.java | 2 +-
 .../collector/bridgedescs/SanitizedBridgesWriterTest.java| 9 +
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git 
a/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
 
b/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
index 78e32b6..57307d8 100644
--- 
a/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
+++ 
b/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
@@ -541,7 +541,7 @@ public class SanitizedBridgesWriter extends CollecTorMain {
 || line.startsWith("p ") || line.equals("p")) {
   scrubbed.append(line + "\n");
 
-/* There should be nothing else but r, w, p, and s lines in the
+/* There should be nothing else but r, a, w, p, and s lines in the
  * network status.  If there is, we should probably learn before
  * writing anything to the sanitized descriptors. */
 } else {
diff --git 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
index 6ac6eec..424de8e 100644
--- 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
+++ 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
@@ -587,6 +587,15 @@ public class SanitizedBridgesWriterTest {
   }
 
   @Test
+  public void testNetworkStatusVLineUnknown() throws Exception {
+this.defaultNetworkStatusBuilder.insertBeforeLineStartingWith("w ",
+Arrays.asList("v Tor 0.2.7.6"));
+this.runTest();
+assertTrue("Should not have sanitized status with v line which is unknown "
++ "in this descriptor type.", this.parsedNetworkStatuses.isEmpty());
+  }
+
+  @Test
   public void testNetworkStatusFromBifroest() throws Exception {
 this.defaultTarballBuilder.setTarballFileName(
 this.defaultTarballBuilder.getTarballFileName()



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/master] Actually check that ed25519 identities match.

2016-09-30 Thread karsten
commit f4716c257cae3ed5486aa3dbba46a6388da436a2
Author: Karsten Loesing 
Date:   Wed Sep 28 19:58:20 2016 +0200

Actually check that ed25519 identities match.
---
 .../bridgedescs/SanitizedBridgesWriter.java|  5 +++
 .../bridgedescs/SanitizedBridgesWriterTest.java| 39 ++
 2 files changed, 44 insertions(+)

diff --git 
a/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
 
b/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
index d93cd90..e09691c 100644
--- 
a/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
+++ 
b/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
@@ -816,6 +816,11 @@ public class SanitizedBridgesWriter extends CollecTorMain {
   masterKeyEd25519FromIdentityEd25519 =
   this.parseMasterKeyEd25519FromIdentityEd25519(
   sb.toString());
+  if (masterKeyEd25519FromIdentityEd25519 == null) {
+logger.warn("Could not parse master-key-ed25519 from "
++ "identity-ed25519.  Skipping descriptor.");
+return;
+  }
   String sha256MasterKeyEd25519 = Base64.encodeBase64String(
   DigestUtils.sha256(Base64.decodeBase64(
   masterKeyEd25519FromIdentityEd25519 + "=")))
diff --git 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
index e248b10..c158d1a 100644
--- 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
+++ 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
@@ -379,6 +379,45 @@ public class SanitizedBridgesWriterTest {
   }
 
   @Test
+  public void testServerDescriptorEd25519IdentityA() throws Exception {
+this.defaultServerDescriptorBuilder.replaceLineStartingWith(
+"identity-ed25519", Arrays.asList("identity-ed25519",
+"-BEGIN ED25519 CERT-",
+"",
+"",
+"AAA=",
+"-END ED25519 CERT-"));
+this.runTest();
+assertTrue("Ed25519 identity all A's conflicts with master key?",
+this.parsedServerDescriptors.isEmpty());
+  }
+
+  @Test
+  public void testServerDescriptorEd25519IdentityEToF() throws Exception {
+String change9sTo6s =
+"ZEXE7RkiEJ1l5Ij9hc9TJOpM7/9XSPZnF/PbMfE0u3n3JbOO3s82GN6BPuA0v2Cs";
+this.defaultServerDescriptorBuilder.replaceLineStartingWith(change9sTo6s,
+Arrays.asList(change9sTo6s.replaceAll("9", "6")));
+this.runTest();
+assertTrue("Mismatch between identity and master key.",
+this.parsedServerDescriptors.isEmpty());
+  }
+
+  @Test
+  public void testServerDescriptorEd25519IdentitySlash() throws Exception {
+this.defaultServerDescriptorBuilder.replaceLineStartingWith(
+"identity-ed25519", Arrays.asList("identity-ed25519",
+"-BEGIN ED25519 CERT-",
+"",
+"",
+"///=",
+"-END ED25519 CERT-"));
+this.runTest();
+assertTrue("Ed25519 identity all slashes conflicts with master key.",
+this.parsedServerDescriptors.isEmpty());
+  }
+
+  @Test
   public void testServerDescriptorFamilyInvalidFingerprint()
   throws Exception {
 this.defaultServerDescriptorBuilder.insertBeforeLineStartingWith(



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/master] Added tests to point out areas for improvements with next refactoring.

2016-09-30 Thread karsten
commit 21645084203ae74da9a57305d6cf01bf25c07a0c
Author: iwakeh 
Date:   Fri Sep 30 11:56:35 2016 +0200

Added tests to point out areas for improvements with next refactoring.
Improved coverage a little as aside-effect.
---
 .../bridgedescs/BridgeDescriptorParserTest.java| 48 ++
 1 file changed, 48 insertions(+)

diff --git 
a/src/test/java/org/torproject/collector/bridgedescs/BridgeDescriptorParserTest.java
 
b/src/test/java/org/torproject/collector/bridgedescs/BridgeDescriptorParserTest.java
new file mode 100644
index 000..e89f512
--- /dev/null
+++ 
b/src/test/java/org/torproject/collector/bridgedescs/BridgeDescriptorParserTest.java
@@ -0,0 +1,48 @@
+/* Copyright 2016 The Tor Project
+ * See LICENSE for licensing information */
+
+package org.torproject.collector.bridgedescs;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import org.torproject.collector.conf.Configuration;
+
+import org.junit.Test;
+
+public class BridgeDescriptorParserTest {
+
+  @Test(expected = IllegalArgumentException.class)
+  public void testNullArgForConstructor() throws Exception {
+new BridgeDescriptorParser(null);
+  }
+
+  @Test(expected = NullPointerException.class)
+  public void testNullData() throws Exception {
+BridgeDescriptorParser bdp = new BridgeDescriptorParser(
+new SanitizedBridgesWriter(new Configuration()));
+bdp.parse(null, "", "");
+  }
+
+  @Test
+  /* Empty data is not passed down to the sanitized writer.
+   * This test passes when there is no exception. */
+  public void testDataEmpty() throws Exception {
+BridgeDescriptorParser bdp = new BridgeDescriptorParser(
+new SanitizedBridgesWriter(new Configuration()));
+bdp.parse(new byte[]{}, null, null);
+  }
+
+  @Test(expected = NullPointerException.class)
+  /* The SanitizedBridgesWriter wasn't initialized sufficiently.
+   * Actually that should be corrected in SanitizedBridgesWriter
+   * at some point, but that's a bigger rewrite. */
+  public void testMinimalData() throws Exception {
+BridgeDescriptorParser bdp = new BridgeDescriptorParser(
+new SanitizedBridgesWriter(new Configuration()));
+bdp.parse(new byte[]{0}, "2010-10-10 10:10:10", null);
+  }
+
+}



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/master] Validate base64 input more carefully before parsing.

2016-09-30 Thread karsten
commit a66e7d350d54bc1f769f42444f914955781bcc37
Author: Karsten Loesing 
Date:   Wed Sep 28 17:06:51 2016 +0200

Validate base64 input more carefully before parsing.
---
 .../bridgedescs/SanitizedBridgesWriter.java| 10 ++
 .../bridgedescs/SanitizedBridgesWriterTest.java| 23 ++
 2 files changed, 33 insertions(+)

diff --git 
a/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
 
b/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
index abec743..d93cd90 100644
--- 
a/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
+++ 
b/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
@@ -479,6 +479,11 @@ public class SanitizedBridgesWriter extends CollecTorMain {
 + "status.  Skipping descriptor.");
 return;
   }
+  if (!Base64.isBase64(parts[2])) {
+logger.warn("Illegal base64 character in r line '" + parts[2]
++ "'.  Skipping descriptor.");
+return;
+  }
   fingerprintBytes = Base64.decodeBase64(parts[2] + "==");
   descPublicationTime = parts[4] + " " + parts[5];
   String address = parts[6];
@@ -776,6 +781,11 @@ public class SanitizedBridgesWriter extends CollecTorMain {
   scrubbed.append("extra-info-digest " + DigestUtils.shaHex(
   Hex.decodeHex(parts[1].toCharArray())).toUpperCase());
   if (parts.length > 2) {
+if (!Base64.isBase64(parts[2])) {
+  logger.warn("Illegal base64 character in extra-info-digest line 
'"
+  + line + "'.  Skipping descriptor.");
+  return;
+}
 scrubbed.append(" " + Base64.encodeBase64String(
 DigestUtils.sha256(Base64.decodeBase64(parts[2])))
 .replaceAll("=", ""));
diff --git 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
index 9f3857f..e248b10 100644
--- 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
+++ 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
@@ -301,6 +301,18 @@ public class SanitizedBridgesWriterTest {
   }
 
   @Test
+  public void testServerDescriptorExtraInfoDigestInvalidBase64()
+  throws Exception {
+this.defaultServerDescriptorBuilder.replaceLineStartingWith(
+"extra-info-digest ", Arrays.asList("extra-info-digest "
++ "6D03E80568DEFA102968D144CB35FFA6E3355B8A "
++ "#*?$%§@nxukmmcT1+UnDg4qh0yKbjVUYKhGL8VksoJA"));
+this.runTest();
+assertTrue("Invalid base64 in server descriptor accepted.",
+this.parsedServerDescriptors.isEmpty());
+  }
+
+  @Test
   public void testServerDescriptorExtraInfoDigestSha1Only()
   throws Exception {
 this.defaultServerDescriptorBuilder.replaceLineStartingWith(
@@ -497,6 +509,17 @@ public class SanitizedBridgesWriterTest {
   }
 
   @Test
+  public void testNetworkStatusRlineInvalidBase64() throws Exception {
+this.defaultNetworkStatusBuilder.replaceLineStartingWith("r ",
+Arrays.asList("r MeekGoogle R#SnE*e4+lFag:xr_XxSL+J;ZVs "
++ "g+M7'w+lG$mv6NW9(R0Y 2016-06-30 21:43:52 "
++ "198.50.200.131 8008 0"));
+this.runTest();
+assertTrue("Should not have accepted invalid base64.",
+this.parsedNetworkStatuses.isEmpty());
+  }
+
+  @Test
   public void testNetworkStatusAlinePortMissing() throws Exception {
 this.configuration.setProperty(Key.ReplaceIpAddressesWithHashes.name(),
 "true");



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/master] Add change log entries for bridgedescs changes.

2016-09-30 Thread karsten
commit 32459655cd380b9aafa71f47d4e190933f724559
Author: Karsten Loesing 
Date:   Fri Sep 30 15:48:16 2016 +0200

Add change log entries for bridgedescs changes.
---
 CHANGELOG.md | 4 
 1 file changed, 4 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0121558..a75a1fd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,10 +12,14 @@
  bridge-extra-infos--MM.tar.xz.
- Keep "proto" lines in bridge server descriptors as introduced in
  proposal 264.
+   - Add tests for the bridgedescs module.
+   - Validate bridge tarballs from the bridge authority more
+ rigorously.
 
  * Minor changes
- Remove quotes around base URL in index.json.
- Change default log thresholds from TRACE to INFO.
+   - Extend checkstyle to also check test sources.
 
 
 # Changes in version 1.0.1 - 2016-08-22

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/master] Extend checkstyle to test sources.

2016-09-30 Thread karsten
commit fff9443dfa7f55caff67f6a327e723b04ca0eaf1
Author: Karsten Loesing 
Date:   Fri Sep 30 15:07:53 2016 +0200

Extend checkstyle to test sources.

Also fix MainTest.waitSec() by not oversleeping in case of an
interruption.
---
 build.xml  |  2 ++
 .../java/org/torproject/collector/MainTest.java| 26 +-
 .../collector/conf/ConfigurationTest.java  | 20 +
 .../java/org/torproject/collector/cron/Broken.java |  4 ++--
 .../collector/cron/CollecTorMainTest.java  |  1 +
 .../org/torproject/collector/cron/Counter.java |  4 ++--
 .../java/org/torproject/collector/cron/Dummy.java  |  4 ++--
 .../torproject/collector/cron/SchedulerTest.java   | 19 
 8 files changed, 46 insertions(+), 34 deletions(-)

diff --git a/build.xml b/build.xml
index ffbeb31..83f2907 100644
--- a/build.xml
+++ b/build.xml
@@ -229,6 +229,8 @@
   
   
 
+  
   
   
diff --git a/src/test/java/org/torproject/collector/MainTest.java 
b/src/test/java/org/torproject/collector/MainTest.java
index f65d2fa..ebc2021 100644
--- a/src/test/java/org/torproject/collector/MainTest.java
+++ b/src/test/java/org/torproject/collector/MainTest.java
@@ -1,5 +1,6 @@
 /* Copyright 2016 The Tor Project
  * See LICENSE for licensing information */
+
 package org.torproject.collector;
 
 import static org.junit.Assert.assertEquals;
@@ -103,29 +104,34 @@ public class MainTest {
 waitSec(2);
   }
 
+  /** Wait for the given number of seconds. */
   public static void waitSec(int sec) {
-long now = System.currentTimeMillis();
-while (System.currentTimeMillis() - now < 1_000L * sec) {
+long start = System.currentTimeMillis();
+long toWait = 1_000L * sec;
+do {
   try {
-Thread.sleep(sec * 1_000L);
-  } catch (Exception e) {/* ignored */}
-}
+Thread.sleep(toWait);
+  } catch (InterruptedException e) {
+/* Ignore the interruption, but possibly resume sleeping if we didn't
+ * sleep long enough. */
+  }
+} while ((toWait = start + 1_000L * sec - System.currentTimeMillis()) > 0);
   }
 
-  private void changeFilePathsAndSetActivation(File f, String a)
+  private void changeFilePathsAndSetActivation(File file, String activation)
   throws Exception {
-List lines = Files.readAllLines(f.toPath());
-BufferedWriter bw = Files.newBufferedWriter(f.toPath());
+List lines = Files.readAllLines(file.toPath());
+BufferedWriter bw = Files.newBufferedWriter(file.toPath());
 File in = tmpf.newFolder();
 File out = tmpf.newFolder();
 String inStr = "in/";
 String outStr = "out/";
-for(String line : lines) {
+for (String line : lines) {
   if (line.contains(inStr)) {
 line = line.replace(inStr, in.toString() + inStr);
   } else if (line.contains(outStr)) {
 line = line.replace(outStr, out.toString() + outStr);
-  } else if (line.contains(a)) {
+  } else if (line.contains(activation)) {
 line = line.replace("false", "true");
   }
   bw.write(line);
diff --git a/src/test/java/org/torproject/collector/conf/ConfigurationTest.java 
b/src/test/java/org/torproject/collector/conf/ConfigurationTest.java
index fda9601..fdba6b5 100644
--- a/src/test/java/org/torproject/collector/conf/ConfigurationTest.java
+++ b/src/test/java/org/torproject/collector/conf/ConfigurationTest.java
@@ -1,5 +1,6 @@
 /* Copyright 2016 The Tor Project
  * See LICENSE for licensing information */
+
 package org.torproject.collector.conf;
 
 import static org.junit.Assert.assertArrayEquals;
@@ -56,7 +57,7 @@ public class ConfigurationTest {
   @Test()
   public void testArrayValues() throws Exception {
 String[] array = new String[randomSource.nextInt(30) + 1];
-for (int i = 0; i < array.length; i++){
+for (int i = 0; i < array.length; i++) {
   array[i] = Integer.toBinaryString(randomSource.nextInt(100));
 }
 String[] arrays = new String[] {
@@ -65,7 +66,7 @@ public class ConfigurationTest {
   .replaceAll(" ", "")
 };
 Configuration conf = new Configuration();
-for(String input : arrays) {
+for (String input : arrays) {
   conf.clear();
   conf.setProperty(Key.CachedRelayDescriptorsDirectories.name(), input);
   assertArrayEquals("expected " + Arrays.toString(array) + "\nreceived: "
@@ -92,19 +93,20 @@ public class ConfigurationTest {
 conf.setProperty(Key.BridgeDescriptorMappingsLimit.name(), "inf");
 assertEquals(Integer.MAX_VALUE,
 conf.getInt(Key.BridgeDescriptorMappingsLimit));
-int r = randomSource.nextInt(Integer.MAX_VALUE);
+int randomInt = randomSource.nextInt(Integer.MAX_VALUE);
 conf.clear();
 conf.load(new ByteArrayInputStream(
-propLine(Key.BridgeDescriptorMappingsLimit, "" + r).getBytes()));
-assertEquals(r,
+propLine(Key.BridgeDescriptorMappingsLimit,
+"" 

[tor-commits] [collector/master] Adapted cobertura-check to the new coverage rates.

2016-09-30 Thread karsten
commit 7ea23e7e52f31aa68f1afe0b2699b72d4e676170
Author: iwakeh 
Date:   Fri Sep 30 12:13:24 2016 +0200

Adapted cobertura-check to the new coverage rates.
---
 build.xml | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/build.xml b/build.xml
index 11d1f92..ffbeb31 100644
--- a/build.xml
+++ b/build.xml
@@ -280,11 +280,13 @@
 
   
 
-
+
+  
   
   
+ branchrate="66" linerate="72" />
   
 



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/master] Validate extra-info-digest lines more carefully.

2016-09-30 Thread karsten
commit f0bc9b2aa74584f23c0e9f4fb0045e27036be200
Author: Karsten Loesing 
Date:   Wed Sep 28 16:17:24 2016 +0200

Validate extra-info-digest lines more carefully.
---
 .../collector/bridgedescs/SanitizedBridgesWriter.java|  5 +
 .../collector/bridgedescs/SanitizedBridgesWriterTest.java| 12 
 2 files changed, 17 insertions(+)

diff --git 
a/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
 
b/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
index f45011f..ac3e39f 100644
--- 
a/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
+++ 
b/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
@@ -768,6 +768,11 @@ public class SanitizedBridgesWriter extends CollecTorMain {
 scrubbed.append("opt ");
 parts = line.substring(4).split(" ");
   }
+  if (parts.length > 3) {
+logger.warn("extra-info-digest line contains more arguments than"
++ "expected: '" + line + "'.  Skipping descriptor.");
+return;
+  }
   scrubbed.append("extra-info-digest " + DigestUtils.shaHex(
   Hex.decodeHex(parts[1].toCharArray())).toUpperCase());
   if (parts.length > 2) {
diff --git 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
index 5bcbd0a..8634eae 100644
--- 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
+++ 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
@@ -313,6 +313,18 @@ public class SanitizedBridgesWriterTest {
   }
 
   @Test
+  public void testServerDescriptorExtraInfoDigestThirdArgument()
+  throws Exception {
+this.defaultServerDescriptorBuilder.replaceLineStartingWith(
+"extra-info-digest ", Arrays.asList("extra-info-digest "
++ "6D03E80568DEFA102968D144CB35FFA6E3355B8A "
++ "cy/LwP7nxukmmcT1+UnDg4qh0yKbjVUYKhGL8VksoJA 00"));
+this.runTest();
+assertTrue("Third argument to extra-info-digest line should not be "
++ "dropped silently.", this.parsedServerDescriptors.isEmpty());
+  }
+
+  @Test
   public void testServerDescriptorExtraInfoDigestOpt() throws Exception {
 this.defaultServerDescriptorBuilder.replaceLineStartingWith(
 "extra-info-digest ", Arrays.asList("opt extra-info-digest "



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/master] Fix double assignment found by FindBugs.

2016-09-30 Thread karsten
commit 4f556ca13eb0bcdf881e55e75ab24ec0c99eb39e
Author: Karsten Loesing 
Date:   Wed Sep 28 20:17:12 2016 +0200

Fix double assignment found by FindBugs.
---
 .../org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java   | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git 
a/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
 
b/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
index e09691c..78e32b6 100644
--- 
a/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
+++ 
b/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
@@ -757,8 +757,7 @@ public class SanitizedBridgesWriter extends CollecTorMain {
   scrubbedDesc = scrubbedRouterLine;
   if (scrubbedOrAddresses != null) {
 for (String scrubbedOrAddress : scrubbedOrAddresses) {
-  scrubbedDesc = scrubbedDesc += "or-address "
-  + scrubbedOrAddress + "\n";
+  scrubbedDesc += "or-address " + scrubbedOrAddress + "\n";
 }
   }
   scrubbedDesc += scrubbed.toString();



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/master] Add argument check to constructor and removed redundant code.

2016-09-30 Thread karsten
commit afc2eac755c68c3f403347c46d13eecb403df10e
Author: iwakeh 
Date:   Fri Sep 30 11:55:01 2016 +0200

Add argument check to constructor and removed redundant code.
---
 .../bridgedescs/BridgeDescriptorParser.java| 23 +++---
 1 file changed, 11 insertions(+), 12 deletions(-)

diff --git 
a/src/main/java/org/torproject/collector/bridgedescs/BridgeDescriptorParser.java
 
b/src/main/java/org/torproject/collector/bridgedescs/BridgeDescriptorParser.java
index d40052e..64b1ebd 100644
--- 
a/src/main/java/org/torproject/collector/bridgedescs/BridgeDescriptorParser.java
+++ 
b/src/main/java/org/torproject/collector/bridgedescs/BridgeDescriptorParser.java
@@ -22,6 +22,10 @@ public class BridgeDescriptorParser {
   /** Initializes a new bridge descriptor parser and links it to a
* sanitized bridges writer to sanitize and store bridge descriptors. */
   public BridgeDescriptorParser(SanitizedBridgesWriter sbw) {
+if (null == sbw) {
+  throw new IllegalArgumentException("SanitizedBridgesWriter has to be "
+  + "provided, but was null.");
+}
 this.sbw = sbw;
   }
 
@@ -35,22 +39,17 @@ public class BridgeDescriptorParser {
   String line = br.readLine();
   if (line == null) {
 return;
-  } else if (line.startsWith("router ")) {
-if (this.sbw != null) {
-  this.sbw.sanitizeAndStoreServerDescriptor(allData);
-}
+  }
+  if (line.startsWith("router ")) {
+this.sbw.sanitizeAndStoreServerDescriptor(allData);
   } else if (line.startsWith("extra-info ")) {
-if (this.sbw != null) {
-  this.sbw.sanitizeAndStoreExtraInfoDescriptor(allData);
-}
+this.sbw.sanitizeAndStoreExtraInfoDescriptor(allData);
   } else {
-if (this.sbw != null) {
-  this.sbw.sanitizeAndStoreNetworkStatus(allData, dateTime,
-  authorityFingerprint);
-}
+this.sbw.sanitizeAndStoreNetworkStatus(allData, dateTime,
+authorityFingerprint);
   }
 } catch (IOException e) {
-  logger.warn("Could not parse bridge descriptor.", e);
+  logger.warn("Could not parse or write bridge descriptor.", e);
   return;
 }
   }



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/master] Add tests for sanitizing TCP ports.

2016-09-30 Thread karsten
commit 01d55ee96a967267250914763c09b2d0d4f67e6a
Author: Karsten Loesing 
Date:   Wed Sep 28 20:44:46 2016 +0200

Add tests for sanitizing TCP ports.
---
 .../bridgedescs/SanitizedBridgesWriterTest.java| 28 --
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
index 4191904..6ac6eec 100644
--- 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
+++ 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
@@ -231,25 +231,29 @@ public class SanitizedBridgesWriterTest {
   }
 
   @Test
-  public void testServerDescriptorHashedIp() throws Exception {
+  public void testServerDescriptorHashedIpAndTcp() throws Exception {
 this.configuration.setProperty(Key.ReplaceIpAddressesWithHashes.name(),
 "true");
 this.configuration.setProperty(Key.BridgeDescriptorMappingsLimit.name(),
 "3");
 this.defaultServerDescriptorBuilder.insertBeforeLineStartingWith(
 "platform ", Arrays.asList("or-address [2:5:2:5:2:5:2:5]:25"));
+File bridgeIpSecretsFile = new File(statsDirectory, "bridge-ip-secrets");
+BufferedWriter writer = new BufferedWriter(new FileWriter(
+bridgeIpSecretsFile));
+
writer.write("2016-06,8ad0d1410d64256bdaa3977427f6db012c5809082a464c658d651"
++ 
"304e25654902ed0df551c8eed19913ab7aaf6243cb3adc0f4a4b93ee77991b8c572e"
++ "a25ca2ea5cd311dabe2f8b72243837ec88bcb0c758657\n");
+writer.close();
 this.runTest();
-int foundLinesContainingHashedIps = 0;
-for (String line : this.parsedServerDescriptors.get(0)) {
-  if (line.startsWith("router MeekGoogle 10.")
-  && line.endsWith(" 0 0")) {
-foundLinesContainingHashedIps++;
-  } else if (line.startsWith("or-address [fd9f:2e19:3bcf::")) {
-foundLinesContainingHashedIps++;
-  }
-}
-assertEquals("Expected 2 lines containing hashed IP addresses and TCP "
-+ "ports.", 2, foundLinesContainingHashedIps);
+assertFalse("Server descriptor not sanitized.",
+this.parsedServerDescriptors.isEmpty());
+assertTrue("IPv4 address and/or TCP port not sanitized as expected.",
+this.parsedServerDescriptors.get(0).contains(
+"router MeekGoogle 10.51.223.72 56172 0 0"));
+assertTrue("IPv6 address and/or TCP port not sanitized as expected.",
+this.parsedServerDescriptors.get(0).contains(
+"or-address [fd9f:2e19:3bcf::0c:b8a6]:59690"));
   }
 
   @Test



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/master] Added the ShutdownGraceWaitMinutes property to RunOnce test for branch

2016-09-30 Thread karsten
commit c6e58d9c544b79f60e2efeecce8733cd2be46ba9
Author: iwakeh 
Date:   Fri Sep 30 11:52:38 2016 +0200

Added the ShutdownGraceWaitMinutes property to RunOnce test for branch
diversity in testing.
---
 src/test/java/org/torproject/collector/cron/SchedulerTest.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/test/java/org/torproject/collector/cron/SchedulerTest.java 
b/src/test/java/org/torproject/collector/cron/SchedulerTest.java
index cec182a..eba05ce 100644
--- a/src/test/java/org/torproject/collector/cron/SchedulerTest.java
+++ b/src/test/java/org/torproject/collector/cron/SchedulerTest.java
@@ -65,7 +65,8 @@ public class SchedulerTest {
   public void testRunOnce() throws Exception {
 Map ctms = new HashMap<>();
 Configuration conf = new Configuration();
-conf.load(new ByteArrayInputStream(runConfigProperties.getBytes()));
+conf.load(new ByteArrayInputStream(("ShutdownGraceWaitMinutes=1\n"
++ runConfigProperties).getBytes()));
 conf.setProperty(Key.RunOnce.name(), "true");
 ctms.put(Key.TorperfActivated, Counter.class);
 ctms.put(Key.BridgedescsActivated, Counter.class);



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/master] Added runTest() and assert stmt to testTarballContainsSameFileTwice.

2016-09-30 Thread karsten
commit 813edcdb7df8de97a11e6ff9bb0eb7ad267532bf
Author: iwakeh 
Date:   Fri Sep 30 12:05:39 2016 +0200

Added runTest() and assert stmt to testTarballContainsSameFileTwice.
Switched to use of java.nio.file package methods.
Make DescriptorBuilder extend ArrayList saves a few characters throughout
the builders.
---
 .../collector/bridgedescs/DescriptorBuilder.java   |  33 +++---
 .../bridgedescs/ExtraInfoDescriptorBuilder.java|   2 +-
 .../bridgedescs/NetworkStatusBuilder.java  |   2 +-
 .../bridgedescs/SanitizedBridgesWriterTest.java| 126 ++---
 .../bridgedescs/ServerDescriptorBuilder.java   |   2 +-
 5 files changed, 74 insertions(+), 91 deletions(-)

diff --git 
a/src/test/java/org/torproject/collector/bridgedescs/DescriptorBuilder.java 
b/src/test/java/org/torproject/collector/bridgedescs/DescriptorBuilder.java
index bab8126..fa7433c 100644
--- a/src/test/java/org/torproject/collector/bridgedescs/DescriptorBuilder.java
+++ b/src/test/java/org/torproject/collector/bridgedescs/DescriptorBuilder.java
@@ -8,32 +8,25 @@ import static org.junit.Assert.fail;
 
 import java.io.IOException;
 import java.io.OutputStream;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
 /** Builds a descriptor by concatenating the given lines with newlines and
  * writing the output to the given output stream. */
-abstract class DescriptorBuilder {
-
-  /** Descriptor lines. */
-  List lines;
-
-  /** Removes all lines. */
-  void removeAllLines() {
-this.lines.clear();
-  }
+abstract class DescriptorBuilder extends ArrayList {
 
   /** Removes the given line, or fails if that line cannot be found. */
   void removeLine(String line) {
-if (!this.lines.remove(line)) {
+if (!this.remove(line)) {
   fail("Line not contained: " + line);
 }
   }
 
   /** Removes all but the given line, or fails if that line cannot be found. */
   void removeAllExcept(String line) {
-assertTrue("Line not contained: " + line, this.lines.contains(line));
-this.lines.retainAll(Arrays.asList(line));
+assertTrue("Line not contained: " + line, this.contains(line));
+this.retainAll(Arrays.asList(line));
   }
 
   /** Finds the first line that starts with the given line start and inserts 
the
@@ -41,9 +34,9 @@ abstract class DescriptorBuilder {
* start. */
   void insertBeforeLineStartingWith(String lineStart,
   List linesToInsert) {
-for (int i = 0; i < this.lines.size(); i++) {
-  if (this.lines.get(i).startsWith(lineStart)) {
-this.lines.addAll(i, linesToInsert);
+for (int i = 0; i < this.size(); i++) {
+  if (this.get(i).startsWith(lineStart)) {
+this.addAll(i, linesToInsert);
 return;
   }
 }
@@ -54,12 +47,12 @@ abstract class DescriptorBuilder {
* that line and possibly subsequent lines, or fails if no line can be found
* with that line start or there are not enough lines left to replace. */
   void replaceLineStartingWith(String lineStart, List linesToReplace) {
-for (int i = 0; i < this.lines.size(); i++) {
-  if (this.lines.get(i).startsWith(lineStart)) {
+for (int i = 0; i < this.size(); i++) {
+  if (this.get(i).startsWith(lineStart)) {
 for (int j = 0; j < linesToReplace.size(); j++) {
   assertTrue("Not enough lines left to replace.",
-  this.lines.size() > i + j);
-  this.lines.set(i + j, linesToReplace.get(j));
+  this.size() > i + j);
+  this.set(i + j, linesToReplace.get(j));
 }
 return;
   }
@@ -69,7 +62,7 @@ abstract class DescriptorBuilder {
 
   /** Writes all descriptor lines with newlines to the given output stream. */
   void build(OutputStream outputStream) throws IOException {
-for (String line : lines) {
+for (String line : this) {
   outputStream.write((line + "\n").getBytes());
 }
   }
diff --git 
a/src/test/java/org/torproject/collector/bridgedescs/ExtraInfoDescriptorBuilder.java
 
b/src/test/java/org/torproject/collector/bridgedescs/ExtraInfoDescriptorBuilder.java
index a6ffa53..85fd836 100644
--- 
a/src/test/java/org/torproject/collector/bridgedescs/ExtraInfoDescriptorBuilder.java
+++ 
b/src/test/java/org/torproject/collector/bridgedescs/ExtraInfoDescriptorBuilder.java
@@ -13,7 +13,7 @@ class ExtraInfoDescriptorBuilder extends DescriptorBuilder {
 
   /** Initializes the descriptor builder. */
   ExtraInfoDescriptorBuilder() {
-this.lines = new ArrayList<>(Arrays.asList(
+this.addAll(Arrays.asList(
 "extra-info MeekGoogle "
 + "46D4A71197B8FA515A826C6B017C522FE264655B",
 "identity-ed25519",
diff --git 
a/src/test/java/org/torproject/collector/bridgedescs/NetworkStatusBuilder.java 
b/src/test/java/org/torproject/collector/bridgedescs/NetworkStatusBuilder.java
index 20088a4..aecc64a 100644
--- 
a/src/test/java/org/torproject/collector/bridgedescs/NetworkStatusBuilder.java
+++ 

[tor-commits] [collector/master] Add tests for transport and transport-info lines.

2016-09-30 Thread karsten
commit bcaed1a44345f02300e3727cac734fcfd05f1cea
Author: Karsten Loesing 
Date:   Wed Sep 28 21:15:15 2016 +0200

Add tests for transport and transport-info lines.
---
 .../bridgedescs/SanitizedBridgesWriterTest.java  | 20 
 1 file changed, 20 insertions(+)

diff --git 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
index 424de8e..3548345 100644
--- 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
+++ 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
@@ -497,6 +497,26 @@ public class SanitizedBridgesWriterTest {
   }
 
   @Test
+  public void testExtraInfoDescriptorTransportSpace() throws Exception {
+this.defaultExtraInfoDescriptorBuilder.replaceLineStartingWith(
+"transport ", Arrays.asList("transport "));
+this.runTest();
+assertTrue("Sanitized extra-info descriptor with invalid transport "
++ "line.", this.parsedExtraInfoDescriptors.isEmpty());
+  }
+
+  @Test
+  public void testExtraInfoDescriptorTransportInfoRemoved() throws Exception {
+this.defaultExtraInfoDescriptorBuilder.insertBeforeLineStartingWith(
+"bridge-stats-end ", Arrays.asList("transport-info secretkey"));
+this.runTest();
+for (String line : this.parsedExtraInfoDescriptors.get(0)) {
+  assertFalse("transport-info line should not have been retained.",
+  line.startsWith("transport-info "));
+}
+  }
+
+  @Test
   public void testExtraInfoDescriptorRouterSignatureLineSpace()
   throws Exception {
 this.defaultExtraInfoDescriptorBuilder.replaceLineStartingWith(



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/master] Add tests for sanitizing IP addresses and TCP ports.

2016-09-30 Thread karsten
commit 125d1c065fce5f39107d6bd022444113212582c2
Author: Karsten Loesing 
Date:   Wed Sep 28 16:04:20 2016 +0200

Add tests for sanitizing IP addresses and TCP ports.
---
 .../bridgedescs/SanitizedBridgesWriterTest.java| 105 +
 1 file changed, 105 insertions(+)

diff --git 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
index 3533faf..5bcbd0a 100644
--- 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
+++ 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
@@ -4,6 +4,7 @@
 package org.torproject.collector.bridgedescs;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
@@ -230,6 +231,28 @@ public class SanitizedBridgesWriterTest {
   }
 
   @Test
+  public void testServerDescriptorHashedIp() throws Exception {
+this.configuration.setProperty(Key.ReplaceIpAddressesWithHashes.name(),
+"true");
+this.configuration.setProperty(Key.BridgeDescriptorMappingsLimit.name(),
+"3");
+this.defaultServerDescriptorBuilder.insertBeforeLineStartingWith(
+"platform ", Arrays.asList("or-address [2:5:2:5:2:5:2:5]:25"));
+this.runTest();
+int foundLinesContainingHashedIps = 0;
+for (String line : this.parsedServerDescriptors.get(0)) {
+  if (line.startsWith("router MeekGoogle 10.")
+  && line.endsWith(" 0 0")) {
+foundLinesContainingHashedIps++;
+  } else if (line.startsWith("or-address [fd9f:2e19:3bcf::")) {
+foundLinesContainingHashedIps++;
+  }
+}
+assertEquals("Expected 2 lines containing hashed IP addresses and TCP "
++ "ports.", 2, foundLinesContainingHashedIps);
+  }
+
+  @Test
   public void testServerDescriptorRouterLineTruncated() throws Exception {
 this.defaultServerDescriptorBuilder.replaceLineStartingWith("router ",
 Arrays.asList("router MeekGoogle"));
@@ -551,5 +574,87 @@ public class SanitizedBridgesWriterTest {
 assertTrue("Continued despite not being able to read "
 + "parsed-bridge-directories.", this.parsedFiles.isEmpty());
   }
+
+  @Test
+  public void testBridgeIpSecretsWritten() throws Exception {
+this.configuration.setProperty(Key.ReplaceIpAddressesWithHashes.name(),
+"true");
+this.configuration.setProperty(Key.BridgeDescriptorMappingsLimit.name(),
+"3");
+this.runTest();
+File bridgeIpSecretsFile = new File(statsDirectory,
+"bridge-ip-secrets");
+BufferedReader reader = new BufferedReader(new FileReader(
+bridgeIpSecretsFile));
+String line;
+while ((line = reader.readLine()) != null) {
+  assertTrue("Secrets line should start with month 2016-06.",
+  line.startsWith("2016-06,"));
+  assertEquals("Secrets line should have 7 + 1 + 166 = 174 chars.",
+  174, line.length());
+}
+reader.close();
+  }
+
+  @Test
+  public void testBridgeIpSecretsRead() throws Exception {
+File bridgeIpSecretsFile = new File(statsDirectory,
+"bridge-ip-secrets");
+BufferedWriter writer = new BufferedWriter(new FileWriter(
+bridgeIpSecretsFile));
+String secretLine = 
"2016-06,8ad0d1410d64256bdaa3977427f6db012c5809082a464c"
++ 
"658d651304e25654902ed0df551c8eed19913ab7aaf6243cb3adc0f4a4b93ee77991"
++ "b8c572ea25ca2ea5cd311dabe2f8b72243837ec88bcb0c758657";
+writer.write(secretLine + "\n");
+writer.close();
+this.configuration.setProperty(Key.ReplaceIpAddressesWithHashes.name(),
+"true");
+this.configuration.setProperty(Key.BridgeDescriptorMappingsLimit.name(),
+"3");
+this.runTest();
+assertEquals("Didn't sanitize descriptors.", 3,
+this.parsedFiles.size());
+BufferedReader reader = new BufferedReader(new FileReader(
+bridgeIpSecretsFile));
+String line;
+while ((line = reader.readLine()) != null) {
+  assertEquals("Secrets line was changed.", secretLine, line);
+}
+reader.close();
+  }
+
+  @Test
+  public void testBridgeIpSecretsIsDirectory() throws Exception {
+File bridgeIpSecretsFile = new File(statsDirectory, "bridge-ip-secrets");
+bridgeIpSecretsFile.mkdirs();
+this.runTest();
+assertTrue("Sanitized server descriptors without secrets.",
+this.parsedServerDescriptors.isEmpty());
+assertFalse("Didn't sanitize extra-info descriptors.",
+this.parsedExtraInfoDescriptors.isEmpty());
+assertTrue("Sanitized network statuses without secrets.",
+this.parsedNetworkStatuses.isEmpty());
+  }
+
+  @Test
+  public void testBridgeIpSecretsTruncatedLine() throws Exception {
+this.configuration.setProperty(Key.ReplaceIpAddressesWithHashes.name(),
+"true");
+

[tor-commits] [collector/master] Added binary literals as cobertura only warns, but all the results are

2016-09-30 Thread karsten
commit f3b4636632e8aab7011c4507dfb23d0a654d9bdf
Author: iwakeh 
Date:   Fri Sep 30 11:58:27 2016 +0200

Added binary literals as cobertura only warns, but all the results are
computed correctly.
Rather have more readable code.  Test tools will have to adapt.
---
 .../org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java  | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git 
a/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
 
b/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
index 57307d8..6d82fc6 100644
--- 
a/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
+++ 
b/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
@@ -356,8 +356,8 @@ public class SanitizedBridgesWriter extends CollecTorMain {
   byte[] secret = this.getSecretForMonth(month);
   System.arraycopy(secret, 50, hashInput, 22, 33);
   byte[] hashOutput = DigestUtils.sha256(hashInput);
-  int hashedPort = hashOutput[0] & 0xFF) << 8)
-  | (hashOutput[1] & 0xFF)) >> 2) | 0xC000;
+  int hashedPort = hashOutput[0] & 0b_) << 8)
+  | (hashOutput[1] & 0b_)) >> 2) | 0b1100___;
   return String.valueOf(hashedPort);
 } else {
   return "1";



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/master] Add initial set of tests for bridgedescs module.

2016-09-30 Thread karsten
commit 5da91cae110b4eba1e468250de8e08562562b06d
Author: Karsten Loesing 
Date:   Wed Sep 28 14:56:02 2016 +0200

Add initial set of tests for bridgedescs module.
---
 .../collector/bridgedescs/DescriptorBuilder.java   |  77 +++
 .../bridgedescs/ExtraInfoDescriptorBuilder.java|  55 +++
 .../bridgedescs/NetworkStatusBuilder.java  |  30 ++
 .../bridgedescs/SanitizedBridgesWriterTest.java| 521 +
 .../bridgedescs/ServerDescriptorBuilder.java   |  74 +++
 .../collector/bridgedescs/TarballBuilder.java  | 108 +
 6 files changed, 865 insertions(+)

diff --git 
a/src/test/java/org/torproject/collector/bridgedescs/DescriptorBuilder.java 
b/src/test/java/org/torproject/collector/bridgedescs/DescriptorBuilder.java
new file mode 100644
index 000..bab8126
--- /dev/null
+++ b/src/test/java/org/torproject/collector/bridgedescs/DescriptorBuilder.java
@@ -0,0 +1,77 @@
+/* Copyright 2016 The Tor Project
+ * See LICENSE for licensing information */
+
+package org.torproject.collector.bridgedescs;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Arrays;
+import java.util.List;
+
+/** Builds a descriptor by concatenating the given lines with newlines and
+ * writing the output to the given output stream. */
+abstract class DescriptorBuilder {
+
+  /** Descriptor lines. */
+  List lines;
+
+  /** Removes all lines. */
+  void removeAllLines() {
+this.lines.clear();
+  }
+
+  /** Removes the given line, or fails if that line cannot be found. */
+  void removeLine(String line) {
+if (!this.lines.remove(line)) {
+  fail("Line not contained: " + line);
+}
+  }
+
+  /** Removes all but the given line, or fails if that line cannot be found. */
+  void removeAllExcept(String line) {
+assertTrue("Line not contained: " + line, this.lines.contains(line));
+this.lines.retainAll(Arrays.asList(line));
+  }
+
+  /** Finds the first line that starts with the given line start and inserts 
the
+   * given lines before it, or fails if no line can be found with that line
+   * start. */
+  void insertBeforeLineStartingWith(String lineStart,
+  List linesToInsert) {
+for (int i = 0; i < this.lines.size(); i++) {
+  if (this.lines.get(i).startsWith(lineStart)) {
+this.lines.addAll(i, linesToInsert);
+return;
+  }
+}
+fail("Line start not found: " + lineStart);
+  }
+
+  /** Finds the first line that starts with the given line start and replaces
+   * that line and possibly subsequent lines, or fails if no line can be found
+   * with that line start or there are not enough lines left to replace. */
+  void replaceLineStartingWith(String lineStart, List linesToReplace) {
+for (int i = 0; i < this.lines.size(); i++) {
+  if (this.lines.get(i).startsWith(lineStart)) {
+for (int j = 0; j < linesToReplace.size(); j++) {
+  assertTrue("Not enough lines left to replace.",
+  this.lines.size() > i + j);
+  this.lines.set(i + j, linesToReplace.get(j));
+}
+return;
+  }
+}
+fail("Line start not found: " + lineStart);
+  }
+
+  /** Writes all descriptor lines with newlines to the given output stream. */
+  void build(OutputStream outputStream) throws IOException {
+for (String line : lines) {
+  outputStream.write((line + "\n").getBytes());
+}
+  }
+}
+
diff --git 
a/src/test/java/org/torproject/collector/bridgedescs/ExtraInfoDescriptorBuilder.java
 
b/src/test/java/org/torproject/collector/bridgedescs/ExtraInfoDescriptorBuilder.java
new file mode 100644
index 000..a6ffa53
--- /dev/null
+++ 
b/src/test/java/org/torproject/collector/bridgedescs/ExtraInfoDescriptorBuilder.java
@@ -0,0 +1,55 @@
+/* Copyright 2016 The Tor Project
+ * See LICENSE for licensing information */
+
+package org.torproject.collector.bridgedescs;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
+/** Builds a non-sanitized bridge extra-info descriptor that comes with an
+ * original bridge descriptor (of a bundled and therefore publicly known 
bridge)
+ * by default. */
+class ExtraInfoDescriptorBuilder extends DescriptorBuilder {
+
+  /** Initializes the descriptor builder. */
+  ExtraInfoDescriptorBuilder() {
+this.lines = new ArrayList<>(Arrays.asList(
+"extra-info MeekGoogle "
++ "46D4A71197B8FA515A826C6B017C522FE264655B",
+"identity-ed25519",
+"-BEGIN ED25519 CERT-",
+"AQQABjliAVz1pof1ijauJttRPRlhPc4GKgp7SWOtFsnvSA3ddIsIAQAgBAA6BoYk",
+"ZEXE7RkiEJ1l5Ij9hc9TJOpM7/9XSPZnF/PbMfE0u3n3JbOO3s82GN6BPuA0v2Cs",
+"5eSvciL7+38Ok2eCaMa6vDrXYUSKrN+z9Kz3feL/XDWQy9L9Tkm7bticng0=",
+"-END ED25519 CERT-",
+"published 2016-06-30 21:43:52",
+"write-history 2016-06-30 18:40:48 (14400 s) "
++ "415744,497664,359424,410624,420864,933888",
+

[tor-commits] [collector/master] Add test for new "proto" line.

2016-09-30 Thread karsten
commit 21fdc146947e85638fe98152a4aab64f64dd32e1
Author: Karsten Loesing 
Date:   Wed Sep 28 20:09:36 2016 +0200

Add test for new "proto" line.
---
 .../collector/bridgedescs/SanitizedBridgesWriterTest.java  | 10 ++
 1 file changed, 10 insertions(+)

diff --git 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
index c158d1a..4191904 100644
--- 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
+++ 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
@@ -262,6 +262,16 @@ public class SanitizedBridgesWriterTest {
   }
 
   @Test
+  public void testServerDescriptorProtoLine() throws Exception {
+this.defaultServerDescriptorBuilder.replaceLineStartingWith("protocols ",
+Arrays.asList("proto Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 "
++ "HSRend=1-2 Link=1-4 LinkAuth=1 Microdesc=1-2 Relay=1-2"));
+this.runTest();
+assertFalse("Sanitized server descriptor with valid proto line.",
+this.parsedServerDescriptors.isEmpty());
+  }
+
+  @Test
   public void testServerDescriptorFingerprintTruncated() throws Exception {
 this.defaultServerDescriptorBuilder.replaceLineStartingWith(
 "fingerprint ", Arrays.asList("fingerprint 4"));



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/master] Add tests for Tonga/Bifroest migration.

2016-09-30 Thread karsten
commit 9f15d44712a1cba3d449e2c18aa4b73197c4f813
Author: Karsten Loesing 
Date:   Wed Sep 28 15:47:54 2016 +0200

Add tests for Tonga/Bifroest migration.
---
 .../bridgedescs/SanitizedBridgesWriterTest.java | 21 +
 1 file changed, 21 insertions(+)

diff --git 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
index 7cd6e6e..3533faf 100644
--- 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
+++ 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
@@ -468,6 +468,27 @@ public class SanitizedBridgesWriterTest {
   }
 
   @Test
+  public void testNetworkStatusFromBifroest() throws Exception {
+this.defaultTarballBuilder.setTarballFileName(
+this.defaultTarballBuilder.getTarballFileName()
+.replaceAll("tonga", "bifroest"));
+this.runTest();
+assertTrue("Sanitized status should contain Bifroest's fingerprint.",
+this.parsedFiles.containsKey("2016/06/statuses/30/"
++ "20160630-234028-1D8F3A91C37C5D1C4C19B1AD1D0CFBE8BF72D8E1"));
+  }
+
+  @Test
+  public void testNetworkStatusFromTrifroest() throws Exception {
+this.defaultTarballBuilder.setTarballFileName(
+this.defaultTarballBuilder.getTarballFileName()
+.replaceAll("tonga", "trifroest"));
+this.runTest();
+assertTrue("Should not have recognized unknown bridge authority 
Trifroest.",
+this.parsedNetworkStatuses.isEmpty());
+  }
+
+  @Test
   public void testTarballContainsSameFileTwice() throws Exception {
 this.defaultTarballBuilder.add("cached-extrainfo.new", 1467331623000L,
 Arrays.asList(new DescriptorBuilder[] {



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/master] Fix possible NullPointerException.

2016-09-30 Thread karsten
commit 7af5f1e018269ae5900a0633a6e2f131053f5442
Author: Karsten Loesing 
Date:   Wed Sep 28 15:09:39 2016 +0200

Fix possible NullPointerException.

Spotted while writing tests for the bridgedescs module and also
reported independently as #20044.
---
 .../org/torproject/collector/bridgedescs/BridgeSnapshotReader.java  | 3 +++
 .../collector/bridgedescs/SanitizedBridgesWriterTest.java   | 6 ++
 2 files changed, 9 insertions(+)

diff --git 
a/src/main/java/org/torproject/collector/bridgedescs/BridgeSnapshotReader.java 
b/src/main/java/org/torproject/collector/bridgedescs/BridgeSnapshotReader.java
index 046db7d..683cb1c 100644
--- 
a/src/main/java/org/torproject/collector/bridgedescs/BridgeSnapshotReader.java
+++ 
b/src/main/java/org/torproject/collector/bridgedescs/BridgeSnapshotReader.java
@@ -153,6 +153,9 @@ public class BridgeSnapshotReader {
 break;
   }
 }
+if (firstLine == null) {
+  continue;
+}
 if (firstLine.startsWith("published ")
 || firstLine.startsWith("flag-thresholds ")
 || firstLine.startsWith("r ")) {
diff --git 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
index 0049bb6..8deeebc 100644
--- 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
+++ 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
@@ -214,6 +214,12 @@ public class SanitizedBridgesWriterTest {
   }
 
   @Test
+  public void testServerDescriptorOnlyAnnotation() throws Exception {
+this.defaultServerDescriptorBuilder.removeAllExcept("@purpose bridge");
+this.runTest();
+  }
+
+  @Test
   public void testServerDescriptorAdditionalAnnotation()
   throws Exception {
 this.defaultServerDescriptorBuilder.insertBeforeLineStartingWith(



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [collector/master] Check "r" lines in bridge statuses more carefully.

2016-09-30 Thread karsten
commit 2a02c61e43721cd51329d60ba714ddf0f871d842
Author: Karsten Loesing 
Date:   Wed Sep 28 15:36:24 2016 +0200

Check "r" lines in bridge statuses more carefully.
---
 .../torproject/collector/bridgedescs/SanitizedBridgesWriter.java   | 5 +
 .../collector/bridgedescs/SanitizedBridgesWriterTest.java  | 7 +++
 2 files changed, 12 insertions(+)

diff --git 
a/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
 
b/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
index 997791a..f45011f 100644
--- 
a/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
+++ 
b/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
@@ -474,6 +474,11 @@ public class SanitizedBridgesWriter extends CollecTorMain {
 
   /* Parse the relevant parts of this r line. */
   String[] parts = line.split(" ");
+  if (parts.length < 9) {
+logger.warn("Illegal line '" + line + "' in bridge network "
++ "status.  Skipping descriptor.");
+return;
+  }
   fingerprintBytes = Base64.decodeBase64(parts[2] + "==");
   descPublicationTime = parts[4] + " " + parts[5];
   String address = parts[6];
diff --git 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
index 8deeebc..7cd6e6e 100644
--- 
a/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
+++ 
b/src/test/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriterTest.java
@@ -447,6 +447,13 @@ public class SanitizedBridgesWriterTest {
   }
 
   @Test
+  public void testNetworkStatusRlineTruncated() throws Exception {
+this.defaultNetworkStatusBuilder.replaceLineStartingWith("r ",
+Arrays.asList("r MeekGoogle"));
+this.runTest();
+  }
+
+  @Test
   public void testNetworkStatusAlinePortMissing() throws Exception {
 this.configuration.setProperty(Key.ReplaceIpAddressesWithHashes.name(),
 "true");



___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/bridgedb_completed] Update translations for bridgedb_completed

2016-09-30 Thread translation
commit 5497e2f4181f1f4c4e2fee1099a2bc7289900e0c
Author: Translation commit bot 
Date:   Fri Sep 30 12:45:08 2016 +

Update translations for bridgedb_completed
---
 ru/LC_MESSAGES/bridgedb.po | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/ru/LC_MESSAGES/bridgedb.po b/ru/LC_MESSAGES/bridgedb.po
index b87d88f..c598e65 100644
--- a/ru/LC_MESSAGES/bridgedb.po
+++ b/ru/LC_MESSAGES/bridgedb.po
@@ -15,6 +15,7 @@
 # Sergey Briskin , 2014
 # Valid Olov, 2014
 # vb[fbk , 2015
+# Victor Erukhin , 2016
 # Vitaliy Grishenko, 2014
 # Андрей Костриков , 2016
 msgid ""
@@ -22,8 +23,8 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: 
'https://trac.torproject.org/projects/tor/newticket?component=BridgeDB=bridgedb-reported,msgid=isis,sysrqb=isis'\n"
 "POT-Creation-Date: 2015-07-25 03:40+\n"
-"PO-Revision-Date: 2016-05-02 02:41+\n"
-"Last-Translator: Андрей Костриков \n"
+"PO-Revision-Date: 2016-09-30 12:24+\n"
+"Last-Translator: Victor Erukhin \n"
 "Language-Team: Russian 
(http://www.transifex.com/otf/torproject/language/ru/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -61,7 +62,7 @@ msgstr "Журнал изменений"
 
 #: bridgedb/https/templates/base.html:88
 msgid "Contact"
-msgstr "Tor: Контакты"
+msgstr "Контакты"
 
 #: bridgedb/https/templates/bridges.html:35
 msgid "Select All"

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/bridgedb] Update translations for bridgedb

2016-09-30 Thread translation
commit 62527d1cfd5c7ccd8807c66b00c1f835cebb70b5
Author: Translation commit bot 
Date:   Fri Sep 30 12:45:03 2016 +

Update translations for bridgedb
---
 ru/LC_MESSAGES/bridgedb.po | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/ru/LC_MESSAGES/bridgedb.po b/ru/LC_MESSAGES/bridgedb.po
index b87d88f..c598e65 100644
--- a/ru/LC_MESSAGES/bridgedb.po
+++ b/ru/LC_MESSAGES/bridgedb.po
@@ -15,6 +15,7 @@
 # Sergey Briskin , 2014
 # Valid Olov, 2014
 # vb[fbk , 2015
+# Victor Erukhin , 2016
 # Vitaliy Grishenko, 2014
 # Андрей Костриков , 2016
 msgid ""
@@ -22,8 +23,8 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: 
'https://trac.torproject.org/projects/tor/newticket?component=BridgeDB=bridgedb-reported,msgid=isis,sysrqb=isis'\n"
 "POT-Creation-Date: 2015-07-25 03:40+\n"
-"PO-Revision-Date: 2016-05-02 02:41+\n"
-"Last-Translator: Андрей Костриков \n"
+"PO-Revision-Date: 2016-09-30 12:24+\n"
+"Last-Translator: Victor Erukhin \n"
 "Language-Team: Russian 
(http://www.transifex.com/otf/torproject/language/ru/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -61,7 +62,7 @@ msgstr "Журнал изменений"
 
 #: bridgedb/https/templates/base.html:88
 msgid "Contact"
-msgstr "Tor: Контакты"
+msgstr "Контакты"
 
 #: bridgedb/https/templates/bridges.html:35
 msgid "Select All"

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-accountsproperties] Update translations for tor-messenger-accountsproperties

2016-09-30 Thread translation
commit 64099fbad28186b653c42ea003ee5f5909dd57a9
Author: Translation commit bot 
Date:   Fri Sep 30 10:47:05 2016 +

Update translations for tor-messenger-accountsproperties
---
 vi/accounts.properties | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/vi/accounts.properties b/vi/accounts.properties
index 051ba0d..6fd244d 100644
--- a/vi/accounts.properties
+++ b/vi/accounts.properties
@@ -4,6 +4,6 @@
 
 # LOCALIZATION NOTE (passwordPromptTitle, passwordPromptText):
 # %S is replaced with the name of the account
-passwordPromptTitle=Password for %S
-passwordPromptText=Please enter your password for %S in order to connect it.
-passwordPromptSaveCheckbox=Use Password Manager to remember this password.
+passwordPromptTitle=Mật khẩu cho %S
+passwordPromptText=Vui lòng nhập mật khẩu cho %S để có thể kết 
nối với nó.
+passwordPromptSaveCheckbox=Sử dụng Trình Quản lý mật khẩu để 
ghi nhớ mật khẩu này.

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-accountsproperties_completed] Update translations for tor-messenger-accountsproperties_completed

2016-09-30 Thread translation
commit cc97702e9741948205fb2d57ec6fea9df65063ee
Author: Translation commit bot 
Date:   Fri Sep 30 10:47:09 2016 +

Update translations for tor-messenger-accountsproperties_completed
---
 vi/accounts.properties | 9 +
 1 file changed, 9 insertions(+)

diff --git a/vi/accounts.properties b/vi/accounts.properties
new file mode 100644
index 000..6fd244d
--- /dev/null
+++ b/vi/accounts.properties
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (passwordPromptTitle, passwordPromptText):
+# %S is replaced with the name of the account
+passwordPromptTitle=Mật khẩu cho %S
+passwordPromptText=Vui lòng nhập mật khẩu cho %S để có thể kết 
nối với nó.
+passwordPromptSaveCheckbox=Sử dụng Trình Quản lý mật khẩu để 
ghi nhớ mật khẩu này.

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbutton-torbuttonproperties] Update translations for torbutton-torbuttonproperties

2016-09-30 Thread translation
commit 4322aff4e0fc991c58c7342a5f39bae3585b3443
Author: Translation commit bot 
Date:   Fri Sep 30 10:46:29 2016 +

Update translations for torbutton-torbuttonproperties
---
 vi/torbutton.properties | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/vi/torbutton.properties b/vi/torbutton.properties
index 9c7a0b5..d7f382f 100644
--- a/vi/torbutton.properties
+++ b/vi/torbutton.properties
@@ -28,10 +28,10 @@ torbutton.popup.confirm_plugins = Plugins such as Flash can 
harm your privacy an
 torbutton.popup.never_ask_again = Never ask me again
 torbutton.popup.confirm_newnym = Trình duyệt Tor sẽ đóng tất cả 
cửa sổ và các thẻ. Mọi trang phiên của trang web sẽ 
mất.\n\nKhởi động lại Trình duyệt Tor bây giờ để đặt lại 
định danh của bạn?\n\n
 
-torbutton.slider_notification = The green onion menu now has a security slider 
which lets you adjust your security level. Check it out!
-torbutton.slider_notification_button = Open security settings
+torbutton.slider_notification = Trình đơn Củ hành màu xanh bây giờ 
có một trình điều chỉnh an ninh thứ cho phép bạn điều chỉnh 
mức độ an ninh của bạn. Thử ngay bây giờ!
+torbutton.slider_notification_button = Mở cài đặt an ninh
 
-torbutton.maximize_warning = Maximizing Tor Browser can allow websites to 
determine your monitor size, which can be used to track you. We recommend that 
you leave Tor Browser windows in their original default size.
+torbutton.maximize_warning = Mở rộng tối đa Trình duyệt Tor có 
thể cho phép trang web xác định kích cỡ màn hình của bạn, thứ 
có thể được dùng để theo dõi bạn. Chúng tôi khuyên bạn để 
của sổ Trình duyệt Tor ở kích cỡ mặc định gốc.
 
 # Canvas permission prompt. Strings are kept here for ease of translation.
 canvas.siteprompt=Trang web này (%S) đã cố gắng trích xuất dữ 
liệu bức vẽ hình ảnh HTML5, thứ có thể sử dụng để xác 
định một cách duy nhất máy tính của bạn.\n\nTrình duyệt Tor 
có nên cho phép trang web này trích xuất dữ liệu bức vẽ hình 
ảnh HTML5?

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbutton-torbuttondtd] Update translations for torbutton-torbuttondtd

2016-09-30 Thread translation
commit 7636fc0650d038060769164251bfe0a87e81ed69
Author: Translation commit bot 
Date:   Fri Sep 30 10:16:36 2016 +

Update translations for torbutton-torbuttondtd
---
 vi/torbutton.dtd | 20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/vi/torbutton.dtd b/vi/torbutton.dtd
index 1591ab7..8031a96 100644
--- a/vi/torbutton.dtd
+++ b/vi/torbutton.dtd
@@ -54,14 +54,14 @@
 
 
 
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbutton-torbuttonproperties] Update translations for torbutton-torbuttonproperties

2016-09-30 Thread translation
commit b0426030266b576770560c33571c04d5a8668fe3
Author: Translation commit bot 
Date:   Fri Sep 30 10:16:33 2016 +

Update translations for torbutton-torbuttonproperties
---
 vi/torbutton.properties | 42 +-
 1 file changed, 21 insertions(+), 21 deletions(-)

diff --git a/vi/torbutton.properties b/vi/torbutton.properties
index 660fd10..9c7a0b5 100644
--- a/vi/torbutton.properties
+++ b/vi/torbutton.properties
@@ -1,23 +1,23 @@
 torbutton.circuit_display.internet = Internet
-torbutton.circuit_display.ip_unknown = IP unknown
-torbutton.circuit_display.onion_site = Onion site
-torbutton.circuit_display.this_browser = This browser
-torbutton.circuit_display.relay = relay
-torbutton.circuit_display.tor_bridge = Bridge
-torbutton.circuit_display.unknown_country = Unknown country
+torbutton.circuit_display.ip_unknown = Địa chỉ IP không biết đến
+torbutton.circuit_display.onion_site = Trang củ hành
+torbutton.circuit_display.this_browser = Trình duyệt này
+torbutton.circuit_display.relay = tiếp sức
+torbutton.circuit_display.tor_bridge = Cầu nối
+torbutton.circuit_display.unknown_country = Đất nước không được 
biết đến
 torbutton.content_sizer.margin_tooltip = Tor Browser adds this margin to make 
the width and height of your window less distinctive, and thus reduces the 
ability of people to track you online.
 torbutton.panel.tooltip.disabled = Nhấn để bật Tor
 torbutton.panel.tooltip.enabled = Nhấn để tắt Tor
 torbutton.panel.label.disabled = Tor bị tắt
 torbutton.panel.label.enabled = Tor được bật
 extensions.torbut...@torproject.org.description = Torbutton provides a button 
to configure Tor settings and quickly and easily clear private browsing data.
-torbutton.popup.external.title = Download an external file type?
-torbutton.popup.external.app = Tor Browser cannot display this file. You will 
need to open it with another application.\n\n
-torbutton.popup.external.note = Some types of files can cause applications to 
connect to the Internet without using Tor.\n\n
-torbutton.popup.external.suggest = To be safe, you should only open downloaded 
files while offline, or use a Tor Live CD such as Tails.\n
-torbutton.popup.launch = Download file
+torbutton.popup.external.title = Tải về một loại tập tin bên ngoài?
+torbutton.popup.external.app = Trình duyệt Tor không thể hiển thị 
tập tin này. Bạn cần mở nó với một ứng dụng khác.\n\n
+torbutton.popup.external.note = Môộtiài loại tập tin có thể làm 
những ứng dụng kết nối tới Internet mà không dùng Tor.\n\n
+torbutton.popup.external.suggest = Để an toàn, bạn chỉ nên mở 
những tập tin được tải về khi đang offline, hoặc sử dụng 
một Tor Live CD như là Tails.\n
+torbutton.popup.launch = Tải tập tin
 torbutton.popup.cancel = Hủy bỏ
-torbutton.popup.dontask = Automatically download files from now on
+torbutton.popup.dontask = Tự động tải những tập tin kể từ bây 
giờ
 torbutton.popup.prompted_language = Để bạn có thêm sư riêng tư, 
Torbutton có thể yêu cầu trang mạng sử dụng phiên bản Tiếng 
Anh. Việc này có thể gây ra việc những trang bạn muốn đọc 
bằng tiếng mẹ đẻ lại hiển thị bằng tiếng Anh thay vào 
đó.\n\nBạn có muốn yêu cầu trang mạng bằng tiếng Anh để có 
thêm sự riêng tư?
 torbutton.popup.no_newnym = Torbutton không thể đưa bạn một danh 
tính mới một cách an toàn. Nó không có đường truy cập vào Tor 
Control Port.\n\nCó phải bạn đang dùng Tor Browser Bundle?
 torbutton.title.prompt_torbrowser = Important Torbutton Information
@@ -26,7 +26,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
+torbutton.popup.confirm_newnym = Trình duyệt Tor sẽ đóng tất cả 
cửa sổ và các thẻ. Mọi trang phiên của trang web sẽ 
mất.\n\nKhởi động lại Trình duyệt Tor bây giờ để đặt lại 
định danh của bạn?\n\n
 
 torbutton.slider_notification = The green onion menu now has a security slider 
which lets you adjust your security level. Check it out!
 torbutton.slider_notification_button = Open security settings
@@ -34,18 +34,18 @@ torbutton.slider_notification_button = Open security 
settings
 torbutton.maximize_warning = Maximizing Tor Browser can allow websites to 
determine 

[tor-commits] [translation/tor-launcher-network-settings_completed] Update translations for tor-launcher-network-settings_completed

2016-09-30 Thread translation
commit 69dbb43652be57338d4ad87f0a08ce2694151b84
Author: Translation commit bot 
Date:   Fri Sep 30 10:16:09 2016 +

Update translations for tor-launcher-network-settings_completed
---
 vi/network-settings.dtd | 75 +
 1 file changed, 75 insertions(+)

diff --git a/vi/network-settings.dtd b/vi/network-settings.dtd
new file mode 100644
index 000..487c318
--- /dev/null
+++ b/vi/network-settings.dtd
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+https://bridges.torproject.org;>
+
+
+https://www.riseup.net, 
https://mail.google.com, or https://mail.yahoo.com;>
+
+

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbirdy] Update translations for torbirdy

2016-09-30 Thread translation
commit 959fe1312351592c2a28ff353f89cd4d4260048d
Author: Translation commit bot 
Date:   Fri Sep 30 10:15:43 2016 +

Update translations for torbirdy
---
 vi/torbirdy.properties | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/vi/torbirdy.properties b/vi/torbirdy.properties
index 9837610..46d3e8c 100644
--- a/vi/torbirdy.properties
+++ b/vi/torbirdy.properties
@@ -1,10 +1,10 @@
 torbirdy.name=TorBirdy
 
-torbirdy.enabled.tor=TorBirdy Enabled:Tor
-torbirdy.enabled.jondo=TorBirdy Enabled:JonDo
-torbirdy.enabled.custom=TorBirdy Enabled:Custom Proxy
-torbirdy.enabled.torification=TorBirdy Enabled:Transparent Torification
-torbirdy.enabled.whonix=TorBirdy Enabled:Whonix
+torbirdy.enabled.tor=TorBirdy đã kích hoạt: Tor
+torbirdy.enabled.jondo=TorBirdy được kích hoạt: JonDo
+torbirdy.enabled.custom=TorBirdy đã kích hoạt: Ủy quyền tùy chỉnh
+torbirdy.enabled.torification=TorBirdy được kích hoạt: Transparent 
Torification
+torbirdy.enabled.whonix=TorBirdy đã kích hoạt: Whonix
 torbirdy.disabled=TorBirdy: Đã bị vô hiệu hoá.
 torbirdy.enabled=TorBirdy: Đã kích hoạt
 
@@ -12,7 +12,7 @@ torbirdy.email.prompt=TorBirdy đã vô hiệu hoá thuật 
sĩ tự động c
 
 torbirdy.email.advanced=Vui lòng chú ý việc thay đổi các cài đặt 
nâng cao của TorBirdy là không được khuyến khích.\nBạn chỉ nên 
tiếp tục nếu như bạn biết chắc rằng mình đang làm gì.
 torbirdy.email.advanced.nextwarning=HIển thị cảnh báo này trong thời 
gian tới.
-torbirdy.email.advanced.title=TorBirdy Advanced Settings
+torbirdy.email.advanced.title=Những cài đặt nâng cao của TorBirdy
 
-torbirdy.firstrun=You are now running TorBirdy.\n\nTo help protect your 
anonymity, TorBirdy will enforce the Thunderbird settings it has set, 
preventing them from being changed by you or by any add-on. There are some 
settings that can be changed and those are accessed through TorBirdy's 
preferences dialog. When TorBirdy is uninstalled or disabled, all settings that 
it changes are reset to their default values (the values prior to TorBirdy's 
install).\n\nIf you are a new user, it is recommended that you read through the 
TorBirdy website to understand what we are trying to accomplish with TorBirdy 
for our users.
+torbirdy.firstrun=Bây giờ bạn đang chạy TorBirdy\n\nĐể giúp bảo 
vệ việc ẩn danh của bạn, TorBirdy sẽ ép buộc những cài đặt 
mà Thunderbird đã cài, ngăn ngừa chúng bị thay đổi bởi bạn 
bất kỳ những add-on nào. Có một vài cài đặt có thể được 
thay đổi và chúng được truy cập thông qua những hội thoại ưu 
tiên của TorBirdy. Khi TorBirdy bị gỡ bỏ hoặc vô hiệu, mọi cài 
đặt mà nó thay đổi sẽ được đặt lại về những giá trị 
mặc định (những giá trị trước khi cài TorBirdy).\n\nNếu bạn 
là người dùng mới, chúng tôi khuyên bạn đọc qua trang web của 
TorBirdy để hiểu những gì chúng tôi đang cố gắng thực hiện 
với TorBirdy cho những người dùng của chúng tôi.
 torbirdy.website=https://trac.torproject.org/projects/tor/wiki/torbirdy

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-launcher-network-settings] Update translations for tor-launcher-network-settings

2016-09-30 Thread translation
commit fa70fe6e933b03cb2102a95385abe453ace9f5b2
Author: Translation commit bot 
Date:   Fri Sep 30 10:16:06 2016 +

Update translations for tor-launcher-network-settings
---
 vi/network-settings.dtd | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/vi/network-settings.dtd b/vi/network-settings.dtd
index 94a2e6a..487c318 100644
--- a/vi/network-settings.dtd
+++ b/vi/network-settings.dtd
@@ -65,11 +65,11 @@
 
 
 
-
+
 
 https://bridges.torproject.org;>
 
 
 https://www.riseup.net, 
https://mail.google.com, or https://mail.yahoo.com;>
-
-
+
+

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbirdy_completed] Update translations for torbirdy_completed

2016-09-30 Thread translation
commit 522364f9fca8e466d53519b2781766835d4b3ca1
Author: Translation commit bot 
Date:   Fri Sep 30 10:15:47 2016 +

Update translations for torbirdy_completed
---
 vi/torbirdy.properties | 18 ++
 1 file changed, 18 insertions(+)

diff --git a/vi/torbirdy.properties b/vi/torbirdy.properties
new file mode 100644
index 000..46d3e8c
--- /dev/null
+++ b/vi/torbirdy.properties
@@ -0,0 +1,18 @@
+torbirdy.name=TorBirdy
+
+torbirdy.enabled.tor=TorBirdy đã kích hoạt: Tor
+torbirdy.enabled.jondo=TorBirdy được kích hoạt: JonDo
+torbirdy.enabled.custom=TorBirdy đã kích hoạt: Ủy quyền tùy chỉnh
+torbirdy.enabled.torification=TorBirdy được kích hoạt: Transparent 
Torification
+torbirdy.enabled.whonix=TorBirdy đã kích hoạt: Whonix
+torbirdy.disabled=TorBirdy: Đã bị vô hiệu hoá.
+torbirdy.enabled=TorBirdy: Đã kích hoạt
+
+torbirdy.email.prompt=TorBirdy đã vô hiệu hoá thuật sĩ tự động 
cấu hình của ThunderBird để bảo vệ sự ẩn danh của 
bạn.\nBạn có thể cài đặt cấu hình các tài khoản bằng thủ 
công.
+
+torbirdy.email.advanced=Vui lòng chú ý việc thay đổi các cài đặt 
nâng cao của TorBirdy là không được khuyến khích.\nBạn chỉ nên 
tiếp tục nếu như bạn biết chắc rằng mình đang làm gì.
+torbirdy.email.advanced.nextwarning=HIển thị cảnh báo này trong thời 
gian tới.
+torbirdy.email.advanced.title=Những cài đặt nâng cao của TorBirdy
+
+torbirdy.firstrun=Bây giờ bạn đang chạy TorBirdy\n\nĐể giúp bảo 
vệ việc ẩn danh của bạn, TorBirdy sẽ ép buộc những cài đặt 
mà Thunderbird đã cài, ngăn ngừa chúng bị thay đổi bởi bạn 
bất kỳ những add-on nào. Có một vài cài đặt có thể được 
thay đổi và chúng được truy cập thông qua những hội thoại ưu 
tiên của TorBirdy. Khi TorBirdy bị gỡ bỏ hoặc vô hiệu, mọi cài 
đặt mà nó thay đổi sẽ được đặt lại về những giá trị 
mặc định (những giá trị trước khi cài TorBirdy).\n\nNếu bạn 
là người dùng mới, chúng tôi khuyên bạn đọc qua trang web của 
TorBirdy để hiểu những gì chúng tôi đang cố gắng thực hiện 
với TorBirdy cho những người dùng của chúng tôi.
+torbirdy.website=https://trac.torproject.org/projects/tor/wiki/torbirdy

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/abouttor-homepage_completed] Update translations for abouttor-homepage_completed

2016-09-30 Thread translation
commit e8fc2463ba62f5845fbc0bb0b9526c8f81947673
Author: Translation commit bot 
Date:   Fri Sep 30 09:46:21 2016 +

Update translations for abouttor-homepage_completed
---
 vi/aboutTor.dtd | 49 +
 1 file changed, 49 insertions(+)

diff --git a/vi/aboutTor.dtd b/vi/aboutTor.dtd
new file mode 100644
index 000..5ca68c1
--- /dev/null
+++ b/vi/aboutTor.dtd
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+https://startpage.com/rth/search;>
+https://duckduckgo.com/html/;>
+https://search.disconnect.me/searchTerms/search?ses=Googlelocation_option=USsource=tor;>
+
+
+
+
+
+
+
+
+https://www.torproject.org/download/download.html.en#warning;>
+
+
+
+https://www.torproject.org/docs/tor-doc-relay.html.en;>
+
+https://www.torproject.org/getinvolved/volunteer.html.en;>
+
+https://www.torproject.org/donate/donate.html.en;>
+
+
+
+https://www.torproject.org/about/overview.html.en;>

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbutton-torbuttondtd] Update translations for torbutton-torbuttondtd

2016-09-30 Thread translation
commit 7d1e2115fb69af66bf843318aed413719974b4d2
Author: Translation commit bot 
Date:   Fri Sep 30 09:46:38 2016 +

Update translations for torbutton-torbuttondtd
---
 vi/torbutton.dtd | 20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/vi/torbutton.dtd b/vi/torbutton.dtd
index d5b6dd7..1591ab7 100644
--- a/vi/torbutton.dtd
+++ b/vi/torbutton.dtd
@@ -31,11 +31,11 @@
 
 
 
-
+
 
-
+
 
-
+
 
 
 
@@ -47,13 +47,13 @@
 
 
 
-
-
-
-
-
-
-
+
+
+
+
+
+
+
 
 
 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-launcher-network-settings] Update translations for tor-launcher-network-settings

2016-09-30 Thread translation
commit 51960191f27076b387e2411593901e0f3999106a
Author: Translation commit bot 
Date:   Fri Sep 30 09:46:08 2016 +

Update translations for tor-launcher-network-settings
---
 vi/network-settings.dtd | 16 
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/vi/network-settings.dtd b/vi/network-settings.dtd
index 8c5afc2..94a2e6a 100644
--- a/vi/network-settings.dtd
+++ b/vi/network-settings.dtd
@@ -52,24 +52,24 @@
 
 
 
-
+
 
 
 
-
+
 
 
-
-
+
+
 
-
-
+
+
 
 
 
 https://bridges.torproject.org;>
-
-
+
+
 https://www.riseup.net, 
https://mail.google.com, or https://mail.yahoo.com;>
 
 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/whisperback_completed] Update translations for whisperback_completed

2016-09-30 Thread translation
commit 095cb86d2a15a565e40c90e5958835c91c8d7ec0
Author: Translation commit bot 
Date:   Fri Sep 30 09:45:19 2016 +

Update translations for whisperback_completed
---
 vi/vi.po | 200 +++
 1 file changed, 200 insertions(+)

diff --git a/vi/vi.po b/vi/vi.po
new file mode 100644
index 000..0db7ef2
--- /dev/null
+++ b/vi/vi.po
@@ -0,0 +1,200 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Acooldude, 2016
+# Khanh Nguyen , 2015-2016
+msgid ""
+msgstr ""
+"Project-Id-Version: The Tor Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-12-16 19:54+0100\n"
+"PO-Revision-Date: 2016-09-30 09:16+\n"
+"Last-Translator: Khanh Nguyen \n"
+"Language-Team: Vietnamese 
(http://www.transifex.com/otf/torproject/language/vi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: vi\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. XXX use a better exception
+#: ../whisperBack/whisperback.py:56
+#, python-format
+msgid "Invalid contact email: %s"
+msgstr "Email liên lạc không hợp lệ: %s"
+
+#: ../whisperBack/whisperback.py:73
+#, python-format
+msgid "Invalid contact OpenPGP key: %s"
+msgstr "khóa OpenPGP liên lạc không hợp lệ: %s"
+
+#: ../whisperBack/whisperback.py:75
+msgid "Invalid contact OpenPGP public key block"
+msgstr "khối khóa công khai của danh bạ OpenPGP không hợp lệ"
+
+#: ../whisperBack/exceptions.py:41
+#, python-format
+msgid ""
+"The %s variable was not found in any of the configuration files "
+"/etc/whisperback/config.py, ~/.whisperback/config.py, ./config.py"
+msgstr "%s biến số không được tìm thấy trong bất kỳ tập tin 
định hình nào /etc/whisperback/config.py, ~/.whisperback/config.py, 
./config.py"
+
+#: ../whisperBack/gui.py:148
+msgid "Unable to load a valid configuration."
+msgstr "Không thể tải một cấu hình hợp lệ."
+
+#: ../whisperBack/gui.py:214
+msgid "Sending mail..."
+msgstr "Đang gửi thư..."
+
+#: ../whisperBack/gui.py:215
+msgid "Sending mail"
+msgstr "Đang gửi thư"
+
+#. pylint: disable=C0301
+#: ../whisperBack/gui.py:217
+msgid "This could take a while..."
+msgstr "Việc này có thể mất chút thời gian..."
+
+#: ../whisperBack/gui.py:232
+msgid "The contact email adress doesn't seem valid."
+msgstr "Địa chỉ email liên hệ đường như không hợp lệ."
+
+#: ../whisperBack/gui.py:249
+msgid "Unable to send the mail: SMTP error."
+msgstr "Không thể gửi thư: lỗi SMTP."
+
+#: ../whisperBack/gui.py:251
+msgid "Unable to connect to the server."
+msgstr "Không thể kết nối với máy chủ."
+
+#: ../whisperBack/gui.py:253
+msgid "Unable to create or to send the mail."
+msgstr "Không thể tạo hoặc gửi thư."
+
+#: ../whisperBack/gui.py:256
+msgid ""
+"\n"
+"\n"
+"The bug report could not be sent, likely due to network problems. Please try 
to reconnect to the network and click send again.\n"
+"\n"
+"If it does not work, you will be offered to save the bug report."
+msgstr "\n\nBáo cáo lỗi không thể gửi đi được, có thể do 
vấn đề mạng lưới. Vui lòng thử kết nội lại với mạng 
lưới và bấm gửi lại.\n\nNếu nó không hoạt động, bạn sẽ 
được mời để lưu lại báo cáo lỗi."
+
+#: ../whisperBack/gui.py:269
+msgid "Your message has been sent."
+msgstr "Thông điệp của bạn đã được gửi đi."
+
+#: ../whisperBack/gui.py:276
+msgid "An error occured during encryption."
+msgstr "Một lỗi xảy ra trong quá trình mã hóa."
+
+#: ../whisperBack/gui.py:296
+#, python-format
+msgid "Unable to save %s."
+msgstr "Không thể lưu %s."
+
+#: ../whisperBack/gui.py:319
+#, python-format
+msgid ""
+"The bug report could not be sent, likely due to network problems.\n"
+"\n"
+"As a work-around you can save the bug report as a file on a USB drive and try 
to send it to us at %s from your email account using another system. Note that 
your bug report will not be anonymous when doing so unless you take further 
steps yourself (e.g. using Tor with a throw-away email account).\n"
+"\n"
+"Do you want to save the bug report to a file?"
+msgstr "Báo cáo lỗi không thể được gửi đi, có thể do lỗi 
mạng lưới.\n\nNhư là một người gõ rối bạn có thể lưu báo 
cáo lỗi như một tập tin trên ổ USB và cố gắng gửi nó đến 
chúng tôi tại %s từ email của bạn dùng một hệ thống khác. 
Lưu ý rằng báo cáo lỗi của bạn sẽ không ẩn danh khi làm 
nhưng vậy, do đó trừ khi tự bạn có những bước xa hơn (ví 
dụ sử dụng Tor với một tài khoản email bỏ 

[tor-commits] [translation/torbutton-torbuttondtd] Update translations for torbutton-torbuttondtd

2016-09-30 Thread translation
commit d380f8d1df10b8ea8a65525b550e8dd9f8878776
Author: Translation commit bot 
Date:   Fri Sep 30 09:16:36 2016 +

Update translations for torbutton-torbuttondtd
---
 vi/torbutton.dtd | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/vi/torbutton.dtd b/vi/torbutton.dtd
index 2fc4b95..d5b6dd7 100644
--- a/vi/torbutton.dtd
+++ b/vi/torbutton.dtd
@@ -25,11 +25,11 @@
 
 
 
-
+
 
-
+
 
-
+
 
 
 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/abouttor-homepage] Update translations for abouttor-homepage

2016-09-30 Thread translation
commit c4c1c8062566d68ea903059e170caab142678416
Author: Translation commit bot 
Date:   Fri Sep 30 09:16:18 2016 +

Update translations for abouttor-homepage
---
 vi/aboutTor.dtd | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/vi/aboutTor.dtd b/vi/aboutTor.dtd
index 69ac2b3..5ca68c1 100644
--- a/vi/aboutTor.dtd
+++ b/vi/aboutTor.dtd
@@ -33,15 +33,15 @@
 
 
 
-
+
 https://www.torproject.org/download/download.html.en#warning;>
-
+
 
-
+
 https://www.torproject.org/docs/tor-doc-relay.html.en;>
-
+
 https://www.torproject.org/getinvolved/volunteer.html.en;>
-
+
 https://www.torproject.org/donate/donate.html.en;>
 
 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torcheck] Update translations for torcheck

2016-09-30 Thread translation
commit 7648e4958b831224cd43eab88994dfd89331faa3
Author: Translation commit bot 
Date:   Fri Sep 30 09:15:09 2016 +

Update translations for torcheck
---
 vi/torcheck.po | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/vi/torcheck.po b/vi/torcheck.po
index 6e39029..9254a6e 100644
--- a/vi/torcheck.po
+++ b/vi/torcheck.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "POT-Creation-Date: 2012-02-16 20:28+PDT\n"
-"PO-Revision-Date: 2016-09-30 08:43+\n"
+"PO-Revision-Date: 2016-09-30 08:47+\n"
 "Last-Translator: Khanh Nguyen \n"
 "Language-Team: Vietnamese 
(http://www.transifex.com/otf/torproject/language/vi/)\n"
 "MIME-Version: 1.0\n"
@@ -100,7 +100,7 @@ msgid "However, it does not appear to be Tor Browser."
 msgstr "Tuy nhiên, có vẻ nó không phải là Trình duyệt Tor"
 
 msgid "Run a Relay"
-msgstr ""
+msgstr "Chạy việc tiếp sức"
 
 msgid "Stay Anonymous"
-msgstr ""
+msgstr "Ẩn danh"

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torcheck_completed] Update translations for torcheck_completed

2016-09-30 Thread translation
commit 18d48ed555bead47bbfdf8ea8bfc8266172f1b09
Author: Translation commit bot 
Date:   Fri Sep 30 09:15:12 2016 +

Update translations for torcheck_completed
---
 vi/torcheck.po | 106 +
 1 file changed, 106 insertions(+)

diff --git a/vi/torcheck.po b/vi/torcheck.po
new file mode 100644
index 000..9254a6e
--- /dev/null
+++ b/vi/torcheck.po
@@ -0,0 +1,106 @@
+# TorCheck gettext template
+# Copyright (C) 2008-2013 The Tor Project, Inc
+# 
+# Translators:
+# Acooldude, 2016
+# Hoang Thu Giang , 2014
+# Khanh Nguyen , 2015-2016
+# Quoc Hoa, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: The Tor Project\n"
+"POT-Creation-Date: 2012-02-16 20:28+PDT\n"
+"PO-Revision-Date: 2016-09-30 08:47+\n"
+"Last-Translator: Khanh Nguyen \n"
+"Language-Team: Vietnamese 
(http://www.transifex.com/otf/torproject/language/vi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Language: vi\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+msgid "Congratulations. This browser is configured to use Tor."
+msgstr "Xin chúc mừng. Trình duyệt này đã được cấu hình để 
dùng Tor."
+
+msgid ""
+"Please refer to the https://www.torproject.org/\;>Tor website "
+"for further information about using Tor safely.  You are now free to browse "
+"the Internet anonymously."
+msgstr "Hãy tham khảo https://www.torproject.org/\;> trang web 
Tor cho những thông tin xa hơn về việc sử dụng Tor một cách 
an toàn. Bây giờ bạn có thể tự do lướt Internet ẩn danh."
+
+msgid "There is a security update available for Tor Browser."
+msgstr "Có một bản cập nhật về an ninh có sẵn cho Trình duyệt 
Tor."
+
+msgid ""
+"https://www.torproject.org/download/download-easy.html\;>Click "
+"here to go to the download page"
+msgstr "https://www.torproject.org/download/download-easy.html\;>Bấm vào 
đây để đến trang tải về"
+
+msgid "Sorry. You are not using Tor."
+msgstr "Xin lỗi, bạn không đang sử dụng Tor. "
+
+msgid ""
+"If you are attempting to use a Tor client, please refer to the https://www.torproject.org/\;>Tor website and specifically the instructions for "
+"configuring your Tor client."
+msgstr "Nếu bạn đang cố gắng sử dụng một máy trạm Tor, vui 
lòng tham khảo trang của Tor https://www.torproject.org/\;> và 
đặc biệt là những hướng dẫn https://www.torproject.org/docs/faq#DoesntWork\;> để cấu hình máy 
trạm Tor."
+
+msgid "Sorry, your query failed or an unexpected response was received."
+msgstr "Xin lỗi, truy vấn của bạn đã thất bại hoặc đã nhận 
được một lỗi bất thường."
+
+msgid ""
+"A temporary service outage prevents us from determining if your source IP "
+"address is a https://www.torproject.org/\;>Tor node."
+msgstr "Một sự thiếu dịch vụ tạm thời ngăn chúng tôi khỏi 
việc xác định địa chỉ IP nguồn là một  mối https://www.torproject.org/\;> Tor."
+
+msgid "Your IP address appears to be: "
+msgstr "Địa chỉ IP của bạn hình như là:"
+
+msgid "Are you using Tor?"
+msgstr "Bạn đang sử dụng Tor?"
+
+msgid "This page is also available in the following languages:"
+msgstr "Trang này có hỗ trợ các ngôn ngữ sau:"
+
+msgid "For more information about this exit relay, see:"
+msgstr "Để biết thêm thông tin chi tiết về exit relay, xem thêm:"
+
+msgid ""
+"The Tor Project is a US 501(c)(3) non-profit dedicated to the research, "
+"development, and education of online anonymity and privacy."
+msgstr "Dự án Tor là một US 501(c)(3) không lợi nhuận chuyên dùng 
cho nghiên cứu, phát triển và giáo dục về vô danh và riêng tư 
trực tuyến"
+
+msgid "Learn More "
+msgstr "Tìm hiểu thêm "
+
+msgid "Go"
+msgstr "Đi"
+
+msgid "Short User Manual"
+msgstr "Hướng dẫn sử dụng ngắn gọn"
+
+msgid "Donate to Support Tor"
+msgstr "Đóng góp để hỗ trợ Tor"
+
+msgid "Tor Q Site"
+msgstr "Trang Hỏi & Đáp của Tor"
+
+msgid "Volunteer"
+msgstr "Tình nguyện viên"
+
+msgid "JavaScript is enabled."
+msgstr "Ja vascript đã bật."
+
+msgid "JavaScript is disabled."
+msgstr "Javascript đã bị vô hiệu hoá."
+
+msgid "However, it does not appear to be Tor Browser."
+msgstr "Tuy nhiên, có vẻ nó không phải là Trình duyệt Tor"
+
+msgid "Run a Relay"
+msgstr "Chạy việc tiếp sức"
+
+msgid "Stay Anonymous"
+msgstr "Ẩn danh"

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/whisperback] Update translations for whisperback

2016-09-30 Thread translation
commit f2e80e39989902488a0a9ed8869477bfe6159444
Author: Translation commit bot 
Date:   Fri Sep 30 09:15:16 2016 +

Update translations for whisperback
---
 vi/vi.po | 22 +++---
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/vi/vi.po b/vi/vi.po
index c850162..7ab1e0c 100644
--- a/vi/vi.po
+++ b/vi/vi.po
@@ -10,7 +10,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2015-12-16 19:54+0100\n"
-"PO-Revision-Date: 2016-09-30 08:41+\n"
+"PO-Revision-Date: 2016-09-30 09:14+\n"
 "Last-Translator: Khanh Nguyen \n"
 "Language-Team: Vietnamese 
(http://www.transifex.com/otf/torproject/language/vi/)\n"
 "MIME-Version: 1.0\n"
@@ -128,15 +128,15 @@ msgstr "người dịch-những sự đóng góp"
 
 #: ../whisperBack/gui.py:412
 msgid "This doesn't seem to be a valid URL or OpenPGP key."
-msgstr ""
+msgstr "Việc này dường như là một URL hợp lệ hoặc khóa 
OpenPGP."
 
 #: ../data/whisperback.ui.h:1
 msgid "Copyright © 2009-2012 ta...@boum.org"
-msgstr ""
+msgstr "Bản quyền © 2009-2012 ta...@boum.org"
 
 #: ../data/whisperback.ui.h:3
 msgid "https://tails.boum.org/;
-msgstr ""
+msgstr "https://tails.boum.org/;
 
 #: ../data/whisperback.ui.h:4
 msgid ""
@@ -155,33 +155,33 @@ msgid ""
 "\n"
 "You should have received a copy of the GNU General Public License\n"
 "along with this program.  If not, see .\n"
-msgstr ""
+msgstr "WhisperBack - Gửi phản hồi trong một thư được mã 
hóa\nBản quyền (C) 2009-2012 Những người phát triển Tails 
\n\nChương trình này là phần mềm miễn phí; ban có 
thể phân phối lại và/hoặc chỉnh sửa\nnó dưới điều khoản 
của GNU General Public License như đã ban hành bởi\nTổ chức Free 
Software; cả phiên bản 3 của Bản quyền, hoặc (tại\ntùy chọn 
của bạn) mọi phiên bản sau đó.\n\nChương trình này được 
phân phối trong hy vọng rằng nó sẽ hữu dụng, nhưng\nKHÔNG CÓ 
BẤT KÝ BẢO ĐẢM NÀO hoặc SỰ PHÙ HỢP CHO MỤC ĐÍCH RIÊNG. Xem 
GNU\nGeneral Public License để có thêm thông tin.\n\nBạn nên nhận 
một bản sao của GNU General Public License\nkèm theo chương trình nà
y. Nếu không, hãy xem .\n"
 
 #: ../data/whisperback.ui.h:20
 msgid ""
 "If you want us to encrypt messages when we respond to you, add your key ID, "
 "a link to your key, or the key as a public key block:"
-msgstr ""
+msgstr "Nếu bạn muốn chúng tôi mã hóa thông điệp khi chúng tôi 
phản hồi bạn, thêm ID của khóa của bạn, một kết nối tới 
khóa của bạn, hoặc khóa như là một chuỗi khóa công khai:"
 
 #: ../data/whisperback.ui.h:22
 msgid "Summary"
-msgstr ""
+msgstr "Tóm tắt"
 
 #: ../data/whisperback.ui.h:23
 msgid "Bug description"
-msgstr ""
+msgstr "Mô tả lỗi"
 
 #: ../data/whisperback.ui.h:24
 msgid "Optional email address to contact you"
-msgstr ""
+msgstr "Địa chỉ email tùy chọn để liên hệ bạn"
 
 #: ../data/whisperback.ui.h:25
 msgid "optional PGP key"
-msgstr ""
+msgstr "khóa PGP tùy chọn"
 
 #: ../data/whisperback.ui.h:26
 msgid "Technical details to include"
-msgstr ""
+msgstr "Những chi tiết kỹ thuật để bao gồm"
 
 #: ../data/whisperback.ui.h:27
 msgid "headers"

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-prefsdtd] Update translations for tor-messenger-prefsdtd

2016-09-30 Thread translation
commit 559b52fde5c038e0bd240bf66383f7471fc0febe
Author: Translation commit bot 
Date:   Fri Sep 30 08:48:11 2016 +

Update translations for tor-messenger-prefsdtd
---
 vi/prefs.dtd | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/vi/prefs.dtd b/vi/prefs.dtd
index 75f05cd..fc212f2 100644
--- a/vi/prefs.dtd
+++ b/vi/prefs.dtd
@@ -13,10 +13,10 @@
 
 
 
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
\ No newline at end of file

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-prefsdtd_completed] Update translations for tor-messenger-prefsdtd_completed

2016-09-30 Thread translation
commit b244db66efd81a89cf1b2c8d164f7c746bb10d7c
Author: Translation commit bot 
Date:   Fri Sep 30 08:48:24 2016 +

Update translations for tor-messenger-prefsdtd_completed
---
 vi/prefs.dtd | 22 ++
 1 file changed, 22 insertions(+)

diff --git a/vi/prefs.dtd b/vi/prefs.dtd
new file mode 100644
index 000..fc212f2
--- /dev/null
+++ b/vi/prefs.dtd
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-authdtd] Update translations for tor-messenger-authdtd

2016-09-30 Thread translation
commit 654937530d690b348c03d4bbffbb8834d33bc5c5
Author: Translation commit bot 
Date:   Fri Sep 30 08:47:15 2016 +

Update translations for tor-messenger-authdtd
---
 vi/auth.dtd | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/vi/auth.dtd b/vi/auth.dtd
index cd77d53..2c5132b 100644
--- a/vi/auth.dtd
+++ b/vi/auth.dtd
@@ -13,9 +13,9 @@
 
 
 
-
-
-
-
+
+
+
+
 
 
\ No newline at end of file

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-authdtd_completed] Update translations for tor-messenger-authdtd_completed

2016-09-30 Thread translation
commit 7539077613be4db107f05424d69eb1d00d66ea6c
Author: Translation commit bot 
Date:   Fri Sep 30 08:47:18 2016 +

Update translations for tor-messenger-authdtd_completed
---
 vi/auth.dtd | 21 +
 1 file changed, 21 insertions(+)

diff --git a/vi/auth.dtd b/vi/auth.dtd
new file mode 100644
index 000..2c5132b
--- /dev/null
+++ b/vi/auth.dtd
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/abouttor-homepage] Update translations for abouttor-homepage

2016-09-30 Thread translation
commit 074ddfdcf009395a42d354298c9d17c5ed9be875
Author: Translation commit bot 
Date:   Fri Sep 30 08:46:19 2016 +

Update translations for abouttor-homepage
---
 vi/aboutTor.dtd | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/vi/aboutTor.dtd b/vi/aboutTor.dtd
index b234d29..69ac2b3 100644
--- a/vi/aboutTor.dtd
+++ b/vi/aboutTor.dtd
@@ -27,9 +27,9 @@
 https://duckduckgo.com/html/;>
 https://search.disconnect.me/searchTerms/search?ses=Googlelocation_option=USsource=tor;>
 
-
+
 
-
+
 
 
 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-launcher-network-settings] Update translations for tor-launcher-network-settings

2016-09-30 Thread translation
commit 179942aff071d634274726fd1d07233e23d97a7c
Author: Translation commit bot 
Date:   Fri Sep 30 08:46:08 2016 +

Update translations for tor-launcher-network-settings
---
 vi/network-settings.dtd | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/vi/network-settings.dtd b/vi/network-settings.dtd
index fdf52ed..5519648 100644
--- a/vi/network-settings.dtd
+++ b/vi/network-settings.dtd
@@ -22,14 +22,14 @@
 
 
 
-
-
-
-
+
+
+
+
 
-
-
-
+
+
+
 
 
 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torcheck] Update translations for torcheck

2016-09-30 Thread translation
commit 6f042f0ec507ef1db7a9104f0fda7c554bba5afe
Author: Translation commit bot 
Date:   Fri Sep 30 08:45:09 2016 +

Update translations for torcheck
---
 vi/torcheck.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/vi/torcheck.po b/vi/torcheck.po
index 9af5daf..6e39029 100644
--- a/vi/torcheck.po
+++ b/vi/torcheck.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "POT-Creation-Date: 2012-02-16 20:28+PDT\n"
-"PO-Revision-Date: 2016-09-30 08:00+\n"
+"PO-Revision-Date: 2016-09-30 08:43+\n"
 "Last-Translator: Khanh Nguyen \n"
 "Language-Team: Vietnamese 
(http://www.transifex.com/otf/torproject/language/vi/)\n"
 "MIME-Version: 1.0\n"
@@ -97,7 +97,7 @@ msgid "JavaScript is disabled."
 msgstr "Javascript đã bị vô hiệu hoá."
 
 msgid "However, it does not appear to be Tor Browser."
-msgstr ""
+msgstr "Tuy nhiên, có vẻ nó không phải là Trình duyệt Tor"
 
 msgid "Run a Relay"
 msgstr ""

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/whisperback] Update translations for whisperback

2016-09-30 Thread translation
commit 679f653eb7e77c44090669b58b8d3d410b396d42
Author: Translation commit bot 
Date:   Fri Sep 30 08:45:16 2016 +

Update translations for whisperback
---
 vi/vi.po | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/vi/vi.po b/vi/vi.po
index 6c1df8a..c850162 100644
--- a/vi/vi.po
+++ b/vi/vi.po
@@ -10,7 +10,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2015-12-16 19:54+0100\n"
-"PO-Revision-Date: 2016-09-30 08:00+\n"
+"PO-Revision-Date: 2016-09-30 08:41+\n"
 "Last-Translator: Khanh Nguyen \n"
 "Language-Team: Vietnamese 
(http://www.transifex.com/otf/torproject/language/vi/)\n"
 "MIME-Version: 1.0\n"
@@ -104,27 +104,27 @@ msgid ""
 "As a work-around you can save the bug report as a file on a USB drive and try 
to send it to us at %s from your email account using another system. Note that 
your bug report will not be anonymous when doing so unless you take further 
steps yourself (e.g. using Tor with a throw-away email account).\n"
 "\n"
 "Do you want to save the bug report to a file?"
-msgstr ""
+msgstr "Báo cáo lỗi không thể được gửi đi, có thể do lỗi 
mạng lưới.\n\nNhư là một người gõ rối bạn có thể lưu báo 
cáo lỗi như một tập tin trên ổ USB và cố gắng gửi nó đến 
chúng tôi tại %s từ email của bạn dùng một hệ thống khác. 
Lưu ý rằng báo cáo lỗi của bạn sẽ không ẩn danh khi làm 
nhưng vậy, do đó trừ khi tự bạn có những bước xa hơn (ví 
dụ sử dụng Tor với một tài khoản email bỏ đi).\n\nBạn có 
muốn lưu báo cáo lỗi vào một tập tin?"
 
 #: ../whisperBack/gui.py:379 ../data/whisperback.ui.h:21
 msgid "WhisperBack"
-msgstr ""
+msgstr "WhisperBack"
 
 #: ../whisperBack/gui.py:380 ../data/whisperback.ui.h:2
 msgid "Send feedback in an encrypted mail."
-msgstr ""
+msgstr "Gửi phản hồi trong thư được mã hóa."
 
 #: ../whisperBack/gui.py:383
 msgid "Copyright © 2009-2012 Tails developpers (ta...@boum.org)"
-msgstr ""
+msgstr "Bản quyền © 2009-2012 Những nhà phát triển Tails 
(ta...@boum.org)"
 
 #: ../whisperBack/gui.py:384
 msgid "Tails developers "
-msgstr ""
+msgstr "Những nhà phát triển Tails "
 
 #: ../whisperBack/gui.py:385
 msgid "translator-credits"
-msgstr ""
+msgstr "người dịch-những sự đóng góp"
 
 #: ../whisperBack/gui.py:412
 msgid "This doesn't seem to be a valid URL or OpenPGP key."

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-prefsdtd] Update translations for tor-messenger-prefsdtd

2016-09-30 Thread translation
commit f6a0e4a2da5bd3689db72daf376214505ba2829f
Author: Translation commit bot 
Date:   Fri Sep 30 08:18:11 2016 +

Update translations for tor-messenger-prefsdtd
---
 vi/prefs.dtd | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/vi/prefs.dtd b/vi/prefs.dtd
index 7cc9214..75f05cd 100644
--- a/vi/prefs.dtd
+++ b/vi/prefs.dtd
@@ -9,10 +9,10 @@
 
 
 
-
-
-
-
+
+
+
+
 
 
 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-fingerdtd_completed] Update translations for tor-messenger-fingerdtd_completed

2016-09-30 Thread translation
commit 5c08e5d6c20840c45ea18ce71a1077af5bc7591b
Author: Translation commit bot 
Date:   Fri Sep 30 08:17:48 2016 +

Update translations for tor-messenger-fingerdtd_completed
---
 vi/finger.dtd | 15 +++
 1 file changed, 15 insertions(+)

diff --git a/vi/finger.dtd b/vi/finger.dtd
new file mode 100644
index 000..03aef1b
--- /dev/null
+++ b/vi/finger.dtd
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-fingerdtd] Update translations for tor-messenger-fingerdtd

2016-09-30 Thread translation
commit d365df6bd300be3016169af4e34ba9bafcd0
Author: Translation commit bot 
Date:   Fri Sep 30 08:17:44 2016 +

Update translations for tor-messenger-fingerdtd
---
 vi/finger.dtd | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/vi/finger.dtd b/vi/finger.dtd
index acc9685..03aef1b 100644
--- a/vi/finger.dtd
+++ b/vi/finger.dtd
@@ -9,7 +9,7 @@
 
 
 
-
+
 
-
-
\ No newline at end of file
+
+
\ No newline at end of file

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbutton-torbuttonproperties] Update translations for torbutton-torbuttonproperties

2016-09-30 Thread translation
commit 31fe591edeebb771fb9ba352a798ed9a4ef64aed
Author: Translation commit bot 
Date:   Fri Sep 30 08:16:32 2016 +

Update translations for torbutton-torbuttonproperties
---
 vi/torbutton.properties | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/vi/torbutton.properties b/vi/torbutton.properties
index 56b04e9..660fd10 100644
--- a/vi/torbutton.properties
+++ b/vi/torbutton.properties
@@ -18,8 +18,8 @@ torbutton.popup.external.suggest = To be safe, you should 
only open downloaded f
 torbutton.popup.launch = Download file
 torbutton.popup.cancel = Hủy bỏ
 torbutton.popup.dontask = Automatically download files from now on
-torbutton.popup.prompted_language = Để bạn có thêm sư riêng tư, 
Torbutton có thể yêu cầu trang mạng sử dụng phiên bản Tiếng 
Anh. Đây có thể là nguyên nhân trang mạng mà bạn đề nghị 
hiển thị tiến bản địa lại hiển thị Tiếng Anh.\n\nBạn có 
muốn yêu cầu trang mạng tiếng anh để có thêm sự riêng tư?
-torbutton.popup.no_newnym = Torbutton có thể đưa bạn một danh tính 
mới một cách không an toàn. Nó không hề truy cập vào Tor Control 
Port.\n\nCó phải bạn đang dùng Tor Browser Bundle?
+torbutton.popup.prompted_language = Để bạn có thêm sư riêng tư, 
Torbutton có thể yêu cầu trang mạng sử dụng phiên bản Tiếng 
Anh. Việc này có thể gây ra việc những trang bạn muốn đọc 
bằng tiếng mẹ đẻ lại hiển thị bằng tiếng Anh thay vào 
đó.\n\nBạn có muốn yêu cầu trang mạng bằng tiếng Anh để có 
thêm sự riêng tư?
+torbutton.popup.no_newnym = Torbutton không thể đưa bạn một danh 
tính mới một cách an toàn. Nó không có đường truy cập vào Tor 
Control Port.\n\nCó phải bạn đang dùng Tor Browser Bundle?
 torbutton.title.prompt_torbrowser = Important Torbutton Information
 torbutton.popup.prompt_torbrowser = Torbutton works differently now: you can't 
turn it off any more.\n\nWe made this change because it isn't safe to use 
Torbutton in a browser that's also used for non-Tor browsing. There were too 
many bugs there that we couldn't fix any other way.\n\nIf you want to keep 
using Firefox normally, you should uninstall Torbutton and download Tor Browser 
Bundle. The privacy properties of Tor Browser are also superior to those of 
normal Firefox, even when Firefox is used with Torbutton.\n\nTo remove 
Torbutton, go to Tools->Addons->Extensions and then click the Remove button 
next to Torbutton.
 torbutton.popup.short_torbrowser = Important Torbutton 
Information!\n\nTorbutton is now always enabled.\n\nClick on the Torbutton for 
more information.

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbutton-aboutdialogdtd_completed] Update translations for torbutton-aboutdialogdtd_completed

2016-09-30 Thread translation
commit 5d12ce05a705a7e63f6ac33dbb72bcaa34aa833e
Author: Translation commit bot 
Date:   Fri Sep 30 08:17:01 2016 +

Update translations for torbutton-aboutdialogdtd_completed
---
 vi/aboutdialog.dtd | 19 +++
 1 file changed, 19 insertions(+)

diff --git a/vi/aboutdialog.dtd b/vi/aboutdialog.dtd
new file mode 100644
index 000..1b75258
--- /dev/null
+++ b/vi/aboutdialog.dtd
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbutton-aboutdialogdtd] Update translations for torbutton-aboutdialogdtd

2016-09-30 Thread translation
commit e1c268e3061e97810e854ee0bb1abfebf0c12657
Author: Translation commit bot 
Date:   Fri Sep 30 08:16:58 2016 +

Update translations for torbutton-aboutdialogdtd
---
 vi/aboutdialog.dtd | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/vi/aboutdialog.dtd b/vi/aboutdialog.dtd
index dfa940d..1b75258 100644
--- a/vi/aboutdialog.dtd
+++ b/vi/aboutdialog.dtd
@@ -16,4 +16,4 @@
 
 
 
-
+

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-authdtd] Update translations for tor-messenger-authdtd

2016-09-30 Thread translation
commit fb5ef7ffe2cb0eb620872fb8f9f917a2a1d5da2a
Author: Translation commit bot 
Date:   Fri Sep 30 08:17:14 2016 +

Update translations for tor-messenger-authdtd
---
 vi/auth.dtd | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/vi/auth.dtd b/vi/auth.dtd
index 26a6f31..cd77d53 100644
--- a/vi/auth.dtd
+++ b/vi/auth.dtd
@@ -9,10 +9,10 @@
 
 
 
-
-
-
-
+
+
+
+
 
 
 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-launcher-network-settings] Update translations for tor-launcher-network-settings

2016-09-30 Thread translation
commit 415ea9c13de87ac57878543983a7b36a59020ca3
Author: Translation commit bot 
Date:   Fri Sep 30 08:16:05 2016 +

Update translations for tor-launcher-network-settings
---
 vi/network-settings.dtd | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/vi/network-settings.dtd b/vi/network-settings.dtd
index 7edd075..fdf52ed 100644
--- a/vi/network-settings.dtd
+++ b/vi/network-settings.dtd
@@ -16,11 +16,11 @@
 
 
 
-
+
 
 
-
-
+
+
 
 
 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/whisperback] Update translations for whisperback

2016-09-30 Thread translation
commit 39b9323bd64621a23d1c53c72a31abc8cc66afde
Author: Translation commit bot 
Date:   Fri Sep 30 08:15:14 2016 +

Update translations for whisperback
---
 vi/vi.po | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/vi/vi.po b/vi/vi.po
index 9b96a7e..6c1df8a 100644
--- a/vi/vi.po
+++ b/vi/vi.po
@@ -10,7 +10,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2015-12-16 19:54+0100\n"
-"PO-Revision-Date: 2016-09-30 07:43+\n"
+"PO-Revision-Date: 2016-09-30 08:00+\n"
 "Last-Translator: Khanh Nguyen \n"
 "Language-Team: Vietnamese 
(http://www.transifex.com/otf/torproject/language/vi/)\n"
 "MIME-Version: 1.0\n"
@@ -81,20 +81,20 @@ msgid ""
 "The bug report could not be sent, likely due to network problems. Please try 
to reconnect to the network and click send again.\n"
 "\n"
 "If it does not work, you will be offered to save the bug report."
-msgstr ""
+msgstr "\n\nBáo cáo lỗi không thể gửi đi được, có thể do 
vấn đề mạng lưới. Vui lòng thử kết nội lại với mạng 
lưới và bấm gửi lại.\n\nNếu nó không hoạt động, bạn sẽ 
được mời để lưu lại báo cáo lỗi."
 
 #: ../whisperBack/gui.py:269
 msgid "Your message has been sent."
-msgstr ""
+msgstr "Thông điệp của bạn đã được gửi đi."
 
 #: ../whisperBack/gui.py:276
 msgid "An error occured during encryption."
-msgstr ""
+msgstr "Một lỗi xảy ra trong quá trình mã hóa."
 
 #: ../whisperBack/gui.py:296
 #, python-format
 msgid "Unable to save %s."
-msgstr ""
+msgstr "Không thể lưu %s."
 
 #: ../whisperBack/gui.py:319
 #, python-format

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torcheck] Update translations for torcheck

2016-09-30 Thread translation
commit c2328a20bb9bae63a06c3a9bdf814c0dc942784f
Author: Translation commit bot 
Date:   Fri Sep 30 08:15:08 2016 +

Update translations for torcheck
---
 vi/torcheck.po | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/vi/torcheck.po b/vi/torcheck.po
index 2efe7ff..9af5daf 100644
--- a/vi/torcheck.po
+++ b/vi/torcheck.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "POT-Creation-Date: 2012-02-16 20:28+PDT\n"
-"PO-Revision-Date: 2016-09-30 07:36+\n"
+"PO-Revision-Date: 2016-09-30 08:00+\n"
 "Last-Translator: Khanh Nguyen \n"
 "Language-Team: Vietnamese 
(http://www.transifex.com/otf/torproject/language/vi/)\n"
 "MIME-Version: 1.0\n"
@@ -73,13 +73,13 @@ msgid ""
 msgstr "Dự án Tor là một US 501(c)(3) không lợi nhuận chuyên dùng 
cho nghiên cứu, phát triển và giáo dục về vô danh và riêng tư 
trực tuyến"
 
 msgid "Learn More "
-msgstr ""
+msgstr "Tìm hiểu thêm "
 
 msgid "Go"
 msgstr "Đi"
 
 msgid "Short User Manual"
-msgstr ""
+msgstr "Hướng dẫn sử dụng ngắn gọn"
 
 msgid "Donate to Support Tor"
 msgstr "Đóng góp để hỗ trợ Tor"

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbutton-abouttbupdatedtd_completed] Update translations for torbutton-abouttbupdatedtd_completed

2016-09-30 Thread translation
commit e8215fc2b3f21e1a5ce6345026856f92b2662367
Author: Translation commit bot 
Date:   Fri Sep 30 07:48:39 2016 +

Update translations for torbutton-abouttbupdatedtd_completed
---
 vi/abouttbupdate.dtd | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/vi/abouttbupdate.dtd b/vi/abouttbupdate.dtd
new file mode 100644
index 000..b662c45
--- /dev/null
+++ b/vi/abouttbupdate.dtd
@@ -0,0 +1,6 @@
+
+
+
+
+
+

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbutton-abouttbupdatedtd] Update translations for torbutton-abouttbupdatedtd

2016-09-30 Thread translation
commit 5657d6bd8297c3341db9e8291c664e815db3470d
Author: Translation commit bot 
Date:   Fri Sep 30 07:48:35 2016 +

Update translations for torbutton-abouttbupdatedtd
---
 vi/abouttbupdate.dtd | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/vi/abouttbupdate.dtd b/vi/abouttbupdate.dtd
index 4f0a9d4..b662c45 100644
--- a/vi/abouttbupdate.dtd
+++ b/vi/abouttbupdate.dtd
@@ -1,6 +1,6 @@
 
-
-
-
+
+
+
 
-
+

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-prefsdtd] Update translations for tor-messenger-prefsdtd

2016-09-30 Thread translation
commit 401a851b0cb9231a3811dff1de45e18f73a23df9
Author: Translation commit bot 
Date:   Fri Sep 30 07:48:15 2016 +

Update translations for tor-messenger-prefsdtd
---
 vi/prefs.dtd | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/vi/prefs.dtd b/vi/prefs.dtd
index fbb5c89..7cc9214 100644
--- a/vi/prefs.dtd
+++ b/vi/prefs.dtd
@@ -1,13 +1,13 @@
 
 
 
-
+
 
-
-
+
+
 
 
-
+
 
 
 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-imtooltipproperties] Update translations for tor-messenger-imtooltipproperties

2016-09-30 Thread translation
commit 88a3655b218ed90128d4682b749417d21431bb99
Author: Translation commit bot 
Date:   Fri Sep 30 07:47:54 2016 +

Update translations for tor-messenger-imtooltipproperties
---
 vi/imtooltip.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/vi/imtooltip.properties b/vi/imtooltip.properties
index e4460ed..0d32805 100644
--- a/vi/imtooltip.properties
+++ b/vi/imtooltip.properties
@@ -3,5 +3,5 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 buddy.username=Tên người dùng
-buddy.account=Account
+buddy.account=Tài khoản
 contact.tags=Tags

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-fingerdtd] Update translations for tor-messenger-fingerdtd

2016-09-30 Thread translation
commit e00ffa7e9a4664e6f32d266ffef7e90dc95bc9ca
Author: Translation commit bot 
Date:   Fri Sep 30 07:47:48 2016 +

Update translations for tor-messenger-fingerdtd
---
 vi/finger.dtd | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/vi/finger.dtd b/vi/finger.dtd
index 28cb374..acc9685 100644
--- a/vi/finger.dtd
+++ b/vi/finger.dtd
@@ -1,14 +1,14 @@
 
-
+
 
-
+
 
-
-
+
+
 
-
-
-
+
+
+
 
 
 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbutton-aboutdialogdtd] Update translations for torbutton-aboutdialogdtd

2016-09-30 Thread translation
commit 7b9bbfb761d50d1020b1e6c92a3138393cd8bda9
Author: Translation commit bot 
Date:   Fri Sep 30 07:47:02 2016 +

Update translations for torbutton-aboutdialogdtd
---
 vi/aboutdialog.dtd | 18 +-
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/vi/aboutdialog.dtd b/vi/aboutdialog.dtd
index d96a665..dfa940d 100644
--- a/vi/aboutdialog.dtd
+++ b/vi/aboutdialog.dtd
@@ -1,19 +1,19 @@
 
 
-
-
+
+
 
-
+
 
-
-
+
+
 
-
+
 
 
-
+
 
-
+
 
-
+
 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-messenger-authdtd] Update translations for tor-messenger-authdtd

2016-09-30 Thread translation
commit f9683f3bae01308ceef659a39ec30e5e94259e3e
Author: Translation commit bot 
Date:   Fri Sep 30 07:47:18 2016 +

Update translations for tor-messenger-authdtd
---
 vi/auth.dtd | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/vi/auth.dtd b/vi/auth.dtd
index 8b9d061..26a6f31 100644
--- a/vi/auth.dtd
+++ b/vi/auth.dtd
@@ -4,11 +4,11 @@
 
 
 
-
-
-
-
-
+
+
+
+
+
 
 
 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbutton-branddtd_completed] Update translations for torbutton-branddtd_completed

2016-09-30 Thread translation
commit 5d5117fb096f67818edfe20be3718dfc1f8bac33
Author: Translation commit bot 
Date:   Fri Sep 30 07:46:34 2016 +

Update translations for torbutton-branddtd_completed
---
 vi/brand.dtd | 15 +++
 1 file changed, 15 insertions(+)

diff --git a/vi/brand.dtd b/vi/brand.dtd
new file mode 100644
index 000..4ac614c
--- /dev/null
+++ b/vi/brand.dtd
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbutton-branddtd] Update translations for torbutton-branddtd

2016-09-30 Thread translation
commit 654862e5897339ec38855d1e991eaa175abc627d
Author: Translation commit bot 
Date:   Fri Sep 30 07:46:31 2016 +

Update translations for torbutton-branddtd
---
 vi/brand.dtd | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/vi/brand.dtd b/vi/brand.dtd
index 6664eca..4ac614c 100644
--- a/vi/brand.dtd
+++ b/vi/brand.dtd
@@ -6,10 +6,10 @@
 
 
 
-
+
 
 
-
-
-
-
+
+
+
+

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/abouttor-homepage] Update translations for abouttor-homepage

2016-09-30 Thread translation
commit 29bfef41801c8796c04d2fc66554a0502342edb8
Author: Translation commit bot 
Date:   Fri Sep 30 07:46:20 2016 +

Update translations for abouttor-homepage
---
 vi/aboutTor.dtd | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/vi/aboutTor.dtd b/vi/aboutTor.dtd
index 8a349b5..b234d29 100644
--- a/vi/aboutTor.dtd
+++ b/vi/aboutTor.dtd
@@ -6,14 +6,14 @@
 
 
 
-
+
 
-
+
 
-
+
 
-
-
+
+
 
 
 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/tor-launcher-network-settings] Update translations for tor-launcher-network-settings

2016-09-30 Thread translation
commit c7eeb6aa6696a00e50f3543a6cf2c96b819a434b
Author: Translation commit bot 
Date:   Fri Sep 30 07:46:09 2016 +

Update translations for tor-launcher-network-settings
---
 vi/network-settings.dtd | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/vi/network-settings.dtd b/vi/network-settings.dtd
index 3a89ba1..7edd075 100644
--- a/vi/network-settings.dtd
+++ b/vi/network-settings.dtd
@@ -1,8 +1,8 @@
 
 
 
-
-
+
+
 
 
 
@@ -12,10 +12,10 @@
 
 
 
-
-
+
+
 
-
+
 
 
 

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


[tor-commits] [translation/torbirdy] Update translations for torbirdy

2016-09-30 Thread translation
commit 7a2ed25e9a5ae3896a4da23e5f638ac5281b8b6d
Author: Translation commit bot 
Date:   Fri Sep 30 07:45:46 2016 +

Update translations for torbirdy
---
 vi/torbirdy.dtd | 38 +++---
 1 file changed, 19 insertions(+), 19 deletions(-)

diff --git a/vi/torbirdy.dtd b/vi/torbirdy.dtd
index 12427c4..8789c8d 100644
--- a/vi/torbirdy.dtd
+++ b/vi/torbirdy.dtd
@@ -17,42 +17,42 @@
 
 
 
-
+
 
-
+
 
-
+
 
 
 
-
+
 
-
+
 
-
+
 
-
+
 
 
 
 
-
+
 
-
+
 
-
+
 
-
+
 
-
+
 
-
-
+
+
 
 
-
-
-
-
+
+
+
+
 
-
+

___
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits


  1   2   >