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

14 Oct '12
commit 4167b46a95a7088a4160f8616c9156f35c490d38
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Sun Oct 14 08:38:39 2012 -0400
Add bridge-stats report from April 2012.
---
techreports.bib | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/techreports.bib b/techreports.bib
index ccf3a4a..04101be 100644
--- a/techreports.bib
+++ b/techreports.bib
@@ -8,6 +8,16 @@
url = {https://research.torproject.org/techreports/tor-nat-plan-2012-08-22.pdf},
}
+@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},
+ url = {https://research.torproject.org/techreports/bridge-report-usage-stats-2012-04-30.pdf},
+}
+
@techreport{tor-2012-03-003,
author = {Steven J. Murdoch and George Kadianakis},
title = {Pluggable Transports Roadmap},
1
0

14 Oct '12
commit c8a55881b2f7debfa57fd4b17df101f8ceca8aae
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Sun Oct 14 08:39:23 2012 -0400
Add bridge-stats report from April 2012.
---
2012/bridge-report-usage-stats/.gitignore | 3 +
.../bridge-report-usage-stats.bib | 10 +
.../bridge-report-usage-stats.tex | 217 ++++++++++++++++++++
2012/bridge-report-usage-stats/bridgeusers.png | Bin 0 -> 69368 bytes
2012/bridge-report-usage-stats/discarded.png | Bin 0 -> 78228 bytes
2012/bridge-report-usage-stats/notreported.png | Bin 0 -> 102217 bytes
2012/bridge-report-usage-stats/reported.png | Bin 0 -> 85090 bytes
2012/bridge-report-usage-stats/tortechrep.cls | 1 +
8 files changed, 231 insertions(+), 0 deletions(-)
diff --git a/2012/bridge-report-usage-stats/.gitignore b/2012/bridge-report-usage-stats/.gitignore
new file mode 100644
index 0000000..c787837
--- /dev/null
+++ b/2012/bridge-report-usage-stats/.gitignore
@@ -0,0 +1,3 @@
+bridge-report-usage-stats.pdf
+bridge-report-usage-stats-2012-04-30.pdf
+
diff --git a/2012/bridge-report-usage-stats/bridge-report-usage-stats.bib b/2012/bridge-report-usage-stats/bridge-report-usage-stats.bib
new file mode 100644
index 0000000..289b32b
--- /dev/null
+++ b/2012/bridge-report-usage-stats/bridge-report-usage-stats.bib
@@ -0,0 +1,10 @@
+@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},
+ url = {https://research.torproject.org/techreports/countingusers-2010-11-30.pdf}
+}
+
diff --git a/2012/bridge-report-usage-stats/bridge-report-usage-stats.tex b/2012/bridge-report-usage-stats/bridge-report-usage-stats.tex
new file mode 100644
index 0000000..969d63a
--- /dev/null
+++ b/2012/bridge-report-usage-stats/bridge-report-usage-stats.tex
@@ -0,0 +1,217 @@
+\documentclass{tortechrep}
+\usepackage{url}
+\usepackage{graphicx}
+\begin{document}
+
+\title{What fraction of our bridges are\\not reporting usage statistics?}
+\author{Karsten Loesing}
+\contact{karsten(a)torproject.org}
+\reportid{2012-04-001}
+\date{April 30, 2012}
+\maketitle
+
+\section{Introduction}
+
+Tor's current approach to count daily bridge users is probably broken.
+The estimate of daily bridge users from all countries ranges between a few
+hundred to half a million in the time between mid-2008 and early 2012 (see
+Figure~\ref{fig:bridgeusers}).
+We have little idea whether the real number is closer to the lower or the
+upper end.
+It's probably ``somewhere in the middle.''
+
+\begin{figure}[t]
+\includegraphics[width=\textwidth]{bridgeusers.png}
+\caption{Estimated bridge users from all countries between 2008 and 2012.}
+\label{fig:bridgeusers}
+\end{figure}
+
+The current approach to estimate the number of bridge users is based on
+bridges reporting the number of unique IP addresses they see in a given
+24-hour timeframe to the bridge authority.
+We collect all reports, sum up unique IP addresses per day, and interpret
+the result as estimated user number.
+
+We already identied two shortcomings in this
+approach~\cite{tor-2010-11-001}: The first shortcoming is that the
+assumption that a bridge user only connects to a single bridge is very
+likely false.
+As a result we may over-count bridge clients connecting to two or more
+bridges.
+The second shortcoming is that we're excluding a yet unknown fraction of
+bridges which don't report usage statistics to the bridge authority.
+A possible reason for not reporting statistics is the minimum uptime of
+24~hours before publishing statistics which has the purpose of hiding
+exact connection times to protect the users' privacy.
+
+In this report we want to focus on the second shortcoming by analyzing
+what fraction of bridges are not reporting usage statistics.
+Obviously, whether this fraction is at 20\% or at 80\% has a major impact
+on the estimated number of bridge users.
+But in addition to that we hope to learn something more general about how
+bridges report statistics to the bridge authority that we can apply to new
+approaches that estimate daily bridge users.
+
+In the following we discuss reasons for discarding reported bridge
+statistics and possible causes for bridges not to report statistics.
+We then look into the bridge descriptor archives to quantify what fraction
+of bridges are affected by these cases.
+We conclude with ideas for increasing the fraction of included statistics.
+
+\section{Reasons for missing bridge usage statistics}
+
+There are two categories of reasons for missing bridge usage statistics:
+either a bridge reports statistics which are discarded, or the bridge does
+not report statistics at all.
+Reasons for discarding reported statistics are:
+
+\begin{enumerate}
+\item \textbf{Running as non-bridge relay:} We exclude all statistics from
+bridges that have been running as non-bridge relays before.
+The reason is that non-bridge clients may still connect to such a bridge.
+We expect there to be many more directly connecting users than bridge
+users, so including these statistics might lead to greatly overestimating
+the number of bridge users.
+We currently exclude statistics from bridges which have been running as
+relay at any time in the past, even months ago.
+We had cases where excluding such a bridge removed a sudden increase in
+bridge user numbers which could not be explained otherwise.
+\item \textbf{Known bug in statistics code:} There are a few Tor versions
+which had bugs in their statistics implementation.
+We exclude these statistics, too.
+\item \textbf{Missing geoip file:} We recently discovered that bridges
+which don't have a geoip file still report bridge usage statistics with
+all zeros.
+For the current approach where we sum up all observations, this isn't a
+problem.
+But it's still interesting to learn how wide-spread the problem of missing
+geoip files on bridges is.
+Only bridges running Tor version 0.2.3.1-alpha or higher report whether
+they have a geoip file congured or not.
+\end{enumerate}
+
+In addition to these cases, there are a few possible causes for bridges
+not reporting statistics:
+
+\begin{enumerate}
+\setcounter{enumi}{3}
+\item \textbf{Less than 24 hours uptime:} Bridges which have an uptime of
+less than 24 hours don't report statistics for this period of time.
+This has to do with the requirement to aggregate observations for a
+sufficient amount of time to hide exact connection times and protect the
+users' privacy.
+\item \textbf{Descriptor publication delay:} Some bridges may even
+complete a 24-hour interval and prepare statistics to be reported in their
+next descriptor.
+But then they go offline and don't publish that descriptor.
+Bridges look at previously finished statistics intervals when starting up,
+but either a bridge decides that its previous statistics are too old to be
+published, or a bridge never shows up again.
+The fix here might be to make bridges publish a new descriptor immediately
+after finishing a statistics interval, which is suggested as enhancement
+\#4142.
+We should probably find out how many bridges are affected by this problem
+before implementing the fix.
+\item \textbf{Other reasons:} There may be other causes for a bridge not
+reporting statistics which we did not identify.
+\end{enumerate}
+
+\section{Fraction of missing bridge usage statistics}
+
+After listing reasons for reported observations being discarded and for
+bridges not reporting statistics at all, we now want to quantify how many
+bridges are affected by which case.
+
+\begin{figure}[t]
+\includegraphics[width=\textwidth]{reported.png}
+\caption{Fraction of bridges that reported statistics which were either
+used or discarded, or that did not report statistics.}
+\label{fig:reported}
+\end{figure}
+
+Figure~\ref{fig:reported} shows the fraction of bridges that did or did
+not report usage statistics and how many of these reports had to be
+discarded.
+The graph shows an almost monotonic downward trend of non-reported
+statistics from 2008 to early 2010 to around 20\%.
+This fraction went up only slightly in 2010 and 2011 to 40\% and is now
+back at 20\%.
+The fraction of reported and discarded statistics was between 10\% and
+20\% for most of the time between 2008 and today.
+As a result, the fraction of reported and used statistics went up from
+around 35\% in early 2009 to around 75\% in early 2012.
+
+These results are much better than expected before.
+A bridge usage statistic that is based on 75\% of all bridges at least
+rules out inaccuracies from too little sample sizes.
+We still want to look into reasons for discarded or not reported
+statistics.
+
+\begin{figure}[t]
+\includegraphics[width=\textwidth]{discarded.png}
+\caption{Reasons for discarding reported usage statistics.}
+\label{fig:discarded}
+\end{figure}
+
+Figure~\ref{fig:discarded} shows what fractions of reported bridge
+statistics were discarded for what reasons.
+The fractions of statistics that had to be discarded because of the
+geoip-stats bug in Tor 0.2.2.x or because of missing geoip files are at
+almost 0\% for most of the time.
+Only in late 2009, the geoip-stats bug affected up to 5\% of bridges.
+But the fraction of discarded statistics because of bridges previously
+running as non-bridge relays is quite high at 10\% to 20\%.
+
+It's quite likely that we could reduce this fraction by being less strict
+about bridges running as non-bridge relays.
+In theory, a delay of a few days between running as relay and running as
+bridge should be sucient to exclude directly connecting clients from the
+statistics.
+However, this requires further analysis.
+
+\begin{figure}[t]
+\includegraphics[width=\textwidth]{notreported.png}
+\caption{Reasons for bridges not reporting usage statistics.}
+\label{fig:notreported}
+\end{figure}
+
+Figure~\ref{fig:notreported} shows what fractions of bridges don't report
+statistics for what reasons.
+For most of the time, the fraction of bridges not reporting statistics
+because they went online before their 24-hour interval ended was about as
+large as the fraction of ``other reasons.''
+Only recently, the ``other reasons'' dropped to almost 0\%.
+The fraction of missing statistics due to a delay between completing a
+statistics interval and publishing the descriptor containing those
+statistics is almost at 0\% for most of the time.
+There's probably not much that we can do about the first category of
+bridges which go online before their 24-hour interval ends.
+This interval is there to hide exact connection times and to protect the
+users' privacy.
+Any algorithm will have to cope with 15\% to 25\% missing statistics due
+to the 24-hour interval requirement.
+Fortunately, the fraction of non-reported statistics due to the descriptor
+publication delay is almost at 0\%, so we don't have to fix that.
+It's unclear what other reasons led to bridges not publishing statistics.
+Given that this fraction is almost at 0\%, there's no immediate need to
+investigate.
+
+\section{Conclusion}
+
+In this report we analyzed what fraction of bridges are not reporting
+usage statistics, which might affect our daily bridge user estimates.
+The analysis of bridge descriptor archives resulted in a fraction of up to
+75\% of bridges reporting usage statistics that get used to estimate user
+numbers.
+This fraction might even be increased by discarding fewer statistics from
+bridges that were seen as non-bridge relays before.
+We conclude that a too small sample size is not the issue of our probably
+wrong bridge user numbers.
+We think that a new approach that will be based on bridges reporting their
+findings in 24-hour intervals has a good chance of leading to quite
+reliable user numbers.
+
+\bibliography{bridge-report-usage-stats}
+
+\end{document}
+
diff --git a/2012/bridge-report-usage-stats/bridgeusers.png b/2012/bridge-report-usage-stats/bridgeusers.png
new file mode 100755
index 0000000..a77e87a
Binary files /dev/null and b/2012/bridge-report-usage-stats/bridgeusers.png differ
diff --git a/2012/bridge-report-usage-stats/discarded.png b/2012/bridge-report-usage-stats/discarded.png
new file mode 100755
index 0000000..a96a604
Binary files /dev/null and b/2012/bridge-report-usage-stats/discarded.png differ
diff --git a/2012/bridge-report-usage-stats/notreported.png b/2012/bridge-report-usage-stats/notreported.png
new file mode 100755
index 0000000..d44f352
Binary files /dev/null and b/2012/bridge-report-usage-stats/notreported.png differ
diff --git a/2012/bridge-report-usage-stats/reported.png b/2012/bridge-report-usage-stats/reported.png
new file mode 100755
index 0000000..fa5640f
Binary files /dev/null and b/2012/bridge-report-usage-stats/reported.png differ
diff --git a/2012/bridge-report-usage-stats/tortechrep.cls b/2012/bridge-report-usage-stats/tortechrep.cls
new file mode 120000
index 0000000..4c24db2
--- /dev/null
+++ b/2012/bridge-report-usage-stats/tortechrep.cls
@@ -0,0 +1 @@
+../../tortechrep.cls
\ No newline at end of file
1
0

[translation/vidalia_alpha] Update translations for vidalia_alpha
by translation@torproject.org 14 Oct '12
by translation@torproject.org 14 Oct '12
14 Oct '12
commit ffe8050ac89cd9d79f60d355245681cf7c936b49
Author: Translation commit bot <translation(a)torproject.org>
Date: Sun Oct 14 11:45:16 2012 +0000
Update translations for vidalia_alpha
---
lv/vidalia_lv.po | 3933 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 3933 insertions(+), 0 deletions(-)
diff --git a/lv/vidalia_lv.po b/lv/vidalia_lv.po
new file mode 100644
index 0000000..646215d
--- /dev/null
+++ b/lv/vidalia_lv.po
@@ -0,0 +1,3933 @@
+#
+# Translators:
+# Ojars Balcers <ojars.balcers(a)gmail.com>, 2012.
+msgid ""
+msgstr ""
+"Project-Id-Version: The Tor Project\n"
+"Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n"
+"POT-Creation-Date: 2012-03-21 17:46+0000\n"
+"PO-Revision-Date: 2012-10-14 11:31+0000\n"
+"Last-Translator: Ojars Balcers <ojars.balcers(a)gmail.com>\n"
+"Language-Team: translations(a)vidalia-project.net\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: lv\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
+"X-Generator: Vidalia ts2po 0.2\n"
+
+msgctxt "AboutDialog"
+msgid "About Vidalia"
+msgstr "Par Vidalia"
+
+msgctxt "AboutDialog"
+msgid "License"
+msgstr "Licence"
+
+msgctxt "AboutDialog"
+msgid "Vidalia 0.2.0"
+msgstr "Vidalia 0.2.0"
+
+msgctxt "AboutDialog"
+msgid "Tor 0.2.0.32"
+msgstr "Tor 0.2.0.32"
+
+msgctxt "AboutDialog"
+msgid "Qt 4.4.2"
+msgstr "Qt 4.4.2"
+
+msgctxt "AdvancedPage"
+msgid "'%1' is not a valid IP address."
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid ""
+"You selected 'Password' authentication, but did not specify a password."
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Select Tor Configuration File"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "File Not Found"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "%1 does not exist. Would you like to create it?"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Failed to Create File"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Unable to create %1 [%2]"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Select a Directory to Use for Tor Data"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Unable to remove Tor Service"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Unable to install Tor Service"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Vidalia was unable to install the Tor service."
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Authentication:"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Address:"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "None"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Cookie"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Password"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Randomly Generate"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid ":"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Tor Configuration File"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Start the Tor software with the specified configuration file (torrc)"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Select path to your configuration file"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Browse"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Data Directory"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Store data for the Tor software in the following directory"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Select the directory used to store data for the Tor software"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Tor Control"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Use TCP connection (ControlPort)"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Path:"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Use Unix domain socket (ControlSocket)"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Edit current torrc"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "NOTE: this will edit the currently loaded torrc"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "ControlSocket path doesn't exist."
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid ""
+"The specified Tor configuration file location contains characters that "
+"cannot be represented in your system's current 8-bit character encoding."
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid ""
+"The specified Tor data directory location contains characters that cannot be"
+" represented in your system's current 8-bit character encoding."
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Warning"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "You changed torrc path, would you like to restart Tor?"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Tor Configuration File (torrc);;All Files (*)"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Select a file to use for Tor socket path"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Configure ControlPort automatically"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid ""
+"<b>WARNING</b>: If you hand pick the password it will be saved as plain text"
+" in Vidalia's configuration file. Using a random password is safer."
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Panic"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid ""
+"<b>WARNING</b>: The panic button will erease the application if pressed"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Enable panic button"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Panic path:"
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid ""
+"You've checked the autoconfiguration option for the ControlPort, but "
+"provided no Data Directory. Please add one, or uncheck the \"Configure "
+"ControlPort automatically\" option."
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid ""
+"Vidalia was unable to remove the Tor service.\n"
+"\n"
+"You may need to remove it manually."
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid "Select a Directory to Use for Panic"
+msgstr ""
+
+msgctxt "AppearancePage"
+msgid "Language"
+msgstr ""
+
+msgctxt "AppearancePage"
+msgid "Choose the language used in Vidalia"
+msgstr ""
+
+msgctxt "AppearancePage"
+msgid "Style"
+msgstr ""
+
+msgctxt "AppearancePage"
+msgid "Choose Vidalia's interface style"
+msgstr ""
+
+msgctxt "AppearancePage"
+msgid "Vidalia was unable to load the selected language translation."
+msgstr ""
+
+msgctxt "AppearancePage"
+msgid ""
+"System Icon Preferences (changes will take effect when you restart Vidalia)"
+msgstr ""
+
+msgctxt "AppearancePage"
+msgid "Show the Tray Icon and Dock Icon (default)"
+msgstr ""
+
+msgctxt "AppearancePage"
+msgid "Hide the Tray Icon"
+msgstr ""
+
+msgctxt "AppearancePage"
+msgid "Hide the Dock Icon"
+msgstr ""
+
+msgctxt "BandwidthGraph"
+msgid "Since:"
+msgstr ""
+
+msgctxt "BandwidthGraph"
+msgid "Hide Settings"
+msgstr ""
+
+msgctxt "BandwidthGraph"
+msgid "Show Settings"
+msgstr ""
+
+msgctxt "BandwidthGraph"
+msgid "Reset"
+msgstr ""
+
+msgctxt "BandwidthGraph"
+msgid "Receive Rate"
+msgstr ""
+
+msgctxt "BandwidthGraph"
+msgid "Send Rate"
+msgstr ""
+
+msgctxt "BandwidthGraph"
+msgid "Always on Top"
+msgstr ""
+
+msgctxt "BandwidthGraph"
+msgid "Style"
+msgstr ""
+
+msgctxt "BandwidthGraph"
+msgid "Changes the transparency of the Bandwidth Graph"
+msgstr ""
+
+msgctxt "BandwidthGraph"
+msgid "100"
+msgstr ""
+
+msgctxt "BandwidthGraph"
+msgid "% Opaque"
+msgstr ""
+
+msgctxt "BandwidthGraph"
+msgid "Save"
+msgstr ""
+
+msgctxt "BandwidthGraph"
+msgid "Cancel"
+msgstr ""
+
+msgctxt "BandwidthGraph"
+msgid "Bandwidth Graph"
+msgstr ""
+
+msgctxt "BridgeDownloader"
+msgid "Starting HTTPS bridge request..."
+msgstr ""
+
+msgctxt "BridgeDownloader"
+msgid "Connecting to %1:%2..."
+msgstr ""
+
+msgctxt "BridgeDownloader"
+msgid "Sending an HTTPS request for bridges..."
+msgstr ""
+
+msgctxt "BridgeDownloader"
+msgid "Downloading a list of bridges..."
+msgstr ""
+
+msgctxt "BridgeDownloaderProgressDialog"
+msgid "Downloading Bridges"
+msgstr ""
+
+msgctxt "BridgeDownloaderProgressDialog"
+msgid "Unable to download bridges: %1"
+msgstr ""
+
+msgctxt "BridgeDownloaderProgressDialog"
+msgid "Retrying bridge request..."
+msgstr ""
+
+msgctxt "BridgeUsageDialog"
+msgid "Country"
+msgstr ""
+
+msgctxt "BridgeUsageDialog"
+msgid "# Clients"
+msgstr ""
+
+msgctxt "BridgeUsageDialog"
+msgid "Clients from the following countries have used your relay since %1"
+msgstr ""
+
+msgctxt "BridgeUsageDialog"
+msgid "Bridge Usage Summary"
+msgstr ""
+
+msgctxt "BridgeUsageDialog"
+msgid "Client Summary"
+msgstr ""
+
+msgctxt "Circuit"
+msgid "New"
+msgstr ""
+
+msgctxt "Circuit"
+msgid "Open"
+msgstr ""
+
+msgctxt "Circuit"
+msgid "Building"
+msgstr ""
+
+msgctxt "Circuit"
+msgid "Failed"
+msgstr ""
+
+msgctxt "Circuit"
+msgid "Closed"
+msgstr ""
+
+msgctxt "Circuit"
+msgid "Unknown"
+msgstr ""
+
+msgctxt "CircuitItem"
+msgid "<Path Empty>"
+msgstr ""
+
+msgctxt "CircuitListWidget"
+msgid "Connection"
+msgstr ""
+
+msgctxt "CircuitListWidget"
+msgid "Status"
+msgstr ""
+
+msgctxt "CircuitListWidget"
+msgid "Zoom to Circuit"
+msgstr ""
+
+msgctxt "CircuitListWidget"
+msgid "Close Circuit (Del)"
+msgstr ""
+
+msgctxt "CircuitListWidget"
+msgid "Close Stream (Del)"
+msgstr ""
+
+msgctxt "ConfigDialog"
+msgid "General"
+msgstr ""
+
+msgctxt "ConfigDialog"
+msgid "Network"
+msgstr ""
+
+msgctxt "ConfigDialog"
+msgid "Sharing"
+msgstr ""
+
+msgctxt "ConfigDialog"
+msgid "Appearance"
+msgstr ""
+
+msgctxt "ConfigDialog"
+msgid "Advanced"
+msgstr ""
+
+msgctxt "ConfigDialog"
+msgid "Help"
+msgstr ""
+
+msgctxt "ConfigDialog"
+msgid "Error Saving Settings"
+msgstr ""
+
+msgctxt "ConfigDialog"
+msgid "Vidalia was unable to save your %1 settings."
+msgstr ""
+
+msgctxt "ConfigDialog"
+msgid "Error Applying Settings"
+msgstr ""
+
+msgctxt "ConfigDialog"
+msgid "Vidalia was unable to apply your %1 settings to Tor."
+msgstr ""
+
+msgctxt "ConfigDialog"
+msgid "Settings"
+msgstr ""
+
+msgctxt "ControlConnection"
+msgid "Vidalia was unable to connect to Tor. (%1)"
+msgstr ""
+
+msgctxt "ControlConnection"
+msgid "Control socket is not connected."
+msgstr ""
+
+msgctxt "ControlPasswordInputDialog"
+msgid "Problem connecting to Tor"
+msgstr ""
+
+msgctxt "ControlPasswordInputDialog"
+msgid ""
+"Vidalia can try to restart Tor for you. Doing so will close all currently "
+"active connections through your Tor process."
+msgstr ""
+
+msgctxt "ControlPasswordInputDialog"
+msgid ""
+"Tor is already running, but Vidalia can't connect to it.\n"
+"\n"
+"This can happen when something else (such as another active Vidalia process, or a Vidalia process that crashed) launched Tor."
+msgstr ""
+
+msgctxt "ControlPasswordInputDialog"
+msgid ""
+"You will need to shut down the Tor process before Vidalia can launch a new "
+"one."
+msgstr ""
+
+msgctxt "ControlSocket"
+msgid "Control socket is not connected."
+msgstr ""
+
+msgctxt "ControlSocket"
+msgid "Error sending control command. [%1]"
+msgstr ""
+
+msgctxt "ControlSocket"
+msgid "Socket disconnected while attempting to read a line of data."
+msgstr ""
+
+msgctxt "ControlSocket"
+msgid "Invalid control reply. [%1]"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Afghanistan"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Andorra"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Angola"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Antigua & Barbuda"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Argentina"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Armenia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Australia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Azerbaijan"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Bahamas"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Bangladesh"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Barbados"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Belarus"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Belgium"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Belize"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Bhutan"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Bolivia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Bosnia & Herzegovina"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Botswana"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Brazil"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Brunei Darussalam"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Bulgaria"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Burkina Faso"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Burundi"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Cambodia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Cameroon"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Canada"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Cape Verde"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Central African Republic"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Chad"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Chile"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "China"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Colombia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Comoros"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Congo, The Democratic Republic of the"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Congo"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Costa Rica"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Cote dâIvoire"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Croatia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Cuba"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Cyprus"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Czech Republic"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Denmark"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Djibouti"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Dominica"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Dominican Republic"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Ecuador"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Egypt"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "El Salvador"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Equatorial Guinea"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Eritrea"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Estonia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "France"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Gabon"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Gambia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Georgia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Germany"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Ghana"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Grenada"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Guatemala"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Guinea"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Guinea-Bissau"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Guyana"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Hong Kong"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Haiti"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Honduras"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Israel"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Italy"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Jamaica"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Japan"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Jordan"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Kazakhstan"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Kenya"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Kiribati"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Kuwait"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Kyrgyzstan"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Laos"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Latvia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Lebanon"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Lesotho"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Liberia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Liechtenstein"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Lithuania"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Luxembourg"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Macedonia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Madagascar"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Malawi"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Malaysia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Mali"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Malta"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Marshall Islands"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Mauritania"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Mauritius"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Micronesia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Moldova"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Monaco"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Mongolia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Montenegro"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Morocco"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Mozambique"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Namibia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Nauru"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Nepal"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Netherlands"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "New Zealand"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Nicaragua"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Niger"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Nigeria"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Norway"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Oman"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Pakistan"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Palau"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Palestine"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Panama"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Papua New Guinea"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Paraguay"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Peru"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Philippines"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Poland"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Portugal"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Qatar"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Romania"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Russia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Rwanda"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Saint Kitts & Nevis"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Saint Lucia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Saint Vincent & the Grenadines"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Samoa"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "San Marino"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Sao Tome & Principe"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Saudi Arabia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Senegal"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Serbia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Seychelles"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Sierra Leone"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Singapore"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Slovakia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Slovenia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Solomon Islands"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Somalia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "South Africa"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Spain"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Sri Lanka"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Sudan"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Suriname"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Swaziland"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Sweden"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Switzerland"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Syria"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Tajikistan"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Tanzania"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Thailand"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Timor-Leste (East Timor)"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Togo"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Tonga"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Trinidad & Tobago"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Tunisia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Turkey"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Turkmenistan"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Tuvalu"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Uganda"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Ukraine"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "United Arab Emirates"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "United Kingdom"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "United States"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Uruguay"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Uzbekistan"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Vanuatu"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Vatican"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Venezuela"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Vietnam"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Western Sahara"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Yemen"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Zambia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Zimbabwe"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Zaire"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Albania"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Algeria"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Austria"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Bahrain"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Benin"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Ethiopia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Fiji"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Finland"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Greece"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Guam"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Hungary"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Iceland"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "India"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Indonesia"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Iran"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Iraq"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Ireland"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Korea, North"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Korea, South"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Libya"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Maldives"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Mexico"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Myanmar"
+msgstr ""
+
+msgctxt "CountryInfo"
+msgid "Taiwan"
+msgstr ""
+
+msgctxt "CrashReportDialog"
+msgid "Submit a Crash Report"
+msgstr ""
+
+msgctxt "CrashReportDialog"
+msgid "Vidalia encountered an error and needed to close"
+msgstr ""
+
+msgctxt "CrashReportDialog"
+msgid "Restart Vidalia"
+msgstr ""
+
+msgctxt "CrashReportDialog"
+msgid "Don't Restart"
+msgstr ""
+
+msgctxt "CrashReportDialog"
+msgid "Unable to restart Vidalia"
+msgstr ""
+
+msgctxt "CrashReportDialog"
+msgid ""
+"We were unable to automatically restart Vidalia. Please restart Vidalia "
+"manually."
+msgstr ""
+
+msgctxt "CrashReportDialog"
+msgid "Please fill a ticket in:"
+msgstr ""
+
+msgctxt "CrashReportDialog"
+msgid ""
+"<a "
+"href=\"https://trac.torproject.org/projects/tor/newticket\">https://trac.torproject.org/projects/tor/newticket</a>"
+msgstr ""
+
+msgctxt "CrashReportDialog"
+msgid ""
+"A crash report has been created that you can send to the Vidalia developers "
+"to help identify and fix the problem. The submitted report does not contain "
+"any personally identifying information."
+msgstr ""
+
+msgctxt "CrashReportDialog"
+msgid ""
+"with a description of what you were doing before the application crashed, "
+"along with the following files corresponding to the crash report:"
+msgstr ""
+
+msgctxt "DebugDialog"
+msgid "Plugin debug output"
+msgstr ""
+
+msgctxt "DebugDialog"
+msgid "Plugin Output"
+msgstr ""
+
+msgctxt "DebugDialog"
+msgid "Syntax Errors"
+msgstr ""
+
+msgctxt "DebugDialog"
+msgid "Exceptions"
+msgstr ""
+
+msgctxt "GeneralPage"
+msgid "Executables (*.exe)"
+msgstr ""
+
+msgctxt "GeneralPage"
+msgid "Select Path to Tor"
+msgstr ""
+
+msgctxt "GeneralPage"
+msgid "You must specify the name of your Tor executable."
+msgstr ""
+
+msgctxt "GeneralPage"
+msgid "Start Vidalia when my system starts"
+msgstr ""
+
+msgctxt "GeneralPage"
+msgid "Browse"
+msgstr ""
+
+msgctxt "GeneralPage"
+msgid "Tor"
+msgstr ""
+
+msgctxt "GeneralPage"
+msgid "Software Updates"
+msgstr ""
+
+msgctxt "GeneralPage"
+msgid "Check for new software updates automatically"
+msgstr ""
+
+msgctxt "GeneralPage"
+msgid "Check Now"
+msgstr ""
+
+msgctxt "GeneralPage"
+msgid "Connect to Tor automatically"
+msgstr ""
+
+msgctxt "GraphFrame"
+msgid "%1 KB/s"
+msgstr ""
+
+msgctxt "GraphFrame"
+msgid "%1 KB"
+msgstr ""
+
+msgctxt "GraphFrame"
+msgid "%1 MB"
+msgstr ""
+
+msgctxt "GraphFrame"
+msgid "%1 GB"
+msgstr ""
+
+msgctxt "GraphFrame"
+msgid "Recv:"
+msgstr ""
+
+msgctxt "GraphFrame"
+msgid "Sent:"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Supplied XML file is not a valid Contents document."
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Search reached end of document"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Search reached start of document"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Text not found in document"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Found %1 results"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Vidalia Help"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Back"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Move to previous page (Backspace)"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Backspace"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Forward"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Move to next page (Shift+Backspace)"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Shift+Backspace"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Home"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Move to the Home page (Ctrl+H)"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Ctrl+H"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Find"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Search for a word or phrase on current page (Ctrl+F)"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Ctrl+F"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Close"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Close Vidalia Help"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Esc"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Find:"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Find Previous"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Find Next"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Case sensitive"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Whole words only"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Help Topics"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Contents"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Search"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Searching for:"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Found Documents"
+msgstr ""
+
+msgctxt "HelpBrowser"
+msgid "Error Loading Help Contents:"
+msgstr ""
+
+msgctxt "HelpTextBrowser"
+msgid "Opening External Link"
+msgstr ""
+
+msgctxt "HelpTextBrowser"
+msgid ""
+"Vidalia can open the link you selected in your default Web browser. If your "
+"browser is not currently configured to use Tor then the request will not be "
+"anonymous."
+msgstr ""
+
+msgctxt "HelpTextBrowser"
+msgid "Do you want Vidalia to open the link in your Web browser?"
+msgstr ""
+
+msgctxt "HelpTextBrowser"
+msgid "Unable to Open Link"
+msgstr ""
+
+msgctxt "HelpTextBrowser"
+msgid ""
+"Vidalia was unable to open the selected link in your Web browser. You can "
+"still copy the URL and paste it into your browser."
+msgstr ""
+
+msgctxt "HelpTextBrowser"
+msgid "Error opening help file:"
+msgstr ""
+
+msgctxt "LicenseDialog"
+msgid "License Information"
+msgstr ""
+
+msgctxt "LicenseDialog"
+msgid "License"
+msgstr ""
+
+msgctxt "LicenseDialog"
+msgid "Credits"
+msgstr ""
+
+msgctxt "LogEvent"
+msgid "Debug"
+msgstr ""
+
+msgctxt "LogEvent"
+msgid "Info"
+msgstr ""
+
+msgctxt "LogEvent"
+msgid "Notice"
+msgstr ""
+
+msgctxt "LogEvent"
+msgid "Warning"
+msgstr ""
+
+msgctxt "LogEvent"
+msgid "Error"
+msgstr ""
+
+msgctxt "LogEvent"
+msgid "Unknown"
+msgstr ""
+
+msgctxt "LogTreeItem"
+msgid "Debug"
+msgstr ""
+
+msgctxt "LogTreeItem"
+msgid "Info"
+msgstr ""
+
+msgctxt "LogTreeItem"
+msgid "Notice"
+msgstr ""
+
+msgctxt "LogTreeItem"
+msgid "Warning"
+msgstr ""
+
+msgctxt "LogTreeItem"
+msgid "Error"
+msgstr ""
+
+msgctxt "LogTreeItem"
+msgid "Unknown"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Start Tor"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Exit"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Bandwidth Graph"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Message Log"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Network Map"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Control Panel"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Settings"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "About"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Help"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Tor"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "View"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Connecting to a relay directory"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Establishing an encrypted directory connection"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Retrieving network status"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Loading network status"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Loading authority certificates"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Requesting relay information"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Loading relay information"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Connecting to the Tor network"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Establishing a Tor circuit"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Connected to the Tor network!"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "miscellaneous"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "identity mismatch"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "done"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "connection refused"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "connection timeout"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "read/write error"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "no route to host"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "insufficient resources"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "unknown"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Tor is not running"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Tor is shutting down"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Stop Tor"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Starting the Tor software"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Starting Tor"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Error Starting Tor"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid ""
+"Vidalia was unable to start Tor. Check your settings to ensure the correct "
+"name and location of your Tor executable is specified."
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Connecting to Tor"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Connection Error"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Relaying is Enabled"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Error Shutting Down"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Vidalia was unable to stop the Tor software."
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Unexpected Error"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Authenticating to Tor"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Cookie Authentication Required"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid ""
+"The Tor software requires Vidalia to send the contents of an authentication "
+"cookie, but Vidalia was unable to find one."
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Would you like to browse for the file 'control_auth_cookie' yourself?"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Data Directory"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Control Cookie (control_auth_cookie)"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Error Registering for Events"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid ""
+"Vidalia was unable to register for some events. Many of Vidalia's features "
+"may be unavailable."
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Tor Update Available"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid ""
+"The currently installed version of Tor is out of date or no longer "
+"recommended. Please visit the Tor website to download the latest version."
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Tor website: %1"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid ""
+"All subsequent connections will appear to be different than your old "
+"connections."
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Failed to Create New Identity"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Port Forwarding Failed"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Vidalia was unable to configure automatic port forwarding."
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Vidalia Control Panel"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Status"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Password Reset Failed"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid ""
+"The currently installed version of Tor is out of date or no longer "
+"recommended."
+msgstr ""
+
+msgctxt "MainWindow"
+msgid ""
+"Would you like to check if a newer package is available for installation?"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Potentially Unsafe Connection"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid ""
+"Tor has automatically closed your connection in order to protect your "
+"anonymity."
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Update Failed"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Your software is up to date"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid ""
+"There are no new Tor software packages available for your computer at this "
+"time."
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Installation Failed"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Vidalia was unable to install your software updates."
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "The following error occurred:"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid ""
+"Anything sent over this connection could be monitored. Please check your "
+"application's configuration and use only encrypted protocols, such as SSL, "
+"if possible."
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "toolBar"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Restart"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Reload Tor's config"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Actions"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Bootstrapping torrc from %1 to %2"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid ""
+"Vidalia tried to restart Tor, but was not able to. Please check your Task "
+"Manager to ensure there are no other Tor processes running."
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Error reloading configuration"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Vidalia was unable to reload Tor's configuration."
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "No dettached tabs"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Panic is enabled"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid ""
+"<b>WARNING:</b> The Panic button is enabled. Use it carefully because it "
+"will remove Tor completely."
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "New Circuit"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Debug output"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Panic!"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Reattach tabs"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Plugins"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "Your clock is wrong"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid ""
+"Your computer's clock is wrong, tor may not work as expected. Please check "
+"the Message Log for more information."
+msgstr ""
+
+msgctxt "MainWindow"
+msgid ""
+"Vidalia can't find out how to talk to Tor because it can't access this file: %1\n"
+"\n"
+"Here's the last error message:\n"
+" %2"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid ""
+"It seems Tor has stopped running since Vidalia started it.\n"
+"\n"
+"See the Advanced Message Log for more information."
+msgstr ""
+
+msgctxt "MainWindow"
+msgid ""
+"You are currently running a relay. Terminating your relay will interrupt any open connections from clients.\n"
+"\n"
+"Would you like to shutdown gracefully and give clients time to find a new relay?"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid ""
+"Vidalia detected that the Tor software exited unexpectedly.\n"
+"\n"
+"Please check the message log for recent warning or error messages."
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "failed (%1)"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "(probably Telnet)"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "(probably an email client)"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid ""
+"One of your applications %1 appears to be making a potentially unencrypted "
+"and unsafe connection to port %2."
+msgstr ""
+
+msgctxt "MainWindow"
+msgid ""
+"Your relay is shutting down.\n"
+"Click 'Stop' again to stop your relay now."
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Error Setting Filter"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Vidalia was unable to register for Tor's log events."
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Error Opening Log File"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Vidalia was unable to open the specified log file."
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Log Filename Required"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "You must enter a filename to be able to save log messages to a file."
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Select Log File"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Save Log Messages"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Text Files (*.txt)"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Vidalia"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Find in Message Log"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Find:"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Not Found"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Search found 0 matches."
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Message Log"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Message Filters..."
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Set message filters"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "History Size..."
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Set maximum number of messages to display"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Clear"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Clear all messages from the Message Log (Ctrl+E)"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Ctrl+E"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Copy"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Copy the selected messages to the clipboard (Ctrl+C)"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Ctrl+C"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Select All"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Select all messages (Ctrl+A)"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Ctrl+A"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Save All"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Save all messages to a file"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Save Selected"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Save selected messages to a file"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Settings"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Adjust Message Log Settings"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Ctrl+T"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Help"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Show the help browser"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "F1"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Close"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Close the Message Log"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Esc"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Find"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Find all messages containing the search text (Ctrl+F)"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Ctrl+F"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Time"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Type"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Message"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Saves the current Message Log settings"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Save Settings"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Cancels changes made to settings"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Cancel"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Message Filter"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Error"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Warning"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Notice"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Info"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Debug"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Message Log History"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Number of messages to display in the message log window"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "messages"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Browse"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Enable automatically saving all new log messages to a file"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Automatically save new log messages to a file"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "toolbar"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid "Always Save New Log Messages"
+msgstr ""
+
+msgctxt "MessageLog"
+msgid ""
+"Messages that appear when something has \n"
+"gone very wrong and Tor cannot proceed."
+msgstr ""
+
+msgctxt "MessageLog"
+msgid ""
+"Messages that only appear when \n"
+"something has gone wrong with Tor."
+msgstr ""
+
+msgctxt "MessageLog"
+msgid ""
+"Messages that appear infrequently \n"
+"during normal Tor operation and are \n"
+"not considered errors, but you may \n"
+"care about."
+msgstr ""
+
+msgctxt "MessageLog"
+msgid ""
+"Messages that appear frequently \n"
+"during normal Tor operation."
+msgstr ""
+
+msgctxt "MessageLog"
+msgid ""
+"Hyper-verbose messages primarily of \n"
+"interest to Tor developers."
+msgstr ""
+
+msgctxt "MessageLog"
+msgid ""
+"Cannot write file %1\n"
+"\n"
+"%2."
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Refresh"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Refresh the list of Tor relays and connections"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Ctrl+R"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Help"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Show the network map help"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Show network map help"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "F1"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Close"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Close the network map"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Esc"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Zoom In"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Zoom in on the network map"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "+"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Zoom Out"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Zoom out on the network map"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "-"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Zoom To Fit"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Zooms to fit all currently displayed circuits"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Ctrl+Z"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Relay Not Found"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "No details on the selected relay are available."
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Unknown"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Full Screen"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "View the network map as a full screen window"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Ctrl+F"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Network Map"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Relay"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Connection"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Status"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "<a href=\"server.offline\">Why is my relay offline?</a>"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid ""
+"If your relay isn't listed among the others, it may be because it doesn't "
+"have a Running flag yet. <a href=\"server.consensus\">What's this?</a>"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Exit circuits"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Internal circuits"
+msgstr ""
+
+msgctxt "NetViewer"
+msgid "Hidden Service circuits"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "Copy (Ctrl+C)"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid ""
+"You must specify both an IP address or hostname and a port number to "
+"configure Tor to use a proxy to access the Internet."
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid ""
+"You must specify one or more ports to which your firewall allows you to "
+"connect."
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "'%1' is not a valid port number."
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "Check if your local network requires a proxy to access the Internet"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "I use a proxy to access the Internet"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "Proxy Settings"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "Username:"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "Password:"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "Port:"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "Check to only connect to relays using ports allowed by your firewall"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "My firewall only lets me connect to certain ports"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "Firewall Settings"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "Allowed Ports:"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "80, 443"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid ""
+"Check to encrypt directory requests and, optionally, use bridge relays to "
+"access the Tor network"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "My ISP blocks connections to the Tor network"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "Bridge Settings"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "Add a Bridge:"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "Remove the selected bridges from the list"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "Copy the selected bridges to the clipboard"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "Find Bridges Now"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "<a href=\"bridges.finding\">How else can I find bridges?</a>"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "<a href=\"bridges.finding\">How can I find bridges?</a>"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid ""
+"No new bridges are currently available. You can either wait a while and try "
+"again, or try another method of finding new bridges."
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "Click Help to see other methods of finding new bridges."
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "Address:"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "Type:"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "You must select the proxy type."
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "SOCKS 4"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "SOCKS 5"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "HTTP / HTTPS"
+msgstr ""
+
+msgctxt "NetworkPage"
+msgid "You must specify one or more bridges."
+msgstr ""
+
+msgctxt "PluginEngine"
+msgid "WARNING: %1 doesn't have an info file."
+msgstr ""
+
+msgctxt "PluginWrapper"
+msgid "%1: Processing..."
+msgstr ""
+
+msgctxt "PluginWrapper"
+msgid ""
+"%4: ERROR: Line: %1 - Column: %2\n"
+"%3"
+msgstr ""
+
+msgctxt "PluginWrapper"
+msgid "%1: Error opening file %2"
+msgstr ""
+
+msgctxt "PluginWrapper"
+msgid "%2: ERROR: Cannot open %1"
+msgstr ""
+
+msgctxt "PluginWrapper"
+msgid "%2: ERROR: Parsing %1"
+msgstr ""
+
+msgctxt "PluginWrapper"
+msgid ""
+"Line: %1 - Column: %2\n"
+"Message: %3"
+msgstr ""
+
+msgctxt "PluginWrapper"
+msgid "%1: Starting..."
+msgstr ""
+
+msgctxt "PluginWrapper"
+msgid "%1: Stoping..."
+msgstr ""
+
+msgctxt "PluginWrapper"
+msgid "%1: WARNING: doesn't have a GUI, and buildGUI() was called"
+msgstr ""
+
+msgctxt "PluginWrapper"
+msgid ""
+"%2:\n"
+"*** Exception in line %1"
+msgstr ""
+
+msgctxt "PluginWrapper"
+msgid "*** Backtrace:"
+msgstr ""
+
+msgctxt "PluginWrapper"
+msgid "(untitled)"
+msgstr ""
+
+msgctxt "PluginWrapper"
+msgid "Error: buildGUI() failed for plugin %1"
+msgstr ""
+
+msgctxt "Policy"
+msgid "accept"
+msgstr ""
+
+msgctxt "Policy"
+msgid "reject"
+msgstr ""
+
+msgctxt "QDialogButtonBox"
+msgid "OK"
+msgstr ""
+
+msgctxt "QObject"
+msgid "There were some settings that Vidalia wasn't able to apply together"
+msgstr ""
+
+msgctxt "QObject"
+msgid ""
+"Failed to set %1:\n"
+"Reason: %2"
+msgstr ""
+
+msgctxt "QObject"
+msgid ""
+"The failed options were saved in your torrc and will be applied when you "
+"restart."
+msgstr ""
+
+msgctxt "QObject"
+msgid ""
+"The failed options were NOT saved in your torrc and will be applied when you"
+" restart."
+msgstr ""
+
+msgctxt "QObject"
+msgid "Vidalia was unable to save the options to the torrc file."
+msgstr ""
+
+msgctxt "RouterDescriptor"
+msgid "Online"
+msgstr ""
+
+msgctxt "RouterDescriptor"
+msgid "Hibernating"
+msgstr ""
+
+msgctxt "RouterDescriptor"
+msgid "Offline"
+msgstr ""
+
+msgctxt "RouterDescriptorView"
+msgid "Location:"
+msgstr ""
+
+msgctxt "RouterDescriptorView"
+msgid "IP Address:"
+msgstr ""
+
+msgctxt "RouterDescriptorView"
+msgid "Platform:"
+msgstr ""
+
+msgctxt "RouterDescriptorView"
+msgid "Bandwidth:"
+msgstr ""
+
+msgctxt "RouterDescriptorView"
+msgid "Uptime:"
+msgstr ""
+
+msgctxt "RouterDescriptorView"
+msgid "Last Updated:"
+msgstr ""
+
+msgctxt "RouterDescriptorView"
+msgid "Copy"
+msgstr ""
+
+msgctxt "RouterInfoDialog"
+msgid "Hibernating"
+msgstr ""
+
+msgctxt "RouterInfoDialog"
+msgid "Online"
+msgstr ""
+
+msgctxt "RouterInfoDialog"
+msgid "Offline"
+msgstr ""
+
+msgctxt "RouterInfoDialog"
+msgid "Unknown"
+msgstr ""
+
+msgctxt "RouterInfoDialog"
+msgid "Relay Details"
+msgstr ""
+
+msgctxt "RouterInfoDialog"
+msgid "Summary"
+msgstr ""
+
+msgctxt "RouterInfoDialog"
+msgid "Name:"
+msgstr ""
+
+msgctxt "RouterInfoDialog"
+msgid "Status:"
+msgstr ""
+
+msgctxt "RouterInfoDialog"
+msgid "Location:"
+msgstr ""
+
+msgctxt "RouterInfoDialog"
+msgid "IP Address:"
+msgstr ""
+
+msgctxt "RouterInfoDialog"
+msgid "Platform:"
+msgstr ""
+
+msgctxt "RouterInfoDialog"
+msgid "Bandwidth:"
+msgstr ""
+
+msgctxt "RouterInfoDialog"
+msgid "Uptime:"
+msgstr ""
+
+msgctxt "RouterInfoDialog"
+msgid "Contact:"
+msgstr ""
+
+msgctxt "RouterInfoDialog"
+msgid "Last Updated:"
+msgstr ""
+
+msgctxt "RouterInfoDialog"
+msgid "Descriptor"
+msgstr ""
+
+msgctxt "RouterListItem"
+msgid "Offline"
+msgstr ""
+
+msgctxt "RouterListItem"
+msgid "Hibernating"
+msgstr ""
+
+msgctxt "RouterListItem"
+msgid "%1 KB/s"
+msgstr ""
+
+msgctxt "RouterListWidget"
+msgid "Relay"
+msgstr ""
+
+msgctxt "RouterListWidget"
+msgid "Zoom to Relay"
+msgstr ""
+
+msgctxt "RouterListWidget"
+msgid "%1 relays online"
+msgstr ""
+
+msgctxt "RouterListWidget"
+msgid "Copy"
+msgstr ""
+
+msgctxt "RouterListWidget"
+msgid "Nickname"
+msgstr ""
+
+msgctxt "RouterListWidget"
+msgid "Fingerprint"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Bridge Support Unavailable"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid ""
+"You have configured Tor to act as a bridge relay for censored users, but "
+"your version of Tor does not support bridges."
+msgstr ""
+
+msgctxt "ServerPage"
+msgid ""
+"Please upgrade your Tor software or configure Tor to act as a normal Tor "
+"relay."
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Your bridge relay is not running."
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "You must specify at least a relay nickname and port."
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Run as a client only"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Relay Port:"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Enable to mirror the relay directory"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Attempt to automatically configure port forwarding"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Test"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Show help topic on port forwarding"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Directory Port:"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Directory Port Number"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Contact Info:"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Name of your relay"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Port on which users and other relays can communicate with your relay"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Nickname:"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Basic Settings"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid ""
+"For Internet connections with fast download speed but slow upload, please "
+"list your upload speed here."
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Cable/DSL 256 Kbps"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Cable/DSL 512 Kbps"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Cable/DSL 768 Kbps"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "T1/Cable/DSL 1.5 Mbps"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "> 1.5 Mbps"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Custom"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Select the entry that most closely resembles your Internet connection"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Show help topic on bandwidth rate limits"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Average Rate"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Long-term average bandwidth limit"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "KB/s"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Maximum Rate"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Peak bandwidth rate limit"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid ""
+"Your maximum bandwidth rate must be greater than or equal to your average "
+"bandwidth rate. Both values must be at least 20 KB/s."
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Bandwidth Limits"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Ports 6660 - 6669 and 6697"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Internet Relay Chat (IRC)"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Ports 110, 143, 993 and 995"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Retrieve Mail (POP, IMAP)"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Ports unspecified by other checkboxes"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Misc Other Services"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Ports 706, 1863, 5050, 5190, 5222, 5223, 8300 and 8888"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Instant Messaging (IM)"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Port 443"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Secure Websites (SSL)"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Port 80"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Websites"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Show help topic on exit policies"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid ""
+"What Internet resources should users be able to access from your relay?"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid ""
+"Tor will still block some outgoing mail and file sharing applications by "
+"default to reduce spam and other abuse."
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Exit Policies"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Let others access your bridge by giving them this line:"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid ""
+"This is the identity of your bridge relay that you can give to other people"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Copy your bridge relay's identity to the clipboard"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "No Recent Usage"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "No clients have used your relay recently."
+msgstr ""
+
+msgctxt "ServerPage"
+msgid ""
+"Leave your relay running so clients have a better chance of finding and "
+"using it."
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Bridge History"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Vidalia was unable to retrieve your bridge's usage history."
+msgstr ""
+
+msgctxt "ServerPage"
+msgid ""
+"Tor returned an improperly formatted response when Vidalia requested your "
+"bridge's usage history."
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "The returned response was: %1"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Help censored users reach the Tor network"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "<a href=\"#bridgeUsage\">Who has used my bridge?</a>"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "<a href=\"#bridgeHelp\">What's this?</a>"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Automatically distribute my bridge address"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Relay traffic inside the Tor network (non-exit relay)"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Relay traffic for the Tor network (exit relay)"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Mirror the Relay Directory"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid ""
+"Email address at which you may be reached if there is a\n"
+"problem with your relay. You might also include your PGP or GPG fingerprint."
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "day"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "week"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "month"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Enable accounting"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "h:mm"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "at"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "per"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "bytes"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "KB"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "MB"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "GB"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "TB"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Push no more than"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "time"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid "Copy to Clipboard"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid "The Tor Software is Running"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid "You are currently running version \"%1\" of the Tor software."
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid "The Tor Software is not Running"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid ""
+"Click \"Start Tor\" in the Vidalia Control Panel to restart the Tor "
+"software. If Tor exited unexpectedly, select the \"Advanced\" tab above for "
+"details about any errors encountered."
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid ""
+"You are currently running version \"%1\" of the Tor software, which is no "
+"longer recommended. Please upgrade to the most recent version of the "
+"software, which may contain important security, reliability and performance "
+"fixes."
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid ""
+"You are currently running version \"%1\" of the Tor software, which may no "
+"longer work with the current Tor network. Please upgrade to the most recent "
+"version of the software, which may contain important security, reliability "
+"and performance fixes."
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid "Your Tor Software is Out-of-date"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid "Connected to the Tor Network"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid ""
+"We were able to successfully establish a connection to the Tor network. You "
+"can now configure your applications to use the Internet anonymously."
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid "Tor Software Error"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid ""
+"The Tor software encountered an internal bug. Please report the following "
+"error message to the Tor developers at bugs.torproject.org: \"%1\""
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid ""
+"Tor has determined that your computer's clock may be set to %1 seconds in "
+"the past compared to the source \"%2\". If your clock is not correct, Tor "
+"will not be able to function. Please verify your computer displays the "
+"correct time."
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid ""
+"Tor has determined that your computer's clock may be set to %1 seconds in "
+"the future compared to the source \"%2\". If your clock is not correct, Tor "
+"will not be able to function. Please verify your computer displays the "
+"correct time."
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid "Your Computer's Clock is Potentially Incorrect"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid ""
+"One of the applications on your computer may have attempted to make an "
+"unencrypted connection through Tor to port %1. Sending unencrypted "
+"information over the Tor network is dangerous and not recommended. For your "
+"protection, Tor has automatically closed this connection."
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid ""
+"One of the applications on your computer may have attempted to make an "
+"unencrypted connection through Tor to port %1. Sending unencrypted "
+"information over the Tor network is dangerous and not recommended."
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid "Potentially Dangerous Connection!"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid ""
+"One of your applications established a connection through Tor to \"%1\" "
+"using a protocol that may leak information about your destination. Please "
+"ensure you configure your applications to use only SOCKS4a or SOCKS5 with "
+"remote hostname resolution."
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid "Unknown SOCKS Protocol"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid ""
+"One of your applications tried to establish a connection through Tor using a"
+" protocol that Tor does not understand. Please ensure you configure your "
+"applications to use only SOCKS4a or SOCKS5 with remote hostname resolution."
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid "Invalid Destination Hostname"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid ""
+"One of your applications tried to establish a connection through Tor to "
+"\"%1\", which Tor does not recognize as a valid hostname. Please check your "
+"application's configuration."
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid "External IP Address Changed"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid ""
+"Tor has determined your relay's public IP address is currently %1%2. If that"
+" is not correct, please consider setting the 'Address' option in your "
+"relay's configuration."
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid "DNS Hijacking Detected"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid ""
+"Tor detected that your DNS provider is providing false responses for domains"
+" that do not exist. Some ISPs and other DNS providers, such as OpenDNS, are "
+"known to do this in order to display their own search or advertising pages."
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid ""
+"Tor detected that your DNS provider is providing false responses for well "
+"known domains. Since clients rely on Tor network relays to provide accurate "
+"DNS repsonses, your relay will not be configured as an exit relay."
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid "Checking Server Port Reachability"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid ""
+"Tor is trying to determine if your relay's server port is reachable from the"
+" Tor network by connecting to itself at %1:%2. This test could take several "
+"minutes."
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid "Server Port Reachability Test Successful!"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid "Your relay's server port is reachable from the Tor network!"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid "Server Port Reachability Test Failed"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid ""
+"Your relay's server port is not reachable by other Tor clients. This can "
+"happen if you are behind a router or firewall that requires you to set up "
+"port forwarding. If %1:%2 is not your correct IP address and server port, "
+"please check your relay's configuration."
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid "Checking Directory Port Reachability"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid ""
+"Tor is trying to determine if your relay's directory port is reachable from "
+"the Tor network by connecting to itself at %1:%2. This test could take "
+"several minutes."
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid "Directory Port Reachability Test Successful!"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid "Your relay's directory port is reachable from the Tor network!"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid "Directory Port Reachability Test Failed"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid ""
+"Your relay's directory port is not reachable by other Tor clients. This can "
+"happen if you are behind a router or firewall that requires you to set up "
+"port forwarding. If %1:%2 is not your correct IP address and directory port,"
+" please check your relay's configuration."
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid "Relay Descriptor Rejected"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid ""
+"Your relay's descriptor, which enables clients to connect to your relay, was"
+" rejected by the directory server at %1:%2. The reason given was: %3"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid "Your Relay is Online"
+msgstr ""
+
+msgctxt "StatusEventWidget"
+msgid ""
+"Your relay is now online and available for Tor clients to use. You should "
+"see an increase in network traffic shown by the Bandwidth Graph within a few"
+" hours as more clients learn about your relay. Thank you for contributing to"
+" the Tor network!"
+msgstr ""
+
+msgctxt "StatusTab"
+msgid "Status"
+msgstr ""
+
+msgctxt "StatusTab"
+msgid "Message Log"
+msgstr ""
+
+msgctxt "StatusTab"
+msgid "Tor Status"
+msgstr ""
+
+msgctxt "StatusTab"
+msgid "Show on startup"
+msgstr ""
+
+msgctxt "Stream"
+msgid "New"
+msgstr ""
+
+msgctxt "Stream"
+msgid "Resolving"
+msgstr ""
+
+msgctxt "Stream"
+msgid "Connecting"
+msgstr ""
+
+msgctxt "Stream"
+msgid "Open"
+msgstr ""
+
+msgctxt "Stream"
+msgid "Failed"
+msgstr ""
+
+msgctxt "Stream"
+msgid "Closed"
+msgstr ""
+
+msgctxt "Stream"
+msgid "Retrying"
+msgstr ""
+
+msgctxt "Stream"
+msgid "Remapped"
+msgstr ""
+
+msgctxt "Stream"
+msgid "Unknown"
+msgstr ""
+
+msgctxt "TorControl"
+msgid ""
+"Vidalia has not started Tor. You need to stop Tor through the interface you "
+"started it."
+msgstr ""
+
+msgctxt "TorControl"
+msgid "Start failed: %1"
+msgstr ""
+
+msgctxt "TorControl"
+msgid "Process finished: ExitCode=%1"
+msgstr ""
+
+msgctxt "TorControl"
+msgid "Connection failed: %1"
+msgstr ""
+
+msgctxt "TorControl"
+msgid "Disconnected"
+msgstr ""
+
+msgctxt "TorProcess"
+msgid "Process %1 failed to stop. [%2]"
+msgstr ""
+
+msgctxt "TorService"
+msgid "The Tor service is not installed."
+msgstr ""
+
+msgctxt "TorService"
+msgid "Unable to start the Tor service."
+msgstr ""
+
+msgctxt "TorSettings"
+msgid "Failed to hash the control password."
+msgstr ""
+
+msgctxt "TorrcDialog"
+msgid "Editing torrc"
+msgstr ""
+
+msgctxt "TorrcDialog"
+msgid "Cut"
+msgstr ""
+
+msgctxt "TorrcDialog"
+msgid "Copy"
+msgstr ""
+
+msgctxt "TorrcDialog"
+msgid "Paste"
+msgstr ""
+
+msgctxt "TorrcDialog"
+msgid "Undo"
+msgstr ""
+
+msgctxt "TorrcDialog"
+msgid "Redo"
+msgstr ""
+
+msgctxt "TorrcDialog"
+msgid "Select All"
+msgstr ""
+
+msgctxt "TorrcDialog"
+msgid "Error"
+msgstr ""
+
+msgctxt "TorrcDialog"
+msgid "An error ocurred while opening torrc file"
+msgstr ""
+
+msgctxt "TorrcDialog"
+msgid "Ctrl+X"
+msgstr ""
+
+msgctxt "TorrcDialog"
+msgid "Ctrl+C"
+msgstr ""
+
+msgctxt "TorrcDialog"
+msgid "Ctrl+V"
+msgstr ""
+
+msgctxt "TorrcDialog"
+msgid "Ctrl+Z"
+msgstr ""
+
+msgctxt "TorrcDialog"
+msgid "Ctrl+Shift+Z"
+msgstr ""
+
+msgctxt "TorrcDialog"
+msgid "Ctrl+A"
+msgstr ""
+
+msgctxt "UPNPControl"
+msgid "Success"
+msgstr ""
+
+msgctxt "UPNPControl"
+msgid "No UPnP-enabled devices found"
+msgstr ""
+
+msgctxt "UPNPControl"
+msgid "No valid UPnP-enabled Internet gateway devices found"
+msgstr ""
+
+msgctxt "UPNPControl"
+msgid "WSAStartup failed"
+msgstr ""
+
+msgctxt "UPNPControl"
+msgid "Failed to add a port mapping"
+msgstr ""
+
+msgctxt "UPNPControl"
+msgid "Failed to retrieve a port mapping"
+msgstr ""
+
+msgctxt "UPNPControl"
+msgid "Failed to remove a port mapping"
+msgstr ""
+
+msgctxt "UPNPControl"
+msgid "Unknown error"
+msgstr ""
+
+msgctxt "UPNPTestDialog"
+msgid "Discovering UPnP-enabled devices"
+msgstr ""
+
+msgctxt "UPNPTestDialog"
+msgid "Updating directory port mapping"
+msgstr ""
+
+msgctxt "UPNPTestDialog"
+msgid "Updating relay port mapping"
+msgstr ""
+
+msgctxt "UPNPTestDialog"
+msgid "Test completed successfully!"
+msgstr ""
+
+msgctxt "UPNPTestDialog"
+msgid "Testing UPnP Support"
+msgstr ""
+
+msgctxt "UPNPTestDialog"
+msgid "Testing Universal Plug & Play Support"
+msgstr ""
+
+msgctxt "UpdateProcess"
+msgid ""
+"Vidalia was unable to check for available software updates because it could "
+"not find '%1'."
+msgstr ""
+
+msgctxt "UpdateProcess"
+msgid ""
+"Vidalia was unable to check for available software updates because Tor's "
+"update process exited unexpectedly."
+msgstr ""
+
+msgctxt "UpdateProgressDialog"
+msgid "Checking for available updates..."
+msgstr ""
+
+msgctxt "UpdateProgressDialog"
+msgid "Hide"
+msgstr ""
+
+msgctxt "UpdateProgressDialog"
+msgid "Downloading updates..."
+msgstr ""
+
+msgctxt "UpdateProgressDialog"
+msgid "Installing updated software..."
+msgstr ""
+
+msgctxt "UpdateProgressDialog"
+msgid "Done! Your software is now up to date."
+msgstr ""
+
+msgctxt "UpdateProgressDialog"
+msgid "OK"
+msgstr ""
+
+msgctxt "UpdateProgressDialog"
+msgid "Software Updates"
+msgstr ""
+
+msgctxt "UpdateProgressDialog"
+msgid "Checking for updates..."
+msgstr ""
+
+msgctxt "UpdateProgressDialog"
+msgid "Cancel"
+msgstr ""
+
+msgctxt "UpdatesAvailableDialog"
+msgid "Software Updates Available"
+msgstr ""
+
+msgctxt "UpdatesAvailableDialog"
+msgid "Remind Me Later"
+msgstr ""
+
+msgctxt "UpdatesAvailableDialog"
+msgid "Install"
+msgstr ""
+
+msgctxt "UpdatesAvailableDialog"
+msgid "The following updated software packages are ready for installation:"
+msgstr ""
+
+msgctxt "UpdatesAvailableDialog"
+msgid "Package"
+msgstr ""
+
+msgctxt "UpdatesAvailableDialog"
+msgid "Version"
+msgstr ""
+
+msgctxt "VMessageBox"
+msgid "OK"
+msgstr ""
+
+msgctxt "VMessageBox"
+msgid "Cancel"
+msgstr ""
+
+msgctxt "VMessageBox"
+msgid "Yes"
+msgstr ""
+
+msgctxt "VMessageBox"
+msgid "No"
+msgstr ""
+
+msgctxt "VMessageBox"
+msgid "Help"
+msgstr ""
+
+msgctxt "VMessageBox"
+msgid "Retry"
+msgstr ""
+
+msgctxt "VMessageBox"
+msgid "Show Log"
+msgstr ""
+
+msgctxt "VMessageBox"
+msgid "Show Settings"
+msgstr ""
+
+msgctxt "VMessageBox"
+msgid "Continue"
+msgstr ""
+
+msgctxt "VMessageBox"
+msgid "Quit"
+msgstr ""
+
+msgctxt "VMessageBox"
+msgid "Browse"
+msgstr ""
+
+msgctxt "Vidalia"
+msgid "Invalid Argument"
+msgstr ""
+
+msgctxt "Vidalia"
+msgid "Vidalia is already running"
+msgstr ""
+
+msgctxt "Vidalia"
+msgid "Displays this usage message and exits."
+msgstr ""
+
+msgctxt "Vidalia"
+msgid "Resets ALL stored Vidalia settings."
+msgstr ""
+
+msgctxt "Vidalia"
+msgid "Sets the directory Vidalia uses for data files."
+msgstr ""
+
+msgctxt "Vidalia"
+msgid "Sets the name and location of Vidalia's pidfile."
+msgstr ""
+
+msgctxt "Vidalia"
+msgid "Sets the name and location of Vidalia's logfile."
+msgstr ""
+
+msgctxt "Vidalia"
+msgid "Sets the verbosity of Vidalia's logging."
+msgstr ""
+
+msgctxt "Vidalia"
+msgid "Sets Vidalia's interface style."
+msgstr ""
+
+msgctxt "Vidalia"
+msgid "Sets Vidalia's language."
+msgstr ""
+
+msgctxt "Vidalia"
+msgid "Vidalia Usage Information"
+msgstr ""
+
+msgctxt "Vidalia"
+msgid "Unable to open log file '%1': %2"
+msgstr ""
+
+msgctxt "Vidalia"
+msgid "Value required for parameter :"
+msgstr ""
+
+msgctxt "Vidalia"
+msgid "Invalid language code specified:"
+msgstr ""
+
+msgctxt "Vidalia"
+msgid "Invalid GUI style specified:"
+msgstr ""
+
+msgctxt "Vidalia"
+msgid "Invalid log level specified:"
+msgstr ""
+
+msgctxt "Vidalia"
+msgid ""
+"Another Vidalia process is possibly already running. If there really is not another Vidalia process running, you can choose to continue anyway.\n"
+"\n"
+"Would you like to continue starting Vidalia?"
+msgstr ""
+
+msgctxt "stringutil.h"
+msgid "%1 secs"
+msgstr ""
+
+msgctxt "stringutil.h"
+msgid "%1 B/s"
+msgstr ""
+
+msgctxt "stringutil.h"
+msgid "%1 KB/s"
+msgstr ""
+
+msgctxt "stringutil.h"
+msgid "%1 MB/s"
+msgstr ""
+
+msgctxt "stringutil.h"
+msgid "%1 GB/s"
+msgstr ""
+
+msgctxt "stringutil.h"
+msgid "%1 days"
+msgstr ""
+
+msgctxt "stringutil.h"
+msgid "%1 hours"
+msgstr ""
+
+msgctxt "stringutil.h"
+msgid "%1 mins"
+msgstr ""
1
0

14 Oct '12
commit abb795324c0593f17ac14b75b7661017989090cf
Author: Translation commit bot <translation(a)torproject.org>
Date: Sun Oct 14 11:45:13 2012 +0000
Update translations for vidalia
---
lv/vidalia_lv.po | 124 +++++++++++++++++++++++++++++++++--------------------
1 files changed, 77 insertions(+), 47 deletions(-)
diff --git a/lv/vidalia_lv.po b/lv/vidalia_lv.po
index 6cf77a7..de4ce85 100644
--- a/lv/vidalia_lv.po
+++ b/lv/vidalia_lv.po
@@ -1,39 +1,40 @@
#
# Translators:
+# Ojars Balcers <ojars.balcers(a)gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: The Tor Project\n"
"Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n"
-"POT-Creation-Date: 2011-09-07 14:40+0000\n"
-"PO-Revision-Date: 2010-12-05 20:03+0000\n"
-"Last-Translator: \n"
+"POT-Creation-Date: 2012-03-21 17:52+0000\n"
+"PO-Revision-Date: 2012-10-14 11:35+0000\n"
+"Last-Translator: Ojars Balcers <ojars.balcers(a)gmail.com>\n"
"Language-Team: translations(a)vidalia-project.net\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: lv\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2)\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
"X-Generator: Vidalia ts2po 0.2\n"
msgctxt "AboutDialog"
msgid "About Vidalia"
-msgstr ""
+msgstr "Par Vidalia"
msgctxt "AboutDialog"
msgid "License"
-msgstr ""
+msgstr "Licence"
msgctxt "AboutDialog"
msgid "Vidalia 0.2.0"
-msgstr ""
+msgstr "Vidalia 0.2.0"
msgctxt "AboutDialog"
msgid "Tor 0.2.0.32"
-msgstr ""
+msgstr "Tor 0.2.0.32"
msgctxt "AboutDialog"
msgid "Qt 4.4.2"
-msgstr ""
+msgstr "Qt 4.4.2"
msgctxt "AdvancedPage"
msgid "'%1' is not a valid IP address."
@@ -94,11 +95,11 @@ msgstr ""
msgctxt "AdvancedPage"
msgid "Cookie"
-msgstr ""
+msgstr "Sīkdatne"
msgctxt "AdvancedPage"
msgid "Password"
-msgstr ""
+msgstr "Parole"
msgctxt "AdvancedPage"
msgid "Randomly Generate"
@@ -106,7 +107,7 @@ msgstr ""
msgctxt "AdvancedPage"
msgid ":"
-msgstr ""
+msgstr ":"
msgctxt "AdvancedPage"
msgid "Tor Configuration File"
@@ -198,6 +199,13 @@ msgstr ""
msgctxt "AdvancedPage"
msgid ""
+"You've checked the autoconfiguration option for the ControlPort, but "
+"provided no Data Directory. Please add one, or uncheck the \"Configure "
+"ControlPort automatically\" option."
+msgstr ""
+
+msgctxt "AdvancedPage"
+msgid ""
"Vidalia was unable to remove the Tor service.\n"
"\n"
"You may need to remove it manually."
@@ -205,7 +213,7 @@ msgstr ""
msgctxt "AppearancePage"
msgid "Language"
-msgstr ""
+msgstr "Valoda"
msgctxt "AppearancePage"
msgid "Choose the language used in Vidalia"
@@ -223,6 +231,23 @@ msgctxt "AppearancePage"
msgid "Vidalia was unable to load the selected language translation."
msgstr ""
+msgctxt "AppearancePage"
+msgid ""
+"System Icon Preferences (changes will take effect when you restart Vidalia)"
+msgstr ""
+
+msgctxt "AppearancePage"
+msgid "Show the Tray Icon and Dock Icon (default)"
+msgstr ""
+
+msgctxt "AppearancePage"
+msgid "Hide the Tray Icon"
+msgstr ""
+
+msgctxt "AppearancePage"
+msgid "Hide the Dock Icon"
+msgstr ""
+
msgctxt "BandwidthGraph"
msgid "Since:"
msgstr ""
@@ -265,7 +290,7 @@ msgstr ""
msgctxt "BandwidthGraph"
msgid "100"
-msgstr ""
+msgstr "100"
msgctxt "BandwidthGraph"
msgid "% Opaque"
@@ -1748,10 +1773,6 @@ msgid "Connected to the Tor network!"
msgstr ""
msgctxt "MainWindow"
-msgid "Unrecognized startup status"
-msgstr ""
-
-msgctxt "MainWindow"
msgid "miscellaneous"
msgstr ""
@@ -2063,45 +2084,60 @@ msgid ""
msgstr ""
msgctxt "MainWindow"
-msgid "failed (%1)"
+msgid "Bootstrapping torrc from %1 to %2"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "(probably Telnet)"
+msgstr ""
+
+msgctxt "MainWindow"
+msgid "(probably an email client)"
msgstr ""
msgctxt "MainWindow"
msgid ""
-"Your relay is shutting down.\n"
-"Click 'Stop' again to stop your relay now."
+"One of your applications %1 appears to be making a potentially unencrypted "
+"and unsafe connection to port %2."
msgstr ""
msgctxt "MainWindow"
-msgid "Bootstrapping torrc from %1 to %2"
+msgid "failed (%1)"
msgstr ""
msgctxt "MainWindow"
msgid ""
-"You are currently running a relay. Terminating your relay will interrupt any open connections from clients.\n"
-"\n"
-"Would you like to shutdown gracefully and give clients time to find a new relay?"
+"Your relay is shutting down.\n"
+"Click 'Stop' again to stop your relay now."
msgstr ""
msgctxt "MainWindow"
msgid ""
-"Vidalia detected that the Tor software exited unexpectedly.\n"
+"Vidalia can't find out how to talk to Tor because it can't access this file: %1\n"
"\n"
-"Please check the message log for recent warning or error messages."
+"Here's the last error message:\n"
+"%2"
msgstr ""
msgctxt "MainWindow"
-msgid "(probably Telnet)"
+msgid ""
+"It seems Tor has stopped running since Vidalia started it.\n"
+"\n"
+"See the Advanced Message Log for more information."
msgstr ""
msgctxt "MainWindow"
-msgid "(probably an email client)"
+msgid ""
+"You are currently running a relay. Terminating your relay will interrupt any open connections from clients.\n"
+"\n"
+"Would you like to shutdown gracefully and give clients time to find a new relay?"
msgstr ""
msgctxt "MainWindow"
msgid ""
-"One of your applications %1 appears to be making a potentially unencrypted "
-"and unsafe connection to port %2."
+"Vidalia detected that the Tor software exited unexpectedly.\n"
+"\n"
+"Please check the message log for recent warning or error messages."
msgstr ""
msgctxt "MessageLog"
@@ -2516,14 +2552,6 @@ msgid "Ctrl+F"
msgstr ""
msgctxt "NetworkPage"
-msgid "Invalid Bridge"
-msgstr ""
-
-msgctxt "NetworkPage"
-msgid "The specified bridge identifier is not valid."
-msgstr ""
-
-msgctxt "NetworkPage"
msgid "Copy (Ctrl+C)"
msgstr ""
@@ -2656,11 +2684,11 @@ msgid "SOCKS 5"
msgstr ""
msgctxt "NetworkPage"
-msgid "HTTP"
+msgid "HTTP / HTTPS"
msgstr ""
msgctxt "NetworkPage"
-msgid "HTTP / HTTPS"
+msgid "You must specify one or more bridges."
msgstr ""
msgctxt "Policy"
@@ -2840,10 +2868,6 @@ msgid "Run as a client only"
msgstr ""
msgctxt "ServerPage"
-msgid "Relay traffic for the Tor network"
-msgstr ""
-
-msgctxt "ServerPage"
msgid "Relay Port:"
msgstr ""
@@ -3088,6 +3112,14 @@ msgid "Automatically distribute my bridge address"
msgstr ""
msgctxt "ServerPage"
+msgid "Relay traffic for the Tor network (exit relay)"
+msgstr ""
+
+msgctxt "ServerPage"
+msgid "Relay traffic inside the Tor network (non-exit relay)"
+msgstr ""
+
+msgctxt "ServerPage"
msgid "Mirror the Relay Directory"
msgstr ""
@@ -3812,5 +3844,3 @@ msgstr ""
msgctxt "stringutil.h"
msgid "%1 mins"
msgstr ""
-
-
1
0

14 Oct '12
commit 1630f3497955caf3f505d5211bc3d8f113de045b
Author: Translation commit bot <translation(a)torproject.org>
Date: Sun Oct 14 11:45:06 2012 +0000
Update translations for gettor
---
lv/gettor.po | 454 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 454 insertions(+), 0 deletions(-)
diff --git a/lv/gettor.po b/lv/gettor.po
new file mode 100644
index 0000000..b9db5ea
--- /dev/null
+++ b/lv/gettor.po
@@ -0,0 +1,454 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# Ojars Balcers <ojars.balcers(a)gmail.com>, 2012.
+msgid ""
+msgstr ""
+"Project-Id-Version: The Tor Project\n"
+"Report-Msgid-Bugs-To: https://trac.torproject.org/projects/tor\n"
+"POT-Creation-Date: 2011-11-13 22:01+0100\n"
+"PO-Revision-Date: 2012-10-14 11:39+0000\n"
+"Last-Translator: Ojars Balcers <ojars.balcers(a)gmail.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: lv\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
+
+#: lib/gettor/i18n.py:27
+msgid "Hello, This is the \"GetTor\" robot."
+msgstr "Sveiki. Te \"GetTor\" robots."
+
+#: lib/gettor/i18n.py:29
+msgid "Thank you for your request."
+msgstr "Paldies par Jūsu pieprasījumu."
+
+#: lib/gettor/i18n.py:31
+msgid ""
+"Unfortunately, we won't answer you at this address. You should make\n"
+"an account with GMAIL.COM, YAHOO.COM or YAHOO.CN and send the mail from\n"
+"one of those."
+msgstr ""
+
+#: lib/gettor/i18n.py:35
+msgid ""
+"We only process requests from email services that support \"DKIM\",\n"
+"which is an email feature that lets us verify that the address in the\n"
+"\"From\" line is actually the one who sent the mail."
+msgstr ""
+
+#: lib/gettor/i18n.py:39
+msgid ""
+"(We apologize if you didn't ask for this mail. Since your email is from\n"
+"a service that doesn't use DKIM, we're sending a short explanation,\n"
+"and then we'll ignore this email address for the next day or so.)"
+msgstr ""
+
+#: lib/gettor/i18n.py:43 lib/gettor/i18n.py:130
+msgid ""
+"If you have any questions or it doesn't work, you can contact a\n"
+"human at this support email address: help(a)rt.torproject.org"
+msgstr ""
+
+#: lib/gettor/i18n.py:46
+msgid ""
+"I will mail you a Tor package, if you tell me which one you want.\n"
+"Please select one of the following package names:\n"
+"\n"
+" windows\n"
+" macos-i386\n"
+" macos-ppc\n"
+" linux-i386\n"
+" linux-x86_64\n"
+" source"
+msgstr ""
+
+#: lib/gettor/i18n.py:56
+msgid ""
+"Please reply to this mail, and tell me a single package name anywhere \n"
+"in the body of your email."
+msgstr ""
+
+#: lib/gettor/i18n.py:59
+msgid ""
+"OBTAINING LOCALIZED VERSIONS OF TOR\n"
+"==================================="
+msgstr ""
+
+#: lib/gettor/i18n.py:62
+msgid ""
+"To get a version of Tor translated into your language, specify the\n"
+"language you want in the address you send the mail to:\n"
+"\n"
+" gettor+fa(a)torproject.org"
+msgstr ""
+
+#: lib/gettor/i18n.py:67
+msgid ""
+"This example will give you the requested package in a localized\n"
+"version for Farsi (Persian). Check below for a list of supported language\n"
+"codes. "
+msgstr ""
+
+#: lib/gettor/i18n.py:71
+msgid " List of supported locales:"
+msgstr ""
+
+#: lib/gettor/i18n.py:73
+msgid "Here is a list of all available languages:"
+msgstr ""
+
+#: lib/gettor/i18n.py:75
+msgid ""
+" gettor+ar(a)torproject.org: Arabic\n"
+" gettor+de(a)torproject.org: German\n"
+" gettor+en(a)torproject.org: English\n"
+" gettor+es(a)torproject.org: Spanish\n"
+" gettor+fa(a)torproject.org: Farsi (Iran)\n"
+" gettor+fr(a)torproject.org: French\n"
+" gettor+it(a)torproject.org: Italian\n"
+" gettor+nl(a)torproject.org: Dutch\n"
+" gettor+pl(a)torproject.org: Polish\n"
+" gettor+ru(a)torproject.org: Russian\n"
+" gettor+zh(a)torproject.org: Chinese"
+msgstr ""
+
+#: lib/gettor/i18n.py:87
+msgid "If you select no language, you will receive the English version."
+msgstr ""
+
+#: lib/gettor/i18n.py:89
+msgid ""
+"SMALLER SIZED PACKAGES\n"
+"======================"
+msgstr ""
+
+#: lib/gettor/i18n.py:92
+msgid ""
+"If your bandwith is low or your provider doesn't allow you to\n"
+"receive large attachments in your email, GetTor can send you several\n"
+"small packages instead of one big one."
+msgstr ""
+
+#: lib/gettor/i18n.py:96
+msgid ""
+"Simply include the keyword 'split' in a new line on its own (this part\n"
+"is important!) like so: \n"
+" \n"
+" windows\n"
+" split"
+msgstr ""
+
+#: lib/gettor/i18n.py:102
+msgid ""
+"Sending this text in an email to GetTor will cause it to send you \n"
+"the Tor Browser Bundle in a number of 1,4MB attachments."
+msgstr ""
+
+#: lib/gettor/i18n.py:105
+msgid ""
+"After having received all parts, you need to re-assemble them to \n"
+"one package again. This is done as follows:"
+msgstr ""
+
+#: lib/gettor/i18n.py:108
+msgid "1.) Save all received attachments into one folder on your disk."
+msgstr ""
+
+#: lib/gettor/i18n.py:110
+msgid ""
+"2.) Unzip all files ending in \".z\". If you saved all attachments to\n"
+"a fresh folder before, simply unzip all files in that folder. If you don't\n"
+"know how to unzip the .z files, please see the UNPACKING THE FILES section."
+msgstr ""
+
+#: lib/gettor/i18n.py:114
+msgid ""
+"3.) Verify all files as described in the mail you received with \n"
+"each package. (gpg --verify)"
+msgstr ""
+
+#: lib/gettor/i18n.py:117
+msgid ""
+"4.) Now unpack the multi-volume archive into one file by double-\n"
+"clicking the file ending in \"..split.part01.exe\". This should start the \n"
+"process automatically."
+msgstr ""
+
+#: lib/gettor/i18n.py:121
+msgid ""
+"5.) After unpacking is finished, you should find a newly created \n"
+"\".exe\" file in your destination folder. Simply doubleclick\n"
+"that and Tor Browser Bundle should start within a few seconds."
+msgstr ""
+
+#: lib/gettor/i18n.py:125
+msgid "6.) That's it. You're done. Thanks for using Tor and have fun!"
+msgstr ""
+
+#: lib/gettor/i18n.py:127
+msgid ""
+"SUPPORT\n"
+"======="
+msgstr ""
+
+#: lib/gettor/i18n.py:133
+msgid ""
+"Here's your requested software as a zip file. Please unzip the\n"
+"package and verify the signature."
+msgstr ""
+
+#: lib/gettor/i18n.py:136
+msgid ""
+"VERIFY SIGNATURE\n"
+"================\n"
+"If your computer has GnuPG installed, use the gpg commandline \n"
+"tool as follows after unpacking the zip file:\n"
+"\n"
+" gpg --verify tor-browser-1.3.24_en-US.exe.asc tor-browser-1.3.24_en-US.exe"
+msgstr ""
+
+#: lib/gettor/i18n.py:143
+msgid ""
+"The output should look somewhat like this:\n"
+"\n"
+" gpg: Good signature from 'Erinn Clark <...>'"
+msgstr ""
+
+#: lib/gettor/i18n.py:147
+msgid ""
+"If you're not familiar with commandline tools, try looking for\n"
+"a graphical user interface for GnuPG on this website:\n"
+"\n"
+" http://www.gnupg.org/related_software/frontends.html"
+msgstr ""
+
+#: lib/gettor/i18n.py:152
+msgid ""
+"BLOCKED ACCESS / CENSORSHIP\n"
+"==========================="
+msgstr ""
+
+#: lib/gettor/i18n.py:155
+msgid ""
+"If your Internet connection blocks access to the Tor network, you\n"
+"may need a bridge relay. Bridge relays (or \"bridges\" for short)\n"
+"are Tor relays that aren't listed in the main directory. Since there\n"
+"is no complete public list of them, even if your ISP is filtering\n"
+"connections to all the known Tor relays, they probably won't be able\n"
+"to block all the bridges."
+msgstr ""
+
+#: lib/gettor/i18n.py:162
+msgid ""
+"You can acquire a bridge by sending an email that contains \"get bridges\"\n"
+"in the body of the email to the following email address:\n"
+"\n"
+" bridges(a)torproject.org"
+msgstr ""
+
+#: lib/gettor/i18n.py:167
+msgid ""
+"It is also possible to fetch bridges with a web browser at the following\n"
+"url: https://bridges.torproject.org/"
+msgstr ""
+
+#: lib/gettor/i18n.py:170
+msgid ""
+"IMPORTANT NOTE:\n"
+"Since this is part of a split-file request, you need to wait for\n"
+"all split files to be received by you before you can save them all\n"
+"into the same directory and unpack them by double-clicking the\n"
+"first file."
+msgstr ""
+
+#: lib/gettor/i18n.py:176
+msgid ""
+"Packages might arrive out of order! Please make sure you received\n"
+"all packages before you attempt to unpack them!"
+msgstr ""
+
+#: lib/gettor/i18n.py:179
+#, python-format
+msgid ""
+"It was successfully understood. Your request is currently being processed.\n"
+"Your package (%s) should arrive within the next ten minutes."
+msgstr ""
+
+#: lib/gettor/i18n.py:182
+msgid ""
+"If it doesn't arrive, the package might be too big for your mail provider.\n"
+"Try resending the mail from a GMAIL.COM, YAHOO.CN or YAHOO.COM account."
+msgstr ""
+
+#: lib/gettor/i18n.py:185
+msgid ""
+"Unfortunately we are currently experiencing problems and we can't fulfill\n"
+"your request right now. Please be patient as we try to resolve this issue."
+msgstr ""
+
+#: lib/gettor/i18n.py:188
+msgid ""
+"Unfortunately there is no split package available for the package you\n"
+"requested. Please send us another package name or request the same package \n"
+"again, but remove the 'split' keyword. In that case we'll send you the whole \n"
+"package. Make sure this is what you want."
+msgstr ""
+
+#: lib/gettor/i18n.py:193
+msgid ""
+"UNPACKING THE FILES\n"
+"==================="
+msgstr ""
+
+#: lib/gettor/i18n.py:196
+msgid ""
+"The easiest way to unpack the files you received is to install 7-Zip,\n"
+"a free file compression/uncompression tool. If it isn't installed on\n"
+"your computer yet, you can download it here:\n"
+"\n"
+" http://www.7-zip.org/"
+msgstr ""
+
+#: lib/gettor/i18n.py:202
+msgid ""
+"When 7-Zip is installed, you can open the .z archive you received from\n"
+"us by double-clicking on it."
+msgstr ""
+
+#: lib/gettor/i18n.py:205
+msgid ""
+"An alternative way to get the .z files extraced is to rename them to\n"
+".zip. For example, if you recevied a file called \"windows.z\", rename it to \n"
+"\"windows.zip\". You should then be able to extract the archive with common \n"
+"file archiver programs that probably are already installed on your computer."
+msgstr ""
+
+#: lib/gettor/i18n.py:210
+msgid ""
+"Please reply to this mail, and tell me a single package name anywhere\n"
+"in your reply. Here's a short explanation of what these packages are:"
+msgstr ""
+
+#: lib/gettor/i18n.py:213
+msgid ""
+"windows:\n"
+"The Tor Browser Bundle package for Windows operating systems. If you're \n"
+"running some version of Windows, like Windows XP, Windows Vista or \n"
+"Windows 7, this is the package you should get."
+msgstr ""
+
+#: lib/gettor/i18n.py:218
+msgid ""
+"macos-i386:\n"
+"The Tor Browser Bundle package for OS X, Intel CPU architecture. In \n"
+"general, newer Mac hardware will require you to use this package."
+msgstr ""
+
+#: lib/gettor/i18n.py:222
+msgid ""
+"macos-ppc:\n"
+"This is an older installer (the \"Vidalia bundle\") for older Macs running\n"
+"OS X on PowerPC CPUs. Note that this package will be deprecated soon."
+msgstr ""
+
+#: lib/gettor/i18n.py:226
+msgid ""
+"linux-i386:\n"
+"The Tor Browser Bundle package for Linux, 32bit versions."
+msgstr ""
+
+#: lib/gettor/i18n.py:229
+msgid ""
+"Note that this package is rather large and needs your email provider to \n"
+"allow for attachments of about 30MB in size."
+msgstr ""
+
+#: lib/gettor/i18n.py:232
+msgid ""
+"linux-x86_64:\n"
+"The Tor Browser Bundle package for Linux, 64bit versions."
+msgstr ""
+
+#: lib/gettor/i18n.py:235
+msgid ""
+"source:\n"
+"The Tor source code, for experts. Most users do not want this package."
+msgstr ""
+
+#: lib/gettor/i18n.py:238
+msgid ""
+"FREQUENTLY ASKED QUESTIONS\n"
+"=========================="
+msgstr ""
+
+#: lib/gettor/i18n.py:241
+msgid "What is Tor?"
+msgstr ""
+
+#: lib/gettor/i18n.py:243
+msgid "The name \"Tor\" can refer to several different components."
+msgstr ""
+
+#: lib/gettor/i18n.py:245
+msgid ""
+"The Tor software is a program you can run on your computer that helps \n"
+"keep you safe on the Internet. Tor protects you by bouncing your \n"
+"communications around a distributed network of relays run by volunteers \n"
+"all around the world: it prevents somebody watching your Internet connection \n"
+"from learning what sites you visit, and it prevents the sites you visit from \n"
+"learning your physical location. This set of volunteer relays is called the \n"
+"Tor network. You can read more about how Tor works here:\n"
+"\n"
+" https://www.torproject.org/about/overview.html.en"
+msgstr ""
+
+#: lib/gettor/i18n.py:255
+msgid "What is the Tor Browser Bundle?"
+msgstr ""
+
+#: lib/gettor/i18n.py:257
+msgid ""
+"The Browser Bundle (TBB) is the package we recommend to most users. \n"
+"The bundle comes with everything you need to safely browse the Internet.\n"
+"Just extract it and run."
+msgstr ""
+
+#: lib/gettor/i18n.py:261
+msgid "What package should I request?"
+msgstr ""
+
+#: lib/gettor/i18n.py:263
+msgid ""
+"This depends on the operating system you use. For instance, if your\n"
+"operating system is Microsoft Windows, you should request \"windows\". Here\n"
+"is a short explanation of all packages to request and what operating \n"
+"systems there are suitable for:"
+msgstr ""
+
+#: lib/gettor/i18n.py:268
+msgid "How do I extract the file(s) you sent me?"
+msgstr ""
+
+#: lib/gettor/i18n.py:270
+msgid "QUESTION:"
+msgstr ""
+
+#: lib/gettor/i18n.py:272
+msgid "ANSWER:"
+msgstr ""
+
+#: lib/gettor/i18n.py:274
+#, python-format
+msgid ""
+"Sorry, but the package you requested (%s) is too large for your \n"
+"provider to accept as an attachment. Try using another provider that allows \n"
+"for larger email attachments. Or try one of the following mirrors:\n"
+"\n"
+" https://www.oignon.net/dist/torbrowser/\n"
+" https://tor.beme-it.de/dist/torbrowser/\n"
+" https://www.torservers.net/mirrors/torproject.org/dist/torbrowser/"
+msgstr ""
1
0

14 Oct '12
commit 4ad183427a86964102c7b75f2d6612d4b29126a8
Author: Translation commit bot <translation(a)torproject.org>
Date: Sun Oct 14 11:45:02 2012 +0000
Update translations for bridgedb
---
lv/bridgedb.po | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lv/bridgedb.po b/lv/bridgedb.po
index e0bfd23..97e204e 100644
--- a/lv/bridgedb.po
+++ b/lv/bridgedb.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: 2011-01-01 07:48-0800\n"
-"PO-Revision-Date: 2012-10-12 19:07+0000\n"
+"PO-Revision-Date: 2012-10-14 11:29+0000\n"
"Last-Translator: Ojars Balcers <ojars.balcers(a)gmail.com>\n"
"Language-Team: LANGUAGE <LL(a)li.org>\n"
"MIME-Version: 1.0\n"
@@ -35,7 +35,7 @@ msgid ""
"To use the above lines, go to Vidalia's Network settings page, and click\n"
"\"My ISP blocks connections to the Tor network\". Then add each bridge\n"
"address one at a time."
-msgstr ""
+msgstr "Lai utt"
#: lib/bridgedb/I18n.py:32
msgid ""
1
0

14 Oct '12
commit 2a9d3c856c5dfe4310a836318ae45069a64fde3b
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sat Oct 13 19:27:17 2012 -0700
Clarifying what the tutorial's reader provides
Just realized that newcomers wouldn't know that the DescriptorReader provided
RelayDescriptor instances in the example (and hence where the methods that we
use come from). Clarifying that detail.
---
docs/index.rst | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/docs/index.rst b/docs/index.rst
index 197977d..05c5296 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -75,7 +75,7 @@ We've already used the control port, so for this example we'll use the cached fi
Tor has several descriptor types. For bandwidth information we'll go to the server descriptors, which are located in the **cached-descriptors** file. These have somewhat infrequently changing information published by the relays themselves.
-To read this file we'll use the :class:`~stem.descriptor.reader.DescriptorReader`, a class designed to read descriptor files.
+To read this file we'll use the :class:`~stem.descriptor.reader.DescriptorReader`, a class designed to read descriptor files. The **cached-descriptors** is full of server descriptors, so the reader will provide us with :class:`~stem.descriptor.server_descriptor.RelayDescriptor` instances (a :class:`~stem.descriptor.server_descriptor.ServerDescriptor` subclass for relays).
::
1
0

14 Oct '12
commit 23513eb220ed195ee73fcadd6fb826c3581810fc
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sat Oct 13 19:09:06 2012 -0700
Adding a tutorial to our sphinx front page
Tutorial for basic stem usage, with tests for the examples we provide. Our
documentation is still incredibly beginner unfriendly, but at least this gives
them a place to start.
On a side note one of our integ tests kinda sorta killed our test instance by
calling...
controller.signal("INT")
We didn't notice this because it happened in our very last test.
---
docs/index.rst | 125 ++++++++++++++++++++++++++--
test/integ/control/controller.py | 28 ++++++-
test/integ/descriptor/server_descriptor.py | 29 +++++++
3 files changed, 173 insertions(+), 9 deletions(-)
diff --git a/docs/index.rst b/docs/index.rst
index 32b3d71..197977d 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -1,13 +1,126 @@
-.. Stem documentation master file, created by
- sphinx-quickstart on Thu May 31 09:56:13 2012.
- You can adapt this file completely to your liking, but it should at least
- contain the root `toctree` directive.
-
Welcome to Stem!
================
Stem is a python controller library for `Tor <https://www.torproject.org/>`_. Like its predecessor, `TorCtl <https://www.torproject.org/getinvolved/volunteer.html.en#project-torctl>`_, it uses Tor's `control protocol <https://gitweb.torproject.org/torspec.git/blob/HEAD:/control-spec.txt>`_ to help developers program against the Tor process, enabling them to build things similar to `Vidalia <https://www.torproject.org/getinvolved/volunteer.html.en#project-vidalia>`_ and `arm <http://www.atagar.com/arm/>`_.
+Getting started with any new library can be rather daunting, so lets get our feet wet by jumping straight in with a tutorial...
+
+The Little Relay that Could
+---------------------------
+
+Lets say you just set up your very first `Tor relay <https://www.torproject.org/docs/tor-doc-relay.html.en>`_. Thank you! Now you want to write a script that tells you how much it is being used.
+
+First, for any script we write to be able to talk with our relay it'll need to have a control port available. This is a port that's usually only available on localhost and protected by either a password or authentication cookie.
+
+Look at your `torrc <https://www.torproject.org/docs/faq.html.en#torrc>`_ for the following configuration options...
+
+::
+
+ # This provides a port for the script we write to talk to. If you set this
+ # then be sure to also have either set the CookieAuthentication flag *or*
+ # provide a HashedControlPassword!
+
+ ControlPort 9051
+
+ # This will make Tor write an authentication cookie file. Anything that can
+ # read that file can connect to Tor. If you're going to run this script with
+ # the same user as Tor then this is the easiest method of authentication to
+ # use.
+
+ CookieAuthentication 1
+
+ # Alternatively we can authenticate with a password. To set a password first
+ # get its hash...
+ #
+ # % tor --hash-password "my_password"
+ # 16:E600ADC1B52C80BB6022A0E999A7734571A451EB6AE50FED489B72E3DF
+ #
+ # ... and use that for the HashedControlPassword in our torrc.
+
+ HashedControlPassword 16:E600ADC1B52C80BB6022A0E999A7734571A451EB6AE50FED489B72E3DF
+
+You'll need to restart Tor or issue a SIGHUP for these new settings to take effect. Now lets write a script that tells us how many bytes Tor has sent and received...
+
+::
+
+ from stem.control import Controller
+
+ controller = Controller.from_port(control_port = 9051)
+ controller.authenticate() # provide the password here if you set one
+
+ bytes_read = controller.get_info("traffic/read")
+ bytes_written = controller.get_info("traffic/written")
+
+ print "My Tor relay has read %s bytes and written %s." % (bytes_read, bytes_written)
+
+::
+
+ % python example.py
+ My Tor relay has read 33406 bytes and written 29649.
+
+Congratulations! You've written your first controller script.
+
+Mirror Mirror on the Wall
+-------------------------
+
+A script that tells us our contributed bandwidth is neat and all, but now lets figure out who the *biggest* exit relays are.
+
+Information about the Tor relay network come from documents called **descriptors**. Descriptors can come from a few things...
+
+1. The Tor control port with GETINFO options like **desc/all-recent** and **ns/all**.
+2. Files in Tor's data directory, like **cached-descriptors** and **cached-consensus**.
+3. The descriptor archive on `Tor's metrics site <https://metrics.torproject.org/data.html>`_.
+
+We've already used the control port, so for this example we'll use the cached files directly. First locate Tor's data directory. If your torrc has a DataDirectory line then that's the spot. If not then check Tor's man page for the default location.
+
+Tor has several descriptor types. For bandwidth information we'll go to the server descriptors, which are located in the **cached-descriptors** file. These have somewhat infrequently changing information published by the relays themselves.
+
+To read this file we'll use the :class:`~stem.descriptor.reader.DescriptorReader`, a class designed to read descriptor files.
+
+::
+
+ import sys
+ from stem.descriptor.reader import DescriptorReader
+
+ bw_to_relay = {} # mapping of observed bandwidth to the relay nicknames
+
+ with DescriptorReader(["/home/atagar/.tor/cached-descriptors"]) as reader:
+ for desc in reader:
+ if desc.exit_policy.is_exiting_allowed():
+ bw_to_relay.setdefault(desc.observed_bandwidth, []).append(desc.nickname)
+
+ sorted_bw = reversed(sorted(bw_to_relay.keys()))
+
+ # prints the top fifteen relays
+
+ count = 1
+ for bw_value in sorted_bw:
+ for nickname in bw_to_relay[bw_value]:
+ print "%i. %s (%i bytes/s)" % (count, nickname, bw_value)
+ count += 1
+
+ if count > 15:
+ sys.exit()
+
+::
+
+ % python example.py
+ 1. herngaard (42939655 bytes/s)
+ 2. chaoscomputerclub19 (42402911 bytes/s)
+ 3. chaoscomputerclub18 (41967097 bytes/s)
+ 4. chaoscomputerclub20 (40882989 bytes/s)
+ 5. wannabe (40514411 bytes/s)
+ 6. dorrisdeebrown (40349829 bytes/s)
+ 7. manning2 (40057719 bytes/s)
+ 8. chaoscomputerclub21 (38701399 bytes/s)
+ 9. TorLand1 (37983627 bytes/s)
+ 10. bolobolo1 (37676580 bytes/s)
+ 11. manning1 (37117034 bytes/s)
+ 12. gorz (35760527 bytes/s)
+ 13. ndnr1 (26595129 bytes/s)
+ 14. politkovskaja2 (26149682 bytes/s)
+ 15. wau (25929953 bytes/s)
+
:mod:`stem.connection`
----------------------
@@ -16,7 +129,7 @@ Connecting and authenticating to a Tor process.
:mod:`stem.control`
----------------------
-Provides the :class:`stem.control.Controller` class which, as the name implies, is used for talking with and controlling a Tor instance. As a user this is the primary class that you'll need.
+Provides the :class:`~stem.control.Controller` class which, as the name implies, is used for talking with and controlling a Tor instance. As a user this is the primary class that you'll need.
:mod:`stem.socket`
------------------
diff --git a/test/integ/control/controller.py b/test/integ/control/controller.py
index 7c6708f..36ac14a 100644
--- a/test/integ/control/controller.py
+++ b/test/integ/control/controller.py
@@ -18,6 +18,31 @@ import test.runner
import test.util
class TestController(unittest.TestCase):
+ def test_tutorial(self):
+ """
+ Tests the tutorial from our front page.
+ """
+
+ if test.runner.require_control(self): return
+ if test.runner.require_version(self, stem.version.Version("0.2.3.1")): return # uses a relatively new feature
+ elif not test.runner.Torrc.PORT in test.runner.get_runner().get_options():
+ test.runner.skip(self, "no port")
+ return
+
+ from stem.control import Controller
+
+ controller = Controller.from_port(control_port = test.runner.CONTROL_PORT)
+
+ try:
+ controller.authenticate(test.runner.CONTROL_PASSWORD)
+
+ bytes_read = controller.get_info("traffic/read")
+ bytes_written = controller.get_info("traffic/written")
+
+ printed_msg = "My Tor relay has read %s bytes and written %s." % (bytes_read, bytes_written)
+ finally:
+ controller.close()
+
def test_from_port(self):
"""
Basic sanity check for the from_port constructor.
@@ -362,9 +387,6 @@ class TestController(unittest.TestCase):
# invalid signals
self.assertRaises(stem.socket.InvalidArguments, controller.signal, "FOOBAR")
-
- controller.signal("INT")
- self.assertRaises(stem.socket.SocketClosed, controller.msg, "GETINFO version")
def test_extendcircuit(self):
if test.runner.require_control(self): return
diff --git a/test/integ/descriptor/server_descriptor.py b/test/integ/descriptor/server_descriptor.py
index 55e6545..21d0b33 100644
--- a/test/integ/descriptor/server_descriptor.py
+++ b/test/integ/descriptor/server_descriptor.py
@@ -16,6 +16,35 @@ import test.runner
import test.integ.descriptor
class TestServerDescriptor(unittest.TestCase):
+ def test_tutorial(self):
+ """
+ Runs the tutorial example for parsing server descriptors. We use our
+ metrics consensus rather than the cached one so it won't take overly long.
+ """
+
+ from stem.descriptor.reader import DescriptorReader
+
+ bw_to_relay = {} # mapping of observed bandwidth to the relay nicknames
+
+ descriptor_path = test.integ.descriptor.get_resource("example_descriptor")
+ with DescriptorReader([descriptor_path]) as reader:
+ for desc in reader:
+ if desc.exit_policy.is_exiting_allowed():
+ bw_to_relay.setdefault(desc.observed_bandwidth, []).append(desc.nickname)
+
+ sorted_bw = reversed(sorted(bw_to_relay.keys()))
+
+ # prints the top fifteen relays
+
+ count = 1
+ for bw_value in sorted_bw:
+ for nickname in bw_to_relay[bw_value]:
+ printed_line = "%i. %s (%i bytes/s)" % (count, nickname, bw_value)
+ count += 1
+
+ if count > 15:
+ return
+
def test_metrics_descriptor(self):
"""
Parses and checks our results against a server descriptor from metrics.
1
0

14 Oct '12
commit 5e29e28d16dc050d4cc5dcac9ae92d20935651d7
Author: Damian Johnson <atagar(a)torproject.org>
Date: Sat Oct 13 16:34:47 2012 -0700
Merging testrc.sample with settings.cfg
We run the tests all the time but never with a configuration file so
deemphasising the capability by merging the sample rc file with the
settings.cfg (which is actually... well, used). If someone really wants to
configure the tests this way then they might as well look at the settings.cfg
anyway since it'll provide the full range of options.
---
test/settings.cfg | 71 +++++++++++++++++++++++++++++++++++++++++++++++++---
test/testrc.sample | 56 -----------------------------------------
2 files changed, 67 insertions(+), 60 deletions(-)
diff --git a/test/settings.cfg b/test/settings.cfg
index 44e28ab..9aadcda 100644
--- a/test/settings.cfg
+++ b/test/settings.cfg
@@ -1,10 +1,73 @@
# Testing Configuration
#
-# The following are globally accessable configuration attributes used by stem's
-# unit and integration tests. Top level configuraion categories are...
+# The following are configurations used by stem's testing framework. You can
+# overwrite any of these my making your own configuratino file and using the
+# '--config' option of run_tests.py...
#
-# target.* - Attributes of the integration testing targets. This helps
-# determine what is ran when the user runs with '--target'.
+# run_tests.py --config my_testrc --unit
+#
+# The commonly customized options are...
+#
+# argument.*
+# Default test runner arguments. You can set these to always run with
+# particular arguments.
+#
+# integ.test_directory
+# Path used for our data directory and any temporary test resources. Relative
+# paths are expanded in reference to the location of 'run_tests.py'.
+#
+# If set then the directory's contents are reused for future tests (so we
+# have a faster startup and lower load on authorities). If set to an empty
+# value then this makes a fresh data directory for each test run.
+#
+# integ.log
+# Path runtime logs are placed. Relative paths are expanded in reference to
+# 'run_tests.py'. Logging is disabled if set ot an empty value.
+#
+# integ.target.online
+# Runs tests with network activity. If set then we'll wait for tor to fully
+# bootstrap when starting, which won't happen without a network connection.
+#
+# integ.target.relative_data_dir
+# Uses a relative path for the tor data directory if set.
+#
+# integ.target.run.*
+# Runs the integration test suite for all of the given connection and
+# authentication configurations. If the 'all' option is set then the other
+# flags are ignored.
+
+argument.unit false
+argument.integ false
+argument.test
+argument.log
+argument.tor tor
+argument.no_color false
+
+integ.test_directory ./test/data
+integ.log ./test/data/log
+
+integ.target.online false
+integ.target.relative_data_dir false
+integ.target.chroot false
+integ.target.run.none false
+integ.target.run.open true
+integ.target.run.password false
+integ.target.run.cookie false
+integ.target.run.muiltipe false
+integ.target.run.socket false
+integ.target.run.scookie false
+integ.target.run.ptrace false
+integ.target.run.all false
+
+# The following are less testing framework attributes that aren't as commonly
+# reconfigured.
+#
+# msg.*
+# Rendered text.
+#
+# target.*
+# Attributes of the integration testing targets. This helps determine what is
+# ran when the user runs with '--target'.
msg.help
|Usage runTests.py [OPTION]
diff --git a/test/testrc.sample b/test/testrc.sample
deleted file mode 100644
index 444d7f2..0000000
--- a/test/testrc.sample
+++ /dev/null
@@ -1,56 +0,0 @@
-# Integration Test Settings
-#
-# argument.unit
-# argument.integ
-# argument.log
-# argument.tor
-# argument.no_color
-# Default values for runner arguments.
-#
-# integ.test_directory
-# Path used for our data directory and any temporary test resources. Relative
-# paths are expanded in reference to the location of 'run_tests.py'.
-#
-# If set then the directory's contents are reused for future tests (so we
-# have a faster startup and lower load on authorities). If set to an empty
-# value then this makes a fresh data directory for each test run.
-#
-# integ.log
-# Path runtime logs are placed. Relative paths are expanded in reference to
-# 'run_tests.py'. Logging is disabled if set ot an empty value.
-#
-# integ.target.online
-# Runs tests with network activity. If set then we'll wait for tor to fully
-# bootstrap when starting, which won't happen without a network connection.
-#
-# integ.target.relative_data_dir
-# Uses a relative path for the tor data directory if set.
-#
-# integ.target.run.*
-# Runs the integration test suite for all of the given connection and
-# authentication configurations. If the 'all' option is set then the other
-# flags are ignored.
-
-argument.unit false
-argument.integ false
-argument.test
-argument.log
-argument.tor tor
-argument.no_color false
-
-integ.test_directory ./test/data
-integ.log ./test/data/log
-
-integ.target.online false
-integ.target.relative_data_dir false
-integ.target.chroot false
-integ.target.run.none false
-integ.target.run.open true
-integ.target.run.password false
-integ.target.run.cookie false
-integ.target.run.muiltipe false
-integ.target.run.socket false
-integ.target.run.scookie false
-integ.target.run.ptrace false
-integ.target.run.all false
-
1
0
commit 60d0964c9a015a8a90f88f1fcd07534937a867a4
Author: Roger Dingledine <arma(a)torproject.org>
Date: Sat Oct 13 21:06:13 2012 -0400
slight tweak, and also reformat
---
ReleaseNotes | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/ReleaseNotes b/ReleaseNotes
index 1dd2ca3..062d7d0 100644
--- a/ReleaseNotes
+++ b/ReleaseNotes
@@ -8,11 +8,10 @@ Changes in version 0.2.3.x - 2012-10-??
The Tor 0.2.3 release series is dedicated to the memory of Len "rabbi"
Sassaman (1980-2011), a long-time cypherpunk, anonymity researcher,
Mixmaster maintainer, Pynchon Gate co-designer, CodeCon organizer,
- programmer, and friend. Unstinting in his dedication to the cause of
+ programmer, and friend. Unstinting in his dedication to the cause of
freedom, he inspired and helped many of us as we began our work on
- anonymity, and inspires us still. Let's all honor his memory by
- writing software to protect people's freedoms, and by helping others
- to do so.
+ anonymity, and inspires us still. Please honor his memory by writing
+ software to protect people's freedoms, and by helping others to do so.
Tor 0.2.3.x, the first stable release in the 0.2.3 branch, features ...
1
0