[tor-commits] [stem/master] Concatenate strings with bytearray rather than BytesIO

2018-05-25 Thread atagar
commit c23cffc5cbe12b276fa18424a7bc85f91f901a60
Author: Damian Johnson 
Date:   Fri May 25 14:19:22 2018 -0700

Concatenate strings with bytearray rather than BytesIO

While skimming through the python docs I came across a note suggesting
bytearray for string concatenation...

  
https://docs.python.org/3/faq/programming.html#what-is-the-most-efficient-way-to-concatenate-many-strings-together

Gave this a whirl and it's not only more readable, but about 10% faster
too...


concat_with_bytesio.py


import io
import time

start = time.time()
full_bytes = io.BytesIO()

for i in range(1000):
  full_bytes.write(b'hi')

result = full_bytes.getvalue()
print('total length: %i, took %0.2f seconds' % (len(result), time.time() - 
start))


concat_with_bytearray.py


import time

start = time.time()
full_bytes = bytearray()

for i in range(1000):
  full_bytes += b'hi'

result = bytes(full_bytes)
print('total length: %i, took %0.2f seconds' % (len(result), time.time() - 
start))


Results


% python2 --version
Python 2.7.12

% python3 --version
Python 3.5.2

% for ((n=0;n<3;n++)); do python2 concat_with_bytearray.py; done
total length: 22000, took 1.18 seconds
total length: 22000, took 1.19 seconds
total length: 22000, took 1.17 seconds

% for ((n=0;n<3;n++)); do python3 concat_with_bytearray.py; done
total length: 22000, took 1.02 seconds
total length: 22000, took 0.99 seconds
total length: 22000, took 1.03 seconds

% for ((n=0;n<3;n++)); do python2 concat_with_bytesio.py; done
total length: 22000, took 1.40 seconds
total length: 22000, took 1.38 seconds
total length: 22000, took 1.38 seconds

% for ((n=0;n<3;n++)); do python3 concat_with_bytesio.py; done
total length: 22000, took 1.18 seconds
total length: 22000, took 1.19 seconds
total length: 22000, took 1.20 seconds
---
 stem/client/cell.py | 58 -
 stem/client/datatype.py | 21 +-
 stem/socket.py  | 22 +--
 3 files changed, 48 insertions(+), 53 deletions(-)

diff --git a/stem/client/cell.py b/stem/client/cell.py
index b40a737f..d0a98ada 100644
--- a/stem/client/cell.py
+++ b/stem/client/cell.py
@@ -39,7 +39,6 @@ Messages communicated over a Tor relay's ORPort.
 
 import datetime
 import inspect
-import io
 import os
 import random
 import sys
@@ -192,24 +191,23 @@ class Cell(object):
 if isinstance(cls, CircuitCell) and circ_id is None:
   raise ValueError('%s cells require a circ_id' % cls.NAME)
 
-cell = io.BytesIO()
-cell.write(Size.LONG.pack(circ_id) if link_protocol > 3 else 
Size.SHORT.pack(circ_id))
-cell.write(Size.CHAR.pack(cls.VALUE))
-cell.write(b'' if cls.IS_FIXED_SIZE else Size.SHORT.pack(len(payload)))
-cell.write(payload)
+cell = bytearray()
+cell += Size.LONG.pack(circ_id) if link_protocol > 3 else 
Size.SHORT.pack(circ_id)
+cell += Size.CHAR.pack(cls.VALUE)
+cell += b'' if cls.IS_FIXED_SIZE else Size.SHORT.pack(len(payload))
+cell += payload
 
 # pad fixed sized cells to the required length
 
 if cls.IS_FIXED_SIZE:
-  cell_size = cell.seek(0, io.SEEK_END)
   fixed_cell_len = 514 if link_protocol > 3 else 512
 
-  if cell_size > fixed_cell_len:
-raise ValueError('Payload of %s is too large (%i bytes), must be less 
than %i' % (cls.NAME, cell_size, fixed_cell_len))
+  if len(cell) > fixed_cell_len:
+raise ValueError('Payload of %s is too large (%i bytes), must be less 
than %i' % (cls.NAME, len(cell), fixed_cell_len))
 
-  cell.write(ZERO * (fixed_cell_len - cell_size))
+  cell += ZERO * (fixed_cell_len - len(cell))
 
-return cell.getvalue()
+return bytes(cell)
 
   @classmethod
   def _unpack(cls, content, circ_id, link_protocol):
@@ -330,15 +328,15 @@ class RelayCell(CircuitCell):
 raise ValueError('%s relay cells concern the circuit itself and cannot 
have a stream id' % self.command)
 
   def pack(self, link_protocol):
-payload = io.BytesIO()
-payload.write(Size.CHAR.pack(self.command_int))
-payload.write(Size.SHORT.pack(self.recognized))
-payload.write(Size.SHORT.pack(self.stream_id))
-payload.write(Size.LONG.pack(self.digest))
-payload.write(Size.SHORT.pack(len(self.data)))
- 

[tor-commits] [metrics-web/master] Fix flaw in noise-removing code of hidserv module.

2018-05-25 Thread karsten
commit 52b1051fb14f4091d3e1e02b0497bad5b0d66ca6
Author: Karsten Loesing 
Date:   Fri May 18 16:29:42 2018 +0200

Fix flaw in noise-removing code of hidserv module.

In the technical report that the hidserv module is based on we write:

"When processing hidden-service statistics, we need to handle the fact
that they have been obfuscated by relays. As first step, we're
attempting to remove the additive Laplace-distributed noise by
rounding up or down to the nearest multiple of bin_size. The idea is
that it's most likely that noise was added to the closest right side
of a bin than to the right side of another bin. In step two, we're
subtracting half of bin_size, because the relay added between 0 and
bin_size − 1 to the originally observed value."

However, our code has a flaw: we use integer truncation rather which
always rounds toward zero, whereas we really want to use the floor
function which rounds towards negative infinity.

The fix is to use Math.floorDiv() for the division rather than common
integer division and truncation.

Fixes #26022.
---
 src/main/java/org/torproject/metrics/stats/hidserv/Parser.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/torproject/metrics/stats/hidserv/Parser.java 
b/src/main/java/org/torproject/metrics/stats/hidserv/Parser.java
index 2423526..9c95db5 100644
--- a/src/main/java/org/torproject/metrics/stats/hidserv/Parser.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/Parser.java
@@ -243,7 +243,7 @@ public class Parser {
* right side of a bin and subtracting half of the bin size. */
   private long removeNoise(long reportedNumber, long binSize) {
 long roundedToNearestRightSideOfTheBin =
-((reportedNumber + binSize / 2) / binSize) * binSize;
+Math.floorDiv((reportedNumber + binSize / 2), binSize) * binSize;
 long subtractedHalfOfBinSize =
 roundedToNearestRightSideOfTheBin - binSize / 2;
 return subtractedHalfOfBinSize;

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


[tor-commits] [metrics-web/master] Don't terminate the hidserv module when parsing descriptors.

2018-05-25 Thread karsten
commit 4333d0666dbb8a252bd85d1cc79ebd18dc84d4bd
Author: Karsten Loesing 
Date:   Fri May 18 16:26:12 2018 +0200

Don't terminate the hidserv module when parsing descriptors.

This issue came up when reprocessing descriptor archives for #26022:
we'd terminate the hidserv module when running into an issue with
parsing descriptors, where a possible issue is a consensus without a
"bandwidth-weights" line.

This seems wrong. It's okay to print out a warning in this case. But
in general, we don't want to abort the entire module in this case.

Related to #26022.
---
 .../org/torproject/metrics/stats/hidserv/Main.java |  6 +-
 .../torproject/metrics/stats/hidserv/Parser.java   | 23 +-
 2 files changed, 10 insertions(+), 19 deletions(-)

diff --git a/src/main/java/org/torproject/metrics/stats/hidserv/Main.java 
b/src/main/java/org/torproject/metrics/stats/hidserv/Main.java
index a23c17f..eafeeb1 100644
--- a/src/main/java/org/torproject/metrics/stats/hidserv/Main.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/Main.java
@@ -38,11 +38,7 @@ public class Main {
 /* Parse new descriptors and store their contents using the document
  * stores. */
 System.out.println("Parsing descriptors...");
-if (!parser.parseDescriptors()) {
-  System.err.println("Could not store parsed descriptors.  "
-  + "Terminating.");
-  return;
-}
+parser.parseDescriptors();
 
 /* Write the parse history to avoid parsing descriptor files again
  * next time.  It's okay to do this now and not at the end of the
diff --git a/src/main/java/org/torproject/metrics/stats/hidserv/Parser.java 
b/src/main/java/org/torproject/metrics/stats/hidserv/Parser.java
index f2abc78..2423526 100644
--- a/src/main/java/org/torproject/metrics/stats/hidserv/Parser.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/Parser.java
@@ -162,16 +162,14 @@ public class Parser {
   /** Instructs the descriptor reader to parse descriptor files, and
* handles the resulting parsed descriptors if they are either
* extra-info descriptors or consensuses. */
-  public boolean parseDescriptors() {
+  public void parseDescriptors() {
 for (Descriptor descriptor : descriptorReader.readDescriptors(
 this.inDirectories)) {
   if (descriptor instanceof ExtraInfoDescriptor) {
 this.parseExtraInfoDescriptor((ExtraInfoDescriptor) descriptor);
   } else if (descriptor instanceof RelayNetworkStatusConsensus) {
-if (!this.parseRelayNetworkStatusConsensus(
-(RelayNetworkStatusConsensus) descriptor)) {
-  return false;
-}
+this.parseRelayNetworkStatusConsensus(
+(RelayNetworkStatusConsensus) descriptor);
   }
 }
 
@@ -180,7 +178,7 @@ public class Parser {
  * descriptors.  In contrast, sets of computed network fractions are
  * stored immediately after processing the consensus they are based
  * on. */
-return this.reportedHidServStatsStore.store(
+this.reportedHidServStatsStore.store(
 this.reportedHidServStatsFile, this.reportedHidServStats);
   }
 
@@ -252,7 +250,7 @@ public class Parser {
   }
 
   /** Parses the given consensus. */
-  public boolean parseRelayNetworkStatusConsensus(
+  public void parseRelayNetworkStatusConsensus(
   RelayNetworkStatusConsensus consensus) {
 
 /* Make sure that the consensus contains Wxx weights. */
@@ -262,7 +260,7 @@ public class Parser {
   System.err.printf("Consensus with valid-after time %s doesn't "
   + "contain any Wxx weights.  Skipping.%n",
   DateTimeHelper.format(consensus.getValidAfterMillis()));
-  return false;
+  return;
 }
 
 /* More precisely, make sure that it contains Wmx weights, and then
@@ -274,7 +272,7 @@ public class Parser {
   System.err.printf("Consensus with valid-after time %s doesn't "
   + "contain expected Wmx weights.  Skipping.%n",
   DateTimeHelper.format(consensus.getValidAfterMillis()));
-  return false;
+  return;
 }
 double wmg = ((double) bandwidthWeights.get("Wmg")) / 1.0;
 double wmm = ((double) bandwidthWeights.get("Wmm")) / 1.0;
@@ -421,11 +419,8 @@ public class Parser {
 DateTimeHelper.ISO_DATE_FORMAT);
 File documentFile = new File(this.computedNetworkFractionsDirectory,
 date);
-if (!this.computedNetworkFractionsStore.store(documentFile,
-computedNetworkFractions)) {
-  return false;
-}
-return true;
+this.computedNetworkFractionsStore.store(documentFile,
+computedNetworkFractions);
   }
 }
 



___
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

2018-05-25 Thread translation
commit 946df6ef125fa59bb8216eee6c4acc90139159f2
Author: Translation commit bot 
Date:   Fri May 25 14:15:38 2018 +

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

diff --git a/fr/https-everywhere.dtd b/fr/https-everywhere.dtd
index 177c30a9c..f771ce503 100644
--- a/fr/https-everywhere.dtd
+++ b/fr/https-everywhere.dtd
@@ -23,6 +23,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

2018-05-25 Thread translation
commit 7bcc5c1b60b4c4c758b458cfe5eb42ff549965ad
Author: Translation commit bot 
Date:   Fri May 25 14:15:30 2018 +

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

diff --git a/fr/https-everywhere.dtd b/fr/https-everywhere.dtd
index 541cb4ee6..f771ce503 100644
--- a/fr/https-everywhere.dtd
+++ b/fr/https-everywhere.dtd
@@ -23,7 +23,7 @@
 
 
 
-
+
 
 
 

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


[tor-commits] [tor-browser-build/master] Bug 25862: move mingw helper scripts to firefox

2018-05-25 Thread gk
commit 8fd3d1dc7f27a96129328af98b69e18d161cef97
Author: Nicolas Vigier 
Date:   Fri Apr 20 18:41:15 2018 +0200

Bug 25862: move mingw helper scripts to firefox

Stop using mingw helper scripts everywhere except for the firefox build.

At the same time as we move them to firefox, we simplify the helper
scripts by using var/CFLAGS and var/LDFLAGS from rbm.conf instead of
redefining the flags.

We are also now building firefox with -fstack-protector-strong instead
of -fstack-protector.
---
 projects/firefox/build| 23 +++
 projects/mingw-w64/build  | 19 ---
 projects/mingw-w64/config |  2 +-
 projects/nsis/build   |  2 --
 rbm.conf  |  2 +-
 5 files changed, 25 insertions(+), 23 deletions(-)

diff --git a/projects/firefox/build b/projects/firefox/build
index a7441bd..c3536c6 100644
--- a/projects/firefox/build
+++ b/projects/firefox/build
@@ -17,6 +17,29 @@
 distdir=/var/tmp/dist/[% project %]
 mkdir -p /var/tmp/build
 
+[% IF c("var/windows") -%]
+  mingwdir=/var/tmp/dist/mingw-w64
+  mkdir -p $mingwdir/helpers
+
+  cat > $mingwdir/helpers/[% c("arch") %]-w64-mingw32-g++ << 'EOF'
+#!/bin/sh
+/var/tmp/dist/mingw-w64/bin/[% c("arch") %]-w64-mingw32-g++ [% 
c("var/LDFLAGS") %] [% c("var/CFLAGS") %] "$@"
+EOF
+
+  cat > $mingwdir/helpers/[% c("arch") %]-w64-mingw32-gcc << 'EOF'
+#!/bin/sh
+/var/tmp/dist/mingw-w64/bin/[% c("arch") %]-w64-mingw32-gcc [% 
c("var/LDFLAGS") %] [% c("var/CFLAGS") %] "$@"
+EOF
+
+  cat > $mingwdir/helpers/[% c("arch") %]-w64-mingw32-ld << 'EOF'
+#!/bin/sh
+/var/tmp/dist/mingw-w64/bin/[% c("arch") %]-w64-mingw32-ld [% c("var/LDFLAGS") 
%] "$@"
+EOF
+
+  chmod +x $mingwdir/helpers/*
+  export PATH="$mingwdir/helpers:$PATH"
+[% END -%]
+
 [% IF c("var/linux") %]
   mkdir -p /var/tmp/dist
   tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/binutils') %]
diff --git a/projects/mingw-w64/build b/projects/mingw-w64/build
index 8ce5048..a142c38 100644
--- a/projects/mingw-w64/build
+++ b/projects/mingw-w64/build
@@ -55,25 +55,6 @@ mkdir -p $distdir/gcclibs
 cp [% c("arch") %]-w64-mingw32/libssp/.libs/libssp-0.dll $distdir/gcclibs
 cp [% c("arch") %]-w64-mingw32/libgcc/shlib/[% c("var/libgcc_dll") %] 
$distdir/gcclibs
 
-mkdir -p $distdir/helpers
-
-cat > $distdir/helpers/[% c("arch") %]-w64-mingw32-g++ << 'EOF'
-#!/bin/sh
-/var/tmp/dist/mingw-w64/bin/[% c("arch") %]-w64-mingw32-g++ -Wl,--dynamicbase 
-Wl,--nxcompat -Wl,--enable-reloc-section -fstack-protector --param 
ssp-buffer-size=4 -fno-strict-overflow "$@"
-EOF
-
-cat > $distdir/helpers/[% c("arch") %]-w64-mingw32-gcc << 'EOF'
-#!/bin/sh
-/var/tmp/dist/mingw-w64/bin/[% c("arch") %]-w64-mingw32-gcc -Wl,--dynamicbase 
-Wl,--nxcompat -Wl,--enable-reloc-section -fstack-protector --param 
ssp-buffer-size=4 -fno-strict-overflow "$@"
-EOF
-
-cat > $distdir/helpers/[% c("arch") %]-w64-mingw32-ld << 'EOF'
-#!/bin/sh
-/var/tmp/dist/mingw-w64/bin/[% c("arch") %]-w64-mingw32-ld --dynamicbase 
--nxcompat --enable-reloc-section -lssp -L$gcclibs "$@"
-EOF
-
-chmod +x $distdir/helpers/*
-
 cd /var/tmp/dist
 [% c('tar', {
 tar_src => [ project ],
diff --git a/projects/mingw-w64/config b/projects/mingw-w64/config
index 01d0c37..fb9ef21 100644
--- a/projects/mingw-w64/config
+++ b/projects/mingw-w64/config
@@ -15,7 +15,7 @@ var:
 [% c("var/setarch") -%]
 mkdir -p /var/tmp/dist
 tar -C /var/tmp/dist -xf $rootdir/[% c("compiler_tarfile") %]
-export 
PATH="/var/tmp/dist/mingw-w64/helpers:/var/tmp/dist/mingw-w64/bin:$PATH"
+export PATH="/var/tmp/dist/mingw-w64/bin:$PATH"
 export gcclibs=/var/tmp/dist/mingw-w64/gcclibs
 targets:
   windows-i686:
diff --git a/projects/nsis/build b/projects/nsis/build
index af19dd7..81ed4d4 100755
--- a/projects/nsis/build
+++ b/projects/nsis/build
@@ -1,8 +1,6 @@
 #!/bin/bash
 [% c("var/set_default_env") -%]
 [% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => 
c('input_files_by_name/' _ c('var/compiler')) }) %]
-# remove hardening wrappers
-rm -Rf /var/tmp/dist/mingw-w64/helpers
 mkdir -p /var/tmp/dist
 mkdir -p /var/tmp/build
 tar -C /var/tmp/build -xf nsis-[% c('version') %].tar.bz2
diff --git a/rbm.conf b/rbm.conf
index bb53bcb..6adcd6f 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -216,7 +216,7 @@ targets:
   container:
 suite: jessie
   configure_opt: '--host=[% c("arch") %]-w64-mingw32 CFLAGS="[% 
c("var/CFLAGS") %]" LDFLAGS="[% c("var/LDFLAGS") %]"'
-  CFLAGS: '[% c("var/flag_mwindows") %] -fstack-protector-all 
-Wstack-protector --param ssp-buffer-size=4 -fno-strict-overflow 
-Wno-missing-field-initializers -Wformat -Wformat-security'
+  CFLAGS: '[% c("var/flag_mwindows") %] -fstack-protector-strong 
-fno-strict-overflow -Wno-missing-field-initializers -Wformat -Wformat-security'
   LDFLAGS: '[% c("var/flag_mwindows") %] -Wl,--dynamicbase -Wl,--nxcompat 
-Wl,--enable-reloc-section -lssp -L$gcclibs'
   flag_mwindows: 

[tor-commits] [collector/master] Bump version to 1.6.0-dev.

2018-05-25 Thread karsten
commit 55a9f76d10dcf2c3f1190fa8a87a108475601e39
Author: Karsten Loesing 
Date:   Fri May 25 15:03:49 2018 +0200

Bump version to 1.6.0-dev.
---
 build.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/build.xml b/build.xml
index 7240db6..e78c160 100644
--- a/build.xml
+++ b/build.xml
@@ -8,7 +8,7 @@
 
   
   
-  
+  
   
   
   

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


[tor-commits] [collector/master] Replace Gson with Jackson.

2018-05-25 Thread karsten
commit 818488836545aaa08bb8ef90e4a2b1d5accf535b
Author: Karsten Loesing 
Date:   Tue May 22 15:31:41 2018 +0200

Replace Gson with Jackson.

Implements #26162.
---
 CHANGELOG.md   |  3 ++-
 build.xml  |  6 --
 .../collector/index/CreateIndexJson.java   |  7 +--
 .../collector/relaydescs/ReferenceChecker.java | 22 +++---
 .../collector/relaydescs/ReferenceCheckerTest.java | 21 +
 5 files changed, 39 insertions(+), 20 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index d9cf7da..9c6cb85 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,7 +1,8 @@
 # Changes in version 1.6.0 - 2018-0?-??
 
  * Medium changes
-   - Update and adapt to metrics-lib 2.3.0.
+   - Update and adapt to metrics-lib 2.4.0.
+   - Replace Gson with Jackson.
 
 
 # Changes in version 1.5.1 - 2018-03-19
diff --git a/build.xml b/build.xml
index 921ad33..39a46e9 100644
--- a/build.xml
+++ b/build.xml
@@ -11,13 +11,15 @@
   
   
   
-  
+  
   
 
   
   
   
-  
+  
+  
+  
   
   
   
diff --git a/src/main/java/org/torproject/collector/index/CreateIndexJson.java 
b/src/main/java/org/torproject/collector/index/CreateIndexJson.java
index 49bfb11..5f030eb 100644
--- a/src/main/java/org/torproject/collector/index/CreateIndexJson.java
+++ b/src/main/java/org/torproject/collector/index/CreateIndexJson.java
@@ -12,9 +12,6 @@ import org.torproject.descriptor.index.FileNode;
 import org.torproject.descriptor.index.IndexNode;
 import org.torproject.descriptor.internal.FileType;
 
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -164,9 +161,7 @@ public class CreateIndexJson extends CollecTorMain {
 
   private void writeIndex(IndexNode indexNode) throws Exception {
 indexJsonFile.getParentFile().mkdirs();
-Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation()
-.create();
-String indexNodeString = gson.toJson(indexNode);
+String indexNodeString = IndexNode.makeJsonString(indexNode);
 for (String filename : new String[] {indexJsonFile.toString(),
 indexJsonFile + ".gz", indexJsonFile + ".xz", indexJsonFile + ".bz2"}) 
{
   FileType type = FileType.valueOf(
diff --git 
a/src/main/java/org/torproject/collector/relaydescs/ReferenceChecker.java 
b/src/main/java/org/torproject/collector/relaydescs/ReferenceChecker.java
index 43706dd..df0508a 100644
--- a/src/main/java/org/torproject/collector/relaydescs/ReferenceChecker.java
+++ b/src/main/java/org/torproject/collector/relaydescs/ReferenceChecker.java
@@ -14,14 +14,14 @@ import 
org.torproject.descriptor.RelayNetworkStatusConsensus;
 import org.torproject.descriptor.RelayNetworkStatusVote;
 import org.torproject.descriptor.ServerDescriptor;
 
-import com.google.gson.Gson;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.ObjectMapper;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
 import java.io.IOException;
 import java.nio.file.Files;
 import java.text.DateFormat;
@@ -50,6 +50,10 @@ public class ReferenceChecker {
 
   private SortedSet references = new TreeSet<>();
 
+  private static ObjectMapper objectMapper = new ObjectMapper()
+  .setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE)
+  .setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
+
   private static DateFormat dateTimeFormat;
 
   static {
@@ -141,10 +145,9 @@ public class ReferenceChecker {
 if (!this.referencesFile.exists()) {
   return;
 }
-Gson gson = new Gson();
-try (FileReader fr = new FileReader(this.referencesFile)) {
-  this.references.addAll(Arrays.asList(gson.fromJson(fr,
-  Reference[].class)));
+try {
+  this.references.addAll(Arrays.asList(objectMapper.readValue(
+  this.referencesFile, Reference[].class)));
 } catch (IOException e) {
   logger.warn("Cannot read existing references file "
   + "from previous run.", e);
@@ -321,11 +324,8 @@ public class ReferenceChecker {
   }
 
   private void writeReferencesFile() {
-Gson gson = new Gson();
 try {
-  FileWriter fw = new FileWriter(this.referencesFile);
-  gson.toJson(this.references, fw);
-  fw.close();
+  objectMapper.writeValue(this.referencesFile, this.references);
 } catch (IOException e) {
   logger.warn("Cannot write references file for next "
   + "run.", e);
diff --git 
a/src/test/java/org/torproject/collector/relaydescs/ReferenceCheckerTest.java 
b/src/test/java/org/torproject/collector/relaydescs/ReferenceCheckerTest.java
index adb0b48..da2d9ad 100644
--- 

[tor-commits] [collector/release] Bump version to 1.5.1-dev.

2018-05-25 Thread karsten
commit 88867bf3b4e880478f8392d7f593dbd5ec6c38a2
Author: Karsten Loesing 
Date:   Mon Mar 19 16:26:13 2018 +0100

Bump version to 1.5.1-dev.
---
 build.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/build.xml b/build.xml
index d7372bc..780f24e 100644
--- a/build.xml
+++ b/build.xml
@@ -8,7 +8,7 @@
 
   
   
-  
+  
   
   
   



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


[tor-commits] [collector/release] Describe 'contrib' path contents.

2018-05-25 Thread karsten
commit 970dd3d1e1757d01b485fe05b1869cfc244e82f2
Author: iwakeh 
Date:   Tue Mar 20 08:31:46 2018 +

Describe 'contrib' path contents.
---
 src/main/resources/docs/PROTOCOL | 12 
 1 file changed, 12 insertions(+)

diff --git a/src/main/resources/docs/PROTOCOL b/src/main/resources/docs/PROTOCOL
index 2c8b603..9f65e43 100644
--- a/src/main/resources/docs/PROTOCOL
+++ b/src/main/resources/docs/PROTOCOL
@@ -392,7 +392,19 @@
'webstats' contains compressed log files structured and named according
to the 'Tor web server logs' specification, section 4.3 [0].
 
+6.0 The 'contrib' Folder
+
+   The 'contrib' folder contains third-party contributions.
+   The contributed data and documentation is provided in a subfolder per
+   contribution.  There is no particular substructure for contributed data.
+
+6.1 'bgp' below 'contrib'
+
+   'bgp' contains the BGP data collected between June 2016 and August 2017.
+   For detailed documentation see [1].
+
 A.0 Appendix
 
 A.1 References
 [0] 
https://metrics.torproject.org/web-server-logs.html#n-re-assembling-log-files
+[1] https://metrics.torproject.org/contrib/bgp.html



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


[tor-commits] [collector/release] Replace Gson with Jackson.

2018-05-25 Thread karsten
commit 818488836545aaa08bb8ef90e4a2b1d5accf535b
Author: Karsten Loesing 
Date:   Tue May 22 15:31:41 2018 +0200

Replace Gson with Jackson.

Implements #26162.
---
 CHANGELOG.md   |  3 ++-
 build.xml  |  6 --
 .../collector/index/CreateIndexJson.java   |  7 +--
 .../collector/relaydescs/ReferenceChecker.java | 22 +++---
 .../collector/relaydescs/ReferenceCheckerTest.java | 21 +
 5 files changed, 39 insertions(+), 20 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index d9cf7da..9c6cb85 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,7 +1,8 @@
 # Changes in version 1.6.0 - 2018-0?-??
 
  * Medium changes
-   - Update and adapt to metrics-lib 2.3.0.
+   - Update and adapt to metrics-lib 2.4.0.
+   - Replace Gson with Jackson.
 
 
 # Changes in version 1.5.1 - 2018-03-19
diff --git a/build.xml b/build.xml
index 921ad33..39a46e9 100644
--- a/build.xml
+++ b/build.xml
@@ -11,13 +11,15 @@
   
   
   
-  
+  
   
 
   
   
   
-  
+  
+  
+  
   
   
   
diff --git a/src/main/java/org/torproject/collector/index/CreateIndexJson.java 
b/src/main/java/org/torproject/collector/index/CreateIndexJson.java
index 49bfb11..5f030eb 100644
--- a/src/main/java/org/torproject/collector/index/CreateIndexJson.java
+++ b/src/main/java/org/torproject/collector/index/CreateIndexJson.java
@@ -12,9 +12,6 @@ import org.torproject.descriptor.index.FileNode;
 import org.torproject.descriptor.index.IndexNode;
 import org.torproject.descriptor.internal.FileType;
 
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -164,9 +161,7 @@ public class CreateIndexJson extends CollecTorMain {
 
   private void writeIndex(IndexNode indexNode) throws Exception {
 indexJsonFile.getParentFile().mkdirs();
-Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation()
-.create();
-String indexNodeString = gson.toJson(indexNode);
+String indexNodeString = IndexNode.makeJsonString(indexNode);
 for (String filename : new String[] {indexJsonFile.toString(),
 indexJsonFile + ".gz", indexJsonFile + ".xz", indexJsonFile + ".bz2"}) 
{
   FileType type = FileType.valueOf(
diff --git 
a/src/main/java/org/torproject/collector/relaydescs/ReferenceChecker.java 
b/src/main/java/org/torproject/collector/relaydescs/ReferenceChecker.java
index 43706dd..df0508a 100644
--- a/src/main/java/org/torproject/collector/relaydescs/ReferenceChecker.java
+++ b/src/main/java/org/torproject/collector/relaydescs/ReferenceChecker.java
@@ -14,14 +14,14 @@ import 
org.torproject.descriptor.RelayNetworkStatusConsensus;
 import org.torproject.descriptor.RelayNetworkStatusVote;
 import org.torproject.descriptor.ServerDescriptor;
 
-import com.google.gson.Gson;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.ObjectMapper;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
 import java.io.IOException;
 import java.nio.file.Files;
 import java.text.DateFormat;
@@ -50,6 +50,10 @@ public class ReferenceChecker {
 
   private SortedSet references = new TreeSet<>();
 
+  private static ObjectMapper objectMapper = new ObjectMapper()
+  .setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE)
+  .setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
+
   private static DateFormat dateTimeFormat;
 
   static {
@@ -141,10 +145,9 @@ public class ReferenceChecker {
 if (!this.referencesFile.exists()) {
   return;
 }
-Gson gson = new Gson();
-try (FileReader fr = new FileReader(this.referencesFile)) {
-  this.references.addAll(Arrays.asList(gson.fromJson(fr,
-  Reference[].class)));
+try {
+  this.references.addAll(Arrays.asList(objectMapper.readValue(
+  this.referencesFile, Reference[].class)));
 } catch (IOException e) {
   logger.warn("Cannot read existing references file "
   + "from previous run.", e);
@@ -321,11 +324,8 @@ public class ReferenceChecker {
   }
 
   private void writeReferencesFile() {
-Gson gson = new Gson();
 try {
-  FileWriter fw = new FileWriter(this.referencesFile);
-  gson.toJson(this.references, fw);
-  fw.close();
+  objectMapper.writeValue(this.referencesFile, this.references);
 } catch (IOException e) {
   logger.warn("Cannot write references file for next "
   + "run.", e);
diff --git 
a/src/test/java/org/torproject/collector/relaydescs/ReferenceCheckerTest.java 
b/src/test/java/org/torproject/collector/relaydescs/ReferenceCheckerTest.java
index adb0b48..da2d9ad 100644
--- 

[tor-commits] [collector/release] Prepare for 1.6.0 release.

2018-05-25 Thread karsten
commit 78d01e5b01eaabfd1eb9ae604c4ad73e6c2cbe0d
Author: Karsten Loesing 
Date:   Wed May 23 22:14:27 2018 +0200

Prepare for 1.6.0 release.
---
 CERT | 18 +-
 CHANGELOG.md |  2 +-
 build.xml|  2 +-
 3 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/CERT b/CERT
index 43be56e..61fa7c6 100644
--- a/CERT
+++ b/CERT
@@ -1,8 +1,8 @@
 -BEGIN CERTIFICATE-
-MIIDaTCCAlGgAwIBAgIEIk6NnzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQGEwJV
+MIIDaTCCAlGgAwIBAgIENNGkczANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQGEwJV
 UzELMAkGA1UECBMCV0ExEDAOBgNVBAcTB1NlYXR0bGUxHTAbBgNVBAoTFFRoZSBU
 b3IgUHJvamVjdCwgSW5jMRgwFgYDVQQDEw9LYXJzdGVuIExvZXNpbmcwHhcNMTgw
-MjI2MTQwMzUzWhcNMTgwNTI3MTQwMzUzWjBlMQswCQYDVQQGEwJVUzELMAkGA1UE
+NTIzMTUxNDU2WhcNMTgwODIxMTUxNDU2WjBlMQswCQYDVQQGEwJVUzELMAkGA1UE
 CBMCV0ExEDAOBgNVBAcTB1NlYXR0bGUxHTAbBgNVBAoTFFRoZSBUb3IgUHJvamVj
 dCwgSW5jMRgwFgYDVQQDEw9LYXJzdGVuIExvZXNpbmcwggEiMA0GCSqGSIb3DQEB
 AQUAA4IBDwAwggEKAoIBAQChXn+IUp+o6G+k4ffxk3TkxZb3iXfiG7byNsG63olU
@@ -11,11 +11,11 @@ 
Qw+VAhKTcEIv4yiR0BWapQyR07pgmKirYVjN6s6ef8NJzUptpxLlaYJ3ZfQfc4aE
 MXzScgaccwDFIWQ661lzLGCfeSxxa3Xy4wWsGwzNzLITYrrABcbg7yogLo2btNvD
 oEwGL3/baQdhl0dra6biVCZr9ydn3Hg57S55pUU0rBY25id78zUO8xrfNHw54wwX
 lOblGt75OOkahP/ZZSBxxoiknJ6y5VQV8y+noA4vigXFAgMBAAGjITAfMB0GA1Ud
-DgQWBBSeh60M+/wMYyYhlxtuff2Hk9n7bzANBgkqhkiG9w0BAQsFAAOCAQEAlUkU
-qqf+4yfXwAWFr2q6iijr54NDDEQwybCblIzVnsuGHPUDuie3ZWSHirtblBs/uJ9x
-RxmwkBrJr9IGMmGhN2GKXIPeUH0EZBYo7bsgo5d+E61OCnd/O+1JZzdG9dK+0kfq
-MLfo6ltFZZouHIIXfvOm8sLLRrdkXPrLQ/E8fTHB7dL6T8Hqg6pHRrRZDtuSM9CO
-zSYropxqlFzzlzciOdTU05D8Cnx2j/RtaycxHxFS7QtriDB0uOfqvyiVeqpr72wG
-qetlu3h46fXj3ALGVSXy+YZpYxcRNZsQyiBXdlXbgY0OfOVPFOH3HiZuv3zhfRJW
-2DiJiA8BLxZToe2XDA==
+DgQWBBSeh60M+/wMYyYhlxtuff2Hk9n7bzANBgkqhkiG9w0BAQsFAAOCAQEAJtEQ
+B2AVpVtjTGU7uujUtEjSn1ICv7QLW/37TmHn+m1SWvXOVlSG81eb5JwX449Pn3w5
+K1Bx0JJmJ6Kec2kHtoR1r5/DUlTMtRqKQ5ZHQbvYMx+Ifq8TRALHjcw8p5Vw+gep
+0zYbSQycklzFaFqLB8Cus0ICb+UY54HTddpezQ3IXS/vc4Vy07ocm8rUCz1s8L/r
+ehTOxSym7G7+kcRzNplFOLL5iO8o6uHPyLR1TIAIXa0XZ41ogNl2q+6CvXG+UI/j
+qkzSXD6FJK1Px2nxNFIe/w9NL+chSytIGnV3CImyiORuV+1OxMglyQspSGEbl1XP
+OfiTEYHnp12BYMeRyw==
 -END CERTIFICATE-
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9c6cb85..3a88792 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,4 @@
-# Changes in version 1.6.0 - 2018-0?-??
+# Changes in version 1.6.0 - 2018-05-23
 
  * Medium changes
- Update and adapt to metrics-lib 2.4.0.
diff --git a/build.xml b/build.xml
index 39a46e9..7240db6 100644
--- a/build.xml
+++ b/build.xml
@@ -8,7 +8,7 @@
 
   
   
-  
+  
   
   
   

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


[tor-commits] [collector/release] Include webstats in create-tarballs.sh.

2018-05-25 Thread karsten
commit 4e166b7832a8026690950ca8f8e971998b3a0bcb
Author: Karsten Loesing 
Date:   Mon Mar 19 20:59:34 2018 +0100

Include webstats in create-tarballs.sh.
---
 src/main/resources/create-tarballs.sh | 12 +++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/main/resources/create-tarballs.sh 
b/src/main/resources/create-tarballs.sh
index c20303e..cd16b2d 100755
--- a/src/main/resources/create-tarballs.sh
+++ b/src/main/resources/create-tarballs.sh
@@ -105,8 +105,15 @@ for (( i = 0 ; i < ${#TARBALLS[@]} ; i++ )); do
   fi
 done
 
+cd $OUTDIR/webstats/
+echo `date` "Creating webstats-"$YEARONE"-"$MONTHONE".tar"
+find . -type f | grep "/"$YEARONE"/"$MONTHONE"/" | cut -c3- | tar cf 
$WORKDIR/webstats-$YEARONE-$MONTHONE.tar --transform 
's,^,webstats-'$YEARONE'-'$MONTHONE'/,' -T -
+echo `date` "Creating webstats-"$YEARTWO"-"$MONTHTWO".tar"
+find . -type f | grep "/"$YEARTWO"/"$MONTHTWO"/" | cut -c3- | tar cf 
$WORKDIR/webstats-$YEARTWO-$MONTHTWO.tar --transform 
's,^,webstats-'$YEARTWO'-'$MONTHTWO'/,' -T -
+cd $WORKDIR
+
 echo `date` "Moving tarballs into place"
-mv *.tar.xz $TARBALLTARGETDIR
+mv *.tar* $TARBALLTARGETDIR
 
 cd $CURRENTPATH
 
@@ -154,4 +161,7 @@ ln -f -s -t $ARCHIVEDIR/relay-descriptors/votes/ 
$TARBALLTARGETDIR/votes-20??-??
 mkdir -p $ARCHIVEDIR/torperf/
 ln -f -s -t $ARCHIVEDIR/torperf/ $TARBALLTARGETDIR/torperf-20??-??.tar.xz
 
+mkdir -p $ARCHIVEDIR/webstats/
+ln -f -s -t $ARCHIVEDIR/webstats/ $TARBALLTARGETDIR/webstats-20??-??.tar
+
 echo `date` "Finished."



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


[tor-commits] [collector/release] Corrected description of vote descriptor path.

2018-05-25 Thread karsten
commit 770f55cf82a1281e5081de7731adc9e36a916622
Author: iwakeh 
Date:   Mon Feb 26 15:24:50 2018 +

Corrected description of vote descriptor path.

Implements task-20287.
---
 src/main/resources/docs/PROTOCOL | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/main/resources/docs/PROTOCOL b/src/main/resources/docs/PROTOCOL
index c84c286..2c8b603 100644
--- a/src/main/resources/docs/PROTOCOL
+++ b/src/main/resources/docs/PROTOCOL
@@ -209,7 +209,8 @@
Where VOTE is the string "vote" and all time related
values are derived from the valid-after dates. 'fingerprint'
is the fingerprint of the authority and 'digest' is the SHA1
-   digest of the authority's medium term signing key.
+   digest for the vote document, i.e., the digest of the descriptor
+   bytes from the start of the vote to the 'directory-signature'.
 
 4.3.4
'microdescs' contains the subfolders



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


[tor-commits] [collector/release] Add 'contrib' directory to index.json.

2018-05-25 Thread karsten
commit 5d2bdbb8ca615551264d21e801499f8720d2709b
Author: iwakeh 
Date:   Tue Mar 20 08:31:46 2018 +

Add 'contrib' directory to index.json.
---
 src/main/java/org/torproject/collector/conf/Key.java   | 1 +
 src/main/java/org/torproject/collector/index/CreateIndexJson.java  | 1 +
 src/main/resources/collector.properties| 2 ++
 src/test/java/org/torproject/collector/conf/ConfigurationTest.java | 2 +-
 4 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/torproject/collector/conf/Key.java 
b/src/main/java/org/torproject/collector/conf/Key.java
index 6454009..5e91e3e 100644
--- a/src/main/java/org/torproject/collector/conf/Key.java
+++ b/src/main/java/org/torproject/collector/conf/Key.java
@@ -19,6 +19,7 @@ public enum Key {
   ExitlistUrl(URL.class),
   InstanceBaseUrl(String.class),
   ArchivePath(Path.class),
+  ContribPath(Path.class),
   RecentPath(Path.class),
   OutputPath(Path.class),
   IndexPath(Path.class),
diff --git a/src/main/java/org/torproject/collector/index/CreateIndexJson.java 
b/src/main/java/org/torproject/collector/index/CreateIndexJson.java
index fb693a7..49bfb11 100644
--- a/src/main/java/org/torproject/collector/index/CreateIndexJson.java
+++ b/src/main/java/org/torproject/collector/index/CreateIndexJson.java
@@ -92,6 +92,7 @@ public class CreateIndexJson extends CollecTorMain {
   basePath = config.getProperty(Key.InstanceBaseUrl.name());
   indexedDirectories = new File[] {
   config.getPath(Key.ArchivePath).toFile(),
+  config.getPath(Key.ContribPath).toFile(),
   config.getPath(Key.RecentPath).toFile() };
   writeIndex(indexDirectories());
 } catch (Exception e) {
diff --git a/src/main/resources/collector.properties 
b/src/main/resources/collector.properties
index 2aa556d..0fe6924 100644
--- a/src/main/resources/collector.properties
+++ b/src/main/resources/collector.properties
@@ -62,6 +62,8 @@ InstanceBaseUrl = https://collector.torproject.org
 IndexPath = index
 # The top-level directory for archived descriptors.
 ArchivePath = archive
+# The top-level directory for third party data.
+ContribPath = contrib
 # The top-level directory for the recent descriptors that were
 # published in the last 72 hours.
 RecentPath = recent
diff --git a/src/test/java/org/torproject/collector/conf/ConfigurationTest.java 
b/src/test/java/org/torproject/collector/conf/ConfigurationTest.java
index fcaa71f..e408109 100644
--- a/src/test/java/org/torproject/collector/conf/ConfigurationTest.java
+++ b/src/test/java/org/torproject/collector/conf/ConfigurationTest.java
@@ -40,7 +40,7 @@ public class ConfigurationTest {
   public void testKeyCount() throws Exception {
 assertEquals("The number of properties keys in enum Key changed."
 + "\n This test class should be adapted.",
-52, Key.values().length);
+53, Key.values().length);
   }
 
   @Test()



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


[tor-commits] [collector/release] Adapt to metrics-lib 2.3.0 changes.

2018-05-25 Thread karsten
commit 574a3ec4c60bd205d97720308d21f1c2f3e1853c
Author: iwakeh 
Date:   Mon Mar 26 11:01:56 2018 +

Adapt to metrics-lib 2.3.0 changes.

This concerns #25523.
---
 CHANGELOG.md| 6 ++
 build.xml   | 2 +-
 .../java/org/torproject/collector/webstats/SanitizeWeblogs.java | 3 ++-
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 94f7a96..d9cf7da 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,9 @@
+# Changes in version 1.6.0 - 2018-0?-??
+
+ * Medium changes
+   - Update and adapt to metrics-lib 2.3.0.
+
+
 # Changes in version 1.5.1 - 2018-03-19
 
  * Medium changes
diff --git a/build.xml b/build.xml
index 780f24e..921ad33 100644
--- a/build.xml
+++ b/build.xml
@@ -11,7 +11,7 @@
   
   
   
-  
+  
   
 
   
diff --git 
a/src/main/java/org/torproject/collector/webstats/SanitizeWeblogs.java 
b/src/main/java/org/torproject/collector/webstats/SanitizeWeblogs.java
index fd301b0..88d1456 100644
--- a/src/main/java/org/torproject/collector/webstats/SanitizeWeblogs.java
+++ b/src/main/java/org/torproject/collector/webstats/SanitizeWeblogs.java
@@ -31,6 +31,7 @@ import org.slf4j.LoggerFactory;
 
 import java.io.BufferedReader;
 import java.io.ByteArrayOutputStream;
+import java.io.File;
 import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.nio.file.Files;
@@ -150,7 +151,7 @@ public class SanitizeWeblogs extends CollecTorMain {
   WebServerAccessLogPersistence walp
   = new WebServerAccessLogPersistence(
   new WebServerAccessLogImpl(toCompressedBytes(retainedLines),
-  name, false));
+  new File(name), name, false));
   log.debug("Storing {}.", name);
   walp.storeOut(this.outputPathName);
   walp.storeRecent(this.recentPathName);



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


[tor-commits] [collector/master] Prepare for 1.6.0 release.

2018-05-25 Thread karsten
commit 78d01e5b01eaabfd1eb9ae604c4ad73e6c2cbe0d
Author: Karsten Loesing 
Date:   Wed May 23 22:14:27 2018 +0200

Prepare for 1.6.0 release.
---
 CERT | 18 +-
 CHANGELOG.md |  2 +-
 build.xml|  2 +-
 3 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/CERT b/CERT
index 43be56e..61fa7c6 100644
--- a/CERT
+++ b/CERT
@@ -1,8 +1,8 @@
 -BEGIN CERTIFICATE-
-MIIDaTCCAlGgAwIBAgIEIk6NnzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQGEwJV
+MIIDaTCCAlGgAwIBAgIENNGkczANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQGEwJV
 UzELMAkGA1UECBMCV0ExEDAOBgNVBAcTB1NlYXR0bGUxHTAbBgNVBAoTFFRoZSBU
 b3IgUHJvamVjdCwgSW5jMRgwFgYDVQQDEw9LYXJzdGVuIExvZXNpbmcwHhcNMTgw
-MjI2MTQwMzUzWhcNMTgwNTI3MTQwMzUzWjBlMQswCQYDVQQGEwJVUzELMAkGA1UE
+NTIzMTUxNDU2WhcNMTgwODIxMTUxNDU2WjBlMQswCQYDVQQGEwJVUzELMAkGA1UE
 CBMCV0ExEDAOBgNVBAcTB1NlYXR0bGUxHTAbBgNVBAoTFFRoZSBUb3IgUHJvamVj
 dCwgSW5jMRgwFgYDVQQDEw9LYXJzdGVuIExvZXNpbmcwggEiMA0GCSqGSIb3DQEB
 AQUAA4IBDwAwggEKAoIBAQChXn+IUp+o6G+k4ffxk3TkxZb3iXfiG7byNsG63olU
@@ -11,11 +11,11 @@ 
Qw+VAhKTcEIv4yiR0BWapQyR07pgmKirYVjN6s6ef8NJzUptpxLlaYJ3ZfQfc4aE
 MXzScgaccwDFIWQ661lzLGCfeSxxa3Xy4wWsGwzNzLITYrrABcbg7yogLo2btNvD
 oEwGL3/baQdhl0dra6biVCZr9ydn3Hg57S55pUU0rBY25id78zUO8xrfNHw54wwX
 lOblGt75OOkahP/ZZSBxxoiknJ6y5VQV8y+noA4vigXFAgMBAAGjITAfMB0GA1Ud
-DgQWBBSeh60M+/wMYyYhlxtuff2Hk9n7bzANBgkqhkiG9w0BAQsFAAOCAQEAlUkU
-qqf+4yfXwAWFr2q6iijr54NDDEQwybCblIzVnsuGHPUDuie3ZWSHirtblBs/uJ9x
-RxmwkBrJr9IGMmGhN2GKXIPeUH0EZBYo7bsgo5d+E61OCnd/O+1JZzdG9dK+0kfq
-MLfo6ltFZZouHIIXfvOm8sLLRrdkXPrLQ/E8fTHB7dL6T8Hqg6pHRrRZDtuSM9CO
-zSYropxqlFzzlzciOdTU05D8Cnx2j/RtaycxHxFS7QtriDB0uOfqvyiVeqpr72wG
-qetlu3h46fXj3ALGVSXy+YZpYxcRNZsQyiBXdlXbgY0OfOVPFOH3HiZuv3zhfRJW
-2DiJiA8BLxZToe2XDA==
+DgQWBBSeh60M+/wMYyYhlxtuff2Hk9n7bzANBgkqhkiG9w0BAQsFAAOCAQEAJtEQ
+B2AVpVtjTGU7uujUtEjSn1ICv7QLW/37TmHn+m1SWvXOVlSG81eb5JwX449Pn3w5
+K1Bx0JJmJ6Kec2kHtoR1r5/DUlTMtRqKQ5ZHQbvYMx+Ifq8TRALHjcw8p5Vw+gep
+0zYbSQycklzFaFqLB8Cus0ICb+UY54HTddpezQ3IXS/vc4Vy07ocm8rUCz1s8L/r
+ehTOxSym7G7+kcRzNplFOLL5iO8o6uHPyLR1TIAIXa0XZ41ogNl2q+6CvXG+UI/j
+qkzSXD6FJK1Px2nxNFIe/w9NL+chSytIGnV3CImyiORuV+1OxMglyQspSGEbl1XP
+OfiTEYHnp12BYMeRyw==
 -END CERTIFICATE-
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9c6cb85..3a88792 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,4 @@
-# Changes in version 1.6.0 - 2018-0?-??
+# Changes in version 1.6.0 - 2018-05-23
 
  * Medium changes
- Update and adapt to metrics-lib 2.4.0.
diff --git a/build.xml b/build.xml
index 39a46e9..7240db6 100644
--- a/build.xml
+++ b/build.xml
@@ -8,7 +8,7 @@
 
   
   
-  
+  
   
   
   

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


[tor-commits] [metrics-lib/master] Bump version to 2.4.0-dev.

2018-05-25 Thread karsten
commit feabf88fff34465134da9ea61592f7f9c30415b7
Author: Karsten Loesing 
Date:   Fri May 25 14:46:09 2018 +0200

Bump version to 2.4.0-dev.
---
 build.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/build.xml b/build.xml
index c69da65..3c4bf28 100644
--- a/build.xml
+++ b/build.xml
@@ -6,7 +6,7 @@
 
 
 
-  
+  
   
   
   

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


[tor-commits] [metrics-lib/release] Prepare for 2.4.0 release.

2018-05-25 Thread karsten
commit 94a7403e62d59619dbdc9952736d9b8b68948a05
Author: Karsten Loesing 
Date:   Wed May 23 17:16:19 2018 +0200

Prepare for 2.4.0 release.
---
 CERT | 18 +-
 CHANGELOG.md |  2 +-
 build.xml|  2 +-
 3 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/CERT b/CERT
index 43be56e..61fa7c6 100644
--- a/CERT
+++ b/CERT
@@ -1,8 +1,8 @@
 -BEGIN CERTIFICATE-
-MIIDaTCCAlGgAwIBAgIEIk6NnzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQGEwJV
+MIIDaTCCAlGgAwIBAgIENNGkczANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQGEwJV
 UzELMAkGA1UECBMCV0ExEDAOBgNVBAcTB1NlYXR0bGUxHTAbBgNVBAoTFFRoZSBU
 b3IgUHJvamVjdCwgSW5jMRgwFgYDVQQDEw9LYXJzdGVuIExvZXNpbmcwHhcNMTgw
-MjI2MTQwMzUzWhcNMTgwNTI3MTQwMzUzWjBlMQswCQYDVQQGEwJVUzELMAkGA1UE
+NTIzMTUxNDU2WhcNMTgwODIxMTUxNDU2WjBlMQswCQYDVQQGEwJVUzELMAkGA1UE
 CBMCV0ExEDAOBgNVBAcTB1NlYXR0bGUxHTAbBgNVBAoTFFRoZSBUb3IgUHJvamVj
 dCwgSW5jMRgwFgYDVQQDEw9LYXJzdGVuIExvZXNpbmcwggEiMA0GCSqGSIb3DQEB
 AQUAA4IBDwAwggEKAoIBAQChXn+IUp+o6G+k4ffxk3TkxZb3iXfiG7byNsG63olU
@@ -11,11 +11,11 @@ 
Qw+VAhKTcEIv4yiR0BWapQyR07pgmKirYVjN6s6ef8NJzUptpxLlaYJ3ZfQfc4aE
 MXzScgaccwDFIWQ661lzLGCfeSxxa3Xy4wWsGwzNzLITYrrABcbg7yogLo2btNvD
 oEwGL3/baQdhl0dra6biVCZr9ydn3Hg57S55pUU0rBY25id78zUO8xrfNHw54wwX
 lOblGt75OOkahP/ZZSBxxoiknJ6y5VQV8y+noA4vigXFAgMBAAGjITAfMB0GA1Ud
-DgQWBBSeh60M+/wMYyYhlxtuff2Hk9n7bzANBgkqhkiG9w0BAQsFAAOCAQEAlUkU
-qqf+4yfXwAWFr2q6iijr54NDDEQwybCblIzVnsuGHPUDuie3ZWSHirtblBs/uJ9x
-RxmwkBrJr9IGMmGhN2GKXIPeUH0EZBYo7bsgo5d+E61OCnd/O+1JZzdG9dK+0kfq
-MLfo6ltFZZouHIIXfvOm8sLLRrdkXPrLQ/E8fTHB7dL6T8Hqg6pHRrRZDtuSM9CO
-zSYropxqlFzzlzciOdTU05D8Cnx2j/RtaycxHxFS7QtriDB0uOfqvyiVeqpr72wG
-qetlu3h46fXj3ALGVSXy+YZpYxcRNZsQyiBXdlXbgY0OfOVPFOH3HiZuv3zhfRJW
-2DiJiA8BLxZToe2XDA==
+DgQWBBSeh60M+/wMYyYhlxtuff2Hk9n7bzANBgkqhkiG9w0BAQsFAAOCAQEAJtEQ
+B2AVpVtjTGU7uujUtEjSn1ICv7QLW/37TmHn+m1SWvXOVlSG81eb5JwX449Pn3w5
+K1Bx0JJmJ6Kec2kHtoR1r5/DUlTMtRqKQ5ZHQbvYMx+Ifq8TRALHjcw8p5Vw+gep
+0zYbSQycklzFaFqLB8Cus0ICb+UY54HTddpezQ3IXS/vc4Vy07ocm8rUCz1s8L/r
+ehTOxSym7G7+kcRzNplFOLL5iO8o6uHPyLR1TIAIXa0XZ41ogNl2q+6CvXG+UI/j
+qkzSXD6FJK1Px2nxNFIe/w9NL+chSytIGnV3CImyiORuV+1OxMglyQspSGEbl1XP
+OfiTEYHnp12BYMeRyw==
 -END CERTIFICATE-
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a1266e5..39257fe 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,4 @@
-# Changes in version 2.4.0 - 2018-05-??
+# Changes in version 2.4.0 - 2018-05-23
 
  * Medium changes
- Replace Gson with Jackson. Applications must provide Jackson
diff --git a/build.xml b/build.xml
index 29db555..c69da65 100644
--- a/build.xml
+++ b/build.xml
@@ -6,7 +6,7 @@
 
 
 
-  
+  
   
   
   

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


[tor-commits] [metrics-lib/release] Replace Gson with Jackson.

2018-05-25 Thread karsten
commit 16c6984ab971f3f617713985a8b94ff8ed3f6525
Author: Karsten Loesing 
Date:   Tue May 22 15:23:57 2018 +0200

Replace Gson with Jackson.

Implements #26159.
---
 CHANGELOG.md   |  8 
 build.xml  |  4 +-
 .../torproject/descriptor/index/DirectoryNode.java | 13 ++-
 .../org/torproject/descriptor/index/FileNode.java  |  8 +---
 .../org/torproject/descriptor/index/IndexNode.java | 43 ++
 .../torproject/descriptor/index/IndexNodeTest.java |  4 +-
 6 files changed, 40 insertions(+), 40 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1e9069e..a1266e5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,11 @@
+# Changes in version 2.4.0 - 2018-05-??
+
+ * Medium changes
+   - Replace Gson with Jackson. Applications must provide Jackson
+ 2.8.6 or compatible as dependency and do not need to provide Gson
+ as dependency anymore.
+
+
 # Changes in version 2.3.0 - 2018-04-18
 
  * Medium changes
diff --git a/build.xml b/build.xml
index 61cd45d..29db555 100644
--- a/build.xml
+++ b/build.xml
@@ -15,7 +15,9 @@
 
   
   
-  
+  
+  
+  
   
   
   
diff --git a/src/main/java/org/torproject/descriptor/index/DirectoryNode.java 
b/src/main/java/org/torproject/descriptor/index/DirectoryNode.java
index 859493b..9ed5784 100644
--- a/src/main/java/org/torproject/descriptor/index/DirectoryNode.java
+++ b/src/main/java/org/torproject/descriptor/index/DirectoryNode.java
@@ -3,8 +3,6 @@
 
 package org.torproject.descriptor.index;
 
-import com.google.gson.annotations.Expose;
-
 import java.util.SortedSet;
 
 /**
@@ -15,22 +13,19 @@ import java.util.SortedSet;
 public class DirectoryNode implements Comparable {
 
   /** Path (i.e. directory name) is exposed in JSON. */
-  @Expose
   public final String path;
 
   /** The file list is exposed in JSON. Sorted according to path. */
-  @Expose
   public final SortedSet files;
 
   /** The directory list is exposed in JSON. Sorted according to path. */
-  @Expose
   public final SortedSet directories;
 
-  /* Added to satisfy Gson. */
+  /* Added to satisfy Jackson. */
   private DirectoryNode() {
-path = null;
-files = null;
-directories = null;
+this.path = null;
+this.files = null;
+this.directories = null;
   }
 
   /** A directory for the JSON structure. */
diff --git a/src/main/java/org/torproject/descriptor/index/FileNode.java 
b/src/main/java/org/torproject/descriptor/index/FileNode.java
index eb34131..f505f16 100644
--- a/src/main/java/org/torproject/descriptor/index/FileNode.java
+++ b/src/main/java/org/torproject/descriptor/index/FileNode.java
@@ -3,8 +3,7 @@
 
 package org.torproject.descriptor.index;
 
-import com.google.gson.annotations.Expose;
-import com.google.gson.annotations.SerializedName;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -25,18 +24,15 @@ public class FileNode implements Comparable {
   private static Logger log = LoggerFactory.getLogger(FileNode.class);
 
   /** Path (i.e. file name) is exposed in JSON. */
-  @Expose
   public final String path;
 
   /** The file size is exposed in JSON. */
-  @Expose
   public final long size;
 
   /** The last modified date-time string is exposed in JSON. */
-  @Expose
-  @SerializedName("last_modified")
   public final String lastModified;
 
+  @JsonIgnore
   private long lastModifiedMillis;
 
   /* Added to satisfy Gson. */
diff --git a/src/main/java/org/torproject/descriptor/index/IndexNode.java 
b/src/main/java/org/torproject/descriptor/index/IndexNode.java
index 19a5aa4..02b5972 100644
--- a/src/main/java/org/torproject/descriptor/index/IndexNode.java
+++ b/src/main/java/org/torproject/descriptor/index/IndexNode.java
@@ -5,19 +5,20 @@ package org.torproject.descriptor.index;
 
 import org.torproject.descriptor.internal.FileType;
 
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.gson.annotations.Expose;
-import com.google.gson.annotations.SerializedName;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.PropertyNamingStrategy;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.InputStreamReader;
 import java.io.OutputStream;
-import java.io.Reader;
 import java.net.URL;
 import java.net.URLConnection;
 import java.nio.file.Files;
@@ -34,6 +35,7 @@ import java.util.TreeSet;
  *
  * @since 1.4.0
  */
+@JsonPropertyOrder({ "created", "revision", "path", "directories", "files" })
 public 

[tor-commits] [metrics-lib/release] Bump version to 2.3.0-dev.

2018-05-25 Thread karsten
commit 77bbd742b63fd9708694d7d8623d82a9654b770e
Author: Karsten Loesing 
Date:   Wed Apr 18 16:43:13 2018 +0200

Bump version to 2.3.0-dev.
---
 build.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/build.xml b/build.xml
index 9bff4b2..61cd45d 100644
--- a/build.xml
+++ b/build.xml
@@ -6,7 +6,7 @@
 
 
 
-  
+  
   
   
   



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


[tor-commits] [metrics-lib/master] Replace Gson with Jackson.

2018-05-25 Thread karsten
commit 16c6984ab971f3f617713985a8b94ff8ed3f6525
Author: Karsten Loesing 
Date:   Tue May 22 15:23:57 2018 +0200

Replace Gson with Jackson.

Implements #26159.
---
 CHANGELOG.md   |  8 
 build.xml  |  4 +-
 .../torproject/descriptor/index/DirectoryNode.java | 13 ++-
 .../org/torproject/descriptor/index/FileNode.java  |  8 +---
 .../org/torproject/descriptor/index/IndexNode.java | 43 ++
 .../torproject/descriptor/index/IndexNodeTest.java |  4 +-
 6 files changed, 40 insertions(+), 40 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1e9069e..a1266e5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,11 @@
+# Changes in version 2.4.0 - 2018-05-??
+
+ * Medium changes
+   - Replace Gson with Jackson. Applications must provide Jackson
+ 2.8.6 or compatible as dependency and do not need to provide Gson
+ as dependency anymore.
+
+
 # Changes in version 2.3.0 - 2018-04-18
 
  * Medium changes
diff --git a/build.xml b/build.xml
index 61cd45d..29db555 100644
--- a/build.xml
+++ b/build.xml
@@ -15,7 +15,9 @@
 
   
   
-  
+  
+  
+  
   
   
   
diff --git a/src/main/java/org/torproject/descriptor/index/DirectoryNode.java 
b/src/main/java/org/torproject/descriptor/index/DirectoryNode.java
index 859493b..9ed5784 100644
--- a/src/main/java/org/torproject/descriptor/index/DirectoryNode.java
+++ b/src/main/java/org/torproject/descriptor/index/DirectoryNode.java
@@ -3,8 +3,6 @@
 
 package org.torproject.descriptor.index;
 
-import com.google.gson.annotations.Expose;
-
 import java.util.SortedSet;
 
 /**
@@ -15,22 +13,19 @@ import java.util.SortedSet;
 public class DirectoryNode implements Comparable {
 
   /** Path (i.e. directory name) is exposed in JSON. */
-  @Expose
   public final String path;
 
   /** The file list is exposed in JSON. Sorted according to path. */
-  @Expose
   public final SortedSet files;
 
   /** The directory list is exposed in JSON. Sorted according to path. */
-  @Expose
   public final SortedSet directories;
 
-  /* Added to satisfy Gson. */
+  /* Added to satisfy Jackson. */
   private DirectoryNode() {
-path = null;
-files = null;
-directories = null;
+this.path = null;
+this.files = null;
+this.directories = null;
   }
 
   /** A directory for the JSON structure. */
diff --git a/src/main/java/org/torproject/descriptor/index/FileNode.java 
b/src/main/java/org/torproject/descriptor/index/FileNode.java
index eb34131..f505f16 100644
--- a/src/main/java/org/torproject/descriptor/index/FileNode.java
+++ b/src/main/java/org/torproject/descriptor/index/FileNode.java
@@ -3,8 +3,7 @@
 
 package org.torproject.descriptor.index;
 
-import com.google.gson.annotations.Expose;
-import com.google.gson.annotations.SerializedName;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -25,18 +24,15 @@ public class FileNode implements Comparable {
   private static Logger log = LoggerFactory.getLogger(FileNode.class);
 
   /** Path (i.e. file name) is exposed in JSON. */
-  @Expose
   public final String path;
 
   /** The file size is exposed in JSON. */
-  @Expose
   public final long size;
 
   /** The last modified date-time string is exposed in JSON. */
-  @Expose
-  @SerializedName("last_modified")
   public final String lastModified;
 
+  @JsonIgnore
   private long lastModifiedMillis;
 
   /* Added to satisfy Gson. */
diff --git a/src/main/java/org/torproject/descriptor/index/IndexNode.java 
b/src/main/java/org/torproject/descriptor/index/IndexNode.java
index 19a5aa4..02b5972 100644
--- a/src/main/java/org/torproject/descriptor/index/IndexNode.java
+++ b/src/main/java/org/torproject/descriptor/index/IndexNode.java
@@ -5,19 +5,20 @@ package org.torproject.descriptor.index;
 
 import org.torproject.descriptor.internal.FileType;
 
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.gson.annotations.Expose;
-import com.google.gson.annotations.SerializedName;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.PropertyNamingStrategy;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.InputStreamReader;
 import java.io.OutputStream;
-import java.io.Reader;
 import java.net.URL;
 import java.net.URLConnection;
 import java.nio.file.Files;
@@ -34,6 +35,7 @@ import java.util.TreeSet;
  *
  * @since 1.4.0
  */
+@JsonPropertyOrder({ "created", "revision", "path", "directories", "files" })
 public 

[tor-commits] [metrics-lib/master] Prepare for 2.4.0 release.

2018-05-25 Thread karsten
commit 94a7403e62d59619dbdc9952736d9b8b68948a05
Author: Karsten Loesing 
Date:   Wed May 23 17:16:19 2018 +0200

Prepare for 2.4.0 release.
---
 CERT | 18 +-
 CHANGELOG.md |  2 +-
 build.xml|  2 +-
 3 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/CERT b/CERT
index 43be56e..61fa7c6 100644
--- a/CERT
+++ b/CERT
@@ -1,8 +1,8 @@
 -BEGIN CERTIFICATE-
-MIIDaTCCAlGgAwIBAgIEIk6NnzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQGEwJV
+MIIDaTCCAlGgAwIBAgIENNGkczANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQGEwJV
 UzELMAkGA1UECBMCV0ExEDAOBgNVBAcTB1NlYXR0bGUxHTAbBgNVBAoTFFRoZSBU
 b3IgUHJvamVjdCwgSW5jMRgwFgYDVQQDEw9LYXJzdGVuIExvZXNpbmcwHhcNMTgw
-MjI2MTQwMzUzWhcNMTgwNTI3MTQwMzUzWjBlMQswCQYDVQQGEwJVUzELMAkGA1UE
+NTIzMTUxNDU2WhcNMTgwODIxMTUxNDU2WjBlMQswCQYDVQQGEwJVUzELMAkGA1UE
 CBMCV0ExEDAOBgNVBAcTB1NlYXR0bGUxHTAbBgNVBAoTFFRoZSBUb3IgUHJvamVj
 dCwgSW5jMRgwFgYDVQQDEw9LYXJzdGVuIExvZXNpbmcwggEiMA0GCSqGSIb3DQEB
 AQUAA4IBDwAwggEKAoIBAQChXn+IUp+o6G+k4ffxk3TkxZb3iXfiG7byNsG63olU
@@ -11,11 +11,11 @@ 
Qw+VAhKTcEIv4yiR0BWapQyR07pgmKirYVjN6s6ef8NJzUptpxLlaYJ3ZfQfc4aE
 MXzScgaccwDFIWQ661lzLGCfeSxxa3Xy4wWsGwzNzLITYrrABcbg7yogLo2btNvD
 oEwGL3/baQdhl0dra6biVCZr9ydn3Hg57S55pUU0rBY25id78zUO8xrfNHw54wwX
 lOblGt75OOkahP/ZZSBxxoiknJ6y5VQV8y+noA4vigXFAgMBAAGjITAfMB0GA1Ud
-DgQWBBSeh60M+/wMYyYhlxtuff2Hk9n7bzANBgkqhkiG9w0BAQsFAAOCAQEAlUkU
-qqf+4yfXwAWFr2q6iijr54NDDEQwybCblIzVnsuGHPUDuie3ZWSHirtblBs/uJ9x
-RxmwkBrJr9IGMmGhN2GKXIPeUH0EZBYo7bsgo5d+E61OCnd/O+1JZzdG9dK+0kfq
-MLfo6ltFZZouHIIXfvOm8sLLRrdkXPrLQ/E8fTHB7dL6T8Hqg6pHRrRZDtuSM9CO
-zSYropxqlFzzlzciOdTU05D8Cnx2j/RtaycxHxFS7QtriDB0uOfqvyiVeqpr72wG
-qetlu3h46fXj3ALGVSXy+YZpYxcRNZsQyiBXdlXbgY0OfOVPFOH3HiZuv3zhfRJW
-2DiJiA8BLxZToe2XDA==
+DgQWBBSeh60M+/wMYyYhlxtuff2Hk9n7bzANBgkqhkiG9w0BAQsFAAOCAQEAJtEQ
+B2AVpVtjTGU7uujUtEjSn1ICv7QLW/37TmHn+m1SWvXOVlSG81eb5JwX449Pn3w5
+K1Bx0JJmJ6Kec2kHtoR1r5/DUlTMtRqKQ5ZHQbvYMx+Ifq8TRALHjcw8p5Vw+gep
+0zYbSQycklzFaFqLB8Cus0ICb+UY54HTddpezQ3IXS/vc4Vy07ocm8rUCz1s8L/r
+ehTOxSym7G7+kcRzNplFOLL5iO8o6uHPyLR1TIAIXa0XZ41ogNl2q+6CvXG+UI/j
+qkzSXD6FJK1Px2nxNFIe/w9NL+chSytIGnV3CImyiORuV+1OxMglyQspSGEbl1XP
+OfiTEYHnp12BYMeRyw==
 -END CERTIFICATE-
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a1266e5..39257fe 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,4 @@
-# Changes in version 2.4.0 - 2018-05-??
+# Changes in version 2.4.0 - 2018-05-23
 
  * Medium changes
- Replace Gson with Jackson. Applications must provide Jackson
diff --git a/build.xml b/build.xml
index 29db555..c69da65 100644
--- a/build.xml
+++ b/build.xml
@@ -6,7 +6,7 @@
 
 
 
-  
+  
   
   
   

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


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

2018-05-25 Thread translation
commit 6ea11cd36c58ebfccc6e7320cc547a5ea9fee17e
Author: Translation commit bot 
Date:   Fri May 25 11:47:37 2018 +

Update translations for tails-perl5lib_completed
---
 ru.po | 15 ---
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/ru.po b/ru.po
index 7e1f23b0e..4a0da28b1 100644
--- a/ru.po
+++ b/ru.po
@@ -7,13 +7,14 @@
 # Misha Dyachuk , 2016
 # Roberto Brigante, 2017
 # Uho Lot , 2016
+# Виктор Ерухин , 2018
 msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
-"POT-Creation-Date: 2017-05-20 10:59+0200\n"
-"PO-Revision-Date: 2017-11-09 19:07+\n"
-"Last-Translator: Roberto Brigante\n"
+"POT-Creation-Date: 2018-03-15 12:15+\n"
+"PO-Revision-Date: 2018-05-25 11:29+\n"
+"Last-Translator: Виктор Ерухин \n"
 "Language-Team: Russian 
(http://www.transifex.com/otf/torproject/language/ru/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -27,12 +28,12 @@ msgstr "Ошибка"
 
 #: ../lib/Tails/RunningSystem.pm:161
 msgid ""
-"The device Tails is running from cannot be found. Maybe you used the `toram'"
+"The device Tails is running from cannot be found. Maybe you used the 'toram'"
 " option?"
-msgstr "Невозможно найти устройство, с 
которого запущена Tails. Может быть, вы 
воспользовались опцией `toram'?"
+msgstr "Запущенное устройство Tails не найдено. 
Возможно вы используете 'toram' опцию?"
 
 #: ../lib/Tails/RunningSystem.pm:192
 msgid ""
-"The drive Tails is running from cannot be found. Maybe you used the `toram' "
+"The drive Tails is running from cannot be found. Maybe you used the 'toram' "
 "option?"
-msgstr "Устройство с Tails не было найдено. 
Возможно, вы используете опцию \"toram\"?"
+msgstr "Запущенный носитель Tails не найден. 
Возможно вы используете 'toram' опцию?"

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


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

2018-05-25 Thread translation
commit c0034766d70d185f302db6055bfa56100c4f414b
Author: Translation commit bot 
Date:   Fri May 25 11:47:32 2018 +

Update translations for tails-perl5lib
---
 ru.po | 9 +
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/ru.po b/ru.po
index 303915ace..4a0da28b1 100644
--- a/ru.po
+++ b/ru.po
@@ -7,13 +7,14 @@
 # Misha Dyachuk , 2016
 # Roberto Brigante, 2017
 # Uho Lot , 2016
+# Виктор Ерухин , 2018
 msgid ""
 msgstr ""
 "Project-Id-Version: The Tor Project\n"
 "Report-Msgid-Bugs-To: Tails developers \n"
 "POT-Creation-Date: 2018-03-15 12:15+\n"
-"PO-Revision-Date: 2018-03-31 13:21+\n"
-"Last-Translator: carolyn \n"
+"PO-Revision-Date: 2018-05-25 11:29+\n"
+"Last-Translator: Виктор Ерухин \n"
 "Language-Team: Russian 
(http://www.transifex.com/otf/torproject/language/ru/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -29,10 +30,10 @@ msgstr "Ошибка"
 msgid ""
 "The device Tails is running from cannot be found. Maybe you used the 'toram'"
 " option?"
-msgstr ""
+msgstr "Запущенное устройство Tails не найдено. 
Возможно вы используете 'toram' опцию?"
 
 #: ../lib/Tails/RunningSystem.pm:192
 msgid ""
 "The drive Tails is running from cannot be found. Maybe you used the 'toram' "
 "option?"
-msgstr ""
+msgstr "Запущенный носитель Tails не найден. 
Возможно вы используете 'toram' опцию?"

___
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

2018-05-25 Thread translation
commit 4092173a889bd37e7da982a5dc13d629e15ed005
Author: Translation commit bot 
Date:   Fri May 25 11:45:30 2018 +

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

diff --git a/ru/https-everywhere.dtd b/ru/https-everywhere.dtd
index 08ed398fe..34d43ff20 100644
--- a/ru/https-everywhere.dtd
+++ b/ru/https-everywhere.dtd
@@ -23,7 +23,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_completed] Update translations for https_everywhere_completed

2018-05-25 Thread translation
commit e3d95f1f2afd4e1820fac456592f6b9d45c62d2d
Author: Translation commit bot 
Date:   Fri May 25 11:45:38 2018 +

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

diff --git a/ru/https-everywhere.dtd b/ru/https-everywhere.dtd
index f75256247..34d43ff20 100644
--- a/ru/https-everywhere.dtd
+++ b/ru/https-everywhere.dtd
@@ -23,6 +23,7 @@
 
 
 
+
 
 
 

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


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

2018-05-25 Thread translation
commit 08b450c640c3eb9ca1fefcd6191603634c508726
Author: Translation commit bot 
Date:   Fri May 25 11:17:26 2018 +

Update translations for torbutton-torbuttondtd_completed
---
 ru/torbutton.dtd | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/ru/torbutton.dtd b/ru/torbutton.dtd
index 50063ce11..7ca05b7a8 100644
--- a/ru/torbutton.dtd
+++ b/ru/torbutton.dtd
@@ -47,4 +47,5 @@
 
 
 
-
+
+

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


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

2018-05-25 Thread translation
commit eec719f66dae2c06c58b24e02861185cde9cd140
Author: Translation commit bot 
Date:   Fri May 25 11:17:22 2018 +

Update translations for torbutton-torbuttondtd
---
 ru/torbutton.dtd | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/ru/torbutton.dtd b/ru/torbutton.dtd
index 24c9f4d48..7ca05b7a8 100644
--- a/ru/torbutton.dtd
+++ b/ru/torbutton.dtd
@@ -47,5 +47,5 @@
 
 
 
-
-
+
+

___
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

2018-05-25 Thread translation
commit 8f0de0a0b9b20731f63e267cc8f44fe5e3d5945a
Author: Translation commit bot 
Date:   Fri May 25 11:17:09 2018 +

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

diff --git a/ru/torbutton.properties b/ru/torbutton.properties
index 8884b5359..2194c844d 100644
--- a/ru/torbutton.properties
+++ b/ru/torbutton.properties
@@ -6,7 +6,7 @@ torbutton.circuit_display.relay = Ретранслятор
 torbutton.circuit_display.tor_bridge = Ретранслятор
 torbutton.circuit_display.unknown_country = Неизвестная страна
 torbutton.circuit_display.guard = Guard
-torbutton.circuit_display.guard_note = Your [Guard] node may not change.
+torbutton.circuit_display.guard_note = Ваш [Guard] узел не может 
быть изменен.
 torbutton.circuit_display.learn_more = Подробнее 
 torbutton.content_sizer.margin_tooltip = Tor Browser добавляет 
этот отступ, чтобы ширина и высота окна 
были менее узнаваемыми, это усложняет 
возможность отследить Вас в сети.
 torbutton.panel.tooltip.disabled = Нажмите, чтобы включить 
Tor

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


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

2018-05-25 Thread translation
commit dcd14f37a5796b8b2a7f4de8f2152540daae2441
Author: Translation commit bot 
Date:   Fri May 25 11:17:16 2018 +

Update translations for torbutton-torbuttonproperties_completed
---
 ru/torbutton.properties | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/ru/torbutton.properties b/ru/torbutton.properties
index 5f6f43926..2194c844d 100644
--- a/ru/torbutton.properties
+++ b/ru/torbutton.properties
@@ -2,9 +2,12 @@ torbutton.circuit_display.internet = Интернет
 torbutton.circuit_display.ip_unknown = IP неизвестен
 torbutton.circuit_display.onion_site = "Луковый" сайт
 torbutton.circuit_display.this_browser = Этот браузер
-torbutton.circuit_display.relay = узел
+torbutton.circuit_display.relay = Ретранслятор
 torbutton.circuit_display.tor_bridge = Ретранслятор
 torbutton.circuit_display.unknown_country = Неизвестная страна
+torbutton.circuit_display.guard = Guard
+torbutton.circuit_display.guard_note = Ваш [Guard] узел не может 
быть изменен.
+torbutton.circuit_display.learn_more = Подробнее 
 torbutton.content_sizer.margin_tooltip = Tor Browser добавляет 
этот отступ, чтобы ширина и высота окна 
были менее узнаваемыми, это усложняет 
возможность отследить Вас в сети.
 torbutton.panel.tooltip.disabled = Нажмите, чтобы включить 
Tor
 torbutton.panel.tooltip.enabled = Нажмите, чтобы 
отключить Tor

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


[tor-commits] [translation/support-tormobile] Update translations for support-tormobile

2018-05-25 Thread translation
commit 4b9d38656dfca797a666a88cda6056ee7a543f9f
Author: Translation commit bot 
Date:   Fri May 25 09:20:56 2018 +

Update translations for support-tormobile
---
 pt_PT.json | 32 
 1 file changed, 32 insertions(+)

diff --git a/pt_PT.json b/pt_PT.json
new file mode 100644
index 0..d832318fe
--- /dev/null
+++ b/pt_PT.json
@@ -0,0 +1,32 @@
+{
+"tormobile-1": {
+   "id": "#tormobile-1",
+   "control": "tormobile-1",
+   "title": "Can I run Tor on an Android device?",
+   "description": "Tor on Android is provided by The 
Guardian Project. More information can be found on the ​https://guardianproject.info/apps/orbot/\;>Orbot and https://guardianproject.info/apps/orfox/\;>​Orfox web 
pages. Orbot is for web browsing, and Orfox can route other apps on your 
Android phone over the Tor network."
+},
+"tormobile-2": {
+   "id": "#tormobile-2",
+   "control": "tormobile-2",
+   "title": "Who is the Guardian Project?",
+   "description": "The Guardian Project maintains Tor 
(and other privacy applications) on Android. More info can be found on the 
​https://guardianproject.info/\;>Guardian Project's 
website."
+},
+"tormobile-3": {
+   "id": "#tormobile-3",
+   "control": "tormobile-3",
+   "title": "Can I run Tor on an iOS device?",
+   "description": " We recommend an iOS app called Onion 
Browser, which is open source, uses Tor routing, and is developed by someone 
who works closely with the Tor Project. However, Apple requires browsers on iOS 
to use something called Webkit, which prevents Onion Browser from having the 
same privacy protections as Tor Browser. https://blog.torproject.org/tor-heart-onion-browser-and-more-ios-tor\;>Learn
 more about Onion Browser."
+},
+"tormobile-4": {
+   "id": "#tormobile-4",
+   "control": "tormobile-4",
+   "title": "How do I run Tor on Windows Phone?",
+   "description": "There is currently no supported 
method for running Tor on Windows Phone."
+},
+ "tormobile-5": {
+   "id": "#tormobile-5",
+   "control": "tormobile-5",
+   "title": "When is Tor Browser for Android being released?",
+   "description": "We are currently working on Tor 
Browser for Android, and you may see alpha releases appear over the coming 
months. Please watch our  https://blog.torproject.org\;>blog for future announcements 
and details regarding this project."
+ }
+}

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


[tor-commits] [translation/support-tormessenger] Update translations for support-tormessenger

2018-05-25 Thread translation
commit f3f7eafbc9ac7c677ee763a061deecdb000f5925
Author: Translation commit bot 
Date:   Fri May 25 09:20:48 2018 +

Update translations for support-tormessenger
---
 pt_PT.json | 20 
 1 file changed, 20 insertions(+)

diff --git a/pt_PT.json b/pt_PT.json
new file mode 100644
index 0..bbad42d5c
--- /dev/null
+++ b/pt_PT.json
@@ -0,0 +1,20 @@
+{
+"messenger-1": {
+   "id": "#messenger-1",
+   "control": "messenger-1",
+   "title": "Does Tor Project make an application for private chat?",
+   "description": "Yes! Tor Messenger, though still in 
beta, is a cross-platform chat program that aims to be secure by default and 
sends all of its traffic over Tor. It supports a wide variety of transport 
networks, including XMPP, IRC, Twitter, and others; enables Off-the-Record 
(OTR) Messaging automatically; has an easy-to-use graphical user interface; and 
a secure automatic updater.See this https://blog.torproject.org/category/tags/tor-messenger\;>Tor Messenger 
blog post for more information."
+},
+"messenger-2": {
+   "id": "#messenger-2",
+   "control": "messenger-2",
+   "title": "What platforms is Tor Messenger available on?",
+   "description": "Tor Messenger (beta) is currently 
available on Linux, Windows, and OSX."
+},
+"messenger-3": {
+   "id": "#messenger-3",
+   "control": "messenger-3",
+   "title": "Where can I download Tor Messenger?",
+   "description": "While the Tor Messenger remains in 
beta, the latest downloads can be found on our wiki."
+}
+}

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


[tor-commits] [translation/support-topics] Update translations for support-topics

2018-05-25 Thread translation
commit 8fbc3ac8e777690f4603f2f2eb03344cb0783235
Author: Translation commit bot 
Date:   Fri May 25 09:20:40 2018 +

Update translations for support-topics
---
 pt_PT.json | 57 +
 1 file changed, 57 insertions(+)

diff --git a/pt_PT.json b/pt_PT.json
new file mode 100644
index 0..63a46e0ca
--- /dev/null
+++ b/pt_PT.json
@@ -0,0 +1,57 @@
+{
+"faq": {
+   "path": "#faq",
+   "control": "faq",
+   "label": "Most Frequently Asked Questions"
+},
+"tbb": {
+   "path": "#tbb",
+   "control": "tbb",
+   "label": "Tor Browser"
+},
+"tormessenger": {
+   "path": "#tormessenger",
+   "control": "tormessenger",
+   "label": "Tor Messenger"
+},
+"tormobile": {
+   "path": "#tormobile",
+   "control": "tormobile",
+   "label": "Tor Mobile"
+},
+"gettor": {
+   "path": "#gettor",
+   "control": "gettor",
+   "label": "GetTor"
+},
+"connecting": {
+   "path": "#connectingtotor",
+   "control": "connectingtotor",
+   "label": "Connecting To Tor"
+},
+"censorship": {
+   "path": "#censorship",
+   "control": "censorship",
+   "label": "Censorship"
+},
+"https": {
+   "path": "#https",
+   "control": "https",
+   "label": "HTTPS"
+},
+"operators": {
+   "path": "#operators",
+   "control": "operators",
+   "label": "Operators"
+},
+"onionservices": {
+   "path": "#onionservices",
+   "control": "onionservices",
+   "label": "Onion Services"
+},
+"misc": {
+   "path": "#misc",
+   "control": "misc",
+   "label": "Misc"
+}
+}

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


[tor-commits] [translation/support-tbb] Update translations for support-tbb

2018-05-25 Thread translation
commit 512241ff97a840d367af83af4c2ea4bcfee54312
Author: Translation commit bot 
Date:   Fri May 25 09:20:32 2018 +

Update translations for support-tbb
---
 pt_PT.json | 260 +
 1 file changed, 260 insertions(+)

diff --git a/pt_PT.json b/pt_PT.json
new file mode 100644
index 0..e4ba34fc5
--- /dev/null
+++ b/pt_PT.json
@@ -0,0 +1,260 @@
+{
+"tbb-1": {
+   "id": "#tbb-1",
+   "control": "tbb-1",
+   "title": "What are the most common issues with the latest stable 
version of Tor Browser?",
+   "description": "Whenever we release a new stable 
version of Tor Browser, we write a blog post that details its new features and 
known issues. If you started having issues with your Tor Browser after an 
update, check out ​https://blog.torproject.org\;>https://blog.torproject.org for 
the most recent stable Tor Browser post to see if your issue is listed."
+},
+"tbb-2": {
+   "id": "#tbb-2",
+   "control": "tbb-2",
+   "title": "Why is the first IP address in my relay circuit always the 
same?",
+   "description": "That is normal Tor behavior. The 
first relay in your circuit is called an \"entry guard\" or \"guard.\" It is a 
fast and stable relay that remains the first one in your circuit for 2-3 months 
in order to protect against a known anonymity-breaking attack. The rest of your 
circuit changes with every new website you visit, and all together these relays 
provide the full privacy protections of Tor. For more information on how guard 
relays work, see this https://blog.torproject.org/improving-tors-anonymity-changing-guard-parameters\;>blog
 post and https://www-users.cs.umn.edu/~hoppernj/single_guard.pdf\;>paper
 on entry guards."
+},
+"tbb-3": {
+   "id": "#tbb-3",
+   "control": "tbb-3",
+   "title": "When I use Tor Browser, will anyone be able to tell which 
websites I visit?",
+   "description": "Tor Browser prevents people from 
knowing the websites you visit. Some entities, such as your Internet Service 
Provider (ISP), may be able to see that you're using Tor."
+},
+"tbb-4": {
+   "id": "#tbb-4",
+   "control": "tbb-4",
+   "title": "Why is Tor Browser built from Firefox and not some other 
browser",
+   "description": "Tor Browser is a modified version of 
Firefox specifically designed for use with Tor. A lot of work has been put into 
making the Tor Browser, including the use of extra patches to enhance privacy 
and security. While it is technically possible to use Tor with other browsers, 
you may open yourself up to potential attacks or information leakage, so we 
strongly discourage it. https://www.torproject.org/projects/torbrowser/design/\;>Learn more 
about the design of Tor Browser."
+},
+"tbb-5": {
+   "id": "#tbb-5",
+   "control": "tbb-5",
+   "title": "Can I still use another browser, like Chrome or Firefox, when 
I am using Tor Browser",
+   "description": "You can certainly use another browser 
while you are also using Tor Browser. However, you should know that the privacy 
properties of Tor Browser will not be present in the other browser. Be careful 
when switching back and forth between Tor and a less safe browser, because you 
may accidentally use the other browser for something you intended to do using 
Tor."
+},
+"tbb-6": {
+   "id": "#tbb-6",
+   "control": "tbb-6",
+   "title": "Can I make Tor Browser my default browser?",
+   "description": "Unfortunately, there is no supported 
way to make Tor Browser your default browser."
+},
+"tbb-7": {
+   "id": "#tbb-7",
+   "control": "tbb-7",
+   "title": "My favorite website is blocking access over Tor.",
+   "description": "Sorry to hear that you can't visit 
the website you wanted! Sometimes websites will block Tor users because they 
can't tell the difference between the average Tor user and automated traffic. 
The best success we've had in getting sites to unblock Tor users is getting 
users to contact the site administrators directly. Something like this might do 
the trick:\"Hi! I tried to access your site xyz.com while using Tor 
Browser and discovered that you don't allow Tor users to access your site. I 
urge you to reconsider this decision; Tor is used by people all over the world 
to protect their privacy and fight censorship. By blocking Tor users, you are 
likely blocking people in repressive countries who want to use a free internet, 
journalists and researchers who want to protect themselves from discovery, 
whistleblowers, activists, and ordinary people who want to opt out of invasive 
third party tracking. Please take a strong stance in favor of digital priv
 acy and internet freedom, and allow Tor users access to xyz.com. Thank 
you.\"In the case of banks, and other sensitive websites, it is also 
common to see geography-based blocking (if a bank knows 

[tor-commits] [translation/support-faq] Update translations for support-faq

2018-05-25 Thread translation
commit 87c4e9f4bb9c62b47b893a51451a1422705434a6
Author: Translation commit bot 
Date:   Fri May 25 09:20:00 2018 +

Update translations for support-faq
---
 pt_PT.json | 32 
 1 file changed, 32 insertions(+)

diff --git a/pt_PT.json b/pt_PT.json
new file mode 100644
index 0..a4a631779
--- /dev/null
+++ b/pt_PT.json
@@ -0,0 +1,32 @@
+{
+"faq-1": {
+   "id": "#faq-1",
+   "control": "faq-1",
+   "title": "When I use Tor Browser, will anyone be able to tell which 
websites I visit?",
+   "description": "Tor Browser prevents people from 
knowing the websites you visit. Some entities, such as your Internet Service 
Provider (ISP), may be able to see that you're using Tor."
+},
+"faq-2": {
+   "id": "#faq-2",
+   "control": "faq-2",
+   "title": "Our website is blocked by a censor. Can Tor Browser help 
users access our website?",
+   "description": "Tor Browser can certainly help people 
access your website in places where it is blocked. Most of the time, simply 
downloading the ​Tor Browser and then using it to navigate to the blocked 
site will allow access. In places where there is heavy censorship, we have a 
number of censorship circumvention options available, including ​pluggable 
transports. For more information, please see the ​Tor Browser User Manual 
section on censorship."
+},
+"faq-3": {
+   "id": "#faq-3",
+   "control": "faq-3",
+   "title": "Should I install a new add-on or extension in Tor Browser, 
like AdBlock Plus or uBlock Origin?",
+   "description": "It's strongly discouraged to install 
new add-ons in Tor Browser, because they can compromise both your privacy and 
your security. Plus, Tor Browser already comes installed with two add-ons — 
HTTPS Everywhere and NoScript — which give you added protection."
+},
+"faq-4": {
+   "id": "#faq-4",
+   "control": "faq-4",
+   "title": "Which platforms is Tor Browser available for?",
+   "description": "Tor Browser is currently available on 
Windows, Linux and macOS (OS X). For Android, The Guardian Project maintains 
the Tor-powered apps Orbot and Orfox. There is no official version of Tor for 
iOS yet, though we recommend Onion Browser."
+},
+"faq-5": {
+   "id": "#faq-5",
+   "control": "faq-5",
+   "title": "Can I use a VPN with Tor?",
+   "description": "Generally speaking, we don't 
recommend using a VPN with Tor unless you're an advanced user who knows how to 
configure both in a way that doesn't compromise your privacy. Learn more about 
combining Tor + VPN."
+}
+}

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


[tor-commits] [translation/support-miscellaneous] Update translations for support-miscellaneous

2018-05-25 Thread translation
commit a737fcf2fb025028909b31360baa3f05fb70f6f2
Author: Translation commit bot 
Date:   Fri May 25 09:20:24 2018 +

Update translations for support-miscellaneous
---
 pt_PT.json | 92 ++
 1 file changed, 92 insertions(+)

diff --git a/pt_PT.json b/pt_PT.json
new file mode 100644
index 0..c29993d09
--- /dev/null
+++ b/pt_PT.json
@@ -0,0 +1,92 @@
+{
+"misc-1": {
+   "id": "#misc-1",
+   "control": "misc-1",
+   "title": "I have a compelling reason to trace a Tor user. Can you 
help?",
+   "description": "There is nothing the Tor developers 
can do to trace Tor users. The same protections that keep bad people from 
breaking Tor's anonymity also prevent us from tracking users."
+},
+"misc-2": {
+   "id": "#misc-2",
+   "control": "misc-2",
+   "title": "Why don't you prevent bad people from doing bad things when 
using Tor?",
+   "description": "Tor is designed to defend human 
rights and privacy by preventing anyone from censoring things, even us. We hate 
that there are some people who use Tor to do terrible things, but we can't do 
anything to get rid of them without also undermining the human rights 
activists, journalists, abuse survivors, and other people who use Tor for good 
things. If we wanted to block certain people from using Tor, we'd basically be 
adding a backdoor to the software, which would open up our vulnerable users to 
attacks from bad regimes and other adversaries."
+},
+ "misc-3": {
+   "id": "#misc-3",
+   "control": "misc-3",
+   "title": "Who funds Tor?",
+   "description": "Tor is funded by a number of 
different sponsors including US federal agencies, private foundations, and 
individual donors. Check out a list of all https://www.torproject.org/about/sponsors.html.en\;>our 
sponsors and a series of https://blog.torproject.org/category/tags/form-990\;>blog 
posts on our financial reports.We feel that 
talking openly about our funders and funding model is the best way to maintain 
trust with our community. We are always seeking more diversity in our funding 
sources, especially from foundations and individuals."
+ },
+ "misc-4": {
+   "id": "#misc-4",
+   "control": "misc-4",
+   "title": "Can I use Tor with bittorrent?",
+   "description": "We do not recommend using Tor with 
bittorrent. For further details, please see our https://blog.torproject.org/bittorrent-over-tor-isnt-good-idea\;>​blog 
post on the subject."
+ },
+ "misc-5": {
+   "id": "#misc-5",
+   "control": "misc-5",
+   "title": "The files on my computer have been locked, and someone is 
demanding I download Tor Browser to pay a ransom for my files!",
+   "description": "We are so sorry, but you have been 
infected with malware. The Tor Project did not create this malware. The malware 
authors are asking you to download Tor Browser presumably to contact them 
anonymously with the ransom they're demanding from you. If this is your first 
introduction to Tor Browser, we understand that you might think we're bad 
people who enable even worse people. But please consider that our software is 
used every day for a wide variety of purposes by ​human rights activists, 
journalists, domestic violence survivors, whistleblowers, law enforcement 
officers, and many others. Unfortunately, the protection that our software can 
provide to these groups of people can also be abused by criminals and malware 
authors. The Tor Project does not support or condone the use of our software 
for malicious purposes."
+ },
+"misc-6": {
+   "id": "#misc-6",
+   "control": "misc-6",
+   "title": "Does Tor keep logs?",
+   "description": "Tor doesn't keep any logs that could 
identify a particular user. We do take some safe measurements of how the 
network functions, which you can check out at https://metrics.torproject.org/\;>​Tor Metrics."
+},
+"misc-7": {
+   "id": "#misc-7",
+   "control": "misc-7",
+   "title": "Does Tor Project offer email service or other privacy 
protecting web services?",
+   "description": "No, we don't provide any online 
services. A list of all of our software projects can be found on our https://www.torproject.org/projects/projects.html.en\;>​projects 
page."
+},
+"misc-8": {
+   "id": "#misc-8",
+   "control": "misc-8",
+   "title": "Can I use the Tor logo in my product?",
+   "description": "You can read all about that on our 
https://www.torproject.org/docs/trademark-faq.html\;>​Trademark faq 
page."
+},
+"misc-9": {
+   "id": "#misc-9",
+   "control": "misc-9",
+   "title": "I'm having a problem updating or using Vidalia.",
+   "description": "Vidalia is no longer maintained or 
supported. A large portion of the features Vidalia offered have now been 
integrated into Tor Browser itself."
+},

[tor-commits] [translation/support-connecting] Update translations for support-connecting

2018-05-25 Thread translation
commit 187e1070c2ee5634228298ab0118319685ec5ce1
Author: Translation commit bot 
Date:   Fri May 25 09:19:52 2018 +

Update translations for support-connecting
---
 pt_PT.json | 20 
 1 file changed, 20 insertions(+)

diff --git a/pt_PT.json b/pt_PT.json
new file mode 100644
index 0..4d3e7f911
--- /dev/null
+++ b/pt_PT.json
@@ -0,0 +1,20 @@
+{
+"connecting-1": {
+   "id": "#connecting-1",
+   "control": "connecting-1",
+   "title": "Tor Browser won't connect, but it doesn’t seem to be an 
issue with censorship.",
+   "description": "One of the most common issues that 
causes connection errors in Tor Browser is an incorrect system clock. Please 
make sure your system clock and timezone are set accurately. If this doesn't 
fix the problem, see the ​Troubleshooting page on the https://tb-manual.torproject.org/en-US/bridges.html\;>​Tor Browser 
manual."
+},
+"connecting-2": {
+   "id": "#connecting-2",
+   "control": "connecting-2",
+   "title": "I am having trouble connecting to Tor, and I can’t figure 
out what’s wrong.",
+   "description": "If you’re having trouble 
connecting, please select the option to \"copy Tor log to clipboard.\" Then 
paste the Tor log into a text file or other document. You should see one of 
these common log errors (look for the following lines in your Tor 
log):Common log error #1: Proxy connection failure 2017-10-29 09:23:40.800 [NOTICE] Opening Socks 
listener on 127.0.0.1:9150 \n 2017-10-29 09:23:47.900 [NOTICE] Bootstrapped 5%: 
Connecting to directory server \n 2017-10-29 09:23:47.900 [NOTICE] Bootstrapped 
10%: Finishing handshake with directory server \n 2017-10-29 09:24:08.900 
[WARN] Proxy Client: unable to connect to xx..xxx..xxx.xx:x (\"general 
SOCKS server failure\") \n 2017-10-29 09:24:08.900 [WARN] Proxy Client: unable 
to connect to xx..xxx..xxx.xx:x  (\"general SOCKS server failure\") \n 
2017-10-29 09:24:08.900 [WARN] Proxy Client: unable to connect 
toxx..xxx..xxx.xx:x  (\"general SOCKS server fa
 ilure\")If you see lines like these  in 
your Tor log, it means you are failing to connect to a SOCKS proxy. If a SOCKS 
proxy is required for your network setup, then please make sure you’ve 
entered your proxy details correctly.  If a SOCKS proxy is not required, or 
you’re not sure,  please try connecting to the Tor network without a SOCKS 
proxy.Common log error #2: Can’t reach guard relays 11/1/2017 21:11:43 PM.500 [NOTICE] Opening Socks 
listener on 127.0.0.1:9150 \n 11/1/2017 21:11:44 PM.300 [NOTICE] Bootstrapped 
80%: Connecting to the Tor network \n 11/1/2017 21:11:44 PM.300 [WARN] Failed 
to find node for hop 0 of our path. Discarding this circuit. \n 11/1/2017 
21:11:44 PM.500 [NOTICE] Bootstrapped 85%: Finishing handshake with first hop 
\n 11/1/2017 21:11:45 PM.300 [WARN] Failed to find node for hop 0 of our path. 
Discarding this circuit.If you see lines 
like these
  in your Tor log, it means your Tor failed to connect to the first node in the 
Tor circuit. This could mean that you’re on a network that’s censored. 
Please try connecting with bridges, and that should fix the 
problem.Common log error #3: Failed to complete TLS handshake 13-11-17 19:52:24.300 [NOTICE] Bootstrapped 10%: 
Finishing handshake with directory server \n 13-11-17 19:53:49.300 [WARN] 
Problem bootstrapping. Stuck at 10%: Finishing handshake with directory server. 
(DONE; DONE; count 10; recommendation warn; host [host] at xxx.xxx.xxx.xx:xxx) 
\n 13-11-17 19:53:49.300 [WARN] 10 connections have failed: \n 13-11-17 
19:53:49.300 [WARN]  9 connections died in state handshaking (TLS) with SSL 
state SSLv2/v3 read server hello A in HANDSHAKE \n 13-11-17 19:53:49.300 [WARN] 
 1 connections died in state connect()ing with SSL state (No SSL 
object)If you see lines like this in your 
Tor log, it means that Tor 
 failed to complete a TLS handshake with the directory authorities. Using 
bridges will likely fix this.Common log error #4: Clock skew 19.11.2017 00:04:47.400 [NOTICE] Opening Socks 
listener on 127.0.0.1:9150 \n 19.11.2017 00:04:48.000 [NOTICE] Bootstrapped 5%: 
Connecting to directory server \n 19.11.2017 00:04:48.200 [NOTICE] Bootstrapped 
10%: Finishing handshake with directory server \n 19.11.2017 00:04:48.800 
[WARN] Received NETINFO cell with skewed time (OR:xxx.xx.x.xx:): It seems 
that our clock is behind by 1 days, 0 hours, 1 minutes, or that theirs is 
ahead. \n Tor requires an accurate clock to work: please check your time, 
timezone, and date settings.If you see lines 
like this in your Tor log, it means your system clock is incorrect. Please make 
sure your clock is set accurately, including the correct timezone. Then restart 
Tor. "
+},
+"connecting-3": {
+   "id": "#connecting-3",
+   "control": "connecting-3",
+   "title": "I cannot reach X.onion!",
+   "description": "If you cannot reach the onion 

[tor-commits] [translation/support-gettor] Update translations for support-gettor

2018-05-25 Thread translation
commit 67ce8f0aa4da9a700178db4376a7b7bb3bd39740
Author: Translation commit bot 
Date:   Fri May 25 09:20:08 2018 +

Update translations for support-gettor
---
 pt_PT.json | 26 ++
 1 file changed, 26 insertions(+)

diff --git a/pt_PT.json b/pt_PT.json
new file mode 100644
index 0..1f4c42c72
--- /dev/null
+++ b/pt_PT.json
@@ -0,0 +1,26 @@
+{
+"gettor-1": {
+   "id": "#gettor-1",
+   "control": "gettor-1",
+   "title": "How do I download Tor if the torproject.org is blocked?",
+   "description": "If you can't download Tor through our 
​https://www.torproject.org\;>website, you can get 
a copy of Tor delivered to you via GetTor. GetTor is a service that 
automatically responds to messages with links to the latest version of Tor 
Browser, hosted at a variety of locations that are less likely to be censored, 
such as Dropbox, Google Drive, and Github."
+},
+"gettor-2": {
+   "id": "#gettor-2",
+   "control": "gettor-2",
+   "title": "To use GetTor via email.",
+   "description": "Send an email to 
get...@torproject.org. Write your operating system (such as windows, MacOS (OS 
X), or linux) in the body of the message and send. GetTor will respond with an 
email containing links from which you can download Tor Browser, the 
cryptographic signature (needed for verifying the download) [link to glossary 
definition of cryptographic signature; instructions for verification], the 
fingerprint of the key used to make the signature, and the package’s 
checksum. You may be offered a choice of \"32-bit\" or \"64-bit\" software: 
this depends on the model of the computer you are using; consult documentation 
about your computer to find out more."
+},
+"gettor-3": {
+   "id": "#gettor-3",
+   "control": "gettor-3",
+   "title": "To use GetTor via Twitter.",
+   "description": "To get links for downloading Tor 
Browser, send a direct message to ​https://twitter.com/get_tor\;>@get_tor with one of the 
following codes in it (you don't need to follow the account):LinuxMacOS (OS X)Windows"
+},
+"gettor-4": {
+   "id": "#gettor-4",
+   "control": "gettor-4",
+   "title": "To use GetTor via XMPP (Tor Messenger, Jitsi, CoyIM).",
+   "description": "To get links for downloading Tor 
Browser, send a message to gettor@toproject(dot)org with one of the following 
codes in it:LinuxMacOS (OS 
X)Windows"
+}
+}

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


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

2018-05-25 Thread translation
commit 47aab1a20b104c8ee231260a0bcd1849e94a0b7a
Author: Translation commit bot 
Date:   Fri May 25 09:20:16 2018 +

Update translations for support-https
---
 pt_PT.json | 8 
 1 file changed, 8 insertions(+)

diff --git a/pt_PT.json b/pt_PT.json
new file mode 100644
index 0..625e41dd5
--- /dev/null
+++ b/pt_PT.json
@@ -0,0 +1,8 @@
+{
+"https-1": {
+   "id": "#https-1",
+   "control": "https-1",
+   "title": "When I'm using Tor, can eavesdroppers still see the 
information I share with websites, like login information and things I type 
into forms?",
+   "description": "Tor protects eavesdroppers from 
learning sites that you visit. However, information sent unencrypted over the 
internet using plain HTTP can still be intercepted by exit relay operators or 
anyone observing the traffic between your exit relay and your destination 
website. If the site you are visiting uses HTTPS, then the traffic leaving your 
exit relay will be encrypted, and won't be visible to eavesdroppers.If you are using HTTPS, your 
website URL will begin with \"​https://\;.This visualization shows what information is visible to 
eavesdroppers with and without Tor Br
 owser and HTTPS encryption."
+}
+}

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


[tor-commits] [translation/tor-browser-manual] Update translations for tor-browser-manual

2018-05-25 Thread translation
commit 67d3eb33f410bb056ef7de6ae8a22ec326fa2794
Author: Translation commit bot 
Date:   Fri May 25 09:19:36 2018 +

Update translations for tor-browser-manual
---
 pt_PT/pt_PT.po | 1381 
 1 file changed, 1381 insertions(+)

diff --git a/pt_PT/pt_PT.po b/pt_PT/pt_PT.po
new file mode 100644
index 0..c5bcfd331
--- /dev/null
+++ b/pt_PT/pt_PT.po
@@ -0,0 +1,1381 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2016-12-06 16:36-0600\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Language-Team: Portuguese (Portugal) 
(https://www.transifex.com/otf/teams/1519/pt_PT/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_PT\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Put one translator per line, in the form NAME , YEAR1, YEAR2
+msgctxt "_"
+msgid "translator-credits"
+msgstr ""
+
+#: about-tor-browser.page:7
+msgid "Learn what Tor Browser can do to protect your privacy and anonymity"
+msgstr ""
+
+#: about-tor-browser.page:10
+msgid "About Tor Browser"
+msgstr ""
+
+#: about-tor-browser.page:12
+msgid ""
+"Tor Browser uses the Tor network to protect your privacy and anonymity. "
+"Using the Tor network has two main properties:"
+msgstr ""
+
+#: about-tor-browser.page:18
+msgid ""
+"Your internet service provider, and anyone watching your connection locally,"
+" will not be able to track your internet activity, including the names and "
+"addresses of the websites you visit."
+msgstr ""
+
+#: about-tor-browser.page:25
+msgid ""
+"The operators of the websites and services that you use, and anyone watching"
+" them, will see a connection coming from the Tor network instead of your "
+"real Internet (IP) address, and will not know who you are unless you "
+"explicitly identify yourself."
+msgstr ""
+
+#: about-tor-browser.page:34
+msgid ""
+"In addition, Tor Browser is designed to prevent websites from "
+"“fingerprinting” or identifying you based on your browser configuration."
+msgstr ""
+
+#: about-tor-browser.page:39
+msgid ""
+"By default, Tor Browser does not keep any browsing history. Cookies are only"
+" valid for a single session (until Tor Browser is exited or a New Identity is requested)."
+msgstr ""
+
+#: about-tor-browser.page:50
+msgid "How Tor works"
+msgstr ""
+
+#: about-tor-browser.page:52
+msgid ""
+"Tor is a network of virtual tunnels that allows you to improve your privacy "
+"and security on the Internet. Tor works by sending your traffic through "
+"three random servers (also known as relays) in the Tor network. The"
+" last relay in the circuit (the “exit relay”) then sends the traffic out "
+"onto the public Internet."
+msgstr ""
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: about-tor-browser.page:59
+msgctxt "_"
+msgid ""
+"external ref='media/how-tor-works.png' "
+"md5='6fe4151a88b7a518466f0582e40ccc8c'"
+msgstr ""
+
+#: about-tor-browser.page:60
+msgid ""
+"The image above illustrates a user browsing to different websites over Tor. "
+"The green middle computers represent relays in the Tor network, while the "
+"three keys represent the layers of encryption between the user and each "
+"relay."
+msgstr ""
+
+#: bridges.page:6
+msgid "Learn what bridges are and how to get them"
+msgstr ""
+
+#: bridges.page:10
+msgid "Bridges"
+msgstr ""
+
+#: bridges.page:12
+msgid ""
+"Most Pluggable Transports, such as obfs3 "
+"and obfs4, rely on the use of “bridge” relays. Like ordinary Tor relays, "
+"bridges are run by volunteers; unlike ordinary relays, however, they are not"
+" listed publicly, so an adversary cannot identify them easily. Using bridges"
+" in combination with pluggable transports helps to disguise the fact that "
+"you are using Tor."
+msgstr ""
+
+#: bridges.page:21
+msgid ""
+"Other pluggable transports, like meek, use different anti-censorship "
+"techniques that do not rely on bridges. You do not need to obtain bridge "
+"addresses in order to use these transports."
+msgstr ""
+
+#: bridges.page:28
+msgid "Getting bridge addresses"
+msgstr ""
+
+#: bridges.page:29
+msgid ""
+"Because bridge addresses are not public, you will need to request them "
+"yourself. You have two options:"
+msgstr ""
+
+#: bridges.page:36
+msgid ""
+"Visit https://bridges.torproject.org/\;>https://bridges.torproject.org/"
+" and follow the instructions, or"
+msgstr ""
+
+#: bridges.page:42
+msgid ""
+"Email brid...@torproject.org from a Gmail, Yahoo, or Riseup email address, "
+"or"
+msgstr ""
+
+#: bridges.page:51
+msgid "Entering bridge addresses"
+msgstr ""
+
+#: bridges.page:52
+msgid ""
+"Once you have obtained some 

[tor-commits] [translation/support-censorship] Update translations for support-censorship

2018-05-25 Thread translation
commit c0dc76051f1b2e3ba6a446d09b6ad57b298ec0c2
Author: Translation commit bot 
Date:   Fri May 25 09:19:44 2018 +

Update translations for support-censorship
---
 pt_PT.json | 40 
 1 file changed, 40 insertions(+)

diff --git a/pt_PT.json b/pt_PT.json
new file mode 100644
index 0..9abeb2f10
--- /dev/null
+++ b/pt_PT.json
@@ -0,0 +1,40 @@
+{
+"censorship-1": {
+   "id": "#censorship-1",
+   "control": "censorship-1",
+   "title": "Our website is blocked by a censor. Can Tor Browser help 
users access our website?",
+   "description": "Tor Browser can certainly help people 
access your website in places where it is blocked. Most of the time, simply 
downloading the ​https://www.torproject.org/download/download-easy.html.en\;>Tor 
Browser and then using it to navigate to the blocked site will allow 
access. In places where there is heavy censorship we have a number of 
censorship circumvention options available, including ​https://www.torproject.org/docs/pluggable-transports.html.en\;>pluggable 
transports. For more information, please see the https://tb-manual.torproject.org/en-US/\;>​Tor Browser User 
Manual section on https://tb-manual.torproject.org/en-US/circumvention.html\;>censorship."
+},
+"censorship-2": {
+   "id": "#censorship-2",
+   "control": "censorship-2",
+   "title": "My favorite website is blocking access over Tor.",
+   "description": "Sorry to hear that you can't visit 
the website you wanted! Sometimes websites will block Tor users because they 
can't tell the difference between the average Tor user and automated traffic. 
The best success we've had in getting sites to unblock Tor users is getting 
users to contact the site administrators directly. Something like this might do 
the trick:\"Hi! I tried to access your site xyz.com while using Tor 
Browser and discovered that you don't allow Tor users to access your site. I 
urge you to reconsider this decision; Tor is used by people all over the world 
to protect their privacy and fight censorship. By blocking Tor users, you are 
likely blocking people in repressive countries who want to use a free internet, 
journalists and researchers who want to protect themselves from discovery, 
whistleblowers, activists, and ordinary people who want to opt out of invasive 
third party tracking. Please take a strong stance in favor of digital priv
 acy and internet freedom, and allow Tor users access to xyz.com. Thank 
you.\"In the case of banks, and other sensitive websites, it is also 
common to see geography-based blocking (if a bank knows you generally access 
their services from one country, and suddenly you are connecting from an exit 
relay on the other side of the world, your account may be locked or suspended). 
If you are unable to connect to an onion service, please see I cannot reach X.onion!"
+},
+"censorship-3": {
+   "id": "#censorship-3",
+   "control": "censorship-3",
+   "title": "How do I download Tor if the torproject.org is blocked?",
+   "description": "If you can't download Tor through our 
​https://www.torproject.org\;>website, you can get 
a copy of Tor delivered to you via GetTor. GetTor is a service that 
automatically responds to messages with links to the latest version of Tor 
Browser, hosted at a variety of locations that are less likely to be censored, 
such as Dropbox, Google Drive, and Github."
+},
+"censorship-4": {
+   "id": "#censorship-4",
+   "control": "censorship-4",
+   "title": "I can’t connect to Tor Browser, is my network censored?",
+   "description": "You might be on a censored network, 
and so you should try using bridges. Some bridges are built in to Tor Browser, 
and you can use those bridges by choosing \"configure\" (then following the 
prompts) in the Tor Launcher window that pops up when you open Tor Browser for 
the first time. If you need other bridges, you can get them at our ​https://bridges.torproject.org/\;>Bridges website. For more 
information about bridges, see the https://tb-manual.torproject.org/en-US/bridges.html\;>​Tor Browser 
manual."
+},
+"censorship-5": {
+   "id": "#censorship-5",
+   "control": "censorship-5",
+   "title": "I am having trouble connecting to Tor, and I can’t figure 
out what’s wrong.",
+   "description": "If you’re having trouble 
connecting, please select the option to \"copy Tor log to clipboard.\" Then 
paste the Tor log into a text file or other document. You should see one of 
these common log errors (look for the following lines in your Tor 
log):Common log error #1: Proxy connection failure 2017-10-29 09:23:40.800 [NOTICE] Opening Socks 
listener on 127.0.0.1:9150 \n 2017-10-29 09:23:47.900 [NOTICE] Bootstrapped 5%: 
Connecting to directory server \n 2017-10-29 09:23:47.900 [NOTICE] Bootstrapped 
10%: Finishing handshake with directory 

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

2018-05-25 Thread translation
commit 24e90d93d9a47d2dffbddb9e4cbb2d147ea40278
Author: Translation commit bot 
Date:   Fri May 25 09:19:26 2018 +

Update translations for exoneratorproperties
---
 pt_PT/exonerator.properties | 54 +
 1 file changed, 54 insertions(+)

diff --git a/pt_PT/exonerator.properties b/pt_PT/exonerator.properties
new file mode 100644
index 0..936754ae5
--- /dev/null
+++ b/pt_PT/exonerator.properties
@@ -0,0 +1,54 @@
+form.explanation=Enter an IP address and date to find out whether that address 
was used as a Tor relay:
+form.ip.label=IP address
+form.timestamp.label=Date
+form.search.label=Search
+summary.heading=Summary
+summary.serverproblem.dbnoconnect.title=Server problem
+summary.serverproblem.dbnoconnect.body.text=Unable to connect to the database. 
Please try again later. If this problem persists, please %s!
+summary.serverproblem.dbnoconnect.body.link=let us know
+summary.serverproblem.dbempty.title=Server problem
+summary.serverproblem.dbempty.body.text=The database appears to be empty. 
Please try again later. If this problem persists, please %s!
+summary.serverproblem.dbempty.body.link=let us know
+summary.invalidparams.notimestamp.title=No date parameter given
+summary.invalidparams.notimestamp.body=Sorry, you also need to provide a date 
parameter.
+summary.invalidparams.noip.title=No IP address parameter given
+summary.invalidparams.noip.body=Sorry, you also need to provide an IP address 
parameter.
+summary.invalidparams.timestamprange.title=Date parameter out of range
+summary.invalidparams.timestamprange.body=Sorry, the database does not contain 
any data from %s. Please pick a date between %s and %s.
+summary.invalidparams.invalidip.title=Invalid IP address parameter
+summary.invalidparams.invalidip.body=Sorry, %s is not a valid IP address. The 
expected IP address formats are %s or %s.
+summary.invalidparams.invalidtimestamp.title=Invalid date parameter
+summary.invalidparams.invalidtimestamp.body=Sorry, %s is not a valid date. The 
expected date format is %s.
+summary.invalidparams.timestamptoorecent.title=Date parameter too recent
+summary.invalidparams.timestamptoorecent.body=The database may not yet contain 
enough data to correctly answer this request. The latest accepted data is the 
day before yesterday. Please repeat your search on another day.
+summary.serverproblem.nodata.title=Server problem
+summary.serverproblem.nodata.body.text=The database does not contain any data 
for the requested date. Please try again later. If this problem persists, 
please %s!
+summary.serverproblem.nodata.body.link=let us know
+summary.negativesamenetwork.title=Result is negative
+summary.negativesamenetwork.body=We did not find IP address %s on or within a 
day of %s. But we did find other IP addresses of Tor relays in the same /%d 
network around the time:
+summary.positive.title=Result is positive
+summary.positive.body=We found one or more Tor relays on IP address %s on or 
within a day of %s that Tor clients were likely to know.
+summary.negative.title=Result is negative
+summary.negative.body=We did not find IP address %s on or within a day of %s.
+technicaldetails.heading=Technical details
+technicaldetails.pre=Looking up IP address %s on or within one day of %s. Tor 
clients could have selected this or these Tor relays to build circuits.
+technicaldetails.colheader.timestamp=Timestamp (UTC)
+technicaldetails.colheader.ip=IP address(es)
+technicaldetails.colheader.fingerprint=Identity fingerprint
+technicaldetails.colheader.nickname=Nickname
+technicaldetails.colheader.exit=Exit relay
+technicaldetails.nickname.unknown=Unknown
+technicaldetails.exit.unknown=Unknown
+technicaldetails.exit.yes=Yes
+technicaldetails.exit.no=No
+permanentlink.heading=Permanent link
+footer.abouttor.heading=About Tor
+footer.abouttor.body.text=Tor is an international software project to 
anonymize Internet traffic by %s. Therefore, if you see traffic from a 
Tor relay, this traffic usually originates from someone using Tor, rather than 
from the relay operator. The Tor Project and Tor relay operators have no 
records of the traffic that passes over the network and therefore cannot 
provide any information about its origin. Be sure to %s, and don't 
hesitate to %s for more information.
+footer.abouttor.body.link1=encrypting packets and sending them through a 
series of hops before they reach their destination
+footer.abouttor.body.link2=learn more about Tor
+footer.abouttor.body.link3=contact The Tor Project, Inc.
+footer.aboutexonerator.heading=About ExoneraTor
+footer.aboutexonerator.body=The ExoneraTor service maintains a database of IP 
addresses that have been part of the Tor network. It answers the question 
whether there was a Tor relay running on a given IP address on a given 
date. ExoneraTor may store more than one IP address per relay if relays 
use a different IP address for exiting to the Internet than for registering in 

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

2018-05-25 Thread translation
commit a82809688bcbac061d258df21ff7841adcafa39a
Author: Translation commit bot 
Date:   Fri May 25 09:19:00 2018 +

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

diff --git a/pt_PT/abouttbupdate.dtd b/pt_PT/abouttbupdate.dtd
new file mode 100644
index 0..37567bd7e
--- /dev/null
+++ b/pt_PT/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/tails-onioncircuits] Update translations for tails-onioncircuits

2018-05-25 Thread translation
commit 31da7ab407a9b8a2d1a41871e9bac7f59b4f6821
Author: Translation commit bot 
Date:   Fri May 25 09:19:09 2018 +

Update translations for tails-onioncircuits
---
 pt_PT/onioncircuits.pot | 85 +
 1 file changed, 85 insertions(+)

diff --git a/pt_PT/onioncircuits.pot b/pt_PT/onioncircuits.pot
new file mode 100644
index 0..1fb9f7917
--- /dev/null
+++ b/pt_PT/onioncircuits.pot
@@ -0,0 +1,85 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: The Tor Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-03 13:00+\n"
+"PO-Revision-Date: 2016-03-30 03:31+\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Portuguese (Portugal) 
(http://www.transifex.com/otf/torproject/language/pt_PT/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_PT\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../onioncircuits:81
+msgid "You are not connected to Tor yet..."
+msgstr ""
+
+#: ../onioncircuits:95
+msgid "Onion Circuits"
+msgstr ""
+
+#: ../onioncircuits:125
+msgid "Circuit"
+msgstr ""
+
+#: ../onioncircuits:126
+msgid "Status"
+msgstr ""
+
+#: ../onioncircuits:142
+msgid "Click on a circuit for more detail about its Tor relays."
+msgstr ""
+
+#: ../onioncircuits:221
+msgid "The connection to Tor was lost..."
+msgstr ""
+
+#: ../onioncircuits:317
+msgid "..."
+msgstr ""
+
+#: ../onioncircuits:343
+#, c-format
+msgid "%s: %s"
+msgstr ""
+
+#: ../onioncircuits:554
+msgid "GeoIP database unavailable. No country information will be displayed."
+msgstr ""
+
+#: ../onioncircuits:585
+#, c-format
+msgid "%s (%s)"
+msgstr ""
+
+#: ../onioncircuits:590
+#, c-format
+msgid "%.2f Mb/s"
+msgstr ""
+
+#: ../onioncircuits:592 ../onioncircuits:593 ../onioncircuits:594
+msgid "Unknown"
+msgstr ""
+
+#: ../onioncircuits:607
+msgid "Fingerprint:"
+msgstr ""
+
+#: ../onioncircuits:608
+msgid "Published:"
+msgstr ""
+
+#: ../onioncircuits:609
+msgid "IP:"
+msgstr ""
+
+#: ../onioncircuits:610
+msgid "Bandwidth:"
+msgstr ""

___
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

2018-05-25 Thread translation
commit 29e0249d98852bee05e227671fb66ab746ff4b5e
Author: Translation commit bot 
Date:   Fri May 25 09:18:34 2018 +

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

diff --git a/pt_PT/aboutdialog.dtd b/pt_PT/aboutdialog.dtd
new file mode 100644
index 0..5099ad74b
--- /dev/null
+++ b/pt_PT/aboutdialog.dtd
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

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


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

2018-05-25 Thread translation
commit cb93666f3820d2aba12ac2a8500de74d487f5d7c
Author: Translation commit bot 
Date:   Fri May 25 09:19:18 2018 +

Update translations for tails-greeter-2
---
 pt_PT/pt_PT.po | 306 +
 1 file changed, 306 insertions(+)

diff --git a/pt_PT/pt_PT.po b/pt_PT/pt_PT.po
new file mode 100644
index 0..245b22b1c
--- /dev/null
+++ b/pt_PT/pt_PT.po
@@ -0,0 +1,306 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR , YEAR.
+# 
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-05-07 19:17+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Language-Team: Portuguese (Portugal) 
(https://www.transifex.com/otf/teams/1519/pt_PT/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_PT\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../data/greeter.ui.h:1
+msgid "Administration Password"
+msgstr ""
+
+#: ../data/greeter.ui.h:2
+msgid ""
+"Set up an administration password if you need to perform administrative "
+"tasks. Otherwise, the administration password is disabled for better "
+"security."
+msgstr ""
+
+#: ../data/greeter.ui.h:3
+msgid "Enter an administration password"
+msgstr ""
+
+#: ../data/greeter.ui.h:4
+msgid "Confirm"
+msgstr ""
+
+#: ../data/greeter.ui.h:5
+msgid "Confirm your administration password"
+msgstr ""
+
+#: ../data/greeter.ui.h:6
+msgid "Disable"
+msgstr ""
+
+#. This string will never be displayed in the 1st version of the greeter.
+#: ../data/greeter.ui.h:8
+msgid "Windows Camouflage"
+msgstr ""
+
+#. This string will never be displayed in the 1st version of the greeter.
+#: ../data/greeter.ui.h:10
+msgid ""
+"This option makes Tails look like Microsoft Windows 10. This can be useful "
+"to avoid attracting suspicion in public places."
+msgstr ""
+
+#. This string will never be displayed in the 1st version of the greeter.
+#: ../data/greeter.ui.h:12
+msgid "Microsoft Windows 10 camouflage"
+msgstr ""
+
+#: ../data/greeter.ui.h:13
+msgid "MAC Address Spoofing"
+msgstr ""
+
+#: ../data/greeter.ui.h:14
+msgid ""
+"MAC address spoofing hides the serial number of your network interface (Wi-"
+"Fi or wired) to the local network. Spoofing MAC addresses is generally safer"
+" as it helps you hide your geographical location. But it might also create "
+"connectivity problems or look suspicious."
+msgstr ""
+
+#: ../data/greeter.ui.h:15
+msgid "Spoof all MAC addresses (default)"
+msgstr ""
+
+#: ../data/greeter.ui.h:16
+msgid "Don't spoof MAC addresses"
+msgstr ""
+
+#: ../data/greeter.ui.h:17 ../tailsgreeter/gui.py:532
+msgid "Cannot unlock encrypted storage with this passphrase."
+msgstr ""
+
+#: ../data/greeter.ui.h:18
+msgid ""
+"You will configure the Tor bridge and local proxy later on after connecting "
+"to a network."
+msgstr ""
+
+#: ../data/greeter.ui.h:19
+msgid "Welcome to Tails!"
+msgstr ""
+
+#. This string will never be displayed in the 1st version of the greeter.
+#: ../data/greeter.ui.h:21
+msgctxt ""
+msgid ""
+"To get guided through Tails' settings, click on Take a Tour above"
+msgstr ""
+
+#: ../data/greeter.ui.h:22
+msgid "Language & Region"
+msgstr ""
+
+#: ../data/greeter.ui.h:23
+msgid "Default Settings"
+msgstr ""
+
+#: ../data/greeter.ui.h:24
+msgid "Save Language & Region Settings"
+msgstr ""
+
+#: ../data/greeter.ui.h:25
+msgid "_Language"
+msgstr ""
+
+#: ../data/greeter.ui.h:26
+msgid "_Keyboard Layout"
+msgstr ""
+
+#: ../data/greeter.ui.h:27
+msgid "_Formats"
+msgstr ""
+
+#: ../data/greeter.ui.h:28
+msgid "_Time Zone"
+msgstr ""
+
+#: ../data/greeter.ui.h:29
+msgid "Encrypted _Persistent Storage"
+msgstr ""
+
+#: ../data/greeter.ui.h:30
+msgid "Show Passphrase"
+msgstr ""
+
+#: ../data/greeter.ui.h:31
+msgid "Configure Persistent Storage"
+msgstr ""
+
+#: ../data/greeter.ui.h:32
+msgid "Enter your passphrase to unlock the persistent storage"
+msgstr ""
+
+#: ../data/greeter.ui.h:33 ../tailsgreeter/gui.py:478
+#: ../tailsgreeter/gui.py:528
+msgid "Unlock"
+msgstr ""
+
+#: ../data/greeter.ui.h:34
+msgid "Relock Persistent Storage"
+msgstr ""
+
+#: ../data/greeter.ui.h:35
+msgid "Your persistent storage is unlocked. Restart Tails to lock it again."
+msgstr ""
+
+#: ../data/greeter.ui.h:36
+msgid "_Additional Settings"
+msgstr ""
+
+#: ../data/greeter.ui.h:37
+msgid "Save Additional Settings"
+msgstr ""
+
+#: ../data/greeter.ui.h:38
+msgid "Add an additional setting"
+msgstr ""
+
+#: ../data/greeter.ui.h:39
+msgid "Network Configuration"
+msgstr ""
+
+#: ../data/greeter.ui.h:40
+msgid ""
+"If your Internet connection is censored, filtered, or proxied you can "
+"configure a Tor bridge or a local proxy. To work completely offline, you can"
+" disable all networking."
+msgstr ""
+
+#: 

[tor-commits] [translation/tails-openpgp-applet] Update translations for tails-openpgp-applet

2018-05-25 Thread translation
commit 1601cb2d55049de7be0db98bba96b9c69e34acde
Author: Translation commit bot 
Date:   Fri May 25 09:18:52 2018 +

Update translations for tails-openpgp-applet
---
 pt_PT/openpgp-applet.pot | 177 +++
 1 file changed, 177 insertions(+)

diff --git a/pt_PT/openpgp-applet.pot b/pt_PT/openpgp-applet.pot
new file mode 100644
index 0..4c3034e5a
--- /dev/null
+++ b/pt_PT/openpgp-applet.pot
@@ -0,0 +1,177 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Tails developers
+# This file is distributed under the same license as the OpenPGP_Applet 
package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: The Tor Project\n"
+"Report-Msgid-Bugs-To: ta...@boum.org\n"
+"POT-Creation-Date: 2017-08-05 15:07-0400\n"
+"PO-Revision-Date: 2015-11-23 02:23+\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Portuguese (Portugal) 
(http://www.transifex.com/otf/torproject/language/pt_PT/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_PT\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: bin/openpgp-applet:160
+msgid "You are about to exit OpenPGP Applet. Are you sure?"
+msgstr ""
+
+#: bin/openpgp-applet:172
+msgid "OpenPGP encryption applet"
+msgstr ""
+
+#: bin/openpgp-applet:175
+msgid "Exit"
+msgstr ""
+
+#: bin/openpgp-applet:177
+msgid "About"
+msgstr ""
+
+#: bin/openpgp-applet:232
+msgid "Encrypt Clipboard with _Passphrase"
+msgstr ""
+
+#: bin/openpgp-applet:235
+msgid "Sign/Encrypt Clipboard with Public _Keys"
+msgstr ""
+
+#: bin/openpgp-applet:240
+msgid "_Decrypt/Verify Clipboard"
+msgstr ""
+
+#: bin/openpgp-applet:244
+msgid "_Manage Keys"
+msgstr ""
+
+#: bin/openpgp-applet:248
+msgid "_Open Text Editor"
+msgstr ""
+
+#: bin/openpgp-applet:292
+msgid "The clipboard does not contain valid input data."
+msgstr ""
+
+#: bin/openpgp-applet:337 bin/openpgp-applet:339 bin/openpgp-applet:341
+msgid "Unknown Trust"
+msgstr ""
+
+#: bin/openpgp-applet:343
+msgid "Marginal Trust"
+msgstr ""
+
+#: bin/openpgp-applet:345
+msgid "Full Trust"
+msgstr ""
+
+#: bin/openpgp-applet:347
+msgid "Ultimate Trust"
+msgstr ""
+
+#: bin/openpgp-applet:400
+msgid "Name"
+msgstr ""
+
+#: bin/openpgp-applet:401
+msgid "Key ID"
+msgstr ""
+
+#: bin/openpgp-applet:402
+msgid "Status"
+msgstr ""
+
+#: bin/openpgp-applet:433
+msgid "Fingerprint:"
+msgstr ""
+
+#: bin/openpgp-applet:436
+msgid "User ID:"
+msgid_plural "User IDs:"
+msgstr[0] ""
+msgstr[1] ""
+
+#: bin/openpgp-applet:465
+msgid "None (Don't sign)"
+msgstr ""
+
+#: bin/openpgp-applet:528
+msgid "Select recipients:"
+msgstr ""
+
+#: bin/openpgp-applet:536
+msgid "Hide recipients"
+msgstr ""
+
+#: bin/openpgp-applet:539
+msgid ""
+"Hide the user IDs of all recipients of an encrypted message. Otherwise "
+"anyone that sees the encrypted message can see who the recipients are."
+msgstr ""
+
+#: bin/openpgp-applet:545
+msgid "Sign message as:"
+msgstr ""
+
+#: bin/openpgp-applet:549
+msgid "Choose keys"
+msgstr ""
+
+#: bin/openpgp-applet:589
+msgid "Do you trust these keys?"
+msgstr ""
+
+#: bin/openpgp-applet:592
+msgid "The following selected key is not fully trusted:"
+msgid_plural "The following selected keys are not fully trusted:"
+msgstr[0] ""
+msgstr[1] ""
+
+#: bin/openpgp-applet:610
+msgid "Do you trust this key enough to use it anyway?"
+msgid_plural "Do you trust these keys enough to use them anyway?"
+msgstr[0] ""
+msgstr[1] ""
+
+#: bin/openpgp-applet:623
+msgid "No keys selected"
+msgstr ""
+
+#: bin/openpgp-applet:625
+msgid ""
+"You must select a private key to sign the message, or some public keys to "
+"encrypt the message, or both."
+msgstr ""
+
+#: bin/openpgp-applet:653
+msgid "No keys available"
+msgstr ""
+
+#: bin/openpgp-applet:655
+msgid ""
+"You need a private key to sign messages or a public key to encrypt messages."
+msgstr ""
+
+#: bin/openpgp-applet:783
+msgid "GnuPG error"
+msgstr ""
+
+#: bin/openpgp-applet:804
+msgid "Therefore the operation cannot be performed."
+msgstr ""
+
+#: bin/openpgp-applet:854
+msgid "GnuPG results"
+msgstr ""
+
+#: bin/openpgp-applet:860
+msgid "Output of GnuPG:"
+msgstr ""
+
+#: bin/openpgp-applet:885
+msgid "Other messages provided by GnuPG:"
+msgstr ""

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


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

2018-05-25 Thread translation
commit 288ddcf29aa4f93ccfd94f4bb444bb8a5c91aa20
Author: Translation commit bot 
Date:   Fri May 25 09:18:42 2018 +

Update translations for torbutton-abouttorproperties
---
 pt_PT/abouttor.properties | 20 
 1 file changed, 20 insertions(+)

diff --git a/pt_PT/abouttor.properties b/pt_PT/abouttor.properties
new file mode 100644
index 0..d0d3a64b8
--- /dev/null
+++ b/pt_PT/abouttor.properties
@@ -0,0 +1,20 @@
+# Copyright (c) 2014, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+aboutTor.searchDDG.privacy=Search securely with DuckDuckGo.
+# The following string is a link which replaces %1$S above.
+aboutTor.searchDDG.privacy.link=https://duckduckgo.com/privacy.html
+# The following string is a link which replaces %2$S above.
+aboutTor.searchDDG.search.link=https://duckduckgo.com/
+
+aboutTor.donationBanner.donate=Donate Now!
+
+aboutTor.donationBanner.slogan=Tor: Powering Digital Resistance
+aboutTor.donationBanner.mozilla=Give today and Mozilla will match your gift!
+
+aboutTor.donationBanner.tagline1=Protecting Journalists, Whistleblowers, & 
Activists Since 2006
+aboutTor.donationBanner.tagline2=Networking Freedom Worldwide
+aboutTor.donationBanner.tagline3=Freedom Online
+aboutTor.donationBanner.tagline4=Fostering Free Expression Worldwide
+aboutTor.donationBanner.tagline5=Protecting the Privacy of Millions Every Day

___
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

2018-05-25 Thread translation
commit 7d8ea6f8eb5efb4afb392fde81a626a8fd7df853
Author: Translation commit bot 
Date:   Fri May 25 09:18:26 2018 +

Update translations for tor_animation
---
 pt_PT.srt | 165 ++
 1 file changed, 165 insertions(+)

diff --git a/pt_PT.srt b/pt_PT.srt
new file mode 100644
index 0..0e6056a97
--- /dev/null
+++ b/pt_PT.srt
@@ -0,0 +1,165 @@
+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
+food we eat, people we meet,
+
+4
+00:00:10,180 --> 00:00:12,480
+places we go, and the stuff we read.
+
+5
+00:00:13,280 --> 00:00:14,640
+Let me explain it better.
+
+6
+00:00:14,920 --> 00:00:17,740
+Right at this moment,
+if someone attempts to look you up,
+
+7
+00:00:18,060 --> 00:00:22,480
+they'll see your real identity,
+precise location, operating system,
+
+8
+00:00:22,800 --> 00:00:26,500
+all the sites you've visited,
+the browser you use to surf the web,
+
+9
+00:00:26,700 --> 00:00:29,140
+and so much more information
+about you and your life
+
+10
+00:00:29,200 --> 00:00:31,500
+which you probably didn't mean
+to share with unknown strangers,
+
+11
+00:00:31,700 --> 00:00:34,000
+who could easily use this data
+to exploit you.
+
+12
+00:00:34,500 --> 00:00:37,000
+But not if you're using Tor!
+
+13
+00:00:37,140 --> 00:00:40,840
+Tor Browser protects our privacy
+and identity on the Internet.
+
+14
+00:00:41,560 --> 00:00:44,760
+Tor secures your connection
+with three layers of encryption
+
+15
+00:00:44,940 --> 00:00:49,760
+and passes it through three voluntarily
+operated servers around the world,
+
+16
+00:00:50,280 --> 00:00:53,520
+which enables us to communicate
+anonymously over the Internet.
+
+17
+00:00:56,560 --> 00:00:58,280
+Tor also protects our data
+
+18
+00:00:58,400 --> 00:01:01,900
+against corporate or government targeted
+and mass surveillance.
+
+19
+00:01:02,880 --> 00:01:07,340
+Perhaps you live in a repressive country
+which tries to control and surveil the Internet.
+
+20
+00:01:07,900 --> 00:01:11,800
+Or perhaps you don't want big corporations
+taking advantage of your personal information.
+
+21
+00:01:12,880 --> 00:01:15,640
+Tor makes all of its users
+to look the same
+
+22
+00:01:15,920 --> 00:01:18,800
+which confuses the observer
+and makes you anonymous.
+
+23
+00:01:19,500 --> 00:01:22,980
+So, the more people use the Tor network,
+the stronger it gets
+
+24
+00:01:23,140 --> 00:01:27,800
+as it's easier to hide in a crowd
+of people who look exactly the same.
+
+25
+00:01:28,700 --> 00:01:31,240
+You can bypass the censorship
+without being worried about
+
+26
+00:01:31,400 --> 00:01:34,100
+the censor knowing what you do
+on the Internet.
+
+27
+00:01:36,540 --> 00:01:39,440
+The ads won't follow you
+everywhere for months,
+
+28
+00:01:39,640 --> 00:01:41,300
+starting when you first
+clicked on a product.
+
+29
+00:01:43,880 --> 00:01:47,380
+By using Tor, the sites you visit
+won't even know who you are,
+
+30
+00:01:47,540 --> 00:01:49,760
+from what part of the world
+you're visiting them,
+
+31
+00:01:49,920 --> 00:01:51,920
+unless you login and tell them so.
+
+32
+00:01:54,200 --> 00:01:55,840
+By downloading and using Tor,
+
+33
+00:01:56,200 --> 00:01:58,560
+you can protect the people
+who need anonymity,
+
+34
+00:01:58,880 --> 00:02:01,640
+like activists, journalists and bloggers.
+
+35
+00:02:02,000 --> 00:02:07,000
+Download and use Tor! Or run a relay!
+

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


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

2018-05-25 Thread translation
commit 580d4df4f825e4e23604a0acb244b9ff620c6fb3
Author: Translation commit bot 
Date:   Fri May 25 09:17:51 2018 +

Update translations for torbutton-torbuttondtd
---
 it/torbutton.dtd|  4 ++--
 pt_PT/torbutton.dtd | 51 +++
 2 files changed, 53 insertions(+), 2 deletions(-)

diff --git a/it/torbutton.dtd b/it/torbutton.dtd
index bf6754059..b1cc844c3 100644
--- a/it/torbutton.dtd
+++ b/it/torbutton.dtd
@@ -47,5 +47,5 @@
 
 
 
-
-
+
+
diff --git a/pt_PT/torbutton.dtd b/pt_PT/torbutton.dtd
new file mode 100644
index 0..a0ef5f98a
--- /dev/null
+++ b/pt_PT/torbutton.dtd
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

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


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

2018-05-25 Thread translation
commit 8eae86c46c7963868d4cd83cf23d707a526fbac6
Author: Translation commit bot 
Date:   Fri May 25 09:18:01 2018 +

Update translations for tails-iuk
---
 pt_PT.po | 247 +++
 1 file changed, 247 insertions(+)

diff --git a/pt_PT.po b/pt_PT.po
new file mode 100644
index 0..0152b81c2
--- /dev/null
+++ b/pt_PT.po
@@ -0,0 +1,247 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Tails developers
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: The Tor Project\n"
+"Report-Msgid-Bugs-To: Tails developers \n"
+"POT-Creation-Date: 2018-05-07 19:26+0200\n"
+"PO-Revision-Date: 2013-12-18 20:45+\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Portuguese (Portugal) 
(http://www.transifex.com/otf/torproject/language/pt_PT/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_PT\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../lib/Tails/IUK/Frontend.pm:148 ../lib/Tails/IUK/Frontend.pm:524
+#: ../lib/Tails/IUK/Frontend.pm:697
+msgid ""
+"For debugging information, execute the following command: sudo tails-"
+"debugging-info"
+msgstr ""
+
+#: ../lib/Tails/IUK/Frontend.pm:217
+msgid "Error while checking for upgrades"
+msgstr ""
+
+#: ../lib/Tails/IUK/Frontend.pm:220
+msgid ""
+"Could not determine whether an upgrade is available from our 
website.\n"
+"\n"
+"Check your network connection, and restart Tails to try upgrading again.\n"
+"\n"
+"If the problem persists, go to 
file:///usr/share/doc/tails/website/doc/upgrade/error/check.en.html"
+msgstr ""
+
+#: ../lib/Tails/IUK/Frontend.pm:235
+msgid "no automatic upgrade is available from our website for this version"
+msgstr ""
+
+#: ../lib/Tails/IUK/Frontend.pm:241
+msgid "your device was not created using Tails Installer"
+msgstr ""
+
+#: ../lib/Tails/IUK/Frontend.pm:246
+msgid "Tails was started from a DVD or a read-only device"
+msgstr ""
+
+#: ../lib/Tails/IUK/Frontend.pm:251
+msgid "there is not enough free space on the Tails system partition"
+msgstr ""
+
+#: ../lib/Tails/IUK/Frontend.pm:256
+msgid "not enough memory is available on this system"
+msgstr ""
+
+#: ../lib/Tails/IUK/Frontend.pm:262
+#, perl-brace-format
+msgid "No explanation available for reason '%{reason}s'."
+msgstr ""
+
+#: ../lib/Tails/IUK/Frontend.pm:282
+msgid "The system is up-to-date"
+msgstr ""
+
+#: ../lib/Tails/IUK/Frontend.pm:287
+msgid "This version of Tails is outdated, and may have security issues."
+msgstr ""
+
+#: ../lib/Tails/IUK/Frontend.pm:319
+#, perl-brace-format
+msgid ""
+"The available incremental upgrade requires %{space_needed}s of free space on"
+" Tails system partition,  but only %{free_space}s is available."
+msgstr ""
+
+#: ../lib/Tails/IUK/Frontend.pm:335
+#, perl-brace-format
+msgid ""
+"The available incremental upgrade requires %{memory_needed}s of free memory,"
+" but only %{free_memory}s is available."
+msgstr ""
+
+#: ../lib/Tails/IUK/Frontend.pm:357
+msgid ""
+"An incremental upgrade is available, but no full upgrade is.\n"
+"This should not happen. Please report a bug."
+msgstr ""
+
+#: ../lib/Tails/IUK/Frontend.pm:361
+msgid "Error while detecting available upgrades"
+msgstr ""
+
+#: ../lib/Tails/IUK/Frontend.pm:371
+#, perl-brace-format
+msgid ""
+"You should upgrade to %{name}s %{version}s.\n"
+"\n"
+"For more information about this new version, go to %{details_url}s\n"
+"\n"
+"It is recommended to close all the open applications during the upgrade.\n"
+"Downloading the upgrade might take a long time, from several minutes to a few 
hours.\n"
+"The networking will be disabled after downloading the upgrade.\n"
+"\n"
+"Download size: %{size}s\n"
+"\n"
+"Do you want to upgrade now?"
+msgstr ""
+
+#: ../lib/Tails/IUK/Frontend.pm:386
+msgid "Upgrade available"
+msgstr ""
+
+#: ../lib/Tails/IUK/Frontend.pm:387
+msgid "Upgrade now"
+msgstr ""
+
+#: ../lib/Tails/IUK/Frontend.pm:388
+msgid "Upgrade later"
+msgstr ""
+
+#: ../lib/Tails/IUK/Frontend.pm:396
+#, perl-brace-format
+msgid ""
+"You should do a manual upgrade to %{name}s %{version}s.\n"
+"\n"
+"For more information about this new version, go to %{details_url}s\n"
+"\n"
+"It is not possible to automatically upgrade your device to this new version: 
%{explanation}s.\n"
+"\n"
+"To learn how to do a manual upgrade, go to 
https://tails.boum.org/doc/first_steps/upgrade/#manual;
+msgstr ""
+
+#: ../lib/Tails/IUK/Frontend.pm:412
+msgid "New version available"
+msgstr ""
+
+#: ../lib/Tails/IUK/Frontend.pm:469
+msgid "Downloading upgrade"
+msgstr ""
+
+#: ../lib/Tails/IUK/Frontend.pm:472
+#, perl-brace-format
+msgid "Downloading the upgrade to %{name}s %{version}s..."
+msgstr ""
+
+#: ../lib/Tails/IUK/Frontend.pm:513
+msgid ""
+"The upgrade could not be downloaded.\\n\\nCheck your network "
+"connection, and 

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

2018-05-25 Thread translation
commit 73402ef76796f0a22489bf3c12dd24cfda09f29d
Author: Translation commit bot 
Date:   Fri May 25 09:17:55 2018 +

Update translations for torbutton-torbuttondtd_completed
---
 it/torbutton.dtd | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/it/torbutton.dtd b/it/torbutton.dtd
index 746ead5b3..b1cc844c3 100644
--- a/it/torbutton.dtd
+++ b/it/torbutton.dtd
@@ -47,4 +47,5 @@
 
 
 
-
+
+

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


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

2018-05-25 Thread translation
commit 647b56247104d84da6906d02bc3c59290beb0522
Author: Translation commit bot 
Date:   Fri May 25 09:18:17 2018 +

Update translations for tor-and-https
---
 pt_PT.po | 135 +++
 1 file changed, 135 insertions(+)

diff --git a/pt_PT.po b/pt_PT.po
new file mode 100644
index 0..079eacf80
--- /dev/null
+++ b/pt_PT.po
@@ -0,0 +1,135 @@
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: The Tor Project\n"
+"POT-Creation-Date: 2014-07-17 14:23+\n"
+"PO-Revision-Date: 2014-05-21 08:40+\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Portuguese (Portugal) 
(http://www.transifex.com/otf/torproject/language/pt_PT/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_PT\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. (itstool) path: C/tor-and-https.svg/svg@direction
+#. (itstool) comment: C/tor-and-https.svg/svg@direction
+#. Specify "ltr" for left-to-right languages or "rtl" for right-to-left
+#. languages (e.g. Arabic or Hebrew).
+#: C/tor-and-https.svg:3
+msgid "ltr"
+msgstr ""
+
+#. (itstool) path: svg/title
+#: C/tor-and-https.svg:14
+#, no-wrap
+msgid "Tor and HTTPS"
+msgstr ""
+
+#. (itstool) path: defs/text
+#. Keep it short: 7em max. Seven times the capital letter "M".
+#: C/tor-and-https.svg:363
+#, no-wrap
+msgid "Site.com"
+msgstr ""
+
+#. (itstool) path: defs/text
+#. Keep it short: 7em max. Seven times the capital letter "M".
+#: C/tor-and-https.svg:363
+#, no-wrap
+msgid "user / pw"
+msgstr ""
+
+#. (itstool) path: defs/text
+#. Keep it short: 7em max. Seven times the capital letter "M".
+#: C/tor-and-https.svg:363
+#, no-wrap
+msgid "data"
+msgstr ""
+
+#. (itstool) path: defs/text
+#. Keep it short: 7em max. Seven times the capital letter "M".
+#: C/tor-and-https.svg:363
+#, no-wrap
+msgid "location"
+msgstr ""
+
+#. (itstool) path: defs/text
+#. Keep it short: 3em max.
+#: C/tor-and-https.svg:363
+#, no-wrap
+msgid "WiFi"
+msgstr ""
+
+#. (itstool) path: defs/text
+#. Keep it short: 4em max.
+#: C/tor-and-https.svg:363
+#, no-wrap
+msgid "ISP"
+msgstr ""
+
+#. (itstool) path: defs/text
+#. Keep it short: 8em is ok, 9em is max.
+#: C/tor-and-https.svg:363
+#, no-wrap
+msgid "Hacker"
+msgstr ""
+
+#. (itstool) path: defs/text
+#. Keep it short: 8em is ok, 9em is max.
+#: C/tor-and-https.svg:363
+#, no-wrap
+msgid "Lawyer"
+msgstr ""
+
+#. (itstool) path: defs/text
+#. Keep it short: 8em is ok, 9em is max.
+#: C/tor-and-https.svg:363
+#, no-wrap
+msgid "Sysadmin"
+msgstr ""
+
+#. (itstool) path: defs/text
+#. Keep it short: 8em is ok, 9em is max.
+#: C/tor-and-https.svg:363
+#, no-wrap
+msgid "Police"
+msgstr ""
+
+#. (itstool) path: defs/text
+#: C/tor-and-https.svg:363
+#, no-wrap
+msgid "NSA"
+msgstr ""
+
+#. (itstool) path: defs/text
+#. Keep it short: 8em is ok, 9em is max.
+#: C/tor-and-https.svg:363
+#, no-wrap
+msgid "Tor relay"
+msgstr ""
+
+#. (itstool) path: defs/text
+#: C/tor-and-https.svg:363
+#, no-wrap
+msgid "Key"
+msgstr ""
+
+#. (itstool) path: defs/text
+#: C/tor-and-https.svg:363
+#, no-wrap
+msgid "Internet connection"
+msgstr ""
+
+#. (itstool) path: defs/text
+#: C/tor-and-https.svg:363
+#, no-wrap
+msgid "Eavesdropping"
+msgstr ""
+
+#. (itstool) path: defs/text
+#: C/tor-and-https.svg:363
+#, no-wrap
+msgid "Data sharing"
+msgstr ""

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


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

2018-05-25 Thread translation
commit dfe0951a49fa3337fb5d0efa3829c59cf26fd373
Author: Translation commit bot 
Date:   Fri May 25 09:18:09 2018 +

Update translations for tails-perl5lib
---
 pt_PT.po | 34 ++
 1 file changed, 34 insertions(+)

diff --git a/pt_PT.po b/pt_PT.po
new file mode 100644
index 0..3b101f10b
--- /dev/null
+++ b/pt_PT.po
@@ -0,0 +1,34 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Tails developers
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: The Tor Project\n"
+"Report-Msgid-Bugs-To: Tails developers \n"
+"POT-Creation-Date: 2018-03-15 12:15+\n"
+"PO-Revision-Date: 2013-12-30 04:38+\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Portuguese (Portugal) 
(http://www.transifex.com/otf/torproject/language/pt_PT/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_PT\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../lib/Tails/RunningSystem.pm:159
+msgid "Error"
+msgstr ""
+
+#: ../lib/Tails/RunningSystem.pm:161
+msgid ""
+"The device Tails is running from cannot be found. Maybe you used the 'toram'"
+" option?"
+msgstr ""
+
+#: ../lib/Tails/RunningSystem.pm:192
+msgid ""
+"The drive Tails is running from cannot be found. Maybe you used the 'toram' "
+"option?"
+msgstr ""

___
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

2018-05-25 Thread translation
commit 9dd46f9bda95ae2db23fb6ae3e8e408a36febcee
Author: Translation commit bot 
Date:   Fri May 25 09:17:41 2018 +

Update translations for torbutton-torbuttonproperties
---
 pt_PT/torbutton.properties | 54 ++
 1 file changed, 54 insertions(+)

diff --git a/pt_PT/torbutton.properties b/pt_PT/torbutton.properties
new file mode 100644
index 0..468a532dd
--- /dev/null
+++ b/pt_PT/torbutton.properties
@@ -0,0 +1,54 @@
+torbutton.circuit_display.internet = Internet
+torbutton.circuit_display.ip_unknown = IP unknown
+torbutton.circuit_display.onion_site = Onion site
+torbutton.circuit_display.this_browser = This browser
+torbutton.circuit_display.relay = Relay
+torbutton.circuit_display.tor_bridge = Bridge
+torbutton.circuit_display.unknown_country = Unknown country
+torbutton.circuit_display.guard = Guard
+torbutton.circuit_display.guard_note = Your [Guard] node may not change.
+torbutton.circuit_display.learn_more = Learn more
+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 to enable Tor
+torbutton.panel.tooltip.enabled = Click to disable Tor
+torbutton.panel.label.disabled = Tor Disabled
+torbutton.panel.label.enabled = Tor Enabled
+extensions.torbut...@torproject.org.description = Torbutton provides a button 
to configure Tor settings and quickly and easily clear private browsing data.
+torbutton.popup.external.title = Download an external file type?
+torbutton.popup.external.app = Tor Browser cannot display this file. You will 
need to open it with another application.\n\n
+torbutton.popup.external.note = Some types of files can cause applications to 
connect to the Internet without using Tor.\n\n
+torbutton.popup.external.suggest = To be safe, you should only open downloaded 
files while offline, or use a Tor Live CD such as Tails.\n
+torbutton.popup.launch = Download file
+torbutton.popup.cancel = Cancel
+torbutton.popup.dontask = Automatically download files from now on
+torbutton.popup.prompted_language = To give you more privacy, Torbutton can 
request the English language version of web pages. This may cause web pages 
that you prefer to read in your native language to display in English 
instead.\n\nWould you like to request English language web pages for better 
privacy?
+torbutton.popup.no_newnym = Torbutton cannot safely give you a new identity. 
It does not have access to the Tor Control Port.\n\nAre you running Tor Browser 
Bundle?
+torbutton.title.prompt_torbrowser = Important Torbutton Information
+torbutton.popup.prompt_torbrowser = Torbutton works differently now: you can't 
turn it off any more.\n\nWe made this change because it isn't safe to use 
Torbutton in a browser that's also used for non-Tor browsing. There were too 
many bugs there that we couldn't fix any other way.\n\nIf you want to keep 
using Firefox normally, you should uninstall Torbutton and download Tor Browser 
Bundle. The privacy properties of Tor Browser are also superior to those of 
normal Firefox, even when Firefox is used with Torbutton.\n\nTo remove 
Torbutton, go to Tools->Addons->Extensions and then click the Remove button 
next to Torbutton.
+torbutton.popup.short_torbrowser = Important Torbutton 
Information!\n\nTorbutton is now always enabled.\n\nClick on the Torbutton for 
more information.
+
+torbutton.popup.confirm_plugins = Plugins such as Flash can harm your privacy 
and anonymity.\n\nThey can also bypass Tor to reveal your current location and 
IP address.\n\nAre you sure you want to enable plugins?\n\n
+torbutton.popup.never_ask_again = Never ask me again
+torbutton.popup.confirm_newnym = Tor Browser will close all windows and tabs. 
All website sessions will be lost.\n\nRestart Tor Browser now to reset your 
identity?\n\n
+
+torbutton.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.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.
+
+# Canvas permission prompt. Strings are kept here for ease of translation.
+canvas.siteprompt=This website (%S) attempted to extract HTML5 canvas image 
data, which may be used to uniquely identify your computer.\n\nShould Tor 
Browser allow this website to extract HTML5 canvas image data?
+canvas.notNow=Not Now
+canvas.notNowAccessKey=N
+canvas.allow=Allow in the future
+canvas.allowAccessKey=A
+canvas.never=Never for this site (recommended)
+canvas.neverAccessKey=e
+
+# Profile/startup error messages. Strings are kept here for ease of 
translation.
+# LOCALIZATION NOTE: %S is the application 

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

2018-05-25 Thread translation
commit a4c0788d2d3a5895c39f321a04577ea252c5d773
Author: Translation commit bot 
Date:   Fri May 25 09:17:05 2018 +

Update translations for tails-misc
---
 pt_PT.po | 384 +++
 1 file changed, 384 insertions(+)

diff --git a/pt_PT.po b/pt_PT.po
new file mode 100644
index 0..841e000b4
--- /dev/null
+++ b/pt_PT.po
@@ -0,0 +1,384 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: The Tor Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-03-12 19:03+0100\n"
+"PO-Revision-Date: 2013-07-25 09:07+\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Portuguese (Portugal) 
(http://www.transifex.com/otf/torproject/language/pt_PT/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_PT\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: 
config/chroot_local-includes/etc/NetworkManager/dispatcher.d/60-tor-ready.sh:39
+msgid "Tor is ready"
+msgstr ""
+
+#: 
config/chroot_local-includes/etc/NetworkManager/dispatcher.d/60-tor-ready.sh:40
+msgid "You can now access the Internet."
+msgstr ""
+
+#: config/chroot_local-includes/etc/whisperback/config.py:65
+#, python-format
+msgid ""
+"Help us fix your bug!\n"
+"Read our bug reporting instructions.\n"
+"Do not include more personal information than\n"
+"needed!\n"
+"About giving us an email address\n"
+"\n"
+"Giving us an email address allows us to contact you to clarify the problem. 
This\n"
+"is needed for the vast majority of the reports we receive as most reports\n"
+"without any contact information are useless. On the other hand it also 
provides\n"
+"an opportunity for eavesdroppers, like your email or Internet provider, to\n"
+"confirm that you are using Tails.\n"
+"\n"
+msgstr ""
+
+#: config/chroot_local-includes/usr/local/bin/electrum:57
+msgid "Persistence is disabled for Electrum"
+msgstr ""
+
+#: config/chroot_local-includes/usr/local/bin/electrum:59
+msgid ""
+"When you reboot Tails, all of Electrum's data will be lost, including your "
+"Bitcoin wallet. It is strongly recommended to only run Electrum when its "
+"persistence feature is activated."
+msgstr ""
+
+#: config/chroot_local-includes/usr/local/bin/electrum:60
+msgid "Do you want to start Electrum anyway?"
+msgstr ""
+
+#: config/chroot_local-includes/usr/local/bin/electrum:63
+#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:41
+msgid "_Launch"
+msgstr ""
+
+#: config/chroot_local-includes/usr/local/bin/electrum:64
+#: config/chroot_local-includes/usr/local/sbin/unsafe-browser:42
+msgid "_Exit"
+msgstr ""
+
+#: 
config/chroot_local-includes/usr/share/gnome-shell/extensions/status-menu-hel...@tails.boum.org/extension.js:75
+msgid "Restart"
+msgstr ""
+
+#: 
config/chroot_local-includes/usr/share/gnome-shell/extensions/status-menu-hel...@tails.boum.org/extension.js:78
+msgid "Lock screen"
+msgstr ""
+
+#: 
config/chroot_local-includes/usr/share/gnome-shell/extensions/status-menu-hel...@tails.boum.org/extension.js:81
+msgid "Power Off"
+msgstr ""
+
+#: config/chroot_local-includes/usr/local/bin/tails-about:22
+#: 
../config/chroot_local-includes/usr/share/desktop-directories/Tails.directory.in.h:1
+msgid "Tails"
+msgstr ""
+
+#: config/chroot_local-includes/usr/local/bin/tails-about:25
+#: 
../config/chroot_local-includes/usr/share/applications/tails-about.desktop.in.h:1
+msgid "About Tails"
+msgstr ""
+
+#: config/chroot_local-includes/usr/local/bin/tails-about:35
+msgid "The Amnesic Incognito Live System"
+msgstr ""
+
+#: config/chroot_local-includes/usr/local/bin/tails-about:36
+#, python-format
+msgid ""
+"Build information:\n"
+"%s"
+msgstr ""
+
+#: config/chroot_local-includes/usr/local/bin/tails-about:54
+msgid "not available"
+msgstr ""
+
+#: config/chroot_local-includes/usr/local/sbin/tails-additional-software:170
+msgid "Your additional software installation failed"
+msgstr ""
+
+#: config/chroot_local-includes/usr/local/sbin/tails-additional-software:171
+msgid ""
+"The installation failed. Please check your additional software "
+"configuration, or read the system log to understand better the problem."
+msgstr ""
+
+#: config/chroot_local-includes/usr/local/sbin/tails-additional-software:177
+msgid "Your additional software are installed"
+msgstr ""
+
+#: config/chroot_local-includes/usr/local/sbin/tails-additional-software:178
+msgid "Your additional software are ready to use."
+msgstr ""
+
+#: config/chroot_local-includes/usr/local/sbin/tails-additional-software:194
+#: config/chroot_local-includes/usr/local/sbin/tails-additional-software:204
+msgid "Your additional software upgrade failed"
+msgstr ""
+
+#: config/chroot_local-includes/usr/local/sbin/tails-additional-software:195
+msgid ""
+"The 

[tor-commits] [translation/tor-launcher-progress] Update translations for tor-launcher-progress

2018-05-25 Thread translation
commit 12341d7e213b34af42769fc1125ec0e44fedf5db
Author: Translation commit bot 
Date:   Fri May 25 09:16:46 2018 +

Update translations for tor-launcher-progress
---
 pt_PT/progress.dtd | 4 
 1 file changed, 4 insertions(+)

diff --git a/pt_PT/progress.dtd b/pt_PT/progress.dtd
new file mode 100644
index 0..9ac9ad74f
--- /dev/null
+++ b/pt_PT/progress.dtd
@@ -0,0 +1,4 @@
+
+
+
+

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


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

2018-05-25 Thread translation
commit 9b8a5ba3517790402d26afe003cdae31279c2006
Author: Translation commit bot 
Date:   Fri May 25 09:17:23 2018 +

Update translations for torbutton-brandproperties
---
 pt_PT/brand.properties | 16 
 1 file changed, 16 insertions(+)

diff --git a/pt_PT/brand.properties b/pt_PT/brand.properties
new file mode 100644
index 0..732c15741
--- /dev/null
+++ b/pt_PT/brand.properties
@@ -0,0 +1,16 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+brandShorterName=Tor Browser
+brandShortName=Tor Browser
+brandFullName=Tor Browser
+vendorShortName=Tor Project
+
+homePageSingleStartMain=Firefox Start, a fast home page with built-in search
+homePageImport=Import your home page from %S
+
+homePageMigrationPageTitle=Home Page Selection
+homePageMigrationDescription=Please select the home page you wish to use:
+
+syncBrandShortName=Sync

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


[tor-commits] [translation/tor-launcher-properties] Update translations for tor-launcher-properties

2018-05-25 Thread translation
commit 95a1a411f49acbbe6cf55fcba34af7fec03b09d5
Author: Translation commit bot 
Date:   Fri May 25 09:16:38 2018 +

Update translations for tor-launcher-properties
---
 pt_PT/torlauncher.properties | 78 
 1 file changed, 78 insertions(+)

diff --git a/pt_PT/torlauncher.properties b/pt_PT/torlauncher.properties
new file mode 100644
index 0..a4d097a76
--- /dev/null
+++ b/pt_PT/torlauncher.properties
@@ -0,0 +1,78 @@
+### Copyright (c) 2016, The Tor Project, Inc.
+### See LICENSE for licensing information.
+
+torlauncher.error_title=Tor Launcher
+
+torlauncher.tor_exited_during_startup=Tor exited during startup. This might be 
due to an error in your torrc file, a bug in Tor or another program on your 
system, or faulty hardware. Until you fix the underlying problem and restart 
Tor, Tor Browser will not start.
+torlauncher.tor_exited=Tor unexpectedly exited. This might be due to a bug in 
Tor itself, another program on your system, or faulty hardware. Until you 
restart Tor, the Tor Browser will not able to reach any websites. If the 
problem persists, please send a copy of your Tor Log to the support team.
+torlauncher.tor_exited2=Restarting Tor will not close your browser tabs.
+torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
+torlauncher.tor_failed_to_start=Tor failed to start.
+torlauncher.tor_control_failed=Failed to take control of Tor.
+torlauncher.tor_bootstrap_failed=Tor failed to establish a Tor network 
connection.
+torlauncher.tor_bootstrap_failed_details=%1$S failed (%2$S).
+
+torlauncher.unable_to_start_tor=Unable to start Tor.\n\n%S
+torlauncher.tor_missing=The Tor executable is missing.
+torlauncher.torrc_missing=The torrc file is missing and could not be created.
+torlauncher.datadir_missing=The Tor data directory does not exist and could 
not be created.
+torlauncher.password_hash_missing=Failed to get hashed password.
+
+torlauncher.failed_to_get_settings=Unable to retrieve Tor settings.\n\n%S
+torlauncher.failed_to_save_settings=Unable to save Tor settings.\n\n%S
+torlauncher.ensure_tor_is_running=Please ensure that Tor is running.
+
+torlauncher.error_proxy_addr_missing=You must specify both an IP address or 
hostname and a port number to configure Tor to use a proxy to access the 
Internet.
+torlauncher.error_proxy_type_missing=You must select the proxy type.
+torlauncher.error_bridges_missing=You must specify one or more bridges.
+torlauncher.error_default_bridges_type_missing=You must select a transport 
type for the provided bridges.
+torlauncher.error_bridgedb_bridges_missing=Please request a bridge.
+torlauncher.error_bridge_bad_default_type=No provided bridges that have the 
transport type %S are available. Please adjust your settings.
+
+torlauncher.bridge_suffix.meek-amazon=(works in China)
+torlauncher.bridge_suffix.meek-azure=(works in China)
+
+torlauncher.request_a_bridge=Request a Bridge…
+torlauncher.request_a_new_bridge=Request a New Bridge…
+torlauncher.contacting_bridgedb=Contacting BridgeDB. Please wait.
+torlauncher.captcha_prompt=Solve the CAPTCHA to request a bridge.
+torlauncher.bad_captcha_solution=The solution is not correct. Please try again.
+torlauncher.unable_to_get_bridge=Unable to obtain a bridge from BridgeDB.\n\n%S
+torlauncher.no_meek=This browser is not configured for meek, which is needed 
to obtain bridges.
+torlauncher.no_bridges_available=No bridges are available at this time. Sorry.
+
+torlauncher.connect=Connect
+torlauncher.restart_tor=Restart Tor
+torlauncher.quit=Quit
+torlauncher.quit_win=Exit
+torlauncher.done=Done
+
+torlauncher.forAssistance=For assistance, contact %S
+torlauncher.forAssistance2=For assistance, visit %S
+
+torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to 
be pasted into a text editor or an email message.
+
+torlauncher.bootstrapStatus.conn_dir=Connecting to a relay directory
+torlauncher.bootstrapStatus.handshake_dir=Establishing an encrypted directory 
connection
+torlauncher.bootstrapStatus.requesting_status=Retrieving network status
+torlauncher.bootstrapStatus.loading_status=Loading network status
+torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
+torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
+torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
+torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.handshake_or=Establishing a Tor circuit
+torlauncher.bootstrapStatus.done=Connected to the Tor network!
+
+torlauncher.bootstrapWarning.done=done
+torlauncher.bootstrapWarning.connectrefused=connection refused
+torlauncher.bootstrapWarning.misc=miscellaneous
+torlauncher.bootstrapWarning.resourcelimit=insufficient resources
+torlauncher.bootstrapWarning.identity=identity mismatch
+torlauncher.bootstrapWarning.timeout=connection timeout

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

2018-05-25 Thread translation
commit 6c3fd3020682e3e12c7a8e32d9161a778c256971
Author: Translation commit bot 
Date:   Fri May 25 09:17:32 2018 +

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

diff --git a/pt_PT/brand.dtd b/pt_PT/brand.dtd
new file mode 100644
index 0..3df1a084c
--- /dev/null
+++ b/pt_PT/brand.dtd
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+

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


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

2018-05-25 Thread translation
commit b83652fe7ce8454325441744bc741d9b9169207b
Author: Translation commit bot 
Date:   Fri May 25 09:17:14 2018 +

Update translations for abouttor-homepage
---
 pt_PT/aboutTor.dtd | 45 +
 1 file changed, 45 insertions(+)

diff --git a/pt_PT/aboutTor.dtd b/pt_PT/aboutTor.dtd
new file mode 100644
index 0..676878e27
--- /dev/null
+++ b/pt_PT/aboutTor.dtd
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+https://duckduckgo.com;>
+
+
+
+
+
+
+
+
+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/tor-launcher-network-settings] Update translations for tor-launcher-network-settings

2018-05-25 Thread translation
commit 0425e82938564e1213fff700403f4f3a2cf65065
Author: Translation commit bot 
Date:   Fri May 25 09:16:55 2018 +

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

diff --git a/pt_PT/network-settings.dtd b/pt_PT/network-settings.dtd
new file mode 100644
index 0..461514604
--- /dev/null
+++ b/pt_PT/network-settings.dtd
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

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


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

2018-05-25 Thread translation
commit 86823f7d5a56b7d80309159760eaf2b3b8405dcf
Author: Translation commit bot 
Date:   Fri May 25 09:16:29 2018 +

Update translations for mat-gui
---
 pt_PT.po | 187 +++
 1 file changed, 187 insertions(+)

diff --git a/pt_PT.po b/pt_PT.po
new file mode 100644
index 0..b46e2a412
--- /dev/null
+++ b/pt_PT.po
@@ -0,0 +1,187 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+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: 2013-02-04 18:44+\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Portuguese (Portugal) 
(http://www.transifex.com/otf/torproject/language/pt_PT/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_PT\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: mat-gui:66 mat-gui:422 mat-gui:445
+msgid "Ready"
+msgstr ""
+
+#: mat-gui:136
+msgid "Choose files"
+msgstr ""
+
+#: mat-gui:144
+msgid "Supported files"
+msgstr ""
+
+#: mat-gui:151
+msgid "All files"
+msgstr ""
+
+#: mat-gui:167 mat-gui:366 mat-gui:417 mat-gui:441 mat-gui:443
+#: data/mat.glade:200
+msgid "Clean"
+msgstr ""
+
+#: mat-gui:168
+msgid "No metadata found"
+msgstr ""
+
+#: mat-gui:170 mat-gui:419
+msgid "Dirty"
+msgstr ""
+
+#: mat-gui:176
+#, python-format
+msgid "%s's metadata"
+msgstr ""
+
+#: mat-gui:187
+msgid "Trash your meta, keep your data"
+msgstr ""
+
+#: mat-gui:192
+msgid "Website"
+msgstr ""
+
+#: mat-gui:219
+msgid "Preferences"
+msgstr ""
+
+#: mat-gui:232
+msgid "Reduce PDF quality"
+msgstr ""
+
+#: mat-gui:235
+msgid "Reduce the produced PDF size and quality"
+msgstr ""
+
+#: mat-gui:238
+msgid "Remove unsupported file from archives"
+msgstr ""
+
+#: mat-gui:241
+msgid "Remove non-supported (and so non-anonymised) file from output archive"
+msgstr ""
+
+#: mat-gui:280
+msgid "Unknown"
+msgstr ""
+
+#: mat-gui:325
+msgid "Not-supported"
+msgstr ""
+
+#: mat-gui:339
+msgid "Harmless fileformat"
+msgstr ""
+
+#: mat-gui:341
+msgid "Cant read file"
+msgstr ""
+
+#: mat-gui:343
+msgid "Fileformat not supported"
+msgstr ""
+
+#: mat-gui:346
+msgid "These files can not be processed:"
+msgstr ""
+
+#: mat-gui:351 mat-gui:380 data/mat.glade:239
+msgid "Filename"
+msgstr ""
+
+#: mat-gui:353
+msgid "Reason"
+msgstr ""
+
+#: mat-gui:365
+msgid "Non-supported files in archive"
+msgstr ""
+
+#: mat-gui:379
+msgid "Include"
+msgstr ""
+
+#: mat-gui:397
+#, python-format
+msgid "MAT is not able to clean the following files, found in the %s archive"
+msgstr ""
+
+#: mat-gui:413
+#, python-format
+msgid "Checking %s"
+msgstr ""
+
+#: mat-gui:428
+#, python-format
+msgid "Cleaning %s"
+msgstr ""
+
+#: data/mat.glade:46
+msgid "_File"
+msgstr ""
+
+#: data/mat.glade:95
+msgid "_Edit"
+msgstr ""
+
+#: data/mat.glade:141
+msgid "_Help"
+msgstr ""
+
+#: data/mat.glade:187
+msgid "Add"
+msgstr ""
+
+#: data/mat.glade:256
+msgid "State"
+msgstr ""
+
+#: data/mat.glade:294 data/mat.glade:467
+msgid "Metadata"
+msgstr ""
+
+#: data/mat.glade:354
+msgid "Name"
+msgstr ""
+
+#: data/mat.glade:368
+msgid "Content"
+msgstr ""
+
+#: data/mat.glade:398
+msgid "Supported formats"
+msgstr ""
+
+#: data/mat.glade:456
+msgid "Support"
+msgstr ""
+
+#: data/mat.glade:478
+msgid "Method"
+msgstr ""
+
+#: data/mat.glade:489
+msgid "Remaining"
+msgstr ""
+
+#: data/mat.glade:518
+msgid "Fileformat"
+msgstr ""

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


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

2018-05-25 Thread translation
commit cb547df1b445378d00d06930415c850242883647
Author: Translation commit bot 
Date:   Fri May 25 09:16:18 2018 +

Update translations for torbirdy
---
 pt_PT/torbirdy.dtd| 60 +++
 pt_PT/torbirdy.properties | 18 ++
 2 files changed, 78 insertions(+)

diff --git a/pt_PT/torbirdy.dtd b/pt_PT/torbirdy.dtd
new file mode 100644
index 0..c88803ab5
--- /dev/null
+++ b/pt_PT/torbirdy.dtd
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pt_PT/torbirdy.properties b/pt_PT/torbirdy.properties
new file mode 100644
index 0..4f645eba2
--- /dev/null
+++ b/pt_PT/torbirdy.properties
@@ -0,0 +1,18 @@
+torbirdy.name=TorBirdy
+
+torbirdy.enabled.tor=TorBirdy Enabled:Tor
+torbirdy.enabled.jondo=TorBirdy Enabled:JonDo
+torbirdy.enabled.custom=TorBirdy Enabled:Custom Proxy
+torbirdy.enabled.torification=TorBirdy Enabled:Transparent Torification
+torbirdy.enabled.whonix=TorBirdy Enabled:Whonix
+torbirdy.disabled=TorBirdy:Disabled!
+torbirdy.enabled=TorBirdy:Enabled
+
+torbirdy.email.prompt=TorBirdy has disabled Thunderbird's auto-configuration 
wizard to protect your anonymity.\n\nThe recommended security settings for %S 
have been set.\n\nYou can now configure the other account settings manually.
+
+torbirdy.email.advanced=Please note that changing the advanced settings of 
TorBirdy is NOT recommended.\n\nYou should only continue if you are sure of 
what you are doing.
+torbirdy.email.advanced.nextwarning=Show this warning next time
+torbirdy.email.advanced.title=TorBirdy Advanced Settings
+
+torbirdy.firstrun=You are now running TorBirdy.\n\nTo help protect your 
anonymity, TorBirdy will enforce the Thunderbird settings it has set, 
preventing them from being changed by you or by any add-on. There are some 
settings that can be changed and those are accessed through TorBirdy's 
preferences dialog. When TorBirdy is uninstalled or disabled, all settings that 
it changes are reset to their default values (the values prior to TorBirdy's 
install).\n\nIf you are a new user, it is recommended that you read through the 
TorBirdy website to understand what we are trying to accomplish with TorBirdy 
for our users.
+torbirdy.website=https://trac.torproject.org/projects/tor/wiki/torbirdy

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


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

2018-05-25 Thread translation
commit c2309a731e50391a816734e93707e71247e447dc
Author: Translation commit bot 
Date:   Fri May 25 09:15:57 2018 +

Update translations for liveusb-creator
---
 pt_PT/pt_PT.po | 504 +
 1 file changed, 504 insertions(+)

diff --git a/pt_PT/pt_PT.po b/pt_PT/pt_PT.po
new file mode 100644
index 0..a55b8147e
--- /dev/null
+++ b/pt_PT/pt_PT.po
@@ -0,0 +1,504 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: The Tor Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-11-10 15:57+0100\n"
+"PO-Revision-Date: 2012-10-03 17:40+\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Portuguese (Portugal) 
(http://www.transifex.com/otf/torproject/language/pt_PT/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_PT\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../tails_installer/creator.py:101
+msgid "You must run this application as root"
+msgstr ""
+
+#: ../tails_installer/creator.py:147
+msgid "Extracting live image to the target device..."
+msgstr ""
+
+#: ../tails_installer/creator.py:154
+#, python-format
+msgid "Wrote to device at %(speed)d MB/sec"
+msgstr ""
+
+#: ../tails_installer/creator.py:184
+msgid "Setting up OLPC boot file..."
+msgstr ""
+
+#: ../tails_installer/creator.py:315
+#, 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 ""
+
+#: ../tails_installer/creator.py:334
+msgid "Verifying SHA1 checksum of LiveCD image..."
+msgstr ""
+
+#: ../tails_installer/creator.py:338
+msgid "Verifying SHA256 checksum of LiveCD image..."
+msgstr ""
+
+#: ../tails_installer/creator.py:354
+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 ""
+
+#: ../tails_installer/creator.py:360
+msgid "Unknown ISO, skipping checksum verification"
+msgstr ""
+
+#: ../tails_installer/creator.py:371
+#, python-format
+msgid ""
+"Not enough free space on device.\n"
+"%dMB ISO + %dMB overlay > %dMB free space"
+msgstr ""
+
+#: ../tails_installer/creator.py:378
+#, python-format
+msgid "Creating %sMB persistent overlay"
+msgstr ""
+
+#: ../tails_installer/creator.py:439
+#, python-format
+msgid "Unable to copy %(infile)s to %(outfile)s: %(message)s"
+msgstr ""
+
+#: ../tails_installer/creator.py:453
+msgid "Removing existing Live OS"
+msgstr ""
+
+#: ../tails_installer/creator.py:462 ../tails_installer/creator.py:473
+#, python-format
+msgid "Unable to chmod %(file)s: %(message)s"
+msgstr ""
+
+#: ../tails_installer/creator.py:466
+#, python-format
+msgid "Unable to remove file from previous LiveOS: %(message)s"
+msgstr ""
+
+#: ../tails_installer/creator.py:478
+#, python-format
+msgid "Unable to remove directory from previous LiveOS: %(message)s"
+msgstr ""
+
+#: ../tails_installer/creator.py:526
+#, python-format
+msgid "Cannot find device %s"
+msgstr ""
+
+#: ../tails_installer/creator.py:695
+#, python-format
+msgid "Unable to write on %(device)s, skipping."
+msgstr ""
+
+#: ../tails_installer/creator.py:719
+#, python-format
+msgid ""
+"Some partitions of the target device %(device)s are mounted. They will be "
+"unmounted before starting the installation process."
+msgstr ""
+
+#: ../tails_installer/creator.py:762 ../tails_installer/creator.py:974
+msgid "Unknown filesystem.  Your device may need to be reformatted."
+msgstr ""
+
+#: ../tails_installer/creator.py:765 ../tails_installer/creator.py:977
+#, python-format
+msgid "Unsupported filesystem: %s"
+msgstr ""
+
+#: ../tails_installer/creator.py:782
+#, python-format
+msgid "Unknown GLib exception while trying to mount device: %(message)s"
+msgstr ""
+
+#: ../tails_installer/creator.py:786
+#, python-format
+msgid "Unable to mount device: %(message)s"
+msgstr ""
+
+#: ../tails_installer/creator.py:791
+msgid "No mount points found"
+msgstr ""
+
+#: ../tails_installer/creator.py:802
+#, python-format
+msgid "Entering unmount_device for '%(device)s'"
+msgstr ""
+
+#: ../tails_installer/creator.py:812
+#, python-format
+msgid "Unmounting mounted filesystems on '%(device)s'"
+msgstr ""
+
+#: ../tails_installer/creator.py:816
+#, python-format
+msgid "Unmounting '%(udi)s' on '%(device)s'"
+msgstr ""
+
+#: ../tails_installer/creator.py:826
+#, python-format
+msgid "Mount %s exists after unmounting"
+msgstr ""
+
+#: ../tails_installer/creator.py:839
+#, python-format
+msgid "Partitioning device %(device)s"
+msgstr ""
+
+#: ../tails_installer/creator.py:959
+#, python-format
+msgid "Unsupported device '%(device)s', please report a bug."
+msgstr ""
+
+#: 

[tor-commits] [translation/tails-persistence-setup] Update translations for tails-persistence-setup

2018-05-25 Thread translation
commit 6a0ce6aa8099dbb1642a3056b6b534d256fc9d50
Author: Translation commit bot 
Date:   Fri May 25 09:16:07 2018 +

Update translations for tails-persistence-setup
---
 pt_PT/pt_PT.po | 323 +
 1 file changed, 323 insertions(+)

diff --git a/pt_PT/pt_PT.po b/pt_PT/pt_PT.po
new file mode 100644
index 0..4b242dc06
--- /dev/null
+++ b/pt_PT/pt_PT.po
@@ -0,0 +1,323 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Tails developers
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: The Tor Project\n"
+"Report-Msgid-Bugs-To: Tails developers \n"
+"POT-Creation-Date: 2017-05-15 13:51+0200\n"
+"PO-Revision-Date: 2012-10-03 17:39+\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Portuguese (Portugal) 
(http://www.transifex.com/otf/torproject/language/pt_PT/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_PT\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:48
+msgid "Personal Data"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:50
+msgid "Keep files stored in the `Persistent' directory"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:58
+msgid "GnuPG"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:60
+msgid "GnuPG keyrings and configuration"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:68
+msgid "SSH Client"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:70
+msgid "SSH keys, configuration and known hosts"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:78
+msgid "Pidgin"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:80
+msgid "Pidgin profiles and OTR keyring"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:88
+msgid "Thunderbird"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:90
+msgid "Thunderbird profiles and locally stored email"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:98
+msgid "GNOME Keyring"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:100
+msgid "Secrets stored by GNOME Keyring"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:108
+msgid "Network Connections"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:110
+msgid "Configuration of network devices and connections"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:118
+msgid "Browser bookmarks"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:120
+msgid "Bookmarks saved in the Tor Browser"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:128
+msgid "Printers"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:130
+msgid "Printers configuration"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:138
+msgid "Bitcoin client"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:140
+msgid "Electrum's bitcoin wallet and configuration"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:148
+msgid "APT Packages"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:150
+msgid "Packages downloaded by APT"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:158
+msgid "APT Lists"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:160
+msgid "Lists downloaded by APT"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:168
+msgid "Dotfiles"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Configuration/Presets.pm:170
+msgid ""
+"Symlink into $HOME every file or directory found in the `dotfiles' directory"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Setup.pm:230
+msgid "Setup Tails persistent volume"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Setup.pm:312 ../lib/Tails/Persistence/Setup.pm:459
+msgid "Error"
+msgstr ""
+
+#: ../lib/Tails/Persistence/Setup.pm:344
+#, perl-format
+msgid "Device %s already has a persistent volume."
+msgstr ""
+
+#: ../lib/Tails/Persistence/Setup.pm:352
+#, perl-format
+msgid "Device %s has not enough unallocated space."
+msgstr ""
+
+#: ../lib/Tails/Persistence/Setup.pm:360 ../lib/Tails/Persistence/Setup.pm:374
+#, perl-format
+msgid "Device %s has no persistent volume."
+msgstr ""
+
+#: ../lib/Tails/Persistence/Setup.pm:366
+msgid ""
+"Cannot delete the persistent volume while in use. You should restart Tails "
+"without persistence."
+msgstr ""
+
+#: ../lib/Tails/Persistence/Setup.pm:385
+msgid "Persistence volume is not unlocked."
+msgstr ""
+
+#: ../lib/Tails/Persistence/Setup.pm:390
+msgid "Persistence volume is not mounted."
+msgstr ""
+
+#: ../lib/Tails/Persistence/Setup.pm:395
+msgid "Persistence volume is not readable. Permissions or ownership problems?"

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

2018-05-25 Thread translation
commit 708a02b2ebf068347986ca59e579b8b89a5ee195
Author: Translation commit bot 
Date:   Fri May 25 09:15:51 2018 +

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

diff --git a/it/https-everywhere.dtd b/it/https-everywhere.dtd
index 7f2628451..67c777b23 100644
--- a/it/https-everywhere.dtd
+++ b/it/https-everywhere.dtd
@@ -23,6 +23,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

2018-05-25 Thread translation
commit afe6ec725c4bb060950e353f30c5bfd112878121
Author: Translation commit bot 
Date:   Fri May 25 09:15:43 2018 +

Update translations for https_everywhere
---
 it/https-everywhere.dtd   |   2 +-
 pt_PT/https-everywhere.dtd|  41 
 pt_PT/https-everywhere.properties |   8 +++
 pt_PT/ssl-observatory.dtd | 101 ++
 4 files changed, 151 insertions(+), 1 deletion(-)

diff --git a/it/https-everywhere.dtd b/it/https-everywhere.dtd
index 28b387383..67c777b23 100644
--- a/it/https-everywhere.dtd
+++ b/it/https-everywhere.dtd
@@ -23,7 +23,7 @@
 
 
 
-
+
 
 
 
diff --git a/pt_PT/https-everywhere.dtd b/pt_PT/https-everywhere.dtd
new file mode 100644
index 0..1e71f2b42
--- /dev/null
+++ b/pt_PT/https-everywhere.dtd
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pt_PT/https-everywhere.properties 
b/pt_PT/https-everywhere.properties
new file mode 100644
index 0..be838311a
--- /dev/null
+++ b/pt_PT/https-everywhere.properties
@@ -0,0 +1,8 @@
+https-everywhere.menu.globalEnable = Enable HTTPS Everywhere
+https-everywhere.menu.globalDisable = Disable HTTPS Everywhere
+https-everywhere.menu.enableDisable = Enable / Disable Rules
+https-everywhere.menu.noRules = (No Rules for This Page)
+https-everywhere.menu.unknownRules = (Rules for This Page Unknown)
+https-everywhere.toolbar.hint = HTTPS Everywhere is now active. You can toggle 
it on a site-by-site basis by clicking the icon in the address bar.
+https-everywhere.migration.notification0 = In order to implement a crucial 
fix, this update resets your HTTPS Everywhere rule preferences to their default 
values.
+https-everywhere.menu.ruleset-tests = Run HTTPS Everywhere Ruleset Tests
diff --git a/pt_PT/ssl-observatory.dtd b/pt_PT/ssl-observatory.dtd
new file mode 100644
index 0..69f1cfd69
--- /dev/null
+++ b/pt_PT/ssl-observatory.dtd
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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:">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

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


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

2018-05-25 Thread translation
commit b4876d53822957476b1d35fc060d4e8e9a537fa2
Author: Translation commit bot 
Date:   Fri May 25 09:15:25 2018 +

Update translations for whisperback
---
 pt_PT/pt_PT.po | 214 +
 1 file changed, 214 insertions(+)

diff --git a/pt_PT/pt_PT.po b/pt_PT/pt_PT.po
new file mode 100644
index 0..4e78fef96
--- /dev/null
+++ b/pt_PT/pt_PT.po
@@ -0,0 +1,214 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: The Tor Project\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-03-20 12:09+\n"
+"PO-Revision-Date: 2012-02-26 16:11+\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Portuguese (Portugal) 
(http://www.transifex.com/otf/torproject/language/pt_PT/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_PT\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. XXX use a better exception
+#: ../whisperBack/whisperback.py:56
+#, python-format
+msgid "Invalid contact email: %s"
+msgstr ""
+
+#: ../whisperBack/whisperback.py:73
+#, python-format
+msgid "Invalid contact OpenPGP key: %s"
+msgstr ""
+
+#: ../whisperBack/whisperback.py:75
+msgid "Invalid contact OpenPGP public key block"
+msgstr ""
+
+#: ../whisperBack/exceptions.py:41
+#, python-format
+msgid ""
+"The %s variable was not found in any of the configuration files "
+"/etc/whisperback/config.py, ~/.whisperback/config.py, ./config.py"
+msgstr ""
+
+#: ../whisperBack/gui.py:110
+msgid "Name of the affected software"
+msgstr ""
+
+#: ../whisperBack/gui.py:112
+msgid "Exact steps to reproduce the error"
+msgstr ""
+
+#: ../whisperBack/gui.py:114
+msgid "Actual result and description of the error"
+msgstr ""
+
+#: ../whisperBack/gui.py:116
+msgid "Desired result"
+msgstr ""
+
+#: ../whisperBack/gui.py:152
+msgid "Unable to load a valid configuration."
+msgstr ""
+
+#: ../whisperBack/gui.py:218
+msgid "Sending mail..."
+msgstr ""
+
+#: ../whisperBack/gui.py:219
+msgid "Sending mail"
+msgstr ""
+
+#. pylint: disable=C0301
+#: ../whisperBack/gui.py:221
+msgid "This could take a while..."
+msgstr ""
+
+#: ../whisperBack/gui.py:236
+msgid "The contact email adress doesn't seem valid."
+msgstr ""
+
+#: ../whisperBack/gui.py:253
+msgid "Unable to send the mail: SMTP error."
+msgstr ""
+
+#: ../whisperBack/gui.py:255
+msgid "Unable to connect to the server."
+msgstr ""
+
+#: ../whisperBack/gui.py:257
+msgid "Unable to create or to send the mail."
+msgstr ""
+
+#: ../whisperBack/gui.py:260
+msgid ""
+"\n"
+"\n"
+"The bug report could not be sent, likely due to network problems. Please try 
to reconnect to the network and click send again.\n"
+"\n"
+"If it does not work, you will be offered to save the bug report."
+msgstr ""
+
+#: ../whisperBack/gui.py:273
+msgid "Your message has been sent."
+msgstr ""
+
+#: ../whisperBack/gui.py:280
+msgid "An error occured during encryption."
+msgstr ""
+
+#: ../whisperBack/gui.py:300
+#, python-format
+msgid "Unable to save %s."
+msgstr ""
+
+#: ../whisperBack/gui.py:323
+#, python-format
+msgid ""
+"The bug report could not be sent, likely due to network problems.\n"
+"\n"
+"As a work-around you can save the bug report as a file on a USB drive and try 
to send it to us at %s from your email account using another system. Note that 
your bug report will not be anonymous when doing so unless you take further 
steps yourself (e.g. using Tor with a throw-away email account).\n"
+"\n"
+"Do you want to save the bug report to a file?"
+msgstr ""
+
+#: ../whisperBack/gui.py:383 ../data/whisperback.ui.h:21
+msgid "WhisperBack"
+msgstr ""
+
+#: ../whisperBack/gui.py:384 ../data/whisperback.ui.h:2
+msgid "Send feedback in an encrypted mail."
+msgstr ""
+
+#: ../whisperBack/gui.py:387
+msgid "Copyright © 2009-2012 Tails developpers (ta...@boum.org)"
+msgstr ""
+
+#: ../whisperBack/gui.py:388
+msgid "Tails developers "
+msgstr ""
+
+#: ../whisperBack/gui.py:389
+msgid "translator-credits"
+msgstr ""
+
+#: ../whisperBack/gui.py:417
+msgid "This doesn't seem to be a valid URL or OpenPGP key."
+msgstr ""
+
+#: ../data/whisperback.ui.h:1
+msgid "Copyright © 2009-2012 ta...@boum.org"
+msgstr ""
+
+#: ../data/whisperback.ui.h:3
+msgid "https://tails.boum.org/;
+msgstr ""
+
+#: ../data/whisperback.ui.h:4
+msgid ""
+"WhisperBack - Send feedback in an encrypted mail\n"
+"Copyright (C) 2009-2012 Tails developers \n"
+"\n"
+"This program is  free software; you can redistribute  it and/or modify\n"
+"it under the  terms of the GNU General Public  License as published by\n"
+"the Free Software Foundation; either  version 3 of the License, or (at\n"
+"your option) any later version.\n"
+"\n"
+"This program  is distributed in the  hope that it will  be 

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

2018-05-25 Thread translation
commit e7eac44ce572340fe2091fc9cfae01beea0cc3e7
Author: Translation commit bot 
Date:   Fri May 25 09:15:04 2018 +

Update translations for bridgedb
---
 pt_PT/LC_MESSAGES/bridgedb.po | 380 ++
 1 file changed, 380 insertions(+)

diff --git a/pt_PT/LC_MESSAGES/bridgedb.po b/pt_PT/LC_MESSAGES/bridgedb.po
new file mode 100644
index 0..c55f0e5f9
--- /dev/null
+++ b/pt_PT/LC_MESSAGES/bridgedb.po
@@ -0,0 +1,380 @@
+# Translations template for BridgeDB.
+# Copyright (C) 2015 'The Tor Project, Inc.'
+# This file is distributed under the same license as the BridgeDB project.
+# 
+# Translators:
+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: 2011-02-19 16:53+\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Portuguese (Portugal) 
(http://www.transifex.com/otf/torproject/language/pt_PT/)\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: pt_PT\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 ""
+
+#: bridgedb/https/templates/base.html:79
+msgid "Report a Bug"
+msgstr ""
+
+#: bridgedb/https/templates/base.html:82
+msgid "Source Code"
+msgstr ""
+
+#: bridgedb/https/templates/base.html:85
+msgid "Changelog"
+msgstr ""
+
+#: bridgedb/https/templates/base.html:88
+msgid "Contact"
+msgstr ""
+
+#: bridgedb/https/templates/bridges.html:35
+msgid "Select All"
+msgstr ""
+
+#: bridgedb/https/templates/bridges.html:40
+msgid "Show QRCode"
+msgstr ""
+
+#: bridgedb/https/templates/bridges.html:52
+msgid "QRCode for your bridge lines"
+msgstr ""
+
+#. 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 ""
+
+#: bridgedb/https/templates/bridges.html:68
+msgid "It seems there was an error getting your QRCode."
+msgstr ""
+
+#: 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 ""
+
+#: bridgedb/https/templates/bridges.html:131
+msgid "There currently aren't any bridges available..."
+msgstr ""
+
+#: bridgedb/https/templates/bridges.html:132
+#, python-format
+msgid ""
+" Perhaps you should try %s going back %s and choosing a different bridge "
+"type!"
+msgstr ""
+
+#: bridgedb/https/templates/index.html:11
+#, python-format
+msgid "Step %s1%s"
+msgstr ""
+
+#: bridgedb/https/templates/index.html:13
+#, python-format
+msgid "Download %s Tor Browser %s"
+msgstr ""
+
+#: bridgedb/https/templates/index.html:25
+#, python-format
+msgid "Step %s2%s"
+msgstr ""
+
+#: bridgedb/https/templates/index.html:27
+#, python-format
+msgid "Get %s bridges %s"
+msgstr ""
+
+#: bridgedb/https/templates/index.html:36
+#, python-format
+msgid "Step %s3%s"
+msgstr ""
+
+#: bridgedb/https/templates/index.html:38
+#, python-format
+msgid "Now %s add the bridges to Tor Browser %s"
+msgstr ""
+
+#. 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 ""
+
+#: bridgedb/https/templates/options.html:51
+msgid "Advanced Options"
+msgstr ""
+
+#: bridgedb/https/templates/options.html:86
+msgid "No"
+msgstr ""
+
+#: bridgedb/https/templates/options.html:87
+msgid "none"
+msgstr ""
+
+#. TRANSLATORS: Please make sure the '%s' surrounding single letters at the
+#. beginning of words are present in your final translation. Thanks!
+#. TRANSLATORS: Translate "Yes!" as in "Yes! I do need IPv6 addresses."
+#: bridgedb/https/templates/options.html:124
+#, python-format
+msgid "%sY%ses!"
+msgstr ""
+
+#. TRANSLATORS: Please make sure the '%s' surrounding single letters at the
+#. beginning of words are present in your final translation. Thanks!
+#. TRANSLATORS: Please do NOT translate the word "bridge"!
+#: 

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

2018-05-25 Thread translation
commit a98293833e953e93606a99e619bb062e97268ce8
Author: Translation commit bot 
Date:   Fri May 25 09:15:15 2018 +

Update translations for torcheck
---
 pt_PT/torcheck.po | 102 ++
 1 file changed, 102 insertions(+)

diff --git a/pt_PT/torcheck.po b/pt_PT/torcheck.po
new file mode 100644
index 0..266bde67d
--- /dev/null
+++ b/pt_PT/torcheck.po
@@ -0,0 +1,102 @@
+# TorCheck gettext template
+# Copyright (C) 2008-2013 The Tor Project, Inc
+# 
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: The Tor Project\n"
+"POT-Creation-Date: 2012-02-16 20:28+PDT\n"
+"PO-Revision-Date: 2010-11-30 04:59+\n"
+"Last-Translator: Appelbaum \n"
+"Language-Team: Portuguese (Portugal) 
(http://www.transifex.com/otf/torproject/language/pt_PT/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: pygettext.py 1.5\n"
+"Language: pt_PT\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Congratulations. This browser is configured to use Tor."
+msgstr ""
+
+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 ""
+
+msgid "There is a security update available for Tor Browser."
+msgstr ""
+
+msgid ""
+"https://www.torproject.org/download/download-easy.html\;>Click "
+"here to go to the download page"
+msgstr ""
+
+msgid "Sorry. You are not using Tor."
+msgstr ""
+
+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 ""
+
+msgid "Sorry, your query failed or an unexpected response was received."
+msgstr ""
+
+msgid ""
+"A temporary service outage prevents us from determining if your source IP "
+"address is a https://www.torproject.org/\;>Tor node."
+msgstr ""
+
+msgid "Your IP address appears to be: "
+msgstr ""
+
+msgid "Are you using Tor?"
+msgstr ""
+
+msgid "This page is also available in the following languages:"
+msgstr ""
+
+msgid "For more information about this exit relay, see:"
+msgstr ""
+
+msgid ""
+"The Tor Project is a US 501(c)(3) non-profit dedicated to the research, "
+"development, and education of online anonymity and privacy."
+msgstr ""
+
+msgid "Learn More "
+msgstr ""
+
+msgid "Go"
+msgstr ""
+
+msgid "Short User Manual"
+msgstr ""
+
+msgid "Donate to Support Tor"
+msgstr ""
+
+msgid "Tor Q Site"
+msgstr ""
+
+msgid "Volunteer"
+msgstr ""
+
+msgid "JavaScript is enabled."
+msgstr ""
+
+msgid "JavaScript is disabled."
+msgstr ""
+
+msgid "However, it does not appear to be Tor Browser."
+msgstr ""
+
+msgid "Run a Relay"
+msgstr ""
+
+msgid "Stay Anonymous"
+msgstr ""

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


[tor-commits] [tor-browser-build/master] Bug 25975: Get a Rust cross-compiler for macOS

2018-05-25 Thread gk
commit e7f9f6f11e45d1ba15fbbb183ef1ae8b0c3b20c5
Author: Georg Koppen 
Date:   Fri May 25 06:53:05 2018 +

Bug 25975: Get a Rust cross-compiler for macOS
---
 projects/rust/build  | 39 +--
 projects/rust/config | 12 +---
 2 files changed, 46 insertions(+), 5 deletions(-)

diff --git a/projects/rust/build b/projects/rust/build
index e20df55..4c81ad8 100644
--- a/projects/rust/build
+++ b/projects/rust/build
@@ -10,10 +10,45 @@ cd /var/tmp/dist/rust-[% c('var/prev_version') %]-[% 
c('arch') %]-unknown-linux-
 ./install.sh --prefix=$distdir-rust-old
 export PATH="$distdir-rust-old/bin:$PATH"
 
-[% IF c("var/linux") %]
-  [% pc('gcc', 'var/setup', { compiler_tarfile => c('input_files_by_name/gcc') 
}) %]
+[% IF ! c("var/windows") %]
+  [% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => 
c('input_files_by_name/' _ c('var/compiler')) }) %]
 [% END -%]
 
+[% IF c("var/osx") %]
+  # We need to clear `CC` and `LDFLAGS` as they are used for the host platform
+  # (i.e. Linux).
+  unset CC
+  unset LDFLAGS
+  # Target 10.6 as our toolchain does. Without this explicit declaration Bad
+  # Things will happen, as a lot of dependent code then assumes that the
+  # official macOS target, x86_64-apple-darwin, essentially means 10.4.
+  export MACOSX_DEPLOYMENT_TARGET=10.6
+  # The Rust target for macOS is x86_64-apple-darwin, yet our toolchain is 
built
+  # for x86_64-apple-darwin10. We can't mix those targets as clang gets 
confused
+  # that way. Changing the Rust target to x86_64-apple-darwin10 would require a
+  # fair amount of patching, thus we create symlinks to prvoide Rust with the
+  # necessary tools while using our toolchain underneath, targeting 10.6.
+  cd $cctoolsdir
+  for f in `ls x86_64-apple-darwin10-*`; do
+ln -s $f ${f//x86_64-apple-darwin10/x86_64-apple-darwin}
+  done
+  cd ..
+  ln -s x86_64-apple-darwin10 x86_64-apple-darwin
+  mkdir -p $distdir/helper
+
+  # We need to adapt our CFLAGS and make sure our flags are passed down to all
+  # dependencies. Using `CFLAGS_x86_apple-darwin` did not do the trick, so 
resort
+  # to a wrapper script.
+  cat > $distdir/helper/x86_64-apple-darwin-clang << 'EOF'
+#!/bin/sh
+BASEDIR=/var/tmp/dist/macosx-toolchain
+$BASEDIR/cctools/bin/x86_64-apple-darwin-clang -target x86_64-apple-darwin 
-mlinker-version=136 -B $BASEDIR/cctools/bin -isysroot $BASEDIR/SDK/ 
-Wl,-syslibroot,$BASEDIR/SDK/ -Wl,-dead_strip -Wl,-pie "$@"
+EOF
+
+  chmod +x $distdir/helper/x86_64-apple-darwin-clang
+  export PATH=$distdir/helper:$PATH
+[% END %]
+
 cd $rootdir
 mkdir /var/tmp/build
 tar -C /var/tmp/build -xf  [% c('input_files_by_name/rust') %]
diff --git a/projects/rust/config b/projects/rust/config
index 49fc3ab..ae2290b 100644
--- a/projects/rust/config
+++ b/projects/rust/config
@@ -41,13 +41,19 @@ targets:
   # Rust pieces compiled.
   configure_opt: --enable-local-rust --enable-vendor --enable-extended 
--release-channel=stable --sysconfdir=etc --target=[% c("arch") 
%]-unknown-linux-gnu --set=target.[% c("arch") %]-unknown-linux-gnu.cc=gcc
 
+  osx-x86_64:
+var:
+  arch_deps:
+- libssl-dev
+- pkg-config
+  configure_opt: --enable-local-rust --enable-vendor --enable-extended 
--release-channel=stable --sysconfdir=etc --target=x86_64-apple-darwin 
--set=target.x86_64-apple-darwin.cc=x86_64-apple-darwin-clang
+
 input_files:
   - project: container-image
   - project: cmake
 name: cmake
-  - project: gcc
-name: gcc
-enable: '[% c("var/linux") %]'
+  - project: '[% c("var/compiler") %]'
+name: '[% c("var/compiler") %]'
   - URL: 'https://static.rust-lang.org/dist/rustc-[% c("version") 
%]-src.tar.gz'
 name: rust
 sig_ext: asc

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


[tor-commits] [torbutton/master] Bug 26100: Don't use console object for logging

2018-05-25 Thread gk
commit 482abfb95de85bce98043338d8f7fcad9f6b7845
Author: Arthur Edelstein 
Date:   Thu May 17 23:05:44 2018 -0700

Bug 26100: Don't use console object for logging
---
 src/modules/tor-control-port.js | 11 +++
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/src/modules/tor-control-port.js b/src/modules/tor-control-port.js
index 2b75e22..2c39936 100644
--- a/src/modules/tor-control-port.js
+++ b/src/modules/tor-control-port.js
@@ -26,14 +26,9 @@ Cu.import("resource://gre/modules/Services.jsm");
 
 // __log__.
 // Logging function
-let log;
-if ((typeof console) !== "undefined") {
-  log = x => console.log(typeof(x) === "string" ? 
x.trimRight().replace(/\r\n/g, "\n") : JSON.stringify(x));
-} else {
-  let logger = Cc["@torproject.org/torbutton-logger;1"]
- 
.getService(Components.interfaces.nsISupports).wrappedJSObject;
-  log = x => logger.eclog(3, x.trimRight().replace(/\r\n/g, "\n"));
-}
+let logger = Cc["@torproject.org/torbutton-logger;1"]
+   .getService(Components.interfaces.nsISupports).wrappedJSObject;
+let log = x => logger.eclog(3, x.trimRight().replace(/\r\n/g, "\n"));
 
 // ### announce this file
 log("Loading tor-control-port.js\n");

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


[tor-commits] [torbutton/master] Bug 26100: Update about:tor code after changes in the resource and js

2018-05-25 Thread gk
commit e37b97e4af14fdbccfcb485f6b4ecf136aeb2e18
Author: Igor Oliveira 
Date:   Thu May 17 16:13:47 2018 -0300

Bug 26100: Update about:tor code after changes in the resource and js
code

- Move all the resource files to the same directory and change the 
chrome.manifest
file to allow them to be accessible by the chrome.[1]

- jsversion.h was removed, we don't need to specify the JS version 
anymore.[2]

- Since Torbutton has now logic to load the default preferences and we don't
know when a string is a complex data, for the sake of simplicity, we are
now retiring non-localized.properties and hard coding the about:tor in the
preferences file.

- Use tabbrowser-initialBrowser instead of content

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=863246
[2] https://bugzilla.mozilla.org/show_bug.cgi?id=1440043
---
 src/chrome.manifest   |   1 +
 src/chrome/content/aboutTor/aboutTor.xhtml|   4 ++--
 src/chrome/content/locale/non-localized.properties|   6 --
 src/chrome/content/torbutton.js   |   2 +-
 src/chrome/skin/aboutTor.css  |  14 +++---
 .../{content/aboutTor => skin}/onionArrow-extension.png   | Bin
 .../{content/aboutTor => skin}/onionArrow-leftBend.png| Bin
 .../{content/aboutTor => skin}/onionArrow-rightBend.png   | Bin
 .../{content/aboutTor => skin}/onionArrow-short.png   | Bin
 src/chrome/{content/aboutTor => skin}/search.png  | Bin
 src/chrome/{content/aboutTor => skin}/tor-off.png | Bin
 src/chrome/{content/aboutTor => skin}/tor-on.png  | Bin
 src/defaults/preferences/preferences.js   |   2 +-
 13 files changed, 12 insertions(+), 17 deletions(-)

diff --git a/src/chrome.manifest b/src/chrome.manifest
index 230a1e6..7b57d39 100644
--- a/src/chrome.manifest
+++ b/src/chrome.manifest
@@ -6,6 +6,7 @@ overlay 
chrome://messenger/content/messengercompose/messengercompose.xul chrome:
 overlay about:addons chrome://torbutton/content/torbutton-extensions.xul
 overlay chrome://mozapps/content/extensions/extensions.xul 
chrome://torbutton/content/torbutton-extensions.xul
 resource torbutton ./
+resource torbutton-assets resource://torbutton/chrome/skin/ 
contentaccessible=yes
 
 # browser branding
 override chrome://branding/locale/brand.dtd chrome://torbutton/locale/brand.dtd
diff --git a/src/chrome/content/aboutTor/aboutTor.xhtml 
b/src/chrome/content/aboutTor/aboutTor.xhtml
index 0d8f680..5cb2a60 100644
--- a/src/chrome/content/aboutTor/aboutTor.xhtml
+++ b/src/chrome/content/aboutTor/aboutTor.xhtml
@@ -20,8 +20,8 @@
 
   
   

[tor-commits] [torbutton/master] Bug 26100: baseMenuOverlay.xul was removed by Mozilla

2018-05-25 Thread gk
commit 5905b318d348f608f6c8e59dccac28015aea6672
Author: Igor Oliveira 
Date:   Thu May 17 14:28:58 2018 -0300

Bug 26100: baseMenuOverlay.xul was removed by Mozilla

Now it is inline in the browser.xul[1].

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1441378
---
 src/chrome.manifest | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/chrome.manifest b/src/chrome.manifest
index f72fffa..230a1e6 100644
--- a/src/chrome.manifest
+++ b/src/chrome.manifest
@@ -13,7 +13,7 @@ override chrome://branding/locale/brand.properties 
chrome://torbutton/locale/bra
 overlay chrome://browser/content/aboutDialog.xul 
chrome://torbutton/content/aboutDialog.xul
 
 # UI customization
-overlay chrome://browser/content/baseMenuOverlay.xul 
chrome://torbutton/content/menu-overlay.xul
+overlay chrome://browser/content/browser.xul 
chrome://torbutton/content/menu-overlay.xul
 overlay about:preferences chrome://torbutton/content/privacy-prefs-overlay.xul
 overlay chrome://browser/content/browser.xul 
chrome://torbutton/content/tor-circuit-display.xul
 



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


[tor-commits] [torbutton/master] Bug 26100: Migrate general.useragent.locale to intl.locale.requested

2018-05-25 Thread gk
commit 399d2ba81505e4a74535b61f60563f4a9c2a8f6d
Author: Igor Oliveira 
Date:   Wed Feb 28 13:43:48 2018 -0300

Bug 26100: Migrate general.useragent.locale to intl.locale.requested

intl.locale.requested is the new way that Gecko handles locales.
See https://bugzilla.mozilla.org/show_bug.cgi?id=1414390
---
 src/chrome/content/aboutTor/aboutTor-content.js |  6 --
 src/chrome/content/menu-overlay.xul |  2 +-
 src/chrome/content/preferences.js   |  5 -
 src/chrome/content/torbutton.js | 10 +-
 src/modules/utils.js| 10 --
 5 files changed, 22 insertions(+), 11 deletions(-)

diff --git a/src/chrome/content/aboutTor/aboutTor-content.js 
b/src/chrome/content/aboutTor/aboutTor-content.js
index ec515bb..1a8d5cf 100644
--- a/src/chrome/content/aboutTor/aboutTor-content.js
+++ b/src/chrome/content/aboutTor/aboutTor-content.js
@@ -67,8 +67,10 @@ var AboutTorListener = {
 
   onPageLoad: function() {
 // Arrange to update localized text and links.
-bindPrefAndInit("general.useragent.locale", aNewVal => {
-  this.onLocaleChange(aNewVal);
+bindPrefAndInit("intl.locale.requested", aNewVal => {
+  if (aNewVal !== null) {
+this.onLocaleChange(aNewVal);
+  }
 });
 
 // Add message and event listeners.
diff --git a/src/chrome/content/menu-overlay.xul 
b/src/chrome/content/menu-overlay.xul
index 53654c5..f6c6fbd 100644
--- a/src/chrome/content/menu-overlay.xul
+++ b/src/chrome/content/menu-overlay.xul
@@ -22,6 +22,6 @@
   position="1"
   label="_user_manual.label;"
   accesskey="_user_manual.accesskey;"
-  oncommand="gBrowser.selectedTab = 
gBrowser.addTab('https://tb-manual.torproject.org/' + 
Services.prefs.getCharPref('general.useragent.locale'))" />
+  oncommand="gBrowser.selectedTab = 
gBrowser.addTab('https://tb-manual.torproject.org/' + 
Services.locale.getRequestedLocale())" />
   
 
diff --git a/src/chrome/content/preferences.js 
b/src/chrome/content/preferences.js
index 721ff46..36c8818 100644
--- a/src/chrome/content/preferences.js
+++ b/src/chrome/content/preferences.js
@@ -5,6 +5,9 @@ let { utils: Cu } = Components;
 let { getBoolPref, getIntPref, setBoolPref, setIntPref, getCharPref } =
 Cu.import("resource://gre/modules/Services.jsm", {}).Services.prefs;
 
+let { getLocale } =
+Cu.import("resource://torbutton/modules/utils.js", {});
+
 // Description elements have the follow names.
 const descNames =
   [, "desc_safest", "desc_safer", "desc_standard"];
@@ -67,7 +70,7 @@ function torbutton_set_learn_more_links() {
   let show_manual = window.opener.torbutton_show_torbrowser_manual();
   let locale = ""
   if (show_manual) {
-locale = getCharPref('general.useragent.locale');
+locale = getLocale();
   }
   let links = linkNames.map(name => document.getElementById(name));
   links.forEach(link => {;
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index 2f1f689..d744d15 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -10,7 +10,7 @@
 let { LoadContextInfo } = 
Cu.import('resource://gre/modules/LoadContextInfo.jsm', {});
 let { Services } = Cu.import("resource://gre/modules/Services.jsm", {});
 let { showDialog } = Cu.import("resource://torbutton/modules/utils.js", {});
-let { unescapeTorString } = Cu.import("resource://torbutton/modules/utils.js", 
{});
+let { getLocale, unescapeTorString } = 
Cu.import("resource://torbutton/modules/utils.js", {});
 let SecurityPrefs = 
Cu.import("resource://torbutton/modules/security-prefs.js", {});
 let { bindPrefAndInit, observe } = 
Cu.import("resource://torbutton/modules/utils.js", {});
 
@@ -818,14 +818,14 @@ function torbutton_update_toolbutton()
 // Bug 1506 P3: Support code for language+uagent spoofing
 function torbutton_get_general_useragent_locale() {
try {
-var locale = m_tb_prefs.getCharPref("general.useragent.locale");
+const locale = getLocale();
 if (/chrome:\/\//.test(locale)) {
-return m_tb_prefs.getComplexValue("general.useragent.locale",
+return m_tb_prefs.getComplexValue("intl.locale.requested",
Components.interfaces.nsIPrefLocalizedString).data;
 }
 return locale;
 } catch(err) {
-torbutton_log(4, "Error while getting general.useragent.locale:" + 
err);
+torbutton_log(4, "Error while getting locale" + err);
 return 'en-US';
 }
 }
@@ -2380,7 +2380,7 @@ function torbutton_show_torbrowser_manual() {
 // torbutton_show_torbrowser_manual() returns true.
 function torbutton_init_user_manual_links() {
   let menuitem = document.getElementById("torBrowserUserManual");
-  bindPrefAndInit("general.useragent.locale", val => {
+  bindPrefAndInit("intl.locale.requested", val => {
 menuitem.hidden = !torbutton_show_torbrowser_manual();
   

[tor-commits] [torbutton/master] Bug 26100: Load extension preferences during initialization

2018-05-25 Thread gk
commit e5ecb22e0f4bfec84935f8266cc1520642301660
Author: Igor Oliveira 
Date:   Mon May 14 17:56:18 2018 -0300

Bug 26100: Load extension preferences during initialization

Mozilla removed the code that loads the default extension
preferences[1].

Thus we need to load them in the startup time.

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1413413
---
 src/chrome/content/torbutton.js   |  8 
 src/components/cookie-jar-selector.js |  4 
 src/components/domain-isolator.js | 11 ---
 src/components/dragDropFilter.js  |  2 ++
 src/components/startup-observer.js|  9 ++---
 src/components/torbutton-logger.js| 19 ++-
 src/modules/default-prefs.js  | 30 ++
 7 files changed, 64 insertions(+), 19 deletions(-)

diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index cf39dc2..40d63fd 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -1217,7 +1217,7 @@ function torbutton_do_new_identity() {
   torbutton_log(3, "New Identity: Syncing prefs");
 
   // Force prefs to be synced to disk
-  m_tb_prefs.savePrefFile(null);
+  Services.prefs.savePrefFile(null);
 
   torbutton_log(3, "New Identity: Clearing permissions");
 
@@ -1634,7 +1634,7 @@ function torbutton_update_disk_prefs() {
 } catch (e) {}
 
 // Force prefs to be synced to disk
-m_tb_prefs.savePrefFile(null);
+Services.prefs.savePrefFile(null);
 }
 
 function torbutton_update_fingerprinting_prefs() {
@@ -1667,7 +1667,7 @@ function torbutton_update_fingerprinting_prefs() {
 m_tb_prefs.setBoolPref("extensions.torbutton.resize_new_windows", mode);
 
 // Force prefs to be synced to disk
-m_tb_prefs.savePrefFile(null);
+Services.prefs.savePrefFile(null);
 }
 
 function torbutton_update_isolation_prefs() {
@@ -1682,7 +1682,7 @@ function torbutton_update_isolation_prefs() {
 m_tb_prefs.setBoolPref("security.enable_tls_session_tickets", !isolate);
 
 // Force prefs to be synced to disk
-m_tb_prefs.savePrefFile(null);
+Services.prefs.savePrefFile(null);
 }
 
 // This function closes all XUL browser windows except this one. For this
diff --git a/src/components/cookie-jar-selector.js 
b/src/components/cookie-jar-selector.js
index 4f137d7..8456da3 100644
--- a/src/components/cookie-jar-selector.js
+++ b/src/components/cookie-jar-selector.js
@@ -19,6 +19,10 @@ const kMODULE_CONTRACTID = 
"@torproject.org/cookie-jar-selector;1";
 const kMODULE_CID = Components.ID("e6204253-b690-4159-bfe8-d4eedab6b3be");
 
 const Cr = Components.results;
+const Cu = Components.utils;
+
+Cu.import("resource://torbutton/modules/default-prefs.js", {})
+  .ensureDefaultPrefs();
 
 // XXX: Must match the definition in torcookie.js :/
 function 
Cookie(number,name,value,isDomain,host,rawHost,HttpOnly,path,isSecure,isSession,
diff --git a/src/components/domain-isolator.js 
b/src/components/domain-isolator.js
index a52..a698439 100644
--- a/src/components/domain-isolator.js
+++ b/src/components/domain-isolator.js
@@ -16,6 +16,12 @@ const Cc = Components.classes, Ci = Components.interfaces, 
Cu = Components.utils
 let logger = Cc["@torproject.org/torbutton-logger;1"]
.getService(Components.interfaces.nsISupports).wrappedJSObject;
 
+let { ensureDefaultPrefs } = 
Cu.import("resource://torbutton/modules/default-prefs.js", {});
+ensureDefaultPrefs();
+
+// Import Services object
+Cu.import("resource://gre/modules/Services.jsm");
+
 // Import crypto object (FF 37+).
 Cu.importGlobalProperties(["crypto"]);
 
@@ -165,6 +171,7 @@ Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 function DomainIsolator() {
 this.wrappedJSObject = this;
 }
+
 // Firefox component requirements
 DomainIsolator.prototype = {
   QueryInterface: XPCOMUtils.generateQI([Ci.nsISupports, Ci.nsIObserver]),
@@ -175,9 +182,7 @@ DomainIsolator.prototype = {
 if (topic === "profile-after-change") {
   logger.eclog(3, "domain isolator: set up isolating circuits by domain");
 
-  let prefs =  Cc["@mozilla.org/preferences-service;1"]
-  .getService(Ci.nsIPrefBranch);
-  if (prefs.getBoolPref("extensions.torbutton.use_nontor_proxy")) {
+  if (Services.prefs.getBoolPref("extensions.torbutton.use_nontor_proxy")) 
{
 tor.isolationEnabled = false;
   }
   tor.isolateCircuitsByDomain();
diff --git a/src/components/dragDropFilter.js b/src/components/dragDropFilter.js
index 22dde86..916b835 100644
--- a/src/components/dragDropFilter.js
+++ b/src/components/dragDropFilter.js
@@ -9,6 +9,8 @@ const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cu = Components.utils;
 
+Cu.import("resource://torbutton/modules/default-prefs.js", 
{}).ensureDefaultPrefs();
+
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
 // Module specific constants
diff --git a/src/components/startup-observer.js 

[tor-commits] [torbutton/master] Bug 26100: Use inputStream.asyncWait instead of nsIInputStreamPump

2018-05-25 Thread gk
commit 2764f9a0019b1eb8704e6748bfa46b9f58aaf74a
Author: Arthur Edelstein 
Date:   Thu May 17 22:35:51 2018 -0700

Bug 26100: Use inputStream.asyncWait instead of nsIInputStreamPump
---
 src/modules/tor-control-port.js | 39 +++
 1 file changed, 15 insertions(+), 24 deletions(-)

diff --git a/src/modules/tor-control-port.js b/src/modules/tor-control-port.js
index 3491efc..2b75e22 100644
--- a/src/modules/tor-control-port.js
+++ b/src/modules/tor-control-port.js
@@ -68,35 +68,26 @@ io.asyncSocketStreams = function (ipcFile, host, port) {
 };
 
 // __io.pumpInputStream(scriptableInputStream, onInputData, onError)__.
-// Run an "input stream pump" that takes an input stream and
-// asynchronously pumps incoming data to the onInputData callback.
+// Take an input stream and asynchronously pass data to the onInputData 
callback.
 io.pumpInputStream = function (inputStream, onInputData, onError) {
   // Wrap raw inputStream with a "ScriptableInputStream" so we can read 
incoming data.
   let ScriptableInputStream = Components.Constructor(
 "@mozilla.org/scriptableinputstream;1", "nsIScriptableInputStream", 
"init"),
   scriptableInputStream = new ScriptableInputStream(inputStream),
-  // A private method to read all data available on the input stream.
-  readAll = function() {
-return scriptableInputStream.read(scriptableInputStream.available());
-  },
-  pump = Cc["@mozilla.org/network/input-stream-pump;1"]
-   .createInstance(Components.interfaces.nsIInputStreamPump);
-  // Start the pump.
-  pump.init(inputStream, -1, -1, 0, 0, true);
-  // Tell the pump to read all data whenever it is available, and pass the data
-  // to the onInputData callback. The first argument to asyncRead implements
-  // nsIStreamListener.
-  pump.asyncRead({ onStartRequest: function (request, context) { },
-   onStopRequest: function (request, context, code) { },
-   onDataAvailable : function (request, context, stream, 
offset, count) {
- try {
-   onInputData(readAll());
- } catch (error) {
-   // readAll() or onInputData(...) has thrown an error.
-   // Notify calling code through onError.
-   onError(error);
- }
-   } }, null);
+  awaitNextChunk = function () {
+inputStream.asyncWait({
+  onInputStreamReady: (stream) => {
+try {
+  let chunk = 
scriptableInputStream.read(scriptableInputStream.available());
+  onInputData(chunk);
+  awaitNextChunk();
+} catch (err) {
+  onError(err);
+}
+  }
+}, 0, 0, Services.tm.currentThread);
+  };
+  awaitNextChunk();
 };
 
 // __io.asyncSocket(ipcFile, host, port, onInputData, onError)__.



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


[tor-commits] [torbutton/master] Bug 26100: Use new asynchronous applyFilter

2018-05-25 Thread gk
commit d07608265a3720f6f0a35f1e1bfa3c4d08706861
Author: Arthur Edelstein 
Date:   Wed May 16 13:48:39 2018 -0700

Bug 26100: Use new asynchronous applyFilter

applyFilter changed its signature to include a callback
object:
https://hg.mozilla.org/mozilla-central/rev/77c14093bc69
---
 src/components/domain-isolator.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/components/domain-isolator.js 
b/src/components/domain-isolator.js
index a698439..fc28703 100644
--- a/src/components/domain-isolator.js
+++ b/src/components/domain-isolator.js
@@ -43,8 +43,8 @@ mozilla.protocolProxyService = 
Cc["@mozilla.org/network/protocol-proxy-service;1
 // for the given channel, and should return a new Proxy or list of Proxies.
 mozilla.registerProxyChannelFilter = function (filterFunction, positionIndex) {
   let proxyFilter = {
-applyFilter : function (aProxyService, aChannel, aProxy) {
-  return filterFunction(aChannel, aProxy);
+applyFilter : function (aProxyService, aChannel, aProxy, aCallback) {
+  aCallback.onProxyFilterResult(filterFunction(aChannel, aProxy));
 }
   };
   mozilla.protocolProxyService.registerChannelFilter(proxyFilter, 
positionIndex);



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


[tor-commits] [torbutton/master] Bug 26100: Update deprecated JS and CSS code

2018-05-25 Thread gk
commit 3047f3fcb9c606a659c6e7ffa7e4d97e33cd0ebe
Author: Igor Oliveira 
Date:   Wed Feb 28 17:38:59 2018 -0300

Bug 26100: Update deprecated JS and CSS code

- catch statement can not have if statements.
  https://bugzilla.mozilla.org/show_bug.cgi?id=1228841
- Use 0o to represent octal numbers.
  https://bugzilla.mozilla.org/show_bug.cgi?id=1263074
- remove -moz- prefix in css
  https://bugzilla.mozilla.org/show_bug.cgi?id=1270406
---
 src/chrome/content/torbutton.js | 9 ++---
 src/chrome/skin/aboutTor.css| 6 +++---
 src/chrome/skin/tor-circuit-display.css | 4 ++--
 src/components/cookie-jar-selector.js   | 4 ++--
 4 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index d744d15..4b15c5f 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -1140,9 +1140,12 @@ function torbutton_do_new_identity() {
   // #5715 also makes this synchronous. So we pass a null callback.
   try {
 appCacheStorage.asyncEvictStorage(null);
-  } catch (err if err.name == 'NS_ERROR_NOT_AVAILABLE') {
-// We ignore "not available" errors because they occur if a cache
-// has not been used, e.g., if no browsing has been done.
+  } catch (err) {
+ // We ignore "not available" errors because they occur if a cache
+ // has not been used, e.g., if no browsing has been done.
+ if (err.name !== 'NS_ERROR_NOT_AVAILABLE') {
+ throw err;
+ }
   }
 }
   } catch(e) {
diff --git a/src/chrome/skin/aboutTor.css b/src/chrome/skin/aboutTor.css
index 7ba7e7c..873f6d0 100644
--- a/src/chrome/skin/aboutTor.css
+++ b/src/chrome/skin/aboutTor.css
@@ -25,11 +25,11 @@ body {
 }
 
 body {
-  background-image: -moz-linear-gradient(top, #ff, #ff 10%, #dd 
50%, #dd);
+  background-image: linear-gradient(to bottom, #ff, #ff 10%, #dd 
50%, #dd);
 }
 
 body[toron] {
-  background-image: -moz-linear-gradient(top, #ff, #ff 10%, #d5ffd5 
50%, #d5ffd5);
+  background-image: linear-gradient(to bottom, #ff, #ff 10%, #d5ffd5 
50%, #d5ffd5);
 }
 
 /* Hide the entire document by default to avoid showing the incorrect
@@ -221,7 +221,7 @@ body .top div.hideIfTorIsUpToDate h1 {
   padding: 5px 0 0 22px;
 }
 
-#middle ul:-moz-dir(rtl) {
+#middle ul:dir(rtl) {
   padding: 5px 22px 0 0;
 }
 
diff --git a/src/chrome/skin/tor-circuit-display.css 
b/src/chrome/skin/tor-circuit-display.css
index 640d595..c9e682a 100644
--- a/src/chrome/skin/tor-circuit-display.css
+++ b/src/chrome/skin/tor-circuit-display.css
@@ -21,7 +21,7 @@ and lines drawn between them to represent Tor network 
inter-relay connections.
   width: 100%;
 }
 
-#circuit-display-content:-moz-locale-dir(rtl) {
+#circuit-display-content:dir(rtl) {
   background-position: calc(100% - 1em) 1em;
 }
 
@@ -65,7 +65,7 @@ ul#circuit-display-nodes li {
   white-space: nowrap;
 }
 
-ul#circuit-display-nodes li:-moz-locale-dir(rtl) {
+ul#circuit-display-nodes li:dir(rtl) {
   background-position: right center;
 }
 
diff --git a/src/components/cookie-jar-selector.js 
b/src/components/cookie-jar-selector.js
index f6d579e..4f137d7 100644
--- a/src/components/cookie-jar-selector.js
+++ b/src/components/cookie-jar-selector.js
@@ -143,7 +143,7 @@ function CookieJarSelector() {
 var file = getProfileFile("cookies-" + name + ".json");
 var foStream = Cc["@mozilla.org/network/file-output-stream;1"]
   .createInstance(Ci.nsIFileOutputStream);
-foStream.init(file, 0x02 | 0x08 | 0x20, 0666, 0);
+foStream.init(file, 0x02 | 0x08 | 0x20, 0o666, 0);
 var data = JSON.stringify(this["cookiesobj-" + name]);
 foStream.write(data, data.length);
 foStream.close();
@@ -154,7 +154,7 @@ function CookieJarSelector() {
 var file = getProfileFile("protected-" + name + ".json");
 var foStream = Cc["@mozilla.org/network/file-output-stream;1"]
 .createInstance(Ci.nsIFileOutputStream);
-foStream.init(file, 0x02 | 0x08 | 0x20, 0666, 0);
+foStream.init(file, 0x02 | 0x08 | 0x20, 0o666, 0);
 var data = JSON.stringify(this["protected-" + name]);
 foStream.write(data, data.length);
 foStream.close();



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


[tor-commits] [torbutton/master] Bug 26100: Update xmlhttprequest calls after changes in xpcom interface

2018-05-25 Thread gk
commit 91f1c5deae6fb8415e0c22a99d4c0c3eac7db7b5
Author: Igor Oliveira 
Date:   Wed Feb 28 17:42:33 2018 -0300

Bug 26100: Update xmlhttprequest calls after changes in xpcom interface

The xmlhttprequest xpcom interface was deprecated in favor of the
XMLHttpRequest.
---
 src/chrome/content/torbutton.js| 12 +++-
 src/components/torCheckService.js  |  5 ++---
 src/components/torbutton-logger.js |  4 +---
 3 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index 4b15c5f..cf39dc2 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -7,13 +7,14 @@
 // TODO: Double-check there are no strange exploits to defeat:
 //   http://kb.mozillazine.org/Links_to_local_pages_don%27t_work
 
-let { LoadContextInfo } = 
Cu.import('resource://gre/modules/LoadContextInfo.jsm', {});
 let { Services } = Cu.import("resource://gre/modules/Services.jsm", {});
 let { showDialog } = Cu.import("resource://torbutton/modules/utils.js", {});
 let { getLocale, unescapeTorString } = 
Cu.import("resource://torbutton/modules/utils.js", {});
 let SecurityPrefs = 
Cu.import("resource://torbutton/modules/security-prefs.js", {});
 let { bindPrefAndInit, observe } = 
Cu.import("resource://torbutton/modules/utils.js", {});
 
+Cu.importGlobalProperties(["XMLHttpRequest"]);
+
 const k_tb_last_browser_version_pref = 
"extensions.torbutton.lastBrowserVersion";
 const k_tb_browser_update_needed_pref = "extensions.torbutton.updateNeeded";
 const k_tb_last_update_check_pref = "extensions.torbutton.lastUpdateCheck";
@@ -733,9 +734,7 @@ function torbutton_do_async_versioncheck() {
   torbutton_log(3, "Checking version with socks port: "
   +m_tb_prefs.getIntPref("network.proxy.socks_port"));
   try {
-var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"]
-
.createInstance(Components.interfaces.nsIXMLHttpRequest);
-//var req = new XMLHttpRequest(); Blocked by content policy
+var req = new XMLHttpRequest();
 var url = m_tb_prefs.getCharPref("extensions.torbutton.versioncheck_url");
 req.open('GET', url, true);
 req.channel.loadFlags |= Ci.nsIRequest.LOAD_BYPASS_CACHE;
@@ -1130,6 +1129,9 @@ function torbutton_do_new_identity() {
   torbutton_log(3, "New Identity: Clearing Offline Cache");
 
   try {
+const LoadContextInfo = Cc["@mozilla.org/load-context-info-factory;1"]
+  .getService(Ci.nsILoadContextInfoFactory);
+
 for (let contextInfo of [LoadContextInfo.default, 
LoadContextInfo.private]) {
   let appCacheStorage = Services.cache2.appCacheStorage(contextInfo, null);
   // The following call (asyncEvictStorage) is actually synchronous, either
@@ -2023,7 +2025,7 @@ let stopLanguagePromptObserver;
 function torbutton_new_window(event)
 {
 torbutton_log(3, "New window");
-var browser = getBrowser();
+var browser = window.gBrowser;
 
 if(!browser) {
   torbutton_log(5, "No browser for new window.");
diff --git a/src/components/torCheckService.js 
b/src/components/torCheckService.js
index 04708d4..19e13f4 100644
--- a/src/components/torCheckService.js
+++ b/src/components/torCheckService.js
@@ -77,9 +77,8 @@ TBTorCheckService.prototype =
 
   createCheckRequest: function(aAsync)
   {
-let req = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"]
-  .createInstance(Ci.nsIXMLHttpRequest);
-//let req = new XMLHttpRequest(); Blocked by content policy
+Cu.importGlobalProperties(["XMLHttpRequest"]);
+let req = new XMLHttpRequest();
 let prefs =  Cc["@mozilla.org/preferences-service;1"]
.getService(Ci.nsIPrefBranch);
 let url = prefs.getCharPref("extensions.torbutton.test_url");
diff --git a/src/components/torbutton-logger.js 
b/src/components/torbutton-logger.js
index 620113f..18a5f1e 100644
--- a/src/components/torbutton-logger.js
+++ b/src/components/torbutton-logger.js
@@ -22,9 +22,7 @@ function TorbuttonLogger() {
 .getService(Components.interfaces.nsIPrefBranch);
 
 // Register observer
-var pref_service = Components.classes["@mozilla.org/preferences-service;1"]
-.getService(Components.interfaces.nsIPrefBranchInternal);
-this._branch = 
pref_service.QueryInterface(Components.interfaces.nsIPrefBranchInternal);
+this._branch = 
this.prefs.QueryInterface(Components.interfaces.nsIPrefBranch);
 this._branch.addObserver("extensions.torbutton", this, false);
 
 this.loglevel = this.prefs.getIntPref("extensions.torbutton.loglevel");



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


[tor-commits] [torbutton/master] Bug 26100: Switch from Task.spawn to async/await

2018-05-25 Thread gk
commit c4a44294290fc96471646ae1ff39fb55d2dedf92
Author: Igor Oliveira 
Date:   Mon May 14 17:56:26 2018 -0300

Bug 26100: Switch from Task.spawn to async/await

Mozilla switched from Task.spawn to async/await[1] and we should
follow it since it makes the code simple.

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1353542
---
 src/chrome/content/tor-circuit-display.js | 29 ++---
 1 file changed, 14 insertions(+), 15 deletions(-)

diff --git a/src/chrome/content/tor-circuit-display.js 
b/src/chrome/content/tor-circuit-display.js
index 5bd02bc..7b12db0 100644
--- a/src/chrome/content/tor-circuit-display.js
+++ b/src/chrome/content/tor-circuit-display.js
@@ -28,7 +28,6 @@ let createTorCircuitDisplay = (function () {
 // Mozilla utilities
 const { Cu : utils , Ci : interfaces } = Components.utils;
 Cu.import("resource://gre/modules/Services.jsm");
-Cu.import("resource://gre/modules/Task.jsm");
 
 // Import the controller code.
 let { controller } = 
Cu.import("resource://torbutton/modules/tor-control-port.js", {});
@@ -59,8 +58,8 @@ let trimQuotes = s => s ? s.match(/^"(.*)"$/)[1] : undefined;
 // __getBridge(id)__.
 // Gets the bridge parameters for a given node ID. If the node
 // is not currently used as a bridge, returns null.
-let getBridge = function* (controller, id) {
-  let bridges = yield controller.getConf("bridge");
+let getBridge = async function (controller, id) {
+  let bridges = await controller.getConf("bridge");
   if (bridges) {
 for (let bridge of bridges) {
   if (bridge.ID && bridge.ID.toUpperCase() === id.toUpperCase()) {
@@ -75,9 +74,9 @@ let getBridge = function* (controller, id) {
 // Returns the type, IP and country code of a node with given ID.
 // Example: `nodeDataForID(controller, 
"20BC91DC525C3DC9974B29FBEAB51230DE024C44")`
 // => `{ type : "default", ip : "12.23.34.45", countryCode : "fr" }`
-let nodeDataForID = function* (controller, id) {
+let nodeDataForID = async function (controller, id) {
   let result = {},
-  bridge = yield getBridge(controller, id); // type, ip, countryCode;
+  bridge = await getBridge(controller, id); // type, ip, countryCode;
   if (bridge) {
 result.type = "bridge";
 result.bridgeType = bridge.type;
@@ -89,14 +88,14 @@ let nodeDataForID = function* (controller, id) {
 result.type = "default";
 // Get the IP address for the given node ID.
  try {
-   let statusMap = yield controller.getInfo("ns/id/" + id);
+   let statusMap = await controller.getInfo("ns/id/" + id);
result.ip = statusMap.IP;
  } catch (e) { }
   }
   if (result.ip) {
 // Get the country code for the node's IP address.
 try {
-  let countryCode = yield controller.getInfo("ip-to-country/" + result.ip);
+  let countryCode = await controller.getInfo("ip-to-country/" + result.ip);
   result.countryCode = countryCode === "??" ? null : countryCode;
 } catch (e) { }
   }
@@ -105,18 +104,18 @@ let nodeDataForID = function* (controller, id) {
 
 // __nodeDataForCircuit(controller, circuitEvent)__.
 // Gets the information for a circuit.
-let nodeDataForCircuit = function* (controller, circuitEvent) {
+let nodeDataForCircuit = async function (controller, circuitEvent) {
   let rawIDs = circuitEvent.circuit.map(circ => circ[0]),
   // Remove the leading '$' if present.
   ids = rawIDs.map(id => id[0] === "$" ? id.substring(1) : id);
   // Get the node data for all IDs in circuit.
-  return [for (id of ids) yield nodeDataForID(controller, id)];
+  return Promise.all(ids.map(id => nodeDataForID(controller, id)));
 };
 
 // __getCircuitStatusByID(aController, circuitID)__
 // Returns the circuit status for the circuit with the given ID.
-let getCircuitStatusByID = function* (aController, circuitID) {
-  let circuitStatuses = yield aController.getInfo("circuit-status");
+let getCircuitStatusByID = async function (aController, circuitID) {
+  let circuitStatuses = await aController.getInfo("circuit-status");
   if (circuitStatuses) {
 for (let circuitStatus of circuitStatuses) {
   if (circuitStatus.id === circuitID) {
@@ -139,22 +138,22 @@ let collectIsolationData = function (aController, 
updateUI) {
   return aController.watchEvent(
 "STREAM",
 streamEvent => streamEvent.StreamStatus === "SENTCONNECT",
-streamEvent => Task.spawn(function* () {
+async (streamEvent) => {
   if (!knownCircuitIDs[streamEvent.CircuitID]) {
 logger.eclog(3, "streamEvent.CircuitID: " + streamEvent.CircuitID);
 knownCircuitIDs[streamEvent.CircuitID] = true;
-let circuitStatus = yield getCircuitStatusByID(aController, 
streamEvent.CircuitID),
+let circuitStatus = await getCircuitStatusByID(aController, 
streamEvent.CircuitID),
 credentials = circuitStatus ?
 (trimQuotes(circuitStatus.SOCKS_USERNAME) + "|" +