git-svn-id: https://linkchecker.svn.sourceforge.net/svnroot/linkchecker/trunk/linkchecker@100 e7d03fd6-7b0d-0410-9947-9c21f3af8025
This commit is contained in:
calvin 2000-06-03 14:07:40 +00:00
parent de64233e40
commit 2eb32965be
11 changed files with 615 additions and 73 deletions

View file

@ -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

2
TODO
View file

@ -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.

10
debian/control vendored
View file

@ -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)

1
debian/dirs vendored
View file

@ -3,4 +3,3 @@ usr/lib/python1.5/site-packages/linkcheck
usr/bin
etc
usr/share/doc/linkchecker
usr/share/locale/de/LC_MESSAGES

View file

@ -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]))

View file

@ -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("<html><head><title>"+Config.App+"</title></head>"+
"<body bgcolor="+ColorBackground+" link="+ColorLink+
" vlink="+ColorLink+" alink="+ColorLink+">"+
"<body bgcolor="+self.colorbackground+" link="+self.colorlink+
" vlink="+self.colorlink+" alink="+self.colorlink+">"+
"<center><h2>"+MyFont+Config.AppName+"</font>"+
"</center></h2>"+
"<br><blockquote>"+Config.Freeware+"<br><br>"+
@ -169,12 +182,12 @@ class HtmlLogger(StandardLogger):
def newUrl(self, urlData):
self.fd.write("<table align=left border=\"0\" cellspacing=\"0\""
" cellpadding=\"1\" bgcolor="+ColorBorder+
" cellpadding=\"1\" bgcolor="+self.colorborder+
"><tr><td><table align=left border=\"0\" cellspacing=\"0\""
" cellpadding=\"3\" bgcolor="+ColorBackground+
"><tr><td bgcolor="+ColorUrl+">"+
MyFont+"URL</font></td><td bgcolor="+ColorUrl+">"+MyFont+
StringUtil.htmlify(urlData.urlName))
" cellpadding=\"3\" bgcolor="+self.colorbackground+
"><tr><td bgcolor="+self.colorurl+">"+
MyFont+"URL</font></td><td bgcolor="+self.colorurl+">"+
MyFont+StringUtil.htmlify(urlData.urlName))
if urlData.cached:
self.fd.write(_(" (cached)\n"))
self.fd.write("</font>"+RowEnd)
@ -207,16 +220,18 @@ class HtmlLogger(StandardLogger):
"</font>"+RowEnd)
if urlData.warningString:
self.warnings = self.warnings+1
self.fd.write("<tr>"+TableWarning+MyFont+_("Warning")+
"</font></td>"+TableWarning+MyFont+
self.fd.write("<tr>"+self.tablewarning+MyFont+_("Warning")+
"</font></td>"+self.tablewarning+MyFont+
urlData.warningString+"</font>"+RowEnd)
if urlData.valid:
self.fd.write("<tr>"+TableOK+MyFont+_("Result")+"</font></td>"+
TableOK+MyFont+urlData.validString+"</font>"+RowEnd)
self.fd.write("<tr>"+self.tableok+MyFont+_("Result")+
"</font></td>"+self.tableok+MyFont+
urlData.validString+"</font>"+RowEnd)
else:
self.errors = self.errors+1
self.fd.write("<tr>"+TableError+MyFont+_("Result")+"</font></td>"+
TableError+MyFont+urlData.errorString+"</font>"+RowEnd)
self.fd.write("<tr>"+self.tableerror+MyFont+_("Result")+
"</font></td>"+self.tableerror+MyFont+
urlData.errorString+"</font>"+RowEnd)
self.fd.write("</table></td></tr></table><br clear=all><br>")
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):

View file

@ -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'")

View file

@ -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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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"

View file

@ -0,0 +1 @@
*.mo

View file

@ -0,0 +1,395 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 <path-to-program>\\linkcheckerrc).\n"
"-F name, --file-output=name\n"
" Same as output, but write to a file linkchecker-out.<name>.\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 ""

View file

@ -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']),
],
)