From 2eb32965be6260923904d96f7d6434c3385f56e1 Mon Sep 17 00:00:00 2001 From: calvin Date: Sat, 3 Jun 2000 14:07:40 +0000 Subject: [PATCH] fixes git-svn-id: https://linkchecker.svn.sourceforge.net/svnroot/linkchecker/trunk/linkchecker@100 e7d03fd6-7b0d-0410-9947-9c21f3af8025 --- Makefile | 16 +- TODO | 2 + debian/control | 10 +- debian/dirs | 1 - linkcheck/Config.py | 5 +- linkcheck/Logging.py | 105 +++++--- linkchecker | 9 +- locale/de/LC_MESSAGES/linkcheck.po | 139 +++++++++- locale/fr/LC_MESSAGES/.cvsignore | 1 + locale/fr/LC_MESSAGES/linkcheck.po | 395 +++++++++++++++++++++++++++++ setup.py | 5 +- 11 files changed, 615 insertions(+), 73 deletions(-) create mode 100644 locale/fr/LC_MESSAGES/.cvsignore create mode 100644 locale/fr/LC_MESSAGES/linkcheck.po diff --git a/Makefile b/Makefile index edfb5bbe..d33cbc82 100644 --- a/Makefile +++ b/Makefile @@ -2,8 +2,8 @@ # call make. VERSION=$(shell python setup.py --version) HOST=treasure.calvinsplayground.de -PROXY= -#PROXY=-P$(HOST):5050 +#PROXY= +PROXY=-P$(HOST):5050 #HOST=fsinfo.cs.uni-sb.de #PROXY=-Pwww-proxy.uni-sb.de:3128 PACKAGE = linkchecker @@ -44,7 +44,7 @@ dist: fakeroot debian/rules binary files: - ./$(PACKAGE) -ocolored -Ftext -Fhtml -Fgml -Fsql -Fcsv -R -t0 -v $(PROXY) -i$(HOST) http://$(HOST)/~calvin/ + ./$(PACKAGE) -ocolored -Ftext -Fhtml -Fgml -Fsql -Fcsv -R -t0 -v -D $(PROXY) -i$(HOST) http://$(HOST)/~calvin/ homepage: scp debian/changelog shell1.sourceforge.net:/home/groups/linkchecker/htdocs/changes.txt @@ -62,14 +62,14 @@ po: --join-existing --keyword --keyword=_ \ --output-dir=locale/de/LC_MESSAGES/ --sort-output $(SOURCES) # french translation - #xgettext --default-domain=linkcheck \ - #--join-existing --keyword --keyword=_ \ - #--output-dir=locale/fr/LC_MESSAGES/ --sort-output $(SOURCES) + xgettext --default-domain=linkcheck \ + --join-existing --keyword --keyword=_ \ + --output-dir=locale/fr/LC_MESSAGES/ --sort-output $(SOURCES) mo: # german translation msgfmt -o locale/de/LC_MESSAGES/linkcheck.mo \ locale/de/LC_MESSAGES/linkcheck.po # french translation - #msgfmt -o locale/fr/LC_MESSAGES/linkcheck.mo \ - #locale/fr/LC_MESSAGES/linkcheck.po + msgfmt -o locale/fr/LC_MESSAGES/linkcheck.mo \ + locale/fr/LC_MESSAGES/linkcheck.po diff --git a/TODO b/TODO index 9413b0b8..91274ff8 100644 --- a/TODO +++ b/TODO @@ -10,6 +10,8 @@ o I want to be able to supply a "break" command even when multiple The thread implementation of Python is somewhat sparse and does not allow suspending/stopping of threads. What I am doing is to call sys.exit(1). +o other translations + o Parse GML output and make a site map graphic (PNG format) Use an existing layout algorithm. diff --git a/debian/control b/debian/control index b40b845a..a19d9268 100644 --- a/debian/control +++ b/debian/control @@ -13,11 +13,13 @@ Description: a link checker written in Python Features: o recursive checking o multithreaded - o output can be colored or normal text, HTML, SQL or a GML sitemap graph - o HTTP/1.1 and 1.0, HTTPS, FTP, mailto:, Gopher, Telnet and - local file links are supported + o output can be colored or normal text, HTML, SQL, CSV or a GML sitemap + graph + o HTTP/1.1, HTTPS, FTP, mailto:, news:, Gopher, Telnet and local file links + are supported Javascript links are currently ignored - o restrict link checking to your local domain + o restrict link checking with regular expression filters for URLs o HTTP proxy support o give username/password for HTTP and FTP authorization o robots.txt exclusion protocol support + o internationalization support (currently english and german) diff --git a/debian/dirs b/debian/dirs index 14179382..3a9f7bd7 100644 --- a/debian/dirs +++ b/debian/dirs @@ -3,4 +3,3 @@ usr/lib/python1.5/site-packages/linkcheck usr/bin etc usr/share/doc/linkchecker -usr/share/locale/de/LC_MESSAGES diff --git a/linkcheck/Config.py b/linkcheck/Config.py index b6d0ef77..d6dc68fa 100644 --- a/linkcheck/Config.py +++ b/linkcheck/Config.py @@ -78,7 +78,6 @@ class Configuration(UserDict.UserDict): def __init__(self): """Initialize the default options""" UserDict.UserDict.__init__(self) - self.data["log"] = Loggers["text"]() self.data["verbose"] = 0 self.data["warnings"] = 0 self.data["anchors"] = 0 @@ -130,10 +129,12 @@ class Configuration(UserDict.UserDict): } self.data['csv'] = { "filename": "linkchecker-out.csv", + 'separator': ';', } self.data['blacklist'] = { "filename": "~/.blacklist", } + self.data["log"] = self.newLogger('text') self.data["quiet"] = 0 self.data["warningregex"] = None self.data["nntpserver"] = os.environ.get("NNTP_SERVER",None) @@ -236,7 +237,7 @@ class Configuration(UserDict.UserDict): def robotsTxtCache_set_NoThreads(self, key, val): self.robotsTxtCache[key] = val - def newLogger(self, name, fileout): + def newLogger(self, name, fileout=0): if fileout: self.data['fileoutput'].append(apply(Loggers[name], (fileout,), self.data[name])) diff --git a/linkcheck/Logging.py b/linkcheck/Logging.py index 55449503..524aac49 100644 --- a/linkcheck/Logging.py +++ b/linkcheck/Logging.py @@ -77,7 +77,10 @@ class StandardLogger: def __init__(self, fileout=None, **args): self.errors=0 self.warnings=0 - self.fd = fileout and args['filename'] or sys.stdout + if fileout: + self.fd = open(args['filename'], "w") + else: + self.fd = sys.stdout def init(self): @@ -154,11 +157,21 @@ class StandardLogger: class HtmlLogger(StandardLogger): """Logger with HTML output""" + def __init__(self, fileout=None, **args): + apply(StandardLogger.__init__, (self, fileout), args) + self.colorbackground = args['colorbackground'] + self.colorurl = args['colorurl'] + self.colorborder = args['colorborder'] + self.colorlink = args['colorlink'] + self.tablewarning = args['tablewarning'] + self.tableerror = args['tableerror'] + self.tableok = args['tableok'] + def init(self): self.starttime = time.time() self.fd.write(""+Config.App+""+ - ""+ + ""+ "

"+MyFont+Config.AppName+""+ "

"+ "
"+Config.Freeware+"

"+ @@ -169,12 +182,12 @@ class HtmlLogger(StandardLogger): def newUrl(self, urlData): self.fd.write("
"+TableWarning+MyFont+_("Warning")+ - ""+TableWarning+MyFont+ + self.fd.write(""+self.tablewarning+MyFont+_("Warning")+ + ""+self.tablewarning+MyFont+ urlData.warningString+""+RowEnd) if urlData.valid: - self.fd.write(""+TableOK+MyFont+_("Result")+""+ - TableOK+MyFont+urlData.validString+""+RowEnd) + self.fd.write(""+self.tableok+MyFont+_("Result")+ + ""+self.tableok+MyFont+ + urlData.validString+""+RowEnd) else: self.errors = self.errors+1 - self.fd.write(""+TableError+MyFont+_("Result")+""+ - TableError+MyFont+urlData.errorString+""+RowEnd) + self.fd.write(""+self.tableerror+MyFont+_("Result")+ + ""+self.tableerror+MyFont+ + urlData.errorString+""+RowEnd) self.fd.write("
"+ - MyFont+"URL"+MyFont+ - StringUtil.htmlify(urlData.urlName)) + " cellpadding=\"3\" bgcolor="+self.colorbackground+ + ">
"+ + MyFont+"URL"+ + MyFont+StringUtil.htmlify(urlData.urlName)) if urlData.cached: self.fd.write(_(" (cached)\n")) self.fd.write(""+RowEnd) @@ -207,16 +220,18 @@ class HtmlLogger(StandardLogger): ""+RowEnd) if urlData.warningString: self.warnings = self.warnings+1 - self.fd.write("


") self.fd.flush() @@ -252,7 +267,17 @@ class ColoredLogger(StandardLogger): """ANSI colorized output""" def __init__(self, fileout=None, **args): - StandardLogger.__init__(self, fileout, args) + apply(StandardLogger.__init__, (self, fileout), args) + self.colorparent = args['colorparent'] + self.colorurl = args['colorurl'] + self.colorreal = args['colorreal'] + self.colorbase = args['colorbase'] + self.colorvalid = args['colorvalid'] + self.colorinvalid = args['colorinvalid'] + self.colorinfo = args['colorinfo'] + self.colorwarning = args['colorwarning'] + self.colordltime = args['colordltime'] + self.colorreset = args['colorreset'] self.currentPage = None self.prefix = 0 @@ -262,7 +287,8 @@ class ColoredLogger(StandardLogger): if self.prefix: self.fd.write("o\n") self.fd.write("\n"+_("Parent URL")+Spaces["Parent URL"]+ - COL_PARENT+urlData.parentName+COL_RESET+"\n") + self.colorparent+urlData.parentName+ + self.colorreset+"\n") self.currentPage = urlData.parentName self.prefix = 1 else: @@ -275,8 +301,8 @@ class ColoredLogger(StandardLogger): self.fd.write("|\n+- ") else: self.fd.write("\n") - self.fd.write(_("URL")+Spaces["URL"]+COL_URL+urlData.urlName+ - COL_RESET) + self.fd.write(_("URL")+Spaces["URL"]+self.colorurl+urlData.urlName+ + self.colorreset) if urlData.line: self.fd.write(_(", line ")+`urlData.line`+"") if urlData.cached: self.fd.write(_(" (cached)\n")) @@ -286,24 +312,25 @@ class ColoredLogger(StandardLogger): if urlData.baseRef: if self.prefix: self.fd.write("| ") - self.fd.write(_("Base")+Spaces["Base"]+COL_BASE+urlData.baseRef+ - COL_RESET+"\n") + self.fd.write(_("Base")+Spaces["Base"]+self.colorbase+ + urlData.baseRef+self.colorreset+"\n") if urlData.url: if self.prefix: self.fd.write("| ") - self.fd.write(_("Real URL")+Spaces["Real URL"]+COL_REAL+ - urlData.url+COL_RESET+"\n") + self.fd.write(_("Real URL")+Spaces["Real URL"]+self.colorreal+ + urlData.url+self.colorreset+"\n") if urlData.downloadtime: if self.prefix: self.fd.write("| ") - self.fd.write(_("D/L Time")+Spaces["D/L Time"]+COL_DLTIME+ - (_("%.3f seconds") % urlData.downloadtime)+COL_RESET+"\n") + self.fd.write(_("D/L Time")+Spaces["D/L Time"]+self.colordltime+ + (_("%.3f seconds") % urlData.downloadtime)+self.colorreset+"\n") if urlData.checktime: if self.prefix: self.fd.write("| ") - self.fd.write(_("Check Time")+Spaces["Check Time"]+COL_DLTIME+ - (_("%.3f seconds") % urlData.checktime)+COL_RESET+"\n") + self.fd.write(_("Check Time")+Spaces["Check Time"]+ + self.colordltime+ + (_("%.3f seconds") % urlData.checktime)+self.colorreset+"\n") if urlData.infoString: if self.prefix: @@ -314,23 +341,25 @@ class ColoredLogger(StandardLogger): self.fd.write(_("Info")+Spaces["Info"]+ StringUtil.indentWith(StringUtil.blocktext( urlData.infoString, 65), " "+Spaces["Info"])) - self.fd.write(COL_RESET+"\n") + self.fd.write(self.colorreset+"\n") if urlData.warningString: self.warnings = self.warnings+1 if self.prefix: self.fd.write("| ") - self.fd.write(_("Warning")+Spaces["Warning"]+COL_WARNING+ - urlData.warningString+COL_RESET+"\n") + self.fd.write(_("Warning")+Spaces["Warning"]+self.colorwarning+ + urlData.warningString+self.colorreset+"\n") if self.prefix: self.fd.write("| ") self.fd.write(_("Result")+Spaces["Result"]) if urlData.valid: - self.fd.write(COL_VALID+urlData.validString+COL_RESET+"\n") + self.fd.write(self.colorvalid+urlData.validString+ + self.colorreset+"\n") else: self.errors = self.errors+1 - self.fd.write(COL_INVALID+urlData.errorString+COL_RESET+"\n") + self.fd.write(self.colorinvalid+urlData.errorString+ + self.colorreset+"\n") self.fd.flush() @@ -345,12 +374,12 @@ class GMLLogger(StandardLogger): your sitemap graph. """ def __init__(self, fileout=None, **args): - StandardLogger.__init__(self, fileout, args) + apply(StandardLogger.__init__, (self, fileout), args) self.nodes = [] def init(self): self.starttime = time.time() - self.fd.write(_("# created by %s at %s\n" % (Config.AppName, + self.fd.write(_("# created by %s at %s\n") % (Config.AppName, _strtime(self.starttime))) self.fd.write(_("# Get the newest version at %s\n") % Config.Url) self.fd.write(_("# Write comments and bugs to %s\n\n") % Config.Email) @@ -403,13 +432,13 @@ class GMLLogger(StandardLogger): class SQLLogger(StandardLogger): """ SQL output for PostgreSQL, not tested""" def __init__(self, fileout=None, **args): - StandardLogger.__init__(self, fileout, args) + apply(StandardLogger.__init__, (self, fileout), args) self.dbname = args['dbname'] - self.commandsep = args['commandsep'] + self.separator = args['separator'] def init(self): self.starttime = time.time() - self.fd.write(_("-- created by %s at %s\n" % (Config.AppName, + self.fd.write(_("-- created by %s at %s\n") % (Config.AppName, _strtime(self.starttime))) self.fd.write(_("-- Get the newest version at %s\n") % Config.Url) self.fd.write(_("-- Write comments and bugs to %s\n\n") % Config.Email) @@ -435,7 +464,7 @@ class SQLLogger(StandardLogger): urlData.checktime, urlData.downloadtime, urlData.cached, - self.commandsep)) + self.separator)) self.fd.flush() def endOfOutput(self): @@ -477,7 +506,7 @@ class CSVLogger(StandardLogger): separated by a semicolon. """ def __init__(self, fileout=None, **args): - StandardLogger.__init__(self, fileout, args) + apply(StandardLogger.__init__, (self, fileout), args) self.separator = args['separator'] def init(self): diff --git a/linkchecker b/linkchecker index 98dbb748..43b1ecdc 100755 --- a/linkchecker +++ b/linkchecker @@ -82,7 +82,7 @@ Usage = _("USAGE\tlinkchecker [options] file_or_url...\n" " You can use this to check for pages that contain some form of\n" " error message, for example 'This page has moved' or\n" " 'Oracle Application Server error'.\n" -" This option implies -w.\n") % linkcheck.Config.LoggerKeys) +" This option implies -w.\n") % linkcheck.Config.LoggerKeys Notes = _("NOTES\n" "o LinkChecker assumes an http:// resp. ftp:// link when a commandline URL\n" @@ -166,7 +166,7 @@ try: if opt=="-f" or opt=="--config": configfiles.append(arg) config.read(configfiles) -except: +except IOError: type, value = sys.exc_info()[:2] printUsage(value) @@ -200,15 +200,14 @@ for opt,arg in options: elif opt=="-o" or opt=="--output": if linkcheck.Config.Loggers.has_key(arg): - config["log"] = linkcheck.Config.Loggers[arg]() + config.newLogger(arg) else: printUsage((_("Illegal argument '%s' for option ") % arg) +\ "'-o, --output'") elif opt=="-F" or opt=="--file-output": if linkcheck.Config.Loggers.has_key(arg) and arg != "blacklist": - config["fileoutput"].append(linkcheck.Config.Loggers[arg]( - open(config["fileoutputnames"][arg], "w"))) + config.newLogger(arg, 1) else: printUsage((_("Illegal argument '%s' for option ") % arg) +\ "'-F, --file-output'") diff --git a/locale/de/LC_MESSAGES/linkcheck.po b/locale/de/LC_MESSAGES/linkcheck.po index 4c448c5c..4b8433f4 100644 --- a/locale/de/LC_MESSAGES/linkcheck.po +++ b/locale/de/LC_MESSAGES/linkcheck.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2000-06-03 14:05+0200\n" +"POT-Creation-Date: 2000-06-03 14:59+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -14,75 +14,124 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: ENCODING\n" +#: linkcheck/Logging.py:134 linkcheck/Logging.py:226 +msgid "" +"\n" +"Thats it. " +msgstr "" +"\n" +"Das wars. " + msgid " (%.3f seconds)" msgstr " (%.3f Sekunden)" +#: linkcheck/Logging.py:95 linkcheck/Logging.py:179 linkcheck/Logging.py:282 msgid " (cached)\n" msgstr " (aus dem Cache)\n" +#: linkcheck/Logging.py:143 linkcheck/Logging.py:234 msgid " errors" msgstr " Fehler" msgid " found." msgstr " gefunden" +#: linkcheck/Logging.py:144 linkcheck/Logging.py:235 msgid " found.\n" msgstr " gefunden.\n" +#: linkcheck/Logging.py:139 linkcheck/Logging.py:230 msgid " warnings, " msgstr " Warnungen, " +#: linkcheck/Logging.py:489 msgid "# Format of the entries:\n" msgstr "# Format der Einträge:\n" +#: linkcheck/Logging.py:355 linkcheck/Logging.py:487 +#, c-format msgid "# Get the newest version at %s\n" msgstr "# Die neueste Version gibt es unter %s\n" +#: linkcheck/Logging.py:396 linkcheck/Logging.py:527 +#, c-format msgid "# Stopped checking at %s (%.3f seconds)\n" msgstr "# Beende Prüfen am %s (%.3f Sekunden)\n" -msgid "# Write comments and bugs to %s\n\n" -msgstr "# Kommentare und Fehler mailen Sie bitte an %s\n\n" +#: linkcheck/Logging.py:356 linkcheck/Logging.py:488 +#, c-format +msgid "" +"# Write comments and bugs to %s\n" +"\n" +msgstr "" +"# Kommentare und Fehler mailen Sie bitte an %s\n" +"\n" +#: linkcheck/Logging.py:353 linkcheck/Logging.py:485 +#, c-format msgid "# created by %s at %s\n" msgstr "# erstellt von %s am %s\n" +#: linkcheck/Logging.py:197 linkcheck/Logging.py:202 linkcheck/Logging.py:301 +#: linkcheck/Logging.py:306 +#, c-format msgid "%.3f seconds" msgstr "%.3f Sekunden" +#: linkcheck/Logging.py:108 linkcheck/Logging.py:111 +#, c-format msgid "%.3f seconds\n" msgstr "%.3f Sekunden\n" +#: linkcheck/Logging.py:100 linkcheck/Logging.py:280 msgid ", line " msgstr ", Zeile " +#: linkcheck/Logging.py:414 +#, c-format msgid "-- Get the newest version at %s\n" msgstr "-- Die neueste Version gibt es unter %s\n" +#: linkcheck/Logging.py:443 +#, c-format msgid "-- Stopped checking at %s (%.3f seconds)\n" msgstr "-- Beende Prüfen am %s (%.3f Sekunden)\n" -msgid "-- Write comments and bugs to %s\n\n" -msgstr "-- Kommentare und Fehler mailen Sie bitte an %s\n\n" +#: linkcheck/Logging.py:415 +#, c-format +msgid "" +"-- Write comments and bugs to %s\n" +"\n" +msgstr "" +"-- Kommentare und Fehler mailen Sie bitte an %s\n" +"\n" +#: linkcheck/Logging.py:412 +#, c-format msgid "-- created by %s at %s\n" msgstr "-- erstellt von %s am %s\n" +#: linkcheck/Logging.py:141 linkcheck/Logging.py:232 msgid "1 error" msgstr "1 Fehler" +#: linkcheck/Logging.py:137 linkcheck/Logging.py:228 msgid "1 warning, " msgstr "1 Warnung, " +#: linkcheck/HttpUrlData.py:75 msgid "Access denied by robots.txt, checked only syntax" msgstr "Zugriff verweigert durch robots.txt; prüfe lediglich Syntax" +#: linkcheck/Logging.py:103 linkcheck/Logging.py:189 linkcheck/Logging.py:289 msgid "Base" msgstr "Basis" +#: linkcheck/Logging.py:110 linkcheck/Logging.py:200 linkcheck/Logging.py:305 msgid "Check Time" msgstr "Prüfzeit" +#: linkcheck/Logging.py:107 linkcheck/Logging.py:196 linkcheck/Logging.py:300 msgid "D/L Time" msgstr "D/L Zeit" @@ -106,52 +155,74 @@ msgstr "" " linkchecker www.myhomepage.de\n" " linkchecker -r0 ftp.linux.org\n" +#: linkcheck/HttpUrlData.py:115 +#, c-format msgid "Effective URL %s" msgstr "Effektive URL %s" +#: linkcheck/UrlData.py:50 linkcheck/UrlData.py:68 msgid "Error" msgstr "Fehler" +#: linkchecker:125 +#, c-format msgid "Error: %s\n" msgstr "Fehler: %s\n" +#: linkchecker:126 msgid "Execute 'linkchecker -h' for help\n" msgstr "Führen Sie 'linkchecker -h' aus um Hilfe zu erhalten\n" +#: linkcheck/Logging.py:86 linkcheck/Logging.py:242 +#, c-format msgid "Get the newest version at %s\n" -msgstr "Die neueste Version gibt es unter" +msgstr "Die neueste Version gibt es unter %s\n" +#: linkcheck/FtpUrlData.py:34 msgid "Got no answer from FTP server" msgstr "Keine Antwort vom FTP Server" +#: linkcheck/NntpUrlData.py:41 +#, c-format msgid "Group %s has %s articles, range %s to %s" msgstr "Gruppe %s hat %s Artikel, von %s bis %s" +#: linkcheck/HttpUrlData.py:119 msgid "HTTP 301 (moved permanent) encountered: you should update this link" msgstr "" "HTTP 301 (moved permanent) gefunden: Sie sollten diesen Link aktualisieren" +#: linkcheck/HttpsUrlData.py:44 msgid "HTTPS url ignored" msgstr "HTTPS url ignoriert" +#: linkcheck/NntpUrlData.py:31 msgid "Illegal NNTP link syntax" msgstr "Illegale NNTP link Syntax" +#: linkchecker:205 linkchecker:213 linkchecker:244 +#, c-format msgid "Illegal argument '%s' for option " msgstr "Ungültiges Argument '%s' für Option " +#: linkcheck/TelnetUrlData.py:32 msgid "Illegal telnet link syntax" msgstr "Illegale telnet link Syntax" +#: linkcheck/Logging.py:113 linkcheck/Logging.py:205 linkcheck/Logging.py:310 +#: linkcheck/Logging.py:314 msgid "Info" msgstr "Info" +#: linkcheck/JavascriptUrlData.py:25 msgid "Javascript url ignored" msgstr "Javascript url ignoriert" +#: linkcheck/HttpUrlData.py:73 msgid "Missing '/' at end of URL" msgstr "Fehlendes '/' am Ende der URL" +#: linkchecker:87 msgid "" "NOTES\n" "o LinkChecker assumes an http:// resp. ftp:// link when a commandline URL\n" @@ -175,7 +246,8 @@ msgstr "" "o Falls sich Ihr System automatisch mit dem Internet verbindet\n" " (z.B. mit diald), wird es dies tun wenn Sie Links prüfen, die nicht\n" " auf Ihren lokalen Rechner verweisen\n" -" Benutzen Sie die Optionen -s und -i um dies zu verhindern (siehe BEISPIELE)\n" +" Benutzen Sie die Optionen -s und -i um dies zu verhindern (siehe " +"BEISPIELE)\n" "o Javascript Links werden zur Zeit ignoriert\n" "o Wenn Ihr System keine Threads unterstützt verwendet LinkChecker die\n" " Option -t0\n" @@ -185,39 +257,55 @@ msgstr "" "o Beim Prüfen von 'news:' Links muß der angegebene NNTP Rechner nicht\n" " unbedingt derselbe wie der des Benutzers sein!\n" +#: linkcheck/NntpUrlData.py:37 msgid "No NNTP server specified, checked only syntax" msgstr "Kein NNTP Server angegeben; prüfe lediglich Syntax" +#: linkcheck/MailtoUrlData.py:66 msgid "No adresses found" msgstr "Keine Adressen gefunden" +#: linkcheck/MailtoUrlData.py:91 +#, c-format msgid "None of the mail hosts for %s accepts an SMTP connection: %s" msgstr "Keiner der Mail Hosts für %s akzeptiert eine SMTP Verbindung: %s" +#: linkcheck/Logging.py:99 linkcheck/Logging.py:183 linkcheck/Logging.py:264 msgid "Parent URL" msgstr "Vater URL" +#: linkcheck/Logging.py:105 linkcheck/Logging.py:192 linkcheck/Logging.py:295 msgid "Real URL" msgstr "Tats. URL" +#: linkcheck/Logging.py:124 linkcheck/Logging.py:214 linkcheck/Logging.py:218 +#: linkcheck/Logging.py:328 msgid "Result" msgstr "Ergebnis" +#: linkcheck/Logging.py:88 linkcheck/Logging.py:165 +#, c-format msgid "Start checking at %s\n" msgstr "Beginne Prüfen am %s\n" +#: linkcheck/Logging.py:146 linkcheck/Logging.py:237 +#, c-format msgid "Stopped checking at %s (%.3f seconds)\n" msgstr "Beende Prüfen am %s (%.3f Sekunden)\n" msgid "Thats it. " msgstr "Das wars. " +#: linkcheck/Logging.py:93 linkcheck/Logging.py:278 msgid "URL" msgstr "URL" +#: linkcheck/UrlData.py:125 msgid "URL is null or empty" msgstr "URL ist Null oder leer" +#: linkchecker:16 +#, c-format msgid "" "USAGE\tlinkchecker [options] file_or_url...\n" "\n" @@ -358,43 +446,66 @@ msgstr "" "-W regex, --warning-regex=regex\n" " Definieren Sie einen regulären Ausdruck, der eine Warnung ausdruckt\n" " falls er den Inhalt eines geprüften Verweises matcht.\n" -" This applies of course only to pages which are valid, so we can\n" -" get their content.\n" -" You can use this to check for pages that contain some form of\n" -" error message, for example 'This page has moved' or\n" -" 'Oracle Application Server error'.\n" -" This option implies -w.\n" +" Dies gilt natürlich nur für gültige Seiten deren Inhalt wir\n" +" bekommen können.\n" +" Sie können dies verwenden, um Seiten mit Fehlermeldungen wie z.B.\n" +" 'Diese Seite ist umgezogen' oder 'Oracle Server Fehler'.\n" +" Diese Option nimmt -w an.\n" +#: linkcheck/UrlData.py:51 linkcheck/UrlData.py:72 msgid "Valid" msgstr "Gültig" +#: linkcheck/Logging.py:119 linkcheck/Logging.py:210 linkcheck/Logging.py:323 msgid "Warning" msgstr "Warnung" - +#: linkcheck/Logging.py:244 +#, c-format msgid "Write comments and bugs to %s\n" msgstr "Kommentare und Fehler mailen Sie bitte an %s\n" +#: linkcheck/Logging.py:87 +#, c-format +msgid "" +"Write comments and bugs to %s\n" +"\n" +msgstr "" +"Kommentare und Fehler schreiben Sie bitte an %s\n" +"\n" + +#: linkcheck/MailtoUrlData.py:107 msgid "could not split the mail adress" msgstr "konnte Mail Adresse nicht splitten" +#: linkcheck/HostCheckingUrlData.py:44 msgid "found" msgstr "gefunden" +#: linkcheck/MailtoUrlData.py:96 +#, c-format msgid "found mail host %s" msgstr "Mail host %s gefunden" +#: linkcheck/UrlData.py:148 msgid "outside of domain filter, checked only syntax" msgstr "außerhalb des Domain Filters; prüfe lediglich Syntax" +#: linkcheck/RobotsTxt.py:94 +#, c-format msgid "robots.txt:%d: allow without user agents" msgstr "robots.txt:%d: allow ohne user agents" +#: linkcheck/RobotsTxt.py:85 +#, c-format msgid "robots.txt:%d: disallow without user agents" msgstr "robots.txt:%d: disallow ohne user agents" +#: linkcheck/RobotsTxt.py:77 +#, c-format msgid "robots.txt:%d: user-agent in the middle of rules" msgstr "robots.txt:%d: user-agent zwischen Regeln" +#: linkchecker:289 msgid "warning: no files or urls given" msgstr "Warnung: keine Dateien oder URLs angegeben" diff --git a/locale/fr/LC_MESSAGES/.cvsignore b/locale/fr/LC_MESSAGES/.cvsignore new file mode 100644 index 00000000..cd1f2c94 --- /dev/null +++ b/locale/fr/LC_MESSAGES/.cvsignore @@ -0,0 +1 @@ +*.mo diff --git a/locale/fr/LC_MESSAGES/linkcheck.po b/locale/fr/LC_MESSAGES/linkcheck.po new file mode 100644 index 00000000..a1ada16f --- /dev/null +++ b/locale/fr/LC_MESSAGES/linkcheck.po @@ -0,0 +1,395 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2000-06-03 14:59+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: ENCODING\n" + +#: linkcheck/Logging.py:134 linkcheck/Logging.py:226 +msgid "" +"\n" +"Thats it. " +msgstr "" + +#: linkcheck/Logging.py:95 linkcheck/Logging.py:179 linkcheck/Logging.py:282 +msgid " (cached)\n" +msgstr "" + +#: linkcheck/Logging.py:143 linkcheck/Logging.py:234 +msgid " errors" +msgstr " erreurs" + +#: linkcheck/Logging.py:144 linkcheck/Logging.py:235 +msgid " found.\n" +msgstr "" + +#: linkcheck/Logging.py:139 linkcheck/Logging.py:230 +msgid " avertissements, " +msgstr "" + +#: linkcheck/Logging.py:489 +msgid "# Format of the entries:\n" +msgstr "" + +#: linkcheck/Logging.py:355 linkcheck/Logging.py:487 +#, c-format +msgid "# Get the newest version at %s\n" +msgstr "" + +#: linkcheck/Logging.py:396 linkcheck/Logging.py:527 +#, c-format +msgid "# Stopped checking at %s (%.3f seconds)\n" +msgstr "" + +#: linkcheck/Logging.py:356 linkcheck/Logging.py:488 +#, c-format +msgid "" +"# Write comments and bugs to %s\n" +"\n" +msgstr "" + +#: linkcheck/Logging.py:353 linkcheck/Logging.py:485 +#, c-format +msgid "# created by %s at %s\n" +msgstr "" + +#: linkcheck/Logging.py:197 linkcheck/Logging.py:202 linkcheck/Logging.py:301 +#: linkcheck/Logging.py:306 +#, c-format +msgid "%.3f seconds" +msgstr "" + +#: linkcheck/Logging.py:108 linkcheck/Logging.py:111 +#, c-format +msgid "%.3f seconds\n" +msgstr "" + +#: linkcheck/Logging.py:100 linkcheck/Logging.py:280 +msgid ", line " +msgstr "" + +#: linkcheck/Logging.py:414 +#, c-format +msgid "-- Get the newest version at %s\n" +msgstr "" + +#: linkcheck/Logging.py:443 +#, c-format +msgid "-- Stopped checking at %s (%.3f seconds)\n" +msgstr "" + +#: linkcheck/Logging.py:415 +#, c-format +msgid "" +"-- Write comments and bugs to %s\n" +"\n" +msgstr "" + +#: linkcheck/Logging.py:412 +#, c-format +msgid "-- created by %s at %s\n" +msgstr "" + +#: linkcheck/Logging.py:141 linkcheck/Logging.py:232 +msgid "1 error" +msgstr "" + +#: linkcheck/Logging.py:137 linkcheck/Logging.py:228 +msgid "1 warning, " +msgstr "" + +#: linkcheck/HttpUrlData.py:75 +msgid "Access denied by robots.txt, checked only syntax" +msgstr "" + +#: linkcheck/Logging.py:103 linkcheck/Logging.py:189 linkcheck/Logging.py:289 +msgid "Base" +msgstr "" + +#: linkcheck/Logging.py:110 linkcheck/Logging.py:200 linkcheck/Logging.py:305 +msgid "Check Time" +msgstr "" + +#: linkcheck/Logging.py:107 linkcheck/Logging.py:196 linkcheck/Logging.py:300 +msgid "D/L Time" +msgstr "" + +#: linkchecker:102 +msgid "" +"EXAMPLES\n" +"o linkchecker -v -o html -r2 -s -i treasure.calvinsplayground.de \\\n" +" http://treasure.calvinsplayground.de/~calvin/ > sample.html\n" +"o Local files and syntactic sugar on the command line:\n" +" linkchecker c:\\temp\\test.html\n" +" linkchecker ../bla.html\n" +" linkchecker www.myhomepage.de\n" +" linkchecker -r0 ftp.linux.org\n" +msgstr "" + +#: linkcheck/HttpUrlData.py:115 +#, c-format +msgid "Effective URL %s" +msgstr "" + +#: linkcheck/UrlData.py:50 linkcheck/UrlData.py:68 +msgid "Error" +msgstr "" + +#: linkchecker:125 +#, c-format +msgid "Error: %s\n" +msgstr "" + +#: linkchecker:126 +msgid "Execute 'linkchecker -h' for help\n" +msgstr "" + +#: linkcheck/Logging.py:86 linkcheck/Logging.py:242 +#, c-format +msgid "Get the newest version at %s\n" +msgstr "" + +#: linkcheck/FtpUrlData.py:34 +msgid "Got no answer from FTP server" +msgstr "" + +#: linkcheck/NntpUrlData.py:41 +#, c-format +msgid "Group %s has %s articles, range %s to %s" +msgstr "" + +#: linkcheck/HttpUrlData.py:119 +msgid "HTTP 301 (moved permanent) encountered: you should update this link" +msgstr "" + +#: linkcheck/HttpsUrlData.py:44 +msgid "HTTPS url ignored" +msgstr "" + +#: linkcheck/NntpUrlData.py:31 +msgid "Illegal NNTP link syntax" +msgstr "" + +#: linkchecker:205 linkchecker:213 linkchecker:244 +#, c-format +msgid "Illegal argument '%s' for option " +msgstr "" + +#: linkcheck/TelnetUrlData.py:32 +msgid "Illegal telnet link syntax" +msgstr "" + +#: linkcheck/Logging.py:113 linkcheck/Logging.py:205 linkcheck/Logging.py:310 +#: linkcheck/Logging.py:314 +msgid "Info" +msgstr "" + +#: linkcheck/JavascriptUrlData.py:25 +msgid "Javascript url ignored" +msgstr "" + +#: linkcheck/HttpUrlData.py:73 +msgid "Missing '/' at end of URL" +msgstr "" + +#: linkchecker:87 +msgid "" +"NOTES\n" +"o LinkChecker assumes an http:// resp. ftp:// link when a commandline URL\n" +" starts with 'www.' resp. 'ftp.'\n" +" You can also give local files as arguments\n" +"o If you have your system configured to automatically establish a\n" +" connection to the internet (e.g. with diald), it will connect when\n" +" checking links not pointing to your local host\n" +" Use the -s and -i options to prevent this (see EXAMPLES)\n" +"o Javascript links are currently ignored\n" +"o If your platform does not support threading, LinkChecker uses -t0\n" +"o You can supply multiple user/password pairs in a configuration file\n" +"o Cookies are not accepted by LinkChecker\n" +"o When checking 'news:' links the given NNTP host doesn't need to be the\n" +" same as the host of the user browsing your pages!\n" +msgstr "" + +#: linkcheck/NntpUrlData.py:37 +msgid "No NNTP server specified, checked only syntax" +msgstr "" + +#: linkcheck/MailtoUrlData.py:66 +msgid "No adresses found" +msgstr "" + +#: linkcheck/MailtoUrlData.py:91 +#, c-format +msgid "None of the mail hosts for %s accepts an SMTP connection: %s" +msgstr "" + +#: linkcheck/Logging.py:99 linkcheck/Logging.py:183 linkcheck/Logging.py:264 +msgid "Parent URL" +msgstr "" + +#: linkcheck/Logging.py:105 linkcheck/Logging.py:192 linkcheck/Logging.py:295 +msgid "Real URL" +msgstr "" + +#: linkcheck/Logging.py:124 linkcheck/Logging.py:214 linkcheck/Logging.py:218 +#: linkcheck/Logging.py:328 +msgid "Result" +msgstr "" + +#: linkcheck/Logging.py:88 linkcheck/Logging.py:165 +#, c-format +msgid "Start checking at %s\n" +msgstr "" + +#: linkcheck/Logging.py:146 linkcheck/Logging.py:237 +#, c-format +msgid "Stopped checking at %s (%.3f seconds)\n" +msgstr "" + +#: linkcheck/Logging.py:93 linkcheck/Logging.py:278 +msgid "URL" +msgstr "" + +#: linkcheck/UrlData.py:125 +msgid "URL is null or empty" +msgstr "" + +#: linkchecker:16 +#, c-format +msgid "" +"USAGE\tlinkchecker [options] file_or_url...\n" +"\n" +"OPTIONS\n" +"-a, --anchors\n" +" Check anchor references. Default is don't check anchors.\n" +"-D, --debug\n" +" Print additional debugging information.\n" +"-e regex, --extern=regex\n" +" Assume urls that match the given expression as extern.\n" +" Only intern HTTP links are checked recursively.\n" +"-f file, --config=file\n" +" Use file as configuration file. LinkChecker first searches\n" +" ~/.linkcheckerrc and then /etc/linkcheckerrc\n" +" (under Windows \\linkcheckerrc).\n" +"-F name, --file-output=name\n" +" Same as output, but write to a file linkchecker-out..\n" +" If the file already exists, it is overwritten. You can specify\n" +" this option more than once. There is no file output for the\n" +" blacklist logger. Default is no file output.\n" +"-i regex, --intern=regex\n" +" Assume urls that match the given expression as intern.\n" +"-h, --help\n" +" Help me! Print usage information for this program.\n" +"-l, --allowdeny\n" +" Swap checking order to intern/extern. Default checking order\n" +" is extern/intern.\n" +"-N, --nntp-server\n" +" Specify an NNTP server for 'news:...' links. Default is the\n" +" environment variable NNTP_SERVER. If no host is given,\n" +" only the syntax of the link is checked.\n" +"-o name, --output=name\n" +" Specify output as %s.\n" +" Default is text.\n" +"-p pwd, --password=pwd\n" +" Try given password for HTML and FTP authorization.\n" +" Default is 'guest@'. See -u.\n" +"-P host[:port], --proxy=host[:port]\n" +" Use specified proxy for HTTP requests.\n" +" Standard port is 8080. Default is to use no proxy.\n" +"-q, --quiet\n" +" Quiet operation. This is only useful with -F.\n" +"-r depth, --recursion-level=depth\n" +" Check recursively all links up to given depth (depth >= 0).\n" +" Default depth is 1.\n" +"-R, --robots-txt\n" +" Obey the robots exclusion standard.\n" +"-s, --strict\n" +" Check only syntax of extern links, do not try to connect to them.\n" +"-t num, --threads=num\n" +" Generate no more than num threads. Default number of threads is 5.\n" +" To disable threading specify a non-positive number.\n" +"-u name, --user=name\n" +" Try given username for HTML and FTP authorization.\n" +" Default is 'anonymous'. See -p.\n" +"-V, --version\n" +" Print version and exit.\n" +"-v, --verbose\n" +" Log all checked URLs (implies -w). Default is to log only invalid\n" +" URLs.\n" +"-w, --warnings\n" +" Log warnings.\n" +"-W regex, --warning-regex=regex\n" +" Define a regular expression which prints a warning if it matches\n" +" any content of the checked link.\n" +" This applies of course only to pages which are valid, so we can\n" +" get their content.\n" +" You can use this to check for pages that contain some form of\n" +" error message, for example 'This page has moved' or\n" +" 'Oracle Application Server error'.\n" +" This option implies -w.\n" +msgstr "" + +#: linkcheck/UrlData.py:51 linkcheck/UrlData.py:72 +msgid "Valid" +msgstr "" + +#: linkcheck/Logging.py:119 linkcheck/Logging.py:210 linkcheck/Logging.py:323 +msgid "Warning" +msgstr "" + +#: linkcheck/Logging.py:244 +#, c-format +msgid "Write comments and bugs to %s\n" +msgstr "" + +#: linkcheck/Logging.py:87 +#, c-format +msgid "" +"Write comments and bugs to %s\n" +"\n" +msgstr "" + +#: linkcheck/MailtoUrlData.py:107 +msgid "could not split the mail adress" +msgstr "" + +#: linkcheck/HostCheckingUrlData.py:44 +msgid "found" +msgstr "" + +#: linkcheck/MailtoUrlData.py:96 +#, c-format +msgid "found mail host %s" +msgstr "" + +#: linkcheck/UrlData.py:148 +msgid "outside of domain filter, checked only syntax" +msgstr "" + +#: linkcheck/RobotsTxt.py:94 +#, c-format +msgid "robots.txt:%d: allow without user agents" +msgstr "" + +#: linkcheck/RobotsTxt.py:85 +#, c-format +msgid "robots.txt:%d: disallow without user agents" +msgstr "" + +#: linkcheck/RobotsTxt.py:77 +#, c-format +msgid "robots.txt:%d: user-agent in the middle of rules" +msgstr "" + +#: linkchecker:289 +msgid "warning: no files or urls given" +msgstr "" diff --git a/setup.py b/setup.py index 1e9fe37d..7fb62c4d 100755 --- a/setup.py +++ b/setup.py @@ -100,5 +100,8 @@ o internationalization support data_files = [('locale/de/LC_MESSAGES', ['locale/de/LC_MESSAGES/linkcheck.mo', 'locale/de/LC_MESSAGES/linkcheck.po']), - ], + ('locale/fr/LC_MESSAGES', + ['locale/fr/LC_MESSAGES/linkcheck.mo', + 'locale/fr/LC_MESSAGES/linkcheck.po']), + ], )