[apt-proxy-devel] r611 - in people/halls/rework: apt_proxy debian debian/po doc doc/po

Chris Halls halls at costa.debian.org
Thu Aug 3 17:05:51 UTC 2006


Author: halls
Date: Thu Aug  3 17:05:49 2006
New Revision: 611

Modified:
   people/halls/rework/apt_proxy/apt_proxy.py
   people/halls/rework/apt_proxy/apt_proxy_conf.py
   people/halls/rework/apt_proxy/cache.py
   people/halls/rework/apt_proxy/fetchers.py
   people/halls/rework/apt_proxy/test/test_apt_proxy.py
   people/halls/rework/apt_proxy/test/test_cache.py
   people/halls/rework/apt_proxy/test/test_config.py
   people/halls/rework/apt_proxy/test/test_fetchers.py
   people/halls/rework/apt_proxy/test/test_requests.py
   people/halls/rework/debian/changelog
   people/halls/rework/debian/control
   people/halls/rework/debian/po/cs.po
   people/halls/rework/debian/po/da.po
   people/halls/rework/debian/po/fr.po
   people/halls/rework/debian/po/nl.po
   people/halls/rework/debian/po/vi.po
   people/halls/rework/debian/rules
   people/halls/rework/doc/apt-proxy-import.8.inc
   people/halls/rework/doc/apt-proxy.8
   people/halls/rework/doc/apt-proxy.conf
   people/halls/rework/doc/apt-proxy.conf.5
   people/halls/rework/doc/po/apt-proxy.pot
   people/halls/rework/doc/po/fr.po
   people/halls/rework/doc/po4a.cfg

Log:
* Merge and acknowledge NMU in changelog
* Merge po files from NMU
* Close bug #375677 (already fixed here)
* Remove http scheme, host and port from requested URL (Closes: #374405)
* Add DownloadQueuePerClient queuing strategy. Each backend gets a
  separate connection per connected apt instance.
* In example apt-proxy.conf, remove references to non-US archive
* Give a meaningful error message if an empty time is given in the configuration file (Closes: #304611)
* Remove references to -i parameter in apt-proxy.conf manpage. (Closes: #328983)
* Remove FetcherCachedFile, now part of cacheEntry


Modified: people/halls/rework/apt_proxy/apt_proxy.py
==============================================================================
--- people/halls/rework/apt_proxy/apt_proxy.py	(original)
+++ people/halls/rework/apt_proxy/apt_proxy.py	Thu Aug  3 17:05:49 2006
@@ -54,13 +54,20 @@
     packages = None
     name = None
 
+    downloadQueuePerClient = True # Set to true if a download queue should be created per client
+
     def __init__(self, factory, config):
         log.debug("Creating Backend: " + config.name)
         self.factory = factory
         self.config = config # apBackendConfig configuration information
         self.base = config.name # Name of backend
         self.uris = [] # Sequence of BackendServers, in order of preference
-        self.queue = fetchers.DownloadQueue()
+
+        if self.downloadQueuePerClient:
+            self.queue = fetchers.DownloadQueuePerClient()
+        else:
+            self.queue = fetchers.DownloadQueue()
+
         self.entries = {} # Hash of active cache entries
         self.packages = None # Packages database for this backend
 
@@ -215,9 +222,7 @@
         """
         Each new request begins processing here
         """
-        log.debug("Request: " + self.method + " " + self.uri,'Request',8);
-        # Clean up URL
-        self.uri = os.path.normpath(self.uri)
+        self.uri = self.clean_path(self.uri)
 
         if_modified_since = self.getHeader('if-modified-since')
         if if_modified_since != None:
@@ -268,6 +273,12 @@
 
         self.cacheEntry.add_request(self)
 
+    def clean_path(self, uri):
+        # Clean up URL given
+        scheme, netloc, path, params, query, fragment = urlparse.urlparse(uri)
+        return os.path.normpath(path)
+
+
     def start_streaming(self, size, mtime):
         """
         Prepare client to stream file
@@ -313,6 +324,17 @@
             self.cacheEntry.remove_request(self)
         #self.finish()
 
+    def getFileno(self):
+        """
+        Get identifier which is unique per apt client
+        """
+        try:
+            fileno = self.channel.transport.fileno()
+        except:
+            fileno = -1
+            log.msg("could not get transport's file descriptor", 'Request')
+        return fileno
+
 class Channel(http.HTTPChannel):
     """
     This class encapsulates a channel (an HTTP socket connection with a single
@@ -671,7 +693,7 @@
         return db
 
     def open_shelve(self, dbname):
-        from bsddb3 import db,dbshelve
+        from bsddb import db,dbshelve
 
         shelve = dbshelve.DBShelf()
         db_dir = self.factory.config.cache_dir+'/'+status_dir+'/db'

Modified: people/halls/rework/apt_proxy/apt_proxy_conf.py
==============================================================================
--- people/halls/rework/apt_proxy/apt_proxy_conf.py	(original)
+++ people/halls/rework/apt_proxy/apt_proxy_conf.py	Thu Aug  3 17:05:49 2006
@@ -49,6 +49,8 @@
     def gettime(self, section, option):
         mult = 1
         value = self.get(section, option)
+        if len(value) == 0:
+            raise ConfigError("Configuration parse error: [%s] %s" % (section, option))
         suffix = value[-1].lower()
         if suffix in self.time_multipliers.keys():
             mult = self.time_multipliers[suffix]
@@ -84,7 +86,7 @@
         ['address', '', 'string'],
         ['port', 9999, 'int'],
         ['min_refresh_delay', 30, 'time'],
-        ['complete_clientless_downloads', '0', 'boolean'],
+        ['complete_clientless_downloads', False, 'boolean'],
         ['telnet_port', 0, 'int'],
         ['telnet_user', '', 'string'],
         ['telnet_pass', '', 'string'],

Modified: people/halls/rework/apt_proxy/cache.py
==============================================================================
--- people/halls/rework/apt_proxy/cache.py	(original)
+++ people/halls/rework/apt_proxy/cache.py	Thu Aug  3 17:05:49 2006
@@ -43,7 +43,7 @@
     STATE_DOWNLOAD = 3 # File is in process of downloading
     STATE_SENDFILE = 4 # File is being sent from cache
     STATE_SENT = 5 # Post download processing / waiting for clients to complete
-
+    STATE_FAILED = 6 # Download failed
     
 
     bytesDownloaded = 0
@@ -83,6 +83,8 @@
         self.file_mtime = None
         self.file_size = None
 
+        self.fetcher = None
+
     def add_request(self, request):
         """
         A new request has been received for this file
@@ -115,11 +117,13 @@
         log.debug("Last request removed",'cacheEntry')
         self.backend.entry_done(self)
 
-        if (not self.factory.config.complete_clientless_downloads 
-             and self.state == self.STATE_DOWNLOAD
-             and self.fetcher is not None):
-            # Cancel download in progress
-            self.fetcher.cancel_download()
+        # TODO - fixme
+        #if (self.factory.config.complete_clientless_downloads == False
+             #and self.state == self.STATE_DOWNLOAD
+             #and self.fetcher is not None):
+            ## Cancel download in progress
+            #log.debug("cancelling download (set complete_clientless_downloads to continue)",'cacheEntry')
+            #self.fetcher.cancel_download()
 
         if self.streamfile is not None:
             # File was streamed to clients
@@ -328,6 +332,7 @@
         File streaming is complete
         """
         log.msg("download_data_end:" + self.file_path, "CacheEntry")
+        self.state = self.STATE_SENT
 
         if self.streamfile is not None:
             # File was streamed to clients
@@ -353,7 +358,7 @@
 
         for request in self.requests:
             request.finishCode(http_code, reason)
-
+        self.state = self.STATE_FAILED
         ## Remove directory if file was not created
         #if not os.path.exists(self.file_path):
             #try:
@@ -530,10 +535,14 @@
                 self.deferred.callback(None)
         return self.deferred
 
+    class VerificationFailure:
+        def __init__(self, path, reason):
+            self.path = path
+            self.reason = reason
     def failed(self, reason):
         log.msg("cache file verification FAILED for %s: %s"%(self.path, reason), 'verify')
         os.unlink(self.path)
-        self.deferred.errback(None)
+        self.deferred.errback(self.VerificationFailure(self.path, reason))
 
     def passed(self):
         log.debug("cache file verification passed: %s"%(self.path), 'verify')

Modified: people/halls/rework/apt_proxy/fetchers.py
==============================================================================
--- people/halls/rework/apt_proxy/fetchers.py	(original)
+++ people/halls/rework/apt_proxy/fetchers.py	Thu Aug  3 17:05:49 2006
@@ -108,7 +108,7 @@
         Download was successful
         """
         log.debug("download complete. Sent:%s bytes" % (self.len_received), "Fetcher")
-        if not self.fetcher.pipelining:
+        if self.fetcher is not None and not self.fetcher.pipelining:
             self.connection_closed(self.fetcher)
         if self.len_received==0:
             self.download_started() # Send status code to clients
@@ -126,7 +126,7 @@
     def download_failed(self, reason_code, reason_msg):
         #self.cacheEntry.download_data_end()
         log.debug("download_failed: (%s) %s " %(reason_code, reason_msg), "Fetcher")
-        if not self.fetcher.pipelining:
+        if self.fetcher is not None and not self.fetcher.pipelining:
             self.connection_closed(self.fetcher)
         self.cacheEntry.download_failure(reason_code, reason_msg)
         self.deferred.callback((False, reason_msg))
@@ -970,96 +970,26 @@
             os.kill(self.rsyncProcess.pid, signal.SIGTERM)
             self.transport.loseConnection()
 
-class FetcherCachedFile(Fetcher):
-    """
-    Sends the cached file or tells the client that the file was not
-    'modified-since' if appropriate.
-    """
-    post_convert = re.compile(r"/Packages.gz$")
-    gzip_convert = re.compile(r"^Should not match anything$")
-
-    request = None
-    def if_modified(self, request):
-        """
-        Check if the file was 'modified-since' and tell the client if it
-        wasn't.
-        """
-        if_modified_since = request.getHeader('if-modified-since')
-        if if_modified_since != None:
-            if_modified_since = http.stringToDatetime(
-                    if_modified_since)
-
-        if request.local_mtime <= if_modified_since:
-            request.setResponseCode(http.NOT_MODIFIED)
-            request.setHeader("Content-Length", 0)
-            request.write("")
-            request.finish()
-            self.remove_request(request)
-        
-    def insert_request(self, request):
-        if not request.serve_if_cached:
-            request.finish()
-            return
-        Fetcher.insert_request(self, request)
-        
-        log.debug("Serving from cache for additional client: " + self.local_file + " size:" + str(self.size))
-        self.start_transfer(request)
-        
-    def activate(self, request):
-        Fetcher.activate(self, request)
-        if not request.apFetcher:
-            return
-        self.factory.file_served(request.uri)
-        self.size = request.local_size
-
-        self.start_transfer(request)
-        
-    def start_transfer(self, request):
-        self.if_modified(request)
-        
-        if len(self.requests) == 0:
-            #we had a single request and didn't have to send it
-            self.apEnd()
-            return
-
-        if self.size:
-            log.debug("Serving from cache: " + self.local_file + " size:" + str(self.size), 'FetcherCachedFile')
-            file = open(self.local_file,'rb')
-            fcntl.lockf(file.fileno(), fcntl.LOCK_SH)
-            
-            request.setHeader("Content-Length", request.local_size)
-            request.setHeader("Last-modified",
-                            http.datetimeToString(request.local_mtime))
-            basic.FileSender().beginFileTransfer(file, request) \
-                            .addBoth(self.file_transfer_complete, request) \
-                            .addBoth(lambda r: file.close())
-#                            .addBoth(lambda r: request.transport.loseConnection())
-        else:
-            log.debug("Zero length file! " + self.local_file, 'FetcherCachedFile')
-            self.file_transfer_complete(None, request)
-            request.finish()
-
-    # A file transfer has completed
-    def file_transfer_complete(self, result, request):
-        log.debug("transfer complete", 'FetcherCachedFile')
-        request.finish()
-        # Remove this client from request list
-        self.remove_request(request)
-        if len(self.requests) == 0:
-            Fetcher.apEnd(self)
-
 class DownloadQueue:
     """
     This class manages a list of files to download and schedules downloads
     """
-    closeTimeout = 5 # Time to close fetcher connections after lsat download (seconds)
-    def __init__(self):
+    closeTimeout = 5 # Time to close fetcher connections after last download (seconds)
+    def __init__(self, parent = None):
+        """
+        Initialise download queue
+        @param parent Class to notify (see downloadQueueEmpty) when queue is empty [class, data]
+        """
         #import traceback
         #traceback.print_stack()
         self.queue = [] # List of cacheEntry classes waiting
         self.activeFile = None
         self.fetcher = None
         self.timeoutCB = None
+        if parent is not None:
+            self.parent, self.parentId = parent
+        else:
+            self.parent = None
 
     def addFile(self, cacheEntry):
         """
@@ -1071,7 +1001,6 @@
             self.timeoutCB.cancel()
             self.timeoutCB = None
         self.queue.append(cacheEntry)
-        print dir(cacheEntry.requests[0].transport)
         if self.activeFile is None:
             self.startNextDownload()
         else:
@@ -1087,11 +1016,17 @@
         self.startNextDownload()
 
     def startNextDownload(self):
-        if len(self.queue)>0:
+        while len(self.queue)>0:
             self.activeFile = self.queue[0]
-            log.debug("start next download (%s)" % (self.activeFile.cache_path), 'DownloadQueue')
             self.queue = self.queue[1:]
 
+            if self.activeFile.state != self.activeFile.STATE_NEW:
+                log.debug("active download skipped (%s)" % (self.activeFile.cache_path), 'DownloadQueue')
+                self.activeFile = None
+                continue # Go to next file
+
+            log.debug("start next download (%s)" % (self.activeFile.cache_path), 'DownloadQueue')
+
             if self.fetcher is not None:
                 if self.fetcher.backendServer.backend != self.activeFile.backend:
                     log.debug("old:%s new:%s" %(self.fetcher.backendServer.backend,self.activeFile.backend) 
@@ -1106,13 +1041,15 @@
                 self.fetcher = Fetcher()
             d = self.fetcher.start(self.activeFile)
             d.addCallback(self.downloadFinished)
+            return
+
+        # Download queue was empty
+        #twisted.internet.base.DelayedCall.debug = True
+        log.debug("download queue is empty", 'DownloadQueue')
+        if self.closeTimeout and self.fetcher is not None:
+            self.timeoutCB = reactor.callLater(self.closeTimeout, self.closeFetcher)
         else:
-            #twisted.internet.base.DelayedCall.debug = True
-            log.debug("download queue is empty", 'DownloadQueue')
-            if self.closeTimeout:
-                self.timeoutCB = reactor.callLater(self.closeTimeout, self.closeFetcher)
-            else:
-                self.closeFetcher()
+            self.closeFetcher()
 
     def closeFetcher(self):
         "Close active fetcher - called after queue has been empty for closeTimeout seconds"
@@ -1123,7 +1060,44 @@
             self.fetcher.disconnect()
             self.fetcher = None
 
+            if self.parent is not None:
+                self.parent.downloadQueueEmpty(self, self.parentId)
+
     def stop(self):
+        log.debug("queue stop", 'DownloadQueue')
         if self.timeoutCB is not None:
             self.timeoutCB.cancel()
         self.closeFetcher()
+
+class DownloadQueuePerClient:
+    """
+    DownloadQueue that creates several queues, one per client
+    """
+    def __init__(self):
+        self.queues = {}
+
+    def addFile(self, cacheEntry):
+        # Add queue entries for all clients. The client
+        # queue that is ready first will start the download
+        for req in cacheEntry.requests:
+            clientId = req.getFileno()
+
+            if self.queues.has_key(clientId):
+                q = self.queues[clientId]
+            else:
+                q = DownloadQueue([self, clientId])
+                self.queues[clientId] = q
+                log.debug("Adding new queue for client id %s" % (clientId), 'DownloadQueuePerClient')
+
+            q.addFile(cacheEntry)
+
+    def downloadQueueEmpty(self, queue, data):
+        """
+        DownloadQueue notifies that it is empty
+        """
+        log.debug("Removing queue for client id %s" % (data), 'DownloadQueuePerClient')
+        del self.queues[data]
+
+    def stop(self):
+        for q in self.queues.values():
+            q.stop()
\ No newline at end of file

Modified: people/halls/rework/apt_proxy/test/test_apt_proxy.py
==============================================================================
--- people/halls/rework/apt_proxy/test/test_apt_proxy.py	(original)
+++ people/halls/rework/apt_proxy/test/test_apt_proxy.py	Thu Aug  3 17:05:49 2006
@@ -22,7 +22,7 @@
 from StringIO import StringIO
 
 from apt_proxy.apt_proxy_conf import apConfig
-from apt_proxy.apt_proxy import Factory
+from apt_proxy.apt_proxy import Factory, Request
 from apt_proxy.misc import log
 
 config1="""
@@ -312,4 +312,14 @@
     def testPassword(self):
         backend = self.factory.getBackend('test_usernames')
         self.assertEquals(backend.uris[0].password,'thePassword')
-        
\ No newline at end of file
+
+class testRequests(unittest.TestCase):
+    def setUp(self):
+        class DummyChannel:
+            factory = None
+            transport = None
+        self.req = Request(DummyChannel(), None)
+    def testSimplifyPath(self):
+        self.assertEquals(self.req.clean_path('/foo/bar/../baz'), '/foo/baz')
+    def testRemoveHost(self):
+        self.assertEquals(self.req.clean_path('http://test:1234/foo/bar'), '/foo/bar')

Modified: people/halls/rework/apt_proxy/test/test_cache.py
==============================================================================
--- people/halls/rework/apt_proxy/test/test_cache.py	(original)
+++ people/halls/rework/apt_proxy/test/test_cache.py	Thu Aug  3 17:05:49 2006
@@ -18,7 +18,7 @@
 
 import os, time, shutil
 from twisted.trial import unittest
-from twisted.internet import reactor
+from twisted.internet import reactor, defer
 from StringIO import StringIO
 
 from apt_proxy.apt_proxy_conf import apConfig
@@ -36,6 +36,8 @@
         self.finished = True
     def start_streaming(self, file_size, file_mtime):
         self.streamed = self.streamed + 1
+    def getFileno(self):
+        return 0
 
 class CacheEntryTest(apTestHelper):
     def setUp(self):
@@ -129,11 +131,24 @@
         Create a bogus .deb and check that CacheEntry starts
         a download
         """
+        self.testResult = defer.Deferred()
+        class VerifySizeError:
+            pass
+        class VerifyMtimeError:
+            pass
+        class StreamedError:
+            pass
         def start_download(entry):
             # This test function replaces the normal
             # Backend.start_download so we can see that
             # it was called without starting the download
-            entry.test_download = True
+            if entry.file_mtime is not None:
+                self.testResult.errback(failure.Failure(VerifyMtimeError()))
+            if entry.file_size is not None:
+                self.testResult.errback(failure.Failure(VerifySizeError()))
+            if self.request.streamed:
+                self.testResult.errback(failure.Failure(StreamedError()))
+            self.testResult.callback(None)
         self.backend.start_download = start_download
         entry = CacheEntry(self.backend, "testdir/test.deb")
         entry.test_download = False
@@ -142,14 +157,8 @@
         f.write('this is not a real .deb')
         f.close()
         entry.add_request(self.request)
-        while not entry.test_download and not self.request.streamed:
-            #print "iterate.."
-            reactor.iterate(0.1)
-        # Check that our special function was not called
-        self.failUnless(entry.test_download)
-        self.failIf(self.request.streamed)
-        self.assertEquals(entry.file_mtime, None)
-        self.assertEquals(entry.file_size, None)
+        return self.testResult
+    testVerifyFail.timeout = 2
 
     def testCheckAgeImmutable(self):
         # testfile.deb is immutable

Modified: people/halls/rework/apt_proxy/test/test_config.py
==============================================================================
--- people/halls/rework/apt_proxy/test/test_config.py	(original)
+++ people/halls/rework/apt_proxy/test/test_config.py	Thu Aug  3 17:05:49 2006
@@ -19,7 +19,7 @@
 from twisted.trial import unittest
 from StringIO import StringIO
 
-from apt_proxy.apt_proxy_conf import apConfig
+from apt_proxy.apt_proxy_conf import apConfig, ConfigError
 
 class EmptyConfigTest(unittest.TestCase):
     def setUp(self):
@@ -86,6 +86,10 @@
         self.assertEquals(self.c.backends['backend1'].bandwidth_limit,3434)
         self.assertEquals(self.c.backends['backend2'].bandwidth_limit,2323)
 
+class BrokenTimeoutTest(unittest.TestCase):
+    def testBrokenTimeout(self):
+        self.assertRaises(ConfigError, apConfig, StringIO("[Default]\ntimeout = "))
+
 class DefaultsTest(unittest.TestCase):
     def setUp(self):
         self.c = apConfig(StringIO(""))

Modified: people/halls/rework/apt_proxy/test/test_fetchers.py
==============================================================================
--- people/halls/rework/apt_proxy/test/test_fetchers.py	(original)
+++ people/halls/rework/apt_proxy/test/test_fetchers.py	Thu Aug  3 17:05:49 2006
@@ -16,16 +16,21 @@
 
 """This module tests the Fetcher classes"""
 
-from apt_proxy.apt_proxy_conf import apConfig
-from apt_proxy.test.test_apt_proxy import apTestHelper, FactoryTestHelper
-from apt_proxy.apt_proxy import Factory
-from apt_proxy.misc import log
-from apt_proxy.fetchers import HttpFetcher, FetcherHttpClient, FtpFetcher, Fetcher, RsyncFetcher
+import time, os, socket, signal, string
+
 from twisted.internet import reactor, protocol, defer, error
 from twisted.protocols import ftp
 from twisted.cred import portal, checkers, credentials
 from twisted.python import failure
-import time, os, socket, signal, string
+
+from apt_proxy.apt_proxy_conf import apConfig
+from apt_proxy.apt_proxy import Factory
+from apt_proxy.misc import log
+from apt_proxy.cache import CacheEntry
+from apt_proxy.fetchers import HttpFetcher, FetcherHttpClient, FtpFetcher, Fetcher, \
+     RsyncFetcher, DownloadQueue, DownloadQueuePerClient
+from apt_proxy.test.test_apt_proxy import apTestHelper, FactoryTestHelper
+
 
 config1="""
 [DEFAULT]
@@ -378,3 +383,185 @@
         fileName = 'notHereFile'
         self.fetcher.cacheEntry = self.backend.get_cache_entry(fileName)
         self.rsyncFetcher.download(self.fetcher, fileName, 0)
+
+QueueConfig = """
+[test_queue]
+backends=http://server1/path1
+"""
+
+class DummyFetcher:
+    def __init__(self, backend):
+        self.backend = backend
+    def connect(self):
+        # We always conect
+        d = defer.succeed(True)
+        return d
+    def disconnect(self):
+        pass
+    def download(self, fetcher, uri, mtime):
+        fetcher.cacheEntry.state = CacheEntry.STATE_DOWNLOAD
+        pass
+
+class DummyServer:
+    fetcher = DummyFetcher
+    path = 'Dummy'
+    uri = 'dummy://'
+class DummyBackend:
+    name = 'Dummy'
+    def get_first_server(self):
+        return DummyServer()
+class DummyCacheEntry:
+    """
+    Class that provides basic CacheEntry information
+    """
+
+    STATE_NEW = CacheEntry.STATE_NEW
+    STATE_DOWNLOAD = CacheEntry.STATE_DOWNLOAD
+    def __init__(self, cache_dir, backend, file):
+        self.filename = os.path.basename(file)
+        self.path = file
+        self.cache_path = backend + os.sep + file
+        self.file_path = cache_dir + os.sep + self.cache_path
+        self.file_mtime = None
+        self.requests = []
+        self.state = self.STATE_NEW
+
+class DownloadQueueTest(FactoryTestHelper):
+
+    def setUp(self):
+        """
+        Set up a factory using the additional config given
+        """
+        FactoryTestHelper.setUp(self, QueueConfig)
+        self.queue = DownloadQueue()
+        self.backend = self.factory.getBackend('test_queue')
+    def testInit(self):
+        self.assertEquals(len(self.queue.queue), 0)
+        self.assertEquals(self.queue.fetcher, None)
+        self.assertEquals(self.queue.activeFile, None)
+    def testAddFile(self):
+        entry = DummyCacheEntry(self.cache_dir, 'test_queue', 'test.deb')
+        entry.backend = DummyBackend()
+        self.queue.addFile(entry)
+        self.assertEquals(len(self.queue.queue), 0)
+        self.assertEquals(self.queue.activeFile, entry)
+        self.queue.stop() # Cancel timeout CB
+    def testDownloadComplete(self):
+        entry = DummyCacheEntry(self.cache_dir, 'test_queue', 'test.deb')
+        entry.backend = DummyBackend()
+        self.queue.addFile(entry)
+        self.assertEquals(self.queue.activeFile, entry)
+        self.queue.downloadFinished([True, 'Test complete'])
+        self.assertEquals(self.queue.activeFile, None)
+        self.queue.stop() # Cancel timeout CB
+
+class DummyRequest:
+    def __init__(self, fileno=0):
+        self.fileno=fileno
+        self.finished = False
+        self.streamed = 0
+    def finishCode(self, code, reason):
+        self.finished = True
+    def start_streaming(self, file_size, file_mtime):
+        self.streamed = self.streamed + 1
+    def getFileno(self):
+        return self.fileno
+
+class DownloadQueuePerClientTest(FactoryTestHelper):
+    def setUp(self):
+        """
+        Set up a factory using the additional config given
+        """
+        FactoryTestHelper.setUp(self, QueueConfig)
+        self.queue = DownloadQueuePerClient()
+        self.backend = self.factory.getBackend('test_queue')
+    def testInit(self):
+        self.assertEquals(len(self.queue.queues), 0)
+    def testSeparateFilesAndClients(self):
+        req1 = DummyRequest(123)
+        req2 = DummyRequest(234)
+
+        entry1 = DummyCacheEntry(self.cache_dir, 'test_queue', 'test1.deb')
+        entry1.requests = [req1]
+        entry1.backend = DummyBackend()
+
+        entry2 = DummyCacheEntry(self.cache_dir, 'test_queue', 'test2.deb')
+        entry2.requests = [req2]
+        entry2.backend = entry1.backend
+
+        self.assertEquals(len(self.queue.queues.keys()), 0)
+        self.assertNotEquals(self.queue.queues.has_key(req1.fileno), True)
+        self.queue.addFile(entry1)
+        self.assertEquals(len(self.queue.queues.keys()), 1)
+        self.assertEquals(self.queue.queues[req1.fileno].activeFile, entry1)
+
+        self.queue.addFile(entry2)
+        self.assertEquals(len(self.queue.queues.keys()), 2)
+        self.assertEquals(self.queue.queues[req2.fileno].activeFile, entry2)
+
+        self.queue.stop() # Cancel timeout CB
+
+    def testSeparateFiles(self):
+        req1 = DummyRequest(123)
+        req2 = DummyRequest(123)
+
+        entry1 = DummyCacheEntry(self.cache_dir, 'test_queue', 'test1.deb')
+        entry1.requests = [req1]
+        entry1.backend = DummyBackend()
+
+        entry2 = DummyCacheEntry(self.cache_dir, 'test_queue', 'test2.deb')
+        entry2.requests = [req2]
+        entry2.backend = entry1.backend
+
+        self.assertEquals(len(self.queue.queues.keys()), 0)
+        self.assertNotEquals(self.queue.queues.has_key(req1.fileno), True)
+        self.queue.addFile(entry1)
+        self.assertEquals(len(self.queue.queues.keys()), 1)
+        self.assertEquals(self.queue.queues[req1.fileno].activeFile, entry1)
+
+        self.queue.addFile(entry2)
+        self.assertEquals(len(self.queue.queues.keys()), 1)
+        # Entry 2 should have been added to the first queue, and entry1 will
+        # still be active
+        self.assertEquals(self.queue.queues[req2.fileno].activeFile, entry1)
+        self.assertEquals(self.queue.queues[req2.fileno].queue[0], entry2)
+
+        self.queue.stop() # Cancel timeout CB
+
+    def testSeparateClients(self):
+        # 2 clients requesting 1 file
+        req1 = DummyRequest(123)
+        req2 = DummyRequest(234)
+
+        entry1 = DummyCacheEntry(self.cache_dir, 'test_queue', 'test1.deb')
+        entry1.requests = [req1]
+        entry1.backend = DummyBackend()
+
+        self.assertEquals(len(self.queue.queues.keys()), 0)
+        self.assertNotEquals(self.queue.queues.has_key(req1.fileno), True)
+        self.queue.addFile(entry1)
+        self.assertEquals(len(self.queue.queues.keys()), 1)
+        self.assertEquals(self.queue.queues[req1.fileno].activeFile, entry1)
+
+        entry2 = entry1
+        entry2.requests.append(req2)
+
+        # Entry 2 will have been added to a second queue, but will be immediately
+        # dequeued because it is on entry 1's queue
+        self.queue.addFile(entry2)
+        self.assertEquals(len(self.queue.queues.keys()), 2)
+        self.assertEquals(self.queue.queues[req2.fileno].activeFile, None)
+
+        self.queue.stop() # Cancel timeout CB
+
+    def testDownloadComplete(self):
+        req = DummyRequest(678)
+        entry = DummyCacheEntry(self.cache_dir, 'test_queue', 'test.deb')
+        entry.backend = DummyBackend()
+        entry.requests = [req]
+        self.queue.addFile(entry)
+        self.assertEquals(len(self.queue.queues.keys()), 1)
+        self.queue.queues[req.fileno].closeFetcher()
+        # Check that queue for this client has been removed
+        self.assertEquals(len(self.queue.queues.keys()), 0)
+        #self.queue.stop() # Cancel timeout CB

Modified: people/halls/rework/apt_proxy/test/test_requests.py
==============================================================================
--- people/halls/rework/apt_proxy/test/test_requests.py	(original)
+++ people/halls/rework/apt_proxy/test/test_requests.py	Thu Aug  3 17:05:49 2006
@@ -36,11 +36,12 @@
     """
     class containing test data for a request
     """
-    def __init__(self, filename, expectedResponse, if_modified_since=None, expectedSize=None, filePath=None):
+    def __init__(self, filename, expectedResponse, if_modified_since=None, expectedSize=None, filePath=None, abortTransfer=False):
         self.filename = filename
         self.expectedResponse = expectedResponse
         self.if_modified_since = if_modified_since
         self.filePath = filePath
+        self.abortTransfer = abortTransfer
 
         if expectedSize is not None:
             self.expectedSize = expectedSize # If not none, the file sent should have this size
@@ -130,27 +131,35 @@
     def dataReceived(self, data):
         self.received_len = self.received_len + len(data)
         log.debug("data received, len: %s" % (self.received_len), 'uriRequester')
-        http.HTTPClient.dataReceived(self, data)
+        if self.nextTest.abortTransfer == False:
+            http.HTTPClient.dataReceived(self, data)
+        else:
+            self.passed() # Trigger disconnection of connection
         
+    class ResponseError:
+        pass
+    class SizeError:
+        pass
+
     def handleResponse(self, buffer):
         received_len = len(buffer)
         log.debug('data received: %s bytes, expected:%s' % (received_len, self.nextTest.expectedSize), 'uriRequester')
         if self.http_status != self.nextTest.expectedResponse:
             log.debug('test FAILED: response code (%s) is not %s' % 
                        (self.http_status, self.nextTest.expectedResponse), 'uriRequester')
-            self.failed()
+            self.failed(self.ResponseError())
         elif self.nextTest.expectedSize is not None and received_len != self.nextTest.expectedSize:
             log.debug('test FAILED: received %s bytes, but expected %s' % 
                     (received_len, self.nextTest.expectedSize), 'uriRequester')
-            self.failed()
+            self.failed(self.SizeError())
         else:
             self.passed()
 
     def passed(self):
         self.getNextTest()
-    def failed(self):
+    def failed(self, data):
         log.debug('test failed', 'uriRequester')
-        self.deferred.errback(failure.Failure())
+        self.deferred.errback(data)
 
 
 class TestRequestHelper(apTestHelper):
@@ -270,6 +279,17 @@
         """
         return self.downloadFiles(file)
 
+    def getFilePaths(self, file):
+        """
+        Given a filename, generate real filename and request path
+        """
+        filename = '/' + self.backendName + file
+        sourcepath = self.testfilesdir+file
+        destpath = self.cache_dir + filename
+        # File should not be in cache
+        self.assertRaises(OSError, os.stat, destpath)
+        return filename, sourcepath, destpath
+        
     def downloadFiles(self, *files):
         """
         Download a number of files to cache
@@ -277,12 +297,9 @@
         data = []
         self.filepaths = []
         for f in files:
-            self.filename = '/' + self.backendName + f
-            filepath = self.cache_dir + self.filename
-            # File should not be in cache
-            self.assertRaises(OSError, os.stat, filepath)
-            self.filepaths.append(filepath)
-            data.append(uriData(self.filename, http.OK, filePath=self.testfilesdir+f))
+            self.filename, sourcepath, destpath = self.getFilePaths(f)
+            self.filepaths.append(destpath)
+            data.append(uriData(self.filename, http.OK, filePath=sourcepath))
         d = self.doRequest(*data)
         def checkPath(x):
             # Check that files were really placed in cache
@@ -326,16 +343,16 @@
         DownloadQueue.closeTimeout = 0 # Close fetcher immediately
         return self.downloadFile().addCallback(self.CloseFetcherImmediately2)
     def CloseFetcherImmediately2(self, x):
-        f = self.factory.getBackend(self.backendName).queue.fetcher
-        self.assertEquals(f, None)
+        queues = self.factory.getBackend(self.backendName).queue.queues.values()
+        self.assertEquals(len(queues), 0)
     testCloseFetcherImmediately.timeout = 2
 
     def testLeaveFetcherOpen(self):
         DownloadQueue.closeTimeout = 2 # 2 second delay to close
         return self.downloadFile().addCallback(self.LeaveFetcherOpen2)
     def LeaveFetcherOpen2(self, x):
-        f = self.factory.getBackend(self.backendName).queue.fetcher
-        self.assertNotEquals(f, None)
+        queues = self.factory.getBackend(self.backendName).queue.queues.values()
+        self.assertNotEquals(len(queues), 0)
     testLeaveFetcherOpen.timeout = 4
 
     def testAutoCloseFetcher(self):
@@ -347,11 +364,11 @@
         return self.autoclosedeferred
     def AutoCloseFetcher2(self, x):
         # File is downloaded, now check fetcher state
-        self.f = self.factory.getBackend(self.backendName).queue.fetcher
+        self.f = self.factory.getBackend(self.backendName).queue.queues.values()[0].fetcher
         reactor.callLater(0.2, self.AutoCloseFetcher3)
     def AutoCloseFetcher3(self):
-        f = self.factory.getBackend(self.backendName).queue.fetcher
-        self.assertEquals(f, None)
+        queues = self.factory.getBackend(self.backendName).queue.queues.values()
+        self.assertEquals(len(queues), 0)
         self.autoclosedeferred.callback(None)
     testAutoCloseFetcher.timeout = 2
 
@@ -386,6 +403,22 @@
         return self.downloadFile(file='/packages/apt_0.0.1_test.deb')
     testBwLimit.timeout = 2
 
+    def testAbort(self):
+        "Abort with complete_clientless_downloads=off"
+        import twisted
+        twisted.internet.base.DelayedCall.debug = True
+        b = self.factory.getBackend(self.backendName)
+        b.config.bandwidth_limit = 10
+        # We're not testing here that limiting is applied, just that the code runs
+        filename, sourcepath, destpath = self.getFilePaths('/packages/apt_0.0.1_test.deb')
+        d = self.doRequest(uriData(filename, http.OK, filePath=sourcepath, abortTransfer=True))
+        d.addCallback(self.Abort2)
+        return d
+    testBwLimit.timeout = 2
+    def Abort2(self, x):
+        "Connection was aborted, check that fetchers were closed"
+        
+
     # This test does not work with current twisted http client :(
     #def testPipeline(self):
         #"Test pipelined GETs"
@@ -439,6 +472,7 @@
         backends=file:///<path to test packages directory>
         """
         import test_fetchers
+        import twisted
         self.debugname = 'FtpBackendTest'
         self.ftpserver = test_fetchers.FtpServer()
         port = self.ftpserver.start()
@@ -448,6 +482,11 @@
         self.ftpserver.stop()
         BackendTestBase.tearDown(self)
 
+        # The ftp classes use callLater(0, ...) several times, so allow
+        # those calls to complete
+        reactor.iterate()
+        reactor.iterate()
+
 class RsyncBackendTest(TestRequestHelper, BackendTestBase):
     def setUp(self):
         """
@@ -472,7 +511,7 @@
         self.testResult = defer.Deferred()
         return self.testResult
     def TempFile2(self):
-        fetcher = self.factory.getBackend(self.backendName).queue.fetcher.fetcher
+        fetcher = self.factory.getBackend(self.backendName).queue.queues.values()[0].fetcher.fetcher
         fetcher.findRsyncTempFile()
         file = fetcher.rsyncTempFile
         log.debug("rsync TempFile is %s" % (file), self.debugname)

Modified: people/halls/rework/debian/changelog
==============================================================================
--- people/halls/rework/debian/changelog	(original)
+++ people/halls/rework/debian/changelog	Thu Aug  3 17:05:49 2006
@@ -1,24 +1,66 @@
 apt-proxy (1.9.33+svn) unstable; urgency=low
 
+  * Acknowledge NMU by Luk Claes, thanks! (Closes: #359798)
+  * Change maintainer to myself and add Otavio to Uploaders, at
+    Otavio's request. Thanks Otavio for all your work.
+  * Fix breakage caused by new twisted (Closes: #375677)
   * http_proxy can now be set in each [backend] section
   * Add support for username and password in http_proxy parameter.
-    Thanks to Thomas Champagne for the patch (Closes: #323147)
+    Thanks to Thomas Champagne for the patch
+    (Closes: #323147, #327239)
   * Move fetchers and cache management into separate files
   * Add bandwidth_limit configuration parameter to limit download
-    rates (Closes: #306095)
+    rates (Closes: #306095, #259011)
   * Add support for rsync port specification
   * Always check cache directory and logfile permissions when package
     is installed, thanks Ben Hutchings for the patch (Closes: #312969)
   * Add more unit tests
   * Remove obsolete debian/TODO from source package
-  * Change maintainer to myself and add Otavio to Uploaders, at
-    Otavio's request
+  * Update doc/TODO, removing fixed items
   * Recognise apt package diff files (*.diff/Index). Thanks
     Florian Weimer for the patch (Closes: #336433)
   * Add debhelper to Build-Depends, needed for dh_clean in clean target
-  * Update doc/TODO, removing fixed items
+  * Remove http scheme, host and port from requested URL (Closes: #374405)
+  * Add download queueing mechanism. Clients can now use HTTP pipelining to
+    request files, and each file will be queued at the corresponding backend.
+    Each separate apt client connection generates a connection to the
+    backend. (Closes: #261802)
+  * HTTP pipelining now works and is enabled by default
+    (Closes: #272206, #141312)
+  * Fix shutdown code (Closes: #359805)
+  * Remove reference to v1 in description (Closes: #337966)
+  * Give a meaningful error message if an empty time is given in the
+    configuration file (Closes: #304611)
+  * Reorganise download process to be more logical, fixing several problems
+    (Closes: #329764)
+  * Remove references to -i parameter in apt-proxy.conf manpage.
+    (Closes: #328983)
+  * In example apt-proxy.conf, remove references to non-US archive
+    (Closes: #329935)
+
+ -- Chris Halls <halls at debian.org>  Thu,  3 Aug 2006 18:01:01 +0100
+
+apt-proxy (1.9.33-0.1) unstable; urgency=high
+
+  * Non-maintainer upload.
+  * Update for bsddb module (Closes: #352917).
+  * Add comma in depends (Closes: #353386, #350551, #354668, #355228).
+  * Updated Vietnamese debconf translation (Closes: #313121).
+  * Complete manpage translation with po4a (Closes: #334380).
+  * Fix typos in apt-proxy.conf.5 (Closes: #355225).
+  * Remove extra 'by default' from apt-proxy.8 (Closes: #355229).
+  * Add German debconf translation (Closes: #352484).
+  * Updated French debconf translation (Closes: #328689).
+  * Add Portuguese debconf translation (Closes: #330202).
+  * Add Swedish debconf translation (Closes: #331515).
+  * Add Catalan debconf translation (Closes: #336384).
+  * Updated Danish debconf translation (Closes: #340132).
+  * Updated Dutch debconf translation (Closes: #356210).
+  * Add Spanish debconf translation (Closes: #333874).
+  * Updated Czech debconf translation (Closes: #335361).
+  * Updated French manpage translation (Closes: #332304).
 
- -- Chris Halls <halls at debian.org>  Mon, 19 Jun 2006 16:39:08 +0100
+ -- Luk Claes <luk at debian.org>  Wed, 29 Mar 2006 00:05:51 +0200
 
 apt-proxy (1.9.33) unstable; urgency=low
 

Modified: people/halls/rework/debian/control
==============================================================================
--- people/halls/rework/debian/control	(original)
+++ people/halls/rework/debian/control	Thu Aug  3 17:05:49 2006
@@ -9,7 +9,7 @@
 
 Package: apt-proxy
 Architecture: all
-Depends: debconf (>= 0.5.00) | debconf-2.0, ${python:Depends}, python-twisted (>= 1.3.0-7) | python2.3 (<< 2.3.5-1), python-twisted (>= 1.0.0), python-twisted-web | python-twisted (<< 2.1.0) python-apt (>= 0.5.8), python-bsddb3, bzip2, logrotate, adduser
+Depends: debconf (>= 0.5.00) | debconf-2.0, ${python:Depends}, python-twisted (>= 1.3.0-7) | python2.3 (<< 2.3.5-1), python-twisted (>= 1.0.0), python-twisted-web | python-twisted (<< 2.1.0), python-apt (>= 0.5.8), bzip2, logrotate, adduser
 Conflicts: apt-proxy-v2 (<= 1.9.5)
 Replaces: apt-proxy-v2 (<= 1.9.5)
 Suggests: rsync

Modified: people/halls/rework/debian/po/cs.po
==============================================================================
--- people/halls/rework/debian/po/cs.po	(original)
+++ people/halls/rework/debian/po/cs.po	Thu Aug  3 17:05:49 2006
@@ -16,9 +16,9 @@
 "Project-Id-Version: apt-proxy\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2005-08-18 12:19-0300\n"
-"PO-Revision-Date: 2004-08-13 15:32+0200\n"
+"PO-Revision-Date: 2005-10-23 11:25+0200\n"
 "Last-Translator: Jan Outrata <outrataj at upcase.inf.upol.cz>\n"
-"Language-Team: Czech <provoz at debian.cz>\n"
+"Language-Team: Czech <debian-l10n-czech at debian.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-2\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -49,7 +49,6 @@
 #. Type: note
 #. Description
 #: ../templates:3
-#, fuzzy
 msgid ""
 "I will build /etc/apt-proxy/apt-proxy-v2.conf based on your old settings if "
 "you didn't already have such file. In any case, a backup file will be "

Modified: people/halls/rework/debian/po/da.po
==============================================================================
--- people/halls/rework/debian/po/da.po	(original)
+++ people/halls/rework/debian/po/da.po	Thu Aug  3 17:05:49 2006
@@ -16,7 +16,7 @@
 "Project-Id-Version: apt-proxy 1.9.18\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2005-08-18 12:19-0300\n"
-"PO-Revision-Date: 2004-10-15 18:08+0200\n"
+"PO-Revision-Date: 2005-11-21 07:09+0200\n"
 "Last-Translator: Morten Brix Pedersen <morten at wtf.dk>\n"
 "Language-Team: Danish <dansk at klid.dk>\n"
 "MIME-Version: 1.0\n"
@@ -51,15 +51,15 @@
 #. Type: note
 #. Description
 #: ../templates:3
-#, fuzzy
 msgid ""
 "I will build /etc/apt-proxy/apt-proxy-v2.conf based on your old settings if "
 "you didn't already have such file. In any case, a backup file will be "
 "written to /etc/apt-proxy/apt-proxy-v2.conf.backup"
 msgstr ""
 "Jeg vil bygge /etc/apt-proxy/apt-proxy-v2.conf baseret på dine gamle "
-"indstillinger hvis du allerede har en sådan fil. I hvert tilfælde, vil en "
-"sikkerhedskopi blive skrevet til /etc/apt-proxy/apt-proxy-v2.conf.backup"
+"indstillinger hvis du ikke allerede har en sådan fil. I hvert tilfælde, "
+"vil en sikkerhedskopi blive skrevet til "
+"/etc/apt-proxy/apt-proxy-v2.conf.backup"
 
 #. Type: note
 #. Description

Modified: people/halls/rework/debian/po/fr.po
==============================================================================
--- people/halls/rework/debian/po/fr.po	(original)
+++ people/halls/rework/debian/po/fr.po	Thu Aug  3 17:05:49 2006
@@ -12,16 +12,16 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: apt-proxy_1.9.15\n"
+"Project-Id-Version: apt-proxy_1.9.32\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2005-08-18 12:19-0300\n"
-"PO-Revision-Date: 2004-07-23 15:00+0200\n"
+"PO-Revision-Date: 2005-09-16 20:40+0200\n"
 "Last-Translator: Olivier Trichet <olivier.trichet at freesurf.fr>\n"
 "Language-Team: French <debian-l10n-french at lists.debian.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-15\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3.1\n"
+"X-Generator: KBabel 1.10.2\n"
 
 #. Type: note
 #. Description
@@ -51,7 +51,6 @@
 #. Type: note
 #. Description
 #: ../templates:3
-#, fuzzy
 msgid ""
 "I will build /etc/apt-proxy/apt-proxy-v2.conf based on your old settings if "
 "you didn't already have such file. In any case, a backup file will be "
@@ -65,8 +64,7 @@
 #. Type: note
 #. Description
 #: ../templates:3
-msgid ""
-"There are also other issues documented in /usr/share/doc/apt-proxy/UPGRADING"
+msgid "There are also other issues documented in /usr/share/doc/apt-proxy/UPGRADING"
 msgstr ""
 "D'autres problèmes liés à cette mise à niveau sont documentés dans /usr/"
 "share/doc/apt-proxy/UPGRADING."
@@ -97,3 +95,4 @@
 "Il est recommandé de lire ces avertissements ainsi que le fichier /usr/share/"
 "doc/apt-proxy/UPGRADING et d'adapter la configuration qui se trouve dans le "
 "fichier /etc/apt-proxy/apt-proxy-v2.conf."
+

Modified: people/halls/rework/debian/po/nl.po
==============================================================================
--- people/halls/rework/debian/po/nl.po	(original)
+++ people/halls/rework/debian/po/nl.po	Thu Aug  3 17:05:49 2006
@@ -16,7 +16,7 @@
 "Project-Id-Version: apt-proxy\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2005-08-18 12:19-0300\n"
-"PO-Revision-Date: 2004-11-09 01:09+0100\n"
+"PO-Revision-Date: 2006-03-10 14:00+0100\n"
 "Last-Translator: Bart Cornelis <cobaco at linux.be>\n"
 "Language-Team: debian-l10n-duth <debian-l10n-dutch at lists.debian.org>\n"
 "MIME-Version: 1.0\n"
@@ -38,35 +38,20 @@
 #. Type: note
 #. Description
 #: ../templates:3
-msgid ""
-"apt-proxy has been rewritten in python and the new configuration file format "
-"is incompatible with previous version. Hopefully you will like the new "
-"format better :)"
-msgstr ""
-"apt-proxy is herschreven in python en het nieuwe bestandsformaat van het "
-"configuratiebestand is incompatibel met de de vorige versie. Hopelijk vindt "
-"u het nieuwe formaat beter :-)"
+msgid "apt-proxy has been rewritten in python and the new configuration file format is incompatible with previous version. Hopefully you will like the new format better :)"
+msgstr "apt-proxy is herschreven in python en het nieuwe bestandsformaat van het configuratiebestand is incompatibel met de de vorige versie. Hopelijk vindt u het nieuwe formaat beter :-)"
 
 #. Type: note
 #. Description
 #: ../templates:3
-#, fuzzy
-msgid ""
-"I will build /etc/apt-proxy/apt-proxy-v2.conf based on your old settings if "
-"you didn't already have such file. In any case, a backup file will be "
-"written to /etc/apt-proxy/apt-proxy-v2.conf.backup"
-msgstr ""
-"Als u dit bestand nog niet heeft, wordt /etc/apt-proxy/apt-proxy-v2.conf "
-"opgebouwd aan de hand van uw oude instellingen. Zowieso wordt er een "
-"reservekopie opgeslagen onder de naam /etc/apt-proxy/apt-proxy-v2.conf.backup"
+msgid "I will build /etc/apt-proxy/apt-proxy-v2.conf based on your old settings if you didn't already have such file. In any case, a backup file will be written to /etc/apt-proxy/apt-proxy-v2.conf.backup"
+msgstr "Wanneer /etc/apt-proxy/apt-proxy-v2.conf nog niet bestaat wordt deze opgebouwd aan de hand van uw oude instellingen. Er wordt altijd een reservekopie opgeslagen onder de naam /etc/apt-proxy/apt-proxy-v2.conf.backup"
 
 #. Type: note
 #. Description
 #: ../templates:3
-msgid ""
-"There are also other issues documented in /usr/share/doc/apt-proxy/UPGRADING"
-msgstr ""
-"Er zijn verdere issues gedocumenteerd in /usr/share/doc/apt-proxy/UPGRADING"
+msgid "There are also other issues documented in /usr/share/doc/apt-proxy/UPGRADING"
+msgstr "Er zijn verdere issues gedocumenteerd in /usr/share/doc/apt-proxy/UPGRADING"
 
 #. Type: note
 #. Description
@@ -77,20 +62,12 @@
 #. Type: note
 #. Description
 #: ../templates:19
-msgid ""
-"The upgrading script dumped some warnings and they have been mailed to "
-"root at localhost."
-msgstr ""
-"Het opwaarderingsscript gaf enkele waarschuwingen; deze zijn naar "
-"root at localhost gemaild."
+msgid "The upgrading script dumped some warnings and they have been mailed to root at localhost."
+msgstr "Het opwaarderingsscript gaf enkele waarschuwingen; deze zijn naar root at localhost gemaild."
 
 #. Type: note
 #. Description
 #: ../templates:19
-msgid ""
-"You should read those warnings and /usr/share/doc/apt-proxy/UPGRADING and "
-"revise your configuration (/etc/apt-proxy/apt-proxy-v2.conf)"
-msgstr ""
-"U kunt deze waarschuwingen en /usr/share/doc/apt-proxy/UPGRADING best "
-"nalezen en vervolgens uw configuratie herzien (/etc/apt-prox/apt-proxy-v2."
-"conf)"
+msgid "You should read those warnings and /usr/share/doc/apt-proxy/UPGRADING and revise your configuration (/etc/apt-proxy/apt-proxy-v2.conf)"
+msgstr "U kunt deze waarschuwingen en /usr/share/doc/apt-proxy/UPGRADING best nalezen en vervolgens uw configuratie herzien (/etc/apt-prox/apt-proxy-v2.conf)"
+

Modified: people/halls/rework/debian/po/vi.po
==============================================================================
--- people/halls/rework/debian/po/vi.po	(original)
+++ people/halls/rework/debian/po/vi.po	Thu Aug  3 17:05:49 2006
@@ -4,10 +4,10 @@
 # 
 msgid ""
 msgstr ""
-"Project-Id-Version: apt-proxy 1.9.28\n"
+"Project-Id-Version: apt-proxy 1.9.30\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2005-08-18 12:19-0300\n"
-"PO-Revision-Date: 2005-05-12 23:46+0930\n"
+"PO-Revision-Date: 2005-06-12 12:04+0930\n"
 "Last-Translator: Clytie Siddall <clytie at riverland.net.au>\n"
 "Language-Team: Vietnamese <gnomevi-list at lists.sourceforge.net>\n"
 "MIME-Version: 1.0\n"
@@ -19,7 +19,7 @@
 #. Description
 #: ../templates:3
 msgid "Upgrading from pre-v1.9 packages."
-msgstr "Cập nhât từ các gói tin trước phiên bản 1.9..."
+msgstr "Cập nhât từ các gói tin trước phiên bản 1.9."
 
 #. Type: note
 #. Description
@@ -47,9 +47,9 @@
 "you didn't already have such file. In any case, a backup file will be "
 "written to /etc/apt-proxy/apt-proxy-v2.conf.backup"
 msgstr ""
-"Sẽ xây dụng /etc/apt-proxy/apt-proxy-v2.conf đựa vào các thiết lập cũ của "
+"Sẽ xây dụng «/etc/apt-proxy/apt-proxy-v2.conf» đựa vào các thiết lập cũ của "
 "bạn nếu bạn chưa có tập tin như vậy. Trong bất cứ trường hợp nào, sẽ ghi một "
-"tập tin lưu trữ vào /etc/apt-proxy/apt-proxy-v2.conf.backup"
+"tập tin lưu trữ vào «/etc/apt-proxy/apt-proxy-v2.conf.backup»."
 
 #. Type: note
 #. Description
@@ -57,8 +57,8 @@
 msgid ""
 "There are also other issues documented in /usr/share/doc/apt-proxy/UPGRADING"
 msgstr ""
-"Cũng có một số vấn đề khác được diễn tả trong tài liệu /usr/share/doc/apt-"
-"proxy/UPGRADING (cập nhật)"
+"Cũng có một số vấn đề khác được diễn tả trong tài liệu «/usr/share/doc/apt-"
+"proxy/UPGRADING» (cập nhật)"
 
 #. Type: note
 #. Description
@@ -73,7 +73,7 @@
 "The upgrading script dumped some warnings and they have been mailed to "
 "root at localhost."
 msgstr ""
-"Tập lệnh cập nhật đã đổ một số cảnh báo mà được gởi cho root at localhost."
+"Tập lệnh cập nhật đã đổ một số cảnh báo mà được gởi cho «root at localhost»."
 
 #. Type: note
 #. Description
@@ -82,5 +82,6 @@
 "You should read those warnings and /usr/share/doc/apt-proxy/UPGRADING and "
 "revise your configuration (/etc/apt-proxy/apt-proxy-v2.conf)"
 msgstr ""
-"Bạn hãy đọc những cảnh báo ấy và tài liệu /usr/share/doc/apt-proxy/UPGRADING "
-"và cũng sửa đổi cấu hình của bạn (/etc/apt-proxy/apt-proxy-v2.conf)."
+"Bạn hãy đọc những cảnh báo ấy và tài liệu «/usr/share/doc/apt-proxy/"
+"UPGRADING» và cũng sửa đổi cấu hình của bạn («/etc/apt-proxy/apt-proxy-v2."
+"conf»)."

Modified: people/halls/rework/debian/rules
==============================================================================
--- people/halls/rework/debian/rules	(original)
+++ people/halls/rework/debian/rules	Thu Aug  3 17:05:49 2006
@@ -6,8 +6,8 @@
 build-stamp:
 	dh_testdir
 
-	po4a doc/po4a.cfg
 	$(MAKE) -C doc apt-proxy-import.8
+	po4a doc/po4a.cfg
 	touch build-stamp
 
 clean:

Modified: people/halls/rework/doc/apt-proxy-import.8.inc
==============================================================================
--- people/halls/rework/doc/apt-proxy-import.8.inc	(original)
+++ people/halls/rework/doc/apt-proxy-import.8.inc	Thu Aug  3 17:05:49 2006
@@ -19,14 +19,14 @@
 .PP
 2. Import files from apt's cache:
 .nf
-    apt\-proxy\-import \-i /var/cache/apt/archives
+    apt\-proxy\-import /var/cache/apt/archives
 .fi
 
 [IMPORTING APT\-MOVE CACHE]
 You can import the apt\-move generated cache into apt\-proxy using the following command:
 .PP
 .nf
-    apt\-proxy\-import \-r \-i /var/cache/apt\-move
+    apt\-proxy\-import \-r /var/cache/apt\-move
 .fi
 .PP
 This tells apt\-proxy\-import to recuse over each directory in the apt\-move cache.

Modified: people/halls/rework/doc/apt-proxy.8
==============================================================================
--- people/halls/rework/doc/apt-proxy.8	(original)
+++ people/halls/rework/doc/apt-proxy.8	Thu Aug  3 17:05:49 2006
@@ -11,7 +11,7 @@
 \fBapt\-proxy\fP is a python program designed to be run as an stand alone
 server via twistd, and provides a clean, caching, intelligent proxy for
 \fBapt\-get\fP, which speaks HTTP to apt\-get clients, and http, ftp or rsync to
-the backend server(s)\&.  apt-proxy listens by default on port 9999 by default\&.
+the backend server(s)\&.  apt-proxy listens by default on port 9999\&.
 .PP
 .TP
 \fB\-h\fR, \fB\-\-help\fR

Modified: people/halls/rework/doc/apt-proxy.conf
==============================================================================
--- people/halls/rework/doc/apt-proxy.conf	(original)
+++ people/halls/rework/doc/apt-proxy.conf	Thu Aug  3 17:05:49 2006
@@ -88,15 +88,6 @@
 	http://ftp2.de.debian.org/debian
 	ftp://ftp.uk.debian.org/debian
 
-
-[debian-non-US]
-;; Debian debian-non-US archive
-;timeout will be the global value
-backends =
-	http://ftp.uk.debian.org/debian-non-US
-	http://ftp.de.debian.org/debian-non-US
-	ftp://ftp.uk.debian.org/debian
-	
 [security]
 ;; Debian security archive
 backends = 

Modified: people/halls/rework/doc/apt-proxy.conf.5
==============================================================================
--- people/halls/rework/doc/apt-proxy.conf.5	(original)
+++ people/halls/rework/doc/apt-proxy.conf.5	Thu Aug  3 17:05:49 2006
@@ -11,7 +11,7 @@
 make upgrading from v1 easier.
 
 The configuration file is divided up into several sections, where each \fI[resource]\fP
-section defines a seperate resource. The \fBDEFAULT\fP section applies to all resources.
+section defines a separate resource. The \fBDEFAULT\fP section applies to all resources.
 
 The supplied \fIapt\-proxy\&.conf\fP will work out of the box, but it is best to
 change the backends you use to a mirror closer to you.  There are some in the
@@ -77,7 +77,7 @@
 
 .TP
 .B dynamic_backends
-By default apt\-proxy will add HTTP backends dynamicaly if not already
+By default apt\-proxy will add HTTP backends dynamically if not already
 defined. Specify \fBoff\fP to restrict the available backends to those
 listed in the configuration file.  Default: on
 

Modified: people/halls/rework/doc/po/apt-proxy.pot
==============================================================================
--- people/halls/rework/doc/po/apt-proxy.pot	(original)
+++ people/halls/rework/doc/po/apt-proxy.pot	Thu Aug  3 17:05:49 2006
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2005-08-19 14:21-0300\n"
+"POT-Creation-Date: 2006-03-29  0:11+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -40,7 +40,7 @@
 msgstr ""
 
 # type: SH
-#: doc/apt-proxy.8:5 doc/apt-proxy-v1tov2.8:4
+#: doc/apt-proxy.8:5 doc/apt-proxy-v1tov2.8:4 doc/apt-proxy-import.8:5
 #, no-wrap
 msgid "SYNOPSIS"
 msgstr ""
@@ -51,7 +51,7 @@
 msgstr ""
 
 # type: SH
-#: doc/apt-proxy.8:10 doc/apt-proxy-v1tov2.8:8 doc/apt-proxy.conf.5:6
+#: doc/apt-proxy.8:10 doc/apt-proxy-v1tov2.8:8 doc/apt-proxy-import.8:8 doc/apt-proxy.conf.5:6
 #, no-wrap
 msgid "DESCRIPTION"
 msgstr ""
@@ -62,11 +62,11 @@
 "B<apt-proxy> is a python program designed to be run as an stand alone server "
 "via twistd, and provides a clean, caching, intelligent proxy for B<apt-get>, "
 "which speaks HTTP to apt-get clients, and http, ftp or rsync to the backend "
-"server(s)\\&.  apt-proxy listens by default on port 9999 by default\\&."
+"server(s)\\&.  apt-proxy listens by default on port 9999\\&."
 msgstr ""
 
 # type: TP
-#: doc/apt-proxy.8:16
+#: doc/apt-proxy.8:16 doc/apt-proxy-import.8:29
 #, no-wrap
 msgid "B<-h>, B<--help>"
 msgstr ""
@@ -77,7 +77,7 @@
 msgstr ""
 
 # type: TP
-#: doc/apt-proxy.8:19
+#: doc/apt-proxy.8:19 doc/apt-proxy-import.8:32
 #, no-wrap
 msgid "B<-c>, B<--config-file=>"
 msgstr ""
@@ -161,7 +161,7 @@
 msgstr ""
 
 # type: SH
-#: doc/apt-proxy.8:56 doc/apt-proxy-v1tov2.8:18 doc/apt-proxy.conf.5:148
+#: doc/apt-proxy.8:56 doc/apt-proxy-v1tov2.8:18 doc/apt-proxy-import.8:66 doc/apt-proxy.conf.5:186
 #, no-wrap
 msgid "FILES"
 msgstr ""
@@ -172,7 +172,7 @@
 msgstr ""
 
 # type: SH
-#: doc/apt-proxy.8:61 doc/apt-proxy-v1tov2.8:24 doc/apt-proxy.conf.5:152
+#: doc/apt-proxy.8:61 doc/apt-proxy-v1tov2.8:24 doc/apt-proxy-import.8:77 doc/apt-proxy.conf.5:190
 #, no-wrap
 msgid "SEE ALSO"
 msgstr ""
@@ -183,7 +183,7 @@
 msgstr ""
 
 # type: SH
-#: doc/apt-proxy.8:68 doc/apt-proxy.conf.5:161
+#: doc/apt-proxy.8:68 doc/apt-proxy-import.8:68 doc/apt-proxy.conf.5:199
 #, no-wrap
 msgid "BUGS"
 msgstr ""
@@ -197,7 +197,7 @@
 msgstr ""
 
 # type: SH
-#: doc/apt-proxy.8:73 doc/apt-proxy-v1tov2.8:22
+#: doc/apt-proxy.8:73 doc/apt-proxy-v1tov2.8:22 doc/apt-proxy-import.8:75
 #, no-wrap
 msgid "AUTHORS"
 msgstr ""
@@ -221,20 +221,22 @@
 msgid "November 2002"
 msgstr ""
 
+#.  DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
 # type: TH
-#: doc/apt-proxy-v1tov2.8:1
+#: doc/apt-proxy-v1tov2.8:1 doc/apt-proxy-import.8:2
 #, no-wrap
 msgid "Debian GNU/Linux"
 msgstr ""
 
+#.  DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
 # type: TH
-#: doc/apt-proxy-v1tov2.8:1
+#: doc/apt-proxy-v1tov2.8:1 doc/apt-proxy-import.8:2
 #, no-wrap
-msgid " "
+msgid "  "
 msgstr ""
 
 # type: SH
-#: doc/apt-proxy-v1tov2.8:2 doc/apt-proxy.conf.5:3
+#: doc/apt-proxy-v1tov2.8:2 doc/apt-proxy-import.8:3 doc/apt-proxy.conf.5:3
 #, no-wrap
 msgid "NAME"
 msgstr ""
@@ -275,12 +277,12 @@
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy-v1tov2.8:20 doc/apt-proxy.conf.5:150
+#: doc/apt-proxy-v1tov2.8:20 doc/apt-proxy.conf.5:188
 msgid "/etc/apt-proxy/apt-proxy\\&.conf"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy-v1tov2.8:22 doc/apt-proxy.conf.5:152
+#: doc/apt-proxy-v1tov2.8:22 doc/apt-proxy.conf.5:190
 msgid "/etc/apt-proxy/apt-proxy-v2\\&.conf"
 msgstr ""
 
@@ -290,106 +292,223 @@
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy-v1tov2.8:29 doc/apt-proxy-import.8.inc:42
+#: doc/apt-proxy-v1tov2.8:29 doc/apt-proxy-import.8:82
 msgid "B<apt-proxy>(8), B<apt-proxy.conf>(5)"
 msgstr ""
 
-#.  Man page was originaly copied from apt-proxy man page.
+#.  DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
+# type: TH
+#: doc/apt-proxy-import.8:2
+#, no-wrap
+msgid "APT-PROXY-IMPORT"
+msgstr ""
+
+#.  DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
+# type: TH
+#: doc/apt-proxy-import.8:2
+#, no-wrap
+msgid "March 2006"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:5
+msgid "apt-proxy-import - Import packages into the apt-proxy cache."
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:8
+msgid "B<apt-proxy-import> [I<options>] I<E<lt>filenameE<gt> >..."
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:11
+msgid ""
+"WARNING: apt-proxy has not been tested under this version of twisted "
+"(2.2.0).  WARNING: although it should work without problem."
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:13
+msgid "apt-proxy-import B<-r> [options] E<lt>directoryE<gt> ..."
+msgstr ""
+
+# type: SH
+#: doc/apt-proxy-import.8:13
+#, no-wrap
+msgid "OPTIONS"
+msgstr ""
+
+# type: TP
+#: doc/apt-proxy-import.8:14
+#, no-wrap
+msgid "B<-V>, B<--version>"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:17
+msgid "print version and quit"
+msgstr ""
+
+# type: TP
+#: doc/apt-proxy-import.8:17
+#, no-wrap
+msgid "B<-v>, B<--verbose>"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:20
+msgid "give verbose output"
+msgstr ""
+
+# type: TP
+#: doc/apt-proxy-import.8:20
+#, no-wrap
+msgid "B<-d>, B<--debug>"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:23
+msgid "debug output"
+msgstr ""
+
+# type: TP
+#: doc/apt-proxy-import.8:23
+#, no-wrap
+msgid "B<-q>, B<--quiet>"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:26
+msgid "try not to write messages to stdout"
+msgstr ""
+
+# type: TP
+#: doc/apt-proxy-import.8:26
+#, no-wrap
+msgid "B<-r>, B<--recursive>"
+msgstr ""
+
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:4
-msgid "[NAME] apt-proxy-import - Import packages into the apt-proxy cache."
+#: doc/apt-proxy-import.8:29
+msgid "recurse into subdirectories"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:9
+#: doc/apt-proxy-import.8:32
+msgid "Display this help and exit."
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:35
+msgid "Configuration file"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:37
+msgid "apt-proxy-import imports .deb files into the apt-proxy cache."
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:41
 msgid ""
-"/apt-proxy-import imports / It uses the package lists to determine where "
-"each file should be placed, so you should run B<'apt-get update'> to allow "
-"apt-proxy to update the package lists before running apt-proxy-import."
+"It uses the package lists to determine where each file should be placed, so "
+"you should run B<'apt-get update'> to allow apt-proxy to update the package "
+"lists before running apt-proxy-import."
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:44
+msgid "WARNING: although it should work without problem.  apt-proxy-import 1.9.x"
+msgstr ""
+
+# type: SH
+#: doc/apt-proxy-import.8:44
+#, no-wrap
+msgid "USING TO BOOTSTRAP A NEW APT-PROXY CACHE"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:14
+#: doc/apt-proxy-import.8:48
 msgid ""
-"[USING TO BOOTSTRAP A NEW APT-PROXY CACHE] If you have been using apt "
-"standalone, you probably have built up a large collection of .debs or .udebs "
-"in apt's cache directory.  You can import these files into apt-proxy as "
-"follows:"
+"If you have been using apt standalone, you probably have built up a large "
+"collection of .debs or .udebs in apt's cache directory.  You can import "
+"these files into apt-proxy as follows:"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:16
+#: doc/apt-proxy-import.8:50
 msgid "1. Update apt-proxy's filelists:"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:18
+#: doc/apt-proxy-import.8:52
 #, no-wrap
 msgid "    apt-get update\n"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:21
+#: doc/apt-proxy-import.8:55
 msgid "2. Import files from apt's cache:"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:23
+#: doc/apt-proxy-import.8:57
 #, no-wrap
 msgid "    apt-proxy-import -i /var/cache/apt/archives\n"
 msgstr ""
 
+# type: SH
+#: doc/apt-proxy-import.8:58
+#, no-wrap
+msgid "IMPORTING APT-MOVE CACHE"
+msgstr ""
+
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:27
+#: doc/apt-proxy-import.8:60
 msgid ""
-"[IMPORTING APT-MOVE CACHE] You can import the apt-move generated cache into "
-"apt-proxy using the following command:"
+"You can import the apt-move generated cache into apt-proxy using the "
+"following command:"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:30
+#: doc/apt-proxy-import.8:63
 #, no-wrap
 msgid "    apt-proxy-import -r -i /var/cache/apt-move\n"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:33
+#: doc/apt-proxy-import.8:66
 msgid ""
 "This tells apt-proxy-import to recuse over each directory in the apt-move "
 "cache."
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:36
-msgid "[FILES] \\ /etc/apt-proxy/apt-proxy\\&.conf"
+#: doc/apt-proxy-import.8:68
+msgid "\\ /etc/apt-proxy/apt-proxy\\&.conf"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:38
-msgid "[SEE ALSO]"
-msgstr ""
-
-# type: Plain text
-#: doc/apt-proxy-import.8.inc:48
+#: doc/apt-proxy-import.8:71
 msgid ""
-"[BUGS] apt-proxy-import does not use I<max_age> or I<max_versions> to clean "
-"the cache directory on import."
+"apt-proxy-import does not use I<max_age> or I<max_versions> to clean the "
+"cache directory on import."
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:50
+#: doc/apt-proxy-import.8:73
 msgid "It does not yet import source.tar.gz or Packages files."
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:52
+#: doc/apt-proxy-import.8:75
 msgid "You must run it as the apt-proxy user or as root."
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:54
+#: doc/apt-proxy-import.8:77
 msgid ""
-"[AUTHORS] Chris Halls E<lt>halls at debian.orgE<gt>, Manuel Estrada Sainz "
+"Chris Halls E<lt>halls at debian.orgE<gt>, Manuel Estrada Sainz "
 "E<lt>ranty at debian.orgE<gt>"
 msgstr ""
 
@@ -404,7 +523,7 @@
 # type: TH
 #: doc/apt-proxy.conf.5:2
 #, no-wrap
-msgid "21 Nov 2002"
+msgid "5 Jan 2006"
 msgstr ""
 
 # type: Plain text
@@ -416,72 +535,89 @@
 #: doc/apt-proxy.conf.5:9
 msgid ""
 "B<apt-proxy\\&.conf> is the configuration file for apt-proxy.  When "
-"apt-proxy starts up, it will read B</etc/apt-proxy/apt-proxy\\&.conf>\\&."
+"apt-proxy starts up, it will read I</etc/apt-proxy/apt-proxy\\&.conf>\\&."
 msgstr ""
 
 # type: Plain text
 #: doc/apt-proxy.conf.5:12
 msgid ""
-"B</etc/apt-proxy/apt-proxy-v2\\&.conf> will be read instead if it exists to "
+"I</etc/apt-proxy/apt-proxy-v2\\&.conf> will be read instead if it exists to "
 "make upgrading from v1 easier."
 msgstr ""
 
+# type: Plain text
+#: doc/apt-proxy.conf.5:15
+msgid ""
+"The configuration file is divided up into several sections, where each "
+"I<[resource]> section defines a separate resource. The B<DEFAULT> section "
+"applies to all resources."
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:19
+msgid ""
+"The supplied I<apt-proxy\\&.conf> will work out of the box, but it is best "
+"to change the backends you use to a mirror closer to you.  There are some in "
+"the default file, and it may be enough just to reorder the lines in the "
+"file\\&."
+msgstr ""
+
 # type: SH
-#: doc/apt-proxy.conf.5:13
+#: doc/apt-proxy.conf.5:21
 #, no-wrap
 msgid "[DEFAULT]"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:15
+#: doc/apt-proxy.conf.5:23
 msgid "This section holds options global to the whole apt-proxy:"
 msgstr ""
 
 # type: TP
-#: doc/apt-proxy.conf.5:16
+#: doc/apt-proxy.conf.5:24
 #, no-wrap
 msgid "B<address>"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:20
+#: doc/apt-proxy.conf.5:28
 msgid ""
 "IP address on which apt-proxy will listen for requests. Multiple addresses "
 "have a empty space between it."
 msgstr ""
 
 # type: TP
-#: doc/apt-proxy.conf.5:21
+#: doc/apt-proxy.conf.5:29
 #, no-wrap
 msgid "B<port>"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:24
+#: doc/apt-proxy.conf.5:32
 msgid "TCP port on which apt-proxy will listen for requests."
 msgstr ""
 
 # type: TP
-#: doc/apt-proxy.conf.5:25
+#: doc/apt-proxy.conf.5:33
 #, no-wrap
 msgid "B<min_refresh_delay>"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:30
+#: doc/apt-proxy.conf.5:38
 msgid ""
 "If different from B<off>, means that Packages and other control files will "
 "not be refreshed more frequently than this number of seconds\\&."
 msgstr ""
 
 # type: TP
-#: doc/apt-proxy.conf.5:31 doc/apt-proxy.conf.5:92
+#: doc/apt-proxy.conf.5:39 doc/apt-proxy.conf.5:96
 #, no-wrap
 msgid "B<timeout>"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:36
+#: doc/apt-proxy.conf.5:44
 msgid ""
 "Maximum I/O timeout in seconds for backend transfers. Default: 30 seconds.  "
 "If no response is received from a backend server in this time, apt-proxy "
@@ -489,24 +625,24 @@
 msgstr ""
 
 # type: TP
-#: doc/apt-proxy.conf.5:37
+#: doc/apt-proxy.conf.5:45
 #, no-wrap
 msgid "B<cache_dir>"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:40
+#: doc/apt-proxy.conf.5:48
 msgid "Cache directory.  Default: /var/cache/apt-proxy"
 msgstr ""
 
 # type: TP
-#: doc/apt-proxy.conf.5:41
+#: doc/apt-proxy.conf.5:49
 #, no-wrap
 msgid "B<cleanup_freq>"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:46
+#: doc/apt-proxy.conf.5:54
 msgid ""
 "If different from B<off>, indicates the time between housekeeping attempts: "
 "delete files that have not been accessed in max_age, scan cache directories "
@@ -514,26 +650,26 @@
 msgstr ""
 
 # type: TP
-#: doc/apt-proxy.conf.5:47
+#: doc/apt-proxy.conf.5:55
 #, no-wrap
 msgid "B<max_age>"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:51
+#: doc/apt-proxy.conf.5:59
 msgid ""
 "If different from B<off>, indicates the maximum age of files before deletion "
 "from the cache."
 msgstr ""
 
 # type: TP
-#: doc/apt-proxy.conf.5:52
+#: doc/apt-proxy.conf.5:60
 #, no-wrap
 msgid "B<max_versions>"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:59
+#: doc/apt-proxy.conf.5:67
 msgid ""
 "If different from B<off>, indicates the maximum number of versions of a "
 "\\&.deb to keep.  This is the number of versions per distribution, for "
@@ -543,13 +679,13 @@
 msgstr ""
 
 # type: TP
-#: doc/apt-proxy.conf.5:60 doc/apt-proxy.conf.5:106
+#: doc/apt-proxy.conf.5:68 doc/apt-proxy.conf.5:111
 #, no-wrap
 msgid "B<passive_ftp>"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:65
+#: doc/apt-proxy.conf.5:73
 msgid ""
 "Specify B<on> to use passive FTP, which works from behind a firewall, but "
 "may not be supported on all servers.  Specify B<off> to use active FTP "
@@ -557,38 +693,38 @@
 msgstr ""
 
 # type: TP
-#: doc/apt-proxy.conf.5:66
+#: doc/apt-proxy.conf.5:74
 #, no-wrap
 msgid "B<http_proxy>"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:69
+#: doc/apt-proxy.conf.5:77
 msgid "Specify B<hostname:port> to use an upstream proxy."
 msgstr ""
 
 # type: TP
-#: doc/apt-proxy.conf.5:70
+#: doc/apt-proxy.conf.5:78
 #, no-wrap
 msgid "B<dynamic_backends>"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:75
+#: doc/apt-proxy.conf.5:83
 msgid ""
-"By default apt-proxy will add HTTP backends dynamicaly if not already "
+"By default apt-proxy will add HTTP backends dynamically if not already "
 "defined. Specify B<off> to restrict the available backends to those listed "
 "in the configuration file.  Default: on"
 msgstr ""
 
 # type: TP
-#: doc/apt-proxy.conf.5:76
+#: doc/apt-proxy.conf.5:84
 #, no-wrap
 msgid "B<disable_pipelining>"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:82
+#: doc/apt-proxy.conf.5:90
 msgid ""
 "apt-proxy can use HTTP pipelining to fetch several files at once (up to 10), "
 "but this can generate multiple connections to each backend server.  "
@@ -597,70 +733,83 @@
 msgstr ""
 
 # type: SH
-#: doc/apt-proxy.conf.5:84
+#: doc/apt-proxy.conf.5:92
 #, no-wrap
-msgid "BACKENDS"
-msgstr ""
-
-# type: Plain text
-#: doc/apt-proxy.conf.5:87
-msgid ""
-"All other sections will be interpreted as backend names, and the options "
-"specified within are local to the backend."
+msgid "RESOURCES"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:91
+#: doc/apt-proxy.conf.5:95
 msgid ""
-"The supplied apt-proxy\\&.conf will work out of the box, but I suggest you "
-"look for a mirror closer to you\\&.  There are some in the default "
-"apt-proxy\\&.conf and it may be enough just to reorder the lines in the "
-"file\\&."
+"All other sections in the configuration file will be interpreted as resource "
+"names.  The options in the section apply to this resource only."
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:95
+#: doc/apt-proxy.conf.5:99
 msgid "Overrides the global timeout"
 msgstr ""
 
 # type: TP
-#: doc/apt-proxy.conf.5:96
+#: doc/apt-proxy.conf.5:100
 #, no-wrap
-msgid "B<backends = E<lt>protocolE<gt>://E<lt>serverE<gt>/E<lt>directoryE<gt>>"
+msgid ""
+"B<backends = "
+">I<E<lt>protocolE<gt>>B<://>I<E<lt>serverE<gt>>B</>I<E<lt>directoryE<gt>>B< "
+"[...]>"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:99
-msgid "A list of backend URLs\\&."
+#: doc/apt-proxy.conf.5:103
+msgid "A list one or more URLs referring to servers which hold debian packages\\&."
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:101
-msgid "Protocol - internet protocol to use: http, ftp or rsync"
+#: doc/apt-proxy.conf.5:106
+msgid "I<protocol>: internet protocol to use: http, ftp or rsync"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:103
-msgid "Server - hostname of the backend server to contact"
+#: doc/apt-proxy.conf.5:108
+msgid "I<server>: hostname of the backend server to contact"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:105
-msgid "Directory - directory name to prepend requests to for this server"
+#: doc/apt-proxy.conf.5:110
+msgid "I<directory>: directory name to prepend requests to for this server"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:109
+#: doc/apt-proxy.conf.5:114
 msgid "Override the global setting of passive_ftp"
 msgstr ""
 
+# type: SH
+#: doc/apt-proxy.conf.5:115
+#, no-wrap
+msgid "CONFIGURATION EXAMPLES"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:120
+msgid ""
+"To access a resource that's listed under a specific section name, simply "
+"append the section name (without the brackets) to the end of your deb source "
+"line in /etc/apt/sources.list"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:122
+msgid "B<Debian main>"
+msgstr ""
+
 # type: Plain text
-#: doc/apt-proxy.conf.5:113
+#: doc/apt-proxy.conf.5:125
 msgid "This example shows how to give clients access to the main Debian archive:"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:117
+#: doc/apt-proxy.conf.5:129
 #, no-wrap
 msgid ""
 "[debian]\n"
@@ -669,25 +818,25 @@
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:122
-msgid "Using this configuration, the client would use a B<sources.list> entry like:"
+#: doc/apt-proxy.conf.5:134
+msgid "Using this configuration, the client would use a I<sources.list> entry like:"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:125
+#: doc/apt-proxy.conf.5:137
 #, no-wrap
-msgid "    deb http://server:9999/debian/ woody main\n"
+msgid "    deb http://server:9999/debian woody main\n"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:130
+#: doc/apt-proxy.conf.5:142
 msgid ""
 "And so the file request `/debian/woody/main/binary-i386/x11/foo_1-1.deb' "
 "would turn into a backend request of first"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:133
+#: doc/apt-proxy.conf.5:145
 #, no-wrap
 msgid ""
 "    "
@@ -695,12 +844,12 @@
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:136
+#: doc/apt-proxy.conf.5:148
 msgid "and if that failed,"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:139
+#: doc/apt-proxy.conf.5:151
 #, no-wrap
 msgid ""
 "    "
@@ -708,13 +857,12 @@
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:142
-#, no-wrap
-msgid "and the file would be placed in\n"
+#: doc/apt-proxy.conf.5:154
+msgid "and apt-proxy will place the downloaded package in"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:144
+#: doc/apt-proxy.conf.5:156
 #, no-wrap
 msgid ""
 "    "
@@ -722,31 +870,76 @@
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:147
+#: doc/apt-proxy.conf.5:159
+msgid "B<backports.org>"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:161
+msgid "The backports.org website tells you to use this I<sources.list> line:"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:164
+#, no-wrap
+msgid "    deb http://www.backports.org/debian sarge-backports main\n"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:168
+msgid ""
+"You can add this to apt-proxy by creating a new section in "
+"I<apt-proxy\\&.conf>\\&.  In the new section, add a backends entry for the "
+"URL:"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:172
+#, no-wrap
+msgid ""
+"    [backports]\n"
+"    backends = http://www.backports.org/debian\n"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:177
+msgid ""
+"On the clients, replace the URL with one pointing to the apt-proxy resource "
+"name, in the form I<http://hostname:port/backend>. If your apt-proxy "
+"hostname is I<proxy> and it is running on port 9999, you would write:"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:180
 #, no-wrap
+msgid "   deb http://proxy:9999/backports sarge-backports main\n"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:185
 msgid ""
 "For many more examples, see the supplied "
-"/etc/apt-proxy/apt-proxy\\&.conf\\&.\n"
+"/etc/apt-proxy/apt-proxy\\&.conf\\&."
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:158
+#: doc/apt-proxy.conf.5:196
 msgid "B<apt-proxy(8),> B</usr/share/doc/apt-proxy/README,> B<apt-proxy-import(8)>"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:163
+#: doc/apt-proxy.conf.5:201
 msgid "Plenty sure.  Please report."
 msgstr ""
 
 # type: SH
-#: doc/apt-proxy.conf.5:164
+#: doc/apt-proxy.conf.5:202
 #, no-wrap
 msgid "AUTHOR"
 msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:165
+#: doc/apt-proxy.conf.5:203
 msgid ""
 "apt-proxy v2 was written by Manuel Estrada Sainz "
 "E<lt>ranty at debian.orgE<gt>\\&."

Modified: people/halls/rework/doc/po/fr.po
==============================================================================
--- people/halls/rework/doc/po/fr.po	(original)
+++ people/halls/rework/doc/po/fr.po	Thu Aug  3 17:05:49 2006
@@ -1,19 +1,21 @@
-# Translation of fr.po to french
+# translation of fr.po to French
 # Raphaël 'SurcouF' Bordet <surcouf at debianfr.net>, 2004.
 #  <surcouf at gmx.fr>, 2004.
-# 
-# 
+# Sylvain Archenault <sylvain.archenault at laposte.net>, 2005.
+#
+#
 msgid ""
 msgstr ""
 "Project-Id-Version: apt-proxy 1.3.6.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-08-18 11:55-0300\n"
-"PO-Revision-Date: 2005-02-17 01:20+0100\n"
-"Last-Translator: Raphaël 'SurcouF' Bordet <surcouf at debianfr.net>\n"
-"Language-Team: French <debian-l10n-french at lists.debian.org>\n"
+"POT-Creation-Date: 2006-03-29  0:11+0200\n"
+"PO-Revision-Date: 2005-10-18 19:14+0200\n"
+"Last-Translator: Sylvain Archenault <sylvain.archenault at laposte.net>\n"
+"Language-Team: French <French <debian-l10n-french at lists.debian.org>>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.10.2\n"
 
 # type: TH
 #.  Man page copied from apt.conf man page.
@@ -27,7 +29,7 @@
 #: doc/apt-proxy.8:2
 #, no-wrap
 msgid "15 Jul 2005"
-msgstr ""
+msgstr "15 jul 2005"
 
 # type: SH
 #: doc/apt-proxy.8:3
@@ -39,11 +41,11 @@
 #: doc/apt-proxy.8:5
 msgid "apt-proxy - A proxy for saving bandwidth to Debian servers"
 msgstr ""
-"apt\\-proxy \\- Un mandataire pour économiser de la bande passante sur les "
+"apt-proxy - Un mandataire pour économiser de la bande passante sur les "
 "serveurs Debian"
 
 # type: SH
-#: doc/apt-proxy.8:5 doc/apt-proxy-v1tov2.8:4
+#: doc/apt-proxy.8:5 doc/apt-proxy-v1tov2.8:4 doc/apt-proxy-import.8:5
 #, no-wrap
 msgid "SYNOPSIS"
 msgstr "SYNOPSIS"
@@ -51,53 +53,53 @@
 # type: Plain text
 #: doc/apt-proxy.8:8
 msgid "B<apt-proxy> I<[options] [logfile]>"
-msgstr "B<apt\\-proxy> I<[options] [fichier de log]>"
+msgstr "B<apt-proxy> I<[options] [fichier de journal]>"
 
 # type: SH
-#: doc/apt-proxy.8:10 doc/apt-proxy-v1tov2.8:8 doc/apt-proxy.conf.5:6
+#: doc/apt-proxy.8:10 doc/apt-proxy-v1tov2.8:8 doc/apt-proxy-import.8:8
+#: doc/apt-proxy.conf.5:6
 #, no-wrap
 msgid "DESCRIPTION"
 msgstr "DESCRIPTION"
 
 # type: Plain text
 #: doc/apt-proxy.8:15
-#, fuzzy
 msgid ""
 "B<apt-proxy> is a python program designed to be run as an stand alone server "
 "via twistd, and provides a clean, caching, intelligent proxy for B<apt-get>, "
 "which speaks HTTP to apt-get clients, and http, ftp or rsync to the backend "
-"server(s)\\&.  apt-proxy listens by default on port 9999 by default\\&."
+"server(s)\\&.  apt-proxy listens by default on port 9999\\&."
 msgstr ""
-"B<apt\\-proxy> est un logiciel écrit en python, conçu pour tourner de lui-"
+"B<apt-proxy> est un logiciel écrit en python, conçu pour fonctionner de lui-"
 "même via twistd et qui fournit un serveur mandataire (« proxy ») propre, "
-"cachant et intelligent pour B<apt\\-get>.Il communique via HTTP avec les "
-"clients apt\\-get et HTTP ou FTP aux serveurs\\&. Normalement, il est "
-"configuré sur le port TCP 9999, principalement parce que c'est la "
-"configuration par défaut, et que les gens sont paresseux\\&."
+"cachant et intelligent pour B<apt-get>. Il communique via HTTP avec les "
+"clients apt-get et via HTTP, FTP et rsync avec les serveur(s) finaux. apt-"
+"proxy écoute par défaut sur le port 9999."
 
 # type: TP
-#: doc/apt-proxy.8:16
+#: doc/apt-proxy.8:16 doc/apt-proxy-import.8:29
 #, no-wrap
 msgid "B<-h>, B<--help>"
-msgstr ""
+msgstr "B<-h>, B<--help>"
 
 # type: Plain text
 #: doc/apt-proxy.8:19
 msgid "Display usage information\\&."
-msgstr ""
+msgstr "Affiche les informations d'utilisation"
 
 # type: TP
-#: doc/apt-proxy.8:19
+#: doc/apt-proxy.8:19 doc/apt-proxy-import.8:32
 #, no-wrap
 msgid "B<-c>, B<--config-file=>"
-msgstr ""
+msgstr "B<-c>, B<--config-file=>"
 
 # type: Plain text
 #: doc/apt-proxy.8:22
-#, fuzzy
 msgid ""
 "Configuration file.  This defaults to /etc/apt-proxy/apt-proxy-v2\\&.conf"
-msgstr "/etc/apt\\-proxy/apt\\-proxy-v2\\&.conf"
+msgstr ""
+"Fichier de configuration. Le fichier par défaut est /etc/apt-proxy/apt-proxy-"
+"v2.conf."
 
 # type: SH
 #: doc/apt-proxy.8:23
@@ -107,14 +109,13 @@
 
 # type: Plain text
 #: doc/apt-proxy.8:27
-#, fuzzy
 msgid ""
 "Once B<apt-proxy> is configured on a host SERVER, users then edit their "
 "B<sources\\&.list> file to point to the proxy (which uses the http protocol "
 "to serve clients), like so:"
 msgstr ""
-"Une fois qu'B<apt\\-proxy> est configuré, les utilisateurs doivent éditer "
-"leur fichier B<sources\\&.list> pour utiliser le serveur mandataire ou "
+"Une fois qu'B<apt-proxy> est configuré, les utilisateurs doivent éditer leur "
+"fichier B<sources.list> pour utiliser le serveur mandataire ou "
 "« proxy » (qui utilise le protocole HTTP pour servir les clients), comme "
 "suit :"
 
@@ -125,8 +126,8 @@
 "deb http://SERVER:9999/debian stable main contrib non-free\n"
 "deb-src http://SERVER:9999/debian stable main contrib non-free\n"
 msgstr ""
-"deb http://SERVER:9999/main stable main contrib non\\-free\n"
-"deb\\-src http://SERVER:9999/main stable main contrib non\\-free\n"
+"deb http://SERVEUR:9999/debian stable main contrib non-free\n"
+"deb-src http://SERVEUR:9999/debian stable main contrib non-free\n"
 
 # type: Plain text
 #: doc/apt-proxy.8:33
@@ -136,7 +137,6 @@
 
 # type: Plain text
 #: doc/apt-proxy.8:39
-#, fuzzy
 msgid ""
 "What path should be specified after the server name and port number depends "
 "on the configuration of B<apt-proxy> (which can restrict paths and send "
@@ -144,14 +144,12 @@
 "\\&."
 msgstr ""
 "Le chemin devant être spécifié après le nom du serveur et le numéro de port "
-"dépendent de la configuration d'B<apt\\-proxy> (ce qui peut restreindre les "
-"chemins et envoyer des chemins différents à différents serveurs)\\&. Dans "
-"cet exemple, non\\-US/ et helixcode/ récupèrent actuellement des fichiers de "
-"différents serveurs\\&."
+"dépend de la configuration d'B<apt-proxy> (ce qui peut restreindre les "
+"chemins et envoyer des chemins différents à différents serveurs). Voir B< "
+"CONFIGURATION DU SERVEUR>."
 
 # type: Plain text
 #: doc/apt-proxy.8:43
-#, fuzzy
 msgid ""
 "Note that you can also use the nicknames `unstable', `frozen' etc, but "
 "Packages/Sources files may get duplicated, so it is best to use either the "
@@ -159,14 +157,14 @@
 msgstr ""
 "Notez que vous pouvez aussi utiliser les saveurs « unstable », « frozen », "
 "etc., mais les fichiers Packages/Sources seraient dupliqués, aussi il est "
-"conseillé d'utiliser soit le lien symbolique soit le nom de code mais de s'y "
+"conseillé d'utiliser soit le nom symbolique soit le nom de code et de s'y "
 "tenir."
 
 # type: SH
 #: doc/apt-proxy.8:44
 #, no-wrap
 msgid "SERVER CONFIGURATION"
-msgstr "CONFIGURATION DU SERVER"
+msgstr "CONFIGURATION DU SERVEUR"
 
 # type: Plain text
 #: doc/apt-proxy.8:48
@@ -174,8 +172,8 @@
 "See B<apt-proxy.conf>(5)  for details of how to set up apt-proxy to use "
 "backends near to you."
 msgstr ""
-"Voir B<apt\\-proxy.conf>(5) pour les détails sur comment configurer apt-"
-"proxy afin d'utiliser les dorsaux proches de vous."
+"Voir B<apt-proxy.conf>(5) pour les détails sur comment configurer apt-proxy "
+"afin d'utiliser les serveurs proches de vous."
 
 # type: SH
 #: doc/apt-proxy.8:49
@@ -191,26 +189,27 @@
 "from the back end and only doing a single fetch for any file, how ever many "
 "users request it from the proxy."
 msgstr ""
-"B<apt\\-proxy> réduit les besoins en bande passante des miroirs Debian en "
+"B<apt-proxy> réduit les besoins en bande passante des miroirs Debian en "
 "restreignant la fréquence des mises à jour des fichiers Packages, Releases "
-"et Sources depuis le serveur et en téléchargeant une seule fois pour tout "
+"et Sources depuis le serveur et en téléchargeant une seule fois chaque "
 "fichier, sans tenir compte du nombre d'utilisateurs qui en font la requête "
 "au mandataire (« proxy »)."
 
 # type: SH
-#: doc/apt-proxy.8:56 doc/apt-proxy-v1tov2.8:18 doc/apt-proxy.conf.5:148
+#: doc/apt-proxy.8:56 doc/apt-proxy-v1tov2.8:18 doc/apt-proxy-import.8:66
+#: doc/apt-proxy.conf.5:186
 #, no-wrap
 msgid "FILES"
 msgstr "FICHIERS"
 
 # type: Plain text
 #: doc/apt-proxy.8:60
-#, fuzzy
 msgid "/etc/apt-proxy/apt-proxy\\&.conf or /etc/apt-proxy/apt-proxy-v2\\&.conf"
-msgstr "/etc/apt\\-proxy/apt\\-proxy-v2\\&.conf"
+msgstr "/etc/apt-proxy/apt-proxy.conf ou /etc/apt-proxy/apt-proxy-v2.conf"
 
 # type: SH
-#: doc/apt-proxy.8:61 doc/apt-proxy-v1tov2.8:24 doc/apt-proxy.conf.5:152
+#: doc/apt-proxy.8:61 doc/apt-proxy-v1tov2.8:24 doc/apt-proxy-import.8:77
+#: doc/apt-proxy.conf.5:190
 #, no-wrap
 msgid "SEE ALSO"
 msgstr "VOIR AUSSI"
@@ -218,10 +217,10 @@
 # type: Plain text
 #: doc/apt-proxy.8:65
 msgid "B<apt-proxy.conf>(5),B<apt-proxy-import>(8)"
-msgstr "B<apt-proxy.conf>(5),B<apt-proxy-import>(8)"
+msgstr "B<apt-proxy.conf>(5), B<apt-proxy-import>(8)"
 
 # type: SH
-#: doc/apt-proxy.8:68 doc/apt-proxy.conf.5:161
+#: doc/apt-proxy.8:68 doc/apt-proxy-import.8:68 doc/apt-proxy.conf.5:199
 #, no-wrap
 msgid "BUGS"
 msgstr "ANOMALIES"
@@ -233,15 +232,15 @@
 "reduction in bytes transferred for binary packages, and much greater for "
 "source and other packages."
 msgstr ""
-"Les paquets ne sont pas compressés en utilisant l'option \\-\\-rsyncable de "
-"gzip, ce qui octroie une réduction de 30 % pour les paquets binaires, et "
+"Les paquets ne sont pas compressés en utilisant l'option --rsyncable de "
+"gzip, qui octroie une réduction de 30 % pour les paquets binaires, et "
 "beaucoup plus pour les paquets sources et autres."
 
 # type: SH
-#: doc/apt-proxy.8:73 doc/apt-proxy-v1tov2.8:22
+#: doc/apt-proxy.8:73 doc/apt-proxy-v1tov2.8:22 doc/apt-proxy-import.8:75
 #, no-wrap
 msgid "AUTHORS"
-msgstr "AUTEUR"
+msgstr "AUTEURS"
 
 # type: Plain text
 #: doc/apt-proxy.8:75
@@ -249,7 +248,7 @@
 "apt-proxy v2 was written by Manuel Estrada Sainz and is maintained by Otavio "
 "Salvador and Chris Halls."
 msgstr ""
-"apt-proxy·v2 a été écrit par Manuel Estrada Sainz et est maintenu par Chris "
+"apt-proxy v2 a été écrit par Manuel Estrada Sainz et est maintenu par Chris "
 "Halls."
 
 # type: TH
@@ -262,22 +261,24 @@
 #: doc/apt-proxy-v1tov2.8:1
 #, no-wrap
 msgid "November 2002"
-msgstr "Novembre 2002"
+msgstr "novembre 2002"
 
 # type: TH
-#: doc/apt-proxy-v1tov2.8:1
+#.  DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
+#: doc/apt-proxy-v1tov2.8:1 doc/apt-proxy-import.8:2
 #, no-wrap
 msgid "Debian GNU/Linux"
 msgstr "Debian GNU/Linux"
 
 # type: TH
-#: doc/apt-proxy-v1tov2.8:1
-#, no-wrap
-msgid " "
-msgstr "."
+#.  DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
+#: doc/apt-proxy-v1tov2.8:1 doc/apt-proxy-import.8:2
+#, fuzzy, no-wrap
+msgid "  "
+msgstr " "
 
 # type: SH
-#: doc/apt-proxy-v1tov2.8:2 doc/apt-proxy.conf.5:3
+#: doc/apt-proxy-v1tov2.8:2 doc/apt-proxy-import.8:3 doc/apt-proxy.conf.5:3
 #, no-wrap
 msgid "NAME"
 msgstr "NOM"
@@ -286,13 +287,13 @@
 #: doc/apt-proxy-v1tov2.8:4
 msgid "apt-proxy-v1tov2 - Updates apt-proxy configuration to the new format."
 msgstr ""
-"apt-proxy-v1tov2·-·Convertit la configuration d'apt-proxy vers le nouveau "
+"apt-proxy-v1tov2 - Convertit la configuration d'apt-proxy vers le nouveau "
 "format."
 
 # type: Plain text
 #: doc/apt-proxy-v1tov2.8:7
 msgid "B<apt-proxy-v1tov2> [v1_conf [v2_sample_conf]] E<gt> v2_conf"
-msgstr "B<apt-proxy-v1tov2>·[v1_conf·[v2_sample_conf]]·E<gt>·v2_conf"
+msgstr "B<apt-proxy-v1tov2> [v1_conf [v2_exemple_conf]] E<gt> v2_conf"
 
 # type: Plain text
 #: doc/apt-proxy-v1tov2.8:11
@@ -300,8 +301,8 @@
 "apt-proxy-v1tov2 tries to update I<v2_sample_conf> with the configuration "
 "found in I<v1_conf> and writes the result to I<stdout>."
 msgstr ""
-"apt-proxy-v1tov2 tente de convertir I<v2_sample_conf> avec la configuration "
-"trouvée dans le fichier I<v1_conf> et écrira le résultat vers I<stdout>."
+"apt-proxy-v1tov2 tente de convertir I<v2_exemple_conf> avec la configuration "
+"trouvée dans le fichier I<v1_conf> et écrira le résultat sur I<stdout>."
 
 # type: Plain text
 #: doc/apt-proxy-v1tov2.8:14
@@ -310,7 +311,7 @@
 "etc/apt-proxy/apt-proxy-v2.conf for I<v2_sample_conf>."
 msgstr ""
 "Par défaut, il utilisera /etc/apt-proxy/apt-proxy.conf pour I<v1_conf> et /"
-"etc/apt-proxy/apt-proxy-v2.conf pour I<v2_sample_conf>."
+"etc/apt-proxy/apt-proxy-v2.conf pour I<v2_example_conf>."
 
 # type: SH
 #: doc/apt-proxy-v1tov2.8:15
@@ -326,96 +327,217 @@
 "fait pour vous."
 
 # type: Plain text
-#: doc/apt-proxy-v1tov2.8:20 doc/apt-proxy.conf.5:150
+#: doc/apt-proxy-v1tov2.8:20 doc/apt-proxy.conf.5:188
 msgid "/etc/apt-proxy/apt-proxy\\&.conf"
-msgstr "/etc/apt\\-proxy/apt\\-proxy\\&.conf"
+msgstr "/etc/apt-proxy/apt-proxy.conf"
 
 # type: Plain text
-#: doc/apt-proxy-v1tov2.8:22 doc/apt-proxy.conf.5:152
+#: doc/apt-proxy-v1tov2.8:22 doc/apt-proxy.conf.5:190
 msgid "/etc/apt-proxy/apt-proxy-v2\\&.conf"
-msgstr "/etc/apt\\-proxy/apt\\-proxy-v2\\&.conf"
+msgstr "/etc/apt-proxy/apt-proxy-v2.conf"
 
 # type: Plain text
 #: doc/apt-proxy-v1tov2.8:24
 msgid "Manuel Estrada Sainz E<lt>ranty at debian.orgE<gt>"
-msgstr "Manuel·Estrada·Sainz·E<lt>ranty at debian.orgE<gt>"
+msgstr "Manuel Estrada Sainz E<lt>ranty at debian.orgE<gt>"
 
 # type: Plain text
-#: doc/apt-proxy-v1tov2.8:29 doc/apt-proxy-import.8.inc:42
+#: doc/apt-proxy-v1tov2.8:29 doc/apt-proxy-import.8:82
 msgid "B<apt-proxy>(8), B<apt-proxy.conf>(5)"
-msgstr "B<ap\\-proxy>(8), B<apt\\-proxy\\&.conf>(5)"
+msgstr "B<apt-proxy>(8), B<apt-proxy.conf>(5)"
+
+# type: TH
+#.  DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
+#: doc/apt-proxy-import.8:2
+#, no-wrap
+msgid "APT-PROXY-IMPORT"
+msgstr "APT-PROXY-IMPORT"
+
+# type: TH
+#.  DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
+#: doc/apt-proxy-import.8:2
+#, no-wrap
+msgid "March 2006"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:5
+msgid "apt-proxy-import - Import packages into the apt-proxy cache."
+msgstr "apt-proxy-import - Importe les paquets dans le cache d'apt-proxy."
+
+# type: Plain text
+#: doc/apt-proxy-import.8:8
+msgid "B<apt-proxy-import> [I<options>] I<E<lt>filenameE<gt> >..."
+msgstr "B<apt-proxy-import> [I<options>] I<E<lt>[fichier de journalL<gt> >..."
+
+# type: Plain text
+#: doc/apt-proxy-import.8:11
+msgid ""
+"WARNING: apt-proxy has not been tested under this version of twisted "
+"(2.2.0).  WARNING: although it should work without problem."
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy-import.8:13
+msgid "apt-proxy-import B<-r> [options] E<lt>directoryE<gt> ..."
+msgstr "apt-proxy-import B<-r> [options] E<lt>directoryE<gt> ..."
+
+# type: SH
+#: doc/apt-proxy-import.8:13
+#, no-wrap
+msgid "OPTIONS"
+msgstr "OPTIONS"
+
+# type: TP
+#: doc/apt-proxy-import.8:14
+#, no-wrap
+msgid "B<-V>, B<--version>"
+msgstr "B<-V>, B<--version>"
+
+# type: Plain text
+#: doc/apt-proxy-import.8:17
+msgid "print version and quit"
+msgstr "Affiche la version"
+
+# type: TP
+#: doc/apt-proxy-import.8:17
+#, no-wrap
+msgid "B<-v>, B<--verbose>"
+msgstr "B<-v>, B<--verbose>"
+
+# type: Plain text
+#: doc/apt-proxy-import.8:20
+msgid "give verbose output"
+msgstr "Sortie verbeuse"
+
+# type: TP
+#: doc/apt-proxy-import.8:20
+#, no-wrap
+msgid "B<-d>, B<--debug>"
+msgstr "B<-d>, B<--debug>"
 
 # type: Plain text
-#.  Man page was originaly copied from apt-proxy man page.
-#: doc/apt-proxy-import.8.inc:4
-msgid "[NAME] apt-proxy-import - Import packages into the apt-proxy cache."
+#: doc/apt-proxy-import.8:23
+msgid "debug output"
+msgstr "Sortie debug"
+
+# type: TP
+#: doc/apt-proxy-import.8:23
+#, no-wrap
+msgid "B<-q>, B<--quiet>"
+msgstr "B<-q>, B<--quiet>"
+
+# type: Plain text
+#: doc/apt-proxy-import.8:26
+msgid "try not to write messages to stdout"
+msgstr "N'essaye pas d'écrire des messages dans stdout"
+
+# type: TP
+#: doc/apt-proxy-import.8:26
+#, no-wrap
+msgid "B<-r>, B<--recursive>"
+msgstr "B<-r>, B<--recursive>"
+
+# type: Plain text
+#: doc/apt-proxy-import.8:29
+msgid "recurse into subdirectories"
+msgstr "Récursif dans les sous répertoires"
+
+# type: Plain text
+#: doc/apt-proxy-import.8:32
+msgid "Display this help and exit."
+msgstr "Affiche cette aide."
+
+# type: Plain text
+#: doc/apt-proxy-import.8:35
+msgid "Configuration file"
+msgstr "Fichier de configuration"
+
+# type: Plain text
+#: doc/apt-proxy-import.8:37
+msgid "apt-proxy-import imports .deb files into the apt-proxy cache."
+msgstr " apt-proxy-import - Importe les paquets dans le cache d'apt-proxy."
+
+# type: Plain text
+#: doc/apt-proxy-import.8:41
+msgid ""
+"It uses the package lists to determine where each file should be placed, so "
+"you should run B<'apt-get update'> to allow apt-proxy to update the package "
+"lists before running apt-proxy-import."
 msgstr ""
-"[NOM] apt-proxy-import - Importe les paquets dans le cache d'apt-proxy."
+"Il utilise la liste de paquets pour déterminer où sera placé chaque fichier, "
+"aussi vous devriez lancer la commande B<'apt-get update'> pour permettre à "
+"apt-proxy de mettre à jour la liste de paquets avant de lancer apt-proxy-"
+"import."
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:9
+#: doc/apt-proxy-import.8:44
 msgid ""
-"/apt-proxy-import imports / It uses the package lists to determine where "
-"each file should be placed, so you should run B<'apt-get update'> to allow "
-"apt-proxy to update the package lists before running apt-proxy-import."
+"WARNING: although it should work without problem.  apt-proxy-import 1.9.x"
 msgstr ""
-"/apt-proxy-import / Il utilise la liste de paquets pour déterminer où sera "
-"placé chaque fichier, aussi vous devriez lancer la commande B<'apt-get "
-"update'> pour permettre à apt-proxy de mettre à jour la liste de paquets "
-"avant de lancer apt-proxy-import."
+
+# type: SH
+#: doc/apt-proxy-import.8:44
+#, no-wrap
+msgid "USING TO BOOTSTRAP A NEW APT-PROXY CACHE"
+msgstr "À UTILISER POUR REMPLIR UN NOUVEAU CACHE POUR APT-PROXY"
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:14
+#: doc/apt-proxy-import.8:48
 msgid ""
-"[USING TO BOOTSTRAP A NEW APT-PROXY CACHE] If you have been using apt "
-"standalone, you probably have built up a large collection of .debs or .udebs "
-"in apt's cache directory.  You can import these files into apt-proxy as "
-"follows:"
+"If you have been using apt standalone, you probably have built up a large "
+"collection of .debs or .udebs in apt's cache directory.  You can import "
+"these files into apt-proxy as follows:"
 msgstr ""
-"[À UTILISER POUR REMPLIR UN NOUVEAU CACHE POUR APT-PROXY] Si vous aviez déjà "
-"utilisé apt, vous avez probablement créé une importante collection de "
-"fichiers .deb ou .udeb dans le répertoire cache d'apt. Vous pouvez importer "
-"ces fichiers dans apt-proxy comme suit:"
+"Si vous aviez déjà utilisé apt, vous avez probablement créé une importante "
+"collection de fichiers .deb ou .udeb dans le répertoire cache d'apt. Vous "
+"pouvez importer ces fichiers dans apt-proxy comme suit :"
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:16
+#: doc/apt-proxy-import.8:50
 msgid "1. Update apt-proxy's filelists:"
-msgstr "1. Mettre à jour la liste de fichiers d'apt-proxy:"
+msgstr "1. Mettre à jour la liste de fichiers d'apt-proxy :"
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:18
+#: doc/apt-proxy-import.8:52
 #, no-wrap
 msgid "    apt-get update\n"
 msgstr "    apt-get update\n"
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:21
+#: doc/apt-proxy-import.8:55
 msgid "2. Import files from apt's cache:"
-msgstr "2. Importer des fichiers depuis le cache d'apt:"
+msgstr "2. Importer des fichiers depuis le cache d'apt :"
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:23
+#: doc/apt-proxy-import.8:57
 #, no-wrap
 msgid "    apt-proxy-import -i /var/cache/apt/archives\n"
 msgstr "    apt-proxy-import -i /var/cache/apt/archives\n"
 
+# type: SH
+#: doc/apt-proxy-import.8:58
+#, no-wrap
+msgid "IMPORTING APT-MOVE CACHE"
+msgstr "IMPORTER LE CACHE D'APT-MOVE"
+
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:27
+#: doc/apt-proxy-import.8:60
 msgid ""
-"[IMPORTING APT-MOVE CACHE] You can import the apt-move generated cache into "
-"apt-proxy using the following command:"
+"You can import the apt-move generated cache into apt-proxy using the "
+"following command:"
 msgstr ""
-"[IMPORTER LE CACHE D'APT-MOVE] Vous pouvez importer le cache généré par apt-"
-"move dans apt-proxy en utilisant la commande suivante:"
+"Vous pouvez importer le cache généré par apt-move dans apt-proxy en "
+"utilisant la commande suivante :"
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:30
+#: doc/apt-proxy-import.8:63
 #, no-wrap
 msgid "    apt-proxy-import -r -i /var/cache/apt-move\n"
 msgstr "    apt-proxy-import -r -i /var/cache/apt-move\n"
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:33
+#: doc/apt-proxy-import.8:66
 msgid ""
 "This tells apt-proxy-import to recuse over each directory in the apt-move "
 "cache."
@@ -424,44 +546,36 @@
 "dans le cache d'apt-move."
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:36
-#, fuzzy
-msgid "[FILES] \\ /etc/apt-proxy/apt-proxy\\&.conf"
-msgstr "[FICHIERS] /etc/apt\\-proxy/apt\\-proxy\\&.conf"
-
-# type: SH
-#: doc/apt-proxy-import.8.inc:38
-msgid "[SEE ALSO]"
-msgstr "VOIR AUSSI"
+#: doc/apt-proxy-import.8:68
+msgid "\\ /etc/apt-proxy/apt-proxy\\&.conf"
+msgstr "\\ /etc/apt-proxy/apt-proxy.conf"
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:48
+#: doc/apt-proxy-import.8:71
 msgid ""
-"[BUGS] apt-proxy-import does not use I<max_age> or I<max_versions> to clean "
-"the cache directory on import."
+"apt-proxy-import does not use I<max_age> or I<max_versions> to clean the "
+"cache directory on import."
 msgstr ""
-"[BOGUES] apt-proxy-import n'utilise pas les options I<max_age> ou "
-"I<max_versions> pour purger le répertoire cache pendant l'import."
+"apt-proxy-import n'utilise pas les options I<max_age> ou I<max_versions> "
+"pour purger le répertoire cache pendant l'import."
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:50
+#: doc/apt-proxy-import.8:73
 msgid "It does not yet import source.tar.gz or Packages files."
 msgstr "Il n'importe pas encore les fichiers source.tar.gz ou Packages."
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:52
+#: doc/apt-proxy-import.8:75
 msgid "You must run it as the apt-proxy user or as root."
-msgstr ""
-"Vous devez le lancer en tant que l'utilisateur d'apt-proxy ou en tant que "
-"root."
+msgstr "Vous devez le lancer en tant qu'utilisateur apt-proxy ou root."
 
 # type: Plain text
-#: doc/apt-proxy-import.8.inc:54
+#: doc/apt-proxy-import.8:77
 msgid ""
-"[AUTHORS] Chris Halls E<lt>halls at debian.orgE<gt>, Manuel Estrada Sainz "
+"Chris Halls E<lt>halls at debian.orgE<gt>, Manuel Estrada Sainz "
 "E<lt>ranty at debian.orgE<gt>"
 msgstr ""
-"[AUTEURS] Chris Halls E<lt>halls at debian.orgE<gt>, Manuel Estrada Sainz "
+"Chris Halls E<lt>halls at debian.orgE<gt>, Manuel Estrada Sainz "
 "E<lt>ranty at debian.orgE<gt>"
 
 # type: TH
@@ -469,157 +583,184 @@
 #: doc/apt-proxy.conf.5:2
 #, no-wrap
 msgid "apt-proxy\\&.conf"
-msgstr "apt\\-proxy\\&.conf"
+msgstr "apt-proxy.conf"
 
 # type: TH
 #.  Man page copied from apt.conf man page.
 #: doc/apt-proxy.conf.5:2
-#, no-wrap
-msgid "21 Nov 2002"
-msgstr "21 Novembre 2002"
+#, fuzzy, no-wrap
+msgid "5 Jan 2006"
+msgstr "15 jul 2005"
 
 # type: Plain text
 #: doc/apt-proxy.conf.5:5
 msgid "apt-proxy\\&.conf - configuration file for apt-proxy"
-msgstr "apt-proxy\\&.conf - fichier de configuration pour apt-proxy"
+msgstr "apt-proxy.conf - fichier de configuration pour apt-proxy"
 
 # type: Plain text
 #: doc/apt-proxy.conf.5:9
+#, fuzzy
 msgid ""
 "B<apt-proxy\\&.conf> is the configuration file for apt-proxy.  When apt-"
-"proxy starts up, it will read B</etc/apt-proxy/apt-proxy\\&.conf>\\&."
+"proxy starts up, it will read I</etc/apt-proxy/apt-proxy\\&.conf>\\&."
 msgstr ""
-"B<apt-proxy\\&.conf>·est le fichier de configuration pour apt-proxy.  Au "
-"démarrage d'apt-proxy, il lira le fichier B</etc/apt-proxy/apt-proxy\\&.conf>"
-"\\&."
+"B<apt-proxy.conf> est le fichier de configuration pour apt-proxy. Au "
+"démarrage d'apt-proxy, il lira le fichier B</etc/apt-proxy/apt-proxy.conf>."
 
 # type: Plain text
 #: doc/apt-proxy.conf.5:12
+#, fuzzy
 msgid ""
-"B</etc/apt-proxy/apt-proxy-v2\\&.conf> will be read instead if it exists to "
+"I</etc/apt-proxy/apt-proxy-v2\\&.conf> will be read instead if it exists to "
 "make upgrading from v1 easier."
 msgstr ""
-"B</etc/apt-proxy/apt-proxy-v2\\&.conf> sera lu à la place s'il existe afin "
-"de rendre la mise à jour depuis la v1 mieux transparente."
+"B</etc/apt-proxy/apt-proxy-v2.conf> sera lu à la place s'il existe afin de "
+"rendre la mise à jour depuis la version 1 plus transparente."
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:15
+msgid ""
+"The configuration file is divided up into several sections, where each I<"
+"[resource]> section defines a separate resource. The B<DEFAULT> section "
+"applies to all resources."
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:19
+#, fuzzy
+msgid ""
+"The supplied I<apt-proxy\\&.conf> will work out of the box, but it is best "
+"to change the backends you use to a mirror closer to you.  There are some in "
+"the default file, and it may be enough just to reorder the lines in the file"
+"\\&."
+msgstr ""
+"Le fichier apt-proxy.conf fourni devrait fonctionner tel quel, mais il est "
+"suggéré de choisir un miroir plus proche de vous. Certains sont dans le "
+"fichier apt-proxy.conf par défaut et il devrait suffire de réordonner les "
+"lignes dans ce fichier."
 
 # type: SH
-#: doc/apt-proxy.conf.5:13
+#: doc/apt-proxy.conf.5:21
 #, no-wrap
 msgid "[DEFAULT]"
 msgstr "[DÉFAUT]"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:15
+#: doc/apt-proxy.conf.5:23
 msgid "This section holds options global to the whole apt-proxy:"
-msgstr "Cette section contient les options globles à tout apt-proxy:"
+msgstr "Cette section contient les options globales d'apt-proxy :"
 
 # type: TP
-#: doc/apt-proxy.conf.5:16
+#: doc/apt-proxy.conf.5:24
 #, no-wrap
 msgid "B<address>"
 msgstr "B<address>"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:20
+#: doc/apt-proxy.conf.5:28
 msgid ""
 "IP address on which apt-proxy will listen for requests. Multiple addresses "
 "have a empty space between it."
 msgstr ""
-"L'adresse IP sur laquelle apt-proxy sera à l'écoute des requêtes. Pour "
-"plusieurs adresses il faut avoir un espace entre elles."
+"L'adresse IP sur laquelle apt-proxy sera à l'écoute des requêtes. S'il y a "
+"plusieurs adresses, les séparer par un espace."
 
 # type: TP
-#: doc/apt-proxy.conf.5:21
+#: doc/apt-proxy.conf.5:29
 #, no-wrap
 msgid "B<port>"
 msgstr "B<port>"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:24
+#: doc/apt-proxy.conf.5:32
 msgid "TCP port on which apt-proxy will listen for requests."
 msgstr "Le port TCP sur lequel apt-proxy sera à l'écoute des requêtes."
 
 # type: TP
-#: doc/apt-proxy.conf.5:25
+#: doc/apt-proxy.conf.5:33
 #, no-wrap
 msgid "B<min_refresh_delay>"
 msgstr "B<min_refresh_delay>"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:30
+#: doc/apt-proxy.conf.5:38
 msgid ""
 "If different from B<off>, means that Packages and other control files will "
 "not be refreshed more frequently than this number of seconds\\&."
 msgstr ""
-"Si différent de B<off>, il signifie que les fichiers Packages et autres "
-"control ne seront pas rafraîchis plus fréquemment que ce nombre de secondes"
-"\\&."
+"Si différent de B<off>, cela signifie que les fichiers Packages et les "
+"autres fichiers de contrôle ne seront pas rafraîchis plus fréquemment que ce "
+"nombre de secondes."
 
 # type: TP
-#: doc/apt-proxy.conf.5:31 doc/apt-proxy.conf.5:92
+#: doc/apt-proxy.conf.5:39 doc/apt-proxy.conf.5:96
 #, no-wrap
 msgid "B<timeout>"
 msgstr "B<timeout>"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:36
+#: doc/apt-proxy.conf.5:44
 msgid ""
 "Maximum I/O timeout in seconds for backend transfers. Default: 30 seconds.  "
 "If no response is received from a backend server in this time, apt-proxy "
 "will try the next server in the list.  Y"
 msgstr ""
+"Délai d'I/O dépassé pour les transferts. Défaut : 30 secondes. Si aucune "
+"réponse n'est reçue du serveur dans ce laps de temps, apt-proxy essaiera le "
+"serveur suivant de la liste."
 
 # type: TP
-#: doc/apt-proxy.conf.5:37
+#: doc/apt-proxy.conf.5:45
 #, no-wrap
 msgid "B<cache_dir>"
 msgstr "B<cache_dir>"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:40
+#: doc/apt-proxy.conf.5:48
 msgid "Cache directory.  Default: /var/cache/apt-proxy"
-msgstr "Répertoire de cache:  Défaut: /var/cache/apt-proxy"
+msgstr "Répertoire de cache. Défaut : /var/cache/apt-proxy"
 
 # type: TP
-#: doc/apt-proxy.conf.5:41
+#: doc/apt-proxy.conf.5:49
 #, no-wrap
 msgid "B<cleanup_freq>"
 msgstr "B<cleanup_freq>"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:46
+#: doc/apt-proxy.conf.5:54
 msgid ""
 "If different from B<off>, indicates the time between housekeeping attempts: "
 "delete files that have not been accessed in max_age, scan cache directories "
 "and update internal tables, ..."
 msgstr ""
-"Si différent de B<off>, il indique la période entre les tentatives de "
-"nettoyage: les fichiers effacés qui n'ont pas été accédés depuis max_age, "
-"les scan de répertoires de cache et les mises à jour des tables internes, ..."
+"Si différent de B<off>, cela indique la période entre les tentatives de "
+"nettoyage : suppression des fichiers qui n'ont pas été accédés depuis "
+"max_age, analyse des répertoires de cache, mise à jour des tables "
+"internes, ..."
 
 # type: TP
-#: doc/apt-proxy.conf.5:47
+#: doc/apt-proxy.conf.5:55
 #, no-wrap
 msgid "B<max_age>"
 msgstr "B<max_age>"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:51
+#: doc/apt-proxy.conf.5:59
 msgid ""
 "If different from B<off>, indicates the maximum age of files before deletion "
 "from the cache."
 msgstr ""
-"Si différent de B<off>, il indique l'âge maximal des fichiers avant "
+"Si différent de B<off>, cela indique l'âge maximal des fichiers avant leur "
 "effacement du cache."
 
 # type: TP
-#: doc/apt-proxy.conf.5:52
+#: doc/apt-proxy.conf.5:60
 #, no-wrap
 msgid "B<max_versions>"
 msgstr "B<max_versions>"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:59
+#: doc/apt-proxy.conf.5:67
 msgid ""
 "If different from B<off>, indicates the maximum number of versions of a \\&."
 "deb to keep.  This is the number of versions per distribution, for example "
@@ -627,66 +768,65 @@
 "kept: the last 2 stable versions, the last 2 testing versions and the last 2 "
 "unstable versions."
 msgstr ""
-"Si différent de B<off>, il indique le nombre maximum de version d'un "
-"\\&paquet debian à conserver.  Il y a un nombre de versions par "
-"distribution, par exemple mettre max_versions à 2 assurera qu'un maximum de "
-"6 paquets sera conservé: les deux dernières versions de stable, les deux "
-"dernières versions de testing et les deux dernières versions d'unstable."
+"Si différent de B<off>, cela indique le nombre maximum de version d'un "
+"paquet Debian à conserver. Il s'agit du nombre de versions par distribution. "
+"Par exemple, mettre max_versions à 2 assurera qu'un maximum de 6 paquets "
+"sera conservé : les deux dernières versions de stable, les deux dernières "
+"versions de testing et les deux dernières versions d'unstable."
 
 # type: TP
-#: doc/apt-proxy.conf.5:60 doc/apt-proxy.conf.5:106
+#: doc/apt-proxy.conf.5:68 doc/apt-proxy.conf.5:111
 #, no-wrap
 msgid "B<passive_ftp>"
 msgstr "B<passive_ftp>"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:65
+#: doc/apt-proxy.conf.5:73
 msgid ""
 "Specify B<on> to use passive FTP, which works from behind a firewall, but "
 "may not be supported on all servers.  Specify B<off> to use active FTP "
 "instead.  Default: on"
 msgstr ""
 "Spécifiez B<on> pour utiliser le FTP passif, qui fonctionne à travers un "
-"firewall, mais n'est pas supporté sur tous les serveurs.  Spécifiez B<off> "
-"pour utiliser le FTP actif à la place.  Défaut; on"
+"pare-feu, mais n'est pas géré sur tous les serveurs. Spécifiez B<off> pour "
+"utiliser le FTP actif à la place. Défaut : on"
 
 # type: TP
-#: doc/apt-proxy.conf.5:66
+#: doc/apt-proxy.conf.5:74
 #, no-wrap
 msgid "B<http_proxy>"
 msgstr "B<http_proxy>"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:69
+#: doc/apt-proxy.conf.5:77
 msgid "Specify B<hostname:port> to use an upstream proxy."
-msgstr ""
-"Spécifiez B<nom d'hôte:numéro de port> pour utiliser un proxy en amont."
+msgstr "Indiquez B<nom d'hôte:port> pour utiliser un proxy amont."
 
 # type: TP
-#: doc/apt-proxy.conf.5:70
+#: doc/apt-proxy.conf.5:78
 #, no-wrap
 msgid "B<dynamic_backends>"
 msgstr "B<dynamic_backends>"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:75
+#: doc/apt-proxy.conf.5:83
 msgid ""
-"By default apt-proxy will add HTTP backends dynamicaly if not already "
+"By default apt-proxy will add HTTP backends dynamically if not already "
 "defined. Specify B<off> to restrict the available backends to those listed "
 "in the configuration file.  Default: on"
 msgstr ""
 "Par défaut, apt-proxy ajoutera les dorsaux HTTP dynamiquement s'ils ne sont "
 "pas déjà définis. Mettre à B<off> pour restreindre les dorsaux disponibles à "
-"ceux listés dans le fichier de configuration.  Défaut: on"
+"ceux listés dans le fichier de configuration. Défaut : on"
 
 # type: TP
-#: doc/apt-proxy.conf.5:76
+#: doc/apt-proxy.conf.5:84
 #, no-wrap
 msgid "B<disable_pipelining>"
 msgstr "B<disable_pipelining>"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:82
+#: doc/apt-proxy.conf.5:90
 msgid ""
 "apt-proxy can use HTTP pipelining to fetch several files at once (up to 10), "
 "but this can generate multiple connections to each backend server.  "
@@ -695,85 +835,97 @@
 msgstr ""
 "apt-proxy peut utiliser la canalisation HTTP pour récupérer plusieurs "
 "fichiers en une fois (jusqu'à 10), mais ceci génère de multiples connexions "
-"sur chaque dorsaux.  La canalisation est désactivée par défaut jusqu'à ce "
-"qu'elle soit fixée.  Mettre à B<0> pour activer la canalisation "
-"expérimentale HTTP.  Défaut: 1"
+"sur chaque dorsal. La canalisation est désactivée par défaut jusqu'à ce que "
+"ce problème soit corrigé. Mettre à B<0> pour activer la canalisation "
+"expérimentale HTTP. Défaut : 1"
 
 # type: SH
-#: doc/apt-proxy.conf.5:84
+#: doc/apt-proxy.conf.5:92
 #, no-wrap
-msgid "BACKENDS"
-msgstr "DORSAUX"
-
-# type: Plain text
-#: doc/apt-proxy.conf.5:87
-msgid ""
-"All other sections will be interpreted as backend names, and the options "
-"specified within are local to the backend."
+msgid "RESOURCES"
 msgstr ""
-"Toutes les autres sections devront être interprétées comme des noms de "
-"miroirs, et les options spécifiées avec seront locales à ce miroir."
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:91
+#: doc/apt-proxy.conf.5:95
+#, fuzzy
 msgid ""
-"The supplied apt-proxy\\&.conf will work out of the box, but I suggest you "
-"look for a mirror closer to you\\&.  There are some in the default apt-proxy"
-"\\&.conf and it may be enough just to reorder the lines in the file\\&."
+"All other sections in the configuration file will be interpreted as resource "
+"names.  The options in the section apply to this resource only."
 msgstr ""
-"Le fichier apt-proxy\\&.conf fourni devrait fonctionner tel quel, mais je "
-"vous suggère de choisir un miroir plus proche de vous\\&.  Nombreux sont "
-"dans le fichier apt-proxy.conf par défaut et il devrait être suffisant de ré-"
-"ordonner les lignes dans ce fichier\\&."
+"Toutes les autres sections devront être interprétées comme des noms de "
+"miroir, et les options qui y seront spécifiées seront spécifiques à ce "
+"miroir."
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:95
+#: doc/apt-proxy.conf.5:99
 msgid "Overrides the global timeout"
-msgstr "Surcharger le temps de réponse global"
+msgstr "Supplanter le temps global d'expiration"
 
 # type: TP
-#: doc/apt-proxy.conf.5:96
-#, no-wrap
-msgid "B<backends = E<lt>protocolE<gt>://E<lt>serverE<gt>/E<lt>directoryE<gt>>"
+#: doc/apt-proxy.conf.5:100
+#, fuzzy, no-wrap
+msgid "B<backends = >I<E<lt>protocolE<gt>>B<://>I<E<lt>serverE<gt>>B</>I<E<lt>directoryE<gt>>B< [...]>"
 msgstr "B<miroirs = E<lt>protocoleE<gt>://E<lt>serveurE<gt>/E<lt>répertoireE<gt>>"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:99
-msgid "A list of backend URLs\\&."
-msgstr "Une liste d'URLs de dorsaux\\&."
+#: doc/apt-proxy.conf.5:103
+msgid ""
+"A list one or more URLs referring to servers which hold debian packages\\&."
+msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:101
-msgid "Protocol - internet protocol to use: http, ftp or rsync"
-msgstr "Protocole - protocole à utiliser: http, ftp ou rsync"
+#: doc/apt-proxy.conf.5:106
+#, fuzzy
+msgid "I<protocol>: internet protocol to use: http, ftp or rsync"
+msgstr "Protocole - protocole à utiliser : http, ftp ou rsync"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:103
-msgid "Server - hostname of the backend server to contact"
-msgstr "Serveur - nom d'hote du miroir à contacter"
+#: doc/apt-proxy.conf.5:108
+#, fuzzy
+msgid "I<server>: hostname of the backend server to contact"
+msgstr "Serveur - nom d'hôte du miroir à contacter"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:105
-msgid "Directory - directory name to prepend requests to for this server"
-msgstr ""
-"Répertoire - nom du répertoire où ajouter des demandes au début pour ce "
-"serveur"
+#: doc/apt-proxy.conf.5:110
+#, fuzzy
+msgid "I<directory>: directory name to prepend requests to for this server"
+msgstr "Répertoire - nom du répertoire où ajouter des demandes pour ce serveur"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:109
+#: doc/apt-proxy.conf.5:114
 msgid "Override the global setting of passive_ftp"
-msgstr "Surcharger la directive globale de passive_ftp"
+msgstr "Supplanter la configuration globale de passive_ftp"
+
+# type: SH
+#: doc/apt-proxy.conf.5:115
+#, fuzzy, no-wrap
+msgid "CONFIGURATION EXAMPLES"
+msgstr "CONFIGURATION DU CLIENT"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:113
+#: doc/apt-proxy.conf.5:120
+msgid ""
+"To access a resource that's listed under a specific section name, simply "
+"append the section name (without the brackets) to the end of your deb source "
+"line in /etc/apt/sources.list"
+msgstr ""
+
+# type: TH
+#: doc/apt-proxy.conf.5:122
+#, fuzzy
+msgid "B<Debian main>"
+msgstr "Debian GNU/Linux"
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:125
 msgid ""
 "This example shows how to give clients access to the main Debian archive:"
 msgstr ""
-"Cet exemple montre comment donner aux clients accès à l'archive debian "
-"principale:"
+"Cet exemple montre comment donner aux clients l'accès à l'archive Debian "
+"principale :"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:117
+#: doc/apt-proxy.conf.5:129
 #, no-wrap
 msgid ""
 "[debian]\n"
@@ -781,138 +933,157 @@
 "           http://ftp.de.debian.org/debian/\n"
 msgstr ""
 "[debian]\n"
-"backends·=·http://ftp.us.debian.org/debian/\n"
-"           http://ftp.de.debian.org/debian/\n"
+"backends = http://ftp.us.debian.org/debian/\n"
+"            http://ftp.fr.debian.org/debian/\n"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:122
+#: doc/apt-proxy.conf.5:134
+#, fuzzy
 msgid ""
-"Using this configuration, the client would use a B<sources.list> entry like:"
+"Using this configuration, the client would use a I<sources.list> entry like:"
 msgstr ""
 "En utilisant cette configuration, le client utilisera une entrée B<sources."
-"list> comme ceci:"
+"list> comme ceci :"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:125
-#, no-wrap
-msgid "    deb http://server:9999/debian/ woody main\n"
-msgstr "    deb http://SERVER:9999/debian/ woody main\n"
+#: doc/apt-proxy.conf.5:137
+#, fuzzy, no-wrap
+msgid "    deb http://server:9999/debian woody main\n"
+msgstr "    deb http://SERVEUR:9999/debian/ woody main\n"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:130
-#, fuzzy
+#: doc/apt-proxy.conf.5:142
 msgid ""
 "And so the file request `/debian/woody/main/binary-i386/x11/foo_1-1.deb' "
 "would turn into a backend request of first"
 msgstr ""
-"Et ainsi la demande du fichier `/debian/woody/main/binary-i386/x11/foo_1-1."
-"deb' sera convertie en une demande prioritaire"
+"Ainsi, la demande du fichier « /debian/woody/main/binary-i386/x11/foo_1-1."
+"deb » sera convertie en une demande d'abord de"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:133
-#, fuzzy, no-wrap
+#: doc/apt-proxy.conf.5:145
+#, no-wrap
 msgid "    `http://ftp.us.debian.org/debian/woody/main/binary-i386/x11/foo_1-1.deb'\n"
-msgstr ""
-"    `http://ftp.us.debian.org/debian/woody/main/binary-i386/x11/foo_1-1.deb'\n"
-"    \n"
+msgstr "    « http://ftp.us.debian.org/debian/woody/main/binary-i386/x11/foo_1-1.deb »\n"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:136
+#: doc/apt-proxy.conf.5:148
 msgid "and if that failed,"
-msgstr "et s'il a échoué,"
+msgstr "et, en cas d'échec, de"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:139
-#, fuzzy, no-wrap
+#: doc/apt-proxy.conf.5:151
+#, no-wrap
 msgid "    `http://ftp.de.debian.org/debian/woody/main/binary-i386/x11/foo_1-1.deb'\n"
+msgstr "    « http://ftp.fr.debian.org/debian/woody/main/binary-i386/x11/foo_1-1.deb »\n"
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:154
+msgid "and apt-proxy will place the downloaded package in"
 msgstr ""
-"    `http://ftp.de.debian.org/debian/woody/main/binary-i386/x11/foo_1-1.deb'\n"
-"    \n"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:142
+#: doc/apt-proxy.conf.5:156
 #, no-wrap
-msgid "and the file would be placed in\n"
-msgstr "et le fichier devrait être placé dans\n"
+msgid "    `/var/cache/apt-proxy/debian/debian/woody/main/binary-i386/x11/foo_1-1.deb'\\&.\n"
+msgstr "     « /var/cache/apt-proxy/debian/debian/woody/main/binary-i386/x11/foo_1-1.deb ».\n"
+
+# type: TP
+#: doc/apt-proxy.conf.5:159
+#, fuzzy
+msgid "B<backports.org>"
+msgstr "B<port>"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:144
+#: doc/apt-proxy.conf.5:161
+msgid "The backports.org website tells you to use this I<sources.list> line:"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:164
 #, no-wrap
-msgid "    `/var/cache/apt-proxy/debian/debian/woody/main/binary-i386/x11/foo_1-1.deb'\\&.\n"
-msgstr "····`/var/cache/apt-proxy/debian/debian/woody/main/binary-i386/x11/foo_1-1.deb'\\&.\n"
+msgid "    deb http://www.backports.org/debian sarge-backports main\n"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:168
+msgid ""
+"You can add this to apt-proxy by creating a new section in I<apt-proxy\\&."
+"conf>\\&.  In the new section, add a backends entry for the URL:"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:172
+#, no-wrap
+msgid ""
+"    [backports]\n"
+"    backends = http://www.backports.org/debian\n"
+msgstr ""
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:177
+msgid ""
+"On the clients, replace the URL with one pointing to the apt-proxy resource "
+"name, in the form I<http://hostname:port/backend>. If your apt-proxy "
+"hostname is I<proxy> and it is running on port 9999, you would write:"
+msgstr ""
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:147
+#: doc/apt-proxy.conf.5:180
 #, fuzzy, no-wrap
-msgid "For many more examples, see the supplied /etc/apt-proxy/apt-proxy\\&.conf\\&.\n"
-msgstr "Pour d'autres exemples, voir le fichier /etc/apt-proxy/apt-proxy\\&.conf\\& fourni."
+msgid "   deb http://proxy:9999/backports sarge-backports main\n"
+msgstr "    deb http://SERVEUR:9999/debian/ woody main\n"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:158
+#: doc/apt-proxy.conf.5:185
+#, fuzzy
+msgid ""
+"For many more examples, see the supplied /etc/apt-proxy/apt-proxy\\&.conf\\&."
+msgstr ""
+"Pour d'autres exemples, voir le fichier /etc/apt-proxy/apt-proxy.conf.\n"
+
+# type: Plain text
+#: doc/apt-proxy.conf.5:196
 msgid ""
 "B<apt-proxy(8),> B</usr/share/doc/apt-proxy/README,> B<apt-proxy-import(8)>"
 msgstr ""
 "B<apt-proxy>(8), B</usr/share/doc/apt-proxy/README,>B<apt-proxy-import>(8)"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:163
+#: doc/apt-proxy.conf.5:201
 msgid "Plenty sure.  Please report."
-msgstr "Totalement sûr. Prière de rapporter."
+msgstr "Certainement. Veuillez nous en faire part."
 
 # type: SH
-#: doc/apt-proxy.conf.5:164
+#: doc/apt-proxy.conf.5:202
 #, no-wrap
 msgid "AUTHOR"
 msgstr "AUTEUR"
 
 # type: Plain text
-#: doc/apt-proxy.conf.5:165
+#: doc/apt-proxy.conf.5:203
 msgid ""
 "apt-proxy v2 was written by Manuel Estrada Sainz E<lt>ranty at debian.orgE<gt>"
 "\\&."
 msgstr ""
-"apt\\-proxy·v2 a été écrit par Manuel Estrada Sainz E<lt>ranty at debian."
-"orgE<gt>\\&."
+"apt-proxy v2 a été écrit par Manuel Estrada Sainz E<lt>ranty at debian.orgE<gt>."
 
 # type: TH
-#~ msgid "03 Dec 2004"
-#~ msgstr "03 Décembre 2004"
+#~ msgid "October 2005"
+#~ msgstr "Octobre 2005"
 
-# type: Plain text
-#, fuzzy
-#~ msgid ""
-#~ "deb http://SERVER:9999/debian-non-US stable/non-US main contrib non-free\n"
-#~ "deb-src http://SERVER:9999/debian-non-US stable/non-US main contrib non-free\n"
-#~ msgstr ""
-#~ "deb http://SERVER:9999/main stable main contrib non\\-free\n"
-#~ "deb\\-src http://SERVER:9999/main stable main contrib non\\-free\n"
-
-# type: Plain text
-#~ msgid "Maximum I/O timeout in seconds for backend transfers."
-#~ msgstr ""
-#~ "Temps de réponse maximal des E/S en secondes pour les transferts dorsaux."
-
-# type: Plain text
-#~ msgid "deb http://SERVER:9999/helixcode/ woody main\n"
-#~ msgstr "deb http://SERVER:9999/helixcode/ woody main\n"
-
-# type: Plain text
-#~ msgid ""
-#~ "NOTE: v2 doesn't officially support rsync backends, so for now the above "
-#~ "does not apply."
-#~ msgstr ""
-#~ "NOTE : la seconde version ne gère pas officiellement rsync, donc, ce "
-#~ "qui suit ne s'applique pas."
+# type: TH
+#~ msgid "21 Nov 2002"
+#~ msgstr "21 novembre 2002"
 
-# type: Plain text
-#~ msgid "\n"
-#~ msgstr "\n"
+# type: SH
+#~ msgid "BACKENDS"
+#~ msgstr "DORSAUX"
 
 # type: Plain text
-#~ msgid "/etc/apt\\-proxy/apt\\-proxy\\&.conf"
-#~ msgstr "/etc/apt\\-proxy/apt\\-proxy\\&.conf"
+#~ msgid "A list of backend URLs\\&."
+#~ msgstr "Une liste de liens de dorsaux."
 
 # type: Plain text
-#, fuzzy
-#~ msgid "B<apt\\-proxy>(8), B<apt\\-proxy.conf>(5)"
-#~ msgstr "/etc/apt\\-proxy/apt\\-proxy\\&.conf"
+#~ msgid "and the file would be placed in\n"
+#~ msgstr "et le fichier devrait être placé dans\n"

Modified: people/halls/rework/doc/po4a.cfg
==============================================================================
--- people/halls/rework/doc/po4a.cfg	(original)
+++ people/halls/rework/doc/po4a.cfg	Thu Aug  3 17:05:49 2006
@@ -1,5 +1,5 @@
 [po4a_paths] doc/po/apt-proxy.pot fr:doc/po/fr.po
 [type: man] doc/apt-proxy.8 fr:doc/apt-proxy.fr.8 add_fr:doc/apt-proxy.add.fr
-[type: man] doc/apt-proxy.conf.5
-[type: man] doc/apt-proxy-import.8.inc
-[type: man] doc/apt-proxy-v1tov2.8
+[type: man] doc/apt-proxy.conf.5 fr:doc/apt-proxy.conf.fr.5 add_fr:doc/apt-proxy.add.fr
+[type: man] doc/apt-proxy-import.8 fr:doc/apt-proxy-import.fr.8 add_fr:doc/apt-proxy.add.fr
+[type: man] doc/apt-proxy-v1tov2.8 fr:doc/apt-proxy-v1tov2.fr.8 add_fr:doc/apt-proxy.add.fr



More information about the apt-proxy-devel mailing list