[tor-commits] [nyx/master] Drop _draw_bandwidth_stats()

2016-06-25 Thread atagar
commit 973da9b991803cac0640982c2b9a31f14d11a103
Author: Damian Johnson 
Date:   Sun May 29 10:24:29 2016 -0700

Drop _draw_bandwidth_stats()

I can see why we had this but... it's confusing. On small screen 
resolutions we
replaced our y-axis with the average and total bandwidth usage. This only
applied when rendering bandwidths and it's debatable if this is more 
valuable
than the y-axis.

On my netbook (which is just 100 colums wide) we still show the averages 
(just
dropping the total) which imho works just fine. We might try something else 
if
this makes anyone sad.
---
 nyx/panel/graph.py  | 27 +++
 test/panel/graph.py | 13 +
 2 files changed, 4 insertions(+), 36 deletions(-)

diff --git a/nyx/panel/graph.py b/nyx/panel/graph.py
index c35df13..d3ed768 100644
--- a/nyx/panel/graph.py
+++ b/nyx/panel/graph.py
@@ -51,7 +51,6 @@ PRIMARY_COLOR, SECONDARY_COLOR = GREEN, CYAN
 ACCOUNTING_RATE = 5
 DEFAULT_CONTENT_HEIGHT = 4  # space needed for labeling above and below the 
graph
 WIDE_LABELING_GRAPH_COL = 50  # minimum graph columns to use wide spacing for 
x-axis labels
-COLLAPSE_WIDTH = 135  # width at which to move optional stats from the title 
to x-axis label
 
 
 def conf_handler(key, value):
@@ -228,7 +227,7 @@ class GraphCategory(object):
   header = CONFIG['attr.graph.header.secondary'].get(self.stat_type(), '')
   header_stats = self._secondary_header_stats
 
-header_stats = join(header_stats, '', width - len(header) - 4)
+header_stats = join(header_stats, '', width - len(header) - 4).rstrip()
 return '%s (%s):' % (header, header_stats) if header_stats else '%s:' % 
header
 
   def _y_axis_label(self, value, is_primary):
@@ -560,12 +559,8 @@ class GraphPanel(nyx.panel.Panel):
 self._draw_subgraph(subwindow, attr, attr.stat.primary, 0, PRIMARY_COLOR)
 self._draw_subgraph(subwindow, attr, attr.stat.secondary, 
attr.subgraph_width, SECONDARY_COLOR)
 
-if attr.stat.stat_type() == GraphStat.BANDWIDTH:
-  if subwindow.width <= COLLAPSE_WIDTH:
-_draw_bandwidth_stats(subwindow, DEFAULT_CONTENT_HEIGHT + 
attr.subgraph_height - 4, attr.stat, attr.subgraph_width)
-
-  if accounting_stats:
-_draw_accounting_stats(subwindow, DEFAULT_CONTENT_HEIGHT + 
attr.subgraph_height - 2, accounting_stats)
+if attr.stat.stat_type() == GraphStat.BANDWIDTH and accounting_stats:
+  _draw_accounting_stats(subwindow, DEFAULT_CONTENT_HEIGHT + 
attr.subgraph_height - 2, accounting_stats)
 
   def _draw_subgraph(self, subwindow, attr, data, x, color):
 # Concering our subgraph colums, the y-axis label can be at most six
@@ -709,22 +704,6 @@ class GraphPanel(nyx.panel.Panel):
 self.redraw(True)
 
 
-def _draw_bandwidth_stats(subwindow, y, stat, subgraph_width):
-  """
-  Replaces the x-axis labeling with bandwidth stats. This is done on small
-  screens since this information otherwise wouldn't fit.
-  """
-
-  subwindow.addstr(0, y, ' ' * 500)  # clear line
-
-  runtime = time.time() - stat.start_time
-  primary_footer = 'total: %s, avg: %s/sec' % 
(_size_label(stat.primary.total), _size_label(stat.primary.total / runtime))
-  secondary_footer = 'total: %s, avg: %s/sec' % 
(_size_label(stat.secondary.total), _size_label(stat.secondary.total / runtime))
-
-  subwindow.addstr(1, y, primary_footer, PRIMARY_COLOR)
-  subwindow.addstr(subgraph_width + 1, y, secondary_footer, SECONDARY_COLOR)
-
-
 def _draw_accounting_stats(subwindow, y, accounting):
   if tor_controller().is_alive():
 hibernate_color = CONFIG['attr.hibernate_color'].get(accounting.status, 
RED)
diff --git a/test/panel/graph.py b/test/panel/graph.py
index 40c07fb..f2eca4b 100644
--- a/test/panel/graph.py
+++ b/test/panel/graph.py
@@ -11,7 +11,7 @@ import nyx.panel.graph
 import test
 
 from test import require_curses
-from mock import patch, Mock
+from mock import patch
 
 EXPECTED_ACCOUNTING = """
 Accounting (awake) Time to reset: 01:02
@@ -21,17 +21,6 @@ Accounting (awake) Time to reset: 01:02
 
 class TestGraph(unittest.TestCase):
   @require_curses
-  @patch('time.time', Mock(return_value = 460.0))
-  def test_draw_bandwidth_stats(self):
-stat = Mock()
-stat.start_time = 215.0
-stat.primary.total = 2306867.2
-stat.secondary.total = 1782579.2
-
-rendered = test.render(nyx.panel.graph._draw_bandwidth_stats, 0, stat, 40)
-self.assertEqual(' total: 17.6 Mb, avg: 73.5 Kb/sectotal: 13.5 Mb, 
avg: 56.8 Kb/sec', rendered.content)
-
-  @require_curses
   @patch('nyx.panel.graph.tor_controller')
   def test_draw_accounting_stats(self, tor_controller_mock):
 tor_controller_mock().is_alive.return_value = True



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


[tor-commits] [nyx/master] Header panel testing failure due to system calls

2016-06-25 Thread atagar
commit ede4af404c14e7297e43845714e1baf1f5d900e8
Author: Damian Johnson 
Date:   Sun May 29 08:36:44 2016 -0700

Header panel testing failure due to system calls

System calls by our tests caused our nyx cpu time assertion to fail...

  ==
  FAIL: test_sample (panel.header.TestHeader)
  --
  Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/mock.py", line 1201, in 
patched
  return func(*args, **keywargs)
File "/home/atagar/Desktop/nyx/test/panel/header.py", line 151, in 
test_sample
  self.assertEqual(0.11, vals.nyx_total_cpu_time)
  AssertionError: 0.11 != 1.6735180473327638

  --
---
 test/panel/header.py | 1 +
 1 file changed, 1 insertion(+)

diff --git a/test/panel/header.py b/test/panel/header.py
index 62d54af..e8502d9 100644
--- a/test/panel/header.py
+++ b/test/panel/header.py
@@ -123,6 +123,7 @@ class TestHeader(unittest.TestCase):
 resources.memory_percent = .125
 
 resource_tracker_mock().get_value.return_value = resources
+stem.util.system.SYSTEM_CALL_TIME = 0.0
 
 vals = nyx.panel.header.Sampling.create()
 



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


[tor-commits] [nyx/master] Drop right-to-left graphing option

2016-06-25 Thread atagar
commit c3af7d8655cae68320b590c0f225b97c97803246
Author: Damian Johnson 
Date:   Sat Jun 25 17:03:14 2016 -0700

Drop right-to-left graphing option

I was very lukewarm about accepting the pull request originally. This is an
option that feels like just clutter to me. If there were more people that
wanted this then sure, but only ever heard the ask from a single person.
---
 nyx/panel/graph.py  | 14 +++---
 test/panel/graph.py |  2 --
 2 files changed, 3 insertions(+), 13 deletions(-)

diff --git a/nyx/panel/graph.py b/nyx/panel/graph.py
index a2a00bc..e35e972 100644
--- a/nyx/panel/graph.py
+++ b/nyx/panel/graph.py
@@ -33,7 +33,7 @@ GraphStat = enum.Enum(('BANDWIDTH', 'bandwidth'), 
('CONNECTIONS', 'connections')
 Interval = enum.Enum(('EACH_SECOND', 'each second'), ('FIVE_SECONDS', '5 
seconds'), ('THIRTY_SECONDS', '30 seconds'), ('MINUTELY', 'minutely'), 
('FIFTEEN_MINUTE', '15 minute'), ('THIRTY_MINUTE', '30 minute'), ('HOURLY', 
'hourly'), ('DAILY', 'daily'))
 Bounds = enum.Enum(('GLOBAL_MAX', 'global_max'), ('LOCAL_MAX', 'local_max'), 
('TIGHT', 'tight'))
 
-DrawAttributes = collections.namedtuple('DrawAttributes', ('stat', 
'subgraph_height', 'subgraph_width', 'interval', 'bounds_type', 
'right_to_left'))
+DrawAttributes = collections.namedtuple('DrawAttributes', ('stat', 
'subgraph_height', 'subgraph_width', 'interval', 'bounds_type'))
 
 INTERVAL_SECONDS = {
   Interval.EACH_SECOND: 1,
@@ -82,7 +82,6 @@ CONFIG = conf.config_dict('nyx', {
   'features.graph.interval': Interval.EACH_SECOND,
   'features.graph.bound': Bounds.LOCAL_MAX,
   'features.graph.max_width': 300,  # we need some sort of max size so we know 
how much graph data to retain
-  'features.graph.right_to_left': False,
   'features.panels.show.connection': True,
   'features.graph.bw.transferInBytes': False,
   'features.graph.bw.accounting.show': True,
@@ -579,7 +578,6 @@ class GraphPanel(nyx.panel.Panel):
   subgraph_width = min(subwindow.width / 2, 
CONFIG['features.graph.max_width']),
   interval = self.update_interval,
   bounds_type = self.bounds_type,
-  right_to_left = CONFIG['features.graph.right_to_left'],
 )
 
 subwindow.addstr(0, 0, attr.stat.title(subwindow.width), HIGHLIGHT)
@@ -633,10 +631,7 @@ def _draw_subgraph(subwindow, attr, data, x, color, 
fill_char = ' '):
   subwindow.addstr(x, 1, data.header(attr.subgraph_width), color, BOLD)
 
   for x_offset, label in x_axis_labels.items():
-if attr.right_to_left:
-  subwindow.addstr(x + attr.subgraph_width - x_offset, 
attr.subgraph_height, label, color)
-else:
-  subwindow.addstr(x + x_offset + axis_offset, attr.subgraph_height, 
label, color)
+subwindow.addstr(x + x_offset + axis_offset, attr.subgraph_height, label, 
color)
 
   for y, label in y_axis_labels.items():
 subwindow.addstr(x, y, label, color)
@@ -646,10 +641,7 @@ def _draw_subgraph(subwindow, attr, data, x, color, 
fill_char = ' '):
 column_height = int(min(attr.subgraph_height - 2, (attr.subgraph_height - 
2) * column_count / (max(1, max_bound) - min_bound)))
 
 for row in range(column_height):
-  if attr.right_to_left:
-subwindow.addstr(x + attr.subgraph_width - col - 1, 
attr.subgraph_height - 1 - row, fill_char, color, HIGHLIGHT)
-  else:
-subwindow.addstr(x + col + axis_offset + 1, attr.subgraph_height - 1 - 
row, fill_char, color, HIGHLIGHT)
+  subwindow.addstr(x + col + axis_offset + 1, attr.subgraph_height - 1 - 
row, fill_char, color, HIGHLIGHT)
 
 
 def _x_axis_labels(interval, subgraph_columns):
diff --git a/test/panel/graph.py b/test/panel/graph.py
index a013d59..5327cba 100644
--- a/test/panel/graph.py
+++ b/test/panel/graph.py
@@ -102,7 +102,6 @@ class TestGraph(unittest.TestCase):
   subgraph_width = 30,
   interval = nyx.panel.graph.Interval.EACH_SECOND,
   bounds_type = nyx.panel.graph.Bounds.LOCAL_MAX,
-  right_to_left = False,
 )
 
 data = nyx.panel.graph.BandwidthStats()
@@ -121,7 +120,6 @@ class TestGraph(unittest.TestCase):
   subgraph_width = 30,
   interval = nyx.panel.graph.Interval.EACH_SECOND,
   bounds_type = nyx.panel.graph.Bounds.LOCAL_MAX,
-  right_to_left = False,
 )
 
 data = nyx.panel.graph.BandwidthStats()



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


[tor-commits] [nyx/master] Replace _get_graph_bounds() with a GraphData method

2016-06-25 Thread atagar
commit f0fe40933d9ffe5d05474f694eec2d7221eff190
Author: Damian Johnson 
Date:   Sat Jun 25 16:39:40 2016 -0700

Replace _get_graph_bounds() with a GraphData method

Good candidate for the GraphData. It has all the information we need and is
fitting there.
---
 nyx/panel/graph.py | 62 +-
 1 file changed, 33 insertions(+), 29 deletions(-)

diff --git a/nyx/panel/graph.py b/nyx/panel/graph.py
index 70b7426..49f79ff 100644
--- a/nyx/panel/graph.py
+++ b/nyx/panel/graph.py
@@ -97,7 +97,6 @@ class GraphData(object):
   :var int total: sum of all values we've recorded
   :var int tick: number of events we've processed
   :var dict values: mapping of intervals to an array of samplings from newest 
to oldest
-  :var dict max_value: mapping of intervals to the maximum value it has had
   """
 
   def __init__(self, clone = None, category = None, is_primary = True):
@@ -106,21 +105,21 @@ class GraphData(object):
   self.total = clone.total
   self.tick = clone.tick
   self.values = copy.deepcopy(clone.values)
-  self.max_value = dict(clone.max_value)
 
   self._category = clone._category
   self._is_primary = clone._is_primary
   self._in_process_value = dict(clone._in_process_value)
+  self._max_value = dict(clone._max_value)
 else:
   self.latest_value = 0
   self.total = 0
   self.tick = 0
   self.values = dict([(i, CONFIG['features.graph.max_width'] * [0]) for i 
in Interval])
-  self.max_value = dict([(i, 0) for i in Interval])
 
   self._category = category
   self._is_primary = is_primary
   self._in_process_value = dict([(i, 0) for i in Interval])
+  self._max_value = dict([(i, 0) for i in Interval])  # interval => 
maximum value it's had
 
   def average(self):
 return self.total / max(1, self.tick)
@@ -137,7 +136,7 @@ class GraphData(object):
   if self.tick % interval_seconds == 0:
 new_entry = self._in_process_value[interval] / interval_seconds
 self.values[interval] = [new_entry] + self.values[interval][:-1]
-self.max_value[interval] = max(self.max_value[interval], new_entry)
+self._max_value[interval] = max(self._max_value[interval], new_entry)
 self._in_process_value[interval] = 0
 
   def header(self, width):
@@ -151,6 +150,35 @@ class GraphData(object):
 
 return self._category._header(width, self._is_primary)
 
+  def bounds(self, bounds, interval, columns):
+"""
+Range of values for the graph.
+
+:param Bounds bounds: boundary type for the range we want
+:param Interval interval: timing interval of the values
+:param int columns: number of values to take into account
+
+:returns: **tuple** of the form (min, max)
+"""
+
+min_bound, max_bound = 0, 0
+values = self.values[interval][:columns]
+
+if bounds == Bounds.GLOBAL_MAX:
+  max_bound = self._max_value[interval]
+elif columns > 0:
+  max_bound = max(values)  # local maxima
+
+if bounds == Bounds.TIGHT and columns > 0:
+  min_bound = min(values)
+
+  # if the max = min pick zero so we still display something
+
+  if min_bound == max_bound:
+min_bound = 0
+
+return min_bound, max_bound
+
   def y_axis_label(self, value):
 """
 Provides the label we should display on our y-axis.
@@ -595,7 +623,7 @@ def _draw_subgraph(subwindow, attr, data, x, color):
   # the y_axis_labels.
 
   subgraph_columns = attr.subgraph_width - 8
-  min_bound, max_bound = _get_graph_bounds(attr, data, subgraph_columns)
+  min_bound, max_bound = data.bounds(attr.bounds_type, attr.interval, 
subgraph_columns)
 
   x_axis_labels = _x_axis_labels(attr.interval, subgraph_columns)
   y_axis_labels = _y_axis_labels(attr.subgraph_height, data, min_bound, 
max_bound)
@@ -624,30 +652,6 @@ def _draw_subgraph(subwindow, attr, data, x, color):
 subwindow.addstr(x + col + axis_offset + 1, attr.subgraph_height - 1 - 
row, ' ', color, HIGHLIGHT)
 
 
-def _get_graph_bounds(attr, data, subgraph_columns):
-  """
-  Provides the range the graph shows (ie, its minimum and maximum value).
-  """
-
-  min_bound, max_bound = 0, 0
-  values = data.values[attr.interval][:subgraph_columns]
-
-  if attr.bounds_type == Bounds.GLOBAL_MAX:
-max_bound = data.max_value[attr.interval]
-  elif subgraph_columns > 0:
-max_bound = max(values)  # local maxima
-
-  if attr.bounds_type == Bounds.TIGHT and subgraph_columns > 0:
-min_bound = min(values)
-
-# if the max = min pick zero so we still display something
-
-if min_bound == max_bound:
-  min_bound = 0
-
-  return min_bound, max_bound
-
-
 def _x_axis_labels(interval, subgraph_columns):
   """
   Provides the labels for the x-axis. We include the units for only its first



___
tor-commits mailing list
tor-commits@lists.torproject.org

[tor-commits] [nyx/master] Test for rendering subgraphs

2016-06-25 Thread atagar
commit 084d328c4782695707ba15f2dc483c069339fcb6
Author: Damian Johnson 
Date:   Sat Jun 25 17:01:00 2016 -0700

Test for rendering subgraphs
---
 nyx/panel/graph.py  |  6 +++---
 test/panel/graph.py | 31 ++-
 2 files changed, 33 insertions(+), 4 deletions(-)

diff --git a/nyx/panel/graph.py b/nyx/panel/graph.py
index 49f79ff..a2a00bc 100644
--- a/nyx/panel/graph.py
+++ b/nyx/panel/graph.py
@@ -616,7 +616,7 @@ class GraphPanel(nyx.panel.Panel):
 self.redraw(True)
 
 
-def _draw_subgraph(subwindow, attr, data, x, color):
+def _draw_subgraph(subwindow, attr, data, x, color, fill_char = ' '):
   # Concering our subgraph colums, the y-axis label can be at most six
   # characters, with two spaces of padding on either side of the graph.
   # Starting with the smallest size, then possibly raise it after determing
@@ -647,9 +647,9 @@ def _draw_subgraph(subwindow, attr, data, x, color):
 
 for row in range(column_height):
   if attr.right_to_left:
-subwindow.addstr(x + attr.subgraph_width - col - 1, 
attr.subgraph_height - 1 - row, ' ', color, HIGHLIGHT)
+subwindow.addstr(x + attr.subgraph_width - col - 1, 
attr.subgraph_height - 1 - row, fill_char, color, HIGHLIGHT)
   else:
-subwindow.addstr(x + col + axis_offset + 1, attr.subgraph_height - 1 - 
row, ' ', color, HIGHLIGHT)
+subwindow.addstr(x + col + axis_offset + 1, attr.subgraph_height - 1 - 
row, fill_char, color, HIGHLIGHT)
 
 
 def _x_axis_labels(interval, subgraph_columns):
diff --git a/test/panel/graph.py b/test/panel/graph.py
index c8635e1..a013d59 100644
--- a/test/panel/graph.py
+++ b/test/panel/graph.py
@@ -29,6 +29,16 @@ Accounting (awake) Time to reset: 01:02
   37.7 Kb / 842.0 Kb 16.0 Kb / 74.1 Kb
 """.strip()
 
+EXPECTED_GRAPH = """
+Download:
+5 Kb  *
+  *
+2 Kb  ** *
+ *
+0 b  *
+ 5s   10   15
+""".rstrip()
+
 
 class TestGraph(unittest.TestCase):
   def test_x_axis_labels(self):
@@ -97,11 +107,30 @@ class TestGraph(unittest.TestCase):
 
 data = nyx.panel.graph.BandwidthStats()
 
-rendered = test.render(nyx.panel.graph._draw_subgraph, attr, data.primary, 
0, nyx.curses.Color.CYAN)
+rendered = test.render(nyx.panel.graph._draw_subgraph, attr, data.primary, 
0, nyx.curses.Color.CYAN, '*')
 self.assertEqual(EXPECTED_BLANK_GRAPH, rendered.content)
 
   @require_curses
   @patch('nyx.panel.graph.tor_controller')
+  def test_draw_subgraph(self, tor_controller_mock):
+tor_controller_mock().get_info.return_value = '543,543 421,421 551,551 
710,710 200,200 175,175 188,188 250,250 377,377'
+
+attr = nyx.panel.graph.DrawAttributes(
+  stat = None,
+  subgraph_height = 7,
+  subgraph_width = 30,
+  interval = nyx.panel.graph.Interval.EACH_SECOND,
+  bounds_type = nyx.panel.graph.Bounds.LOCAL_MAX,
+  right_to_left = False,
+)
+
+data = nyx.panel.graph.BandwidthStats()
+
+rendered = test.render(nyx.panel.graph._draw_subgraph, attr, data.primary, 
0, nyx.curses.Color.CYAN, '*')
+self.assertEqual(EXPECTED_GRAPH, rendered.content)
+
+  @require_curses
+  @patch('nyx.panel.graph.tor_controller')
   def test_draw_accounting_stats(self, tor_controller_mock):
 tor_controller_mock().is_alive.return_value = True
 



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


[tor-commits] [nyx/master] Test _draw_bandwidth_stats()

2016-06-25 Thread atagar
commit 0c06b5b49e717849c11ac8e27ca6ce82a2a23a95
Author: Damian Johnson 
Date:   Wed Apr 20 09:51:16 2016 -0700

Test _draw_bandwidth_stats()
---
 nyx/panel/graph.py  | 38 +++---
 test/panel/graph.py | 19 +++
 2 files changed, 34 insertions(+), 23 deletions(-)

diff --git a/nyx/panel/graph.py b/nyx/panel/graph.py
index 1b2a067..c35df13 100644
--- a/nyx/panel/graph.py
+++ b/nyx/panel/graph.py
@@ -562,7 +562,7 @@ class GraphPanel(nyx.panel.Panel):
 
 if attr.stat.stat_type() == GraphStat.BANDWIDTH:
   if subwindow.width <= COLLAPSE_WIDTH:
-self._draw_bandwidth_stats(subwindow, attr, subwindow.width)
+_draw_bandwidth_stats(subwindow, DEFAULT_CONTENT_HEIGHT + 
attr.subgraph_height - 4, attr.stat, attr.subgraph_width)
 
   if accounting_stats:
 _draw_accounting_stats(subwindow, DEFAULT_CONTENT_HEIGHT + 
attr.subgraph_height - 2, accounting_stats)
@@ -683,22 +683,6 @@ class GraphPanel(nyx.panel.Panel):
 
 return x_axis_labels
 
-  def _draw_bandwidth_stats(self, subwindow, attr, width):
-"""
-Replaces the x-axis labeling with bandwidth stats. This is done on small
-screens since this information otherwise wouldn't fit.
-"""
-
-labeling_line = DEFAULT_CONTENT_HEIGHT + attr.subgraph_height - 4
-subwindow.addstr(0, labeling_line, ' ' * width)  # clear line
-
-runtime = time.time() - attr.stat.start_time
-primary_footer = 'total: %s, avg: %s/sec' % 
(_size_label(attr.stat.primary.total), _size_label(attr.stat.primary.total / 
runtime))
-secondary_footer = 'total: %s, avg: %s/sec' % 
(_size_label(attr.stat.secondary.total), _size_label(attr.stat.secondary.total 
/ runtime))
-
-subwindow.addstr(1, labeling_line, primary_footer, PRIMARY_COLOR)
-subwindow.addstr(attr.subgraph_width + 1, labeling_line, secondary_footer, 
SECONDARY_COLOR)
-
   def _update_accounting(self, event):
 if not CONFIG['features.graph.bw.accounting.show']:
   self._accounting_stats = None
@@ -725,6 +709,22 @@ class GraphPanel(nyx.panel.Panel):
 self.redraw(True)
 
 
+def _draw_bandwidth_stats(subwindow, y, stat, subgraph_width):
+  """
+  Replaces the x-axis labeling with bandwidth stats. This is done on small
+  screens since this information otherwise wouldn't fit.
+  """
+
+  subwindow.addstr(0, y, ' ' * 500)  # clear line
+
+  runtime = time.time() - stat.start_time
+  primary_footer = 'total: %s, avg: %s/sec' % 
(_size_label(stat.primary.total), _size_label(stat.primary.total / runtime))
+  secondary_footer = 'total: %s, avg: %s/sec' % 
(_size_label(stat.secondary.total), _size_label(stat.secondary.total / runtime))
+
+  subwindow.addstr(1, y, primary_footer, PRIMARY_COLOR)
+  subwindow.addstr(subgraph_width + 1, y, secondary_footer, SECONDARY_COLOR)
+
+
 def _draw_accounting_stats(subwindow, y, accounting):
   if tor_controller().is_alive():
 hibernate_color = CONFIG['attr.hibernate_color'].get(accounting.status, 
RED)
@@ -735,8 +735,8 @@ def _draw_accounting_stats(subwindow, y, accounting):
 
 subwindow.addstr(35, y, 'Time to reset: %s' % 
str_tools.short_time_label(accounting.time_until_reset))
 
-subwindow.addstr(2, y + 1, '%s / %s' % 
(str_tools.size_label(accounting.read_bytes), 
str_tools.size_label(accounting.read_limit)), PRIMARY_COLOR)
-subwindow.addstr(37, y + 1, '%s / %s' % 
(str_tools.size_label(accounting.written_bytes), 
str_tools.size_label(accounting.write_limit)), SECONDARY_COLOR)
+subwindow.addstr(2, y + 1, '%s / %s' % 
(_size_label(accounting.read_bytes), _size_label(accounting.read_limit)), 
PRIMARY_COLOR)
+subwindow.addstr(37, y + 1, '%s / %s' % 
(_size_label(accounting.written_bytes), _size_label(accounting.write_limit)), 
SECONDARY_COLOR)
   else:
 subwindow.addstr(0, y, 'Accounting:', BOLD)
 subwindow.addstr(12, y, 'Connection Closed...')
diff --git a/test/panel/graph.py b/test/panel/graph.py
index 7ffc48e..40c07fb 100644
--- a/test/panel/graph.py
+++ b/test/panel/graph.py
@@ -11,21 +11,32 @@ import nyx.panel.graph
 import test
 
 from test import require_curses
-from mock import patch
+from mock import patch, Mock
 
 EXPECTED_ACCOUNTING = """
 Accounting (awake) Time to reset: 01:02
-  4 KB / 105 KB  2 KB / 9 KB
+  37.7 Kb / 842.0 Kb 16.0 Kb / 74.1 Kb
 """.strip()
 
 
 class TestGraph(unittest.TestCase):
   @require_curses
+  @patch('time.time', Mock(return_value = 460.0))
+  def test_draw_bandwidth_stats(self):
+stat = Mock()
+stat.start_time = 215.0
+stat.primary.total = 2306867.2
+stat.secondary.total = 1782579.2
+
+rendered = test.render(nyx.panel.graph._draw_bandwidth_stats, 0, stat, 40)
+self.assertEqual(' total: 17.6 Mb, avg: 73.5 Kb/sectotal: 13.5 Mb, 
avg: 56.8 Kb/sec', rendered.content)
+
+  @require_curses
   @patch('nyx.panel.graph.tor_controller')
   def test_draw_accounting_stats(self, tor_controller_mock):
 

[tor-commits] [nyx/master] Test _draw_accounting_stats()

2016-06-25 Thread atagar
commit 28f7b5967d1c99073af70176621340cc442569c2
Author: Damian Johnson 
Date:   Wed Apr 20 09:04:18 2016 -0700

Test _draw_accounting_stats()

Test the graph panel method that renders accounting stats. This also changes
the method to display user friendly units (ex. '5 MB') rather than the raw 
byte
count.
---
 nyx/panel/graph.py  | 42 --
 test/panel/graph.py | 45 +
 2 files changed, 65 insertions(+), 22 deletions(-)

diff --git a/nyx/panel/graph.py b/nyx/panel/graph.py
index 132a7d6..1b2a067 100644
--- a/nyx/panel/graph.py
+++ b/nyx/panel/graph.py
@@ -33,7 +33,7 @@ GraphStat = enum.Enum(('BANDWIDTH', 'bandwidth'), 
('CONNECTIONS', 'connections')
 Interval = enum.Enum(('EACH_SECOND', 'each second'), ('FIVE_SECONDS', '5 
seconds'), ('THIRTY_SECONDS', '30 seconds'), ('MINUTELY', 'minutely'), 
('FIFTEEN_MINUTE', '15 minute'), ('THIRTY_MINUTE', '30 minute'), ('HOURLY', 
'hourly'), ('DAILY', 'daily'))
 Bounds = enum.Enum(('GLOBAL_MAX', 'global_max'), ('LOCAL_MAX', 'local_max'), 
('TIGHT', 'tight'))
 
-DrawAttributes = collections.namedtuple('DrawAttributes', ('stat', 
'subgraph_height', 'subgraph_width', 'interval', 'bounds_type', 'accounting', 
'right_to_left'))
+DrawAttributes = collections.namedtuple('DrawAttributes', ('stat', 
'subgraph_height', 'subgraph_width', 'interval', 'bounds_type', 
'right_to_left'))
 
 INTERVAL_SECONDS = {
   Interval.EACH_SECOND: 1,
@@ -552,7 +552,6 @@ class GraphPanel(nyx.panel.Panel):
   subgraph_width = min(subwindow.width / 2, 
CONFIG['features.graph.max_width']),
   interval = self.update_interval,
   bounds_type = self.bounds_type,
-  accounting = accounting_stats,
   right_to_left = CONFIG['features.graph.right_to_left'],
 )
 
@@ -565,8 +564,8 @@ class GraphPanel(nyx.panel.Panel):
   if subwindow.width <= COLLAPSE_WIDTH:
 self._draw_bandwidth_stats(subwindow, attr, subwindow.width)
 
-  if attr.accounting:
-self._draw_accounting_stats(subwindow, attr)
+  if accounting_stats:
+_draw_accounting_stats(subwindow, DEFAULT_CONTENT_HEIGHT + 
attr.subgraph_height - 2, accounting_stats)
 
   def _draw_subgraph(self, subwindow, attr, data, x, color):
 # Concering our subgraph colums, the y-axis label can be at most six
@@ -700,24 +699,6 @@ class GraphPanel(nyx.panel.Panel):
 subwindow.addstr(1, labeling_line, primary_footer, PRIMARY_COLOR)
 subwindow.addstr(attr.subgraph_width + 1, labeling_line, secondary_footer, 
SECONDARY_COLOR)
 
-  def _draw_accounting_stats(self, subwindow, attr):
-y = DEFAULT_CONTENT_HEIGHT + attr.subgraph_height - 2
-
-if tor_controller().is_alive():
-  hibernate_color = 
CONFIG['attr.hibernate_color'].get(attr.accounting.status, RED)
-
-  x = subwindow.addstr(0, y, 'Accounting (', BOLD)
-  x = subwindow.addstr(x, y, attr.accounting.status, BOLD, hibernate_color)
-  x = subwindow.addstr(x, y, ')', BOLD)
-
-  subwindow.addstr(35, y, 'Time to reset: %s' % 
str_tools.short_time_label(attr.accounting.time_until_reset))
-
-  subwindow.addstr(2, y + 1, '%s / %s' % (attr.accounting.read_bytes, 
attr.accounting.read_limit), PRIMARY_COLOR)
-  subwindow.addstr(37, y + 1, '%s / %s' % (attr.accounting.written_bytes, 
attr.accounting.write_limit), SECONDARY_COLOR)
-else:
-  subwindow.addstr(0, y, 'Accounting:', BOLD)
-  subwindow.addstr(12, y, 'Connection Closed...')
-
   def _update_accounting(self, event):
 if not CONFIG['features.graph.bw.accounting.show']:
   self._accounting_stats = None
@@ -744,6 +725,23 @@ class GraphPanel(nyx.panel.Panel):
 self.redraw(True)
 
 
+def _draw_accounting_stats(subwindow, y, accounting):
+  if tor_controller().is_alive():
+hibernate_color = CONFIG['attr.hibernate_color'].get(accounting.status, 
RED)
+
+x = subwindow.addstr(0, y, 'Accounting (', BOLD)
+x = subwindow.addstr(x, y, accounting.status, BOLD, hibernate_color)
+x = subwindow.addstr(x, y, ')', BOLD)
+
+subwindow.addstr(35, y, 'Time to reset: %s' % 
str_tools.short_time_label(accounting.time_until_reset))
+
+subwindow.addstr(2, y + 1, '%s / %s' % 
(str_tools.size_label(accounting.read_bytes), 
str_tools.size_label(accounting.read_limit)), PRIMARY_COLOR)
+subwindow.addstr(37, y + 1, '%s / %s' % 
(str_tools.size_label(accounting.written_bytes), 
str_tools.size_label(accounting.write_limit)), SECONDARY_COLOR)
+  else:
+subwindow.addstr(0, y, 'Accounting:', BOLD)
+subwindow.addstr(12, y, 'Connection Closed...')
+
+
 def _size_label(byte_count, decimal = 1):
   """
   Alias for str_tools.size_label() that accounts for if the user prefers bits
diff --git a/test/panel/graph.py b/test/panel/graph.py
new file mode 100644
index 000..7ffc48e
--- /dev/null
+++ b/test/panel/graph.py
@@ -0,0 +1,45 @@
+"""
+Unit tests for nyx.panel.graph.
+"""
+
+import datetime
+import unittest
+
+import 

[tor-commits] [nyx/master] Migrate and test graph panel

2016-06-25 Thread atagar
commit 2bb484c4b34826d6d367dafeb2e983aa390d3aea
Merge: 2d418b1 9fec021
Author: Damian Johnson 
Date:   Sat Jun 25 17:46:25 2016 -0700

Migrate and test graph panel

Migrating our graph panel to the new curses rendering and adding tests. In 
an
ideal world I'd also add coverage for the GraphData and other classes but 
I'm
beginning to get frustrated at how long this is dragging on. Lets focus on 
the
curses migration and testing for now...

 nyx/panel/__init__.py |   2 +-
 nyx/panel/graph.py| 300 ++
 test/panel/graph.py   | 134 ++
 test/panel/header.py  |   1 +
 4 files changed, 270 insertions(+), 167 deletions(-)

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


[tor-commits] [nyx/master] Test graphing labels

2016-06-25 Thread atagar
commit fbcdbf7456d90c400ec18e86b706b57da7e4347e
Author: Damian Johnson 
Date:   Sat Jun 25 13:56:03 2016 -0700

Test graphing labels

Kinda sad we need helpers just to generate the graph bounds but there's 
enough
to them they indeed need their own helpers. Adding test coverage.
---
 nyx/panel/graph.py  | 16 +++-
 test/panel/graph.py | 50 ++
 2 files changed, 57 insertions(+), 9 deletions(-)

diff --git a/nyx/panel/graph.py b/nyx/panel/graph.py
index 68c136a..70b7426 100644
--- a/nyx/panel/graph.py
+++ b/nyx/panel/graph.py
@@ -660,21 +660,19 @@ def _x_axis_labels(interval, subgraph_columns):
 
   interval_sec = INTERVAL_SECONDS[interval]
   interval_spacing = 10 if subgraph_columns >= WIDE_LABELING_GRAPH_COL else 5
-  units_label, decimal_precision = None, 0
+  previous_units, decimal_precision = None, 0
 
   for i in range((subgraph_columns - 4) / interval_spacing):
 x = (i + 1) * interval_spacing
 time_label = str_tools.time_label(x * interval_sec, decimal_precision)
 
-if not units_label:
-  units_label = time_label[-1]
-elif units_label != time_label[-1]:
-  # upped scale so also up precision of future measurements
-  units_label = time_label[-1]
-  decimal_precision += 1
+if not previous_units:
+  previous_units = time_label[-1]
+elif previous_units != time_label[-1]:
+  previous_units = time_label[-1]
+  decimal_precision = 1  # raised precision for future measurements
 else:
-  # if constrained on space then strips labeling since already provided
-  time_label = time_label[:-1]
+  time_label = time_label[:-1]  # strip units since already provided
 
 x_axis_labels[x] = time_label
 
diff --git a/test/panel/graph.py b/test/panel/graph.py
index 26fd7da..c8635e1 100644
--- a/test/panel/graph.py
+++ b/test/panel/graph.py
@@ -31,6 +31,56 @@ Accounting (awake) Time to reset: 01:02
 
 
 class TestGraph(unittest.TestCase):
+  def test_x_axis_labels(self):
+test_inputs = {
+  0: {},
+  7: {},
+  10: {5: '25s'},
+  15: {5: '25s', 10: '50'},
+  20: {5: '25s', 10: '50', 15: '1m'},
+  25: {5: '25s', 10: '50', 15: '1m', 20: '1.6'},
+  45: {5: '25s', 10: '50', 15: '1m', 20: '1.6', 25: '2.0', 30: '2.5', 35: 
'2.9', 40: '3.3'},
+  80: {10: '50s', 20: '1m', 30: '2.5', 40: '3.3', 50: '4.1', 60: '5.0', 
70: '5.8'},  # spaced more since wide
+}
+
+for width, expected in test_inputs.items():
+  self.assertEqual(expected, 
nyx.panel.graph._x_axis_labels(nyx.panel.graph.Interval.FIVE_SECONDS, width))
+
+test_inputs = {
+  nyx.panel.graph.Interval.EACH_SECOND: {
+10: '10s', 20: '20', 30: '30', 40: '40', 50: '50', 60: '1m', 70: '1.1'
+  }, nyx.panel.graph.Interval.FIVE_SECONDS: {
+10: '50s', 20: '1m', 30: '2.5', 40: '3.3', 50: '4.1', 60: '5.0', 70: 
'5.8'
+  }, nyx.panel.graph.Interval.THIRTY_SECONDS: {
+10: '5m', 20: '10', 30: '15', 40: '20', 50: '25', 60: '30', 70: '35'
+  }, nyx.panel.graph.Interval.MINUTELY: {
+10: '10m', 20: '20', 30: '30', 40: '40', 50: '50', 60: '1h', 70: '1.1'
+  }, nyx.panel.graph.Interval.FIFTEEN_MINUTE: {
+10: '2h', 20: '5', 30: '7', 40: '10', 50: '12', 60: '15', 70: '17'
+  }, nyx.panel.graph.Interval.THIRTY_MINUTE: {
+10: '5h', 20: '10', 30: '15', 40: '20', 50: '1d', 60: '1.2', 70: '1.4'
+  }, nyx.panel.graph.Interval.HOURLY: {
+10: '10h', 20: '20', 30: '1d', 40: '1.6', 50: '2.0', 60: '2.5', 70: 
'2.9'
+  }, nyx.panel.graph.Interval.DAILY: {
+10: '10d', 20: '20', 30: '30', 40: '40', 50: '50', 60: '60', 70: '70'
+  },
+}
+
+for interval, expected in test_inputs.items():
+  self.assertEqual(expected, nyx.panel.graph._x_axis_labels(interval, 80))
+
+  def test_y_axis_labels(self):
+data = nyx.panel.graph.ConnectionStats()
+
+# check with both even and odd height since that determines an offset in 
the middle
+
+self.assertEqual({2: '10', 4: '7', 6: '5', 9: '2', 11: '0'}, 
nyx.panel.graph._y_axis_labels(12, data.primary, 0, 10))
+self.assertEqual({2: '10', 4: '6', 6: '3', 8: '0'}, 
nyx.panel.graph._y_axis_labels(9, data.primary, 0, 10))
+
+# check where the min and max are the same
+
+self.assertEqual({2: '0', 11: '0'}, nyx.panel.graph._y_axis_labels(12, 
data.primary, 0, 0))
+
   @require_curses
   @patch('nyx.panel.graph.tor_controller')
   def test_draw_subgraph_blank(self, tor_controller_mock):



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


[tor-commits] [nyx/master] Test for drawing a blank subgraph

2016-06-25 Thread atagar
commit 7719621a1e184e5e94fec94a06a70ded0d2171e0
Author: Damian Johnson 
Date:   Sat Jun 25 12:34:24 2016 -0700

Test for drawing a blank subgraph

Not an overly useful test but first step in breaking these into functions 
and
adding test coverage.
---
 nyx/panel/graph.py  | 216 ++--
 test/panel/graph.py |  30 
 2 files changed, 140 insertions(+), 106 deletions(-)

diff --git a/nyx/panel/graph.py b/nyx/panel/graph.py
index d3ed768..68c136a 100644
--- a/nyx/panel/graph.py
+++ b/nyx/panel/graph.py
@@ -556,152 +556,156 @@ class GraphPanel(nyx.panel.Panel):
 
 subwindow.addstr(0, 0, attr.stat.title(subwindow.width), HIGHLIGHT)
 
-self._draw_subgraph(subwindow, attr, attr.stat.primary, 0, PRIMARY_COLOR)
-self._draw_subgraph(subwindow, attr, attr.stat.secondary, 
attr.subgraph_width, SECONDARY_COLOR)
+_draw_subgraph(subwindow, attr, attr.stat.primary, 0, PRIMARY_COLOR)
+_draw_subgraph(subwindow, attr, attr.stat.secondary, attr.subgraph_width, 
SECONDARY_COLOR)
 
 if attr.stat.stat_type() == GraphStat.BANDWIDTH and accounting_stats:
   _draw_accounting_stats(subwindow, DEFAULT_CONTENT_HEIGHT + 
attr.subgraph_height - 2, accounting_stats)
 
-  def _draw_subgraph(self, subwindow, attr, data, x, color):
-# Concering our subgraph colums, the y-axis label can be at most six
-# characters, with two spaces of padding on either side of the graph.
-# Starting with the smallest size, then possibly raise it after determing
-# the y_axis_labels.
+  def _update_accounting(self, event):
+if not CONFIG['features.graph.bw.accounting.show']:
+  self._accounting_stats = None
+elif not self._accounting_stats or time.time() - 
self._accounting_stats.retrieved >= ACCOUNTING_RATE:
+  old_accounting_stats = self._accounting_stats
+  self._accounting_stats = tor_controller().get_accounting_stats(None)
 
-subgraph_columns = attr.subgraph_width - 8
-min_bound, max_bound = self._get_graph_bounds(attr, data, subgraph_columns)
+  if not self.is_paused():
+# if we either added or removed accounting info then redraw the whole
+# screen to account for resizing
 
-x_axis_labels = self._get_x_axis_labels(attr, subgraph_columns)
-y_axis_labels = self._get_y_axis_labels(attr, data, min_bound, max_bound)
-subgraph_columns = max(subgraph_columns, attr.subgraph_width - 
max([len(label) for label in y_axis_labels.values()]) - 2)
-axis_offset = max([len(label) for label in y_axis_labels.values()])
+if bool(old_accounting_stats) != bool(self._accounting_stats):
+  nyx.controller.get_controller().redraw()
 
-subwindow.addstr(x, 1, data.header(attr.subgraph_width), color, BOLD)
+  def _update_stats(self, event):
+for stat in self._stats.values():
+  stat.bandwidth_event(event)
 
-for x_offset, label in x_axis_labels.items():
-  if attr.right_to_left:
-subwindow.addstr(x + attr.subgraph_width - x_offset, 
attr.subgraph_height, label, color)
-  else:
-subwindow.addstr(x + x_offset + axis_offset, attr.subgraph_height, 
label, color)
+if self.displayed_stat:
+  param = self._stats[self.displayed_stat]
+  update_rate = INTERVAL_SECONDS[self.update_interval]
 
-for y, label in y_axis_labels.items():
-  subwindow.addstr(x, y, label, color)
+  if param.primary.tick % update_rate == 0:
+self.redraw(True)
 
-for col in range(subgraph_columns):
-  column_count = int(data.values[attr.interval][col]) - min_bound
-  column_height = int(min(attr.subgraph_height - 2, (attr.subgraph_height 
- 2) * column_count / (max(1, max_bound) - min_bound)))
 
-  for row in range(column_height):
-if attr.right_to_left:
-  subwindow.addstr(x + attr.subgraph_width - col - 1, 
attr.subgraph_height - 1 - row, ' ', color, HIGHLIGHT)
-else:
-  subwindow.addstr(x + col + axis_offset + 1, attr.subgraph_height - 1 
- row, ' ', color, HIGHLIGHT)
+def _draw_subgraph(subwindow, attr, data, x, color):
+  # Concering our subgraph colums, the y-axis label can be at most six
+  # characters, with two spaces of padding on either side of the graph.
+  # Starting with the smallest size, then possibly raise it after determing
+  # the y_axis_labels.
 
-  def _get_graph_bounds(self, attr, data, subgraph_columns):
-"""
-Provides the range the graph shows (ie, its minimum and maximum value).
-"""
+  subgraph_columns = attr.subgraph_width - 8
+  min_bound, max_bound = _get_graph_bounds(attr, data, subgraph_columns)
 
-min_bound, max_bound = 0, 0
-values = data.values[attr.interval][:subgraph_columns]
+  x_axis_labels = _x_axis_labels(attr.interval, subgraph_columns)
+  y_axis_labels = _y_axis_labels(attr.subgraph_height, data, min_bound, 
max_bound)
+  subgraph_columns = max(subgraph_columns, attr.subgraph_width - 
max([len(label) for label in 

[tor-commits] [nyx/master] Use draw() for graph panel

2016-06-25 Thread atagar
commit 8ca9f9d4b5d222c761357b5348f06327288b7203
Author: Damian Johnson 
Date:   Tue Apr 19 10:06:33 2016 -0700

Use draw() for graph panel
---
 nyx/panel/__init__.py |  2 +-
 nyx/panel/graph.py| 56 +--
 2 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/nyx/panel/__init__.py b/nyx/panel/__init__.py
index 1f5143d..6c77ea9 100644
--- a/nyx/panel/__init__.py
+++ b/nyx/panel/__init__.py
@@ -266,7 +266,7 @@ class Panel(object):
 if not self.visible or HALT_ACTIVITY:
   return
 
-if self.panel_name in ('header'):
+if self.panel_name in ('header', 'graph'):
   height = self.get_height() if self.get_height() != -1 else None
   width = self.get_width() if self.get_width() != -1 else None
 
diff --git a/nyx/panel/graph.py b/nyx/panel/graph.py
index 48cf3b9..132a7d6 100644
--- a/nyx/panel/graph.py
+++ b/nyx/panel/graph.py
@@ -535,7 +535,7 @@ class GraphPanel(nyx.panel.Panel):
 
 nyx.panel.Panel.set_paused(self, is_pause)
 
-  def draw(self, width, height):
+  def draw(self, subwindow):
 if not self.displayed_stat:
   return
 
@@ -549,26 +549,26 @@ class GraphPanel(nyx.panel.Panel):
 attr = DrawAttributes(
   stat = type(stat)(stat),  # clone the GraphCategory
   subgraph_height = self._graph_height + 2,  # graph rows + header + 
x-axis label
-  subgraph_width = min(width / 2, CONFIG['features.graph.max_width']),
+  subgraph_width = min(subwindow.width / 2, 
CONFIG['features.graph.max_width']),
   interval = self.update_interval,
   bounds_type = self.bounds_type,
   accounting = accounting_stats,
   right_to_left = CONFIG['features.graph.right_to_left'],
 )
 
-self.addstr(0, 0, attr.stat.title(width), HIGHLIGHT)
+subwindow.addstr(0, 0, attr.stat.title(subwindow.width), HIGHLIGHT)
 
-self._draw_subgraph(attr, attr.stat.primary, 0, PRIMARY_COLOR)
-self._draw_subgraph(attr, attr.stat.secondary, attr.subgraph_width, 
SECONDARY_COLOR)
+self._draw_subgraph(subwindow, attr, attr.stat.primary, 0, PRIMARY_COLOR)
+self._draw_subgraph(subwindow, attr, attr.stat.secondary, 
attr.subgraph_width, SECONDARY_COLOR)
 
 if attr.stat.stat_type() == GraphStat.BANDWIDTH:
-  if width <= COLLAPSE_WIDTH:
-self._draw_bandwidth_stats(attr, width)
+  if subwindow.width <= COLLAPSE_WIDTH:
+self._draw_bandwidth_stats(subwindow, attr, subwindow.width)
 
   if attr.accounting:
-self._draw_accounting_stats(attr)
+self._draw_accounting_stats(subwindow, attr)
 
-  def _draw_subgraph(self, attr, data, x, color):
+  def _draw_subgraph(self, subwindow, attr, data, x, color):
 # Concering our subgraph colums, the y-axis label can be at most six
 # characters, with two spaces of padding on either side of the graph.
 # Starting with the smallest size, then possibly raise it after determing
@@ -582,16 +582,16 @@ class GraphPanel(nyx.panel.Panel):
 subgraph_columns = max(subgraph_columns, attr.subgraph_width - 
max([len(label) for label in y_axis_labels.values()]) - 2)
 axis_offset = max([len(label) for label in y_axis_labels.values()])
 
-self.addstr(1, x, data.header(attr.subgraph_width), color, BOLD)
+subwindow.addstr(x, 1, data.header(attr.subgraph_width), color, BOLD)
 
 for x_offset, label in x_axis_labels.items():
   if attr.right_to_left:
-self.addstr(attr.subgraph_height, x + attr.subgraph_width - x_offset, 
label, color)
+subwindow.addstr(x + attr.subgraph_width - x_offset, 
attr.subgraph_height, label, color)
   else:
-self.addstr(attr.subgraph_height, x + x_offset + axis_offset, label, 
color)
+subwindow.addstr(x + x_offset + axis_offset, attr.subgraph_height, 
label, color)
 
 for y, label in y_axis_labels.items():
-  self.addstr(y, x, label, color)
+  subwindow.addstr(x, y, label, color)
 
 for col in range(subgraph_columns):
   column_count = int(data.values[attr.interval][col]) - min_bound
@@ -599,9 +599,9 @@ class GraphPanel(nyx.panel.Panel):
 
   for row in range(column_height):
 if attr.right_to_left:
-  self.addstr(attr.subgraph_height - 1 - row, x + attr.subgraph_width 
- col - 1, ' ', color, HIGHLIGHT)
+  subwindow.addstr(x + attr.subgraph_width - col - 1, 
attr.subgraph_height - 1 - row, ' ', color, HIGHLIGHT)
 else:
-  self.addstr(attr.subgraph_height - 1 - row, x + col + axis_offset + 
1, ' ', color, HIGHLIGHT)
+  subwindow.addstr(x + col + axis_offset + 1, attr.subgraph_height - 1 
- row, ' ', color, HIGHLIGHT)
 
   def _get_graph_bounds(self, attr, data, subgraph_columns):
 """
@@ -684,39 +684,39 @@ class GraphPanel(nyx.panel.Panel):
 
 return x_axis_labels
 
-  def _draw_bandwidth_stats(self, attr, width):
+  def _draw_bandwidth_stats(self, subwindow, attr, width):
 """
 Replaces the x-axis labeling with bandwidth stats. This is done on 

[tor-commits] [translation/liveusb-creator_completed] Update translations for liveusb-creator_completed

2016-06-25 Thread translation
commit cf802040966807e021e9c26dd5d31f5db899f1c9
Author: Translation commit bot 
Date:   Sat Jun 25 22:45:39 2016 +

Update translations for liveusb-creator_completed
---
 nn/nn.po | 609 +++
 1 file changed, 609 insertions(+)

diff --git a/nn/nn.po b/nn/nn.po
new file mode 100644
index 000..951669d
--- /dev/null
+++ b/nn/nn.po
@@ -0,0 +1,609 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# Bjørn I. , 2014,2016
+# Finn Brudal , 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: The Tor Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-11-02 21:23+0100\n"
+"PO-Revision-Date: 2016-06-25 22:39+\n"
+"Last-Translator: Finn Brudal \n"
+"Language-Team: Norwegian Nynorsk 
(http://www.transifex.com/otf/torproject/language/nn/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: nn\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../liveusb/gui.py:451
+msgid "\"Clone & Install\""
+msgstr "«Klon og installer"
+
+#: ../liveusb/gui.py:453
+msgid "\"Install from ISO\""
+msgstr "«Installerer frå ISO"
+
+#: ../liveusb/dialog.py:157 ../liveusb/launcher_ui.py:153
+#, python-format
+msgid "%(distribution)s Installer"
+msgstr "%(distribution)s Installerar"
+
+#: ../liveusb/gui.py:804
+#, python-format
+msgid "%(filename)s selected"
+msgstr "%(filename)s vald(e)"
+
+#: ../liveusb/gui.py:424
+#, python-format
+msgid "%(size)s %(label)s"
+msgstr "%(size)s %(label)s"
+
+#: ../liveusb/gui.py:430
+#, python-format
+msgid "%(vendor)s %(model)s (%(details)s) - %(device)s"
+msgstr "%(vendor)s %(model)s (%(details)s) - %(device)s"
+
+#: ../liveusb/creator.py:1097
+#, python-format
+msgid "%s already bootable"
+msgstr "%s allereie startbar"
+
+#: ../liveusb/launcher_ui.py:160
+msgid ""
+"http://www.w3.org/TR/REC-html40/strict.dtd\;>\n"
+"\n"
+"p, li { white-space: pre-wrap; }\n"
+"\n"
+"Need 
help? Read the documentation."
+msgstr "http://www.w3.org/TR/REC-html40/strict.dtd\;>\n\np, li { 
white-space: pre-wrap; }\n\nTreng du hjelp? Les dokumentasjonen."
+
+#: ../liveusb/launcher_ui.py:155
+msgid ""
+"\n"
+"Install Tails on another USB stick by copying the Tails system that you 
are currently using..\n"
+"\n"
+"The USB stick that you install on is formatted and all data is 
lost.\n"
+"\n"
+"The encrypted persistent storage of the Tails USB stick that you are 
currently using is not copied.\n"
+"\n"
+""
+msgstr "\nInstaller Tails på ei onnor USB-pinna ved å kopiera 
Tails-systemet som du nyttar no.\n\nUSB-pinni som du installerer på 
formaterest og alle upplysingar gjeng tapt.\n\nDet krypterte 
vedvarande lagaret åt Tails-USB-pinni som du nyttar no vert ikkje 
kopiert.\n\n"
+
+#: ../liveusb/launcher_ui.py:157
+msgid ""
+"\n"
+"Upgrade another Tails USB stick to the same version of Tails that you are 
currently using.\n"
+"\n"
+"The encrypted persistent storage of the Tails USB stick that you upgrade 
is preserved.\n"
+"\n"
+"The encrypted persistent storage of the Tails USB stick that you are 
currently using is not copied.\n"
+"\n"
+"\n"
+""
+msgstr "\nUppgrader ei onnor Tails-USB-pinna åt same versjon av Tails 
som du nyttar no.\n\nDet krypterte vedvarande lageret på 
Tails-USB-pinni du uppgraderer vert forvart.\n\nDet krypterte 
vedvarande lageret på Tails-USB-pinni du nyttar no vert ikkje 
kopiert.\n\n\n"
+
+#: ../liveusb/launcher_ui.py:159
+msgid ""
+"\n"
+"Upgrade another Tails USB stick to the version of an ISO image.\n"
+"\n"
+"The encrypted persistent storage of the Tails USB stick that you upgrade 
is preserved.\n"
+"\n"
+"The encrypted persistent storage of the Tails USB stick that you are 
currently using is not copied.\n"
+"\n"
+""
+msgstr "\nUppgrader ei onnor Tails-USB-pinna åt versjonen av eit 
ISO-bilete.\n\nDet krypterte vedvarande lageret på Tails-USB-pinni du 
uppgraderer vert forvart.\n\nDet krypterte vedvarande lageret på 
Tails-USB-pinni du nyttar no vert ikkje kopiert.\n\n"
+
+#: ../liveusb/dialog.py:161
+msgid "Alt+B"
+msgstr "Alt+B"
+
+#: ../liveusb/dialog.py:160
+msgid "Browse"
+msgstr "Surf"
+
+#: ../liveusb/dialog.py:167
+msgid ""
+"By allocating extra space on your USB stick for a persistent overlay, you "
+"will be able to store data and make permanent modifications to your live "
+"operating system.  Without it, you will not be able to save data that will "
+"persist after a reboot."
+msgstr "Ved å åtdela yttarlegare plass på USB-pinni di for eit vedvarande 
yverlegg, vil du kunna lagra upplysingar og gjere vedvarande endringar på ditt 
køyrande operativsystem. Utan dette vil du ikkje kunna lagra upplysingar som 
vil vedvara etter umstart."
+
+#: ../liveusb/creator.py:1196 ../liveusb/creator.py:1459

[tor-commits] [translation/liveusb-creator] Update translations for liveusb-creator

2016-06-25 Thread translation
commit 26e3670fb4337284ecdda2035ba223386d874e51
Author: Translation commit bot 
Date:   Sat Jun 25 22:45:35 2016 +

Update translations for liveusb-creator
---
 nn/nn.po | 106 +++
 1 file changed, 53 insertions(+), 53 deletions(-)

diff --git a/nn/nn.po b/nn/nn.po
index 07b7e4e..951669d 100644
--- a/nn/nn.po
+++ b/nn/nn.po
@@ -10,7 +10,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2015-11-02 21:23+0100\n"
-"PO-Revision-Date: 2016-06-25 22:15+\n"
+"PO-Revision-Date: 2016-06-25 22:39+\n"
 "Last-Translator: Finn Brudal \n"
 "Language-Team: Norwegian Nynorsk 
(http://www.transifex.com/otf/torproject/language/nn/)\n"
 "MIME-Version: 1.0\n"
@@ -50,7 +50,7 @@ msgstr "%(vendor)s %(model)s (%(details)s) - %(device)s"
 #: ../liveusb/creator.py:1097
 #, python-format
 msgid "%s already bootable"
-msgstr ""
+msgstr "%s allereie startbar"
 
 #: ../liveusb/launcher_ui.py:160
 msgid ""
@@ -273,7 +273,7 @@ msgstr "Fann ingen monteringspunkt"
 msgid ""
 "Not enough free space on device.\n"
 "%dMB ISO + %dMB overlay > %dMB free space"
-msgstr "Ikkje nok ledug plass på einheita.\n%dMB ISO + %dMB yverlegg > %dMB 
ledug plass"
+msgstr "Ikkje nok ledug plass på einheiti.\n%dMB ISO + %dMB yverlegg > %dMB 
ledug plass"
 
 #: ../liveusb/gui.py:569
 msgid "Partition is FAT16; Restricting overlay size to 2G"
@@ -320,7 +320,7 @@ msgstr "Fjernar verande Live-OS"
 #: ../liveusb/creator.py:1186
 #, python-format
 msgid "Resetting Master Boot Record of %s"
-msgstr ""
+msgstr "Nullstiller hovudinndelingssektor åt %s"
 
 #: ../liveusb/gui.py:789
 msgid "Select Live ISO"
@@ -328,23 +328,23 @@ msgstr "Vel Live-ISO"
 
 #: ../liveusb/creator.py:192
 msgid "Setting up OLPC boot file..."
-msgstr ""
+msgstr "Set upp OLPC-støvelfili..."
 
 #: ../liveusb/creator.py:742
 #, python-format
 msgid ""
 "Some partitions of the target device %(device)s are mounted. They will be "
 "unmounted before starting the installation process."
-msgstr ""
+msgstr "Nokre inndelingar på måleinheiti %(device)s er monterte. Dei vil 
verte avmontera fyre innstalleringsgangen tek til."
 
 #: ../liveusb/creator.py:141
 msgid ""
 "Source type does not support verification of ISO MD5 checksum, skipping"
-msgstr ""
+msgstr "Kjeldetype støttar ikkje stadfesting av ISO-MD5-kontrollsum, hoppar 
yver"
 
 #: ../liveusb/creator.py:1220
 msgid "Synchronizing data on disk..."
-msgstr ""
+msgstr "Skapar samsvar med upplysingar på skivi..."
 
 #: ../liveusb/dialog.py:166
 msgid "Target Device"
@@ -355,27 +355,27 @@ msgstr "MÃ¥leining"
 msgid ""
 "The device \"%(pretty_name)s\" is too small to install Tails (at least "
 "%(size)s GB is required)."
-msgstr ""
+msgstr "Einheiti \"%(pretty_name)s\" er for lita til å installere Tails på 
(minst %(size)s GB er påkravt)."
 
 #: ../liveusb/gui.py:792
 msgid ""
 "The selected file is unreadable. Please fix its permissions or select "
 "another file."
-msgstr ""
+msgstr "Den valde fili er ulesbar. Ver venleg og fiks løyvi hennar eller vel 
ei onnor fil."
 
 #: ../liveusb/creator.py:354
 #, python-format
 msgid ""
 "There was a problem executing the following command: `%(command)s`.\n"
 "A more detailed error log has been written to '%(filename)s'."
-msgstr ""
+msgstr "Det var vanskeleg å køyra fylgjande ordre: `%(command)s`\nEin meir 
utførleg feillogg hev vorte skriven åt '%(filename)s'."
 
 #: ../liveusb/dialog.py:158
 msgid ""
 "This button allows you to browse for an existing Live system ISO that you "
 "have previously downloaded.  If you do not select one, a release will be "
 "downloaded for you automatically."
-msgstr ""
+msgstr "Denne knappen lèt deg sjå etter ein eksisterande Live system-ISO som 
du hev lasta ned fyrr. Um du ikkje vel ein, vil ei utgåva verte lasta ned for 
deg av seg sjølv."
 
 #: ../liveusb/dialog.py:171
 msgid ""
@@ -383,111 +383,111 @@ msgid ""
 "optionally downloading a release (if an existing one wasn't selected),  "
 "extracting the ISO to the USB device, creating the persistent overlay, and "
 "installing the bootloader."
-msgstr ""
+msgstr "Denne knappen vil byrja LiveUSB-skapnadsgangen. Dette medførar å 
kanskje lasta ned ei utgåva (um ei som finst ikkje var vald), draga ut ISO'en 
Ã¥t USB-einheiti, skapa det vedvarande yverlegget, og installera 
støvellastaren."
 
 #: ../liveusb/dialog.py:165
 msgid ""
 "This is the USB stick that you want to install your Live system on.  This "
 "device must be formatted with the FAT filesystem."
-msgstr ""
+msgstr "Dette er USB-pinni du vil installera Live-systemet ditt på. Denne 
einheiti lyt vera formatert med FAT-filsystemet."
 
 #: ../liveusb/dialog.py:170
 msgid ""
 "This is the progress bar that will indicate how far along in the LiveUSB "
 "creation process you are"
-msgstr ""
+msgstr "Dette er framgangslina som vil visa kor langt i LiveUSB-skapnadsgangen 
du 

[tor-commits] [translation/liveusb-creator] Update translations for liveusb-creator

2016-06-25 Thread translation
commit d2292cd9c7e351b4d8ccbd134588c3b129228633
Author: Translation commit bot 
Date:   Sat Jun 25 22:15:35 2016 +

Update translations for liveusb-creator
---
 nn/nn.po | 75 
 1 file changed, 38 insertions(+), 37 deletions(-)

diff --git a/nn/nn.po b/nn/nn.po
index 7f0df4b..07b7e4e 100644
--- a/nn/nn.po
+++ b/nn/nn.po
@@ -4,13 +4,14 @@
 # 
 # Translators:
 # Bjørn I. , 2014,2016
+# Finn Brudal , 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2015-11-02 21:23+0100\n"
-"PO-Revision-Date: 2016-03-21 16:31+\n"
-"Last-Translator: Bjørn I. \n"
+"PO-Revision-Date: 2016-06-25 22:15+\n"
+"Last-Translator: Finn Brudal \n"
 "Language-Team: Norwegian Nynorsk 
(http://www.transifex.com/otf/torproject/language/nn/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -58,7 +59,7 @@ msgid ""
 "p, li { white-space: pre-wrap; }\n"
 "\n"
 "Need 
help? Read the documentation."
-msgstr ""
+msgstr "http://www.w3.org/TR/REC-html40/strict.dtd\;>\n\np, li { 
white-space: pre-wrap; }\n\nTreng du hjelp? Les dokumentasjonen."
 
 #: ../liveusb/launcher_ui.py:155
 msgid ""
@@ -70,7 +71,7 @@ msgid ""
 "The encrypted persistent storage of the Tails USB stick that you are 
currently using is not copied.\n"
 "\n"
 ""
-msgstr ""
+msgstr "\nInstaller Tails på ei onnor USB-pinna ved å kopiera 
Tails-systemet som du nyttar no.\n\nUSB-pinni som du installerer på 
formaterest og alle upplysingar gjeng tapt.\n\nDet krypterte 
vedvarande lagaret åt Tails-USB-pinni som du nyttar no vert ikkje 
kopiert.\n\n"
 
 #: ../liveusb/launcher_ui.py:157
 msgid ""
@@ -83,7 +84,7 @@ msgid ""
 "\n"
 "\n"
 ""
-msgstr ""
+msgstr "\nUppgrader ei onnor Tails-USB-pinna åt same versjon av Tails 
som du nyttar no.\n\nDet krypterte vedvarande lageret på 
Tails-USB-pinni du uppgraderer vert forvart.\n\nDet krypterte 
vedvarande lageret på Tails-USB-pinni du nyttar no vert ikkje 
kopiert.\n\n\n"
 
 #: ../liveusb/launcher_ui.py:159
 msgid ""
@@ -95,7 +96,7 @@ msgid ""
 "The encrypted persistent storage of the Tails USB stick that you are 
currently using is not copied.\n"
 "\n"
 ""
-msgstr ""
+msgstr "\nUppgrader ei onnor Tails-USB-pinna åt versjonen av eit 
ISO-bilete.\n\nDet krypterte vedvarande lageret på Tails-USB-pinni du 
uppgraderer vert forvart.\n\nDet krypterte vedvarande lageret på 
Tails-USB-pinni du nyttar no vert ikkje kopiert.\n\n"
 
 #: ../liveusb/dialog.py:161
 msgid "Alt+B"
@@ -111,12 +112,12 @@ msgid ""
 "will be able to store data and make permanent modifications to your live "
 "operating system.  Without it, you will not be able to save data that will "
 "persist after a reboot."
-msgstr ""
+msgstr "Ved å åtdela yttarlegare plass på USB-pinni di for eit vedvarande 
yverlegg, vil du kunna lagra upplysingar og gjere vedvarande endringar på ditt 
køyrande operativsystem. Utan dette vil du ikkje kunna lagra upplysingar som 
vil vedvara etter umstart."
 
 #: ../liveusb/creator.py:1196 ../liveusb/creator.py:1459
 #, python-format
 msgid "Calculating the SHA1 of %s"
-msgstr ""
+msgstr "Reknar ut SHA1'en av %s"
 
 #: ../liveusb/creator.py:1407
 msgid "Cannot find"
@@ -130,12 +131,12 @@ msgstr "Finn ikkje eininga %s"
 #: ../liveusb/creator.py:417
 #, python-format
 msgid "Creating %sMB persistent overlay"
-msgstr ""
+msgstr "Skapar %sMB vedvarande yverlegg"
 
 #: ../liveusb/gui.py:582
 msgid ""
 "Device is not yet mounted, so we cannot determine the amount of free space."
-msgstr ""
+msgstr "Einheiten er ikkje enno montert, so me kan ikkje avgjere mengden fri 
lagringsplass."
 
 #: ../liveusb/dialog.py:164
 #, python-format
@@ -157,41 +158,41 @@ msgstr "Lastar ned %s "
 
 #: ../liveusb/creator.py:1192
 msgid "Drive is a loopback, skipping MBR reset"
-msgstr ""
+msgstr "Drevet er ei attendekopling, hoppar yver MBR-nullstilling"
 
 #: ../liveusb/creator.py:837
 #, python-format
 msgid "Entering unmount_device for '%(device)s'"
-msgstr ""
+msgstr "Gjeng inn i unmount_device for '%(device)s'"
 
 #: ../liveusb/creator.py:1272
 msgid "Error probing device"
-msgstr ""
+msgstr "Feil ved sondering av einheit"
 
 #: ../liveusb/gui.py:213
 msgid ""
 "Error: Cannot set the label or obtain the UUID of your device.  Unable to "
 "continue."
-msgstr ""
+msgstr "Feil: Kan ikkje setja etiketten eller fenge UUID'en åt einheita di. 
Kan ikkje halda fram."
 
 #: ../liveusb/creator.py:393
 msgid ""
 "Error: The SHA1 of your Live CD is invalid.  You can run this program with "
 "the --noverify argument to bypass this verification check."
-msgstr ""
+msgstr "Feil: SHA1'en åt Live-CD'en din er ugyldig. Du kan køyra dette 
programmet med --noverify-parameteren for å hoppa yver denne 
stadfestingskontrollen."
 
 #: ../liveusb/creator.py:155
 msgid "Extracting live image to 

[tor-commits] [translation/mat-gui] Update translations for mat-gui

2016-06-25 Thread translation
commit ba95ee3925d492e00cbfe85f35bc766a43aa7073
Author: Translation commit bot 
Date:   Sat Jun 25 20:45:59 2016 +

Update translations for mat-gui
---
 pl.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pl.po b/pl.po
index 5e469f9..893970d 100644
--- a/pl.po
+++ b/pl.po
@@ -15,7 +15,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2016-02-10 23:06+0100\n"
-"PO-Revision-Date: 2016-03-21 16:34+\n"
+"PO-Revision-Date: 2016-06-25 20:16+\n"
 "Last-Translator: sebx\n"
 "Language-Team: Polish 
(http://www.transifex.com/otf/torproject/language/pl/)\n"
 "MIME-Version: 1.0\n"

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


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

2016-06-25 Thread translation
commit 19160bf38e0aea364dc11d95ad010610a3b42f96
Author: Translation commit bot 
Date:   Sat Jun 25 20:46:26 2016 +

Update translations for tails-misc_completed
---
 pl.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pl.po b/pl.po
index 5a78d97..d412efc 100644
--- a/pl.po
+++ b/pl.po
@@ -17,8 +17,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-25 20:25+0200\n"
-"PO-Revision-Date: 2016-05-27 10:12+\n"
+"POT-Creation-Date: 2016-06-06 14:26+0200\n"
+"PO-Revision-Date: 2016-06-25 20:16+\n"
 "Last-Translator: carolyn \n"
 "Language-Team: Polish 
(http://www.transifex.com/otf/torproject/language/pl/)\n"
 "MIME-Version: 1.0\n"

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


[tor-commits] [translation/mat-gui_completed] Update translations for mat-gui_completed

2016-06-25 Thread translation
commit ef48639dd7b6044d0c40c9d3bf1f1317b77bac48
Author: Translation commit bot 
Date:   Sat Jun 25 20:46:03 2016 +

Update translations for mat-gui_completed
---
 pl.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pl.po b/pl.po
index 5e469f9..893970d 100644
--- a/pl.po
+++ b/pl.po
@@ -15,7 +15,7 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2016-02-10 23:06+0100\n"
-"PO-Revision-Date: 2016-03-21 16:34+\n"
+"PO-Revision-Date: 2016-06-25 20:16+\n"
 "Last-Translator: sebx\n"
 "Language-Team: Polish 
(http://www.transifex.com/otf/torproject/language/pl/)\n"
 "MIME-Version: 1.0\n"

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


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

2016-06-25 Thread translation
commit a506fe6ac03b0d984762e61f1a70f4acf8f65454
Author: Translation commit bot 
Date:   Sat Jun 25 20:46:22 2016 +

Update translations for tails-misc
---
 pl.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pl.po b/pl.po
index 5a78d97..d412efc 100644
--- a/pl.po
+++ b/pl.po
@@ -17,8 +17,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-25 20:25+0200\n"
-"PO-Revision-Date: 2016-05-27 10:12+\n"
+"POT-Creation-Date: 2016-06-06 14:26+0200\n"
+"PO-Revision-Date: 2016-06-25 20:16+\n"
 "Last-Translator: carolyn \n"
 "Language-Team: Polish 
(http://www.transifex.com/otf/torproject/language/pl/)\n"
 "MIME-Version: 1.0\n"

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


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

2016-06-25 Thread translation
commit 3cacb40adf98f0202cd0d1a0d686d3c73af2fa96
Author: Translation commit bot 
Date:   Sat Jun 25 20:45:32 2016 +

Update translations for https_everywhere_completed
---
 pl/https-everywhere.dtd | 1 +
 1 file changed, 1 insertion(+)

diff --git a/pl/https-everywhere.dtd b/pl/https-everywhere.dtd
index 73645eb..1cf1214 100644
--- a/pl/https-everywhere.dtd
+++ b/pl/https-everywhere.dtd
@@ -5,6 +5,7 @@
 
 
 
+
 
 
 

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


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

2016-06-25 Thread translation
commit 36c8e8c1861723db3a9b84b931cf66dca263de73
Author: Translation commit bot 
Date:   Sat Jun 25 20:45:26 2016 +

Update translations for https_everywhere
---
 pl/https-everywhere.dtd | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pl/https-everywhere.dtd b/pl/https-everywhere.dtd
index 7ebefab..1cf1214 100644
--- a/pl/https-everywhere.dtd
+++ b/pl/https-everywhere.dtd
@@ -5,7 +5,7 @@
 
 
 
-
+
 
 
 

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


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

2016-06-25 Thread translation
commit a58f4013481692ed296e127e53d7b83b872a24b0
Author: Translation commit bot 
Date:   Sat Jun 25 20:18:44 2016 +

Update translations for tails-onioncircuits
---
 pl/onioncircuits.pot | 19 ++-
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/pl/onioncircuits.pot b/pl/onioncircuits.pot
index 4549378..cb3219b 100644
--- a/pl/onioncircuits.pot
+++ b/pl/onioncircuits.pot
@@ -4,13 +4,14 @@
 # 
 # Translators:
 # sebx, 2016
+# Szymon Łapiński , 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2016-05-31 14:42+0200\n"
-"PO-Revision-Date: 2016-06-01 09:23+\n"
-"Last-Translator: carolyn \n"
+"PO-Revision-Date: 2016-06-25 20:16+\n"
+"Last-Translator: Szymon Łapiński \n"
 "Language-Team: Polish 
(http://www.transifex.com/otf/torproject/language/pl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -20,7 +21,7 @@ msgstr ""
 
 #: ../onioncircuits:81
 msgid "You are not connected to Tor yet..."
-msgstr ""
+msgstr "Nie jesteś jeszcze połączony z siecią Tor..."
 
 #: ../onioncircuits:95
 msgid "Onion Circuits"
@@ -28,7 +29,7 @@ msgstr "Obwody Onion"
 
 #: ../onioncircuits:125
 msgid "Circuit"
-msgstr ""
+msgstr "Obwód"
 
 #: ../onioncircuits:126
 msgid "Status"
@@ -36,15 +37,15 @@ msgstr "Status"
 
 #: ../onioncircuits:142
 msgid "Click on a circuit for more detail about its Tor relays."
-msgstr ""
+msgstr "Kliknij na obwód po więcej informacji o jego przekaźnikach Tora."
 
 #: ../onioncircuits:221
 msgid "The connection to Tor was lost..."
-msgstr ""
+msgstr "Połączenie z siecią Tor zostało utracone..."
 
 #: ../onioncircuits:317
 msgid "..."
-msgstr ""
+msgstr "..."
 
 #: ../onioncircuits:343
 #, c-format
@@ -53,7 +54,7 @@ msgstr "%s: %s"
 
 #: ../onioncircuits:554
 msgid "GeoIP database unavailable. No country information will be displayed."
-msgstr ""
+msgstr "Baza GeoIP nie jest dostępna. Informacje o krajach nie będą 
wyświetlane."
 
 #: ../onioncircuits:585
 #, c-format
@@ -67,7 +68,7 @@ msgstr "%.2f Mb/s"
 
 #: ../onioncircuits:592 ../onioncircuits:593 ../onioncircuits:594
 msgid "Unknown"
-msgstr ""
+msgstr "Nieznany"
 
 #: ../onioncircuits:607
 msgid "Fingerprint:"

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


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

2016-06-25 Thread translation
commit d86f59efba048766088c4d1cc037a775b1786c0e
Author: Translation commit bot 
Date:   Sat Jun 25 20:18:50 2016 +

Update translations for tails-onioncircuits_completed
---
 pl/onioncircuits.pot | 91 +---
 1 file changed, 43 insertions(+), 48 deletions(-)

diff --git a/pl/onioncircuits.pot b/pl/onioncircuits.pot
index a798edb..cb3219b 100644
--- a/pl/onioncircuits.pot
+++ b/pl/onioncircuits.pot
@@ -4,13 +4,14 @@
 # 
 # Translators:
 # sebx, 2016
+# Szymon Łapiński , 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-03-31 21:31+0200\n"
-"PO-Revision-Date: 2016-05-27 22:03+\n"
-"Last-Translator: sebx\n"
+"POT-Creation-Date: 2016-05-31 14:42+0200\n"
+"PO-Revision-Date: 2016-06-25 20:16+\n"
+"Last-Translator: Szymon Łapiński \n"
 "Language-Team: Polish 
(http://www.transifex.com/otf/torproject/language/pl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -19,74 +20,68 @@ msgstr ""
 "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 
|| n%100>=20) ? 1 : 2);\n"
 
 #: ../onioncircuits:81
-msgid ""
-"Cannot connect to the Tor daemon. Onion Circuits will try to reconnect..."
-msgstr "Nie udało połączyć się z Tor deamon. Obwody Onion spróbują 
ponownie połączyć się..."
+msgid "You are not connected to Tor yet..."
+msgstr "Nie jesteś jeszcze połączony z siecią Tor..."
 
-#: ../onioncircuits:94
+#: ../onioncircuits:95
 msgid "Onion Circuits"
 msgstr "Obwody Onion"
 
-#: ../onioncircuits:95
-msgid "Display Tor circuits and streams"
-msgstr "Pokaż obwody Tora i jego strumieni"
-
-#: ../onioncircuits:107
-msgid "OK"
-msgstr "OK"
-
-#: ../onioncircuits:124
-msgid "Path"
-msgstr "Ścieżka"
-
 #: ../onioncircuits:125
+msgid "Circuit"
+msgstr "Obwód"
+
+#: ../onioncircuits:126
 msgid "Status"
 msgstr "Status"
 
-#: ../onioncircuits:141
-msgid "Click on a path to get details"
-msgstr "Kliknij na ścieżkę po więcej szczegółów."
+#: ../onioncircuits:142
+msgid "Click on a circuit for more detail about its Tor relays."
+msgstr "Kliknij na obwód po więcej informacji o jego przekaźnikach Tora."
 
-#: ../onioncircuits:215
-msgid ""
-"Lost connection to the Tor daemon. Onion Circuits will try to reconnect..."
-msgstr "Utracono połączenie z Tor deamon. Obwody Onion spróbują połą
czyć się ponownie..."
-
-#: ../onioncircuits:232
-msgid "Connected to the Tor daemon! You can use now Onion Circuits."
-msgstr "Połączono z Tor deamon. Możesz teraz używać obwody onion."
+#: ../onioncircuits:221
+msgid "The connection to Tor was lost..."
+msgstr "Połączenie z siecią Tor zostało utracone..."
 
-#: ../onioncircuits:314
-msgid "Building..."
-msgstr "Budowanie..."
+#: ../onioncircuits:317
+msgid "..."
+msgstr "..."
 
-#: ../onioncircuits:339
+#: ../onioncircuits:343
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: ../onioncircuits:564
+#: ../onioncircuits:554
+msgid "GeoIP database unavailable. No country information will be displayed."
+msgstr "Baza GeoIP nie jest dostępna. Informacje o krajach nie będą 
wyświetlane."
+
+#: ../onioncircuits:585
+#, c-format
+msgid "%s (%s)"
+msgstr "%s (%s)"
+
+#: ../onioncircuits:590
+#, c-format
+msgid "%.2f Mb/s"
+msgstr "%.2f Mb/s"
+
+#: ../onioncircuits:592 ../onioncircuits:593 ../onioncircuits:594
+msgid "Unknown"
+msgstr "Nieznany"
+
+#: ../onioncircuits:607
 msgid "Fingerprint:"
 msgstr "Fingerprint:"
 
-#: ../onioncircuits:565
+#: ../onioncircuits:608
 msgid "Published:"
 msgstr "Publiczny:"
 
-#: ../onioncircuits:566
+#: ../onioncircuits:609
 msgid "IP:"
 msgstr "IP:"
 
-#: ../onioncircuits:566
-#, c-format
-msgid "%s (%s)"
-msgstr "%s (%s)"
-
-#: ../onioncircuits:567
+#: ../onioncircuits:610
 msgid "Bandwidth:"
 msgstr "Przepustowość:"
-
-#: ../onioncircuits:567
-#, c-format
-msgid "%.2f Mb/s"
-msgstr "%.2f Mb/s"

___
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-06-25 Thread translation
commit f137d89041762e9af40f9f36a6327ae11ae78e4a
Author: Translation commit bot 
Date:   Sat Jun 25 19:18:55 2016 +

Update translations for torbutton-abouttbupdatedtd
---
 sr/abouttbupdate.dtd | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sr/abouttbupdate.dtd b/sr/abouttbupdate.dtd
index 37567bd..ea8ca3b 100644
--- a/sr/abouttbupdate.dtd
+++ b/sr/abouttbupdate.dtd
@@ -1,4 +1,4 @@
-
+
 
 
 

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


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

2016-06-25 Thread translation
commit b24766c2e676ff0bac13c0b8f6acb8b2bc71a1b1
Author: Translation commit bot 
Date:   Sat Jun 25 19:19:01 2016 +

Update translations for tails-onioncircuits
---
 sr/onioncircuits.pot | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/sr/onioncircuits.pot b/sr/onioncircuits.pot
index e1a3cb9..72544a6 100644
--- a/sr/onioncircuits.pot
+++ b/sr/onioncircuits.pot
@@ -3,13 +3,14 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# Alert Aleksandar, 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2016-05-31 14:42+0200\n"
-"PO-Revision-Date: 2016-06-01 09:23+\n"
-"Last-Translator: carolyn \n"
+"PO-Revision-Date: 2016-06-25 19:09+\n"
+"Last-Translator: Alert Aleksandar\n"
 "Language-Team: Serbian 
(http://www.transifex.com/otf/torproject/language/sr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -19,7 +20,7 @@ msgstr ""
 
 #: ../onioncircuits:81
 msgid "You are not connected to Tor yet..."
-msgstr ""
+msgstr "Још увек нисте конектовани на Тор..."
 
 #: ../onioncircuits:95
 msgid "Onion Circuits"

___
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-06-25 Thread translation
commit 75d7e4fa97e840356e3be14cb4b000e500e1c349
Author: Translation commit bot 
Date:   Sat Jun 25 19:18:32 2016 +

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

diff --git a/sr/prefs.dtd b/sr/prefs.dtd
index fccdb0e..75bed93 100644
--- a/sr/prefs.dtd
+++ b/sr/prefs.dtd
@@ -1,10 +1,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-privdtd] Update translations for tor-messenger-privdtd

2016-06-25 Thread translation
commit 1255a9d5b756c958dcec0c50d263ec7109075de5
Author: Translation commit bot 
Date:   Sat Jun 25 19:18:38 2016 +

Update translations for tor-messenger-privdtd
---
 sr/priv.dtd | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sr/priv.dtd b/sr/priv.dtd
index fd356b2..43abbb0 100644
--- a/sr/priv.dtd
+++ b/sr/priv.dtd
@@ -1,2 +1,2 @@
-
+
 
\ 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-privdtd_completed] Update translations for tor-messenger-privdtd_completed

2016-06-25 Thread translation
commit 4736077a2fdb82785dcce73c6f5c60f63cff83e3
Author: Translation commit bot 
Date:   Sat Jun 25 19:18:41 2016 +

Update translations for tor-messenger-privdtd_completed
---
 sr/priv.dtd | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sr/priv.dtd b/sr/priv.dtd
new file mode 100644
index 000..43abbb0
--- /dev/null
+++ b/sr/priv.dtd
@@ -0,0 +1,2 @@
+
+
\ 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-06-25 Thread translation
commit 32cc6eedeb5d02f7d2f6495e6c91b5ddc4e655e1
Author: Translation commit bot 
Date:   Sat Jun 25 19:18:05 2016 +

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

diff --git a/sr/finger.dtd b/sr/finger.dtd
index fea814f..1fceda9 100644
--- a/sr/finger.dtd
+++ b/sr/finger.dtd
@@ -1,11 +1,11 @@
-
-
+
+
 
 
 
 
 
-
+
 
 
 

___
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-06-25 Thread translation
commit 1a0aa99f7f5ab5ca9bfcf901be3cbb2a6e59411d
Author: Translation commit bot 
Date:   Sat Jun 25 19:17:33 2016 +

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

diff --git a/sr/auth.dtd b/sr/auth.dtd
index e6bdaec..637fa7d 100644
--- a/sr/auth.dtd
+++ b/sr/auth.dtd
@@ -1,5 +1,5 @@
-
-
+
+
 
 
 

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


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

2016-06-25 Thread translation
commit 8ef7844b32cca1777629ccd3a49e17b1bbb505c4
Author: Translation commit bot 
Date:   Sat Jun 25 19:16:28 2016 +

Update translations for tails-misc_completed
---
 it.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/it.po b/it.po
index cb8239e..afe23d5 100644
--- a/it.po
+++ b/it.po
@@ -27,8 +27,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-25 20:25+0200\n"
-"PO-Revision-Date: 2016-06-02 14:44+\n"
+"POT-Creation-Date: 2016-06-06 14:26+0200\n"
+"PO-Revision-Date: 2016-06-25 19:15+\n"
 "Last-Translator: carolyn \n"
 "Language-Team: Italian 
(http://www.transifex.com/otf/torproject/language/it/)\n"
 "MIME-Version: 1.0\n"

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


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

2016-06-25 Thread translation
commit fba18403d59106fb2c0f87c27b6cf4712aa95514
Author: Translation commit bot 
Date:   Sat Jun 25 19:17:09 2016 +

Update translations for tor_animation
---
 sr.srt | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/sr.srt b/sr.srt
index 20e1083..9b2e289 100644
--- a/sr.srt
+++ b/sr.srt
@@ -1,11 +1,11 @@
 1
 00:00:00,660 --> 00:00:02,780
-We've gotten very used to the Internet.
+Веома смо се навикли на интернет.
 
 2
 00:00:03,120 --> 00:00:07,700
-We are constantly sharing information
-about ourselves and our private lives:
+Константно делимо информације
+о нама и нашим приватним животима:
 
 3
 00:00:08,000 --> 00:00:09,960

___
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-06-25 Thread translation
commit 2f4408dc96fc9122d8d9c24e2902070c45dc9ba3
Author: Translation commit bot 
Date:   Sat Jun 25 19:17:16 2016 +

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

diff --git a/sr/aboutdialog.dtd b/sr/aboutdialog.dtd
index 5099ad7..f4b6721 100644
--- a/sr/aboutdialog.dtd
+++ b/sr/aboutdialog.dtd
@@ -1,4 +1,4 @@
-
+
 
 
 

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


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

2016-06-25 Thread translation
commit e302add5db23456fe3944b638489ce29f697a609
Author: Translation commit bot 
Date:   Sat Jun 25 19:16:24 2016 +

Update translations for tails-misc
---
 it.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/it.po b/it.po
index cb8239e..afe23d5 100644
--- a/it.po
+++ b/it.po
@@ -27,8 +27,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-05-25 20:25+0200\n"
-"PO-Revision-Date: 2016-06-02 14:44+\n"
+"POT-Creation-Date: 2016-06-06 14:26+0200\n"
+"PO-Revision-Date: 2016-06-25 19:15+\n"
 "Last-Translator: carolyn \n"
 "Language-Team: Italian 
(http://www.transifex.com/otf/torproject/language/it/)\n"
 "MIME-Version: 1.0\n"

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


[tor-commits] [translation/liveusb-creator] Update translations for liveusb-creator

2016-06-25 Thread translation
commit 4ba2f02d880ff86da9f087fe240b4f43eec69ac7
Author: Translation commit bot 
Date:   Sat Jun 25 19:15:39 2016 +

Update translations for liveusb-creator
---
 sr/sr.po | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/sr/sr.po b/sr/sr.po
index 2608b9c..c12d385 100644
--- a/sr/sr.po
+++ b/sr/sr.po
@@ -3,6 +3,7 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# Alert Aleksandar, 2016
 # Igor Miletic , 2008
 # Ivan Radeljic , 2014
 # Milos, 2013
@@ -13,8 +14,8 @@ msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2015-11-02 21:23+0100\n"
-"PO-Revision-Date: 2016-03-21 16:31+\n"
-"Last-Translator: carolyn \n"
+"PO-Revision-Date: 2016-06-25 19:06+\n"
+"Last-Translator: Alert Aleksandar\n"
 "Language-Team: Serbian 
(http://www.transifex.com/otf/torproject/language/sr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -24,7 +25,7 @@ msgstr ""
 
 #: ../liveusb/gui.py:451
 msgid "\"Clone & Install\""
-msgstr ""
+msgstr "\"Клонирај & Инсталирај\""
 
 #: ../liveusb/gui.py:453
 msgid "\"Install from ISO\""

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


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

2016-06-25 Thread translation
commit 12a8a1bd33458e99461beee3779311f31bdc117b
Author: Translation commit bot 
Date:   Sat Jun 25 19:15:35 2016 +

Update translations for https_everywhere_completed
---
 nn/ssl-observatory.dtd | 103 +
 1 file changed, 103 insertions(+)

diff --git a/nn/ssl-observatory.dtd b/nn/ssl-observatory.dtd
new file mode 100644
index 000..0625ef6
--- /dev/null
+++ b/nn/ssl-observatory.dtd
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+https://-domene som vart vitja gjennum den proxyen, 
på grunn av dei sereigne sertifikati det ville laga. So me let det vera av som 
standard.">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+https://www.noko.com, vil sertifikatet motteke av
+Observatoriet stadfesta at nokon vitja www.noko.com, men ikkje kven som
+vitja nettstaden, eller kva serskild sida dei såg på. Hald musa yver vala for
+fleire einskilddrag:">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

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


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

2016-06-25 Thread translation
commit 9ea6c26a103ce55aafd8cd7e9fdf8df9cfc28bef
Author: Translation commit bot 
Date:   Sat Jun 25 19:15:28 2016 +

Update translations for https_everywhere
---
 nn/ssl-observatory.dtd | 47 ---
 1 file changed, 24 insertions(+), 23 deletions(-)

diff --git a/nn/ssl-observatory.dtd b/nn/ssl-observatory.dtd
index dd31e54..0625ef6 100644
--- a/nn/ssl-observatory.dtd
+++ b/nn/ssl-observatory.dtd
@@ -28,7 +28,7 @@ eit sers inngripande verksemdnettverk:">
 tenarnamn:">
 
 
+"Send inn og sjekk attestar underskrivne av ikkjestandard rot-CA'ar">
 
 https://-domene som vart vitja gjennum den proxyen, 
på grunn av dei sereigne sertifikati det ville laga. So me let det vera av som 
standard.">
@@ -46,18 +46,18 @@ tenarnamn:">
 "Dette vil henta og senda det Autonome Systemtalet åt nettverket 
ditt. Dette vil hjelpe oss med å plassera åtak mot HTTPS, og med å avgjere 
um me hev åtgangingar frå nettverk på stadar soleis som Iran og Syria, kor 
åtak er jamførd vanlege.">
 
 
+"Vis ei åtvaring når Observatoriet uppdagar eit fråteke sertifikat ikkje 
fanga upp av nettlesaren din">
 
 
+"Dette vil sjekke innsendde sertifikat mot kjende Sertifikatfråtakingslistor. 
Diverre kan me ikkje stilla trygd for at me vil merka kvart fråteke 
sertifikat, men um du ser ei åtvaring er det ein god sjanse for at noko er 
gale.">
 
 
 
 
+"HTTPS Everywhere kan nytta EFF sitt SSL-Observatorium. Dette gjerer tvo ting: 
(1)
+sender kopiar av HTTPS-sertifikat åt Observatoriet, for å hjelpe oss med å
+uppdaga 'mann i midti'-åtak og forbetra tryggleika på nettet; og (2) lèt 
oss åtvara
+deg um utrygge tilkoplingar eller åtak på nettlesaren din.">
 
 
 
 https://www.something.com, the certificate
-received by the Observatory will indicate that somebody visited
-www.something.com, but not who visited the site, or what specific page they
-looked at.  Mouseover the options for further details:">
+"Til dømes, når du vitjar https://www.noko.com, vil sertifikatet motteke av
+Observatoriet stadfesta at nokon vitja www.noko.com, men ikkje kven som
+vitja nettstaden, eller kva serskild sida dei såg på. Hald musa yver vala for
+fleire einskilddrag:">
 
-
+
 
 
+"Sjekk sertifikat sjølv um Tor ikkje er åtgjengeleg">
 
 
+"Me vil framleis freista å halde upplysingane anonyme, men dette valet er 
mindre
+trygt">
 
 
+"Send inn og sjekk sertifikat for ikkje-offentlege DNS-namn">
 
 
+"Med mindre dette valet er kryssa av, vil Observatoriet ikkje loggføra 
sertifikat for namn det ikkje kan løysa gjennum DNS-systemet.">
 
 
 
 
 
-
-
-
+
+
+
 
-
-
+
+
 
 
+"Send inn og sjekk sjølvunderskrivne sertifikat">
 
+"Dette er tilrådd; kryptografiske vanskar er serskild vanleg bland 
sjølvunderskrivne innbakte einheitar">

___
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-06-25 Thread translation
commit 84eaa3aaba1f5280b78643fa2891bcdd73192736
Author: Translation commit bot 
Date:   Sat Jun 25 18:48:47 2016 +

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

diff --git a/nn/abouttbupdate.dtd b/nn/abouttbupdate.dtd
new file mode 100644
index 000..5c75143
--- /dev/null
+++ b/nn/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/abouttor-homepage_completed] Update translations for abouttor-homepage_completed

2016-06-25 Thread translation
commit 37073ba581d2b106fbb061804a90ec853ad8717f
Author: Translation commit bot 
Date:   Sat Jun 25 18:46:31 2016 +

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

diff --git a/nn/aboutTor.dtd b/nn/aboutTor.dtd
new file mode 100644
index 000..f6d24d6
--- /dev/null
+++ b/nn/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/abouttor-homepage] Update translations for abouttor-homepage

2016-06-25 Thread translation
commit f797687a23a6e1b14a8b6f28e001298a9c310ef6
Author: Translation commit bot 
Date:   Sat Jun 25 18:46:28 2016 +

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

diff --git a/nn/aboutTor.dtd b/nn/aboutTor.dtd
index 274905b..f6d24d6 100644
--- a/nn/aboutTor.dtd
+++ b/nn/aboutTor.dtd
@@ -7,7 +7,7 @@
 
 
 
-
+
 
 
 
@@ -39,7 +39,7 @@
 
 
 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/https_everywhere_completed] Update translations for https_everywhere_completed

2016-06-25 Thread translation
commit c2fa4d98faef5c06489a37d196e7529f21e6b419
Author: Translation commit bot 
Date:   Sat Jun 25 18:45:35 2016 +

Update translations for https_everywhere_completed
---
 nn/https-everywhere.dtd | 31 +++
 1 file changed, 19 insertions(+), 12 deletions(-)

diff --git a/nn/https-everywhere.dtd b/nn/https-everywhere.dtd
index b41c310..c39c8ca 100644
--- a/nn/https-everywhere.dtd
+++ b/nn/https-everywhere.dtd
@@ -3,14 +3,19 @@
 
 
 
+
 
+
 
+
+
 
 
 
 
 
 
+
 
 
 
@@ -34,17 +39,19 @@
 
 
 
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 
-
-
-
-
-
-
 
-
-
-

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


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

2016-06-25 Thread translation
commit 656781d8a9069bb4da19c76e47c02a05338bec80
Author: Translation commit bot 
Date:   Sat Jun 25 18:45:30 2016 +

Update translations for https_everywhere
---
 nn/https-everywhere.dtd | 26 +-
 nn/ssl-observatory.dtd  | 27 ++-
 2 files changed, 27 insertions(+), 26 deletions(-)

diff --git a/nn/https-everywhere.dtd b/nn/https-everywhere.dtd
index f1c7815..c39c8ca 100644
--- a/nn/https-everywhere.dtd
+++ b/nn/https-everywhere.dtd
@@ -5,17 +5,17 @@
 
 
 
-
+
 
-
-
+
+
 
 
 
 
 
 
-
+
 
 
 
@@ -39,18 +39,18 @@
 
 
 
-
-
-
-
-
-
-
+
+
+
+
+
+
+
 
 
 
-
-
+
+
 
 
 
diff --git a/nn/ssl-observatory.dtd b/nn/ssl-observatory.dtd
index baa4f3b..dd31e54 100644
--- a/nn/ssl-observatory.dtd
+++ b/nn/ssl-observatory.dtd
@@ -3,9 +3,9 @@
 
 
 
-
+
 
 
 
 
 
+"Det er trygt å slå på dette, med mindre du nyttar
+eit sers inngripande verksemdnettverk:">
 
 
+"Trygt, med mindre du nyttar eit verksemdnettverk med løynlege intranett-
+tenarnamn:">
 
 
+"Send inn og sjekk attestar underskrevne av ikkjestandard rot-CA'ar">
 
 
+"Det er trygt (og ein god idé) å slå på dette valet, med mindre du nyttar 
eit inngripande verksemdnettverk eller Kaspersky motvirusprogramvare som 
yvervakar nettlesingi di med ein TLS-proxy og ein privat 
rotsertifikatautoritet. Um det er slege på på soleis eit nettverk, kan dette 
valet gjeve ut prov på kva https://-domene som vart vitja gjennum den proxyen, 
på grunn av dei sereigne sertifikati det ville laga. So me let det vera av som 
standard.">
 
-
+
 
+"Sjekk sertifikat ved hjelp av Tor for anonymitet (krev Tor)">
 
+"Dette valet krev at Tor er installert og køyrar">
 
 
+"NÃ¥r du ser eit nytt sertifikat, fortel Observatoriet kva for ISP du er kopla 
Ã¥t.">
 
 
+"Dette vil henta og senda det Autonome Systemtalet åt nettverket 
ditt. Dette vil hjelpe oss med å plassera åtak mot HTTPS, og med å avgjere 
um me hev åtgangingar frå nettverk på stadar soleis som Iran og Syria, kor 
åtak er jamførd vanlege.">
 
 

___
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-06-25 Thread translation
commit 8dee1eda8bffc3cd770731e79bb6cefbfa32c6d7
Author: Translation commit bot 
Date:   Sat Jun 25 18:45:08 2016 +

Update translations for bridgedb_completed
---
 nn/LC_MESSAGES/bridgedb.po | 382 +
 1 file changed, 382 insertions(+)

diff --git a/nn/LC_MESSAGES/bridgedb.po b/nn/LC_MESSAGES/bridgedb.po
new file mode 100644
index 000..6646bca
--- /dev/null
+++ b/nn/LC_MESSAGES/bridgedb.po
@@ -0,0 +1,382 @@
+# Translations template for BridgeDB.
+# Copyright (C) 2015 'The Tor Project, Inc.'
+# This file is distributed under the same license as the BridgeDB project.
+# 
+# Translators:
+# Bjørn I. , 2014-2015
+# Finn Brudal , 2016
+msgid ""
+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-06-25 18:16+\n"
+"Last-Translator: Finn Brudal \n"
+"Language-Team: Norwegian Nynorsk 
(http://www.transifex.com/otf/torproject/language/nn/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 1.3\n"
+"Language: nn\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. TRANSLATORS: Please DO NOT translate the following words and/or phrases in
+#. any string (regardless of capitalization and/or punctuation):
+#. "BridgeDB"
+#. "pluggable transport"
+#. "pluggable transports"
+#. "obfs2"
+#. "obfs3"
+#. "scramblesuit"
+#. "fteproxy"
+#. "Tor"
+#. "Tor Browser"
+#: bridgedb/https/server.py:167
+msgid "Sorry! Something went wrong with your request."
+msgstr "Orsak! Noko gjekk gale med førespurnaden din."
+
+#: bridgedb/https/templates/base.html:79
+msgid "Report a Bug"
+msgstr "Rapporter feil"
+
+#: bridgedb/https/templates/base.html:82
+msgid "Source Code"
+msgstr "Kjeldekode"
+
+#: bridgedb/https/templates/base.html:85
+msgid "Changelog"
+msgstr "Endringslogg"
+
+#: bridgedb/https/templates/base.html:88
+msgid "Contact"
+msgstr "Kontakt"
+
+#: bridgedb/https/templates/bridges.html:35
+msgid "Select All"
+msgstr "Vel alle"
+
+#: bridgedb/https/templates/bridges.html:40
+msgid "Show QRCode"
+msgstr "Vis QR-kode"
+
+#: bridgedb/https/templates/bridges.html:52
+msgid "QRCode for your bridge lines"
+msgstr "QR-for brulinjene dine"
+
+#. TRANSLATORS: Please translate this into some silly way to say
+#. "There was a problem!" in your language. For example,
+#. for Italian, you might translate this into "Mama mia!",
+#. or for French: "Sacrebleu!". :)
+#: bridgedb/https/templates/bridges.html:67
+#: bridgedb/https/templates/bridges.html:125
+msgid "Uh oh, spaghettios!"
+msgstr "Ojsann!"
+
+#: bridgedb/https/templates/bridges.html:68
+msgid "It seems there was an error getting your QRCode."
+msgstr "Det oppstod ein feil under henting av QR-koden din."
+
+#: bridgedb/https/templates/bridges.html:73
+msgid ""
+"This QRCode contains your bridge lines. Scan it with a QRCode reader to copy"
+" your bridge lines onto mobile and other devices."
+msgstr "Denne QR-koden inneheld brulinjene dine. Skann han med ein QR-lesar 
for å kopiera brulinjene dine over på mobilen og andre einingar."
+
+#: bridgedb/https/templates/bridges.html:131
+msgid "There currently aren't any bridges available..."
+msgstr "Ingen bruer er for tida tilgjengelege "
+
+#: bridgedb/https/templates/bridges.html:132
+#, python-format
+msgid ""
+" Perhaps you should try %s going back %s and choosing a different bridge "
+"type!"
+msgstr "Kanskje du skulle freista å %s gå tilbake %s og velja ei anna 
brutype!"
+
+#: bridgedb/https/templates/index.html:11
+#, python-format
+msgid "Step %s1%s"
+msgstr "Steg %s1%s"
+
+#: bridgedb/https/templates/index.html:13
+#, python-format
+msgid "Download %s Tor Browser %s"
+msgstr "Last ned %s Tor-nettlesaren %s"
+
+#: bridgedb/https/templates/index.html:25
+#, python-format
+msgid "Step %s2%s"
+msgstr "Steg %s2%s"
+
+#: bridgedb/https/templates/index.html:27
+#, python-format
+msgid "Get %s bridges %s"
+msgstr "Hent %s bruer %s"
+
+#: bridgedb/https/templates/index.html:36
+#, python-format
+msgid "Step %s3%s"
+msgstr "Steg %s3%s"
+
+#: bridgedb/https/templates/index.html:38
+#, python-format
+msgid "Now %s add the bridges to Tor Browser %s"
+msgstr "No kan du %s leggja til bruene i Tor Browser %s"
+
+#. TRANSLATORS: Please make sure the '%s' surrounding single letters at the
+#. beginning of words are present in your final translation. Thanks!
+#. (These are used to insert HTML5 underlining tags, to mark accesskeys
+#. for disabled users.)
+#: bridgedb/https/templates/options.html:38
+#, python-format
+msgid "%sJ%sust give me bridges!"
+msgstr "%sB%serre gje meg nokre bruer!"
+
+#: bridgedb/https/templates/options.html:51
+msgid "Advanced Options"
+msgstr "Avanserte innstillingar"
+

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

2016-06-25 Thread translation
commit d7be6a9dbdc42452fd27b5d62e749be7cb550697
Author: Translation commit bot 
Date:   Sat Jun 25 18:45:03 2016 +

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

diff --git a/nn/LC_MESSAGES/bridgedb.po b/nn/LC_MESSAGES/bridgedb.po
index 87bec76..6646bca 100644
--- a/nn/LC_MESSAGES/bridgedb.po
+++ b/nn/LC_MESSAGES/bridgedb.po
@@ -10,7 +10,7 @@ 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-06-25 18:14+\n"
+"PO-Revision-Date: 2016-06-25 18:16+\n"
 "Last-Translator: Finn Brudal \n"
 "Language-Team: Norwegian Nynorsk 
(http://www.transifex.com/otf/torproject/language/nn/)\n"
 "MIME-Version: 1.0\n"
@@ -379,4 +379,4 @@ msgstr "Be um ein Pluggbar Transport ved hjelp av TYPE."
 #. TRANSLATORS: Please DO NOT translate "GnuPG".
 #: bridgedb/strings.py:177
 msgid "Get a copy of BridgeDB's public GnuPG key."
-msgstr ""
+msgstr "Feng ein kopi av BridgeDBs offentlege GnuPG-lykel."

___
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-06-25 Thread translation
commit 3532e4d91fbaa2c5c6a3051949a025f8d0051495
Author: Translation commit bot 
Date:   Sat Jun 25 18:15:03 2016 +

Update translations for bridgedb
---
 nn/LC_MESSAGES/bridgedb.po | 31 ---
 1 file changed, 16 insertions(+), 15 deletions(-)

diff --git a/nn/LC_MESSAGES/bridgedb.po b/nn/LC_MESSAGES/bridgedb.po
index c4e96ff..87bec76 100644
--- a/nn/LC_MESSAGES/bridgedb.po
+++ b/nn/LC_MESSAGES/bridgedb.po
@@ -4,13 +4,14 @@
 # 
 # Translators:
 # Bjørn I. , 2014-2015
+# Finn Brudal , 2016
 msgid ""
 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-03-21 16:27+\n"
-"Last-Translator: Bjørn I. \n"
+"PO-Revision-Date: 2016-06-25 18:14+\n"
+"Last-Translator: Finn Brudal \n"
 "Language-Team: Norwegian Nynorsk 
(http://www.transifex.com/otf/torproject/language/nn/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -210,7 +211,7 @@ msgstr "Offentlege nøklar"
 msgid ""
 "This email was generated with rainbows, unicorns, and sparkles\n"
 "for %s on %s at %s."
-msgstr ""
+msgstr "Denne e-posten vart laga med regnbogar, einhyrningar og gnistar\nfor 
%s på %s på %s."
 
 #. TRANSLATORS: Please DO NOT translate "BridgeDB".
 #. TRANSLATORS: Please DO NOT translate "Pluggable Transports".
@@ -224,7 +225,7 @@ msgid ""
 "difficult for anyone watching your internet traffic to determine that you 
are\n"
 "using Tor.\n"
 "\n"
-msgstr ""
+msgstr "BridgeDB kan forsyna bruer med fleire %sslags Pluggbare 
Transportar%s,\nnoko som kan hjelpa til med å tildekkje koplingane dine åt 
Tor-nettverket, og\ngjera det vanskelegare for nokon som yvervakar 
internett-trafikken din å avgjere\nat du nyttar Tor.\n"
 
 #. TRANSLATORS: Please DO NOT translate "Pluggable Transports".
 #: bridgedb/strings.py:79
@@ -232,7 +233,7 @@ msgid ""
 "Some bridges with IPv6 addresses are also available, though some Pluggable\n"
 "Transports aren't IPv6 compatible.\n"
 "\n"
-msgstr ""
+msgstr "Nokre broer med IPv6-adressor er òg åtgjengelege, sjølv um nokre 
Pluggbare\nTransportar ikkje gjeng i lag med IPv6.\n"
 
 #. TRANSLATORS: Please DO NOT translate "BridgeDB".
 #. TRANSLATORS: The phrase "plain-ol'-vanilla" means "plain, boring,
@@ -246,7 +247,7 @@ msgid ""
 "Pluggable Transports %s which maybe doesn't sound as cool, but they can 
still\n"
 "help to circumvent internet censorship in many cases.\n"
 "\n"
-msgstr ""
+msgstr "I tillegg hev BridgeDB mange vanlege bruer %s utan nokon 
Pluggbare\nTransportar %s, noko som kanskje ikkje høyrast så kult ut, men dei 
kan framleis\nhjelpa med å koma utanum internettsensur i mange døme.\n"
 
 #: bridgedb/strings.py:101
 msgid "What are bridges?"
@@ -255,7 +256,7 @@ msgstr "Kva er bruer?"
 #: bridgedb/strings.py:102
 #, python-format
 msgid "%s Bridges %s are Tor relays that help you circumvent censorship."
-msgstr ""
+msgstr "%s Bruer %s er Tor-relé som hjelper deg med å koma utanum sensur."
 
 #: bridgedb/strings.py:107
 msgid "I need an alternative way of getting bridges!"
@@ -267,7 +268,7 @@ msgid ""
 "Another way to get bridges is to send an email to %s. Please note that you 
must\n"
 "send the email using an address from one of the following email providers:\n"
 "%s, %s or %s."
-msgstr ""
+msgstr "Eit anna vis å fenge bruer på er å sende ein e-post åt %s. Ver 
venleg og merk at du\nlyt sende e-posten ved hjelp av ei adressa frå ein av 
dei fylgjande\ne-poståtbjodarane: %s, %s eller %s."
 
 #: bridgedb/strings.py:115
 msgid "My bridges don't work! I need help!"
@@ -287,7 +288,7 @@ msgid ""
 "Try including as much info about your case as you can, including the list 
of\n"
 "bridges and Pluggable Transports you tried to use, your Tor Browser 
version,\n"
 "and any messages which Tor gave out, etc."
-msgstr ""
+msgstr "Freist å taka med so mange upplysingar um saka di som du kan, 
medrekna\nlista yver bruer og Pluggbare Transportar du freista å nytta, 
Tor-nettlesarversjonen\ndin og alle meldinger som Tor gav ut, osv."
 
 #: bridgedb/strings.py:128
 msgid "Here are your bridge lines:"
@@ -299,7 +300,7 @@ msgstr "FÃ¥ bruer!"
 
 #: bridgedb/strings.py:133
 msgid "Please select options for bridge type:"
-msgstr ""
+msgstr "Ver venleg og gjer val for brutype:"
 
 #: bridgedb/strings.py:134
 msgid "Do you need IPv6 addresses?"
@@ -329,21 +330,21 @@ msgid ""
 "To enter bridges into Tor Browser, first go to the %s Tor Browser download\n"
 "page %s and then follow the instructions there for downloading and starting\n"
 "Tor Browser."
-msgstr ""
+msgstr "For å leggja bruer inn i Tor-nettlesaren, gakk fyst åt %s 
Tor-nettlesarnedlastings-\nsida %s og fylg deretter rettleiingane der for å 
lasta ned 

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

2016-06-25 Thread translation
commit 12cd5726a3505df8f4cdd9023c87fd94cb356f74
Author: Translation commit bot 
Date:   Sat Jun 25 18:15:27 2016 +

Update translations for torcheck_completed
---
 nn/torcheck.po | 23 +++
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/nn/torcheck.po b/nn/torcheck.po
index afc355a..401567d 100644
--- a/nn/torcheck.po
+++ b/nn/torcheck.po
@@ -2,14 +2,15 @@
 # Copyright (C) 2008-2013 The Tor Project, Inc
 # 
 # Translators:
-# Bjørn I. , 2014
+# Bjørn I. , 2014-2016
+# Finn Brudal , 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "POT-Creation-Date: 2012-02-16 20:28+PDT\n"
-"PO-Revision-Date: 2014-10-15 17:11+\n"
-"Last-Translator: Bjørn I. \n"
-"Language-Team: Norwegian Nynorsk 
(http://www.transifex.com/projects/p/torproject/language/nn/)\n"
+"PO-Revision-Date: 2016-06-25 17:53+\n"
+"Last-Translator: Finn Brudal \n"
+"Language-Team: Norwegian Nynorsk 
(http://www.transifex.com/otf/torproject/language/nn/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -26,8 +27,8 @@ msgid ""
 "the Internet anonymously."
 msgstr "GÃ¥ til https://www.torproject.org/\;>Tor-nettsida for 
meir informasjon om trygg bruk av Tor.  Du kan no fritt surfa anonymt på 
Internett."
 
-msgid "There is a security update available for the Tor Browser Bundle."
-msgstr "Ei tryggingsoppdatering er tilgjengeleg for Tor Browser Bundle."
+msgid "There is a security update available for Tor Browser."
+msgstr "Ei tryggingsoppdatering for Tor-nettlesaren er klar."
 
 msgid ""
 "https://www.torproject.org/download/download-easy.html\;>Click "
@@ -93,5 +94,11 @@ msgstr "JavaScript er slått på."
 msgid "JavaScript is disabled."
 msgstr "JavaScript er slått av."
 
-msgid "However, it does not appear to be the Tor Browser Bundle."
-msgstr "Men det ser ikkje ut til å vera Tor-nettlesarpakken."
+msgid "However, it does not appear to be Tor Browser."
+msgstr "Men det ser ikkje ut til å vera Tor-nettlesaren."
+
+msgid "Run a Relay"
+msgstr "Køyr eit relé"
+
+msgid "Stay Anonymous"
+msgstr "Ver anonym"

___
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-06-25 Thread translation
commit b0efe0cb325c164c01127e470736cafb84885bd5
Author: Translation commit bot 
Date:   Sat Jun 25 18:15:23 2016 +

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

diff --git a/nn/torcheck.po b/nn/torcheck.po
index ccb0050..401567d 100644
--- a/nn/torcheck.po
+++ b/nn/torcheck.po
@@ -3,12 +3,13 @@
 # 
 # Translators:
 # Bjørn I. , 2014-2016
+# Finn Brudal , 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "POT-Creation-Date: 2012-02-16 20:28+PDT\n"
-"PO-Revision-Date: 2016-04-11 18:17+\n"
-"Last-Translator: Bjørn I. \n"
+"PO-Revision-Date: 2016-06-25 17:53+\n"
+"Last-Translator: Finn Brudal \n"
 "Language-Team: Norwegian Nynorsk 
(http://www.transifex.com/otf/torproject/language/nn/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -94,7 +95,7 @@ msgid "JavaScript is disabled."
 msgstr "JavaScript er slått av."
 
 msgid "However, it does not appear to be Tor Browser."
-msgstr ""
+msgstr "Men det ser ikkje ut til å vera Tor-nettlesaren."
 
 msgid "Run a Relay"
 msgstr "Køyr eit relé"

___
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-06-25 Thread translation
commit 9d89ddd0c9638f0aa60d20e605347fbce4da1e5d
Author: Translation commit bot 
Date:   Sat Jun 25 11:46:39 2016 +

Update translations for torbutton-torbuttonproperties
---
 es_AR/torbutton.properties | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/es_AR/torbutton.properties b/es_AR/torbutton.properties
index 3e6dcb3..63d2b65 100644
--- a/es_AR/torbutton.properties
+++ b/es_AR/torbutton.properties
@@ -1,10 +1,10 @@
 torbutton.circuit_display.internet = Internet
-torbutton.circuit_display.ip_unknown = IP unknown
+torbutton.circuit_display.ip_unknown = IP desconocido
 torbutton.circuit_display.onion_site = Onion site
-torbutton.circuit_display.this_browser = This browser
+torbutton.circuit_display.this_browser = Este navegador
 torbutton.circuit_display.relay = relay
-torbutton.circuit_display.tor_bridge = Bridge
-torbutton.circuit_display.unknown_country = Unknown country
+torbutton.circuit_display.tor_bridge = Puente
+torbutton.circuit_display.unknown_country = País desconocido
 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 = Click para activar Tor
 torbutton.panel.tooltip.enabled = Click para desactivar Tor
@@ -37,7 +37,7 @@ torbutton.popup.never_ask_again = No preguntarme de nuevo
 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.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_button = Abrir ajustes de seguridad
 
 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.
 
@@ -45,9 +45,9 @@ torbutton.maximize_warning = Maximizing Tor Browser can allow 
websites to determ
 canvas.siteprompt=This website (%S) attempted to extract HTML5 canvas image 
data, which may be used to uniquely identify your computer.\n\nShould Tor 
Browser allow this website to extract HTML5 canvas image data?
 canvas.notNow=Ahora no
 canvas.notNowAccessKey=N
-canvas.allow=Allow in the future
+canvas.allow=Permitir en el futuro
 canvas.allowAccessKey=Un
-canvas.never=Never for this site (recommended)
+canvas.never=Nunca para este sitio (recomendado)
 canvas.neverAccessKey=e
 
 # Profile/startup error messages. Strings are kept here for ease of 
translation.

___
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-06-25 Thread translation
commit 868071f9c21b6c2502e423f7cea9104c180e3a0a
Author: Translation commit bot 
Date:   Sat Jun 25 11:15:21 2016 +

Update translations for torcheck_completed
---
 es_AR/torcheck.po | 27 ++-
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/es_AR/torcheck.po b/es_AR/torcheck.po
index f75c2b3..c24b43d 100644
--- a/es_AR/torcheck.po
+++ b/es_AR/torcheck.po
@@ -3,6 +3,7 @@
 # 
 # Translators:
 # TorUserSpanishHelp, 2013
+# Jack Ryan, 2016
 # Max Ram , 2013
 # ezemelano , 2014
 # Victor Villarreal , 2015
@@ -10,8 +11,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "POT-Creation-Date: 2012-02-16 20:28+PDT\n"
-"PO-Revision-Date: 2016-03-21 16:27+\n"
-"Last-Translator: Victor Villarreal \n"
+"PO-Revision-Date: 2016-06-25 11:06+\n"
+"Last-Translator: Jack Ryan\n"
 "Language-Team: Spanish (Argentina) 
(http://www.transifex.com/otf/torproject/language/es_AR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -27,36 +28,36 @@ 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 "Por favor dirigite a https://www.torproject.org/\;>Sitio web 
de Tor para tener mas información de como usar Tor de una manera segura. 
Ahora vas a poder navegar en Internet de forma anónima."
+msgstr "Por favor dirigite al https://www.torproject.org/\;>sitio 
web de Tor para obtener más información de cómo usar Tor de una manera 
segura. Ahora vas a poder navegar en Internet de forma anónima."
 
 msgid "There is a security update available for Tor Browser."
-msgstr "Existe una actualización de seguridad disponible para Tor Browser."
+msgstr "Hay una actualización de seguridad disponible para Tor Browser."
 
 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\;>Hacé click 
acá para ir a la página de Descargas"
+msgstr "https://www.torproject.org/download/download-easy.html\;>Hacé click 
acá para ir a la página de descargas"
 
 msgid "Sorry. You are not using Tor."
-msgstr "Disculpe. Usted no está usando Tor."
+msgstr "Disculpá. No estás usando 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 "Si estásintentando usar un cliente de Tor, por favor andá a 
href=\"https://www.torproject.org/\;>Sitio web de Tor y especificamente a 
https://www.torproject.org/docs/faq#DoesntWork\;> las instrucciones 
para configurar tu cliente de Tor"
+msgstr "Si estás intentando usar un cliente de Tor, por favor consultá el 
href=\"https://www.torproject.org/\;>sitio web de Tor y especificamente a 
https://www.torproject.org/docs/faq#DoesntWork\;>las instrucciones 
para configurar tu cliente de Tor."
 
 msgid "Sorry, your query failed or an unexpected response was received."
-msgstr "Disculpe, su solicitud fallo, o una respuesta inesperada fue recibida."
+msgstr "Disculpá. Tu solicitud falló o una respuesta inesperada fue 
recibida."
 
 msgid ""
 "A temporary service outage prevents us from determining if your source IP "
 "address is a https://www.torproject.org/\;>Tor node."
-msgstr "Una falla temporal de servicio evitó que determinemos si tu 
dirección IP original es un nodo de https://www.torproject.org/\;>Tor."
+msgstr "Una falla temporal de servicio evita que determinemos si tu dirección 
IP original es un nodo de https://www.torproject.org/\;>Tor."
 
 msgid "Your IP address appears to be: "
-msgstr "Tu dirección IP aparentemente es:"
+msgstr "Tu dirección IP parece ser:"
 
 msgid "Are you using Tor?"
 msgstr "Estás usando Tor?"
@@ -65,7 +66,7 @@ msgid "This page is also available in the following 
languages:"
 msgstr "Esta página está también disponible en los siguientes idiomas:"
 
 msgid "For more information about this exit relay, see:"
-msgstr "Para mas información sobre este relé de salida vea:"
+msgstr "Para más información sobre este relé de salida, consultá:"
 
 msgid ""
 "The Tor Project is a US 501(c)(3) non-profit dedicated to the research, "
@@ -73,7 +74,7 @@ msgid ""
 msgstr "El Proyecto Tor es una US 501(c)(3) sin fines de lucro dedicada a la 
investigación, el desarrollo y la educación del anonimato y privacidad en 
línea."
 
 msgid "Learn More "
-msgstr "Aprende más "
+msgstr "Aprendé más "
 
 msgid "Go"
 msgstr "Ir"
@@ -100,7 +101,7 @@ msgid "However, it does not appear to be Tor Browser."
 msgstr "De cualquier manera, esto no parece ser Tor Browser."
 
 msgid "Run a Relay"
-msgstr "Ejecuta un Relay"
+msgstr 

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

2016-06-25 Thread translation
commit d5669dc5a347f2ec5b6f30de24954e018d551b3d
Author: Translation commit bot 
Date:   Sat Jun 25 11:15:15 2016 +

Update translations for torcheck
---
 es_AR/torcheck.po | 27 ++-
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/es_AR/torcheck.po b/es_AR/torcheck.po
index f75c2b3..c24b43d 100644
--- a/es_AR/torcheck.po
+++ b/es_AR/torcheck.po
@@ -3,6 +3,7 @@
 # 
 # Translators:
 # TorUserSpanishHelp, 2013
+# Jack Ryan, 2016
 # Max Ram , 2013
 # ezemelano , 2014
 # Victor Villarreal , 2015
@@ -10,8 +11,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "POT-Creation-Date: 2012-02-16 20:28+PDT\n"
-"PO-Revision-Date: 2016-03-21 16:27+\n"
-"Last-Translator: Victor Villarreal \n"
+"PO-Revision-Date: 2016-06-25 11:06+\n"
+"Last-Translator: Jack Ryan\n"
 "Language-Team: Spanish (Argentina) 
(http://www.transifex.com/otf/torproject/language/es_AR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -27,36 +28,36 @@ 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 "Por favor dirigite a https://www.torproject.org/\;>Sitio web 
de Tor para tener mas información de como usar Tor de una manera segura. 
Ahora vas a poder navegar en Internet de forma anónima."
+msgstr "Por favor dirigite al https://www.torproject.org/\;>sitio 
web de Tor para obtener más información de cómo usar Tor de una manera 
segura. Ahora vas a poder navegar en Internet de forma anónima."
 
 msgid "There is a security update available for Tor Browser."
-msgstr "Existe una actualización de seguridad disponible para Tor Browser."
+msgstr "Hay una actualización de seguridad disponible para Tor Browser."
 
 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\;>Hacé click 
acá para ir a la página de Descargas"
+msgstr "https://www.torproject.org/download/download-easy.html\;>Hacé click 
acá para ir a la página de descargas"
 
 msgid "Sorry. You are not using Tor."
-msgstr "Disculpe. Usted no está usando Tor."
+msgstr "Disculpá. No estás usando 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 "Si estásintentando usar un cliente de Tor, por favor andá a 
href=\"https://www.torproject.org/\;>Sitio web de Tor y especificamente a 
https://www.torproject.org/docs/faq#DoesntWork\;> las instrucciones 
para configurar tu cliente de Tor"
+msgstr "Si estás intentando usar un cliente de Tor, por favor consultá el 
href=\"https://www.torproject.org/\;>sitio web de Tor y especificamente a 
https://www.torproject.org/docs/faq#DoesntWork\;>las instrucciones 
para configurar tu cliente de Tor."
 
 msgid "Sorry, your query failed or an unexpected response was received."
-msgstr "Disculpe, su solicitud fallo, o una respuesta inesperada fue recibida."
+msgstr "Disculpá. Tu solicitud falló o una respuesta inesperada fue 
recibida."
 
 msgid ""
 "A temporary service outage prevents us from determining if your source IP "
 "address is a https://www.torproject.org/\;>Tor node."
-msgstr "Una falla temporal de servicio evitó que determinemos si tu 
dirección IP original es un nodo de https://www.torproject.org/\;>Tor."
+msgstr "Una falla temporal de servicio evita que determinemos si tu dirección 
IP original es un nodo de https://www.torproject.org/\;>Tor."
 
 msgid "Your IP address appears to be: "
-msgstr "Tu dirección IP aparentemente es:"
+msgstr "Tu dirección IP parece ser:"
 
 msgid "Are you using Tor?"
 msgstr "Estás usando Tor?"
@@ -65,7 +66,7 @@ msgid "This page is also available in the following 
languages:"
 msgstr "Esta página está también disponible en los siguientes idiomas:"
 
 msgid "For more information about this exit relay, see:"
-msgstr "Para mas información sobre este relé de salida vea:"
+msgstr "Para más información sobre este relé de salida, consultá:"
 
 msgid ""
 "The Tor Project is a US 501(c)(3) non-profit dedicated to the research, "
@@ -73,7 +74,7 @@ msgid ""
 msgstr "El Proyecto Tor es una US 501(c)(3) sin fines de lucro dedicada a la 
investigación, el desarrollo y la educación del anonimato y privacidad en 
línea."
 
 msgid "Learn More "
-msgstr "Aprende más "
+msgstr "Aprendé más "
 
 msgid "Go"
 msgstr "Ir"
@@ -100,7 +101,7 @@ msgid "However, it does not appear to be Tor Browser."
 msgstr "De cualquier manera, esto no parece ser Tor Browser."
 
 msgid "Run a Relay"
-msgstr "Ejecuta un Relay"
+msgstr "Ejecutá un 

[tor-commits] [user-manual/master] Updating bridge screenshot, no longer includes FlashProxy

2016-06-25 Thread colin
commit cb082e2203dd315c35fa27f34868a13bb5950604
Author: Colin Childs 
Date:   Sat Jun 25 03:40:22 2016 -0500

Updating bridge screenshot, no longer includes FlashProxy
---
 C/media/circumvention/bridges.png | Bin 177456 -> 48171 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/C/media/circumvention/bridges.png 
b/C/media/circumvention/bridges.png
index fd16479..449de01 100644
Binary files a/C/media/circumvention/bridges.png and 
b/C/media/circumvention/bridges.png differ

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


[tor-commits] [user-manual/master] Change Tor Browser download URL and make it an actual link

2016-06-25 Thread colin
commit b996a94bbd08c884aa5e1804a961cac4c16bb46e
Author: Colin Childs 
Date:   Sat Jun 25 03:18:41 2016 -0500

Change Tor Browser download URL and make it an actual link
---
 C/updating.page | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/C/updating.page b/C/updating.page
index c950f9e..7791830 100644
--- a/C/updating.page
+++ b/C/updating.page
@@ -72,8 +72,9 @@ can update either automatically or manually.
  
  
   
-  Visit https://www.torproject.org and download a copy of the latest Tor
-  Browser release, then install it as before.
+  Visit https://www.torproject.org/projects/torbrowser.html.en;>
+  https://www.torproject.org/projects/torbrowser.html.en and download 
+  a copy of the latest Tor Browser release, then install it as before.
   
  
 

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