Make 401 unauthorized GET response a warning.

This commit is contained in:
Bastian Kleineidam 2012-08-26 11:32:17 +02:00
parent 7369401bec
commit 4c16d3e702
4 changed files with 285 additions and 269 deletions

View file

@ -91,6 +91,7 @@ WARN_HTTP_COOKIE_STORE_ERROR = "http-cookie-store-error"
WARN_HTTP_DECOMPRESS_ERROR = "http-decompress-error"
WARN_HTTP_UNSUPPORTED_ENCODING = "http-unsupported-encoding"
WARN_HTTP_AUTH_UNKNOWN = "http-auth-unknonwn"
WARN_HTTP_AUTH_UNAUTHORIZED = "http-auth-unauthorized"
WARN_HTTPS_CERTIFICATE = "https-certificate-error"
WARN_IGNORE_URL = "ignore-url"
WARN_MAIL_NO_MX_HOST = "mail-no-mx-host"
@ -129,6 +130,8 @@ Warnings = {
_("The URL content is encoded with an unknown encoding."),
WARN_HTTP_AUTH_UNKNOWN:
_("Unsupported HTTP authentication method."),
WARN_HTTP_AUTH_UNAUTHORIZED:
_("Unauthorized access without HTTP authentication."),
WARN_HTTPS_CERTIFICATE: _("The SSL certificate is invalid or expired."),
WARN_IGNORE_URL: _("The URL has been ignored."),
WARN_MAIL_NO_MX_HOST: _("The mail MX host could not be found."),

View file

@ -36,7 +36,7 @@ from .const import WARN_HTTP_ROBOTS_DENIED, \
WARN_HTTP_WRONG_REDIRECT, WARN_HTTP_MOVED_PERMANENT, \
WARN_HTTP_EMPTY_CONTENT, WARN_HTTP_COOKIE_STORE_ERROR, \
WARN_HTTP_DECOMPRESS_ERROR, WARN_HTTP_UNSUPPORTED_ENCODING, \
WARN_HTTP_AUTH_UNKNOWN
WARN_HTTP_AUTH_UNKNOWN, WARN_HTTP_AUTH_UNAUTHORIZED
# assumed HTTP header encoding
HEADER_ENCODING = "iso-8859-1"
@ -221,34 +221,19 @@ class HttpUrl (internpaturl.InternPatternUrl, proxysupport.ProxySupport):
self.set_result(_("more than %d redirections, aborting") %
self.max_redirects, valid=False)
return response
# check for fallback
if self.method == "HEAD" and self.method_get_allowed:
# 405 method unallowed
if response.status == 405:
log.debug(LOG_CHECK, "Method HEAD unallowed, falling back to GET")
self.fallback_to_get()
continue
# Some sites do not support HEAD requests, for example
# youtube sends a 404 with HEAD, 200 with GET. Doh.
if response.status >= 400:
log.debug(LOG_CHECK, "Method HEAD error, falling back to GET")
self.fallback_to_get()
continue
# Other sites send 200 with HEAD, but 404 with GET. Bummer.
poweredby = self.getheader('X-Powered-By', u'')
server = self.getheader('Server', u'')
if (poweredby.startswith('Zope') or server.startswith('Zope')
or ('ASP.NET' in poweredby and 'Microsoft-IIS' in server)):
# Zope or IIS server could not get Content-Type with HEAD
# http://intermapper.com.dev4.silvertech.net/bogus.aspx
self.fallback_to_get()
continue
if self.do_fallback(response.status):
self.fallback_to_get()
continue
# user authentication
if response.status == 401:
authenticate = self.getheader('WWW-Authenticate')
if authenticate is None:
self.set_result(_("unauthorized access is missing WWW-Authenticate header"),
valid=False)
# Either the server intentionally blocked this request,
# or there is a form on this page which requires
# manual user/password input.
# Either way, this is a warning.
self.add_warning(_("Unauthorized access without HTTP authentication."),
tag=WARN_HTTP_AUTH_UNAUTHORIZED)
return
if not authenticate.startswith("Basic"):
# LinkChecker only supports Basic authorization
@ -264,6 +249,30 @@ class HttpUrl (internpaturl.InternPatternUrl, proxysupport.ProxySupport):
break
return response
def do_fallback(self, status):
"""Check for fallback according to response status.
@param status: The HTTP response status
@ptype status: int
@return: True if checker should use GET, else False
@rtype: bool
"""
if self.method == "HEAD" and self.method_get_allowed:
# Some sites do not support HEAD requests, for example
# youtube sends a 404 with HEAD, 200 with GET. Doh.
# A 405 "Method not allowed" status should also use GET.
if status >= 400:
log.debug(LOG_CHECK, "Method HEAD error %d, falling back to GET", status)
return True
# Other sites send 200 with HEAD, but 404 with GET. Bummer.
poweredby = self.getheader('X-Powered-By', u'')
server = self.getheader('Server', u'')
if (poweredby.startswith('Zope') or server.startswith('Zope')
or ('ASP.NET' in poweredby and 'Microsoft-IIS' in server)):
# Zope or IIS server could not get Content-Type with HEAD
# http://intermapper.com.dev4.silvertech.net/bogus.aspx
return True
return False
def fallback_to_get(self):
"""Set method to GET and clear aliases."""
self.method = "GET"

250
po/de.po
View file

@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: $Id$\n"
"Report-Msgid-Bugs-To: calvin@users.sourceforge.net\n"
"POT-Creation-Date: 2012-08-23 23:58+0200\n"
"PO-Revision-Date: 2012-08-23 23:59+0100\n"
"POT-Creation-Date: 2012-08-26 10:48+0200\n"
"PO-Revision-Date: 2012-08-26 10:48+0100\n"
"Last-Translator: Bastian Kleineidam <calvin@users.sourceforge.net>\n"
"Language-Team: de <de@li.org>\n"
"Language: \n"
@ -390,24 +390,24 @@ msgid "Cache key"
msgstr "Cache Schlüssel"
#: ../linkcheck/logger/__init__.py:33
#: ../linkcheck/gui/linkchecker_ui_main.py:785
#: ../linkcheck/gui/linkchecker_ui_main.py:795
#: ../linkcheck/gui/urlmodel.py:22
msgid "Result"
msgstr "Ergebnis"
#: ../linkcheck/logger/__init__.py:34
#: ../linkcheck/gui/linkchecker_ui_main.py:779
#: ../linkcheck/gui/linkchecker_ui_main.py:789
msgid "Base"
msgstr "Basis"
#: ../linkcheck/logger/__init__.py:35
#: ../linkcheck/gui/linkchecker_ui_main.py:777
#: ../linkcheck/gui/linkchecker_ui_main.py:787
#: ../linkcheck/gui/urlmodel.py:22
msgid "Name"
msgstr "Name"
#: ../linkcheck/logger/__init__.py:36
#: ../linkcheck/gui/linkchecker_ui_main.py:778
#: ../linkcheck/gui/linkchecker_ui_main.py:788
msgid "Parent URL"
msgstr "Vater URL"
@ -416,32 +416,32 @@ msgid "Extern"
msgstr "Extern"
#: ../linkcheck/logger/__init__.py:38
#: ../linkcheck/gui/linkchecker_ui_main.py:783
#: ../linkcheck/gui/linkchecker_ui_main.py:793
msgid "Info"
msgstr "Info"
#: ../linkcheck/logger/__init__.py:39
#: ../linkcheck/gui/linkchecker_ui_main.py:784
#: ../linkcheck/gui/linkchecker_ui_main.py:794
msgid "Warning"
msgstr "Warnung"
#: ../linkcheck/logger/__init__.py:40
#: ../linkcheck/gui/linkchecker_ui_main.py:781
#: ../linkcheck/gui/linkchecker_ui_main.py:791
msgid "D/L time"
msgstr "D/L Zeit"
#: ../linkcheck/logger/__init__.py:41
#: ../linkcheck/gui/linkchecker_ui_main.py:782
#: ../linkcheck/gui/linkchecker_ui_main.py:792
msgid "Size"
msgstr "Größe"
#: ../linkcheck/logger/__init__.py:42
#: ../linkcheck/gui/linkchecker_ui_main.py:780
#: ../linkcheck/gui/linkchecker_ui_main.py:790
msgid "Check time"
msgstr "Prüfzeit"
#: ../linkcheck/logger/__init__.py:43
#: ../linkcheck/gui/linkchecker_ui_main.py:776
#: ../linkcheck/gui/linkchecker_ui_main.py:786
#: ../linkcheck/gui/urlmodel.py:22
msgid "URL"
msgstr "URL"
@ -497,111 +497,116 @@ msgstr "%(scheme)s URL ignoriert."
msgid "URL is unrecognized or has invalid syntax"
msgstr "URL ist unbekannt oder besitzt ungültige Syntax"
#: ../linkcheck/checker/const.py:105
#: ../linkcheck/checker/const.py:106
msgid "The effective URL is different from the original."
msgstr "Die effektive URL unterscheidet sich vom Original."
#: ../linkcheck/checker/const.py:107
#: ../linkcheck/checker/const.py:108
msgid "Could not get the content of the URL."
msgstr "Konnte den Inhalt der URL nicht bekommen."
#: ../linkcheck/checker/const.py:108
#: ../linkcheck/checker/const.py:109
msgid "URL anchor was not found."
msgstr "URL Anker wurde nicht gefunden."
#: ../linkcheck/checker/const.py:110
#: ../linkcheck/checker/const.py:111
msgid "The warning regular expression was found in the URL contents."
msgstr "Der reguläre Ausdruck für Warnungen wurde in den URL Inhalten gefunden."
#: ../linkcheck/checker/const.py:111
#: ../linkcheck/checker/const.py:112
msgid "The URL content size is too large."
msgstr "Der URL Inhalt ist zu groß."
#: ../linkcheck/checker/const.py:112
#: ../linkcheck/checker/const.py:113
msgid "The URL content size is zero."
msgstr "Der URL Inhaltsgrößenangabe ist Null."
#: ../linkcheck/checker/const.py:113
#: ../linkcheck/checker/const.py:114
msgid "The URL content size and download size are unequal."
msgstr "Der URL Inhaltsgrößenangabe und die Download-Größe sind unterschiedlich."
#: ../linkcheck/checker/const.py:114
#: ../linkcheck/checker/const.py:115
msgid "The URL contains leading or trailing whitespace."
msgstr "Die URL %(url)s enthält Leerzeichen am Anfang oder Ende."
#: ../linkcheck/checker/const.py:115
#: ../linkcheck/checker/const.py:116
msgid "The file: URL is missing a trailing slash."
msgstr "Der file: URL fehlt ein abschließender Schrägstrich."
#: ../linkcheck/checker/const.py:117
#: ../linkcheck/checker/const.py:118
msgid "The file: path is not the same as the system specific path."
msgstr "Der file: Pfad ist nicht derselbe wie der Systempfad."
#: ../linkcheck/checker/const.py:118
#: ../linkcheck/checker/const.py:119
msgid "The ftp: URL is missing a trailing slash."
msgstr "Der ftp: URL fehlt ein abschließender Schrägstrich."
#: ../linkcheck/checker/const.py:119
#: ../linkcheck/checker/const.py:120
msgid "The http: URL checking has been denied."
msgstr "Die http: URL-Überprüfung wurde verweigert."
#: ../linkcheck/checker/const.py:120
#: ../linkcheck/checker/const.py:121
msgid "The URL has moved permanently."
msgstr "Die URL wurde dauerhaft verschoben."
#: ../linkcheck/checker/const.py:122
#: ../linkcheck/checker/const.py:123
msgid "The URL has been redirected to an URL of a different type."
msgstr "Die URL wurde zu einem anderen URL-Typ umgeleitet."
#: ../linkcheck/checker/const.py:123
#: ../linkcheck/checker/const.py:124
msgid "The URL had no content."
msgstr "Die URL besitzt keinen Inhalt."
#: ../linkcheck/checker/const.py:125
#: ../linkcheck/checker/const.py:126
msgid "An error occurred while storing a cookie."
msgstr "Ein Fehler trat auf während des Speicherns eines Cookies."
#: ../linkcheck/checker/const.py:127
#: ../linkcheck/checker/const.py:128
msgid "An error occurred while decompressing the URL content."
msgstr "Ein Fehler trat beim Dekomprimieren des URL Inhalts auf."
#: ../linkcheck/checker/const.py:129
#: ../linkcheck/checker/const.py:130
msgid "The URL content is encoded with an unknown encoding."
msgstr "Der URL-Inhalt ist in einer unbekannten Kodierung verfasst."
#: ../linkcheck/checker/const.py:131
#: ../linkcheck/checker/const.py:132
msgid "Unsupported HTTP authentication method."
msgstr "Nicht unterstützte HTTP Authentifizierungsmethode."
#: ../linkcheck/checker/const.py:132
#: ../linkcheck/checker/const.py:134
#: ../linkcheck/checker/httpurl.py:235
msgid "Unauthorized access without HTTP authentication."
msgstr "Unauthorisierter Zugriff ohne HTTP-Authentifizierung."
#: ../linkcheck/checker/const.py:135
msgid "The SSL certificate is invalid or expired."
msgstr "Das SSL-Zertifikat ist ungültig oder abgelaufen."
#: ../linkcheck/checker/const.py:133
#: ../linkcheck/checker/const.py:136
msgid "The URL has been ignored."
msgstr "Die URL wurde ignoriert."
#: ../linkcheck/checker/const.py:134
#: ../linkcheck/checker/const.py:137
msgid "The mail MX host could not be found."
msgstr "Der MX Mail-Rechner konnte nicht gefunden werden."
#: ../linkcheck/checker/const.py:136
#: ../linkcheck/checker/const.py:139
msgid "The mailto: address could not be verified."
msgstr "Die mailto: Addresse konnte nicht überprüft werden."
#: ../linkcheck/checker/const.py:138
#: ../linkcheck/checker/const.py:141
msgid "No connection to a MX host could be established."
msgstr "Es konnte keine Verbindung zu einem MX-Rechner hergestellt werden."
#: ../linkcheck/checker/const.py:139
#: ../linkcheck/checker/const.py:142
msgid "No NNTP server was found."
msgstr "Es wurde kein NNTP Server gefunden."
#: ../linkcheck/checker/const.py:140
#: ../linkcheck/checker/const.py:143
msgid "The NNTP newsgroup could not be found."
msgstr "Die NNTP Nachrichtengruppe konnte nicht gefunden werden."
#: ../linkcheck/checker/const.py:141
#: ../linkcheck/checker/const.py:144
msgid "The IP is obfuscated."
msgstr "Die IP-Adresse ist verschleiert."
@ -797,7 +802,7 @@ msgstr "Verfügbare Anker: %(anchors)s."
#: ../linkcheck/checker/urlbase.py:728
#: ../linkcheck/checker/fileurl.py:193
#: ../linkcheck/checker/httpurl.py:676
#: ../linkcheck/checker/httpurl.py:685
msgid "File size too large"
msgstr "Dateigröße ist zu groß"
@ -956,44 +961,40 @@ msgstr "Erzwungener Proxy `%(name)s' wurde ignoriert, breche ab."
msgid "more than %d redirections, aborting"
msgstr "mehr als %d Weiterleitungen, breche ab"
#: ../linkcheck/checker/httpurl.py:250
msgid "unauthorized access is missing WWW-Authenticate header"
msgstr "dem nicht authorisierten Zugriff fehlt der WWW-Authenticate Header"
#: ../linkcheck/checker/httpurl.py:257
#: ../linkcheck/checker/httpurl.py:242
#, python-format
msgid "Unsupported HTTP authentication `%(auth)s', only `Basic' authentication is supported."
msgstr "Nicht unterstützte HTTP Authentifizierungsmethode `%(auth)s', nur `Basic' Authentifizierung ist unterstützt."
#: ../linkcheck/checker/httpurl.py:314
#: ../linkcheck/checker/httpurl.py:323
#, python-format
msgid "Redirected to `%(url)s'."
msgstr "Zu `%(url)s' umgeleitet."
#: ../linkcheck/checker/httpurl.py:358
#: ../linkcheck/checker/httpurl.py:367
#, python-format
msgid "Redirection to url `%(newurl)s' is not allowed."
msgstr "Umleitung zu `%(newurl)s' ist nicht erlaubt."
#: ../linkcheck/checker/httpurl.py:360
#: ../linkcheck/checker/httpurl.py:395
#: ../linkcheck/checker/httpurl.py:429
#: ../linkcheck/checker/httpurl.py:369
#: ../linkcheck/checker/httpurl.py:404
#: ../linkcheck/checker/httpurl.py:438
msgid "syntax OK"
msgstr "Syntax OK"
#: ../linkcheck/checker/httpurl.py:380
#: ../linkcheck/checker/httpurl.py:389
msgid "The redirected URL is outside of the domain filter, checked only syntax."
msgstr "Die Weiterleitungs-URL ist außerhalb des Domain Filters; prüfe lediglich Syntax."
#: ../linkcheck/checker/httpurl.py:382
#: ../linkcheck/checker/httpurl.py:391
msgid "filtered"
msgstr "gefiltert"
#: ../linkcheck/checker/httpurl.py:393
#: ../linkcheck/checker/httpurl.py:402
msgid "Access to redirected URL denied by robots.txt, checked only syntax."
msgstr "Zugriff zur Weiterleitungs-URL verweigert durch robots.txt; prüfe lediglich Syntax."
#: ../linkcheck/checker/httpurl.py:411
#: ../linkcheck/checker/httpurl.py:420
#, python-format
msgid ""
"recursive redirection encountered:\n"
@ -1002,45 +1003,45 @@ msgstr ""
"Rekursive Weiterleitung entdeckt:\n"
" %(urls)s"
#: ../linkcheck/checker/httpurl.py:424
#: ../linkcheck/checker/httpurl.py:433
#, python-format
msgid "Redirection to URL `%(newurl)s' with different scheme found; the original URL was `%(url)s'."
msgstr "Weiterleitung zu URL `%(newurl)s' mit anderem Schema gefunden; die Original-URL war `%(url)s'."
#: ../linkcheck/checker/httpurl.py:439
#: ../linkcheck/checker/httpurl.py:448
msgid "HTTP 301 (moved permanent) encountered: you should update this link."
msgstr "HTTP 301 (moved permanent) gefunden: sie sollten diesen Link aktualisieren."
#: ../linkcheck/checker/httpurl.py:481
#: ../linkcheck/checker/httpurl.py:490
msgid "OK"
msgstr "OK"
#: ../linkcheck/checker/httpurl.py:484
#: ../linkcheck/checker/httpurl.py:493
#, python-format
msgid "Last modified %(date)s."
msgstr "Letzte Änderung %(date)s."
#: ../linkcheck/checker/httpurl.py:581
#: ../linkcheck/checker/httpurl.py:590
#, python-format
msgid "Sent Cookie: %(cookie)s."
msgstr "Gesendetes Cookie: %(cookie)s."
#: ../linkcheck/checker/httpurl.py:587
#: ../linkcheck/checker/httpurl.py:596
#, python-format
msgid "Could not store cookies from headers: %(error)s."
msgstr "Konnte Cookies nicht aus Kopfdaten speichern: %(error)s."
#: ../linkcheck/checker/httpurl.py:650
#: ../linkcheck/checker/httpurl.py:659
#, python-format
msgid "Unsupported HTTP url scheme `%(scheme)s'"
msgstr "Nicht unterstütztes HTTP URL Schema `%(scheme)s'"
#: ../linkcheck/checker/httpurl.py:696
#: ../linkcheck/checker/httpurl.py:705
#, python-format
msgid "Decompress error %(err)s"
msgstr "Entkomprimierungsfehler %(err)s"
#: ../linkcheck/checker/httpurl.py:712
#: ../linkcheck/checker/httpurl.py:721
#, python-format
msgid "Unsupported content encoding `%(encoding)s'."
msgstr "Content-Encoding `%(encoding)s' wird nicht unterstützt."
@ -1104,237 +1105,237 @@ msgstr "Laufe als Benutzer root; Privilegien werden aufgegeben indem auf Benutze
msgid "LinkChecker debug log"
msgstr "LinkChecker Debugausgabe"
#: ../linkcheck/gui/linkchecker_ui_main.py:763
#: ../linkcheck/gui/linkchecker_ui_main.py:773
msgid "LinkChecker"
msgstr "LinkChecker"
#: ../linkcheck/gui/linkchecker_ui_main.py:764
#: ../linkcheck/gui/linkchecker_ui_main.py:774
msgid "URL:"
msgstr "URL:"
#: ../linkcheck/gui/linkchecker_ui_main.py:765
#: ../linkcheck/gui/linkchecker_ui_main.py:775
msgid "Start checking the given URL."
msgstr "Beginne, die gegebene URL zu Prüfen"
#: ../linkcheck/gui/linkchecker_ui_main.py:767
#: ../linkcheck/gui/linkchecker_ui_main.py:777
msgid "Active:"
msgstr "Aktiv:"
#: ../linkcheck/gui/linkchecker_ui_main.py:768
#: ../linkcheck/gui/linkchecker_ui_main.py:770
#: ../linkcheck/gui/linkchecker_ui_main.py:772
#: ../linkcheck/gui/linkchecker_ui_main.py:778
#: ../linkcheck/gui/linkchecker_ui_main.py:780
#: ../linkcheck/gui/linkchecker_ui_main.py:782
msgid "0"
msgstr "0"
#: ../linkcheck/gui/linkchecker_ui_main.py:769
#: ../linkcheck/gui/linkchecker_ui_main.py:779
msgid "Queued:"
msgstr "Wartend:"
#: ../linkcheck/gui/linkchecker_ui_main.py:771
#: ../linkcheck/gui/linkchecker_ui_main.py:781
msgid "Checked:"
msgstr "Geprüft:"
#: ../linkcheck/gui/linkchecker_ui_main.py:773
#: ../linkcheck/gui/linkchecker_ui_main.py:783
msgid "Info:"
msgstr "Info:"
#: ../linkcheck/gui/linkchecker_ui_main.py:774
#: ../linkcheck/gui/linkchecker_ui_main.py:784
msgid "-"
msgstr "-"
#: ../linkcheck/gui/linkchecker_ui_main.py:775
#: ../linkcheck/gui/linkchecker_ui_main.py:785
msgid "URL properties"
msgstr "URL Eigenschaften"
#: ../linkcheck/gui/linkchecker_ui_main.py:786
#: ../linkcheck/gui/linkchecker_ui_main.py:796
msgid "Check results"
msgstr "Prüfergebnisse"
#: ../linkcheck/gui/linkchecker_ui_main.py:787
#: ../linkcheck/gui/linkchecker_ui_main.py:797
msgid "Valid URLs"
msgstr "Gültige URLs"
#: ../linkcheck/gui/linkchecker_ui_main.py:788
#: ../linkcheck/gui/linkchecker_ui_main.py:798
msgid "Warnings"
msgstr "Warnungen"
#: ../linkcheck/gui/linkchecker_ui_main.py:789
#: ../linkcheck/gui/linkchecker_ui_main.py:799
msgid "Invalid URLs"
msgstr "Ungültige URLs"
#: ../linkcheck/gui/linkchecker_ui_main.py:790
#: ../linkcheck/gui/linkchecker_ui_main.py:800
msgid "Content type statistics"
msgstr "Inhaltstatistik"
#: ../linkcheck/gui/linkchecker_ui_main.py:791
#: ../linkcheck/gui/linkchecker_ui_main.py:801
msgid "Image"
msgstr "Bild"
#: ../linkcheck/gui/linkchecker_ui_main.py:792
#: ../linkcheck/gui/linkchecker_ui_main.py:802
msgid "Text"
msgstr "Text"
#: ../linkcheck/gui/linkchecker_ui_main.py:793
#: ../linkcheck/gui/linkchecker_ui_main.py:803
msgid "Application"
msgstr "Anwendung"
#: ../linkcheck/gui/linkchecker_ui_main.py:794
#: ../linkcheck/gui/linkchecker_ui_main.py:804
msgid "Audio"
msgstr "Audio"
#: ../linkcheck/gui/linkchecker_ui_main.py:795
#: ../linkcheck/gui/linkchecker_ui_main.py:805
msgid "Video"
msgstr "Video"
#: ../linkcheck/gui/linkchecker_ui_main.py:796
#: ../linkcheck/gui/linkchecker_ui_main.py:806
msgid "Other"
msgstr "Andere"
#: ../linkcheck/gui/linkchecker_ui_main.py:797
#: ../linkcheck/gui/linkchecker_ui_main.py:807
msgid "Mail"
msgstr "E-Mail"
#: ../linkcheck/gui/linkchecker_ui_main.py:798
#: ../linkcheck/gui/linkchecker_ui_main.py:808
msgid "URL statistics"
msgstr "URL Statistik"
#: ../linkcheck/gui/linkchecker_ui_main.py:799
#: ../linkcheck/gui/linkchecker_ui_main.py:809
msgid "Min. length"
msgstr "Min. Länge"
#: ../linkcheck/gui/linkchecker_ui_main.py:800
#: ../linkcheck/gui/linkchecker_ui_main.py:810
msgid "Avg. length"
msgstr "Durchschn. Länge"
#: ../linkcheck/gui/linkchecker_ui_main.py:801
#: ../linkcheck/gui/linkchecker_ui_main.py:811
msgid "Max. length"
msgstr "Max. Länge"
#: ../linkcheck/gui/linkchecker_ui_main.py:802
#: ../linkcheck/gui/linkchecker_ui_main.py:812
msgid "Domains"
msgstr "Domains"
#: ../linkcheck/gui/linkchecker_ui_main.py:803
#: ../linkcheck/gui/linkchecker_ui_main.py:813
msgid "&Edit"
msgstr "&Bearbeiten"
#: ../linkcheck/gui/linkchecker_ui_main.py:804
#: ../linkcheck/gui/linkchecker_ui_main.py:814
#: ../linkcheck/gui/linkchecker_ui_editor.py:34
msgid "&File"
msgstr "&Datei"
#: ../linkcheck/gui/linkchecker_ui_main.py:805
#: ../linkcheck/gui/linkchecker_ui_main.py:808
#: ../linkcheck/gui/linkchecker_ui_main.py:815
#: ../linkcheck/gui/linkchecker_ui_main.py:818
msgid "&Help"
msgstr "&Hilfe"
#: ../linkcheck/gui/linkchecker_ui_main.py:806
#: ../linkcheck/gui/linkchecker_ui_main.py:816
msgid "A&bout"
msgstr "Ü&ber"
#: ../linkcheck/gui/linkchecker_ui_main.py:807
#: ../linkcheck/gui/linkchecker_ui_main.py:817
msgid "About"
msgstr "Über"
#: ../linkcheck/gui/linkchecker_ui_main.py:809
#: ../linkcheck/gui/linkchecker_ui_main.py:819
msgid "Help"
msgstr "Hilfe"
#: ../linkcheck/gui/linkchecker_ui_main.py:810
#: ../linkcheck/gui/linkchecker_ui_main.py:820
msgid "View online"
msgstr "Online anschauen"
#: ../linkcheck/gui/linkchecker_ui_main.py:811
#: ../linkcheck/gui/linkchecker_ui_main.py:821
msgid "View URL online"
msgstr "URL Online anschauen"
#: ../linkcheck/gui/linkchecker_ui_main.py:812
#: ../linkcheck/gui/linkchecker_ui_main.py:822
msgid "&Options"
msgstr "&Optionen"
#: ../linkcheck/gui/linkchecker_ui_main.py:813
#: ../linkcheck/gui/linkchecker_ui_main.py:823
#: ../linkcheck/gui/linkchecker_ui_options.py:137
#: /usr/lib/python2.7/optparse.py:1626
msgid "Options"
msgstr "Optionen"
#: ../linkcheck/gui/linkchecker_ui_main.py:814
#: ../linkcheck/gui/linkchecker_ui_main.py:824
msgid "Copy to clipboard"
msgstr "URL kopieren"
#: ../linkcheck/gui/linkchecker_ui_main.py:815
#: ../linkcheck/gui/linkchecker_ui_main.py:825
msgid "Copy URL to clipboard"
msgstr "URL in die Zwischenablage kopieren"
#: ../linkcheck/gui/linkchecker_ui_main.py:816
#: ../linkcheck/gui/linkchecker_ui_main.py:826
msgid "Ctrl+C"
msgstr "Strg+C"
#: ../linkcheck/gui/linkchecker_ui_main.py:817
#: ../linkcheck/gui/linkchecker_ui_main.py:827
msgid "View parent online"
msgstr "Vater-URL Online anschauen"
#: ../linkcheck/gui/linkchecker_ui_main.py:818
#: ../linkcheck/gui/linkchecker_ui_main.py:828
msgid "View parent URL online"
msgstr "Vater-URL Online anschauen"
#: ../linkcheck/gui/linkchecker_ui_main.py:819
#: ../linkcheck/gui/linkchecker_ui_main.py:829
msgid "View parent source"
msgstr "Quellcode der Vater-URL anzeigen"
#: ../linkcheck/gui/linkchecker_ui_main.py:820
#: ../linkcheck/gui/linkchecker_ui_main.py:830
msgid "View parent URL source"
msgstr "Quellcode der Vater-URL anzeigen"
#: ../linkcheck/gui/linkchecker_ui_main.py:821
#: ../linkcheck/gui/linkchecker_ui_main.py:831
msgid "Show debug"
msgstr "Zeige Debug"
#: ../linkcheck/gui/linkchecker_ui_main.py:822
#: ../linkcheck/gui/linkchecker_ui_main.py:832
msgid "View properties"
msgstr "Eigenschaften anschauen"
#: ../linkcheck/gui/linkchecker_ui_main.py:823
#: ../linkcheck/gui/linkchecker_ui_main.py:833
msgid "View URL properties"
msgstr "URL Eigenschaften anschauen"
#: ../linkcheck/gui/linkchecker_ui_main.py:824
#: ../linkcheck/gui/linkchecker_ui_main.py:834
msgid "Save &results..."
msgstr "E&rgebnisse speichern..."
#: ../linkcheck/gui/linkchecker_ui_main.py:825
#: ../linkcheck/gui/linkchecker_ui_main.py:835
msgid "&Quit"
msgstr "&Beenden"
#: ../linkcheck/gui/linkchecker_ui_main.py:826
#: ../linkcheck/gui/linkchecker_ui_main.py:836
msgid "Ctrl+Q"
msgstr "Strg+Q"
#: ../linkcheck/gui/linkchecker_ui_main.py:827
#: ../linkcheck/gui/linkchecker_ui_main.py:837
msgid "Check for updates"
msgstr "Prüfe auf Updates"
#: ../linkcheck/gui/linkchecker_ui_main.py:828
#: ../linkcheck/gui/linkchecker_ui_main.py:838
msgid "Donate"
msgstr "Spenden"
#: ../linkcheck/gui/linkchecker_ui_main.py:829
#: ../linkcheck/gui/linkchecker_ui_main.py:839
msgid "&Open project..."
msgstr "&Projekt öffnen..."
#: ../linkcheck/gui/linkchecker_ui_main.py:830
#: ../linkcheck/gui/linkchecker_ui_main.py:840
msgid "Open project"
msgstr "Projekt öffnen"
#: ../linkcheck/gui/linkchecker_ui_main.py:831
#: ../linkcheck/gui/linkchecker_ui_main.py:841
msgid "Ctrl+O"
msgstr "Strg+O"
#: ../linkcheck/gui/linkchecker_ui_main.py:832
#: ../linkcheck/gui/linkchecker_ui_main.py:842
msgid "&Save project..."
msgstr "Projekt &speichern..."
#: ../linkcheck/gui/linkchecker_ui_main.py:833
#: ../linkcheck/gui/linkchecker_ui_main.py:843
#: ../linkcheck/gui/linkchecker_ui_editor.py:50
msgid "Ctrl+S"
msgstr "Strg+S"
@ -2498,6 +2499,9 @@ msgstr "%s Option erfordert %d Argumente"
msgid "%s option does not take a value"
msgstr "%s Option nimmt kein Wert"
#~ msgid "unauthorized access is missing WWW-Authenticate header"
#~ msgstr "dem nicht authorisierten Zugriff fehlt der WWW-Authenticate Header"
#~ msgid "Amazon servers block HTTP HEAD requests."
#~ msgstr "Amazon Server blockieren HTTP HEAD Anfragen."

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: calvin@users.sourceforge.net\n"
"POT-Creation-Date: 2012-08-23 23:58+0200\n"
"POT-Creation-Date: 2012-08-26 10:48+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"
@ -357,22 +357,22 @@ msgid "Cache key"
msgstr ""
#: ../linkcheck/logger/__init__.py:33
#: ../linkcheck/gui/linkchecker_ui_main.py:785 ../linkcheck/gui/urlmodel.py:22
#: ../linkcheck/gui/linkchecker_ui_main.py:795 ../linkcheck/gui/urlmodel.py:22
msgid "Result"
msgstr ""
#: ../linkcheck/logger/__init__.py:34
#: ../linkcheck/gui/linkchecker_ui_main.py:779
#: ../linkcheck/gui/linkchecker_ui_main.py:789
msgid "Base"
msgstr ""
#: ../linkcheck/logger/__init__.py:35
#: ../linkcheck/gui/linkchecker_ui_main.py:777 ../linkcheck/gui/urlmodel.py:22
#: ../linkcheck/gui/linkchecker_ui_main.py:787 ../linkcheck/gui/urlmodel.py:22
msgid "Name"
msgstr ""
#: ../linkcheck/logger/__init__.py:36
#: ../linkcheck/gui/linkchecker_ui_main.py:778
#: ../linkcheck/gui/linkchecker_ui_main.py:788
msgid "Parent URL"
msgstr ""
@ -381,32 +381,32 @@ msgid "Extern"
msgstr ""
#: ../linkcheck/logger/__init__.py:38
#: ../linkcheck/gui/linkchecker_ui_main.py:783
#: ../linkcheck/gui/linkchecker_ui_main.py:793
msgid "Info"
msgstr ""
#: ../linkcheck/logger/__init__.py:39
#: ../linkcheck/gui/linkchecker_ui_main.py:784
#: ../linkcheck/gui/linkchecker_ui_main.py:794
msgid "Warning"
msgstr ""
#: ../linkcheck/logger/__init__.py:40
#: ../linkcheck/gui/linkchecker_ui_main.py:781
#: ../linkcheck/gui/linkchecker_ui_main.py:791
msgid "D/L time"
msgstr ""
#: ../linkcheck/logger/__init__.py:41
#: ../linkcheck/gui/linkchecker_ui_main.py:782
#: ../linkcheck/gui/linkchecker_ui_main.py:792
msgid "Size"
msgstr ""
#: ../linkcheck/logger/__init__.py:42
#: ../linkcheck/gui/linkchecker_ui_main.py:780
#: ../linkcheck/gui/linkchecker_ui_main.py:790
msgid "Check time"
msgstr ""
#: ../linkcheck/logger/__init__.py:43
#: ../linkcheck/gui/linkchecker_ui_main.py:776 ../linkcheck/gui/urlmodel.py:22
#: ../linkcheck/gui/linkchecker_ui_main.py:786 ../linkcheck/gui/urlmodel.py:22
msgid "URL"
msgstr ""
@ -461,111 +461,115 @@ msgstr ""
msgid "URL is unrecognized or has invalid syntax"
msgstr ""
#: ../linkcheck/checker/const.py:105
#: ../linkcheck/checker/const.py:106
msgid "The effective URL is different from the original."
msgstr ""
#: ../linkcheck/checker/const.py:107
#: ../linkcheck/checker/const.py:108
msgid "Could not get the content of the URL."
msgstr ""
#: ../linkcheck/checker/const.py:108
#: ../linkcheck/checker/const.py:109
msgid "URL anchor was not found."
msgstr ""
#: ../linkcheck/checker/const.py:110
#: ../linkcheck/checker/const.py:111
msgid "The warning regular expression was found in the URL contents."
msgstr ""
#: ../linkcheck/checker/const.py:111
#: ../linkcheck/checker/const.py:112
msgid "The URL content size is too large."
msgstr ""
#: ../linkcheck/checker/const.py:112
#: ../linkcheck/checker/const.py:113
msgid "The URL content size is zero."
msgstr ""
#: ../linkcheck/checker/const.py:113
#: ../linkcheck/checker/const.py:114
msgid "The URL content size and download size are unequal."
msgstr ""
#: ../linkcheck/checker/const.py:114
#: ../linkcheck/checker/const.py:115
msgid "The URL contains leading or trailing whitespace."
msgstr ""
#: ../linkcheck/checker/const.py:115
#: ../linkcheck/checker/const.py:116
msgid "The file: URL is missing a trailing slash."
msgstr ""
#: ../linkcheck/checker/const.py:117
#: ../linkcheck/checker/const.py:118
msgid "The file: path is not the same as the system specific path."
msgstr ""
#: ../linkcheck/checker/const.py:118
#: ../linkcheck/checker/const.py:119
msgid "The ftp: URL is missing a trailing slash."
msgstr ""
#: ../linkcheck/checker/const.py:119
#: ../linkcheck/checker/const.py:120
msgid "The http: URL checking has been denied."
msgstr ""
#: ../linkcheck/checker/const.py:120
#: ../linkcheck/checker/const.py:121
msgid "The URL has moved permanently."
msgstr ""
#: ../linkcheck/checker/const.py:122
#: ../linkcheck/checker/const.py:123
msgid "The URL has been redirected to an URL of a different type."
msgstr ""
#: ../linkcheck/checker/const.py:123
#: ../linkcheck/checker/const.py:124
msgid "The URL had no content."
msgstr ""
#: ../linkcheck/checker/const.py:125
#: ../linkcheck/checker/const.py:126
msgid "An error occurred while storing a cookie."
msgstr ""
#: ../linkcheck/checker/const.py:127
#: ../linkcheck/checker/const.py:128
msgid "An error occurred while decompressing the URL content."
msgstr ""
#: ../linkcheck/checker/const.py:129
#: ../linkcheck/checker/const.py:130
msgid "The URL content is encoded with an unknown encoding."
msgstr ""
#: ../linkcheck/checker/const.py:131
#: ../linkcheck/checker/const.py:132
msgid "Unsupported HTTP authentication method."
msgstr ""
#: ../linkcheck/checker/const.py:132
#: ../linkcheck/checker/const.py:134 ../linkcheck/checker/httpurl.py:235
msgid "Unauthorized access without HTTP authentication."
msgstr ""
#: ../linkcheck/checker/const.py:135
msgid "The SSL certificate is invalid or expired."
msgstr ""
#: ../linkcheck/checker/const.py:133
#: ../linkcheck/checker/const.py:136
msgid "The URL has been ignored."
msgstr ""
#: ../linkcheck/checker/const.py:134
#: ../linkcheck/checker/const.py:137
msgid "The mail MX host could not be found."
msgstr ""
#: ../linkcheck/checker/const.py:136
#: ../linkcheck/checker/const.py:139
msgid "The mailto: address could not be verified."
msgstr ""
#: ../linkcheck/checker/const.py:138
#: ../linkcheck/checker/const.py:141
msgid "No connection to a MX host could be established."
msgstr ""
#: ../linkcheck/checker/const.py:139
#: ../linkcheck/checker/const.py:142
msgid "No NNTP server was found."
msgstr ""
#: ../linkcheck/checker/const.py:140
#: ../linkcheck/checker/const.py:143
msgid "The NNTP newsgroup could not be found."
msgstr ""
#: ../linkcheck/checker/const.py:141
#: ../linkcheck/checker/const.py:144
msgid "The IP is obfuscated."
msgstr ""
@ -766,7 +770,7 @@ msgid "Available anchors: %(anchors)s."
msgstr ""
#: ../linkcheck/checker/urlbase.py:728 ../linkcheck/checker/fileurl.py:193
#: ../linkcheck/checker/httpurl.py:676
#: ../linkcheck/checker/httpurl.py:685
msgid "File size too large"
msgstr ""
@ -926,92 +930,88 @@ msgstr ""
msgid "more than %d redirections, aborting"
msgstr ""
#: ../linkcheck/checker/httpurl.py:250
msgid "unauthorized access is missing WWW-Authenticate header"
msgstr ""
#: ../linkcheck/checker/httpurl.py:257
#: ../linkcheck/checker/httpurl.py:242
#, python-format
msgid ""
"Unsupported HTTP authentication `%(auth)s', only `Basic' authentication is "
"supported."
msgstr ""
#: ../linkcheck/checker/httpurl.py:314
#: ../linkcheck/checker/httpurl.py:323
#, python-format
msgid "Redirected to `%(url)s'."
msgstr ""
#: ../linkcheck/checker/httpurl.py:358
#: ../linkcheck/checker/httpurl.py:367
#, python-format
msgid "Redirection to url `%(newurl)s' is not allowed."
msgstr ""
#: ../linkcheck/checker/httpurl.py:360 ../linkcheck/checker/httpurl.py:395
#: ../linkcheck/checker/httpurl.py:429
#: ../linkcheck/checker/httpurl.py:369 ../linkcheck/checker/httpurl.py:404
#: ../linkcheck/checker/httpurl.py:438
msgid "syntax OK"
msgstr ""
#: ../linkcheck/checker/httpurl.py:380
#: ../linkcheck/checker/httpurl.py:389
msgid "The redirected URL is outside of the domain filter, checked only syntax."
msgstr ""
#: ../linkcheck/checker/httpurl.py:382
#: ../linkcheck/checker/httpurl.py:391
msgid "filtered"
msgstr ""
#: ../linkcheck/checker/httpurl.py:393
#: ../linkcheck/checker/httpurl.py:402
msgid "Access to redirected URL denied by robots.txt, checked only syntax."
msgstr ""
#: ../linkcheck/checker/httpurl.py:411
#: ../linkcheck/checker/httpurl.py:420
#, python-format
msgid ""
"recursive redirection encountered:\n"
" %(urls)s"
msgstr ""
#: ../linkcheck/checker/httpurl.py:424
#: ../linkcheck/checker/httpurl.py:433
#, python-format
msgid ""
"Redirection to URL `%(newurl)s' with different scheme found; the original URL "
"was `%(url)s'."
msgstr ""
#: ../linkcheck/checker/httpurl.py:439
#: ../linkcheck/checker/httpurl.py:448
msgid "HTTP 301 (moved permanent) encountered: you should update this link."
msgstr ""
#: ../linkcheck/checker/httpurl.py:481
#: ../linkcheck/checker/httpurl.py:490
msgid "OK"
msgstr ""
#: ../linkcheck/checker/httpurl.py:484
#: ../linkcheck/checker/httpurl.py:493
#, python-format
msgid "Last modified %(date)s."
msgstr ""
#: ../linkcheck/checker/httpurl.py:581
#: ../linkcheck/checker/httpurl.py:590
#, python-format
msgid "Sent Cookie: %(cookie)s."
msgstr ""
#: ../linkcheck/checker/httpurl.py:587
#: ../linkcheck/checker/httpurl.py:596
#, python-format
msgid "Could not store cookies from headers: %(error)s."
msgstr ""
#: ../linkcheck/checker/httpurl.py:650
#: ../linkcheck/checker/httpurl.py:659
#, python-format
msgid "Unsupported HTTP url scheme `%(scheme)s'"
msgstr ""
#: ../linkcheck/checker/httpurl.py:696
#: ../linkcheck/checker/httpurl.py:705
#, python-format
msgid "Decompress error %(err)s"
msgstr ""
#: ../linkcheck/checker/httpurl.py:712
#: ../linkcheck/checker/httpurl.py:721
#, python-format
msgid "Unsupported content encoding `%(encoding)s'."
msgstr ""
@ -1075,237 +1075,237 @@ msgstr ""
msgid "LinkChecker debug log"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:763
#: ../linkcheck/gui/linkchecker_ui_main.py:773
msgid "LinkChecker"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:764
#: ../linkcheck/gui/linkchecker_ui_main.py:774
msgid "URL:"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:765
#: ../linkcheck/gui/linkchecker_ui_main.py:775
msgid "Start checking the given URL."
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:767
#: ../linkcheck/gui/linkchecker_ui_main.py:777
msgid "Active:"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:768
#: ../linkcheck/gui/linkchecker_ui_main.py:770
#: ../linkcheck/gui/linkchecker_ui_main.py:772
#: ../linkcheck/gui/linkchecker_ui_main.py:778
#: ../linkcheck/gui/linkchecker_ui_main.py:780
#: ../linkcheck/gui/linkchecker_ui_main.py:782
msgid "0"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:769
#: ../linkcheck/gui/linkchecker_ui_main.py:779
msgid "Queued:"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:771
#: ../linkcheck/gui/linkchecker_ui_main.py:781
msgid "Checked:"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:773
#: ../linkcheck/gui/linkchecker_ui_main.py:783
msgid "Info:"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:774
#: ../linkcheck/gui/linkchecker_ui_main.py:784
msgid "-"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:775
#: ../linkcheck/gui/linkchecker_ui_main.py:785
msgid "URL properties"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:786
#: ../linkcheck/gui/linkchecker_ui_main.py:796
msgid "Check results"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:787
#: ../linkcheck/gui/linkchecker_ui_main.py:797
msgid "Valid URLs"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:788
#: ../linkcheck/gui/linkchecker_ui_main.py:798
msgid "Warnings"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:789
#: ../linkcheck/gui/linkchecker_ui_main.py:799
msgid "Invalid URLs"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:790
#: ../linkcheck/gui/linkchecker_ui_main.py:800
msgid "Content type statistics"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:791
#: ../linkcheck/gui/linkchecker_ui_main.py:801
msgid "Image"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:792
#: ../linkcheck/gui/linkchecker_ui_main.py:802
msgid "Text"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:793
#: ../linkcheck/gui/linkchecker_ui_main.py:803
msgid "Application"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:794
#: ../linkcheck/gui/linkchecker_ui_main.py:804
msgid "Audio"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:795
#: ../linkcheck/gui/linkchecker_ui_main.py:805
msgid "Video"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:796
#: ../linkcheck/gui/linkchecker_ui_main.py:806
msgid "Other"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:797
#: ../linkcheck/gui/linkchecker_ui_main.py:807
msgid "Mail"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:798
#: ../linkcheck/gui/linkchecker_ui_main.py:808
msgid "URL statistics"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:799
#: ../linkcheck/gui/linkchecker_ui_main.py:809
msgid "Min. length"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:800
#: ../linkcheck/gui/linkchecker_ui_main.py:810
msgid "Avg. length"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:801
#: ../linkcheck/gui/linkchecker_ui_main.py:811
msgid "Max. length"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:802
#: ../linkcheck/gui/linkchecker_ui_main.py:812
msgid "Domains"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:803
#: ../linkcheck/gui/linkchecker_ui_main.py:813
msgid "&Edit"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:804
#: ../linkcheck/gui/linkchecker_ui_main.py:814
#: ../linkcheck/gui/linkchecker_ui_editor.py:34
msgid "&File"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:805
#: ../linkcheck/gui/linkchecker_ui_main.py:808
#: ../linkcheck/gui/linkchecker_ui_main.py:815
#: ../linkcheck/gui/linkchecker_ui_main.py:818
msgid "&Help"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:806
#: ../linkcheck/gui/linkchecker_ui_main.py:816
msgid "A&bout"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:807
#: ../linkcheck/gui/linkchecker_ui_main.py:817
msgid "About"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:809
#: ../linkcheck/gui/linkchecker_ui_main.py:819
msgid "Help"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:810
#: ../linkcheck/gui/linkchecker_ui_main.py:820
msgid "View online"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:811
#: ../linkcheck/gui/linkchecker_ui_main.py:821
msgid "View URL online"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:812
#: ../linkcheck/gui/linkchecker_ui_main.py:822
msgid "&Options"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:813
#: ../linkcheck/gui/linkchecker_ui_main.py:823
#: ../linkcheck/gui/linkchecker_ui_options.py:137
#: /usr/lib/python2.7/optparse.py:1626
msgid "Options"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:814
#: ../linkcheck/gui/linkchecker_ui_main.py:824
msgid "Copy to clipboard"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:815
#: ../linkcheck/gui/linkchecker_ui_main.py:825
msgid "Copy URL to clipboard"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:816
#: ../linkcheck/gui/linkchecker_ui_main.py:826
msgid "Ctrl+C"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:817
#: ../linkcheck/gui/linkchecker_ui_main.py:827
msgid "View parent online"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:818
#: ../linkcheck/gui/linkchecker_ui_main.py:828
msgid "View parent URL online"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:819
#: ../linkcheck/gui/linkchecker_ui_main.py:829
msgid "View parent source"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:820
#: ../linkcheck/gui/linkchecker_ui_main.py:830
msgid "View parent URL source"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:821
#: ../linkcheck/gui/linkchecker_ui_main.py:831
msgid "Show debug"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:822
#: ../linkcheck/gui/linkchecker_ui_main.py:832
msgid "View properties"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:823
#: ../linkcheck/gui/linkchecker_ui_main.py:833
msgid "View URL properties"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:824
#: ../linkcheck/gui/linkchecker_ui_main.py:834
msgid "Save &results..."
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:825
#: ../linkcheck/gui/linkchecker_ui_main.py:835
msgid "&Quit"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:826
#: ../linkcheck/gui/linkchecker_ui_main.py:836
msgid "Ctrl+Q"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:827
#: ../linkcheck/gui/linkchecker_ui_main.py:837
msgid "Check for updates"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:828
#: ../linkcheck/gui/linkchecker_ui_main.py:838
msgid "Donate"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:829
#: ../linkcheck/gui/linkchecker_ui_main.py:839
msgid "&Open project..."
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:830
#: ../linkcheck/gui/linkchecker_ui_main.py:840
msgid "Open project"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:831
#: ../linkcheck/gui/linkchecker_ui_main.py:841
msgid "Ctrl+O"
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:832
#: ../linkcheck/gui/linkchecker_ui_main.py:842
msgid "&Save project..."
msgstr ""
#: ../linkcheck/gui/linkchecker_ui_main.py:833
#: ../linkcheck/gui/linkchecker_ui_main.py:843
#: ../linkcheck/gui/linkchecker_ui_editor.py:50
msgid "Ctrl+S"
msgstr ""