tor-commits
Threads by month
- ----- 2025 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
October 2012
- 20 participants
- 1288 discussions
commit a67e70e7a41118ea0425369a3ec6aff08900040a
Author: Arturo Filastò <arturo(a)filasto.net>
Date: Wed Oct 24 15:32:31 2012 +0000
Refactor runner and ooni
* Remove unused imports
* Fix import indentation (please do not align from modules)
---
ooni/__init__.py | 15 ++++++++-
ooni/runner.py | 94 ++++++++++++++++++++---------------------------------
2 files changed, 50 insertions(+), 59 deletions(-)
diff --git a/ooni/__init__.py b/ooni/__init__.py
index a03c856..e730eb5 100644
--- a/ooni/__init__.py
+++ b/ooni/__init__.py
@@ -1 +1,14 @@
-__all__ = ['plugoo', 'utils', 'config', 'logo', 'lib', 'log']
+from . import config
+from . import input
+from . import inputunit
+from . import kit
+from . import lib
+from . import nettest
+from . import oonicli
+from . import reporter
+from . import runner
+from . import template
+from . import utils
+__all__ = ['config', 'input', 'inputunit', 'kit',
+ 'lib', 'nettest', 'oonicli', 'reporter',
+ 'runner', 'templates', 'utils']
diff --git a/ooni/runner.py b/ooni/runner.py
index 40960fe..de90a80 100644
--- a/ooni/runner.py
+++ b/ooni/runner.py
@@ -10,38 +10,21 @@
# :version: 0.1.0-pre-alpha
#
-
-import os
-import sys
-import types
-import time
import inspect
-import yaml
-
-from twisted.internet import defer, reactor
-from twisted.python import reflect, failure, usage
-from twisted.python import log as tlog
-
-from twisted.trial import unittest
-from twisted.trial.runner import TrialRunner, TestLoader
-from twisted.trial.runner import isPackage, isTestCase, ErrorHolder
-from twisted.trial.runner import filenameToModule, _importFromFile
-
-from ooni import nettest
-from ooni.inputunit import InputUnitFactory
-from ooni.nettest import InputTestSuite
-from ooni.plugoo import tests as oonitests
-from ooni.reporter import ReporterFactory
-from ooni.utils import log, geodata, date
+
+from twisted.python import reflect, usage
+
+from twisted.trial.runner import isTestCase
+from twisted.trial.runner import filenameToModule
+
+from ooni.inputunit import InputUnitFactory
+from ooni.nettest import InputTestSuite
+from ooni.plugoo import tests as oonitests
+from ooni.reporter import ReporterFactory
+from ooni.utils import log, date
from ooni.utils.legacy import LegacyOONITest
from ooni.utils.legacy import start_legacy_test, adapt_legacy_test
-def isTestCase(thing):
- try:
- return issubclass(thing, unittest.TestCase)
- except TypeError:
- return False
-
def isLegacyTest(obj):
"""
Returns True if the test in question is written using the OONITest legacy
@@ -66,14 +49,14 @@ def processTest(obj, config):
class.
"""
- inputFile = obj.inputFile
+ input_file = obj.inputFile
- if obj.optParameters or inputFile:
+ if obj.optParameters or input_file:
if not obj.optParameters:
obj.optParameters = []
- if inputFile:
- obj.optParameters.append(inputFile)
+ if input_file:
+ obj.optParameters.append(input_file)
class Options(usage.Options):
optParameters = obj.optParameters
@@ -82,8 +65,8 @@ def processTest(obj, config):
options.parseOptions(config['subArgs'])
obj.localOptions = options
- if inputFile:
- obj.inputFile = options[inputFile[0]]
+ if input_file:
+ obj.inputFile = options[input_file[0]]
try:
tmp_obj = obj()
tmp_obj.getOptions()
@@ -120,15 +103,15 @@ def findTestClassesFromConfig(config):
classes.append(adapt_legacy_test(val, config))
return classes
-def makeTestCases(klass, tests, methodPrefix):
+def makeTestCases(klass, tests, method_prefix):
"""
- Takes a class some tests and returns the test cases. methodPrefix is how
+ Takes a class some tests and returns the test cases. method_prefix is how
the test case functions should be prefixed with.
"""
cases = []
for test in tests:
- cases.append(klass(methodPrefix+test))
+ cases.append(klass(method_prefix+test))
return cases
def loadTestsAndOptions(classes, config):
@@ -137,10 +120,9 @@ def loadTestsAndOptions(classes, config):
Legacy tests will be adapted.
"""
- methodPrefix = 'test'
- suiteFactory = InputTestSuite
+ method_prefix = 'test'
options = []
- testCases = []
+ test_cases = []
names = []
_old_klass_type = LegacyOONITest
@@ -149,11 +131,11 @@ def loadTestsAndOptions(classes, config):
if isinstance(klass, _old_klass_type):
try:
cases = start_legacy_test(klass)
- #cases.callback()
if cases:
- print cases
+ log.debug("Processing cases")
+ log.debug(str(cases))
return [], []
- testCases.append(cases)
+ test_cases.append(cases)
except Exception, e:
log.err(e)
else:
@@ -164,10 +146,10 @@ def loadTestsAndOptions(classes, config):
options.append([])
log.err(ae)
else:
- tests = reflect.prefixedMethodNames(klass, methodPrefix)
+ tests = reflect.prefixedMethodNames(klass, method_prefix)
if tests:
- cases = makeTestCases(klass, tests, methodPrefix)
- testCases.append(cases)
+ cases = makeTestCases(klass, tests, method_prefix)
+ test_cases.append(cases)
try:
k = klass()
opts = k.getOptions()
@@ -176,7 +158,7 @@ def loadTestsAndOptions(classes, config):
options.append([])
log.err(ae)
- return testCases, options
+ return test_cases, options
class ORunner(object):
"""
@@ -185,7 +167,7 @@ class ORunner(object):
them in input units. I also create all the report instances required to run
the tests.
"""
- def __init__(self, cases, options=None, config=None, *arg, **kw):
+ def __init__(self, cases, options=None, config=None):
self.baseSuite = InputTestSuite
self.cases = cases
self.options = options
@@ -216,21 +198,17 @@ class ORunner(object):
self.reporterFactory = ReporterFactory(reportFile,
testSuite=self.baseSuite(self.cases))
- def runWithInputUnit(self, inputUnit):
+ def runWithInputUnit(self, input_unit):
idx = 0
result = self.reporterFactory.create()
- log.debug("Running test with input unit %s" % inputUnit)
- for inputs in inputUnit:
+ log.debug("Running test with input unit %s" % input_unit)
+ for inputs in input_unit:
result.reporterFactory = self.reporterFactory
log.debug("Running with %s" % inputs)
suite = self.baseSuite(self.cases)
suite.input = inputs
- try:
- suite(result, idx)
- except Exception, e:
- log.err("Error in running test!")
- log.err(e)
+ suite(result, idx)
# XXX refactor all of this index bullshit to avoid having to pass
# this index around. Probably what I want to do is go and make
@@ -246,5 +224,5 @@ class ORunner(object):
def run(self):
self.reporterFactory.options = self.options
- for inputUnit in InputUnitFactory(self.inputs):
- self.runWithInputUnit(inputUnit)
+ for input_unit in InputUnitFactory(self.inputs):
+ self.runWithInputUnit(input_unit)
1
0

[research-web/master] Add new report on counting daily bridge users.
by karsten@torproject.org 24 Oct '12
by karsten@torproject.org 24 Oct '12
24 Oct '12
commit 13fe963dd51ffed980e92f9e52ee0684165de88b
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Wed Oct 24 11:13:56 2012 -0400
Add new report on counting daily bridge users.
---
techreports.bib | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/techreports.bib b/techreports.bib
index f0dde5e..0ba4c1c 100644
--- a/techreports.bib
+++ b/techreports.bib
@@ -1,3 +1,13 @@
+@techreport{tor-2012-10-001,
+ author = {Karsten Loesing},
+ title = {Counting daily bridge users},
+ institution = {The Tor Project},
+ number = {2012-10-001},
+ year = {2012},
+ month = {October},
+ url = {https://research.torproject.org/techreports/counting-daily-bridge-users-2012-10-24.pdf},
+}
+
@techreport{tor-2012-08-001,
author = {Jacob Appelbaum},
title = {{Tor} and {NAT} devices: increasing bridge \& relay reachability or, enabling the use of {NAT-PMP} and {UPnP} by default},
1
0

[tech-reports/master] Add new report on counting daily bridge users.
by karsten@torproject.org 24 Oct '12
by karsten@torproject.org 24 Oct '12
24 Oct '12
commit 87981946bb08a21fd247a1ea344fc8e36533e382
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Wed Oct 24 11:11:11 2012 -0400
Add new report on counting daily bridge users.
---
2012/counting-daily-bridge-users/.gitignore | 3 +
2012/counting-daily-bridge-users/bridgesets.pdf | Bin 0 -> 26476 bytes
.../compare-totalusers-q3-2012.pdf | Bin 0 -> 6366 bytes
.../compare-totalusers.pdf | Bin 0 -> 10156 bytes
2012/counting-daily-bridge-users/consensuses.pdf | Bin 0 -> 6512 bytes
.../counting-daily-bridge-users.bib | 30 ++
.../counting-daily-bridge-users.tex | 533 ++++++++++++++++++++
.../extrapolated-responses.pdf | Bin 0 -> 13134 bytes
.../responses-single-bridges.png | Bin 0 -> 37038 bytes
2012/counting-daily-bridge-users/responses.pdf | Bin 0 -> 7211 bytes
2012/counting-daily-bridge-users/syusers.pdf | Bin 0 -> 7460 bytes
2012/counting-daily-bridge-users/tortechrep.cls | 1 +
.../totalusers-q3-2012.pdf | Bin 0 -> 5307 bytes
2012/counting-daily-bridge-users/totalusers.pdf | Bin 0 -> 7185 bytes
14 files changed, 567 insertions(+), 0 deletions(-)
diff --git a/2012/counting-daily-bridge-users/.gitignore b/2012/counting-daily-bridge-users/.gitignore
new file mode 100644
index 0000000..b36a48e
--- /dev/null
+++ b/2012/counting-daily-bridge-users/.gitignore
@@ -0,0 +1,3 @@
+counting-daily-bridge-users.pdf
+counting-daily-bridge-users-2012-10-24.pdf
+
diff --git a/2012/counting-daily-bridge-users/bridgesets.pdf b/2012/counting-daily-bridge-users/bridgesets.pdf
new file mode 100644
index 0000000..2328f54
Binary files /dev/null and b/2012/counting-daily-bridge-users/bridgesets.pdf differ
diff --git a/2012/counting-daily-bridge-users/compare-totalusers-q3-2012.pdf b/2012/counting-daily-bridge-users/compare-totalusers-q3-2012.pdf
new file mode 100644
index 0000000..5539e94
Binary files /dev/null and b/2012/counting-daily-bridge-users/compare-totalusers-q3-2012.pdf differ
diff --git a/2012/counting-daily-bridge-users/compare-totalusers.pdf b/2012/counting-daily-bridge-users/compare-totalusers.pdf
new file mode 100644
index 0000000..180a6ea
Binary files /dev/null and b/2012/counting-daily-bridge-users/compare-totalusers.pdf differ
diff --git a/2012/counting-daily-bridge-users/consensuses.pdf b/2012/counting-daily-bridge-users/consensuses.pdf
new file mode 100644
index 0000000..916711d
Binary files /dev/null and b/2012/counting-daily-bridge-users/consensuses.pdf differ
diff --git a/2012/counting-daily-bridge-users/counting-daily-bridge-users.bib b/2012/counting-daily-bridge-users/counting-daily-bridge-users.bib
new file mode 100644
index 0000000..1037cbc
--- /dev/null
+++ b/2012/counting-daily-bridge-users/counting-daily-bridge-users.bib
@@ -0,0 +1,30 @@
+@techreport{tor-2012-04-001,
+ author = {Karsten Loesing},
+ title = {What fraction of our bridges are not reporting usage statistics?},
+ institution = {The Tor Project},
+ number = {2012-04-001},
+ year = {2012},
+ month = {April},
+ note = {\url{https://research.torproject.org/techreports/bridge-report-usage-stats-2012-04-30.pdf}},
+}
+
+@techreport{tor-2010-11-001,
+ author = {Sebastian Hahn and Karsten Loesing},
+ title = {Privacy-preserving Ways to Estimate the Number of {Tor} Users},
+ institution = {The Tor Project},
+ number = {2010-11-001},
+ year = {2010},
+ month = {November},
+ note = {\url{https://research.torproject.org/techreports/countingusers-2010-11-30.pdf}},
+}
+
+@inproceedings{loesing2010case,
+ title = {A Case Study on Measuring Statistical Data in the {Tor} Anonymity Network},
+ author = {Karsten Loesing and Steven J. Murdoch and Roger Dingledine},
+ booktitle = {Proc.\ Workshop on Ethics in Computer Security Research},
+ year = {2010},
+ month = Jan,
+ address = {Tenerife, Canary Islands, Spain},
+ note = {\url{https://metrics.torproject.org/papers/wecsr10.pdf}},
+}
+
diff --git a/2012/counting-daily-bridge-users/counting-daily-bridge-users.tex b/2012/counting-daily-bridge-users/counting-daily-bridge-users.tex
new file mode 100644
index 0000000..81eca55
--- /dev/null
+++ b/2012/counting-daily-bridge-users/counting-daily-bridge-users.tex
@@ -0,0 +1,533 @@
+\documentclass{tortechrep}
+\usepackage{url}
+\usepackage{graphicx}
+\begin{document}
+
+\title{Counting daily bridge users}
+\author{Karsten Loesing}
+\contact{karsten(a)torproject.org}
+\reportid{2012-10-001}
+\date{October 24, 2012}
+\maketitle
+
+\begin{abstract}
+As part of the Tor Metrics Project, we want to learn how many people use
+the Tor network on a daily basis.
+Counting users in an anonymity network is, obviously, a difficult task
+for which we cannot collect too sensitive usage data.
+We came up with a privacy-preserving approach for estimating directly
+connecting user numbers by counting requests to the directory mirrors and
+deriving approximate user numbers from there.
+In this report we describe a modified approach for estimating the number
+of users connecting via bridges by evaluating directory requests made to
+bridges.
+We compare this new approach to our current approach that estimates bridge
+user numbers from total unique IP addresses seen at bridges.
+We think that results from the new approach are closer to reality, even
+though that means there are significantly fewer daily bridge users than
+originally expected.
+\end{abstract}
+
+\section{Introduction to our new approach to count bridge users}
+
+In this report we describe a new approach for estimating the number of
+daily users connecting to the Tor network via a bridge.
+This new approach uses counts of directory requests made to bridges as its
+main data sources.
+This is similar to how we estimate daily directly connecting users that
+connect to the Tor network via a non-bridge relay.
+Our current approach for estimating daily bridge users is to count unique
+IP addresses of connecting clients at bridges.
+We refer to our earlier report~\cite{tor-2010-11-001} for an overview of
+estimating user numbers in the Tor network.
+
+We estimate daily bridge users by first summing up directory requests per
+day reported by bridges (Section~\ref{sec:reports}).
+We extrapolate these reported requests to the expected total number of
+directory requests in the network (Section~\ref{sec:requests}).
+We then assume that there is an average number of 10 directory requests
+that every client makes per day and derive daily user numbers by dividing
+by that average number (Section~\ref{sec:users}).
+We further derive users per country by including country information of
+connecting IP addresses (Section~\ref{sec:country}).
+There are at least two ways to remove unwanted artifacts from results:
+we may have to ignore reports from bridges that have been running as
+non-bridge relays and that might still report directly connecting users
+(Section~\ref{ref:nonbridge});
+and we may need to ignore days when there were problems with the consensus
+process, leading to an increase in directory requests which is likely not
+caused by an actual increase in users (Section~\ref{ref:consensus}).
+
+\section{Counting reported directory requests to bridges per day}
+\label{sec:reports}
+
+All relays running a recent enough Tor version contain code to collect and
+report statistics on processed directory requests over 24-hour periods.
+We refer to our previous work~\cite{loesing2010case} for more details on
+aggregating usage statistics in Tor.
+
+Bridges were originally not supposed to report directory request
+statistics, because bridge users were estimated based on unique IP address
+counts, and we wanted to avoid collecting any more data than needed.
+But due to a bug, only part of directory request statistics were
+suppressed when running in bridge relay mode.
+As a result, bridges report a trimmed version of directory request
+statistics, which are however still enough to estimate daily users.
+As an example, the following directory request statistics were reported by
+a bridge in September 2012.
+
+%All examples come from descriptor FE2E5A0E7B15F5C1E102791BC957A6F9BE9DDC2E
+\begin{quotation}\noindent\footnotesize
+\texttt{%
+extra-info goinpostal 7363FF835F5D79EA1F0CC2EB757B03866D4515F7\\
+dirreq-stats-end 2012-09-18 15:26:38 (86400 s)\\
+dirreq-v3-resp ok=5040,not-enough-sigs=0,unavailable=0,not-found=0,not-modified=0,busy=0}
+\end{quotation}
+
+From this example we learn that this bridge successfully processed 5,040
+version 3 directory requests in the 24 hours preceding September 18, 2012,
+15:26:38 UTC.
+We have no information how many of these requests happened in the 8.5
+hours of September 17 or in the 15.5 hours of September 18.
+We assume a uniform distribution of requests over the 24-hour interval and
+count 1,797 requests for September 17 and 3,243 requests for September 18.
+We extract these data points for all bridges publishing their descriptors
+to the bridge authority and sum up responses per day.
+Figure~\ref{fig:responses} contains the number of reported requests per
+day.
+\begin{figure}
+\includegraphics[width=\textwidth]{responses.pdf}
+\caption{Daily sums of directory requests reported by all bridges}
+\label{fig:responses}
+\end{figure}
+A few observations:
+
+\label{lab:discuss-responses}
+\begin{enumerate}
+\item There were hardly any reported requests until September 2011.
+The likely explanation is that, before Tor version 0.2.3.1-alpha,
+collecting and reporting directory request statistics was disabled by
+default.
+This default was changed in Tor version 0.2.3.1-alpha which was released
+on May 5, 2011.
+With more and more bridges upgrading to the 0.2.3 series, the number of
+reported directory requests increased, too.
+\item The reported request numbers in September and October 2011 have
+quite high volatility, making it difficult to use these request numbers
+for actual user number estimates.
+\item There are at least three unusual spikes in request numbers in
+November 2011, January 2012, and April 2012, which were unlikely caused by
+sudden increases and decreases in user numbers.
+\item From November 2011 on, there is a general downward trend from around
+60,000 requests per day to just 30,000 in September 2012.
+\end{enumerate}
+
+\section{Extrapolating to total directory requests in the network}
+\label{sec:requests}
+
+So far, we only know how many directory requests were processed by the
+bridges reporting them.
+We need to take into account that not all bridges report these statistics
+for various reasons:
+bridges may not be configured to report directory request statistics,
+which in particular applies to bridges running an earlier version than
+0.2.3.1-alpha;
+bridges may run for less than 24 hours, thus not finishing a 24 hour
+statistics interval and discarding requests processed up to that time;
+bridges may have finished a 24-hour statistics interval, but went offline
+before publishing statistics to the bridge authority.
+(We analyzed in more detail what fraction of our bridges are not reporting
+usage statistics in~\cite{tor-2012-04-001}.)
+As a result, we need to extrapolate reported requests to what we expect as
+the total number of requests in the network.
+
+A straight-forward way to extrapolate to the total number of directory
+requests in the network would be to make the following assumption:
+every bridge that does not report directory request statistics, on
+average, processes as many directory requests as a bridge that reports
+them.
+Under this assumption, we could count the number of running bridges per
+day and the number of bridges reporting directory request statistics,
+compute the fraction of reporting bridges, and divide reported requests by
+that fraction.
+This assumption works fine as long as the variance between request numbers
+processed by bridges is small, or as long as the fraction of reporting
+bridges is high.
+However, the former is not the case, because there are some hard-coded
+bridge addresses in bundles distributed on the Tor website, leading to
+these bridges processing and maybe reporting far more directory requests
+than others.
+The latter is not always the case either, in particular before September
+2011, as we could see in Figure~\ref{fig:responses}.
+
+A better way to extrapolate to total requests in the network is to
+consider a second statistic published by a subset of bridges: the number
+of bytes written to respond to directory requests.
+We assume that this number is proportional to the number of processed
+directory requests, even though we do not assume an exact linear relation.
+The subset of bridges reporting byte statistics is not necessarily the
+same subset thas is reporting directory request statistics.
+By taking into account byte histories, we can better estimate how many
+directory requests have not been reported by bridges that at least have
+reported byte histories.
+An example for reported written directory bytes, coming from the same
+extra-info descriptor as the example above, is as follows:
+
+\begin{quotation}\noindent\footnotesize
+\texttt{%
+extra-info goinpostal 7363FF835F5D79EA1F0CC2EB757B03866D4515F7\\
+dirreq-write-history 2012-09-19 05:17:32 (900 s) 13370368,10539008,56751104,27235328,\\
+14555136,10524672,63341568,37339136,24343552,22490112,29155328,17792000,3502080,[...]}
+\end{quotation}
+
+From these write histories we can extract how many bytes a bridge has
+spent on answering directory requests on a given day.
+By looking at the reported directory request history values, we can learn
+how many bytes were written while the bridge was also collecting and later
+reporting directory request statistics, and we can learn how many bytes
+were written outside of those statistics intervals.
+Similarly, we can learn how many directory requests were processed at
+times when the bridge did not report byte histories.
+
+On a side note, as one can see from the example, byte history intervals
+are only 15 minutes long and thereby much shorter than directory request
+statistics intervals.
+It might be that this level of detail has privacy implications, in
+particular on bridges with only very few users.
+We probably don't need byte histories on this level of detail.
+We leave the analysis what level of detail is required as future work.
+Results could lead to increasing the history interval length on bridges to
+1 hour or more.
+
+In the following, we define $R$ as the subset of bridges reporting
+directory request statistics, $H$ as the subset reporting byte histories,
+and $N$ as the entire set of bridges in the network.
+Figure~\ref{fig:bridgesets} illustrates these subsets and the variable
+names.
+Also, we define $r()$ as the number of directory requests reported by a
+given set of bridges, $h()$ as the number of bytes reported by the bridges
+in a given set, and $n()$ as the absolute number of bridges in a set.
+
+\begin{figure}
+\centering
+\includegraphics[width=.5\textwidth]{bridgesets.pdf}
+\caption{Subsets of bridges reporting write histories and directory
+request statistics}
+\label{fig:bridgesets}
+\end{figure}
+
+Knowing the number of reported directory requests, $r(R)$, we can
+extrapolate to the expected total number of directory requests, $r(N)$, by
+multiplying with the reciprocal of the fraction of written directory
+requests that got reported to us, $\frac{h(N)}{h(R)}$:
+
+\begin{equation}
+r(N) = r(R) \times \frac{h(N)}{h(R)}
+\end{equation}
+
+Estimating total written directory request bytes in the network, $h(N)$,
+is easy.
+We assume here that the bridges that didn't report directory request bytes
+wrote the same number of bytes per bridge on average as reporting bridges.
+
+\begin{equation}
+h(N) = h(H) \times \frac{n(N)}{n(H)}
+\label{equation}
+\end{equation}
+
+Estimating written directory request bytes by the bridges that reported
+directory request statistics, $h(R)$, is somewhat harder.
+We first split the set into the set of bridges reporting both statistics
+and the set of bridges reporting only statistics and no write histories.
+
+\begin{equation}
+h(R) = {h(R \cap H) + h(R \setminus H)}
+\end{equation}
+
+The first number is something we can read from the descriptors.
+The second number requires us to apply the same assumption from above,
+namely that bridges that didn't report byte histories wrote the same
+number of bytes, on average, as reporting bridges.
+(Note how this equation is very similar to equation \ref{equation}.)
+
+\begin{equation}
+h(R \setminus H) = h(H) \times \frac{n(R \setminus H)}{n(H)}
+\end{equation}
+
+Putting everything together, we come up with a way to compute estimated
+directory requests in the network:
+
+\begin{equation}
+r(N) = r(R) \times \frac{h(H) \times n(N)}{h(R \cap H) \times n(H) + h(H) \times n(R \setminus H)}
+\end{equation}
+
+Figure~\ref{fig:totalrequests}
+\begin{figure}[t]
+\includegraphics[width=\textwidth]{extrapolated-responses.pdf}
+\caption{Reported directory requests, estimated fraction of bridges
+reporting directory requests, and estimated directory requests in the
+network}
+\label{fig:totalrequests}
+\end{figure}
+shows reported directory requests, estimated
+fraction of directory requests that got reported by bridges, and estimated
+total directory requests in the network.
+A few observations:
+
+\begin{enumerate}
+\item The top-most graph is the same as in Figure~\ref{fig:responses} which
+we already discussed on page~\pageref{lab:discuss-responses}.
+\item The middle graph shows an upwards trend of the fraction of bridges
+reporting directory request statistics.
+Fractions of under 25\% as seen until end of October 2011 make it
+difficult to extrapolate to the total number of requests in the network.
+These fractions also explain the observed volatility of reported requests
+until end of October 2011.
+Beginning with November 2011, fractions are at 50\% or higher, exceeding
+75\% in most of 2012.
+\item The bottom-most graph is the result of dividing request numbers in
+the top-most graph by fractions in the middle graph.
+The low fractions in late August and early September 2011 lead to very
+high estimated total requests in the network.
+We'll want to treat these surprisingly high numbers with care, but so far,
+there is no reason to believe they're totally wrong.
+From November 2011 to September 2012, the continuously decreasing reported
+request numbers combined with the increasing fraction of reported requests
+lead to a continuous decrease in estimated directory requests in the
+network.
+From this graph it seems that bridge usage has steadily decreased in the
+past 11 months.
+\end{enumerate}
+
+\section{Dividing by 10 for estimating number of users}
+\label{sec:users}
+
+With the estimated number of daily directory requests in the network we
+can now estimate the number of daily users.
+We make the assumption that there is an average number of directory
+requests per day that every client makes to keep their network information
+up-to-date.
+As of writing this report, network status consensuses are fresh for three
+hours, requiring clients to download a new document every 2 to 3 hours.
+Hence, a client that is online all day would make 8 to 12 directory
+requests on that day.
+Not all clients are online all day, thus reducing the average number of
+directory requests made by clients.
+We, somewhat arbitrarily, chose 10 as the number of directory requests
+that the average client makes every day.
+10 is also the number that we use in directly connecting user statistics,
+so that both estimates for non-censored and censored users will be easy
+to compare.
+We could evaluate whether 10 is a good number by asking volunteers to have
+their Tor clients record directory request numbers made on a given day,
+and use these actual numbers to come up with a better number.
+But given that we apply the same number of requests per client to all
+days, the actual value does not influence development over time, allowing
+us to observe trends over time and still have a rough idea of absolute
+numbers.
+
+Now we can derive user numbers from total directory requests in the
+network.
+Figures~\ref{fig:totalusers} and \ref{fig:totalusers-q3-2012}
+show the total number of users connecting via bridges over time, for the
+entire period for which we have data and for the third quarter of 2012.
+These graphs contain the same data as the bottom-most graph in
+Figure~\ref{fig:totalrequests}, but divided by 10.
+The most surprising result is that there are only 3,500 daily bridge users
+these days.
+
+\begin{figure}
+\includegraphics[width=\textwidth]{totalusers.pdf}
+\caption{Estimated daily bridge users from all countries from July 2011 to
+September 2012}
+\label{fig:totalusers}
+\end{figure}
+\begin{figure}
+\includegraphics[width=\textwidth]{totalusers-q3-2012.pdf}
+\caption{Estimated daily bridge users from all countries in the third
+quarter of 2012}
+\label{fig:totalusers-q3-2012}
+\end{figure}
+
+\section{Breaking down to user numbers by country}
+\label{sec:country}
+
+So far, we only have an estimate of daily bridge users in the network, but
+no user numbers per country.
+In contrast to directory request statistics reported by relays, bridges
+do not report request numbers by country code.
+But we still have statistics on originating countries in the unique IP
+address statistics reported by bridges.
+These are the statistics we have been using for estimating daily bridge
+users so far.
+We assume that the country distribution of connecting bridge clients is
+similar to bridge clients downloading directory requests.
+As an example, these are the statistics on connecting clients reported by
+the same bridge from earlier examples:
+
+\begin{quotation}\noindent\footnotesize
+\texttt{%
+extra-info goinpostal 7363FF835F5D79EA1F0CC2EB757B03866D4515F7\\
+bridge-stats-end 2012-09-18 15:27:00 (86400 s)\\
+bridge-ips ir=32,??=16,at=8,eg=8,jp=8,lv=8,pk=8,us=8}
+\end{quotation}
+
+We sum up unique IP addresses and calculate a fraction of IP addresses for
+every country and day.
+(We could also have weighted country information of reporting bridges with
+the bridge's fraction of written directory request bytes, but this seemed
+like overkill for this analysis, so we left it for future work.)
+We multiply the estimated number of total users in the network with the
+fraction of unique IP addresses coming from a country and come up with the
+estimated number of users in that country.
+Figure~\ref{fig:syusers.pdf} shows the result for estimated daily bridge
+users coming from Syria.
+We chose Syria for this example, because that's one of the countries with
+most bridge users these days.
+The approach would work for all other countries, too.
+
+\begin{figure}
+\includegraphics[width=\textwidth]{syusers.pdf}
+\caption{Estimated daily bridge users from Syria}
+\label{fig:syusers.pdf}
+\end{figure}
+\section{Ignoring bridges that were running as non-bridge relays}
+
+\label{ref:nonbridge}
+
+One aspect that we have been ignoring so far is that there are bridges
+that were running as non-bridge relays before.
+It is likely that these bridges report directory requests coming from
+directly connecting clients of which there are far more than bridge
+clients.
+
+Figure~\ref{fig:responses-single-bridges} shows reported directory
+requests of bridges that have or have not been seen as non-bridge relays.
+The focus here is on data points which are seemingly outliers.
+Two noteworthy examples are the 30,000+ requests in April 2012 and the
+25,000+ requests in September 2012.
+
+In our current approach to count daily bridge users, we ignore any such
+bridge, because they could skew results.
+We'd like to exclude data points coming from bridges that report
+unrealistic statistics.
+However, it seems that ignoring all bridges that have been seen as
+non-bridge relays would mean removing too many data points.
+More research is needed to define criteria when a data point probably
+contains directory requests by non-bridge clients and should be ignored.
+
+\begin{figure}
+\includegraphics[width=\textwidth]{responses-single-bridges.png}
+\caption{Reported directory requests by bridges that have or have not been
+seen as non-bridge relays}
+\label{fig:responses-single-bridges}
+\end{figure}
+
+\section{Ignoring days with too few network status consensuses}
+\label{ref:consensus}
+
+A closer look at spikes in total estimated directory requests and at
+archives of network status consensuses reveals an interesting correlation:
+in 4 out of 5 cases when less than 20 consensuses were published on a given
+day, the number of directory requests went up a lot.
+Figure~\ref{fig:consensuses} shows the number of published consensuses per
+day.
+
+\begin{figure}
+\includegraphics[width=\textwidth]{consensuses.pdf}
+\caption{Published consensuses per day}
+\label{fig:consensuses}
+\end{figure}
+
+By default, the directory authorities publish a new consensus every hour.
+Missing consensuses indicate a problem with the consensus process, meaning
+that the available consensuses become outdated and that clients send out
+more requests to get a recent enough consensus, thus raising the number of
+directory requests in the network.
+
+We could decline providing bridge usage statistics for days when the
+archives had less than 20 consensuses.
+This would fix the spike in late November 2011 and especially the huge one
+in early January 2012.
+However, we decided not to remove these days yet and left it as future
+work to analyze how we can detect problems with the consensus process
+leading to higher directory request numbers.
+
+\section{Comparing old and new approaches to count bridge users}
+
+We briefly compare results from our new approach based on directory
+requests to results from our existing approach based on unique IP
+addresses.
+Figures~\ref{fig:compare-totalusers} and
+\ref{fig:compare-totalusers-q3-2012} show the estimates of daily bridge
+users in the new and in the old approach, for the entire observed period
+and for the third quarter of 2012.
+The general trend is about the same, though the new
+approach only outputs about one tenth as many daily bridge users as the old
+approach did.
+We think that results from the new approach are closer to reality, because
+the reasoning behind it is much more plausible than the design of the old
+approach.
+We refer to our earlier report~\cite{tor-2010-11-001} for details of the
+old approach to count daily bridge users including a discussion of its
+weaknesses.
+
+\begin{figure}[t]
+\includegraphics[width=\textwidth]{compare-totalusers.pdf}
+\caption{Estimated daily bridge users in the new and in the old approach
+from July 2011 to September 2012}
+\label{fig:compare-totalusers}
+\end{figure}
+
+\begin{figure}[t]
+\includegraphics[width=\textwidth]{compare-totalusers-q3-2012.pdf}
+\caption{Estimated daily bridge users in the new and in the old approach
+in the third quarter of 2012}
+\label{fig:compare-totalusers-q3-2012}
+\end{figure}
+
+\section{Suggesting next steps}
+
+We identified a few starting points for further improving the described
+approach in this report:
+
+\begin{itemize}
+\item We should re-run the analysis under the assumption that bridges use
+a larger time period for byte histories than 15 minutes.
+There are potential privacy problems with seldomly used bridges reporting
+usage statistics on such a high detail level.
+The described approach to estimate daily users should work as well with
+byte histories on a detail of a few hours.
+Once we know what detail is required, we should change the default in the
+Tor sources, and we could update the bridge descriptor sanitizing code to
+increase the byte history interval in sanitized bridge descriptors.
+\item We should evaluate whether 10 is a reasonable average number of
+directory requests made by a client per day.
+One way to do this evaluation is to ask volunteers to have their Tor
+clients record directory request numbers made on a given day.
+\item We should look closer at weighting country information reported by
+bridges.
+Maybe we'll have to weight unique IP address fractions by country with the
+reporting bridge's written directory request byte fraction to get more
+accurate user numbers by country.
+\item We should further investigate how bridges that have been seen as
+non-bridge relays affect the results.
+If we need to ignore reported statistics by these bridges, we'll want to
+make sure to only exclude as few reports as necessary.
+\item We should further analyze problems with the consensus process and
+how they affect directory request numbers.
+Both statistics of daily directly connecting and of daily bridge users
+could benefit from new insights here.
+\end{itemize}
+
+\section*{Acknowledgements}
+
+Thanks to George Kadianakis for his valuable input on a draft of this
+report, especially by reviewing the math part of extrapolating reported
+requests to total requests in the network, and for pointing out the
+potential privacy problem of too short byte history intervals.
+
+\bibliography{counting-daily-bridge-users}
+
+\end{document}
+
diff --git a/2012/counting-daily-bridge-users/extrapolated-responses.pdf b/2012/counting-daily-bridge-users/extrapolated-responses.pdf
new file mode 100644
index 0000000..24d3fb1
Binary files /dev/null and b/2012/counting-daily-bridge-users/extrapolated-responses.pdf differ
diff --git a/2012/counting-daily-bridge-users/responses-single-bridges.png b/2012/counting-daily-bridge-users/responses-single-bridges.png
new file mode 100644
index 0000000..199be4e
Binary files /dev/null and b/2012/counting-daily-bridge-users/responses-single-bridges.png differ
diff --git a/2012/counting-daily-bridge-users/responses.pdf b/2012/counting-daily-bridge-users/responses.pdf
new file mode 100644
index 0000000..f974b19
Binary files /dev/null and b/2012/counting-daily-bridge-users/responses.pdf differ
diff --git a/2012/counting-daily-bridge-users/syusers.pdf b/2012/counting-daily-bridge-users/syusers.pdf
new file mode 100644
index 0000000..ff52022
Binary files /dev/null and b/2012/counting-daily-bridge-users/syusers.pdf differ
diff --git a/2012/counting-daily-bridge-users/tortechrep.cls b/2012/counting-daily-bridge-users/tortechrep.cls
new file mode 120000
index 0000000..4c24db2
--- /dev/null
+++ b/2012/counting-daily-bridge-users/tortechrep.cls
@@ -0,0 +1 @@
+../../tortechrep.cls
\ No newline at end of file
diff --git a/2012/counting-daily-bridge-users/totalusers-q3-2012.pdf b/2012/counting-daily-bridge-users/totalusers-q3-2012.pdf
new file mode 100644
index 0000000..a2d27d5
Binary files /dev/null and b/2012/counting-daily-bridge-users/totalusers-q3-2012.pdf differ
diff --git a/2012/counting-daily-bridge-users/totalusers.pdf b/2012/counting-daily-bridge-users/totalusers.pdf
new file mode 100644
index 0000000..1a982ef
Binary files /dev/null and b/2012/counting-daily-bridge-users/totalusers.pdf differ
1
0

[translation/vidalia_help_completed] Update translations for vidalia_help_completed
by translation@torproject.org 24 Oct '12
by translation@torproject.org 24 Oct '12
24 Oct '12
commit 19403011e6ec1cf07d4bc3c3cfbda267fce51d09
Author: Translation commit bot <translation(a)torproject.org>
Date: Wed Oct 24 11:45:27 2012 +0000
Update translations for vidalia_help_completed
---
fa/bridges.po | 13 +++++++------
1 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/fa/bridges.po b/fa/bridges.po
index 4d0840f..46f15ed 100644
--- a/fa/bridges.po
+++ b/fa/bridges.po
@@ -1,6 +1,7 @@
#
# Translators:
# <aalaeiarash(a)gmail.com>, 2011.
+# <joe_ironsmith(a)yahoo.com>, 2012.
# runasand <runa.sandvik(a)gmail.com>, 2011.
# <s.sampad(a)gmail.com>, 2012.
msgid ""
@@ -8,14 +9,14 @@ msgstr ""
"Project-Id-Version: The Tor Project\n"
"Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n"
"POT-Creation-Date: 2010-06-26 16:58+0200\n"
-"PO-Revision-Date: 2012-03-28 22:39+0000\n"
-"Last-Translator: ssampad <s.sampad(a)gmail.com>\n"
+"PO-Revision-Date: 2012-10-24 11:21+0000\n"
+"Last-Translator: Joe.Ironsmith <joe_ironsmith(a)yahoo.com>\n"
"Language-Team: LANGUAGE <LL(a)li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fa\n"
-"Plural-Forms: nplurals=1; plural=0\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
#. type: Content of: <html><body><h1>
#: en/bridges.html:16
@@ -43,7 +44,7 @@ msgid ""
"no complete public list of them, even if your ISP is filtering connections "
"to all the known Tor relays, they probably won't be able to block all the "
"bridges."
-msgstr "بعضی از سرویس دهندگان اینترنتی (ISPs) با مسدود کردن ارتباط با انتقال-دهنده های تور اقدام به منع دسترسی کاربران به شبکه تور می کنند. پل های انتقالی (و یا صورت کوتاه شده آن، \"پل ها\") انتقال دهنده هایی هستند که به کاربران سانسور شده کمک می کند به شبکه تور دسترسی یابند. برخلاف دیگر انتقال دهنده های تور، پل ها در فهرست عمومی انتقال دهنده های معمولی وارد نشده اند. از آنجایی که هیچ فهرست عمومی کاملی از این پل ها موجود نیست، حتی از ISP شما دسترسی به تمام انتقال دهنده های شناخته شده ی تور را فیلتر می کند، به احتمال زیاد قادر نخواهد بود تمامی پل ها را مسدود
کند."
+msgstr "بعضی از سرویس دهندگان اینترنتی (ISPs) با مسدود کردن ارتباط با انتقال-دهنده های تور اقدام به منع دسترسی کاربران به شبکه تُر می کنند. پل های انتقالی (و یا صورت کوتاه شده آن، \"پل ها\") انتقال دهنده هایی هستند که به کاربران سانسور شده کمک می کند به شبکه تُر دسترسی یابند. برخلاف دیگر انتقال دهنده های تُر، پل ها در فهرست عمومی انتقال دهنده های معمولی وارد نشده اند. از آنجایی که هیچ فهرست عمومی کاملی از این پل ها موجود نیست، حتی از ISP شما دسترسی به تمام انتقال دهنده های شناخته شده ی تُر را فیلتر می کند، به احتمال زیاد قادر نخواهد بود تمامی پل ها را مسدود
کند."
#. type: Content of: <html><body>
#: en/bridges.html:31
@@ -80,7 +81,7 @@ msgid ""
" of their Relay page. Unlike running an exit relay, running a bridge relay "
"just passes data to and from the Tor network, so it shouldn't expose the "
"operator to any abuse complaints."
-msgstr "برای استفاده از پل های خصوصی از دوستانتان بخواهید Vidlia و Tor را در فضای سانسور نشده اینترنت نصب فعال کنند و سپس روی <i>Help censored users</i> در صفحه تنظیمات انتقال دهنده درVidalia <a href=\"server.html\"> کلیک کنند. حالا می توانند به طور خصوصی جمله <i>Bridge address</i> در پایین صفحه انتقال دهنده خود را برای شما ارسال کنند. فعال سازی پل انتقال دهنده، برخلاف فعال سازی انتقال دهنده خروج، تنها آمار را از شبکه Tor به مقصد و بالعکس منتقل می کند و قاعدتن نمی بایست باعث شکایت از عامل به دلیل نقض مقررات بشود."
+msgstr "برای استفاده از پل های خصوصی از دوستانتان بخواهید Vidlia و تُر را در فضای سانسور نشده اینترنت نصب فعال کنند و سپس روی <i>Help censored users</i> در صفحه تنظیمات انتقال دهنده درVidalia <a href=\"server.html\"> کلیک کنند. حالا می توانند به طور خصوصی جمله <i>Bridge address</i> در پایین صفحه انتقال دهنده خود را برای شما ارسال کنند. فعال سازی پل انتقال دهنده، برخلاف فعال سازی انتقال دهنده خروج، تنها آمار را از شبکه تُر به مقصد و بالعکس منتقل می کند و قاعدتن نمی بایست باعث شکایت از عامل به دلیل نقض مقررات بشود."
#. type: Content of: <html><body><p>
#: en/bridges.html:52
@@ -100,4 +101,4 @@ msgstr "آدرس پل های عمومی را می توانید در صفحه htt
msgid ""
"Configuring more than one bridge address will make your Tor connection more "
"stable, in case some of the bridges become unreachable."
-msgstr "برای مواقعی که بعضی از پل ها در دسترس نیستند، فعال کردن آدرس بیش از یک پل، ارتباط Tor شما را تقویت می کند."
+msgstr "برای مواقعی که بعضی از پل ها در دسترس نیستند، فعال کردن آدرس بیش از یک پل، ارتباط تُر شما را تقویت می کند."
1
0

[translation/vidalia_help] Update translations for vidalia_help
by translation@torproject.org 24 Oct '12
by translation@torproject.org 24 Oct '12
24 Oct '12
commit 9ca2d74161c6b1894038436950cee282cf520fe4
Author: Translation commit bot <translation(a)torproject.org>
Date: Wed Oct 24 11:45:22 2012 +0000
Update translations for vidalia_help
---
fa/bridges.po | 13 +++++++------
1 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/fa/bridges.po b/fa/bridges.po
index 4d0840f..46f15ed 100644
--- a/fa/bridges.po
+++ b/fa/bridges.po
@@ -1,6 +1,7 @@
#
# Translators:
# <aalaeiarash(a)gmail.com>, 2011.
+# <joe_ironsmith(a)yahoo.com>, 2012.
# runasand <runa.sandvik(a)gmail.com>, 2011.
# <s.sampad(a)gmail.com>, 2012.
msgid ""
@@ -8,14 +9,14 @@ msgstr ""
"Project-Id-Version: The Tor Project\n"
"Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n"
"POT-Creation-Date: 2010-06-26 16:58+0200\n"
-"PO-Revision-Date: 2012-03-28 22:39+0000\n"
-"Last-Translator: ssampad <s.sampad(a)gmail.com>\n"
+"PO-Revision-Date: 2012-10-24 11:21+0000\n"
+"Last-Translator: Joe.Ironsmith <joe_ironsmith(a)yahoo.com>\n"
"Language-Team: LANGUAGE <LL(a)li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fa\n"
-"Plural-Forms: nplurals=1; plural=0\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
#. type: Content of: <html><body><h1>
#: en/bridges.html:16
@@ -43,7 +44,7 @@ msgid ""
"no complete public list of them, even if your ISP is filtering connections "
"to all the known Tor relays, they probably won't be able to block all the "
"bridges."
-msgstr "بعضی از سرویس دهندگان اینترنتی (ISPs) با مسدود کردن ارتباط با انتقال-دهنده های تور اقدام به منع دسترسی کاربران به شبکه تور می کنند. پل های انتقالی (و یا صورت کوتاه شده آن، \"پل ها\") انتقال دهنده هایی هستند که به کاربران سانسور شده کمک می کند به شبکه تور دسترسی یابند. برخلاف دیگر انتقال دهنده های تور، پل ها در فهرست عمومی انتقال دهنده های معمولی وارد نشده اند. از آنجایی که هیچ فهرست عمومی کاملی از این پل ها موجود نیست، حتی از ISP شما دسترسی به تمام انتقال دهنده های شناخته شده ی تور را فیلتر می کند، به احتمال زیاد قادر نخواهد بود تمامی پل ها را مسدود
کند."
+msgstr "بعضی از سرویس دهندگان اینترنتی (ISPs) با مسدود کردن ارتباط با انتقال-دهنده های تور اقدام به منع دسترسی کاربران به شبکه تُر می کنند. پل های انتقالی (و یا صورت کوتاه شده آن، \"پل ها\") انتقال دهنده هایی هستند که به کاربران سانسور شده کمک می کند به شبکه تُر دسترسی یابند. برخلاف دیگر انتقال دهنده های تُر، پل ها در فهرست عمومی انتقال دهنده های معمولی وارد نشده اند. از آنجایی که هیچ فهرست عمومی کاملی از این پل ها موجود نیست، حتی از ISP شما دسترسی به تمام انتقال دهنده های شناخته شده ی تُر را فیلتر می کند، به احتمال زیاد قادر نخواهد بود تمامی پل ها را مسدود
کند."
#. type: Content of: <html><body>
#: en/bridges.html:31
@@ -80,7 +81,7 @@ msgid ""
" of their Relay page. Unlike running an exit relay, running a bridge relay "
"just passes data to and from the Tor network, so it shouldn't expose the "
"operator to any abuse complaints."
-msgstr "برای استفاده از پل های خصوصی از دوستانتان بخواهید Vidlia و Tor را در فضای سانسور نشده اینترنت نصب فعال کنند و سپس روی <i>Help censored users</i> در صفحه تنظیمات انتقال دهنده درVidalia <a href=\"server.html\"> کلیک کنند. حالا می توانند به طور خصوصی جمله <i>Bridge address</i> در پایین صفحه انتقال دهنده خود را برای شما ارسال کنند. فعال سازی پل انتقال دهنده، برخلاف فعال سازی انتقال دهنده خروج، تنها آمار را از شبکه Tor به مقصد و بالعکس منتقل می کند و قاعدتن نمی بایست باعث شکایت از عامل به دلیل نقض مقررات بشود."
+msgstr "برای استفاده از پل های خصوصی از دوستانتان بخواهید Vidlia و تُر را در فضای سانسور نشده اینترنت نصب فعال کنند و سپس روی <i>Help censored users</i> در صفحه تنظیمات انتقال دهنده درVidalia <a href=\"server.html\"> کلیک کنند. حالا می توانند به طور خصوصی جمله <i>Bridge address</i> در پایین صفحه انتقال دهنده خود را برای شما ارسال کنند. فعال سازی پل انتقال دهنده، برخلاف فعال سازی انتقال دهنده خروج، تنها آمار را از شبکه تُر به مقصد و بالعکس منتقل می کند و قاعدتن نمی بایست باعث شکایت از عامل به دلیل نقض مقررات بشود."
#. type: Content of: <html><body><p>
#: en/bridges.html:52
@@ -100,4 +101,4 @@ msgstr "آدرس پل های عمومی را می توانید در صفحه htt
msgid ""
"Configuring more than one bridge address will make your Tor connection more "
"stable, in case some of the bridges become unreachable."
-msgstr "برای مواقعی که بعضی از پل ها در دسترس نیستند، فعال کردن آدرس بیش از یک پل، ارتباط Tor شما را تقویت می کند."
+msgstr "برای مواقعی که بعضی از پل ها در دسترس نیستند، فعال کردن آدرس بیش از یک پل، ارتباط تُر شما را تقویت می کند."
1
0

[translation/tsum_completed] Update translations for tsum_completed
by translation@torproject.org 24 Oct '12
by translation@torproject.org 24 Oct '12
24 Oct '12
commit 6d965b3ff284f485fafbdddc39214c57dad996cc
Author: Translation commit bot <translation(a)torproject.org>
Date: Wed Oct 24 11:45:11 2012 +0000
Update translations for tsum_completed
---
fa/short-user-manual_fa_noimg.xhtml | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/fa/short-user-manual_fa_noimg.xhtml b/fa/short-user-manual_fa_noimg.xhtml
index c0b1f13..71e442d 100644
--- a/fa/short-user-manual_fa_noimg.xhtml
+++ b/fa/short-user-manual_fa_noimg.xhtml
@@ -22,12 +22,12 @@
<p><strong>توجه</strong>: Tor Browser Bundle برای لینوکس و سیستم عامل مک حجم بالایی دارند و شما نمیتوانید هیچکدام از این بستهها را طریق اکانت جیمیل، هاتمیل و یا یاهو دریافت کنید. اگر نتوانستید بسته مورد نظر خود را دریافت کنید به آدرس help(a)rt.torproject.org ایمیل بفرستید و ما لیستی از وبسایتهای جایگزین برای دانلود برای شما خواهیم فرستاد.</p>
<h3 id="tor-for-smartphones">تور برای تلفن های هوشمند</h3>
<p>شما می توانید تور را برای دستگاه های حاوی سیستم عامل اندرویید با نصب بسته ای به نام Orbot راه اندازی کنید. برای اطلاعات بیشتر برای نحوه دریافت و نصب این بسته به آدرس زیر مراجعه کنید <a href="https://www.torproject.org/docs/android.html.en">Tor Project website</a>.</p>
- <p>ما همچنین بسته های آزمایشی برای نوکیا <a href="https://www.torproject.org/docs/N900.html.en">Nokia Maemo/N900</a> و سیستم عامل اپل <a href="http://sid77.slackware.it/iphone/">Apple iOS</a> داریم.</p>
+ <p>همچنين ما يك بسته تجربي براي <a href="https://www.torproject.org/docs/N900.html.en">Nokia Maemo/N900</a> and <a href="http://sid77.slackware.it/ios/">Apple iOS</a> داريم.</p>
<h3 id="how-to-verify-that-you-have-the-right-version">چگونه از سالم بودن نسخه خود پیش از استفاده از آن اطمینان حاصل کنیم</h3>
<p>پیش از استفاده از بسته مرورگر تور، باید از صحت نسخه ای که دریافت کرده اید اطمینان حاصل کنید.</p>
<p>نرمافزاری که شما دریافت میکنید، به وسیلهی یک فایل همنام با بسته و با پسوند <strong>.asc</strong> همراهی میشود. این فایل .asc یک امضای GPG است و یه شما اجازه میدهد که بررسی کنید که آیا این فایلی که شما دانلود کردهاید، دقیقا همان فایلی هست که ما انتظار داشتیم شما بگیرید یا نه.</p>
<p>قبل از این که شما بتوانید امضا را بررسی کنید، باید GnuPG را دانلود و نصب کنید:</p>
- <p><strong>ویندوز</strong>: <a href="http://gpg4win.org/download.html">http://gpg4win.org/download.html</a><br/><strong>Mac OS X</strong>: <a href="http://macgpg.sourceforge.net/">http://macgpg.sourceforge.net/</a><br/><strong>گنو/لینوکس</strong>: بیشتر دیستروهای گنو/لینوکس همراه GnuPG از پیش نصبشده ارائه میشوند.</p>
+ <p><strong>ویندوز</strong>: <a href="http://gpg4win.org/download.html">http://gpg4win.org/download.html</a><br/><strong>Mac OS X</strong>: <a href="http://www.gpgtools.org/">http://www.gpgtools.org/</a><br/><strong>Linux</strong>: Most Linux distributions come with GnuPG preinstalled.</p>
<p>لطفا به این نکته توجه کنید که شما ممکن است نیاز داشته باشید که مسیرها و فرمانهایی را که در زیر استفاده شده است، برای این که در سیستم شما کار کند، ویرایش کنید.</p>
<p>ارین کلارک (Erinn Clark) بسته مرورگر تور را با کلید 0x63FEE659 امضا میکند. برای دریافت کلید ارین، این دستور را اجرا کنید:</p>
<pre>
@@ -57,7 +57,7 @@ sub 2048R/EB399FD7 2003-10-16
<p>خروجی باید بگوید <em>&quot;Good signature&quot;</em>. یک امضای بد یعنی فایل ممکن است دستکاری شده باشد. اگر شما یک امضای بد دیدید، جزییات این که فایل را از کجا دانلود کردید، چگونه امضا را بررسی کردید، و خروجی GnuPG را به نشانی help(a)rt.torproject.org ایمیل بزنید.</p>
<p>پس از این که شما امضا را تایید کردید و خروجی &quot;Good Signature&quot; را دیدید، ادامه داده و فایل را از حالت فشرده خارج کنید. شما باید یک دایرکتوری مشابه tor-browser_en-US ببینید. در داخل این دایرکتوری یک دایرکتوری دیگر به نام Docs ( اسناد) قرار دارد که شامل یک فایل به نام changelog ( گزارش تغییرات ) است. اطمینان حاصل کنید که شماره نسخه ذکر شده در این خط بالای این فایل مشابه شماره نسخه ذکر شده در فایل برنامه است.</p>
<h3 id="how-to-use-the-tor-browser-bundle">چگونگی استفاده از بسته مرورگر تور</h3>
- <p>پس از دریافت مرورگر تور و بازگشایی بسته شما باید یک دایرکتوری با تعدادی فایل درونش داشته باشید. یکی از این فایل ها یک فایل اجرایی به نام &quot;Start Tor Browser&quot; یا &quot;start-tor-browser&quot; بسته به سیستم عامل است.</p>
+ <p>بعد از دانلود كردن بسته مرورگر تُر، بسته را روي دسكتاپ يا يو اس بي از حالت فشرده خارج سازيد. حال بايد يك دايركتوري با تعدادي فايل داشته باشيد. يكي از آنها فايلي اجرايي با نام "Start Tor Browser" (يا "start-tor-browser"، بسته به نوع سيستم عامل شما) است.</p>
<p>وقتی که شما بسته مرورگر تور را اجرا میکنید، در ابتدا میبینید که ویدالیا اجرا شده و شما را به شبکهی تور وصل میکند. بعد از آن، شما یک مرورگر میبینید که تایید میکند که شما هماکنون از تور استفاده میکنید. این کار به وسیلهی نمایش <a href="https://check.torproject.org/">https://check.torproject.org/</a> انجام میگیرد. اکنون شما میتوانید از راه تور، به مرور اینترنت بپردازید.</p>
<p>
<em>لطفا توجه کنید که این نکته مهم است که شما از مرورگری که همراه بسته است استفاده کنید، نه مرورگر خودتان.</em>
1
0
commit 7386348aba41a76ad8863b4cbb175d954f69c879
Author: Translation commit bot <translation(a)torproject.org>
Date: Wed Oct 24 11:45:09 2012 +0000
Update translations for tsum
---
fa/short-user-manual_fa_noimg.xhtml | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/fa/short-user-manual_fa_noimg.xhtml b/fa/short-user-manual_fa_noimg.xhtml
index 264bde4..71e442d 100644
--- a/fa/short-user-manual_fa_noimg.xhtml
+++ b/fa/short-user-manual_fa_noimg.xhtml
@@ -22,7 +22,7 @@
<p><strong>توجه</strong>: Tor Browser Bundle برای لینوکس و سیستم عامل مک حجم بالایی دارند و شما نمیتوانید هیچکدام از این بستهها را طریق اکانت جیمیل، هاتمیل و یا یاهو دریافت کنید. اگر نتوانستید بسته مورد نظر خود را دریافت کنید به آدرس help(a)rt.torproject.org ایمیل بفرستید و ما لیستی از وبسایتهای جایگزین برای دانلود برای شما خواهیم فرستاد.</p>
<h3 id="tor-for-smartphones">تور برای تلفن های هوشمند</h3>
<p>شما می توانید تور را برای دستگاه های حاوی سیستم عامل اندرویید با نصب بسته ای به نام Orbot راه اندازی کنید. برای اطلاعات بیشتر برای نحوه دریافت و نصب این بسته به آدرس زیر مراجعه کنید <a href="https://www.torproject.org/docs/android.html.en">Tor Project website</a>.</p>
- <p>We also have experimental packages for <a href="https://www.torproject.org/docs/N900.html.en">Nokia Maemo/N900</a> and <a href="http://sid77.slackware.it/ios/">Apple iOS</a>.</p>
+ <p>همچنين ما يك بسته تجربي براي <a href="https://www.torproject.org/docs/N900.html.en">Nokia Maemo/N900</a> and <a href="http://sid77.slackware.it/ios/">Apple iOS</a> داريم.</p>
<h3 id="how-to-verify-that-you-have-the-right-version">چگونه از سالم بودن نسخه خود پیش از استفاده از آن اطمینان حاصل کنیم</h3>
<p>پیش از استفاده از بسته مرورگر تور، باید از صحت نسخه ای که دریافت کرده اید اطمینان حاصل کنید.</p>
<p>نرمافزاری که شما دریافت میکنید، به وسیلهی یک فایل همنام با بسته و با پسوند <strong>.asc</strong> همراهی میشود. این فایل .asc یک امضای GPG است و یه شما اجازه میدهد که بررسی کنید که آیا این فایلی که شما دانلود کردهاید، دقیقا همان فایلی هست که ما انتظار داشتیم شما بگیرید یا نه.</p>
@@ -57,7 +57,7 @@ sub 2048R/EB399FD7 2003-10-16
<p>خروجی باید بگوید <em>&quot;Good signature&quot;</em>. یک امضای بد یعنی فایل ممکن است دستکاری شده باشد. اگر شما یک امضای بد دیدید، جزییات این که فایل را از کجا دانلود کردید، چگونه امضا را بررسی کردید، و خروجی GnuPG را به نشانی help(a)rt.torproject.org ایمیل بزنید.</p>
<p>پس از این که شما امضا را تایید کردید و خروجی &quot;Good Signature&quot; را دیدید، ادامه داده و فایل را از حالت فشرده خارج کنید. شما باید یک دایرکتوری مشابه tor-browser_en-US ببینید. در داخل این دایرکتوری یک دایرکتوری دیگر به نام Docs ( اسناد) قرار دارد که شامل یک فایل به نام changelog ( گزارش تغییرات ) است. اطمینان حاصل کنید که شماره نسخه ذکر شده در این خط بالای این فایل مشابه شماره نسخه ذکر شده در فایل برنامه است.</p>
<h3 id="how-to-use-the-tor-browser-bundle">چگونگی استفاده از بسته مرورگر تور</h3>
- <p>After downloading the Tor Browser Bundle, extract the package onto your desktop or a USB stick. You should have a directory containing a few files. One of the files is an executable called "Start Tor Browser" (or "start-tor-browser", depending on your operating system).</p>
+ <p>بعد از دانلود كردن بسته مرورگر تُر، بسته را روي دسكتاپ يا يو اس بي از حالت فشرده خارج سازيد. حال بايد يك دايركتوري با تعدادي فايل داشته باشيد. يكي از آنها فايلي اجرايي با نام "Start Tor Browser" (يا "start-tor-browser"، بسته به نوع سيستم عامل شما) است.</p>
<p>وقتی که شما بسته مرورگر تور را اجرا میکنید، در ابتدا میبینید که ویدالیا اجرا شده و شما را به شبکهی تور وصل میکند. بعد از آن، شما یک مرورگر میبینید که تایید میکند که شما هماکنون از تور استفاده میکنید. این کار به وسیلهی نمایش <a href="https://check.torproject.org/">https://check.torproject.org/</a> انجام میگیرد. اکنون شما میتوانید از راه تور، به مرور اینترنت بپردازید.</p>
<p>
<em>لطفا توجه کنید که این نکته مهم است که شما از مرورگری که همراه بسته است استفاده کنید، نه مرورگر خودتان.</em>
1
0

[translation/liveusb-creator] Update translations for liveusb-creator
by translation@torproject.org 24 Oct '12
by translation@torproject.org 24 Oct '12
24 Oct '12
commit 561850c893f11279d71225befc36ffbf16a5a627
Author: Translation commit bot <translation(a)torproject.org>
Date: Wed Oct 24 11:15:37 2012 +0000
Update translations for liveusb-creator
---
fa/fa.po | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/fa/fa.po b/fa/fa.po
index 6b0c7cb..f7b8242 100644
--- a/fa/fa.po
+++ b/fa/fa.po
@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: The Tor Project\n"
"Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n"
"POT-Creation-Date: 2012-04-13 14:16+0200\n"
-"PO-Revision-Date: 2012-10-24 10:37+0000\n"
+"PO-Revision-Date: 2012-10-24 11:12+0000\n"
"Last-Translator: Joe.Ironsmith <joe_ironsmith(a)yahoo.com>\n"
"Language-Team: LANGUAGE <LL(a)li.org>\n"
"MIME-Version: 1.0\n"
@@ -97,7 +97,7 @@ msgid ""
"Warning: The Master Boot Record on your device does not match your system's "
"syslinux MBR. If you have trouble booting this stick, try running the "
"liveusb-creator with the --reset-mbr option."
-msgstr ""
+msgstr "هشدار: Master Boot Record دستگاه شما با syslinux MBR سيستمتان سازگار نيست. اگر مشكلي با بوت شدن اين يو اس بي داريد، اجراي فرمان liveusb-creator را با --reset-mbr امتحان كنيد."
#: ../liveusb/gui.py:638
msgid "Unable to mount device"
1
0

[translation/orbot_completed] Update translations for orbot_completed
by translation@torproject.org 24 Oct '12
by translation@torproject.org 24 Oct '12
24 Oct '12
commit f17e6924e081f9d52a3bcb655013d1257615c328
Author: Translation commit bot <translation(a)torproject.org>
Date: Wed Oct 24 11:15:08 2012 +0000
Update translations for orbot_completed
---
values-fa/strings.xml | 126 ++++++++++++++++++++++++++----------------------
1 files changed, 68 insertions(+), 58 deletions(-)
diff --git a/values-fa/strings.xml b/values-fa/strings.xml
index 43a8b8a..7afc086 100644
--- a/values-fa/strings.xml
+++ b/values-fa/strings.xml
@@ -1,16 +1,16 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
- <string name="app_name">رباط پیازی</string>
+ <string name="app_name">ربات پیازی</string>
<string name="internal_web_url">https://guardianproject.info/apps/orbot/</string>
<string name="default_web_url">https://check.torproject.org/?lang=fa_IR</string>
<string name="secure_default_web_url">https://check.torproject.org/?lang=fa_IR</string>
<string name="tor_check_api_url">https://check.torproject.org/?TorButton=true</string>
<string name="control_permission_label">شروع و پایان تور</string>
<string name="tor_proxy_service_process">سرويس پروکسی تور</string>
- <string name="status_starting_up">رباط پیازی درحال آغاز است...</string>
+ <string name="status_starting_up">ربات پیازی درحال آغاز است...</string>
<string name="status_activated">پیوسته به شبکه تور</string>
- <string name="status_disabled">رباط پیازی غیرفعال شده است.</string>
- <string name="status_shutting_down">رباط پیازی در حال بسته شدن است.</string>
+ <string name="status_disabled">ربات پیازی غیرفعال شده است.</string>
+ <string name="status_shutting_down">ربات پیازی در حال بسته شدن است.</string>
<string name="tor_process_starting">شروع کلاینت تور...</string>
<string name="tor_process_complete">تمام.</string>
<string name="tor_process_waiting">در حال انتظار.</string>
@@ -25,6 +25,8 @@
<string name="menu_stop">ایست</string>
<string name="menu_about">درباره</string>
<string name="menu_wizard">Wizard</string>
+ <string name="main_layout_download">دانلود</string>
+ <string name="main_layout_upload">آپلود</string>
<string name="button_help">کمک</string>
<string name="button_close">بسته</string>
<string name="button_about">درباره</string>
@@ -39,85 +41,93 @@
<string name="pref_transparent_all_summary">فعالیت همه اپلیکیشن ها را از طریق تور پروکسی کنید.</string>
<string name="pref_transparent_port_fallback_title">قطع پروکسی پورت</string>
<string name="pref_transparent_port_fallback_summary">هشدار: پورتهای رایج دور زدن (80, 444, غیره). *فقط در شرایطی استفاده کنید* که حالت های \'همه\' یا \'اپلیکیشن\' کار نمیکند.</string>
- <string name="pref_transparent_port_title">فهرست پرتها</string>
+ <string name="pref_transparent_port_title">فهرست پورتها</string>
<string name="pref_transparent_port_summary">فهرست پرتها به پروکسی.*فقط در شرایطی استفاده کنید* که حالت های \'همه\' یا \'اپلیکیشن\' کار نمیکند.</string>
- <string name="pref_transparent_port_dialog">ورود پرت به پروکسی</string>
+ <string name="pref_transparent_port_dialog">ورود پورت به پروکسی</string>
<string name="pref_has_root">درخواست دسترسی root</string>
- <string name="pref_has_root_summary"> برای پروکسی کردن شفاف rootدرخواست دسترسی به </string>
+ <string name="pref_has_root_summary"> درخواست دسترسی رون برای پروکسی کردن شفاف </string>
<string name="status_install_success">باینری های تور با موفقیت نصب شدند!</string>
<string name="status_install_fail">نصب فایل های دوتایی تور ممکن نبود. لطفن قطعه را وارسی کنید و به tor-assistance(a)torproject.org اطلاع دهید.</string>
<string name="title_error">خطای اپلیکیشین</string>
- <string name="wizard_title">به رباط پیازی خوش آمدید</string>
- <string name="wizard_btn_tell_me_more">درباره رباط پیازی</string>
+ <string name="wizard_title">به ربات پیازی خوش آمدید</string>
+ <string name="wizard_btn_tell_me_more">درباره ربات پیازی</string>
<string name="btn_next">بعدی</string>
<string name="btn_back">بازگشت</string>
<string name="btn_finish">پایان</string>
<string name="btn_okay">قبول</string>
<string name="btn_cancel">لغو</string>
<!--Welcome Wizard strings (DJH)-->
- <string name="wizard_details">برخی جزییات درباره رباط پیازی</string>
- <string name="wizard_details_msg">رباط پیازی اپلیکیشنی با متن-باز است که شامل تور, LibEvent و Privoxy. این اپلیکیشن، HTTP پروکسی (8118) محلی و SOCKS پروکسی (9050) را در شبکه Tor در دسترس قرار می دهد. اوربات همچنین قادر است بر روی ابزار root شده، تمام ترافیک اینترنت را از Tor ارسال کند.</string>
+ <string name="wizard_details">برخی جزییات درباره ربات پیازی</string>
+ <string name="wizard_details_msg">ربات پیازی اپلیکیشنی با متن-باز است که شامل تور, LibEvent و Privoxy میشود. این اپلیکیشن، HTTP پروکسی (8118) محلی و SOCKS پروکسی (9050) را در شبکه Tor در دسترس قرار می دهد. ربات پیازی همچنین قادر است بر روی ابزار root شده، تمام ترافیک اینترنت را از Tor ارسال کند.</string>
<string name="wizard_permissions_root">مجوز صادر گردید</string>
- <string name="wizard_permissions_stock">مجوزهای رباط پیازی</string>
- <string name="wizard_premissions_msg_root">بسیار عالی! اینطور که معلوم است شما دارای مجوز root برای فعال کردن رباط پیازی هستید. این امکان را بخوبی مورد استفاده قرار خواهیم داد.</string>
- <string name="wizard_permissions_msg_stock">هرچند ضرورت ندارد اما اگر سیستم شما دارای دسترسی root باشد اوربات با ظرفیت بسیار بیشتری عمل خواهد کرد. دکمه زیر را فشار دهید تا رباط پیازی دارای ظرفیت حداکثری بشود.</string>
- <string name="wizard_permissions_no_root">اگر سیستم شما دارای دسترسی root نیست و یا اصلن چیزی از این عبارت متوجه نمی شوید، حتمن سعی کنید از اپلکیشن هایی استفاده کنید که ویژه رباط پیازی تهیه شده اند.</string>
+ <string name="wizard_permissions_stock">مجوزهای ربات پیازی</string>
+ <string name="wizard_premissions_msg_root">بسیار عالی! اینطور که معلوم است شما دارای مجوز root برای فعال کردن ربات پیازی هستید. این امکان را بخوبی مورد استفاده قرار خواهیم داد.</string>
+ <string name="wizard_permissions_msg_stock">هرچند ضرورت ندارد اما اگر سیستم شما دارای دسترسی root باشد ربات پیازی با ظرفیت بسیار بیشتری عمل خواهد کرد. دکمه زیر را فشار دهید تا ربات پیازی دارای ظرفیت حداکثری بشود.</string>
+ <string name="wizard_permissions_no_root">اگر سیستم شما دارای دسترسی root نیست و یا اصلا چیزی از این عبارت متوجه نمی شوید، حتما سعی کنید از اپلکیشن هایی استفاده کنید که ویژه ربات پیازی تهیه شده اند.</string>
<string name="wizard_permissions_consent">متوجه هستم و ترجیح می دهم بدون root ادامه بدهم.</string>
- <string name="wizard_permission_enable_root">واگذاری root برای رباط پیازی</string>
+ <string name="wizard_permission_enable_root">واگذاری دسترسی root برای ربات پیازی</string>
<string name="wizard_configure">تنظیمات تبدیل به تور</string>
- <string name="wizard_configure_msg">رباط پیازی به شما امکان می دهد که تمام اپلیکشین ها را از طریق توز منتقل کنید و یا اپلیکیشن مورد نظر خود را شخصن انتخاب کنید.</string>
+ <string name="wizard_configure_msg">ربات پیازی به شما امکان می دهد که تمام اپلیکشین ها را از طریق توز منتقل کنید و یا اپلیکیشن مورد نظر خود را شخصن انتخاب کنید.</string>
<string name="wizard_configure_all">تمام اپلیکیشن ها را از طریق تور منتقل کنید.</string>
<string name="wizard_configure_select_apps">اپلیکیشن های منفرد برای تور انتخاب کنید.</string>
- <string name="wizard_tips_tricks">اپلیکیشن هایی که برای رباط پیازی تنظیم شده اند</string>
- <string name="wizard_tips_msg">توصیه می کنیم داون لود و فعال کنید؛ اپلیکیشن هایی را استفاده کنید که مستقیم به رباط پیازی وصل می شوند. دکمه های زیر را فشار دهید تا نصب شود.</string>
- <string name="wizard_tips_otrchat">رباط پرچونه - کلاینت گفتگوی امن برای اندروید</string>
- <string name="wizard_tips_proxy">تنظیمات پروکسی - یادگیری تنظیم اپلیکیشن ها برای کار با رباط پیازی</string>
+ <string name="wizard_tips_tricks">اپلیکیشن هایی که برای ربات پیازی تنظیم شده اند</string>
+ <string name="wizard_tips_msg">توصیه می کنیم داونلود و فعال کنید؛ اپلیکیشن هایی را استفاده کنید که مستقیم به ربات پیازی وصل می شوند. دکمه های زیر را فشار دهید تا نصب شود.</string>
+ <string name="wizard_tips_otrchat">ربات پرچونه - کلاینت گفتگوی امن برای اندروید</string>
+ <string name="wizard_tips_proxy">تنظیمات پروکسی - یادگیری تنظیم اپلیکیشن ها برای کار با ربات پیازی</string>
+ <string name="wizard_tips_duckgo">اپلیکیشن موتور جستجوی داک داک گو</string>
+ <string name="duckgo_apk_url">https://duckduckgo.com/android/latest.apk</string>
+ <string name="wizard_tips_firefox">Proxy Mobile add-on for Firefox (http://tinyurl.com/getproxymob)</string>
+ <string name="proxymob_setup_url">https://guardianproject.info/releases/proxymob-latest.xpi</string>
+ <string name="wizard_tips_twitter">توییتر از \"http proxy \"localhost:8118 پشتیبانی می کند</string>
+ <string name="twitter_setup_url">https://guardianproject.info/2012/05/02/orbot-your-twitter/</string>
<string name="wizard_proxy_help_info">تنظیمات پروکسی</string>
- <string name="wizard_proxy_help_msg">اگر اپلیکشین آندرونوید مورد استفاده شما قابلیت کار با HTTP و یا SOCKS پروکسی دارد می توانید تنظیمش کنید تا به رباط پیازی وصل شود و از تور استفاده کند. تنظیمات سرویس دهنده 127.0.0.1 و یا \"سرویس-ده محلی\" است. برای HTTP تنظیمات درگاه port 8118 است. برای SOCKS، پروکسی مناسب، 9050 است. شما می بایست SOCKS4A و یا در صورت امکان از socks5 استفاده کنید. در صورت نیاز به اطلاعات بیشتر در مورد انتقالده اندروید، می توانید به FAQ (سوالهای معمول) در http://tinyurl.com/proxyandroid مراجعه کنید.</string>
- <string name="wizard_final">رباط پیازی آماده استفاده میباشد!</string>
+ <string name="wizard_proxy_help_msg">اگر اپلیکشین آندروید مورد استفاده شما قابلیت کار با HTTP و یا SOCKS پروکسی دارد می توانید تنظیمش کنید تا به ربات پیازی وصل شود و از تور استفاده کند. تنظیمات سرویس دهنده 127.0.0.1 و یا \"سرویس-ده محلی\" است. برای HTTP تنظیمات پورت 8118 است. برای SOCKS، پروکسی مناسب، 9050 است. شما می بایست SOCKS4A و یا در صورت امکان از socks5 استفاده کنید. در صورت نیاز به اطلاعات بیشتر در مورد انتقالده اندروید، می توانید به FAQ (سوالهای معمول) در http://tinyurl.com/proxyandroid مراجعه کنید.</string>
+ <string name="wizard_final">ربات پیازی آماده استفاده میباشد!</string>
<string name="wizard_final_msg">صدها هزار نفر در سراسر جهان به دلایل گوناگون از تور استفاده می کنند: روزنامه نویسها و بلاگرها، کارکنان حقوق بشر، ماموران انتظامی، سربازان، شرکتها، شهروندان دولتهای سرکوبگر، و شهروندان عادی، و حالا شما نیز آماده استفاده از آن هستید!</string>
<!--END Welcome Wizard strings (DJH)-->
<string name="connect_first_time">اکنون با موفقیت به شبکه تور وصل شده اید اما به آن معنا نیست که سیستم شما ایمن است. می توانید از منیو گزینه /\"Check/\" را برای آزمایش مرورگر انتخاب کنید. به ما در صفحه https://guardianproject.info/apps/orbot مراجعه کنید و به آدرس help(a)guardianproject.info ایمیلی بفرستید تا اطلاعات بیشتری دریافت کنید.</string>
- <string name="tor_check">با این قدم پیشفرض مرورگر وب شما به صفحه https://check.torproject.org باز می شود تا شما مشاهده کنید آیا رباط پیازی تنظیم شده است و آیا شما به تور وصل شده اید یا نه.</string>
+ <string name="tor_check">با این قدم پیشفرض مرورگر وب شما به صفحه https://check.torproject.org باز می شود تا شما مشاهده کنید آیا ربات پیازی تنظیم شده است و آیا شما به تور وصل شده اید یا نه.</string>
<string name="pref_hs_group">سرويس های مخفی</string>
<string name="pref_general_group">کلی</string>
- <string name="pref_start_boot_title">رباط پیازی را همزمان با بوت آغاز کن</string>
- <string name="pref_start_boot_summary">وقتی اندروید بوت شد، بصورت خودکار رباط پیازی را اجرا و آن را به شبکه تور متصل کن</string>
+ <string name="pref_start_boot_title">ربات پیازی را همزمان با بوت آغاز کن</string>
+ <string name="pref_start_boot_summary">وقتی اندروید بوت شد، بصورت خودکار ربات پیازی را اجرا و آن را به شبکه تور متصل کن</string>
<!--New Wizard Strings-->
<!--Title Screen-->
- <string name="wizard_title_msg">! را به اندروید می آورد تور قدرت رباط پیازی \n به شما کمک میکند تا در مقابل سانسور مطالب، آنالیز ترافیک و نظارت بر شبکه که حریم خصوصی افراد، اطلاعات محرمانه و روابط خصوصیتان را تهدید می کند از خود دفاع کنید. تور\nرا بر روی دستگاه خودتان انجام دهید تور و رباط پیازی این راهنما به شما کمک میکند تا تنظیمات</string>
+ <string name="wizard_title_msg">ربات پیازی قدرت تور را به اندروید می آورد \n\n\n تور به شما کمک میکند تا در مقابل سانسور مطالب، آنالیز ترافیک و نظارت بر شبکه که حریم خصوصی افراد، اطلاعات محرمانه و روابط خصوصیتان را تهدید می کند از خود دفاع کنید. \n\nاین راهنما به شما کمک میکند تا تنظیمات تور و ربات پیازی را بر روی دستگاه خودتان انجام دهید </string>
<!--Warning screen-->
<string name="wizard_warning_title">هشدار</string>
- <string name="wizard_warning_msg"> را نصب کنید بطور خودکار نمی تواند جریان اطلاعات موبایل شما را بصورت گمنام درآورد\nرباط پیازی اگر فقط \nباید آنرا به درستی تنظیم کنید، همچنین تنظیمات را بر روی دستگاه خودتان و دیگر برنامه هایی که از استفاده کنید تور اینترنت استفاده میکنند انجام دهید تا بتوانید با موفقیت از </string>
+ <string name="wizard_warning_msg">اگر فقط ربات پیازی را نصب کنید بطور خودکار نمی تواند جریان اطلاعات موبایل شما را بصورت گمنام درآورد.\n \nباید آنرا به درستی تنظیم کنید، همچنین تنظیمات را بر روی دستگاه خودتان و دیگر برنامه هایی که از تور استفاده میکنند انجام دهید تا بتوانید با موفقیت از اینترنت استفاده کنید.</string>
<!--Permissions screen-->
<string name="wizard_permissions_title">دسترسیها</string>
- <string name="wizard_permissions_root_msg1">اجازه دسترسی بدهید تا ویژگیهای پیشرفته مانند پروکسی شفاف را فعال کند رباط پیازی اگر بخواهید میتوانید به سوپر یوزر </string>
- <string name="wizard_permissions_root_msg2">اگر نمیخواهید این کار را انجام دهید ، لطفا مطمئن شوید که از اپلیکیشنهایی استفاده می کنید که با رباط پیازی کار می کنند</string>
- <string name="wizard_permissions_no_root_msg">به نظر نمیرسه که دستگاه شما root شده و یا دسترسی Superuser بدهد⏎\n⏎\nبرای بهره بردن از تور، شما باید از برنامه هایی استفاده کنید که یا برای استفاده با رباط پیازی طراحی شده اند و یا از تنظیم پروکسی SOCKS یا HTTP پشتیبانی میکنند.\n\n\n</string>
+ <string name="wizard_permissions_root_msg1">اگر بخواهید میتوانید به ربات پیازی اجازه دسترسی سوپر یوزر بدهید تا ویژگیهای پیشرفته مانند پروکسی شفاف را فعال کند </string>
+ <string name="wizard_permissions_root_msg2">اگر نمیخواهید این کار را انجام دهید ، لطفا مطمئن شوید که از اپلیکیشنهایی استفاده می کنید که با ربات پیازی کار می کنند</string>
+ <string name="wizard_permissions_no_root_msg">به نظر نمیرسه که دستگاه شما root شده و یا دسترسی Superuser بدهد⏎\n⏎\nبرای بهره بردن از تور، شما باید از برنامه هایی استفاده کنید که یا برای استفاده با ربات پیازی طراحی شده اند و یا از تنظیم پروکسی SOCKS یا HTTP پشتیبانی میکنند.\n\n\n</string>
<!--TipsAndTricks screen-->
- <string name="wizard_tips_title"> روی آنها فعال است رباط پیازی لیکیشنهایی که </string>
- <string name="wizard_tips_gibberbot">رباط پرچونه: برنامه گفتگوی امن با قابلیت گفتگوی محرمانه رمزگذاری شده</string>
+ <string name="wizard_tips_title"> اپلیکیشنهایی که ربات پیازی روی آنها فعال است</string>
+ <string name="wizard_tips_gibberbot">ربات پرچونه: برنامه گفتگوی امن با قابلیت گفتگوی محرمانه رمزگذاری شده</string>
<string name="gibberbot_apk_url">https://market.android.com/details?id=info.guardianproject.otr.app.im</string>
- <string name="wizard_tips_orweb">تارنمای پیازی: مرورگر طراحی شده برای حفظ حریم خصوصی و افزونساز رباط پیازی</string>
+ <string name="wizard_tips_orweb">مرورگر پیازی: مرورگر طراحی شده برای حفظ حریم خصوصی و افزونساز ربات پیازی</string>
<string name="orweb_apk_url">market://search?q=pname:nfo.guardianproject.browser</string>
+ <string name="wizard_tips_play">تمامي برنامه هاي Guardian Project را در Google Play پيدا كنيد.</string>
+ <string name="wizard_tips_play_url">https://play.google.com/store/search?q=guardianproject</string>
<!--<string name="wizard_tips_firefox">Firefox - Android browser - To be used along with ProxyMob Add-on </string>
<string name="wizard_tips_proxymob">ProxyMob - Simple Firefox Add-on for setting HTTP, SOCKS and SSL proxy settings</string>
<string name="firefox_apk_url">https://market.android.com/details?id=org.mozilla.firefox</string>
<string name="proxymob_url">https://addons.mozilla.org/mobile/downloads/latest/251558/type:attachment/a…</string>-->
<!--Transparent Proxy screen-->
<string name="wizard_transproxy_title">پروکسی کردن شفاف</string>
- <string name="wizard_transproxy_msg">این به برنامه های شما اجازه میدهد که بدون هیچ تنظیمی، بصورت خودکار از طریق شبکه تور اجرا شوند</string>
+ <string name="wizard_transproxy_msg">این به برنامه ها به شما اجازه میدهد که بدون هیچ تنظیمی، بصورت خودکار از طریق شبکه تور اجرا شوند</string>
<string name="wizard_transproxy_hint">(اگر هیچ ایدهای ندارید که راجع به چه چیزی حرف میزنیم این گزینه را انتخاب کنید)</string>
<string name="wizard_transproxy_none">هیـچ</string>
- <string name="pref_transparent_tethering_title">تور تترینگ از طریق </string>
- <string name="pref_transparent_tethering_summary"> - از طریق یو اس بی Tethering برای دستگاه های وای فای و تور فعال کردن پروکسی شفاف \n(به ری استارت نیاز دارند)</string>
+ <string name="pref_transparent_tethering_title"> تترینگ از طریق تور</string>
+ <string name="pref_transparent_tethering_summary">پروکسی شفاف از طریق تور را برای دستگاه هایی که با یو اس بی یا وای فای تتر شده اند مجاز کن. (به ری استارت نیاز دارند)</string>
<string name="button_grant_superuser">درخواست دسترسی برای سوپریوزر</string>
<string name="pref_select_apps">انتخاب برنامه ها</string>
- <string name="pref_select_apps_summary">تور انتخاب اپلیکیشن برای مسیریابی از طریق </string>
+ <string name="pref_select_apps_summary"> انتخاب اپلیکیشن برای مسیریابی از طریق تور </string>
<string name="pref_node_configuration">تنظیمات گره</string>
<string name="pref_node_configuration_summary">اینها تنظیمات پیشرفته ای هستند که ممکن است گمنامی شما را کاهش دهند</string>
<string name="pref_entrance_node">گره های ورودی</string>
- <string name="pref_entrance_node_summary">اثرانگشت ها، اسامی مستعار، کشورها و آدرسهای هاپ اول</string>
+ <string name="pref_entrance_node_summary">اثرانگشت ها، اسامی مستعار، کشورها و آدرسهای جهش اول</string>
<string name="pref_entrance_node_dialog">گره های ورودی را وارد کنید</string>
<!--<string name="pref_use_whispercore">Use WhisperCore</string>
<string name="pref_use_whispercore_summary">Use the proprietary NetFilter APIs provided by WhisperSystems (required device with WhisperCore installed)</string>-->
@@ -125,10 +135,10 @@
<string name="pref_proxy_type_title">نوع پروکسی</string>
<string name="pref_proxy_type_summary">پروتکل مورد استفاده برای پراکسی سرور: HTTP, HTTPS, Socks4, Socks5</string>
<string name="pref_proxy_type_dialog">نوع پروکسی را وارد کنید</string>
- <string name="pref_proxy_host_title">میزبان پروکسی</string>
- <string name="pref_proxy_host_summary">نام سرور میزبان پروکسی</string>
- <string name="pref_proxy_host_dialog">نام میزبان پروکسی را وارد کنید</string>
- <string name="pref_proxy_port_title">پورت پروکسی</string>
+ <string name="pref_proxy_host_title"> پروکسی میزبان</string>
+ <string name="pref_proxy_host_summary">نام سرور پروکسی میزبان </string>
+ <string name="pref_proxy_host_dialog">نام پروکسی میزبان را وارد کنید</string>
+ <string name="pref_proxy_port_title">پورت پروکسی خروجی</string>
<string name="pref_proxy_port_summary">پورت سرور پروکسی</string>
<string name="pref_proxy_port_dialog">پورت پروکسی را وارد کنید</string>
<string name="status">وضعیت</string>
@@ -138,21 +148,21 @@
<string name="transproxy_enabled_for_tethering_">TransProxy برای Tethering فعال شده است!</string>
<string name="warning_error_starting_transparent_proxying_">هشدار: خطا در هنگام راه اندازی پروکسی شفاف!</string>
<string name="transproxy_rules_cleared">قوانین TransProxy پاک شدند</string>
- <string name="couldn_t_start_tor_process_">فرایند تور نتواست اجرا شود:</string>
- <string name="privoxy_is_running_on_port_">پروکسی، روی پورت مقابل درحال اجراست:</string>
+ <string name="couldn_t_start_tor_process_"> تور نتواست اجرا شود:</string>
+ <string name="privoxy_is_running_on_port_">پریواکسی، روی پورت مقابل درحال اجراست:</string>
<string name="setting_up_port_based_transparent_proxying_">نصب پروکسی شفاف مبتنی بر پورت...</string>
<string name="bridge_error">خطای پل</string>
<string name="bridge_requires_ip">برای استفاده از ویژگی پل، باید حداقل آدرس IP یک پل را وارد کنید.</string>
<string name="send_email_for_bridges">از یک حساب کاربری جیمیل، ایمیلی با متن \"get bridges\" به آدرس bridges(a)torproject.org بفرستید.</string>
<string name="error">خطا</string>
<string name="your_reachableaddresses_settings_caused_an_exception_">!تنظیمات شما برای آدرس قابل دسترسی باعث ایجاد خطا شده اند </string>
- <string name="your_relay_settings_caused_an_exception_">!تنظیمات رله شما موجب خطا شده اند</string>
+ <string name="your_relay_settings_caused_an_exception_">تنظیمات رله شما موجب خطا شده اند</string>
<string name="exit_nodes">گره های خروجی</string>
- <string name="fingerprints_nicks_countries_and_addresses_for_the_last_hop">hop اثر انگشتها ، اسامی مستعار ، کشورها و آدرسها برای آخرین </string>
- <string name="enter_exit_nodes"> وارد کردن گره های خروجی</string>
- <string name="exclude_nodes">مستثنا کردن گره ها</string>
- <string name="fingerprints_nicks_countries_and_addresses_to_exclude">اثر انگشتها، اسامی مستعار ، کشورها و آدرسها بمنظور مستثنی شدن</string>
- <string name="enter_exclude_nodes">وارد کردن گره های مستثنی</string>
+ <string name="fingerprints_nicks_countries_and_addresses_for_the_last_hop">اثر انگشتها ، اسامی مستعار ، کشورها و آدرسها برای آخرین جهش </string>
+ <string name="enter_exit_nodes"> گره های خروجی را وارد کنید</string>
+ <string name="exclude_nodes">این گره ها را استفاده نکن</string>
+ <string name="fingerprints_nicks_countries_and_addresses_to_exclude">اثر انگشتها، اسامی مستعار ، کشورها و آدرسهایی که نباید استفاده شوند</string>
+ <string name="enter_exclude_nodes"> گره هایی که نباید استفاده شوند</string>
<string name="strict_nodes">گره های محدود</string>
<string name="use_only_these_specified_nodes">فقط * از این گره های مشخص شده استفاده کنید* </string>
<string name="bridges">پل ها</string>
@@ -166,7 +176,7 @@
<string name="relaying">درحال بازپخش</string>
<string name="enable_your_device_to_be_a_non_exit_relay">دستگاه خود را برای یک بازپخش کننده غیر-خروجی فعال کنید</string>
<string name="relay_port">پورت بازپخش کننده</string>
- <string name="listening_port_for_your_tor_relay"> شما Tor پورت شنونده برای باز پخش</string>
+ <string name="listening_port_for_your_tor_relay"> پورت شنونده برای باز پخش تور</string>
<string name="enter_or_port">پورت OR را وارد کنید</string>
<string name="relay_nickname">نام مستعار بازپخش کننده</string>
<string name="the_nickname_for_your_tor_relay">نام مستعار بازپخش کننده شما</string>
@@ -177,10 +187,10 @@
<string name="ports_reachable_behind_a_restrictive_firewall">پورتهای قابل دسترس پشت یک فایروال محدودکننده</string>
<string name="enter_ports">پورتها را وارد کنید</string>
<string name="enable_hidden_services">سرویسهای مخفی را فعال کن</string>
- <string name="run_servers_accessible_via_the_tor_network">سرورها را قابل دسترس توسط شبکه تور اجرا کن</string>
+ <string name="run_servers_accessible_via_the_tor_network">اجازه بده سرورهای روی دستگاه از طریق شبکه تور قابل دسترسی باشند</string>
<string name="enter_localhost_ports_for_hidden_services">پورت های لوکال هاست را برای سرویس مخفی وارد کنید</string>
<string name="hidden_service_ports">پورتهای سرویس مخفی</string>
- <string name="the_addressable_name_for_your_hidden_service_generated_automatically_">نامِ نشانی پذیر برای سرویس مخفی شما (بصورت خودکار تولید شده است)</string>
+ <string name="the_addressable_name_for_your_hidden_service_generated_automatically_">نام نشانی پذیر برای سرویس مخفی شما (بصورت خودکار تولید شده است)</string>
<string name="enable_debug_log_to_output_must_use_adb_or_alogcat_to_view_">ثبت گزارش اشکال زدایی را به خروجی فعال کن (برای نمایش باید از adb یا aLogCat استفاده کنید)</string>
<string name="project_home">صفحه (های) اصلی پروژه:</string>
<string name="project_urls">https://www.torproject.org/docs/android\nhttps://guardianproject.info/apps/…</string>
@@ -193,20 +203,20 @@
<string name="iptables_version">Iptables v1.4.7: http://www.netfilter.org</string>
<string name="openssl_version">OpenSSL v1.0.0f: http://www.openssl.org</string>
<string name="hidden_service_request">یک اپلیکیشن میخواهد پورت %S سرویس مخفی را به شبکه تور باز کند. اگر به این اپلیکیشن اعتماد دارید این بی خطر است.</string>
- <string name="found_existing_tor_process">فرایند درحال اجرای تور پیدا شد...</string>
+ <string name="found_existing_tor_process">یک تور درحال اجرا پیدا شد...</string>
<string name="something_bad_happened">اتفاق بدی افتاد. وقایع ثبت شده را چک کنید</string>
<string name="hidden_service_on">سرویس مخفی روی:</string>
<string name="unable_to_read_hidden_service_name">ناتوان در خواندن نام سرویس مخفی</string>
<string name="unable_to_start_tor">ناتوان در راه اندازی تور:</string>
<string name="pref_use_sys_iptables_title">از Iptables پیشفرض استفاده کن</string>
- <string name="pref_use_sys_iptables_summary">به جای چیزی که با اوربت اومده، از باینری آی پی تیبلز داخلی استفاده کن</string>
+ <string name="pref_use_sys_iptables_summary">به جای چیزی که با ربات پیازی اومده، از باینری آی پی تیبلز داخلی استفاده کن</string>
<string name="error_installing_binares">فایلهای باینری تور قادر به نصب و یا ارتقا نبودند</string>
- <string name="pref_use_persistent_notifications">وقتی اوربوت متصل است، همیشه آیکون مربوط را در نوار ابزار نگه دار.</string>
+ <string name="pref_use_persistent_notifications">وقتی ربات پیازی متصل است، همیشه آیکون مربوط را در نوار ابزار نگه دار.</string>
<string name="pref_use_persistent_notifications_title">آگاهسازی همیشه روشن</string>
<string name="notification_using_bridges">پل ها فعال شدند!</string>
<string name="default_bridges"/>
<string name="set_locale_title">زبان محلی را مشخص کنید</string>
- <string name="set_locale_summary">زبان محلی رباط پیازی را انتخاب کنید</string>
+ <string name="set_locale_summary">زبان محلی ربات پیازی را انتخاب کنید</string>
<string name="wizard_locale_title">انتخاب زبان</string>
<string name="wizard_locale_msg">زبان کنونی را تعویض و یا به شکل پیشفرض رهایش کنید</string>
<string name="powered_by">نیرو گرفته از پروژه تور</string>
1
0

24 Oct '12
commit 7f5157b5ca731c81e9608ad1117af98e2acea985
Author: Translation commit bot <translation(a)torproject.org>
Date: Wed Oct 24 11:15:06 2012 +0000
Update translations for orbot
---
values-fa/strings.xml | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/values-fa/strings.xml b/values-fa/strings.xml
index 4cbbb18..7afc086 100644
--- a/values-fa/strings.xml
+++ b/values-fa/strings.xml
@@ -75,7 +75,11 @@
<string name="wizard_tips_otrchat">ربات پرچونه - کلاینت گفتگوی امن برای اندروید</string>
<string name="wizard_tips_proxy">تنظیمات پروکسی - یادگیری تنظیم اپلیکیشن ها برای کار با ربات پیازی</string>
<string name="wizard_tips_duckgo">اپلیکیشن موتور جستجوی داک داک گو</string>
+ <string name="duckgo_apk_url">https://duckduckgo.com/android/latest.apk</string>
+ <string name="wizard_tips_firefox">Proxy Mobile add-on for Firefox (http://tinyurl.com/getproxymob)</string>
+ <string name="proxymob_setup_url">https://guardianproject.info/releases/proxymob-latest.xpi</string>
<string name="wizard_tips_twitter">توییتر از \"http proxy \"localhost:8118 پشتیبانی می کند</string>
+ <string name="twitter_setup_url">https://guardianproject.info/2012/05/02/orbot-your-twitter/</string>
<string name="wizard_proxy_help_info">تنظیمات پروکسی</string>
<string name="wizard_proxy_help_msg">اگر اپلیکشین آندروید مورد استفاده شما قابلیت کار با HTTP و یا SOCKS پروکسی دارد می توانید تنظیمش کنید تا به ربات پیازی وصل شود و از تور استفاده کند. تنظیمات سرویس دهنده 127.0.0.1 و یا \"سرویس-ده محلی\" است. برای HTTP تنظیمات پورت 8118 است. برای SOCKS، پروکسی مناسب، 9050 است. شما می بایست SOCKS4A و یا در صورت امکان از socks5 استفاده کنید. در صورت نیاز به اطلاعات بیشتر در مورد انتقالده اندروید، می توانید به FAQ (سوالهای معمول) در http://tinyurl.com/proxyandroid مراجعه کنید.</string>
<string name="wizard_final">ربات پیازی آماده استفاده میباشد!</string>
@@ -104,6 +108,8 @@
<string name="gibberbot_apk_url">https://market.android.com/details?id=info.guardianproject.otr.app.im</string>
<string name="wizard_tips_orweb">مرورگر پیازی: مرورگر طراحی شده برای حفظ حریم خصوصی و افزونساز ربات پیازی</string>
<string name="orweb_apk_url">market://search?q=pname:nfo.guardianproject.browser</string>
+ <string name="wizard_tips_play">تمامي برنامه هاي Guardian Project را در Google Play پيدا كنيد.</string>
+ <string name="wizard_tips_play_url">https://play.google.com/store/search?q=guardianproject</string>
<!--<string name="wizard_tips_firefox">Firefox - Android browser - To be used along with ProxyMob Add-on </string>
<string name="wizard_tips_proxymob">ProxyMob - Simple Firefox Add-on for setting HTTP, SOCKS and SSL proxy settings</string>
<string name="firefox_apk_url">https://market.android.com/details?id=org.mozilla.firefox</string>
1
0