tor-commits
Threads by month
- ----- 2026 -----
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- 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
- 1 participants
- 214673 discussions
r24651: {arm} Replacing the file discriptor popup (which was both unused a (in arm/trunk: . src/interface src/util)
by Damian Johnson 18 Apr '11
by Damian Johnson 18 Apr '11
18 Apr '11
Author: atagar
Date: 2011-04-18 02:34:38 +0000 (Mon, 18 Apr 2011)
New Revision: 24651
Removed:
arm/trunk/src/interface/fileDescriptorPopup.py
Modified:
arm/trunk/ChangeLog
arm/trunk/README
arm/trunk/armrc.sample
arm/trunk/src/interface/__init__.py
arm/trunk/src/interface/controller.py
arm/trunk/src/interface/headerPanel.py
arm/trunk/src/util/procTools.py
arm/trunk/src/util/sysTools.py
arm/trunk/src/util/torTools.py
Log:
Replacing the file discriptor popup (which was both unused and inaccurate) with:
- logged notice/warn when descriptors are running out
- an entry in the header panel when they're running low on descriptors
Modified: arm/trunk/ChangeLog
===================================================================
--- arm/trunk/ChangeLog 2011-04-17 17:25:12 UTC (rev 24650)
+++ arm/trunk/ChangeLog 2011-04-18 02:34:38 UTC (rev 24651)
@@ -48,6 +48,8 @@
* fix: recognizing the proper private ip ranges of the 172.* block
* fix: missing 'is default' option from config sort ordering
* fix (4/4/11, r24562): hidden service parsing issue when there's multiple spaces in the HiddenServicePort opition (caught by Nicolas Pouillard)
+ * fix (4/6/11, r24570): missing new connection components from installations (caught by Anthony Basile)
+ * fix (4/13/11, r24613): failed requests for our flags cause a syntax error (caught by qbi)
1/7/11 - version 1.4.1 (r24054)
Platform specific enhancements including BSD compatibility and vastly improved performance on Linux.
Modified: arm/trunk/README
===================================================================
--- arm/trunk/README 2011-04-17 17:25:12 UTC (rev 24650)
+++ arm/trunk/README 2011-04-18 02:34:38 UTC (rev 24651)
@@ -157,13 +157,10 @@
__init__.py
controller.py - main display loop, handling input and layout
headerPanel.py - top of all pages, providing general information
+ descriptorPopup.py - (popup) displays connection descriptor data
logPanel.py - (page 1) displays tor, arm, and torctl events
- fileDescriptorPopup.py - (popup) displays file descriptors used by tor
-
connPanel.py - (page 2) deprecated counterpart for connections/*
- descriptorPopup.py - (popup) displays connection descriptor data
-
configPanel.py - (page 3) editor panel for the tor configuration
torrcPanel.py - (page 4) displays torrc and validation
Modified: arm/trunk/armrc.sample
===================================================================
--- arm/trunk/armrc.sample 2011-04-17 17:25:12 UTC (rev 24650)
+++ arm/trunk/armrc.sample 2011-04-18 02:34:38 UTC (rev 24651)
@@ -31,6 +31,10 @@
# events.
features.logFile
+# If true, the header panel always shows the file descriptor usage. Otherwise
+# this is only displayed when we're running out.
+features.showFdUsage false
+
# Paremters for the log panel
# ---------------------------
# showDateDividers
@@ -276,4 +280,6 @@
log.stats.procResolutionFailover INFO
log.stats.failedPsResolution INFO
log.savingDebugLog NOTICE
+log.fdUsageSixtyPercent NOTICE
+log.fdUsageNinetyPercent WARN
Modified: arm/trunk/src/interface/__init__.py
===================================================================
--- arm/trunk/src/interface/__init__.py 2011-04-17 17:25:12 UTC (rev 24650)
+++ arm/trunk/src/interface/__init__.py 2011-04-18 02:34:38 UTC (rev 24651)
@@ -2,5 +2,5 @@
Panels, popups, and handlers comprising the arm user interface.
"""
-__all__ = ["configPanel", "connPanel", "controller", "descriptorPopup", "fileDescriptorPopup", "headerPanel", "logPanel", "torrcPanel"]
+__all__ = ["configPanel", "connPanel", "controller", "descriptorPopup", "headerPanel", "logPanel", "torrcPanel"]
Modified: arm/trunk/src/interface/controller.py
===================================================================
--- arm/trunk/src/interface/controller.py 2011-04-17 17:25:12 UTC (rev 24650)
+++ arm/trunk/src/interface/controller.py 2011-04-18 02:34:38 UTC (rev 24651)
@@ -22,7 +22,6 @@
import configPanel
import torrcPanel
import descriptorPopup
-import fileDescriptorPopup
import interface.connections.connPanel
import interface.connections.connEntry
@@ -551,7 +550,7 @@
connections.RESOLVER_FINAL_FAILURE_MSG += " (connection related portions of the monitor won't function)"
panels = {
- "header": headerPanel.HeaderPanel(stdscr, startTime),
+ "header": headerPanel.HeaderPanel(stdscr, startTime, config),
"popup": Popup(stdscr, 9),
"graph": graphing.graphPanel.GraphPanel(stdscr),
"log": logPanel.LogPanel(stdscr, loggedEvents, config)}
@@ -962,7 +961,7 @@
popup.addfstr(3, 2, "<b>s</b>: graphed stats (<b>%s</b>)" % graphedStats)
popup.addfstr(3, 41, "<b>i</b>: graph update interval (<b>%s</b>)" % graphing.graphPanel.UPDATE_INTERVALS[panels["graph"].updateInterval][0])
popup.addfstr(4, 2, "<b>b</b>: graph bounds (<b>%s</b>)" % panels["graph"].bounds.lower())
- popup.addfstr(4, 41, "<b>d</b>: file descriptors")
+ popup.addfstr(4, 41, "<b>a</b>: save snapshot of the log")
popup.addfstr(5, 2, "<b>e</b>: change logged events")
regexLabel = "enabled" if panels["log"].regexFilter else "disabled"
@@ -971,7 +970,6 @@
hiddenEntryLabel = "visible" if panels["log"].showDuplicates else "hidden"
popup.addfstr(6, 2, "<b>u</b>: duplicate log entries (<b>%s</b>)" % hiddenEntryLabel)
popup.addfstr(6, 41, "<b>c</b>: clear event log")
- popup.addfstr(7, 41, "<b>a</b>: save snapshot of the log")
pageOverrideKeys = (ord('m'), ord('n'), ord('s'), ord('i'), ord('d'), ord('e'), ord('r'), ord('f'), ord('x'))
if page == 1:
@@ -1121,21 +1119,6 @@
panels["graph"].bounds = graphing.graphPanel.Bounds.next(panels["graph"].bounds)
selectiveRefresh(panels, page)
- elif page == 0 and key in (ord('d'), ord('D')):
- # provides popup with file descriptors
- panel.CURSES_LOCK.acquire()
- try:
- setPauseState(panels, isPaused, page, True)
- curses.cbreak() # wait indefinitely for key presses (no timeout)
-
- fileDescriptorPopup.showFileDescriptorPopup(panels["popup"], stdscr, torPid)
-
- setPauseState(panels, isPaused, page)
- curses.halfdelay(REFRESH_RATE * 10) # reset normal pausing behavior
- finally:
- panel.CURSES_LOCK.release()
-
- panels["graph"].redraw(True)
elif page == 0 and (key == ord('a') or key == ord('A')):
# allow user to enter a path to take a snapshot - abandons if left blank
panel.CURSES_LOCK.acquire()
Deleted: arm/trunk/src/interface/fileDescriptorPopup.py
===================================================================
--- arm/trunk/src/interface/fileDescriptorPopup.py 2011-04-17 17:25:12 UTC (rev 24650)
+++ arm/trunk/src/interface/fileDescriptorPopup.py 2011-04-18 02:34:38 UTC (rev 24651)
@@ -1,189 +0,0 @@
-#!/usr/bin/env python
-# fileDescriptorPopup.py -- provides open file descriptor stats and listing
-# Released under the GPL v3 (http://www.gnu.org/licenses/gpl.html)
-
-import os
-import curses
-
-from util import panel, sysTools, uiTools
-
-class PopupProperties:
- """
- State attributes of popup window for file descriptors. Any problem in system
- calls will cause 'errorMsg' to be set (providing the notice rather than
- displaying data). Under systems other than Solaris there's no way for a
- process (other than tor itself) to know its file descriptor limit, so this
- estimates.
- """
-
- def __init__(self, torPid):
- self.fdFile, self.fdConn, self.fdMisc = [], [], []
- self.fdLimit = 0
- self.errorMsg = ""
- self.scroll = 0
-
- try:
- ulimitCall = None
-
- # retrieves list of open files, options are:
- # n = no dns lookups, p = by pid, -F = show fields (L = login name, n = opened files)
- # TODO: better rewrite to take advantage of sysTools
-
- if not sysTools.isAvailable("lsof"): raise Exception("error: lsof is unavailable")
- results = sysTools.call("lsof -np %s -F Ln" % torPid)
-
- # if we didn't get any results then tor's probably closed (keep defaults)
- if len(results) == 0: return
-
- torUser = results[1][1:]
- results = results[2:] # skip first couple lines (pid listing and user)
-
- # splits descriptors into buckets according to their type
- descriptors = [entry[1:].strip() for entry in results] # strips off first character (always an 'n')
-
- # checks if read failed due to permission issues
- isPermissionDenied = True
- for desc in descriptors:
- if "Permission denied" not in desc:
- isPermissionDenied = False
- break
-
- if isPermissionDenied:
- raise Exception("lsof error: Permission denied")
-
- for desc in descriptors:
- if os.path.exists(desc): self.fdFile.append(desc)
- elif desc[0] != "/" and ":" in desc: self.fdConn.append(desc)
- else: self.fdMisc.append(desc)
-
- self.fdFile.sort()
- self.fdConn.sort()
- self.fdMisc.sort()
-
- # This is guessing the open file limit. Unfortunately there's no way
- # (other than "/usr/proc/bin/pfiles pid | grep rlimit" under Solaris) to
- # get the file descriptor limit for an arbitrary process. What we need is
- # for the tor process to provide the return value of the "getrlimit"
- # function via a GET_INFO call.
- if torUser.strip() == "debian-tor":
- # probably loaded via /etc/init.d/tor which changes descriptor limit
- self.fdLimit = 8192
- else:
- # uses ulimit to estimate (-H is for hard limit, which is what tor uses)
- ulimitCall = os.popen("ulimit -Hn 2> /dev/null")
- results = ulimitCall.readlines()
- if len(results) == 0: raise Exception("error: ulimit is unavailable")
- self.fdLimit = int(results[0])
-
- # can't use sysTools for this call because ulimit isn't in the path...
- # so how the **** am I to detect if it's available!
- #if not sysTools.isAvailable("ulimit"): raise Exception("error: ulimit is unavailable")
- #results = sysTools.call("ulimit -Hn")
- #if len(results) == 0: raise Exception("error: ulimit call failed")
- #self.fdLimit = int(results[0])
- except Exception, exc:
- # problem arose in calling or parsing lsof or ulimit calls
- self.errorMsg = str(exc)
- finally:
- if ulimitCall: ulimitCall.close()
-
- def handleKey(self, key, height):
- totalEntries = len(self.fdFile) + len(self.fdConn) + len(self.fdMisc)
-
- if key == curses.KEY_UP: self.scroll = max(self.scroll - 1, 0)
- elif key == curses.KEY_DOWN: self.scroll = max(0, min(self.scroll + 1, totalEntries - height))
- elif key == curses.KEY_PPAGE: self.scroll = max(self.scroll - height, 0)
- elif key == curses.KEY_NPAGE: self.scroll = max(0, min(self.scroll + height, totalEntries - height))
-
-def showFileDescriptorPopup(popup, stdscr, torPid):
- """
- Presents open file descriptors in popup window with the following controls:
- Up, Down, Page Up, Page Down - scroll descriptors
- Any other key - close popup
- """
-
- properties = PopupProperties(torPid)
-
- if not panel.CURSES_LOCK.acquire(False): return
- try:
- if properties.errorMsg:
- popupWidth = len(properties.errorMsg) + 4
- popupHeight = 3
- else:
- # uses longest entry to determine popup width
- popupWidth = 40 # minimum width
- for entry in properties.fdFile + properties.fdConn + properties.fdMisc:
- popupWidth = max(popupWidth, len(entry) + 4)
-
- popupHeight = len(properties.fdFile) + len(properties.fdConn) + len(properties.fdMisc) + 4
-
- popup.setHeight(popupHeight)
- popup.recreate(stdscr, popupWidth)
-
- while True:
- draw(popup, properties)
- key = stdscr.getch()
-
- if key in (curses.KEY_UP, curses.KEY_DOWN, curses.KEY_PPAGE, curses.KEY_NPAGE):
- # navigation - tweak properties and recreate popup
- properties.handleKey(key, popup.maxY - 4)
- else:
- # closes popup
- break
-
- popup.height = 9
- popup.recreate(stdscr, 80)
- finally:
- panel.CURSES_LOCK.release()
-
-def draw(popup, properties):
- popup.clear()
- popup.win.box()
-
- # top label
- popup.addstr(0, 0, "Open File Descriptors:", curses.A_STANDOUT)
-
- if properties.errorMsg:
- popup.addstr(1, 2, properties.errorMsg, curses.A_BOLD | uiTools.getColor("red"))
- else:
- # text with file descriptor count and limit
- fdCount = len(properties.fdFile) + len(properties.fdConn) + len(properties.fdMisc)
- fdCountPer = 100 * fdCount / max(properties.fdLimit, 1)
-
- statsColor = "green"
- if fdCountPer >= 90: statsColor = "red"
- elif fdCountPer >= 50: statsColor = "yellow"
-
- countMsg = "%i / %i (%i%%)" % (fdCount, properties.fdLimit, fdCountPer)
- popup.addstr(1, 2, countMsg, curses.A_BOLD | uiTools.getColor(statsColor))
-
- # provides a progress bar reflecting the stats
- barWidth = popup.maxX - len(countMsg) - 6 # space between "[ ]" in progress bar
- barProgress = barWidth * fdCountPer / 100 # filled cells
- if fdCount > 0: barProgress = max(1, barProgress) # ensures one cell is filled unless really zero
- popup.addstr(1, len(countMsg) + 3, "[", curses.A_BOLD)
- popup.addstr(1, len(countMsg) + 4, " " * barProgress, curses.A_STANDOUT | uiTools.getColor(statsColor))
- popup.addstr(1, len(countMsg) + 4 + barWidth, "]", curses.A_BOLD)
-
- popup.win.hline(2, 1, curses.ACS_HLINE, popup.maxX - 2)
-
- # scrollable file descriptor listing
- lineNum = 3
- entryNum = properties.scroll
- while lineNum <= popup.maxY - 2:
- if entryNum < len(properties.fdFile):
- line = properties.fdFile[entryNum]
- color = "green"
- elif entryNum < len(properties.fdFile) + len(properties.fdMisc):
- line = properties.fdMisc[entryNum - len(properties.fdFile)]
- color = "cyan"
- else:
- line = properties.fdConn[entryNum - len(properties.fdFile) - len(properties.fdMisc)]
- color = "blue"
-
- popup.addstr(lineNum, 2, line, curses.A_BOLD | uiTools.getColor(color))
- lineNum += 1
- entryNum += 1
-
- popup.refresh()
-
Modified: arm/trunk/src/interface/headerPanel.py
===================================================================
--- arm/trunk/src/interface/headerPanel.py 2011-04-17 17:25:12 UTC (rev 24650)
+++ arm/trunk/src/interface/headerPanel.py 2011-04-18 02:34:38 UTC (rev 24651)
@@ -16,9 +16,10 @@
import os
import time
+import curses
import threading
-from util import panel, sysTools, torTools, uiTools
+from util import log, panel, sysTools, torTools, uiTools
# minimum width for which panel attempts to double up contents (two columns to
# better use screen real estate)
@@ -32,24 +33,32 @@
VERSION_STATUS_COLORS = {"new": "blue", "new in series": "blue", "obsolete": "red", "recommended": "green",
"old": "red", "unrecommended": "red", "unknown": "cyan"}
+DEFAULT_CONFIG = {"features.showFdUsage": False,
+ "log.fdUsageSixtyPercent": log.NOTICE,
+ "log.fdUsageNinetyPercent": log.WARN}
+
class HeaderPanel(panel.Panel, threading.Thread):
"""
Top area contenting tor settings and system information. Stats are stored in
the vals mapping, keys including:
tor/ version, versionStatus, nickname, orPort, dirPort, controlPort,
exitPolicy, isAuthPassword (bool), isAuthCookie (bool),
- orListenAddr, *address, *fingerprint, *flags, pid, startTime
+ orListenAddr, *address, *fingerprint, *flags, pid, startTime,
+ *fdUsed, fdLimit, isFdLimitEstimate
sys/ hostname, os, version
stat/ *%torCpu, *%armCpu, *rss, *%mem
* volatile parameter that'll be reset on each update
"""
- def __init__(self, stdscr, startTime):
+ def __init__(self, stdscr, startTime, config = None):
panel.Panel.__init__(self, stdscr, "header", 0)
threading.Thread.__init__(self)
self.setDaemon(True)
+ self._config = dict(DEFAULT_CONFIG)
+ if config: config.update(self._config)
+
self._isTorConnected = True
self._lastUpdate = -1 # time the content was last revised
self._isPaused = False # prevents updates if true
@@ -78,6 +87,10 @@
# changes.
self._lastResourceFetch = -1
+ # flag to indicate if we've already given file descriptor warnings
+ self._isFdSixtyPercentWarned = False
+ self._isFdNinetyPercentWarned = False
+
self.vals = {}
self.valsLock = threading.RLock()
self._update(True)
@@ -177,11 +190,36 @@
else: break
if self.vals["tor/orPort"]:
- # Line 4 / Line 2 Right (fingerprint)
+ # Line 4 / Line 2 Right (fingerprint, and possibly file descriptor usage)
y, x = (1, leftWidth) if isWide else (3, 0)
+
fingerprintLabel = uiTools.cropStr("fingerprint: %s" % self.vals["tor/fingerprint"], width)
self.addstr(y, x, fingerprintLabel)
+ # if there's room and we're able to retrieve both the file descriptor
+ # usage and limit then it might be presented
+ if width - x - 59 >= 20 and self.vals["tor/fdUsed"] and self.vals["tor/fdLimit"]:
+ # display file descriptor usage if we're either configured to do so or
+ # running out
+
+ fdPercent = 100 * self.vals["tor/fdUsed"] / self.vals["tor/fdLimit"]
+
+ if fdPercent >= 60 or self._config["features.showFdUsage"]:
+ fdPercentLabel, fdPercentFormat = "%i%%" % fdPercent, curses.A_NORMAL
+ if fdPercent >= 95:
+ fdPercentFormat = curses.A_BOLD | uiTools.getColor("red")
+ elif fdPercent >= 90:
+ fdPercentFormat = uiTools.getColor("red")
+ elif fdPercent >= 60:
+ fdPercentFormat = uiTools.getColor("yellow")
+
+ estimateChar = "?" if self.vals["tor/isFdLimitEstimate"] else ""
+ baseLabel = "file desc: %i / %i%s (" % (self.vals["tor/fdUsed"], self.vals["tor/fdLimit"], estimateChar)
+
+ self.addstr(y, x + 59, baseLabel)
+ self.addstr(y, x + 59 + len(baseLabel), fdPercentLabel, fdPercentFormat)
+ self.addstr(y, x + 59 + len(baseLabel) + len(fdPercentLabel), ")")
+
# Line 5 / Line 3 Left (flags)
if self._isTorConnected:
flagLine = "flags: "
@@ -349,6 +387,12 @@
policyEntries += [policy.strip() for policy in exitPolicy.split(",")]
self.vals["tor/exitPolicy"] = ", ".join(policyEntries)
+ # file descriptor limit for the process, if this can't be determined
+ # then the limit is None
+ fdLimit, fdIsEstimate = conn.getMyFileDescriptorLimit()
+ self.vals["tor/fdLimit"] = fdLimit
+ self.vals["tor/isFdLimitEstimate"] = fdIsEstimate
+
# system information
unameVals = os.uname()
self.vals["sys/hostname"] = unameVals[1]
@@ -364,6 +408,7 @@
# reverts volatile parameters to defaults
self.vals["tor/fingerprint"] = "Unknown"
self.vals["tor/flags"] = []
+ self.vals["tor/fdUsed"] = 0
self.vals["stat/%torCpu"] = "0"
self.vals["stat/%armCpu"] = "0"
self.vals["stat/rss"] = "0"
@@ -377,6 +422,27 @@
self.vals["tor/fingerprint"] = conn.getInfo("fingerprint", self.vals["tor/fingerprint"])
self.vals["tor/flags"] = conn.getMyFlags(self.vals["tor/flags"])
+ # Updates file descriptor usage and logs if the usage is high. If we don't
+ # have a known limit or it's obviously faulty (being lower than our
+ # current usage) then omit file descriptor functionality.
+ if self.vals["tor/fdLimit"]:
+ fdUsed = conn.getMyFileDescriptorUsage()
+ if fdUsed and fdUsed <= self.vals["tor/fdLimit"]: self.vals["tor/fdUsed"] = fdUsed
+ else: self.vals["tor/fdUsed"] = 0
+
+ if self.vals["tor/fdUsed"] and self.vals["tor/fdLimit"]:
+ fdPercent = 100 * self.vals["tor/fdUsed"] / self.vals["tor/fdLimit"]
+ estimatedLabel = " estimated" if self.vals["tor/isFdLimitEstimate"] else ""
+ msg = "Tor's%s file descriptor usage is at %i%%." % (estimatedLabel, fdPercent)
+
+ if fdPercent >= 90 and not self._isFdNinetyPercentWarned:
+ self._isFdSixtyPercentWarned, self._isFdNinetyPercentWarned = True, True
+ msg += " If you run out Tor will be unable to continue functioning."
+ log.log(self._config["log.fdUsageNinetyPercent"], msg)
+ elif fdPercent >= 60 and not self._isFdSixtyPercentWarned:
+ self._isFdSixtyPercentWarned = True
+ log.log(self._config["log.fdUsageSixtyPercent"], msg)
+
# ps or proc derived resource usage stats
if self.vals["tor/pid"]:
resourceTracker = sysTools.getResourceTracker(self.vals["tor/pid"])
Modified: arm/trunk/src/util/procTools.py
===================================================================
--- arm/trunk/src/util/procTools.py 2011-04-17 17:25:12 UTC (rev 24650)
+++ arm/trunk/src/util/procTools.py 2011-04-18 02:34:38 UTC (rev 24651)
@@ -96,6 +96,31 @@
_logProcRuntime("cwd", "/proc/%s/cwd" % pid, startTime)
return cwd
+def getUid(pid):
+ """
+ Provides the user ID the given process is running under. This is None if it
+ can't be determined.
+
+ Arguments:
+ pid - queried process
+ """
+
+ startTime = time.time()
+ statusFile = open("/proc/%s/status" % pid)
+ statusFileLines = statusFile.readlines()
+ statusFile.close()
+
+ result = None
+ for line in statusFileLines:
+ if line.startswith("Uid:"):
+ lineComp = line.split()
+
+ if len(lineComp) >= 2 and lineComp[1].isdigit():
+ result = lineComp[1]
+
+ _logProcRuntime("uid", "/proc/%s/status[Uid]" % pid, startTime)
+ return result
+
def getMemoryUsage(pid):
"""
Provides the memory usage in bytes for the given process of the form:
Modified: arm/trunk/src/util/sysTools.py
===================================================================
--- arm/trunk/src/util/sysTools.py 2011-04-17 17:25:12 UTC (rev 24650)
+++ arm/trunk/src/util/sysTools.py 2011-04-18 02:34:38 UTC (rev 24651)
@@ -8,8 +8,10 @@
from util import log, procTools, uiTools
-# mapping of commands to if they're available or not
-CMD_AVAILABLE_CACHE = {}
+# Mapping of commands to if they're available or not. This isn't always
+# reliable, failing for some special commands. For these the cache is
+# prepopulated to skip lookups.
+CMD_AVAILABLE_CACHE = {"ulimit": True}
# cached system call results, mapping the command issued to the (time, results) tuple
CALL_CACHE = {}
Modified: arm/trunk/src/util/torTools.py
===================================================================
--- arm/trunk/src/util/torTools.py 2011-04-17 17:25:12 UTC (rev 24650)
+++ arm/trunk/src/util/torTools.py 2011-04-18 02:34:38 UTC (rev 24651)
@@ -10,6 +10,7 @@
"""
import os
+import pwd
import time
import socket
import thread
@@ -55,7 +56,8 @@
"config/names", "info/names", "features/names", "events/names",
"nsEntry", "descEntry", "address", "bwRate", "bwBurst",
"bwObserved", "bwMeasured", "flags", "parsedVersion", "pid",
- "pathPrefix", "startTime", "authorities", "circuits", "hsPorts")
+ "user", "fdLimit", "pathPrefix", "startTime", "authorities",
+ "circuits", "hsPorts")
CACHE_GETINFO_PREFIX_ARGS = ("ip-to-country/", )
# Tor has a couple messages (in or/router.c) for when our ip address changes:
@@ -838,6 +840,52 @@
return self._getRelayAttr("pid", None)
+ def getMyUser(self):
+ """
+ Provides the user this process is running under. If unavailable this
+ provides None.
+ """
+
+ return self._getRelayAttr("user", None)
+
+ def getMyFileDescriptorUsage(self):
+ """
+ Provides the number of file descriptors currently being used by this
+ process. This returns None if this can't be determined.
+ """
+
+ # The file descriptor usage is the size of the '/proc/<pid>/fd' contents
+ # http://linuxshellaccount.blogspot.com/2008/06/finding-number-of-open-file-d…
+ # I'm not sure about other platforms (like BSD) so erroring out there.
+
+ self.connLock.acquire()
+
+ result = None
+ if self.isAlive() and procTools.isProcAvailable():
+ myPid = self.getMyPid()
+
+ if myPid:
+ try: result = len(os.listdir("/proc/%s/fd" % myPid))
+ except: pass
+
+ self.connLock.release()
+
+ return result
+
+ def getMyFileDescriptorLimit(self):
+ """
+ Provides the maximum number of file descriptors this process can have.
+ Only the Tor process itself reliably knows this value, and the option for
+ getting this was added in Tor 0.2.3.x-final. If that's unavailable then
+ we estimate the file descriptor limit based on other factors.
+
+ The return result is a tuple of the form:
+ (fileDescLimit, isEstimate)
+ and if all methods fail then both values are None.
+ """
+
+ return self._getRelayAttr("fdLimit", (None, True))
+
def getMyDirAuthorities(self):
"""
Provides a listing of IP/port tuples for the directory authorities we've
@@ -1645,6 +1693,55 @@
result = parseVersion(self.getInfo("version", ""))
elif key == "pid":
result = getPid(int(self.getOption("ControlPort", 9051)), self.getOption("PidFile"))
+ elif key == "user":
+ # This was added in Tor 0.2.3.x-final so it's quite likely unavailable.
+ # Even if it is, it might fail and return an empty string.
+ queriedUser = self.getInfo("process/user")
+
+ if queriedUser != None and queriedUser != "":
+ result = queriedUser
+ else:
+ myPid = self.getMyPid()
+
+ if myPid:
+ # if proc contents are available then fetch the pid from there and
+ # convert it to the username
+ if procTools.isProcAvailable():
+ try:
+ myUid = procTools.getUid(myPid)
+ if myUid and myUid.isdigit():
+ result = pwd.getpwuid(int(myUid)).pw_name
+ except: pass
+
+ # fall back to querying via ps
+ if not result:
+ psResults = sysTools.call("ps -o user %s" % myPid)
+ if psResults and len(psResults) >= 2: result = psResults[1].strip()
+ elif key == "fdLimit":
+ # This was added in Tor 0.2.3.x-final so it's quite likely unavailable.
+ # Even if it is, it might fail and return -1.
+
+ queriedLimit = self.getInfo("process/descriptor-limit")
+
+ if queriedLimit != None and queriedLimit != "-1":
+ result = (int(queriedLimit), False)
+ else:
+ torUser = self.getMyUser()
+
+ # This is guessing the open file limit. Unfortunately there's no way
+ # (other than "/usr/proc/bin/pfiles pid | grep rlimit" under Solaris)
+ # to get the file descriptor limit for an arbitrary process.
+
+ if torUser == "debian-tor":
+ # probably loaded via /etc/init.d/tor which changes descriptor limit
+ result = (8192, True)
+ else:
+ # uses ulimit to estimate (-H is for hard limit, which is what tor uses)
+ ulimitResults = sysTools.call("ulimit -Hn")
+
+ if ulimitResults:
+ ulimit = ulimitResults[0].strip()
+ if ulimit.isdigit(): result = (int(ulimit), True)
elif key == "pathPrefix":
# make sure the path prefix is valid and exists (providing a notice if not)
prefixPath = CONFIG["features.pathPrefix"].strip()
1
0
commit 4747c84241318f6bff8570a81a2f234560595b4e
Author: Roger Dingledine <arma(a)torproject.org>
Date: Sun Apr 17 14:59:29 2011 -0400
fold in recent changelog entries
---
ChangeLog | 5 +++++
changes/osx_forgotten_compilefix | 4 ----
changes/win_tmp_dir | 4 ----
3 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index ce68ccb..ca782b1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -14,6 +14,8 @@ Changes in version 0.2.2.25-alpha - 2011-04-??
- When a client finds that an origin circuit has run out of 16-bit
stream IDs, we now mark it as unusable for new streams. Previously,
we would try to close the entire circuit. Bugfix on Tor 0.0.6.
+ - Added a forgotten cast that caused a compile warning on OS X
+ 10.6. Bugfix on 0.2.2.24-alpha.
o Minor features:
- Send END_STREAM_REASON_NOROUTE in response to EHOSTUNREACH errors.
@@ -32,6 +34,9 @@ Changes in version 0.2.2.25-alpha - 2011-04-??
in three places, and we never adjusted the known/unknown skew
values. This is still something we might want to do someday,
but if we do, we'll want to do it differently.
+ - Use GetTempDir to find the proper temporary directory location on
+ Windows when generating temporary files for the unit tests. Patch
+ by Gisle Vanem.
Changes in version 0.2.2.24-alpha - 2011-04-08
diff --git a/changes/osx_forgotten_compilefix b/changes/osx_forgotten_compilefix
deleted file mode 100644
index 754e09c..0000000
--- a/changes/osx_forgotten_compilefix
+++ /dev/null
@@ -1,4 +0,0 @@
- o Minor bugfixes:
- - Added a forgotten cast that caused a compile warning on OS X 10.6. Bugfix
- on 0.2.2.24-alpha.
-
diff --git a/changes/win_tmp_dir b/changes/win_tmp_dir
deleted file mode 100644
index 13f6e7f..0000000
--- a/changes/win_tmp_dir
+++ /dev/null
@@ -1,4 +0,0 @@
- o Unit tests:
- - Use GetTempDir to find the proper temporary directory location on
- Windows when generating temporary files for the unit tests. Patch
- by Gisle Vanem.
1
0
r24650: {website} updated navigation.wmi from Sacro (website/trunk/include/de)
by Runa Sandvik 17 Apr '11
by Runa Sandvik 17 Apr '11
17 Apr '11
Author: runa
Date: 2011-04-17 17:25:12 +0000 (Sun, 17 Apr 2011)
New Revision: 24650
Modified:
website/trunk/include/de/navigation.wmi
Log:
updated navigation.wmi from Sacro
Modified: website/trunk/include/de/navigation.wmi
===================================================================
--- website/trunk/include/de/navigation.wmi 2011-04-17 16:16:31 UTC (rev 24649)
+++ website/trunk/include/de/navigation.wmi 2011-04-17 17:25:12 UTC (rev 24650)
@@ -1,4 +1,4 @@
-#!/usr/bin/wml
+#!/usr/bin/wml
## translation metadata
# Revision: $Revision$
@@ -8,7 +8,7 @@
# path link text
my @navigation = (
'index' , 'Startseite',
- 'about/overview' , '�ber Tor',
+ 'about/overview' , 'Über Tor',
'docs/documentation' , 'Dokumentation',
'projects/projects' , 'Projekte',
'press/press' , 'Presse',
@@ -18,8 +18,9 @@
my @calltoaction = (
'download/download' , 'Download',
'donate/donate' , 'Spenden',
- 'getinvolved/volunteer' , 'Sich Engagieren',
+ 'getinvolved/volunteer' , 'Engagiere Dich',
);
:>
+
1
0
r24649: {projects} committing strings updates for 1.0.5... (in projects/android/trunk/Orbot/res: values values-ar values-ca values-de values-es values-fa values-mk values-nb values-nl values-pl values-pt values-ru values-sv values-zh xml)
by Nathan Freitas 17 Apr '11
by Nathan Freitas 17 Apr '11
17 Apr '11
Author: n8fr8
Date: 2011-04-17 16:16:31 +0000 (Sun, 17 Apr 2011)
New Revision: 24649
Modified:
projects/android/trunk/Orbot/res/values-ar/strings.xml
projects/android/trunk/Orbot/res/values-ca/strings.xml
projects/android/trunk/Orbot/res/values-de/strings.xml
projects/android/trunk/Orbot/res/values-es/strings.xml
projects/android/trunk/Orbot/res/values-fa/strings.xml
projects/android/trunk/Orbot/res/values-mk/strings.xml
projects/android/trunk/Orbot/res/values-nb/strings.xml
projects/android/trunk/Orbot/res/values-nl/strings.xml
projects/android/trunk/Orbot/res/values-pl/strings.xml
projects/android/trunk/Orbot/res/values-pt/strings.xml
projects/android/trunk/Orbot/res/values-ru/strings.xml
projects/android/trunk/Orbot/res/values-sv/strings.xml
projects/android/trunk/Orbot/res/values-zh/strings.xml
projects/android/trunk/Orbot/res/values/strings.xml
projects/android/trunk/Orbot/res/xml/preferences.xml
Log:
committing strings updates for 1.0.5...
Modified: projects/android/trunk/Orbot/res/values/strings.xml
===================================================================
--- projects/android/trunk/Orbot/res/values/strings.xml 2011-04-17 16:15:56 UTC (rev 24648)
+++ projects/android/trunk/Orbot/res/values/strings.xml 2011-04-17 16:16:31 UTC (rev 24649)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Orbot</string>
- <string name="app_version">1.0.4</string>
+ <string name="app_version">1.0.5-dev</string>
<string name="internal_web_url">http://orbot/</string>
<string name="default_web_url">http://check.torproject.org</string>
@@ -30,7 +30,10 @@
<string name="menu_start">Start</string>
<string name="menu_stop">Stop</string>
+<string name="menu_about">About</string>
+<string name="menu_wizard">Wizard</string>
+
<string name="button_help">Help</string>
<string name="button_close">Close</string>
<string name="button_about">About</string>
@@ -41,7 +44,7 @@
<string name="menu_verify">Check</string>
<string name="menu_exit">Exit</string>
<string name="powered_by">powered by the Tor Project</string>
-<string name="press_to_start">- press to start -</string>
+<string name="press_to_start">- long press to start -</string>
<string name="pref_trans_proxy_group">Transparent Proxying (Requires Root)</string>
<string name="pref_trans_proxy_title">Transparent Proxying</string>
@@ -57,6 +60,9 @@
<string name="pref_transparent_port_summary">List of ports to proxy. *USE ONLY* if \'All\' or \'App\' mode doesn\'t work</string>
<string name="pref_transparent_port_dialog">Enter ports to proxy</string>
+<string name="pref_has_root">Request Root Access</string>
+<string name="pref_has_root_summary">Request root access for transparent proxying</string>
+
<string name="status_install_success">Tor binaries successfully installed!</string>
<string name="status_install_fail">The Tor binary files were unable to be installed. Please check the log and notify tor-assistants(a)torproject.org</string>
Modified: projects/android/trunk/Orbot/res/values-ar/strings.xml
===================================================================
--- projects/android/trunk/Orbot/res/values-ar/strings.xml 2011-04-17 16:15:56 UTC (rev 24648)
+++ projects/android/trunk/Orbot/res/values-ar/strings.xml 2011-04-17 16:16:31 UTC (rev 24649)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">اوربوت (Orbot)</string>
- <string name="app_version">1.0.4</string>
+ <string name="app_version">1.0.5-dev</string>
<string name="internal_web_url">http://orbot/</string>
<string name="default_web_url">http://check.torproject.org</string>
@@ -29,6 +29,8 @@
<string name="menu_apps">تطبيقات</string>
<string name="menu_start">بدء</string>
<string name="menu_stop">إيقاف</string>
+<string name="menu_about">About</string>
+<string name="menu_wizard">Wizard</string>
<string name="button_help">مساعدة</string>
@@ -57,6 +59,9 @@
<string name="pref_transparent_port_summary">List of ports to proxy. *USE ONLY* if \'All\' or \'App\' mode doesn\'t work</string>
<string name="pref_transparent_port_dialog">Enter ports to proxy</string>
+<string name="pref_has_root">Request Root Access</string>
+<string name="pref_has_root_summary">Request root access for transparent proxying</string>
+
<string name="status_install_success">تم تثبيت ثنائيات تور بنجاح!</string>
<string name="status_install_fail">غير قادر على تثبيت ملفات ثنائيات تور. يرجى التحقق من السجل وإعلامنا على البريد الإلكتروني tor-assistants(a)torproject.org</string>
Modified: projects/android/trunk/Orbot/res/values-ca/strings.xml
===================================================================
--- projects/android/trunk/Orbot/res/values-ca/strings.xml 2011-04-17 16:15:56 UTC (rev 24648)
+++ projects/android/trunk/Orbot/res/values-ca/strings.xml 2011-04-17 16:16:31 UTC (rev 24649)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Orbot</string>
- <string name="app_version">1.0.4</string>
+ <string name="app_version">1.0.5-dev</string>
<string name="internal_web_url">http://orbot/</string>
<string name="default_web_url">http://check.torproject.org</string>
@@ -29,6 +29,8 @@
<string name="menu_apps">Aplicacions</string>
<string name="menu_start">Inici</string>
<string name="menu_stop">Atura</string>
+<string name="menu_about">About</string>
+<string name="menu_wizard">Wizard</string>
<string name="button_help">Ajut</string>
@@ -57,6 +59,9 @@
<string name="pref_transparent_port_summary">List of ports to proxy. *USE ONLY* if \'All\' or \'App\' mode doesn\'t work</string>
<string name="pref_transparent_port_dialog">Enter ports to proxy</string>
+<string name="pref_has_root">Request Root Access</string>
+<string name="pref_has_root_summary">Request root access for transparent proxying</string>
+
<string name="status_install_success">Binaris de Tor instal·lats correctament!</string>
<string name="status_install_fail">Els fitxers binaris de Tor no s\'han pogut instalar. Per favor, comprova el registre i notifica-ho a tor-assistants(a)torproject.org</string>
Modified: projects/android/trunk/Orbot/res/values-de/strings.xml
===================================================================
--- projects/android/trunk/Orbot/res/values-de/strings.xml 2011-04-17 16:15:56 UTC (rev 24648)
+++ projects/android/trunk/Orbot/res/values-de/strings.xml 2011-04-17 16:16:31 UTC (rev 24649)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Orbot</string>
- <string name="app_version">1.0.4</string>
+ <string name="app_version">1.0.5-dev</string>
<string name="internal_web_url">http://orbot/</string>
<string name="default_web_url">http://check.torproject.org</string>
@@ -29,6 +29,8 @@
<string name="menu_apps">Apps</string>
<string name="menu_start">Start</string>
<string name="menu_stop">Stop</string>
+<string name="menu_about">About</string>
+<string name="menu_wizard">Wizard</string>
<string name="button_help">Hilfe</string>
@@ -57,6 +59,9 @@
<string name="pref_transparent_port_summary">List of ports to proxy. *USE ONLY* if \'All\' or \'App\' mode doesn\'t work</string>
<string name="pref_transparent_port_dialog">Enter ports to proxy</string>
+<string name="pref_has_root">Request Root Access</string>
+<string name="pref_has_root_summary">Request root access for transparent proxying</string>
+
<string name="status_install_success">Die Tor-Pakete wurden erfolgreich installiert!</string>
<string name="status_install_fail">Die Tor-Pakete konnten nicht erfolgreich installiert werden. Bitte prüfen Sie das Logfile und wenden Sie sich an tor-assistants(a)torproject.org.</string>
Modified: projects/android/trunk/Orbot/res/values-es/strings.xml
===================================================================
--- projects/android/trunk/Orbot/res/values-es/strings.xml 2011-04-17 16:15:56 UTC (rev 24648)
+++ projects/android/trunk/Orbot/res/values-es/strings.xml 2011-04-17 16:16:31 UTC (rev 24649)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Orbot</string>
- <string name="app_version">1.0.4</string>
+ <string name="app_version">1.0.5-dev</string>
<string name="internal_web_url">http://orbot/</string>
<string name="default_web_url">http://check.torproject.org</string>
@@ -29,6 +29,8 @@
<string name="menu_apps">Aplicaciones</string>
<string name="menu_start">Iniciar</string>
<string name="menu_stop">Detener</string>
+<string name="menu_about">About</string>
+<string name="menu_wizard">Wizard</string>
<string name="button_help">Ayuda</string>
@@ -57,6 +59,9 @@
<string name="pref_transparent_port_summary">List of ports to proxy. *USE ONLY* if \'All\' or \'App\' mode doesn\'t work</string>
<string name="pref_transparent_port_dialog">Enter ports to proxy</string>
+<string name="pref_has_root">Request Root Access</string>
+<string name="pref_has_root_summary">Request root access for transparent proxying</string>
+
<string name="status_install_success">¡Binarios de Tor instalados con éxito!</string>
<string name="status_install_fail">Los archivos binarios de Tor no se han podido instalar. Por favor, verifique el Historial y notifique a: tor-assistants(a)torproject.org</string>
Modified: projects/android/trunk/Orbot/res/values-fa/strings.xml
===================================================================
--- projects/android/trunk/Orbot/res/values-fa/strings.xml 2011-04-17 16:15:56 UTC (rev 24648)
+++ projects/android/trunk/Orbot/res/values-fa/strings.xml 2011-04-17 16:16:31 UTC (rev 24649)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">اوربات</string>
- <string name="app_version">1.0.4</string>
+ <string name="app_version">1.0.5-dev</string>
<string name="internal_web_url">http://orbot/</string>
<string name="default_web_url">http://check.torproject.org</string>
@@ -30,6 +30,8 @@
<string name="menu_start">آغاز</string>
<string name="menu_stop">ایست</string>
+<string name="menu_about">About</string>
+<string name="menu_wizard">Wizard</string>
<string name="button_help">کمک</string>
<string name="button_close">بسته</string>
@@ -57,6 +59,9 @@
<string name="pref_transparent_port_summary">List of ports to proxy. *USE ONLY* if \'All\' or \'App\' mode doesn\'t work</string>
<string name="pref_transparent_port_dialog">Enter ports to proxy</string>
+<string name="pref_has_root">Request Root Access</string>
+<string name="pref_has_root_summary">Request root access for transparent proxying</string>
+
<string name="status_install_success">دوتایی های Tor با موفقیت نصب شدند!</string>
<string name="status_install_fail">نصب فایل های دوتایی Tor ممکن نبود. لطفن قطعه را وارسی کنید و به tor-assistance(a)torproject.org اطلاع دهید.</string>
Modified: projects/android/trunk/Orbot/res/values-mk/strings.xml
===================================================================
--- projects/android/trunk/Orbot/res/values-mk/strings.xml 2011-04-17 16:15:56 UTC (rev 24648)
+++ projects/android/trunk/Orbot/res/values-mk/strings.xml 2011-04-17 16:16:31 UTC (rev 24649)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Орбот</string>
- <string name="app_version">1.0.4</string>
+ <string name="app_version">1.0.5-dev</string>
<string name="internal_web_url">http://orbot/</string>
<string name="default_web_url">http://check.torproject.org</string>
@@ -29,6 +29,8 @@
<string name="menu_apps">Апликации</string>
<string name="menu_start">Вклучи</string>
<string name="menu_stop">Исклучи</string>
+<string name="menu_about">About</string>
+<string name="menu_wizard">Wizard</string>
<string name="button_help">Помош</string>
@@ -57,6 +59,9 @@
<string name="pref_transparent_port_summary">List of ports to proxy. *USE ONLY* if \'All\' or \'App\' mode doesn\'t work</string>
<string name="pref_transparent_port_dialog">Enter ports to proxy</string>
+<string name="pref_has_root">Request Root Access</string>
+<string name="pref_has_root_summary">Request root access for transparent proxying</string>
+
<string name="status_install_success">Извршните програми за Тор се успешно инсталирани!</string>
<string name="status_install_fail">Извршните фајлови на Тор не можеа да се инсталираат. Видете го логот и известете нè за ова на tor-assistants(a)torproject.org</string>
Modified: projects/android/trunk/Orbot/res/values-nb/strings.xml
===================================================================
--- projects/android/trunk/Orbot/res/values-nb/strings.xml 2011-04-17 16:15:56 UTC (rev 24648)
+++ projects/android/trunk/Orbot/res/values-nb/strings.xml 2011-04-17 16:16:31 UTC (rev 24649)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Orbot</string>
- <string name="app_version">1.0.4</string>
+ <string name="app_version">1.0.5-dev</string>
<string name="internal_web_url">http://orbot/</string>
<string name="default_web_url">http://check.torproject.org</string>
@@ -30,8 +30,14 @@
<string name="menu_start">Start</string>
<string name="menu_stop">Stopp</string>
+<string name="menu_about">About</string>
+<string name="menu_wizard">Wizard</string>
+<string name="pref_has_root">Request Root Access</string>
+<string name="pref_has_root_summary">>Request root access for transparent proxying</string>
+
+
<string name="button_help">Hjelp</string>
<string name="button_close">Avslutt</string>
<string name="button_about">Om</string>
Modified: projects/android/trunk/Orbot/res/values-nl/strings.xml
===================================================================
--- projects/android/trunk/Orbot/res/values-nl/strings.xml 2011-04-17 16:15:56 UTC (rev 24648)
+++ projects/android/trunk/Orbot/res/values-nl/strings.xml 2011-04-17 16:16:31 UTC (rev 24649)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Orbot</string>
- <string name="app_version">1.0.4</string>
+ <string name="app_version">1.0.5-dev</string>
<string name="internal_web_url">http://orbot/</string>
<string name="default_web_url">http://check.torproject.org</string>
@@ -30,6 +30,8 @@
<string name="menu_start">Start</string>
<string name="menu_stop">Stop</string>
+<string name="menu_about">About</string>
+<string name="menu_wizard">Wizard</string>
<string name="button_help">Hulp</string>
<string name="button_close">Afsluiten</string>
@@ -57,6 +59,9 @@
<string name="pref_transparent_port_summary">List of ports to proxy. *USE ONLY* if \'All\' or \'App\' mode doesn\'t work</string>
<string name="pref_transparent_port_dialog">Enter ports to proxy</string>
+<string name="pref_has_root">Request Root Access</string>
+<string name="pref_has_root_summary">Request root access for transparent proxying</string>
+
<string name="status_install_success">Tor\'s binaire bestanden succesvol geïnstalleerd</string>
<string name="status_install_fail">The binaire bestanden konden niet worden geïnstalleerd. Gelieve het log te raadplegen en tor-assistants(a)torproject.org op de hoogte te stellen</string>
Modified: projects/android/trunk/Orbot/res/values-pl/strings.xml
===================================================================
--- projects/android/trunk/Orbot/res/values-pl/strings.xml 2011-04-17 16:15:56 UTC (rev 24648)
+++ projects/android/trunk/Orbot/res/values-pl/strings.xml 2011-04-17 16:16:31 UTC (rev 24649)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Orbot</string>
- <string name="app_version">1.0.4</string>
+ <string name="app_version">1.0.5-dev</string>
<string name="internal_web_url">http://orbot/</string>
<string name="default_web_url">http://check.torproject.org</string>
@@ -30,6 +30,8 @@
<string name="menu_start">Start</string>
<string name="menu_stop">Stop</string>
+<string name="menu_about">About</string>
+<string name="menu_wizard">Wizard</string>
<string name="button_help">Pomoc</string>
<string name="button_close">Zamknij</string>
@@ -57,6 +59,9 @@
<string name="pref_transparent_port_summary">List of ports to proxy. *USE ONLY* if \'All\' or \'App\' mode doesn\'t work</string>
<string name="pref_transparent_port_dialog">Enter ports to proxy</string>
+<string name="pref_has_root">Request Root Access</string>
+<string name="pref_has_root_summary">Request root access for transparent proxying</string>
+
<string name="status_install_success">Binarki Tora pomyslnie zainstalowane!</string>
<string name="status_install_fail">Nie można zainstalować plików binarnych Tora. Zajrzyj do dziennika i powiadom tor-assistants(a)torproject.org</string>
Modified: projects/android/trunk/Orbot/res/values-pt/strings.xml
===================================================================
--- projects/android/trunk/Orbot/res/values-pt/strings.xml 2011-04-17 16:15:56 UTC (rev 24648)
+++ projects/android/trunk/Orbot/res/values-pt/strings.xml 2011-04-17 16:16:31 UTC (rev 24649)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Orbot</string>
- <string name="app_version">1.0.4</string>
+ <string name="app_version">1.0.5-dev</string>
<string name="internal_web_url">http://orbot/</string>
<string name="default_web_url">http://check.torproject.org</string>
<string name="secure_default_web_url">https://check.torproject.org</string>
@@ -29,6 +29,8 @@
<string name="menu_start">Iniciar</string>
<string name="menu_stop">Parar</string>
+<string name="menu_about">About</string>
+<string name="menu_wizard">Wizard</string>
<string name="button_help">Ajuda</string>
@@ -36,6 +38,9 @@
<string name="button_about">Sobre</string>
+<string name="pref_has_root">Request Root Access</string>
+<string name="pref_has_root_summary">>Request root access for transparent proxying</string>
+
<string name="menu_verify">Check</string>
<string name="menu_exit">Exit</string>
</resources>
Modified: projects/android/trunk/Orbot/res/values-ru/strings.xml
===================================================================
--- projects/android/trunk/Orbot/res/values-ru/strings.xml 2011-04-17 16:15:56 UTC (rev 24648)
+++ projects/android/trunk/Orbot/res/values-ru/strings.xml 2011-04-17 16:16:31 UTC (rev 24649)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Orbot</string>
- <string name="app_version">1.0.4</string>
+ <string name="app_version">1.0.5-dev</string>
<string name="internal_web_url">http://orbot/</string>
<string name="default_web_url">http://check.torproject.org</string>
@@ -30,6 +30,8 @@
<string name="menu_start">Запустить</string>
<string name="menu_stop">Остановить</string>
+<string name="menu_about">About</string>
+<string name="menu_wizard">Wizard</string>
<string name="button_help">Справка</string>
<string name="button_close">Закрыть</string>
@@ -57,6 +59,9 @@
<string name="pref_transparent_port_summary">List of ports to proxy. *USE ONLY* if \'All\' or \'App\' mode doesn\'t work</string>
<string name="pref_transparent_port_dialog">Enter ports to proxy</string>
+<string name="pref_has_root">Request Root Access</string>
+<string name="pref_has_root_summary">Request root access for transparent proxying</string>
+
<string name="status_install_success">Программа Tor успешно установлена!</string>
<string name="status_install_fail">Не удалось установить программу Tor. Пожалуйста, проверьте системный журнал и сообщите нам: tor-assistants(a)torproject.org</string>
Modified: projects/android/trunk/Orbot/res/values-sv/strings.xml
===================================================================
--- projects/android/trunk/Orbot/res/values-sv/strings.xml 2011-04-17 16:15:56 UTC (rev 24648)
+++ projects/android/trunk/Orbot/res/values-sv/strings.xml 2011-04-17 16:16:31 UTC (rev 24649)
@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Orbot</string>
- <string name="app_version">1.0.4</string>
+ <string name="app_version">1.0.5-dev</string>
+
<string name="internal_web_url">http://orbot/</string>
<string name="default_web_url">http://check.torproject.org</string>
<string name="secure_default_web_url">https://check.torproject.org</string>
@@ -29,8 +30,13 @@
<string name="menu_start">Start</string>
<string name="menu_stop">Stopp</string>
+<string name="menu_about">About</string>
+<string name="menu_wizard">Wizard</string>
+<string name="pref_has_root">Request Root Access</string>
+<string name="pref_has_root_summary">>Request root access for transparent proxying</string>
+
<string name="button_help">Hjälp</string>
<string name="button_close">Stäng</string>
<string name="button_about">Om</string>
Modified: projects/android/trunk/Orbot/res/values-zh/strings.xml
===================================================================
--- projects/android/trunk/Orbot/res/values-zh/strings.xml 2011-04-17 16:15:56 UTC (rev 24648)
+++ projects/android/trunk/Orbot/res/values-zh/strings.xml 2011-04-17 16:16:31 UTC (rev 24649)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Orbot</string>
- <string name="app_version">1.0.4</string>
+ <string name="app_version">1.0.5-dev</string>
<string name="internal_web_url">http://orbot/</string>
<string name="default_web_url">http://check.torproject.org</string>
@@ -30,6 +30,8 @@
<string name="menu_start">启动</string>
<string name="menu_stop">停止</string>
+<string name="menu_about">About</string>
+<string name="menu_wizard">Wizard</string>
<string name="button_help">帮助</string>
<string name="button_close">关闭</string>
@@ -57,6 +59,9 @@
<string name="pref_transparent_port_summary">List of ports to proxy. *USE ONLY* if \'All\' or \'App\' mode doesn\'t work</string>
<string name="pref_transparent_port_dialog">Enter ports to proxy</string>
+<string name="pref_has_root">Request Root Access</string>
+<string name="pref_has_root_summary">Request root access for transparent proxying</string>
+
<string name="status_install_success">Tor 二进制程序安装成功!</string>
<string name="status_install_fail">Tor 二进制程序无法安装。请查看日志 tor-assistants(a)torproject.org</string>
Modified: projects/android/trunk/Orbot/res/xml/preferences.xml
===================================================================
--- projects/android/trunk/Orbot/res/xml/preferences.xml 2011-04-17 16:15:56 UTC (rev 24648)
+++ projects/android/trunk/Orbot/res/xml/preferences.xml 2011-04-17 16:16:31 UTC (rev 24649)
@@ -7,6 +7,13 @@
android:title="@string/pref_start_boot_title"
android:summary="@string/pref_start_boot_summary"
android:enabled="true"/>
+
+<CheckBoxPreference
+android:defaultValue="false"
+android:key="has_root"
+android:title="@string/pref_has_root"
+android:summary="@string/pref_has_root_summary"
+android:enabled="true"/>
</PreferenceCategory>
<PreferenceCategory android:title="@string/pref_trans_proxy_group">
@@ -33,19 +40,6 @@
android:enabled="true"/>
-<CheckBoxPreference
-android:defaultValue="false"
-android:key="pref_transparent_port_fallback"
-android:summary="@string/pref_transparent_port_fallback_summary"
-android:enabled="true"
-android:title="@string/pref_transparent_port_fallback_title"/>
-
-<EditTextPreference android:key="pref_port_list"
-android:defaultValue="80,443,8080,8888,8443"
-android:title="@string/pref_transparent_port_title"
-android:summary="@string/pref_transparent_port_summary"
-android:dialogTitle="@string/pref_transparent_port_dialog"
-/>
</PreferenceCategory>
@@ -111,9 +105,34 @@
/>
</PreferenceCategory>
-<PreferenceCategory android:title="@string/pref_hs_group"><CheckBoxPreference android:title="Enable Hidden Services" android:summary="run servers accessible via the Tor network" android:key="pref_hs_enable"></CheckBoxPreference>
+<PreferenceCategory android:title="@string/pref_hs_group">
+<CheckBoxPreference android:title="Enable Hidden Services" android:summary="run servers accessible via the Tor network" android:key="pref_hs_enable"></CheckBoxPreference>
<EditTextPreference android:summary="enter localhost ports for hidden services" android:title="Hidden Service Ports" android:enabled="false" android:key="pref_hs_ports"></EditTextPreference>
<EditTextPreference android:key="pref_hs_hostname" android:summary="the addressable name for your hidden service (generated automatically)" android:title=".Onion Hostname"></EditTextPreference>
</PreferenceCategory>
+
+<PreferenceCategory android:title="Debug">
+<CheckBoxPreference
+android:key="pref_enable_logging"
+android:defaultValue="false"
+android:title="Debug Log"
+android:summary="enable debug log to output (must use adb or aLogCat to view)"
+android:enabled="true"></CheckBoxPreference>
+
+
+<CheckBoxPreference
+android:defaultValue="false"
+android:key="pref_transparent_port_fallback"
+android:summary="@string/pref_transparent_port_fallback_summary"
+android:enabled="true"
+android:title="@string/pref_transparent_port_fallback_title"/>
+
+<EditTextPreference android:key="pref_port_list"
+android:defaultValue="80,443,8080,8888,8443"
+android:title="@string/pref_transparent_port_title"
+android:summary="@string/pref_transparent_port_summary"
+android:dialogTitle="@string/pref_transparent_port_dialog"
+/>
+</PreferenceCategory>
</PreferenceScreen>
1
0
r24648: {} moves settings to proper Android imp of background thread (projects/android/trunk/Orbot/src/org/torproject/android)
by Nathan Freitas 17 Apr '11
by Nathan Freitas 17 Apr '11
17 Apr '11
Author: n8fr8
Date: 2011-04-17 16:15:56 +0000 (Sun, 17 Apr 2011)
New Revision: 24648
Added:
projects/android/trunk/Orbot/src/org/torproject/android/ProcessSettingsAsyncTask.java
Log:
moves settings to proper Android imp of background thread
Added: projects/android/trunk/Orbot/src/org/torproject/android/ProcessSettingsAsyncTask.java
===================================================================
--- projects/android/trunk/Orbot/src/org/torproject/android/ProcessSettingsAsyncTask.java (rev 0)
+++ projects/android/trunk/Orbot/src/org/torproject/android/ProcessSettingsAsyncTask.java 2011-04-17 16:15:56 UTC (rev 24648)
@@ -0,0 +1,32 @@
+package org.torproject.android;
+
+import org.torproject.android.service.ITorService;
+
+import android.os.AsyncTask;
+import android.os.RemoteException;
+
+public class ProcessSettingsAsyncTask extends AsyncTask<ITorService, Integer, Long>
+{
+
+
+ @Override
+ protected Long doInBackground(ITorService... torService) {
+
+ try {
+ torService[0].processSettings();
+ } catch (RemoteException e) {
+ e.printStackTrace();
+ }
+
+ return 100L;
+ }
+
+ protected void onProgressUpdate(Integer... progress) {
+
+ }
+
+ protected void onPostExecute(Long result) {
+
+ }
+
+}
1
0
commit 7c03c2207bc960bd843ea20b365401b437cffe49
Author: Runa A. Sandvik <runa.sandvik(a)gmail.com>
Date: Tue Apr 12 18:20:06 2011 +0100
update the paths in the script
---
src/vidalia/help/content/po2html.sh | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/vidalia/help/content/po2html.sh b/src/vidalia/help/content/po2html.sh
index ca6f01d..b94ee77 100755
--- a/src/vidalia/help/content/po2html.sh
+++ b/src/vidalia/help/content/po2html.sh
@@ -12,11 +12,11 @@
### Start config ###
# Location of the translated po files. Do not add the trailing slash.
-translated="/home/runa/tor/vidaliahelp/po"
+translated="/home/runa/tor/vidalia/src/vidalia/help/content/po"
# Location of the original and translated html files. Do not add the
# trailing slash.
-html="/home/runa/tor/vidaliahelp/"
+html="/home/runa/tor/vidalia/src/vidalia/help/content"
### End config ###
1
0
17 Apr '11
commit a1d9af25f8b97beb7b5b62cf6aeca26987601dd8
Author: Tomas Touceda <chiiph(a)gentoo.org>
Date: Sun Apr 17 12:52:52 2011 -0300
Fix wrong string. Thanks to bastik_tor
---
src/vidalia/MainWindow.cpp | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/vidalia/MainWindow.cpp b/src/vidalia/MainWindow.cpp
index 1a3c215..3c5c789 100644
--- a/src/vidalia/MainWindow.cpp
+++ b/src/vidalia/MainWindow.cpp
@@ -1649,7 +1649,7 @@ MainWindow::warnDangerousPort(quint16 port, bool rejected)
application = " ";
}
- QString text = tr("One of your applications%1appears to be making a "
+ QString text = tr("One of your applications %1 appears to be making a "
"potentially unencrypted and unsafe connection to port %2.")
.arg(application).arg(port);
1
0
17 Apr '11
commit c91d4a5800100bee9e74f013e8415f1208c9c754
Merge: dc1e6b5 7c03c22
Author: Tomas Touceda <chiiph(a)gentoo.org>
Date: Wed Apr 13 08:21:48 2011 -0300
Merge remote-tracking branch 'runa/master'
pkg/win32/po/.tx/config | 2 +-
pkg/win32/po/af/vidalia_af.po | 2 +-
pkg/win32/po/ak/vidalia_ak.po | 2 +-
pkg/win32/po/am/vidalia_am.po | 2 +-
pkg/win32/po/ar/vidalia_ar.po | 2 +-
pkg/win32/po/arn/vidalia_arn.po | 2 +-
pkg/win32/po/ast/vidalia_ast.po | 2 +-
pkg/win32/po/az/vidalia_az.po | 2 +-
pkg/win32/po/bg/vidalia_bg.po | 2 +-
pkg/win32/po/bn_IN/vidalia_bn_IN.po | 2 +-
pkg/win32/po/ca/vidalia_ca.po | 2 +-
pkg/win32/po/cs/vidalia_cs.po | 2 +-
pkg/win32/po/csb/vidalia_csb.po | 2 +-
pkg/win32/po/cy/vidalia_cy.po | 2 +-
pkg/win32/po/de/vidalia_de.po | 2 +-
pkg/win32/po/de_CH/vidalia_de_CH.po | 2 +-
pkg/win32/po/dz/vidalia_dz.po | 2 +-
pkg/win32/po/el/vidalia_el.po | 2 +-
pkg/win32/po/eo/vidalia_eo.po | 2 +-
pkg/win32/po/es/vidalia_es.po | 2 +-
pkg/win32/po/et/vidalia_et.po | 2 +-
pkg/win32/po/eu/vidalia_eu.po | 2 +-
pkg/win32/po/fil/vidalia_fil.po | 2 +-
pkg/win32/po/fur/vidalia_fur.po | 2 +-
pkg/win32/po/ga/vidalia_ga.po | 2 +-
pkg/win32/po/gl/vidalia_gl.po | 2 +-
pkg/win32/po/gu/vidalia_gu.po | 2 +-
pkg/win32/po/gun/vidalia_gun.po | 2 +-
pkg/win32/po/ha/vidalia_ha.po | 2 +-
pkg/win32/po/he/vidalia_he.po | 2 +-
pkg/win32/po/hi/vidalia_hi.po | 2 +-
pkg/win32/po/hr/vidalia_hr.po | 2 +-
pkg/win32/po/ht/vidalia_ht.po | 2 +-
pkg/win32/po/hu/vidalia_hu.po | 2 +-
pkg/win32/po/id/vidalia_id.po | 2 +-
pkg/win32/po/is/vidalia_is.po | 2 +-
pkg/win32/po/it/vidalia_it.po | 2 +-
pkg/win32/po/kn/vidalia_kn.po | 2 +-
pkg/win32/po/lb/vidalia_lb.po | 2 +-
pkg/win32/po/ln/vidalia_ln.po | 2 +-
pkg/win32/po/lo/vidalia_lo.po | 2 +-
pkg/win32/po/lt/vidalia_lt.po | 2 +-
pkg/win32/po/lv/vidalia_lv.po | 2 +-
pkg/win32/po/mg/vidalia_mg.po | 2 +-
pkg/win32/po/mi/vidalia_mi.po | 2 +-
pkg/win32/po/mk/vidalia_mk.po | 2 +-
pkg/win32/po/ml/vidalia_ml.po | 2 +-
pkg/win32/po/mn/vidalia_mn.po | 2 +-
pkg/win32/po/mr/vidalia_mr.po | 2 +-
pkg/win32/po/ms/vidalia_ms.po | 2 +-
pkg/win32/po/mt/vidalia_mt.po | 2 +-
pkg/win32/po/my/vidalia_my.po | 2 +-
pkg/win32/po/nah/vidalia_nah.po | 2 +-
pkg/win32/po/nap/vidalia_nap.po | 2 +-
pkg/win32/po/nb/vidalia_nb.po | 2 +-
pkg/win32/po/ne/vidalia_ne.po | 2 +-
pkg/win32/po/nl/vidalia_nl.po | 2 +-
pkg/win32/po/nn/vidalia_nn.po | 2 +-
pkg/win32/po/nso/vidalia_nso.po | 2 +-
pkg/win32/po/oc/vidalia_oc.po | 2 +-
pkg/win32/po/pa/vidalia_pa.po | 2 +-
pkg/win32/po/pap/vidalia_pap.po | 2 +-
pkg/win32/po/pl/vidalia_pl.po | 2 +-
pkg/win32/po/pms/vidalia_pms.po | 2 +-
pkg/win32/po/ps/vidalia_ps.po | 2 +-
pkg/win32/po/pt/vidalia_pt.po | 2 +-
pkg/win32/po/pt_BR/vidalia_pt_BR.po | 2 +-
pkg/win32/po/ru/vidalia_ru.po | 18 +-
pkg/win32/po/sco/vidalia_sco.po | 2 +-
pkg/win32/po/son/vidalia_son.po | 2 +-
pkg/win32/po/su/vidalia_su.po | 2 +-
pkg/win32/po/sw/vidalia_sw.po | 2 +-
pkg/win32/po/ta/vidalia_ta.po | 2 +-
pkg/win32/po/te/vidalia_te.po | 2 +-
pkg/win32/po/tg/vidalia_tg.po | 2 +-
pkg/win32/po/th/vidalia_th.po | 2 +-
pkg/win32/po/ti/vidalia_ti.po | 2 +-
pkg/win32/po/tk/vidalia_tk.po | 2 +-
pkg/win32/po/tr/vidalia_tr.po | 2 +-
pkg/win32/po/ur/vidalia_ur.po | 2 +-
pkg/win32/po/ve/vidalia_ve.po | 2 +-
pkg/win32/po/vi/vidalia_vi.po | 2 +-
pkg/win32/po/zh_CN/vidalia_zh_CN.po | 2 +-
pkg/win32/po/zh_HK/vidalia_zh_HK.po | 2 +-
pkg/win32/po/zu/vidalia_zu.po | 2 +-
src/vidalia/help/content/ar/bridges.html | 2 +-
src/vidalia/help/content/ar/config.html | 187 +++++++--------
src/vidalia/help/content/ar/index.html | 2 +-
src/vidalia/help/content/ar/links.html | 2 +-
src/vidalia/help/content/ar/log.html | 2 +-
src/vidalia/help/content/ar/netview.html | 2 +-
src/vidalia/help/content/ar/running.html | 2 +-
src/vidalia/help/content/ar/server.html | 2 +-
src/vidalia/help/content/ar/troubleshooting.html | 2 +-
src/vidalia/help/content/es/bridges.html | 2 +-
src/vidalia/help/content/fa/bridges.html | 2 +-
src/vidalia/help/content/fa/config.html | 2 +-
src/vidalia/help/content/fa/index.html | 2 +-
src/vidalia/help/content/fa/links.html | 2 +-
src/vidalia/help/content/fa/log.html | 2 +-
src/vidalia/help/content/fa/netview.html | 2 +-
src/vidalia/help/content/fa/running.html | 2 +-
src/vidalia/help/content/fa/server.html | 2 +-
src/vidalia/help/content/fa/troubleshooting.html | 2 +-
src/vidalia/help/content/it/links.html | 2 +-
src/vidalia/help/content/my/bridges.html | 2 +-
src/vidalia/help/content/my/config.html | 2 +-
src/vidalia/help/content/my/index.html | 2 +-
src/vidalia/help/content/my/links.html | 2 +-
src/vidalia/help/content/my/log.html | 2 +-
src/vidalia/help/content/my/netview.html | 2 +-
src/vidalia/help/content/my/running.html | 2 +-
src/vidalia/help/content/my/server.html | 2 +-
src/vidalia/help/content/my/troubleshooting.html | 2 +-
src/vidalia/help/content/nl/index.html | 2 +-
src/vidalia/help/content/nl/links.html | 2 +-
src/vidalia/help/content/nl/running.html | 2 +-
src/vidalia/help/content/pl/bridges.html | 2 +-
src/vidalia/help/content/pl/index.html | 2 +-
src/vidalia/help/content/pl/links.html | 2 +-
src/vidalia/help/content/po/.tx/config | 20 +-
src/vidalia/help/content/po/af/netview.po | 37 +--
src/vidalia/help/content/po/ak/netview.po | 37 +--
src/vidalia/help/content/po/am/netview.po | 37 +--
src/vidalia/help/content/po/ar/config.po | 279 +++++++++++-----------
src/vidalia/help/content/po/arn/netview.po | 37 +--
src/vidalia/help/content/po/ast/netview.po | 37 +--
src/vidalia/help/content/po/az/netview.po | 37 +--
src/vidalia/help/content/po/be/netview.po | 37 +--
src/vidalia/help/content/po/bg/netview.po | 37 +--
src/vidalia/help/content/po/bn/netview.po | 37 +--
src/vidalia/help/content/po/bn_IN/netview.po | 37 +--
src/vidalia/help/content/po/ca/netview.po | 37 +--
src/vidalia/help/content/po/cs/netview.po | 37 +--
src/vidalia/help/content/po/csb/netview.po | 37 +--
src/vidalia/help/content/po/cy/netview.po | 37 +--
src/vidalia/help/content/po/da/config.po | 132 ++++++-----
src/vidalia/help/content/po/dz/netview.po | 37 +--
src/vidalia/help/content/po/el/netview.po | 37 +--
src/vidalia/help/content/po/eo/netview.po | 37 +--
src/vidalia/help/content/po/et/netview.po | 37 +--
src/vidalia/help/content/po/eu/netview.po | 37 +--
src/vidalia/help/content/po/fil/netview.po | 37 +--
src/vidalia/help/content/po/fur/netview.po | 37 +--
src/vidalia/help/content/po/ga/netview.po | 37 +--
src/vidalia/help/content/po/gl/netview.po | 37 +--
src/vidalia/help/content/po/gu/netview.po | 37 +--
src/vidalia/help/content/po/gun/netview.po | 37 +--
src/vidalia/help/content/po/ha/netview.po | 37 +--
src/vidalia/help/content/po/he/netview.po | 37 +--
src/vidalia/help/content/po/hi/netview.po | 37 +--
src/vidalia/help/content/po/hr/netview.po | 37 +--
src/vidalia/help/content/po/ht/netview.po | 37 +--
src/vidalia/help/content/po/hu/netview.po | 37 +--
src/vidalia/help/content/po/id/netview.po | 37 +--
src/vidalia/help/content/po/is/netview.po | 37 +--
src/vidalia/help/content/po/kn/netview.po | 37 +--
src/vidalia/help/content/po/kw/netview.po | 37 +--
src/vidalia/help/content/po/lb/netview.po | 37 +--
src/vidalia/help/content/po/ln/netview.po | 37 +--
src/vidalia/help/content/po/lo/netview.po | 37 +--
src/vidalia/help/content/po/lt/netview.po | 37 +--
src/vidalia/help/content/po/lv/netview.po | 37 +--
src/vidalia/help/content/po/mg/netview.po | 37 +--
src/vidalia/help/content/po/mi/netview.po | 37 +--
src/vidalia/help/content/po/mk/netview.po | 37 +--
src/vidalia/help/content/po/ml/netview.po | 37 +--
src/vidalia/help/content/po/mn/netview.po | 37 +--
src/vidalia/help/content/po/mr/netview.po | 37 +--
src/vidalia/help/content/po/ms/netview.po | 37 +--
src/vidalia/help/content/po/mt/netview.po | 37 +--
src/vidalia/help/content/po/nap/netview.po | 37 +--
src/vidalia/help/content/po/nb/netview.po | 37 +--
src/vidalia/help/content/po/ne/netview.po | 37 +--
src/vidalia/help/content/po/nl/netview.po | 37 +--
src/vidalia/help/content/po/nn/netview.po | 37 +--
src/vidalia/help/content/po/nso/netview.po | 37 +--
src/vidalia/help/content/po/oc/netview.po | 37 +--
src/vidalia/help/content/po/pa/netview.po | 37 +--
src/vidalia/help/content/po/pap/netview.po | 37 +--
src/vidalia/help/content/po/pl/netview.po | 37 +--
src/vidalia/help/content/po/pms/netview.po | 37 +--
src/vidalia/help/content/po/ps/netview.po | 37 +--
src/vidalia/help/content/po/pt/netview.po | 37 +--
src/vidalia/help/content/po/pt_BR/netview.po | 37 +--
src/vidalia/help/content/po/ro/netview.po | 37 +--
src/vidalia/help/content/po/sco/netview.po | 37 +--
src/vidalia/help/content/po/son/netview.po | 37 +--
src/vidalia/help/content/po/su/netview.po | 37 +--
src/vidalia/help/content/po/sw/netview.po | 37 +--
src/vidalia/help/content/po/ta/netview.po | 37 +--
src/vidalia/help/content/po/te/netview.po | 37 +--
src/vidalia/help/content/po/tg/netview.po | 37 +--
src/vidalia/help/content/po/th/netview.po | 37 +--
src/vidalia/help/content/po/ti/netview.po | 37 +--
src/vidalia/help/content/po/tk/netview.po | 37 +--
src/vidalia/help/content/po/tr/config.po | 118 +++++-----
src/vidalia/help/content/po/tr/netview.po | 37 +--
src/vidalia/help/content/po/uk/netview.po | 37 +--
src/vidalia/help/content/po/ur/netview.po | 37 +--
src/vidalia/help/content/po/ve/netview.po | 37 +--
src/vidalia/help/content/po/vi/netview.po | 37 +--
src/vidalia/help/content/po/wa/netview.po | 37 +--
src/vidalia/help/content/po/zh_CN/netview.po | 124 ++++------
src/vidalia/help/content/po/zh_HK/netview.po | 37 +--
src/vidalia/help/content/po/zh_TW/netview.po | 37 +--
src/vidalia/help/content/po/zu/netview.po | 37 +--
src/vidalia/help/content/po2html.sh | 4 +-
src/vidalia/help/content/pt_BR/bridges.html | 2 +-
src/vidalia/help/content/sv/links.html | 2 +-
src/vidalia/help/content/tr/links.html | 2 +-
src/vidalia/i18n/po/.tx/config | 4 +-
src/vidalia/i18n/po/af/vidalia_af.po | 2 +-
src/vidalia/i18n/po/ak/vidalia_ak.po | 2 +-
src/vidalia/i18n/po/am/vidalia_am.po | 2 +-
src/vidalia/i18n/po/arn/vidalia_arn.po | 2 +-
src/vidalia/i18n/po/ast/vidalia_ast.po | 2 +-
src/vidalia/i18n/po/az/vidalia_az.po | 2 +-
src/vidalia/i18n/po/bn_IN/vidalia_bn_IN.po | 2 +-
src/vidalia/i18n/po/ca/vidalia_ca.po | 2 +-
src/vidalia/i18n/po/csb/vidalia_csb.po | 2 +-
src/vidalia/i18n/po/cy/vidalia_cy.po | 2 +-
src/vidalia/i18n/po/de_CH/vidalia_de_CH.po | 2 +-
src/vidalia/i18n/po/dz/vidalia_dz.po | 2 +-
src/vidalia/i18n/po/et/vidalia_et.po | 2 +-
src/vidalia/i18n/po/eu/vidalia_eu.po | 2 +-
src/vidalia/i18n/po/fil/vidalia_fil.po | 2 +-
src/vidalia/i18n/po/fur/vidalia_fur.po | 2 +-
src/vidalia/i18n/po/ga/vidalia_ga.po | 2 +-
src/vidalia/i18n/po/gl/vidalia_gl.po | 2 +-
src/vidalia/i18n/po/gun/vidalia_gun.po | 2 +-
src/vidalia/i18n/po/ha/vidalia_ha.po | 2 +-
src/vidalia/i18n/po/hr/vidalia_hr.po | 2 +-
src/vidalia/i18n/po/ht/vidalia_ht.po | 2 +-
src/vidalia/i18n/po/kn/vidalia_kn.po | 2 +-
src/vidalia/i18n/po/lb/vidalia_lb.po | 2 +-
src/vidalia/i18n/po/ln/vidalia_ln.po | 2 +-
src/vidalia/i18n/po/lo/vidalia_lo.po | 2 +-
src/vidalia/i18n/po/lt/vidalia_lt.po | 2 +-
src/vidalia/i18n/po/lv/vidalia_lv.po | 2 +-
src/vidalia/i18n/po/mg/vidalia_mg.po | 2 +-
src/vidalia/i18n/po/mi/vidalia_mi.po | 2 +-
src/vidalia/i18n/po/mk/vidalia_mk.po | 2 +-
src/vidalia/i18n/po/ml/vidalia_ml.po | 2 +-
src/vidalia/i18n/po/mn/vidalia_mn.po | 2 +-
src/vidalia/i18n/po/mr/vidalia_mr.po | 2 +-
src/vidalia/i18n/po/ms/vidalia_ms.po | 2 +-
src/vidalia/i18n/po/mt/vidalia_mt.po | 2 +-
src/vidalia/i18n/po/nah/vidalia_nah.po | 2 +-
src/vidalia/i18n/po/nap/vidalia_nap.po | 2 +-
src/vidalia/i18n/po/ne/vidalia_ne.po | 2 +-
src/vidalia/i18n/po/nn/vidalia_nn.po | 2 +-
src/vidalia/i18n/po/nso/vidalia_nso.po | 2 +-
src/vidalia/i18n/po/oc/vidalia_oc.po | 2 +-
src/vidalia/i18n/po/pa/vidalia_pa.po | 2 +-
src/vidalia/i18n/po/pap/vidalia_pap.po | 2 +-
src/vidalia/i18n/po/pms/vidalia_pms.po | 2 +-
src/vidalia/i18n/po/ps/vidalia_ps.po | 2 +-
src/vidalia/i18n/po/sco/vidalia_sco.po | 2 +-
src/vidalia/i18n/po/son/vidalia_son.po | 2 +-
src/vidalia/i18n/po/su/vidalia_su.po | 2 +-
src/vidalia/i18n/po/sw/vidalia_sw.po | 2 +-
src/vidalia/i18n/po/ta/vidalia_ta.po | 2 +-
src/vidalia/i18n/po/te/vidalia_te.po | 2 +-
src/vidalia/i18n/po/tg/vidalia_tg.po | 2 +-
src/vidalia/i18n/po/ti/vidalia_ti.po | 2 +-
src/vidalia/i18n/po/tk/vidalia_tk.po | 2 +-
src/vidalia/i18n/po/ur/vidalia_ur.po | 2 +-
src/vidalia/i18n/po/ve/vidalia_ve.po | 2 +-
src/vidalia/i18n/po/zh_HK/vidalia_zh_HK.po | 2 +-
src/vidalia/i18n/po/zu/vidalia_zu.po | 2 +-
271 files changed, 1663 insertions(+), 2617 deletions(-)
1
0
commit 4d108e9628433ae16b059175565eafbbc609962a
Merge: f2d8f5f a1d9af2
Author: Tomas Touceda <chiiph(a)gentoo.org>
Date: Sun Apr 17 12:55:18 2011 -0300
Merge branch 'master' into alpha
pkg/win32/po/.tx/config | 2 +-
pkg/win32/po/af/vidalia_af.po | 2 +-
pkg/win32/po/ak/vidalia_ak.po | 2 +-
pkg/win32/po/am/vidalia_am.po | 2 +-
pkg/win32/po/ar/vidalia_ar.po | 2 +-
pkg/win32/po/arn/vidalia_arn.po | 2 +-
pkg/win32/po/ast/vidalia_ast.po | 2 +-
pkg/win32/po/az/vidalia_az.po | 2 +-
pkg/win32/po/bg/vidalia_bg.po | 2 +-
pkg/win32/po/bn_IN/vidalia_bn_IN.po | 2 +-
pkg/win32/po/ca/vidalia_ca.po | 2 +-
pkg/win32/po/cs/vidalia_cs.po | 2 +-
pkg/win32/po/csb/vidalia_csb.po | 2 +-
pkg/win32/po/cy/vidalia_cy.po | 2 +-
pkg/win32/po/de/vidalia_de.po | 2 +-
pkg/win32/po/de_CH/vidalia_de_CH.po | 2 +-
pkg/win32/po/dz/vidalia_dz.po | 2 +-
pkg/win32/po/el/vidalia_el.po | 2 +-
pkg/win32/po/eo/vidalia_eo.po | 2 +-
pkg/win32/po/es/vidalia_es.po | 2 +-
pkg/win32/po/et/vidalia_et.po | 2 +-
pkg/win32/po/eu/vidalia_eu.po | 2 +-
pkg/win32/po/fil/vidalia_fil.po | 2 +-
pkg/win32/po/fur/vidalia_fur.po | 2 +-
pkg/win32/po/ga/vidalia_ga.po | 2 +-
pkg/win32/po/gl/vidalia_gl.po | 2 +-
pkg/win32/po/gu/vidalia_gu.po | 2 +-
pkg/win32/po/gun/vidalia_gun.po | 2 +-
pkg/win32/po/ha/vidalia_ha.po | 2 +-
pkg/win32/po/he/vidalia_he.po | 2 +-
pkg/win32/po/hi/vidalia_hi.po | 2 +-
pkg/win32/po/hr/vidalia_hr.po | 2 +-
pkg/win32/po/ht/vidalia_ht.po | 2 +-
pkg/win32/po/hu/vidalia_hu.po | 2 +-
pkg/win32/po/id/vidalia_id.po | 2 +-
pkg/win32/po/is/vidalia_is.po | 2 +-
pkg/win32/po/it/vidalia_it.po | 2 +-
pkg/win32/po/kn/vidalia_kn.po | 2 +-
pkg/win32/po/lb/vidalia_lb.po | 2 +-
pkg/win32/po/ln/vidalia_ln.po | 2 +-
pkg/win32/po/lo/vidalia_lo.po | 2 +-
pkg/win32/po/lt/vidalia_lt.po | 2 +-
pkg/win32/po/lv/vidalia_lv.po | 2 +-
pkg/win32/po/mg/vidalia_mg.po | 2 +-
pkg/win32/po/mi/vidalia_mi.po | 2 +-
pkg/win32/po/mk/vidalia_mk.po | 2 +-
pkg/win32/po/ml/vidalia_ml.po | 2 +-
pkg/win32/po/mn/vidalia_mn.po | 2 +-
pkg/win32/po/mr/vidalia_mr.po | 2 +-
pkg/win32/po/ms/vidalia_ms.po | 2 +-
pkg/win32/po/mt/vidalia_mt.po | 2 +-
pkg/win32/po/my/vidalia_my.po | 2 +-
pkg/win32/po/nah/vidalia_nah.po | 2 +-
pkg/win32/po/nap/vidalia_nap.po | 2 +-
pkg/win32/po/nb/vidalia_nb.po | 2 +-
pkg/win32/po/ne/vidalia_ne.po | 2 +-
pkg/win32/po/nl/vidalia_nl.po | 2 +-
pkg/win32/po/nn/vidalia_nn.po | 2 +-
pkg/win32/po/nso/vidalia_nso.po | 2 +-
pkg/win32/po/oc/vidalia_oc.po | 2 +-
pkg/win32/po/pa/vidalia_pa.po | 2 +-
pkg/win32/po/pap/vidalia_pap.po | 2 +-
pkg/win32/po/pl/vidalia_pl.po | 2 +-
pkg/win32/po/pms/vidalia_pms.po | 2 +-
pkg/win32/po/ps/vidalia_ps.po | 2 +-
pkg/win32/po/pt/vidalia_pt.po | 2 +-
pkg/win32/po/pt_BR/vidalia_pt_BR.po | 2 +-
pkg/win32/po/ru/vidalia_ru.po | 18 +-
pkg/win32/po/sco/vidalia_sco.po | 2 +-
pkg/win32/po/son/vidalia_son.po | 2 +-
pkg/win32/po/su/vidalia_su.po | 2 +-
pkg/win32/po/sw/vidalia_sw.po | 2 +-
pkg/win32/po/ta/vidalia_ta.po | 2 +-
pkg/win32/po/te/vidalia_te.po | 2 +-
pkg/win32/po/tg/vidalia_tg.po | 2 +-
pkg/win32/po/th/vidalia_th.po | 2 +-
pkg/win32/po/ti/vidalia_ti.po | 2 +-
pkg/win32/po/tk/vidalia_tk.po | 2 +-
pkg/win32/po/tr/vidalia_tr.po | 2 +-
pkg/win32/po/ur/vidalia_ur.po | 2 +-
pkg/win32/po/ve/vidalia_ve.po | 2 +-
pkg/win32/po/vi/vidalia_vi.po | 2 +-
pkg/win32/po/zh_CN/vidalia_zh_CN.po | 2 +-
pkg/win32/po/zh_HK/vidalia_zh_HK.po | 2 +-
pkg/win32/po/zu/vidalia_zu.po | 2 +-
src/vidalia/MainWindow.cpp | 2 +-
src/vidalia/help/content/ar/bridges.html | 2 +-
src/vidalia/help/content/ar/config.html | 187 +++++++--------
src/vidalia/help/content/ar/index.html | 2 +-
src/vidalia/help/content/ar/links.html | 2 +-
src/vidalia/help/content/ar/log.html | 2 +-
src/vidalia/help/content/ar/netview.html | 2 +-
src/vidalia/help/content/ar/running.html | 2 +-
src/vidalia/help/content/ar/server.html | 2 +-
src/vidalia/help/content/ar/troubleshooting.html | 2 +-
src/vidalia/help/content/es/bridges.html | 2 +-
src/vidalia/help/content/fa/bridges.html | 2 +-
src/vidalia/help/content/fa/config.html | 2 +-
src/vidalia/help/content/fa/index.html | 2 +-
src/vidalia/help/content/fa/links.html | 2 +-
src/vidalia/help/content/fa/log.html | 2 +-
src/vidalia/help/content/fa/netview.html | 2 +-
src/vidalia/help/content/fa/running.html | 2 +-
src/vidalia/help/content/fa/server.html | 2 +-
src/vidalia/help/content/fa/troubleshooting.html | 2 +-
src/vidalia/help/content/it/links.html | 2 +-
src/vidalia/help/content/my/bridges.html | 2 +-
src/vidalia/help/content/my/config.html | 2 +-
src/vidalia/help/content/my/index.html | 2 +-
src/vidalia/help/content/my/links.html | 2 +-
src/vidalia/help/content/my/log.html | 2 +-
src/vidalia/help/content/my/netview.html | 2 +-
src/vidalia/help/content/my/running.html | 2 +-
src/vidalia/help/content/my/server.html | 2 +-
src/vidalia/help/content/my/troubleshooting.html | 2 +-
src/vidalia/help/content/nl/index.html | 2 +-
src/vidalia/help/content/nl/links.html | 2 +-
src/vidalia/help/content/nl/running.html | 2 +-
src/vidalia/help/content/pl/bridges.html | 2 +-
src/vidalia/help/content/pl/index.html | 2 +-
src/vidalia/help/content/pl/links.html | 2 +-
src/vidalia/help/content/po/.tx/config | 20 +-
src/vidalia/help/content/po/af/netview.po | 37 +--
src/vidalia/help/content/po/ak/netview.po | 37 +--
src/vidalia/help/content/po/am/netview.po | 37 +--
src/vidalia/help/content/po/ar/config.po | 279 +++++++++++-----------
src/vidalia/help/content/po/arn/netview.po | 37 +--
src/vidalia/help/content/po/ast/netview.po | 37 +--
src/vidalia/help/content/po/az/netview.po | 37 +--
src/vidalia/help/content/po/be/netview.po | 37 +--
src/vidalia/help/content/po/bg/netview.po | 37 +--
src/vidalia/help/content/po/bn/netview.po | 37 +--
src/vidalia/help/content/po/bn_IN/netview.po | 37 +--
src/vidalia/help/content/po/ca/netview.po | 37 +--
src/vidalia/help/content/po/cs/netview.po | 37 +--
src/vidalia/help/content/po/csb/netview.po | 37 +--
src/vidalia/help/content/po/cy/netview.po | 37 +--
src/vidalia/help/content/po/da/config.po | 132 ++++++-----
src/vidalia/help/content/po/dz/netview.po | 37 +--
src/vidalia/help/content/po/el/netview.po | 37 +--
src/vidalia/help/content/po/eo/netview.po | 37 +--
src/vidalia/help/content/po/et/netview.po | 37 +--
src/vidalia/help/content/po/eu/netview.po | 37 +--
src/vidalia/help/content/po/fil/netview.po | 37 +--
src/vidalia/help/content/po/fur/netview.po | 37 +--
src/vidalia/help/content/po/ga/netview.po | 37 +--
src/vidalia/help/content/po/gl/netview.po | 37 +--
src/vidalia/help/content/po/gu/netview.po | 37 +--
src/vidalia/help/content/po/gun/netview.po | 37 +--
src/vidalia/help/content/po/ha/netview.po | 37 +--
src/vidalia/help/content/po/he/netview.po | 37 +--
src/vidalia/help/content/po/hi/netview.po | 37 +--
src/vidalia/help/content/po/hr/netview.po | 37 +--
src/vidalia/help/content/po/ht/netview.po | 37 +--
src/vidalia/help/content/po/hu/netview.po | 37 +--
src/vidalia/help/content/po/id/netview.po | 37 +--
src/vidalia/help/content/po/is/netview.po | 37 +--
src/vidalia/help/content/po/kn/netview.po | 37 +--
src/vidalia/help/content/po/kw/netview.po | 37 +--
src/vidalia/help/content/po/lb/netview.po | 37 +--
src/vidalia/help/content/po/ln/netview.po | 37 +--
src/vidalia/help/content/po/lo/netview.po | 37 +--
src/vidalia/help/content/po/lt/netview.po | 37 +--
src/vidalia/help/content/po/lv/netview.po | 37 +--
src/vidalia/help/content/po/mg/netview.po | 37 +--
src/vidalia/help/content/po/mi/netview.po | 37 +--
src/vidalia/help/content/po/mk/netview.po | 37 +--
src/vidalia/help/content/po/ml/netview.po | 37 +--
src/vidalia/help/content/po/mn/netview.po | 37 +--
src/vidalia/help/content/po/mr/netview.po | 37 +--
src/vidalia/help/content/po/ms/netview.po | 37 +--
src/vidalia/help/content/po/mt/netview.po | 37 +--
src/vidalia/help/content/po/nap/netview.po | 37 +--
src/vidalia/help/content/po/nb/netview.po | 37 +--
src/vidalia/help/content/po/ne/netview.po | 37 +--
src/vidalia/help/content/po/nl/netview.po | 37 +--
src/vidalia/help/content/po/nn/netview.po | 37 +--
src/vidalia/help/content/po/nso/netview.po | 37 +--
src/vidalia/help/content/po/oc/netview.po | 37 +--
src/vidalia/help/content/po/pa/netview.po | 37 +--
src/vidalia/help/content/po/pap/netview.po | 37 +--
src/vidalia/help/content/po/pl/netview.po | 37 +--
src/vidalia/help/content/po/pms/netview.po | 37 +--
src/vidalia/help/content/po/ps/netview.po | 37 +--
src/vidalia/help/content/po/pt/netview.po | 37 +--
src/vidalia/help/content/po/pt_BR/netview.po | 37 +--
src/vidalia/help/content/po/ro/netview.po | 37 +--
src/vidalia/help/content/po/sco/netview.po | 37 +--
src/vidalia/help/content/po/son/netview.po | 37 +--
src/vidalia/help/content/po/su/netview.po | 37 +--
src/vidalia/help/content/po/sw/netview.po | 37 +--
src/vidalia/help/content/po/ta/netview.po | 37 +--
src/vidalia/help/content/po/te/netview.po | 37 +--
src/vidalia/help/content/po/tg/netview.po | 37 +--
src/vidalia/help/content/po/th/netview.po | 37 +--
src/vidalia/help/content/po/ti/netview.po | 37 +--
src/vidalia/help/content/po/tk/netview.po | 37 +--
src/vidalia/help/content/po/tr/config.po | 118 +++++-----
src/vidalia/help/content/po/tr/netview.po | 37 +--
src/vidalia/help/content/po/uk/netview.po | 37 +--
src/vidalia/help/content/po/ur/netview.po | 37 +--
src/vidalia/help/content/po/ve/netview.po | 37 +--
src/vidalia/help/content/po/vi/netview.po | 37 +--
src/vidalia/help/content/po/wa/netview.po | 37 +--
src/vidalia/help/content/po/zh_CN/netview.po | 124 ++++------
src/vidalia/help/content/po/zh_HK/netview.po | 37 +--
src/vidalia/help/content/po/zh_TW/netview.po | 37 +--
src/vidalia/help/content/po/zu/netview.po | 37 +--
src/vidalia/help/content/po2html.sh | 4 +-
src/vidalia/help/content/pt_BR/bridges.html | 2 +-
src/vidalia/help/content/sv/links.html | 2 +-
src/vidalia/help/content/tr/links.html | 2 +-
src/vidalia/i18n/po/.tx/config | 4 +-
src/vidalia/i18n/po/af/vidalia_af.po | 2 +-
src/vidalia/i18n/po/ak/vidalia_ak.po | 2 +-
src/vidalia/i18n/po/am/vidalia_am.po | 2 +-
src/vidalia/i18n/po/arn/vidalia_arn.po | 2 +-
src/vidalia/i18n/po/ast/vidalia_ast.po | 2 +-
src/vidalia/i18n/po/az/vidalia_az.po | 2 +-
src/vidalia/i18n/po/bn_IN/vidalia_bn_IN.po | 2 +-
src/vidalia/i18n/po/ca/vidalia_ca.po | 2 +-
src/vidalia/i18n/po/csb/vidalia_csb.po | 2 +-
src/vidalia/i18n/po/cy/vidalia_cy.po | 2 +-
src/vidalia/i18n/po/de_CH/vidalia_de_CH.po | 2 +-
src/vidalia/i18n/po/dz/vidalia_dz.po | 2 +-
src/vidalia/i18n/po/et/vidalia_et.po | 2 +-
src/vidalia/i18n/po/eu/vidalia_eu.po | 2 +-
src/vidalia/i18n/po/fil/vidalia_fil.po | 2 +-
src/vidalia/i18n/po/fur/vidalia_fur.po | 2 +-
src/vidalia/i18n/po/ga/vidalia_ga.po | 2 +-
src/vidalia/i18n/po/gl/vidalia_gl.po | 2 +-
src/vidalia/i18n/po/gun/vidalia_gun.po | 2 +-
src/vidalia/i18n/po/ha/vidalia_ha.po | 2 +-
src/vidalia/i18n/po/hr/vidalia_hr.po | 2 +-
src/vidalia/i18n/po/ht/vidalia_ht.po | 2 +-
src/vidalia/i18n/po/kn/vidalia_kn.po | 2 +-
src/vidalia/i18n/po/lb/vidalia_lb.po | 2 +-
src/vidalia/i18n/po/ln/vidalia_ln.po | 2 +-
src/vidalia/i18n/po/lo/vidalia_lo.po | 2 +-
src/vidalia/i18n/po/lt/vidalia_lt.po | 2 +-
src/vidalia/i18n/po/lv/vidalia_lv.po | 2 +-
src/vidalia/i18n/po/mg/vidalia_mg.po | 2 +-
src/vidalia/i18n/po/mi/vidalia_mi.po | 2 +-
src/vidalia/i18n/po/mk/vidalia_mk.po | 2 +-
src/vidalia/i18n/po/ml/vidalia_ml.po | 2 +-
src/vidalia/i18n/po/mn/vidalia_mn.po | 2 +-
src/vidalia/i18n/po/mr/vidalia_mr.po | 2 +-
src/vidalia/i18n/po/ms/vidalia_ms.po | 2 +-
src/vidalia/i18n/po/mt/vidalia_mt.po | 2 +-
src/vidalia/i18n/po/nah/vidalia_nah.po | 2 +-
src/vidalia/i18n/po/nap/vidalia_nap.po | 2 +-
src/vidalia/i18n/po/ne/vidalia_ne.po | 2 +-
src/vidalia/i18n/po/nn/vidalia_nn.po | 2 +-
src/vidalia/i18n/po/nso/vidalia_nso.po | 2 +-
src/vidalia/i18n/po/oc/vidalia_oc.po | 2 +-
src/vidalia/i18n/po/pa/vidalia_pa.po | 2 +-
src/vidalia/i18n/po/pap/vidalia_pap.po | 2 +-
src/vidalia/i18n/po/pms/vidalia_pms.po | 2 +-
src/vidalia/i18n/po/ps/vidalia_ps.po | 2 +-
src/vidalia/i18n/po/sco/vidalia_sco.po | 2 +-
src/vidalia/i18n/po/son/vidalia_son.po | 2 +-
src/vidalia/i18n/po/su/vidalia_su.po | 2 +-
src/vidalia/i18n/po/sw/vidalia_sw.po | 2 +-
src/vidalia/i18n/po/ta/vidalia_ta.po | 2 +-
src/vidalia/i18n/po/te/vidalia_te.po | 2 +-
src/vidalia/i18n/po/tg/vidalia_tg.po | 2 +-
src/vidalia/i18n/po/ti/vidalia_ti.po | 2 +-
src/vidalia/i18n/po/tk/vidalia_tk.po | 2 +-
src/vidalia/i18n/po/ur/vidalia_ur.po | 2 +-
src/vidalia/i18n/po/ve/vidalia_ve.po | 2 +-
src/vidalia/i18n/po/zh_HK/vidalia_zh_HK.po | 2 +-
src/vidalia/i18n/po/zu/vidalia_zu.po | 2 +-
272 files changed, 1664 insertions(+), 2618 deletions(-)
1
0
commit b9f4d5c41f8d87f8f417c87687df72e9038ca747
Author: Runa A. Sandvik <runa.sandvik(a)gmail.com>
Date: Wed Apr 13 12:11:41 2011 +0100
updated the translation priority
---
pkg/win32/po/.tx/config | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/pkg/win32/po/.tx/config b/pkg/win32/po/.tx/config
index 7ac2c35..a066f41 100644
--- a/pkg/win32/po/.tx/config
+++ b/pkg/win32/po/.tx/config
@@ -1,7 +1,7 @@
[main]
host = https://www.transifex.net
-[torproject.vidalia-installer-vidalia-pot]
+[torproject.2-vidalia-installer-vidalia-pot]
source_file = templates/vidalia.pot
source_lang = en
trans.af = af/vidalia_af.po
1
0