mirror of
https://github.com/Hopiu/linkchecker.git
synced 2026-03-16 22:10:26 +00:00
Replace optparse with argparse.
This commit is contained in:
parent
c7a91f01aa
commit
b38317d57b
12 changed files with 632 additions and 560 deletions
|
|
@ -10,8 +10,8 @@ _linkcheck() {
|
|||
cur=${COMP_WORDS[COMP_CWORD]}
|
||||
prev=${COMP_WORDS[COMP_CWORD-1]}
|
||||
|
||||
if type _optcomplete &> /dev/null; then
|
||||
_optcomplete "$@"
|
||||
if type _argcomplete &> /dev/null; then
|
||||
_argcomplete "$@"
|
||||
else
|
||||
_filedir
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
Changes:
|
||||
- checking: Always use the W3C validator to check HTML or CSS syntax.
|
||||
- cmdline: Replace argument parsing. No changes in functionality, only
|
||||
the help text will be formatted different.
|
||||
|
||||
|
||||
8.4 "Frankenweenie" (released 25.01.2013)
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ First, install the required software.
|
|||
On Redhat systems, install the package qt-devel.
|
||||
|
||||
4. *Optional, for bash-completion:*
|
||||
optcomplete Python module from http://furius.ca/optcomplete/
|
||||
argcomplete Python module from https://pypi.python.org/pypi/argcomplete
|
||||
|
||||
6. *Optional, for displaying country codes:*
|
||||
GeoIP from http://www.maxmind.com/app/python
|
||||
|
|
|
|||
|
|
@ -6,7 +6,8 @@ Date: 08.08.2012
|
|||
OK Python
|
||||
OK Qt/PyQt
|
||||
OK mod_wsgi from http://code.google.com/p/modwsgi/
|
||||
TODO optcomplete from http://furius.ca/optcomplete/
|
||||
TODO GeoIP from http://www.maxmind.com/app/python
|
||||
TODO Twill from http://twill.idyll.org/
|
||||
TODO Python Gtk from http://www.pygtk.org/downloads.html
|
||||
OK argcomplete from https://pypi.python.org/pypi/argcomplete
|
||||
OK dnspython (as dnspython3)
|
||||
TODO(optional) GeoIP from http://www.maxmind.com/app/python
|
||||
TODO(optional) Twill from http://twill.idyll.org/
|
||||
TODO(optional) Python Gtk from http://www.pygtk.org/downloads.html
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# -*- coding: iso-8859-1 -*-
|
||||
# Copyright (C) 2000-2012 Bastian Kleineidam
|
||||
# Copyright (C) 2000-2013 Bastian Kleineidam
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
|
@ -19,10 +19,9 @@ Utility functions suitable for command line clients.
|
|||
"""
|
||||
from __future__ import print_function
|
||||
import sys
|
||||
import optparse
|
||||
from . import fileutil, ansicolor, strformat, checker
|
||||
from . import checker
|
||||
from .director import console
|
||||
from .decorators import notimplemented
|
||||
|
||||
|
||||
def print_version(exit_code=0):
|
||||
"""Print the program version and exit."""
|
||||
|
|
@ -38,83 +37,6 @@ def print_usage (msg, exit_code=2):
|
|||
sys.exit(exit_code)
|
||||
|
||||
|
||||
class LCHelpFormatter (optparse.IndentedHelpFormatter, object):
|
||||
"""Help formatter indenting paragraph-wise."""
|
||||
|
||||
def __init__ (self):
|
||||
"""Set current console width for this formatter."""
|
||||
width = ansicolor.get_columns(sys.stdout)
|
||||
super(LCHelpFormatter, self).__init__(width=width)
|
||||
|
||||
def format_option (self, option):
|
||||
"""Customized help display with indentation."""
|
||||
# The help for each option consists of two parts:
|
||||
# * the opt strings and metavars
|
||||
# eg. ("-x", or "-fFILENAME, --file=FILENAME")
|
||||
# * the user-supplied help string
|
||||
# eg. ("turn on expert mode", "read data from FILENAME")
|
||||
|
||||
# If possible, we write both of these on the same line:
|
||||
# -x turn on expert mode
|
||||
|
||||
# But if the opt string list is too long, we put the help
|
||||
# string on a second line, indented to the same column it would
|
||||
# start in if it fit on the first line.
|
||||
# -fFILENAME, --file=FILENAME
|
||||
# read data from FILENAME
|
||||
result = []
|
||||
opts = self.option_strings[option]
|
||||
opt_width = self.help_position - self.current_indent - 2
|
||||
if len(opts) > opt_width:
|
||||
opts = "%*s%s\n" % (self.current_indent, "", opts)
|
||||
indent_first = self.help_position
|
||||
else: # start help on same line as opts
|
||||
opts = "%*s%-*s " % (self.current_indent, "", opt_width, opts)
|
||||
indent_first = 0
|
||||
result.append(opts)
|
||||
if option.help:
|
||||
text = strformat.wrap(option.help, self.help_width)
|
||||
help_lines = text.splitlines()
|
||||
result.append("%*s%s\n" % (indent_first, "", help_lines[0]))
|
||||
result.extend(["%*s%s\n" % (self.help_position, "", line)
|
||||
for line in help_lines[1:]])
|
||||
elif opts[-1] != "\n":
|
||||
result.append("\n")
|
||||
return "".join(result)
|
||||
|
||||
|
||||
class LCOptionParser (optparse.OptionParser, object):
|
||||
"""Option parser with custom help text layout."""
|
||||
|
||||
def __init__ (self, err_exit_code=2):
|
||||
"""Initializing using our own help formatter class."""
|
||||
super(LCOptionParser, self).__init__(formatter=LCHelpFormatter())
|
||||
self.err_exit_code = err_exit_code
|
||||
|
||||
def error (self, msg):
|
||||
"""Print usage info and given message."""
|
||||
print_usage(msg, exit_code=self.err_exit_code)
|
||||
|
||||
@notimplemented
|
||||
def get_usage (self):
|
||||
"""Print usage text."""
|
||||
pass
|
||||
|
||||
def print_help_msg (self, s, out):
|
||||
"""Print a help message to stdout."""
|
||||
s = console.encode(s)
|
||||
if fileutil.is_tty(out):
|
||||
strformat.paginate(s)
|
||||
else:
|
||||
print(s, file=out)
|
||||
sys.exit(0)
|
||||
|
||||
@notimplemented
|
||||
def print_help (self, file=None):
|
||||
"""Print help text to given file."""
|
||||
pass
|
||||
|
||||
|
||||
def aggregate_url (aggregate, url, err_exit_code=2):
|
||||
"""Append given commandline URL to input queue."""
|
||||
get_url_from = checker.get_url_from
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ def normpath (path):
|
|||
# List optional Python modules in the form (module, name)
|
||||
Modules = (
|
||||
("PyQt4.Qsci", u"QScintilla"),
|
||||
("optcomplete", u"Optcomplete"),
|
||||
("argcomplete", u"Argcomplete"),
|
||||
("GeoIP", u"GeoIP"), # on Unix systems
|
||||
("pygeoip", u"GeoIP"), # on Windows systems
|
||||
("twill", u"Twill"),
|
||||
|
|
|
|||
183
linkchecker
183
linkchecker
|
|
@ -25,15 +25,14 @@ import codecs
|
|||
import re
|
||||
import os
|
||||
import pprint
|
||||
import optparse
|
||||
import argparse
|
||||
import getpass
|
||||
# installs _() and _n() gettext functions into global namespace
|
||||
import linkcheck
|
||||
# override optparse gettext method with the one from linkcheck.init_i18n()
|
||||
optparse._ = _
|
||||
# override argparse gettext method with the one from linkcheck.init_i18n()
|
||||
#argparse._ = _
|
||||
# now import the rest of the linkchecker gang
|
||||
from linkcheck.cmdline import print_version, print_usage, LCOptionParser, \
|
||||
aggregate_url
|
||||
from linkcheck.cmdline import print_version, print_usage, aggregate_url
|
||||
from linkcheck import log, LOG_CMDLINE, i18n, strformat
|
||||
import linkcheck.checker
|
||||
import linkcheck.configuration
|
||||
|
|
@ -42,7 +41,7 @@ import linkcheck.logger
|
|||
import linkcheck.ansicolor
|
||||
from linkcheck.director import console, check_urls, get_aggregate
|
||||
# optional modules
|
||||
has_optcomplete = linkcheck.fileutil.has_module("optcomplete")
|
||||
has_argcomplete = linkcheck.fileutil.has_module("argcomplete")
|
||||
has_profile = linkcheck.fileutil.has_module("cProfile")
|
||||
has_pstats = linkcheck.fileutil.has_module("pstats")
|
||||
has_meliae = linkcheck.fileutil.has_module("meliae")
|
||||
|
|
@ -53,8 +52,6 @@ _username = None
|
|||
_password = None
|
||||
|
||||
# usage texts
|
||||
Usage = _("""USAGE\tlinkchecker [options] [file-or-url]...""")
|
||||
|
||||
Notes = _("""NOTES
|
||||
o URLs on the command line starting with "ftp." are treated like
|
||||
"ftp://ftp.", URLs starting with "www." are treated like "http://www.".
|
||||
|
|
@ -195,8 +192,10 @@ file entry:
|
|||
"\n".join([u" o %s - %s" % (tag, desc) \
|
||||
for tag, desc in sorted(linkcheck.checker.const.Warnings.items())])
|
||||
|
||||
Epilog = u"\n".join((Examples, LoggerTypes, RegularExpressions, CookieFormat, ProxySupport, Notes, Retval, Warnings))
|
||||
|
||||
def viewprof ():
|
||||
|
||||
def viewprof():
|
||||
"""Print profiling data and exit."""
|
||||
if not has_pstats:
|
||||
log.error(LOG_CMDLINE,
|
||||
|
|
@ -235,59 +234,45 @@ def has_encoding (encoding):
|
|||
return False
|
||||
|
||||
# instantiate option parser and configure options
|
||||
class MyOptionParser (LCOptionParser):
|
||||
"""Option parser for LinkChecker commandline client."""
|
||||
argparser = argparse.ArgumentParser(
|
||||
epilog=Epilog,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter
|
||||
)
|
||||
|
||||
def get_usage (self):
|
||||
"""Return translated usage text."""
|
||||
return Usage
|
||||
|
||||
def print_help (self, file=None):
|
||||
"""Print translated help text."""
|
||||
s = u"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s" % (self.format_help(),
|
||||
Examples, LoggerTypes, RegularExpressions, CookieFormat,
|
||||
ProxySupport, Notes, Retval, Warnings)
|
||||
self.print_help_msg(s, file)
|
||||
|
||||
# instantiate option parser and configure options
|
||||
optparser = MyOptionParser()
|
||||
|
||||
# build a config object for this check session
|
||||
config = linkcheck.configuration.Configuration()
|
||||
|
||||
################# general options ##################
|
||||
group = optparse.OptionGroup(optparser, _("General options"))
|
||||
group.add_option("-f", "--config", type="string", dest="configfile",
|
||||
group = argparser.add_argument_group(_("General options"))
|
||||
group.add_argument("-f", "--config", dest="configfile",
|
||||
metavar="FILENAME",
|
||||
help=_(
|
||||
"""Use FILENAME as configuration file. Per default LinkChecker uses
|
||||
~/.linkchecker/linkcheckerrc (under Windows
|
||||
%HOMEPATH%\\.linkchecker\\linkcheckerrc)."""))
|
||||
group.add_option("-t", "--threads", type="int", dest="threads",
|
||||
metavar="NUMBER",
|
||||
%%HOMEPATH%%\\.linkchecker\\linkcheckerrc)."""))
|
||||
group.add_argument("-t", "--threads", type=int, metavar="NUMBER",
|
||||
help=_(
|
||||
"""Generate no more than the given number of threads. Default number
|
||||
of threads is 10. To disable threading specify a non-positive number."""))
|
||||
group.add_option("-V", "--version", action="store_true", dest="version",
|
||||
group.add_argument("-V", "--version", action="store_true",
|
||||
help=_("""Print version and exit."""))
|
||||
group.add_option("--stdin", action="store_true", dest="stdin",
|
||||
group.add_argument("--stdin", action="store_true",
|
||||
help=_(
|
||||
"""Read list of white-space separated URLs to check from stdin."""))
|
||||
optparser.add_option_group(group)
|
||||
|
||||
################# output options ##################
|
||||
group = optparse.OptionGroup(optparser, _("Output options"))
|
||||
group.add_option("--check-css", action="store_true", dest="checkcss",
|
||||
group = argparser.add_argument_group(_("Output options"))
|
||||
group.add_argument("--check-css", action="store_true", dest="checkcss",
|
||||
help=_(
|
||||
"""Check syntax of CSS URLs with the W3C online validator."""))
|
||||
group.add_option("--check-html", action="store_true", dest="checkhtml",
|
||||
group.add_argument("--check-html", action="store_true", dest="checkhtml",
|
||||
help=_(
|
||||
"""Check syntax of HTML URLs with the W3C online validator."""))
|
||||
group.add_option("--complete", action="store_true", dest="complete",
|
||||
group.add_argument("--complete", action="store_true", dest="complete",
|
||||
help=_("""Log all URLs, including duplicates.
|
||||
Default is to log duplicate URLs only once."""))
|
||||
group.add_option("-D", "--debug", type="string", action="append",
|
||||
metavar="STRING",
|
||||
group.add_argument("-D", "--debug", action="append", metavar="STRING",
|
||||
help=_("""Print debugging output for the given logger.
|
||||
Available loggers are %(lognamelist)s.
|
||||
Specifying 'all' is an alias for specifying all available loggers.
|
||||
|
|
@ -296,8 +281,8 @@ than one logger.
|
|||
|
||||
For accurate results, threading will be disabled during debug runs.""") % \
|
||||
{"lognamelist": linkcheck.lognamelist})
|
||||
group.add_option("-F", "--file-output", type="string", action="append",
|
||||
dest="fileoutput", metavar="TYPE[/ENCODING][/FILENAME]",
|
||||
group.add_argument("-F", "--file-output", action="append",
|
||||
dest="fileoutput", metavar="TYPE[/ENCODING[/FILENAME]]",
|
||||
help=_(
|
||||
"""Output to a file linkchecker-out.TYPE, $HOME/.linkchecker/blacklist for
|
||||
'blacklist' output, or FILENAME if specified.
|
||||
|
|
@ -311,13 +296,12 @@ are %(loggertypes)s. You can specify this option multiple times to output
|
|||
to more than one file. Default is no file output. Note that you can
|
||||
suppress all console output with the option '-o none'.""") % \
|
||||
{'loggertypes': linkcheck.logger.LoggerKeys})
|
||||
group.add_option("--no-status", action="store_false", dest="status",
|
||||
group.add_argument("--no-status", action="store_false", dest="status",
|
||||
default=True, help=_(
|
||||
"""Do not print check status messages."""))
|
||||
group.add_option("--no-warnings", action="store_false", dest="warnings",
|
||||
group.add_argument("--no-warnings", action="store_false", dest="warnings",
|
||||
help=_("""Don't log warnings. Default is to log warnings."""))
|
||||
group.add_option("-o", "--output", type="string", dest="output",
|
||||
metavar="TYPE[/ENCODING]",
|
||||
group.add_argument("-o", "--output", dest="output", metavar="TYPE[/ENCODING]",
|
||||
help=_(
|
||||
"""Specify output as %(loggertypes)s. Default output type is text.
|
||||
The ENCODING specifies the output encoding, the default is that of your
|
||||
|
|
@ -325,23 +309,23 @@ locale.
|
|||
Valid encodings are listed at """ \
|
||||
"""http://docs.python.org/lib/standard-encodings.html.""") % \
|
||||
{'loggertypes': linkcheck.logger.LoggerKeys})
|
||||
group.add_option("--profile", action="store_true", dest="profile",
|
||||
help=optparse.SUPPRESS_HELP)
|
||||
group.add_option("-q", "--quiet", action="store_true", dest="quiet",
|
||||
group.add_argument("--profile", action="store_true", dest="profile",
|
||||
help=argparse.SUPPRESS)
|
||||
group.add_argument("-q", "--quiet", action="store_true", dest="quiet",
|
||||
help=_(
|
||||
"""Quiet operation, an alias for '-o none'.
|
||||
This is only useful with -F."""))
|
||||
group.add_option("--scan-virus", action="store_true", dest="scanvirus",
|
||||
group.add_argument("--scan-virus", action="store_true", dest="scanvirus",
|
||||
help=_(
|
||||
"""Scan content of URLs with ClamAV virus scanner."""))
|
||||
group.add_option("--trace", action="store_true", dest="trace",
|
||||
group.add_argument("--trace", action="store_true", dest="trace",
|
||||
help=_("""Print tracing information."""))
|
||||
group.add_option("-v", "--verbose", action="store_true", dest="verbose",
|
||||
group.add_argument("-v", "--verbose", action="store_true", dest="verbose",
|
||||
help=_(
|
||||
"""Log all URLs. Default is to log only errors and warnings."""))
|
||||
group.add_option("--viewprof", action="store_true", dest="viewprof",
|
||||
help=optparse.SUPPRESS_HELP)
|
||||
group.add_option("-W", "--warning-regex", type="string", dest="warningregex",
|
||||
group.add_argument("--viewprof", action="store_true", dest="viewprof",
|
||||
help=argparse.SUPPRESS)
|
||||
group.add_argument("-W", "--warning-regex", dest="warningregex",
|
||||
metavar="REGEX",
|
||||
help=_(
|
||||
"""Define a regular expression which prints a warning if it matches
|
||||
|
|
@ -354,99 +338,79 @@ Application error'.
|
|||
|
||||
Note that multiple values can be combined in the regular expression,
|
||||
for example "(This page has moved|Oracle Application error)"."""))
|
||||
group.add_option("--warning-size-bytes", dest="warningsizebytes",
|
||||
group.add_argument("--warning-size-bytes", dest="warningsizebytes",
|
||||
metavar="NUMBER",
|
||||
help=_(
|
||||
"""Print a warning if content size info is available and exceeds the
|
||||
given number of bytes."""))
|
||||
optparser.add_option_group(group)
|
||||
|
||||
|
||||
################# checking options ##################
|
||||
group = optparse.OptionGroup(optparser, _("Checking options"))
|
||||
group.add_option("-a", "--anchors", action="store_true", dest="anchors",
|
||||
group = argparser.add_argument_group(_("Checking options"))
|
||||
group.add_argument("-a", "--anchors", action="store_true", dest="anchors",
|
||||
help=_(
|
||||
"""Check HTTP anchor references. Default is not to check anchors.
|
||||
This option enables logging of the warning 'url-anchor-not-found'."""))
|
||||
group.add_option("-C", "--cookies", action="store_true", dest="cookies",
|
||||
group.add_argument("-C", "--cookies", action="store_true", dest="cookies",
|
||||
help=_(
|
||||
"""Accept and send HTTP cookies according to RFC 2109. Only cookies
|
||||
which are sent back to the originating server are accepted.
|
||||
Sent and accepted cookies are provided as additional logging
|
||||
information."""))
|
||||
group.add_option("--cookiefile", type="string", dest="cookiefile",
|
||||
metavar="FILENAME",
|
||||
group.add_argument("--cookiefile", dest="cookiefile", metavar="FILENAME",
|
||||
help=_(
|
||||
"""Read a file with initial cookie data. The cookie data format is
|
||||
explained below."""))
|
||||
group.add_option("--ignore-url", type="string", action="append",
|
||||
metavar="REGEX",
|
||||
group.add_argument("--ignore-url", action="append", metavar="REGEX",
|
||||
dest="externstrict", help=_(
|
||||
"""Only check syntax of URLs matching the given regular expression.
|
||||
This option can be given multiple times."""))
|
||||
group.add_option("--no-follow-url", type="string", action="append",
|
||||
metavar="REGEX",
|
||||
group.add_argument("--no-follow-url", action="append", metavar="REGEX",
|
||||
dest="extern", help=_(
|
||||
"""Check but do not recurse into URLs matching the given regular
|
||||
expression. This option can be given multiple times."""))
|
||||
group.add_option("-N", "--nntp-server", type="string", dest="nntpserver",
|
||||
metavar="STRING",
|
||||
group.add_argument("-N", "--nntp-server", dest="nntpserver", metavar="STRING",
|
||||
help=_(
|
||||
"""Specify an NNTP server for 'news:...' links. Default is the
|
||||
environment variable NNTP_SERVER. If no host is given,
|
||||
only the syntax of the link is checked."""))
|
||||
group.add_option("-p", "--password", action="store_false", dest="password",
|
||||
group.add_argument("-p", "--password", action="store_false", dest="password",
|
||||
default=False,
|
||||
help=_(
|
||||
"""Read a password from console and use it for HTTP and FTP authorization.
|
||||
For FTP the default password is 'anonymous@'. For HTTP there is
|
||||
no default password. See also -u."""))
|
||||
group.add_option("-P", "--pause", type="int", dest="pause",
|
||||
group.add_argument("-P", "--pause", type=int, dest="pause",
|
||||
metavar="NUMBER",
|
||||
help=_(
|
||||
"""Pause the given number of seconds between two subsequent connection
|
||||
requests to the same host. Default is no pause between requests."""))
|
||||
group.add_option("-r", "--recursion-level", type="int", dest="recursionlevel",
|
||||
metavar="NUMBER",
|
||||
group.add_argument("-r", "--recursion-level", type=int,
|
||||
dest="recursionlevel", metavar="NUMBER",
|
||||
help=_(
|
||||
"""Check recursively all links up to given depth. A negative depth
|
||||
will enable infinite recursion. Default depth is infinite."""))
|
||||
group.add_option("--timeout", type="int", dest="timeout",
|
||||
group.add_argument("--timeout", type=int, dest="timeout",
|
||||
metavar="NUMBER",
|
||||
help=_(
|
||||
"""Set the timeout for connection attempts in seconds. The default
|
||||
timeout is %d seconds.""") % config["timeout"])
|
||||
group.add_option("-u", "--user", type="string", dest="username",
|
||||
metavar="STRING",
|
||||
group.add_argument("-u", "--user", dest="username", metavar="STRING",
|
||||
help=_(
|
||||
"""Try the given username for HTTP and FTP authorization.
|
||||
For FTP the default username is 'anonymous'. For HTTP there is
|
||||
no default username. See also -p."""))
|
||||
group.add_option("--user-agent", type="string", dest="useragent",
|
||||
metavar="STRING",
|
||||
group.add_argument("--user-agent", dest="useragent", metavar="STRING",
|
||||
help=_(
|
||||
"""Specify the User-Agent string to send to the HTTP server, for example
|
||||
"Mozilla/4.0". The default is "LinkChecker/X.Y" where X.Y is the current
|
||||
version of LinkChecker."""))
|
||||
optparser.add_option_group(group)
|
||||
|
||||
argparser.add_argument('url', nargs='*')
|
||||
################# auto completion #####################
|
||||
if has_optcomplete:
|
||||
import optcomplete
|
||||
|
||||
def FileCompleter (cwd, line, point, prefix, suffix):
|
||||
"""Completes by listing all possible files, here or matching
|
||||
substrings"""
|
||||
startdir = os.path.dirname(prefix)
|
||||
lhs = os.path.basename(prefix)
|
||||
if startdir:
|
||||
listdir = startdir
|
||||
else:
|
||||
listdir = cwd
|
||||
return [os.path.join(startdir, f)
|
||||
for f in os.listdir(os.path.expanduser(listdir))
|
||||
if f.startswith(lhs)]
|
||||
optcomplete.autocomplete(optparser, arg_completer=FileCompleter)
|
||||
if has_argcomplete:
|
||||
import argcomplete
|
||||
argcomplete.autocomplete(argparser)
|
||||
|
||||
|
||||
def read_stdin_urls ():
|
||||
|
|
@ -465,7 +429,8 @@ def read_stdin_urls ():
|
|||
|
||||
|
||||
# read and parse command line options and arguments
|
||||
(options, args) = optparser.parse_args()
|
||||
options = argparser.parse_args()
|
||||
|
||||
# initialize logging
|
||||
if options.debug:
|
||||
allowed_debugs = linkcheck.lognames.keys()
|
||||
|
|
@ -496,9 +461,9 @@ if options.debug and not __debug__:
|
|||
# apply commandline options and arguments to configuration
|
||||
constructauth = False
|
||||
do_profile = False
|
||||
if options.warnings is not None:
|
||||
if options.warnings:
|
||||
config["warnings"] = options.warnings
|
||||
if options.anchors is not None:
|
||||
if options.anchors:
|
||||
config["anchors"] = options.anchors
|
||||
if options.externstrict:
|
||||
pats = [linkcheck.get_link_pat(arg, strict=True) \
|
||||
|
|
@ -560,7 +525,7 @@ if options.fileoutput:
|
|||
config['fileoutput'].append(logger)
|
||||
if options.nntpserver:
|
||||
config["nntpserver"] = options.nntpserver
|
||||
if options.username is not None:
|
||||
if options.username:
|
||||
_username = options.username
|
||||
constructauth = True
|
||||
if options.password:
|
||||
|
|
@ -577,13 +542,13 @@ if options.pause is not None:
|
|||
else:
|
||||
print_usage(_("Illegal argument %(arg)r for option %(option)s") % \
|
||||
{"arg": options.pause, "option": "'-P, --pause'"})
|
||||
if options.profile is not None:
|
||||
if options.profile:
|
||||
do_profile = options.profile
|
||||
if options.quiet is not None:
|
||||
if options.quiet:
|
||||
config['logger'] = config.logger_new('none')
|
||||
if options.recursionlevel is not None:
|
||||
config["recursionlevel"] = options.recursionlevel
|
||||
if options.status is not None:
|
||||
if options.status:
|
||||
config['status'] = options.status
|
||||
if options.threads is not None:
|
||||
if options.threads < 1:
|
||||
|
|
@ -595,13 +560,13 @@ if options.timeout is not None:
|
|||
else:
|
||||
print_usage(_("Illegal argument %(arg)r for option %(option)s") % \
|
||||
{"arg": options.timeout, "option": "'--timeout'"})
|
||||
if options.version is not None:
|
||||
if options.version:
|
||||
print_version()
|
||||
if options.verbose is not None:
|
||||
if options.verbose:
|
||||
if options.verbose:
|
||||
config["verbose"] = True
|
||||
config["warnings"] = True
|
||||
if options.complete is not None:
|
||||
if options.complete:
|
||||
if options.complete:
|
||||
config["complete"] = True
|
||||
config["verbose"] = True
|
||||
|
|
@ -613,18 +578,16 @@ if options.warningregex is not None:
|
|||
config["warnings"] = True
|
||||
if options.warningsizebytes is not None:
|
||||
config["warnsizebytes"] = options.warningsizebytes
|
||||
if options.cookies is not None:
|
||||
if options.cookies:
|
||||
config['storecookies'] = config['sendcookies'] = options.cookies
|
||||
if options.cookiefile is not None:
|
||||
config['cookiefile'] = options.cookiefile
|
||||
config['storecookies'] = config['sendcookies'] = True
|
||||
if constructauth:
|
||||
config.add_auth(pattern=".+", user=_username, password=_password)
|
||||
if options.scanvirus is not None:
|
||||
config["scanvirus"] = options.scanvirus
|
||||
# boolean options for syntaxcheck
|
||||
for option in ("checkhtml", "checkcss"):
|
||||
if getattr(options, option) is not None:
|
||||
# boolean options
|
||||
for option in ("checkhtml", "checkcss", "scanvirus"):
|
||||
if getattr(options, option):
|
||||
config[option] = getattr(options, option)
|
||||
# read missing passwords
|
||||
for entry in config["authentication"]:
|
||||
|
|
@ -663,8 +626,8 @@ if options.trace:
|
|||
if options.stdin:
|
||||
for url in read_stdin_urls():
|
||||
aggregate_url(aggregate, url)
|
||||
elif args:
|
||||
for url in args:
|
||||
elif options.url:
|
||||
for url in options.url:
|
||||
aggregate_url(aggregate, strformat.stripurl(url))
|
||||
else:
|
||||
log.warn(LOG_CMDLINE, _("no files or URLs given"))
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/python -u
|
||||
# -*- coding: iso-8859-1 -*-
|
||||
# Copyright (C) 2012 Bastian Kleineidam
|
||||
# Copyright (C) 2012-2013 Bastian Kleineidam
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
|
@ -23,14 +23,14 @@ Run this file without options to see how it's done.
|
|||
import sys
|
||||
import os
|
||||
import socket
|
||||
import optparse
|
||||
import argparse
|
||||
import pprint
|
||||
# installs _() and _n() gettext functions into global namespace
|
||||
import linkcheck
|
||||
# override optparse gettext method with the one from linkcheck.init_i18n()
|
||||
optparse._ = _
|
||||
# override argparse gettext method with the one from linkcheck.init_i18n()
|
||||
argparse._ = _
|
||||
# now import the rest of the linkchecker gang
|
||||
from linkcheck.cmdline import print_version, print_usage, LCOptionParser, \
|
||||
from linkcheck.cmdline import print_version, print_usage, LCHelpFormatter, \
|
||||
aggregate_url
|
||||
from linkcheck import log, LOG_CMDLINE, strformat
|
||||
import linkcheck.checker
|
||||
|
|
@ -40,9 +40,6 @@ import linkcheck.logger
|
|||
import linkcheck.ansicolor
|
||||
from linkcheck.director import console, check_urls, get_aggregate
|
||||
|
||||
# usage texts
|
||||
Usage = _("""USAGE\tlinkchecker-nagios [options] [file-or-url]...""")
|
||||
|
||||
Retval = _(r"""RETURN VALUE
|
||||
0 - everything checked ok without errors or warnings
|
||||
1 - URL check warnings were found
|
||||
|
|
@ -54,23 +51,16 @@ Examples = _(r"""EXAMPLES
|
|||
linkchecker-nagios -v www.example.org
|
||||
""")
|
||||
|
||||
Epilog = u"\n".join((Retval, Examples))
|
||||
|
||||
class MyOptionParser (LCOptionParser):
|
||||
"""Option parser for LinkChecker nagios plugin."""
|
||||
|
||||
def get_usage (self):
|
||||
"""Return translated usage text."""
|
||||
return Usage
|
||||
|
||||
def print_help (self, file=None):
|
||||
"""Print translated help text."""
|
||||
s = u"%s\n%s\n%s" % (self.format_help(), Examples, Retval)
|
||||
if file is None:
|
||||
file = sys.stdout
|
||||
self.print_help_msg(s, file)
|
||||
|
||||
# instantiate option parser and configure options
|
||||
optparser = MyOptionParser(err_exit_code=3)
|
||||
class ArgumentParser(argparse.ArgumentParser):
|
||||
def error(self, message):
|
||||
self.print_usage(sys.stderr)
|
||||
self.exit(3, _('%s: error: %s\n') % (self.prog, message))
|
||||
|
||||
argparser = ArgumentParser(formatter_class=LCHelpFormatter, epilog=Epilog)
|
||||
|
||||
# build a config object for this check session
|
||||
config = linkcheck.configuration.Configuration()
|
||||
|
|
@ -78,41 +68,40 @@ config = linkcheck.configuration.Configuration()
|
|||
config['recursionlevel'] = 1
|
||||
|
||||
# Standard options
|
||||
group = optparse.OptionGroup(optparser, _("Standard nagios options"))
|
||||
group.add_option("-v", "--verbose", action="count", default=0, dest="verbose",
|
||||
group = argparser.add_argument_group(_("Standard nagios options"))
|
||||
group.add_argument("-v", "--verbose", action="count", default=0,
|
||||
help=_("""Increase verbosity. This option can be given multiple times."""))
|
||||
group.add_option("-V", "--version", action="store_true", dest="version",
|
||||
group.add_argument("-V", "--version", action="store_true",
|
||||
help=_("""Print version and exit."""))
|
||||
group.add_option("-t", "--timeout", type="int", dest="timeout",
|
||||
metavar="NUMBER",
|
||||
group.add_argument("-t", "--timeout", type=int, dest="timeout", metavar="NUMBER",
|
||||
help=_(
|
||||
"""Set the timeout for connection attempts in seconds. The default
|
||||
timeout is %d seconds.""") % config["timeout"])
|
||||
|
||||
# Checking options
|
||||
group = optparse.OptionGroup(optparser, _("Checking options"))
|
||||
group.add_option("-f", "--config", type="string", dest="configfile",
|
||||
metavar="FILENAME",
|
||||
group = argparser.add_argument_group(_("Checking options"))
|
||||
group.add_argument("-f", "--config", dest="configfile", metavar="FILENAME",
|
||||
help=_(
|
||||
"""Use FILENAME as configuration file. Per default LinkChecker uses
|
||||
~/.linkchecker/linkcheckerrc (under Windows
|
||||
%HOMEPATH%\\.linkchecker\\linkcheckerrc)."""))
|
||||
|
||||
argparser.add_argument("url", nargs='+', metavar="FILE_OR_URL")
|
||||
|
||||
# read and parse command line options and arguments
|
||||
(options, args) = optparser.parse_args()
|
||||
args = argparser.parse_args()
|
||||
|
||||
if options.version is not None:
|
||||
if args.version is not None:
|
||||
print_version()
|
||||
if options.timeout is not None:
|
||||
if options.timeout > 0:
|
||||
config["timeout"] = options.timeout
|
||||
if args.timeout is not None:
|
||||
if args.timeout > 0:
|
||||
config["timeout"] = args.timeout
|
||||
else:
|
||||
print_usage(_("Illegal argument %(arg)r for option %(option)s") % \
|
||||
{"arg": options.timeout, "option": "'--timeout'"},
|
||||
{"arg": args.timeout, "option": "'--timeout'"},
|
||||
exit_code=3)
|
||||
socket.setdefaulttimeout(config["timeout"])
|
||||
if options.verbose >= 3:
|
||||
if args.verbose >= 3:
|
||||
debug = ['all']
|
||||
else:
|
||||
debug = None
|
||||
|
|
@ -123,13 +112,12 @@ log.debug(LOG_CMDLINE, _("Python %(version)s on %(platform)s") % \
|
|||
# read configuration files
|
||||
try:
|
||||
files = []
|
||||
if options.configfile:
|
||||
path = linkcheck.configuration.normpath(options.configfile)
|
||||
if args.configfile:
|
||||
path = linkcheck.configuration.normpath(args.configfile)
|
||||
if os.path.isfile(path):
|
||||
files.append(path)
|
||||
else:
|
||||
log.warn(LOG_CMDLINE,
|
||||
_("Unreadable config file: %r"), options.configfile)
|
||||
log.warn(LOG_CMDLINE, _("Unreadable config file: %r"), args.configfile)
|
||||
sys.exit(3)
|
||||
config.read(files=files)
|
||||
except linkcheck.LinkCheckerError, msg:
|
||||
|
|
@ -139,12 +127,12 @@ linkcheck.drop_privileges()
|
|||
|
||||
|
||||
socket.setdefaulttimeout(config["timeout"])
|
||||
if options.verbose < 0:
|
||||
if args.verbose < 0:
|
||||
config['logger'] = config.logger_new('none')
|
||||
else:
|
||||
config["verbose"] = True
|
||||
config["warnings"] = True
|
||||
if options.verbose >= 2:
|
||||
if args.verbose >= 2:
|
||||
config["complete"] = True
|
||||
|
||||
# check missing passwords
|
||||
|
|
@ -161,12 +149,8 @@ log.debug(LOG_CMDLINE, "configuration: %s",
|
|||
# prepare checking queue
|
||||
aggregate = get_aggregate(config)
|
||||
# add urls to queue
|
||||
if args:
|
||||
for url in args:
|
||||
aggregate_url(aggregate, strformat.stripurl(url), err_exit_code=3)
|
||||
else:
|
||||
log.warn(LOG_CMDLINE, _("no files or URLs given"))
|
||||
sys.exit(3)
|
||||
for url in args.url:
|
||||
aggregate_url(aggregate, strformat.stripurl(url), err_exit_code=3)
|
||||
|
||||
# finally, start checking
|
||||
check_urls(aggregate)
|
||||
|
|
|
|||
|
|
@ -2,11 +2,11 @@ XGETTEXT := xgettext
|
|||
MSGFMT := msgfmt
|
||||
MSGMERGE := msgmerge
|
||||
POSOURCES = $(shell find ../linkcheck -name \*.py) \
|
||||
../linkchecker ../linkchecker-gui /usr/lib/python2.7/optparse.py
|
||||
../linkchecker ../linkchecker-gui /usr/lib/python2.7/argparse.py
|
||||
LDIR = ../share/locale
|
||||
PACKAGE = linkchecker
|
||||
TEMPLATE = $(PACKAGE).pot
|
||||
MYMAIL := calvin@users.sourceforge.net
|
||||
MYMAIL := bastian.kleineidam@web.de
|
||||
LFILE = LC_MESSAGES/$(PACKAGE).mo
|
||||
# defined language (add new languages here)
|
||||
LANGUAGES = de fr es
|
||||
|
|
|
|||
438
po/de.po
438
po/de.po
|
|
@ -4,8 +4,8 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: $Id$\n"
|
||||
"Report-Msgid-Bugs-To: calvin@users.sourceforge.net\n"
|
||||
"POT-Creation-Date: 2013-02-05 14:55+0100\n"
|
||||
"Report-Msgid-Bugs-To: bastian.kleineidam@web.de\n"
|
||||
"POT-Creation-Date: 2013-02-27 10:40+0100\n"
|
||||
"PO-Revision-Date: 2012-11-13 18:13+0100\n"
|
||||
"Last-Translator: Bastian Kleineidam <calvin@users.sourceforge.net>\n"
|
||||
"Language-Team: de <de@li.org>\n"
|
||||
|
|
@ -101,7 +101,7 @@ msgstr "Standard Locale:"
|
|||
msgid "System info:"
|
||||
msgstr "Systeminformation:"
|
||||
|
||||
#: ../linkcheck/director/console.py:145 ../linkchecker:476
|
||||
#: ../linkcheck/director/console.py:145 ../linkchecker:441
|
||||
#, python-format
|
||||
msgid "Python %(version)s on %(platform)s"
|
||||
msgstr "Python %(version)s auf %(platform)s"
|
||||
|
|
@ -535,128 +535,138 @@ 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:115
|
||||
#: ../linkcheck/checker/const.py:117
|
||||
msgid "The effective URL is different from the original."
|
||||
msgstr "Die effektive URL unterscheidet sich vom Original."
|
||||
|
||||
#: ../linkcheck/checker/const.py:117
|
||||
#: ../linkcheck/checker/const.py:119
|
||||
msgid "Could not get the content of the URL."
|
||||
msgstr "Konnte den Inhalt der URL nicht bekommen."
|
||||
|
||||
#: ../linkcheck/checker/const.py:118
|
||||
#: ../linkcheck/checker/const.py:120
|
||||
msgid "URL anchor was not found."
|
||||
msgstr "URL Anker wurde nicht gefunden."
|
||||
|
||||
#: ../linkcheck/checker/const.py:120
|
||||
#: ../linkcheck/checker/const.py:122
|
||||
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:121
|
||||
#: ../linkcheck/checker/const.py:123
|
||||
msgid "The URL content is a duplicate of another URL."
|
||||
msgstr "Der URL-Inhalte ist ein Duplikat einer anderen URL."
|
||||
|
||||
#: ../linkcheck/checker/const.py:122
|
||||
#: ../linkcheck/checker/const.py:124
|
||||
msgid "The URL content size is too large."
|
||||
msgstr "Der URL Inhalt ist zu groß."
|
||||
|
||||
#: ../linkcheck/checker/const.py:123
|
||||
#: ../linkcheck/checker/const.py:125
|
||||
msgid "The URL content size is zero."
|
||||
msgstr "Der URL Inhaltsgrößenangabe ist Null."
|
||||
|
||||
#: ../linkcheck/checker/const.py:124
|
||||
#: ../linkcheck/checker/const.py:126
|
||||
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:125
|
||||
#: ../linkcheck/checker/const.py:127
|
||||
msgid "The URL is longer than the recommended size."
|
||||
msgstr "Die URL ist länger als die empfohlene Länge."
|
||||
|
||||
#: ../linkcheck/checker/const.py:126
|
||||
#: ../linkcheck/checker/const.py:128
|
||||
msgid "The URL contains leading or trailing whitespace."
|
||||
msgstr "Die URL %(url)s enthält Leerzeichen am Anfang oder Ende."
|
||||
|
||||
#: ../linkcheck/checker/const.py:127
|
||||
#: ../linkcheck/checker/const.py:129
|
||||
msgid "The file: URL is missing a trailing slash."
|
||||
msgstr "Der file: URL fehlt ein abschließender Schrägstrich."
|
||||
|
||||
#: ../linkcheck/checker/const.py:129
|
||||
#: ../linkcheck/checker/const.py:131
|
||||
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:130
|
||||
#: ../linkcheck/checker/const.py:132
|
||||
msgid "The ftp: URL is missing a trailing slash."
|
||||
msgstr "Der ftp: URL fehlt ein abschließender Schrägstrich."
|
||||
|
||||
#: ../linkcheck/checker/const.py:131
|
||||
#: ../linkcheck/checker/const.py:133
|
||||
msgid "The http: URL checking has been denied."
|
||||
msgstr "Die http: URL-Überprüfung wurde verweigert."
|
||||
|
||||
#: ../linkcheck/checker/const.py:132
|
||||
#: ../linkcheck/checker/const.py:134
|
||||
msgid "The URL has moved permanently."
|
||||
msgstr "Die URL wurde dauerhaft verschoben."
|
||||
|
||||
#: ../linkcheck/checker/const.py:134
|
||||
#: ../linkcheck/checker/const.py:136
|
||||
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:135
|
||||
#: ../linkcheck/checker/const.py:137
|
||||
msgid "The URL had no content."
|
||||
msgstr "Die URL besitzt keinen Inhalt."
|
||||
|
||||
#: ../linkcheck/checker/const.py:137
|
||||
#: ../linkcheck/checker/const.py:139
|
||||
msgid "An error occurred while storing a cookie."
|
||||
msgstr "Ein Fehler trat auf während des Speicherns eines Cookies."
|
||||
|
||||
#: ../linkcheck/checker/const.py:139
|
||||
#: ../linkcheck/checker/const.py:141
|
||||
msgid "An error occurred while decompressing the URL content."
|
||||
msgstr "Ein Fehler trat beim Dekomprimieren des URL Inhalts auf."
|
||||
|
||||
#: ../linkcheck/checker/const.py:141
|
||||
#: ../linkcheck/checker/const.py:143
|
||||
msgid "The URL content is encoded with an unknown encoding."
|
||||
msgstr "Der URL-Inhalt ist in einer unbekannten Kodierung verfasst."
|
||||
|
||||
#: ../linkcheck/checker/const.py:143
|
||||
#: ../linkcheck/checker/const.py:145
|
||||
msgid "Unsupported HTTP authentication method."
|
||||
msgstr "Nicht unterstützte HTTP Authentifizierungsmethode."
|
||||
|
||||
#: ../linkcheck/checker/const.py:145 ../linkcheck/checker/httpurl.py:243
|
||||
#: ../linkcheck/checker/const.py:147 ../linkcheck/checker/httpurl.py:243
|
||||
msgid "Unauthorized access without HTTP authentication."
|
||||
msgstr "Unauthorisierter Zugriff ohne HTTP-Authentifizierung."
|
||||
|
||||
#: ../linkcheck/checker/const.py:146
|
||||
#: ../linkcheck/checker/const.py:148
|
||||
msgid "The SSL certificate is invalid or expired."
|
||||
msgstr "Das SSL-Zertifikat ist ungültig oder abgelaufen."
|
||||
|
||||
#: ../linkcheck/checker/const.py:147
|
||||
#: ../linkcheck/checker/const.py:149
|
||||
msgid "The URL has been ignored."
|
||||
msgstr "Die URL wurde ignoriert."
|
||||
|
||||
#: ../linkcheck/checker/const.py:148
|
||||
#: ../linkcheck/checker/const.py:150
|
||||
msgid "The mail MX host could not be found."
|
||||
msgstr "Der MX Mail-Rechner konnte nicht gefunden werden."
|
||||
|
||||
#: ../linkcheck/checker/const.py:150
|
||||
#: ../linkcheck/checker/const.py:152
|
||||
msgid "The mailto: address could not be verified."
|
||||
msgstr "Die mailto: Addresse konnte nicht überprüft werden."
|
||||
|
||||
#: ../linkcheck/checker/const.py:152
|
||||
#: ../linkcheck/checker/const.py:154
|
||||
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:153
|
||||
#: ../linkcheck/checker/const.py:155
|
||||
msgid "No NNTP server was found."
|
||||
msgstr "Es wurde kein NNTP Server gefunden."
|
||||
|
||||
#: ../linkcheck/checker/const.py:154
|
||||
#: ../linkcheck/checker/const.py:156
|
||||
msgid "The NNTP newsgroup could not be found."
|
||||
msgstr "Die NNTP Nachrichtengruppe konnte nicht gefunden werden."
|
||||
|
||||
#: ../linkcheck/checker/const.py:155
|
||||
#: ../linkcheck/checker/const.py:157
|
||||
msgid "The IP is obfuscated."
|
||||
msgstr "Die IP-Adresse ist verschleiert."
|
||||
|
||||
#: ../linkcheck/checker/const.py:158
|
||||
#, fuzzy
|
||||
msgid "HTML syntax error."
|
||||
msgstr "gültige HTML Syntax"
|
||||
|
||||
#: ../linkcheck/checker/const.py:159
|
||||
#, fuzzy
|
||||
msgid "CSS syntax error."
|
||||
msgstr "gültige CSS Syntax"
|
||||
|
||||
#: ../linkcheck/checker/mailtourl.py:87
|
||||
#, python-format
|
||||
msgid "No mail addresses found in `%(url)s'."
|
||||
|
|
@ -930,32 +940,32 @@ msgid "%(w3type)s validation error at line %(line)s col %(column)s: %(msg)s"
|
|||
msgstr ""
|
||||
"%(w3type)s Validierungsfehler in Zeile %(line)s Spalte %(column)s: %(msg)s"
|
||||
|
||||
#: ../linkcheck/checker/urlbase.py:883
|
||||
#: ../linkcheck/checker/urlbase.py:882
|
||||
msgid "valid HTML syntax"
|
||||
msgstr "gültige HTML Syntax"
|
||||
|
||||
#: ../linkcheck/checker/urlbase.py:892
|
||||
#: ../linkcheck/checker/urlbase.py:890
|
||||
#, python-format
|
||||
msgid "HTML W3C validation caused error: %(msg)s "
|
||||
msgstr "HTML W3C Validierung verursachte Fehler: %(msg)s"
|
||||
|
||||
#: ../linkcheck/checker/urlbase.py:919
|
||||
#: ../linkcheck/checker/urlbase.py:917
|
||||
msgid "valid CSS syntax"
|
||||
msgstr "gültige CSS Syntax"
|
||||
|
||||
#: ../linkcheck/checker/urlbase.py:927
|
||||
#: ../linkcheck/checker/urlbase.py:925
|
||||
#, python-format
|
||||
msgid "CSS W3C validation caused error: %(msg)s "
|
||||
msgstr "CSS W3C Validierung verursachte Fehler: %(msg)s"
|
||||
|
||||
#: ../linkcheck/checker/urlbase.py:980
|
||||
#: ../linkcheck/checker/urlbase.py:978
|
||||
#, python-format
|
||||
msgid "%(num)d URL parsed."
|
||||
msgid_plural "%(num)d URLs parsed."
|
||||
msgstr[0] "%(num)d URL geparst."
|
||||
msgstr[1] "%(num)d URLs geparst."
|
||||
|
||||
#: ../linkcheck/checker/urlbase.py:1126
|
||||
#: ../linkcheck/checker/urlbase.py:1124
|
||||
#, python-format
|
||||
msgid "URL has unparsable domain name: %(domain)s"
|
||||
msgstr "URL besitzt einen nicht analysierbaren Rechnernamen: %(domain)s"
|
||||
|
|
@ -1406,7 +1416,6 @@ msgstr "&Optionen"
|
|||
|
||||
#: ../linkcheck/gui/linkchecker_ui_main.py:845
|
||||
#: ../linkcheck/gui/linkchecker_ui_options.py:137
|
||||
#: /usr/lib/python2.7/optparse.py:1626
|
||||
msgid "Options"
|
||||
msgstr "Optionen"
|
||||
|
||||
|
|
@ -1668,7 +1677,7 @@ msgstr ""
|
|||
msgid "Closing active URLs with timeout %s..."
|
||||
msgstr "Schließe aktive URLs mit Timeout %s..."
|
||||
|
||||
#: ../linkcheck/gui/__init__.py:437 ../linkchecker:698
|
||||
#: ../linkcheck/gui/__init__.py:437 ../linkchecker:663
|
||||
msgid "Dumping memory statistics..."
|
||||
msgstr "Generiere Speicherabzug..."
|
||||
|
||||
|
|
@ -1676,7 +1685,7 @@ msgstr "Generiere Speicherabzug..."
|
|||
msgid "LinkChecker memory dump written"
|
||||
msgstr "LinkChecker Speicherabzug geschrieben"
|
||||
|
||||
#: ../linkcheck/gui/__init__.py:440 ../linkchecker:700
|
||||
#: ../linkcheck/gui/__init__.py:440 ../linkchecker:665
|
||||
#, python-format
|
||||
msgid "The memory dump has been written to `%(filename)s'."
|
||||
msgstr "Der Speicherabzug wurde in Datei `%(filename)s' geschrieben."
|
||||
|
|
@ -1701,7 +1710,7 @@ msgstr[1] "%4d Verknüpfungen ausgewählt"
|
|||
msgid "LinkChecker internal error"
|
||||
msgstr "LinkChecker interner Fehler"
|
||||
|
||||
#: ../linkcheck/gui/linkchecker_ui_options.py:138 ../linkchecker:366
|
||||
#: ../linkcheck/gui/linkchecker_ui_options.py:138 ../linkchecker:349
|
||||
msgid "Checking options"
|
||||
msgstr "Prüf-Optionen"
|
||||
|
||||
|
|
@ -1947,11 +1956,7 @@ msgid_plural "%d misses"
|
|||
msgstr[0] "%d Verfehlung"
|
||||
msgstr[1] "%d Verfehlungen"
|
||||
|
||||
#: ../linkchecker:56
|
||||
msgid "USAGE\tlinkchecker [options] [file-or-url]..."
|
||||
msgstr "BENUTZUNG\tlinkchecker [Optionen] [datei-oder-url]..."
|
||||
|
||||
#: ../linkchecker:58
|
||||
#: ../linkchecker:55
|
||||
msgid ""
|
||||
"NOTES\n"
|
||||
" o URLs on the command line starting with \"ftp.\" are treated like\n"
|
||||
|
|
@ -1986,7 +1991,7 @@ msgstr ""
|
|||
"o Beim Prüfen von 'news:' Links muss der angegebene NNTP Rechner nicht\n"
|
||||
" unbedingt derselbe wie der des Benutzers sein.\n"
|
||||
|
||||
#: ../linkchecker:74
|
||||
#: ../linkchecker:71
|
||||
msgid ""
|
||||
"PROXY SUPPORT\n"
|
||||
"To use a proxy on Unix or Windows set $http_proxy, $https_proxy or "
|
||||
|
|
@ -2039,7 +2044,7 @@ msgstr ""
|
|||
" set http_proxy=http://proxy.example.com:8080\n"
|
||||
"\n"
|
||||
|
||||
#: ../linkchecker:98
|
||||
#: ../linkchecker:95
|
||||
msgid ""
|
||||
"REGULAR EXPRESSIONS\n"
|
||||
"Only Python regular expressions are accepted by LinkChecker.\n"
|
||||
|
|
@ -2057,7 +2062,7 @@ msgstr ""
|
|||
"Die einzige Hinzufügung ist, dass ein regulärer Ausdruck negiert wird\n"
|
||||
"falls er mit einem Ausrufezeichen beginnt.\n"
|
||||
|
||||
#: ../linkchecker:107
|
||||
#: ../linkchecker:104
|
||||
msgid ""
|
||||
"COOKIE FILES\n"
|
||||
"A cookie file contains standard RFC 805 header data with the following\n"
|
||||
|
|
@ -2114,7 +2119,7 @@ msgstr ""
|
|||
"Host: example.com\n"
|
||||
"Set-cookie: baggage=\"elitist\"; comment=\"hologram\"\n"
|
||||
|
||||
#: ../linkchecker:135
|
||||
#: ../linkchecker:132
|
||||
msgid ""
|
||||
"RETURN VALUE\n"
|
||||
"The return value is non-zero when\n"
|
||||
|
|
@ -2128,7 +2133,7 @@ msgstr ""
|
|||
" o Warnungen gefunden wurden und Warnungen aktiviert sind\n"
|
||||
" o ein Programmfehler aufgetreten ist\n"
|
||||
|
||||
#: ../linkchecker:142
|
||||
#: ../linkchecker:139
|
||||
msgid ""
|
||||
"EXAMPLES\n"
|
||||
"The most common use checks the given domain recursively, plus any\n"
|
||||
|
|
@ -2181,7 +2186,7 @@ msgstr ""
|
|||
"\"ftp.\" beginnt:\n"
|
||||
" linkchecker -r0 ftp.example.org\n"
|
||||
|
||||
#: ../linkchecker:166
|
||||
#: ../linkchecker:163
|
||||
msgid ""
|
||||
"OUTPUT TYPES\n"
|
||||
"Note that by default only errors and warnings are logged.\n"
|
||||
|
|
@ -2238,7 +2243,7 @@ msgstr ""
|
|||
"none Gibt nichts aus. Für Debugging oder Prüfen des Rückgabewerts "
|
||||
"geeignet.\n"
|
||||
|
||||
#: ../linkchecker:191
|
||||
#: ../linkchecker:188
|
||||
msgid ""
|
||||
"IGNORE WARNINGS\n"
|
||||
"The following warnings are recognized in the 'ignorewarnings' config\n"
|
||||
|
|
@ -2248,7 +2253,7 @@ msgstr ""
|
|||
"Die folgenden Warnungen werden vom Konfigurationseintrag 'ignorewarnings'\n"
|
||||
"erkannt:\n"
|
||||
|
||||
#: ../linkchecker:203
|
||||
#: ../linkchecker:202
|
||||
msgid ""
|
||||
"The `pstats' Python module is not installed, therefore the --viewprof option "
|
||||
"is disabled."
|
||||
|
|
@ -2256,35 +2261,36 @@ msgstr ""
|
|||
"Das `pstats' Python Modul ist nicht installiert, deshalb ist die --viewprof "
|
||||
"Option deaktiviert."
|
||||
|
||||
#: ../linkchecker:208
|
||||
#: ../linkchecker:207
|
||||
#, python-format
|
||||
msgid "Could not find profiling file %(file)r."
|
||||
msgstr "Konnte Profiling-Datei %(file)r nicht finden."
|
||||
|
||||
#: ../linkchecker:210
|
||||
#: ../linkchecker:209
|
||||
msgid "Please run linkchecker with --profile to generate it."
|
||||
msgstr "Bitte starten Sie linkchecker mit --profile, um sie zu generieren."
|
||||
|
||||
#: ../linkchecker:225
|
||||
#: ../linkchecker:224
|
||||
#, python-format
|
||||
msgid "Syntax error in %(arg)r: %(msg)s"
|
||||
msgstr "Syntaxfehler in %(arg)r: %(msg)s"
|
||||
|
||||
#: ../linkchecker:259
|
||||
#: ../linkchecker:247
|
||||
msgid "General options"
|
||||
msgstr "Allgemeine Optionen"
|
||||
|
||||
#: ../linkchecker:263
|
||||
#: ../linkchecker:251
|
||||
#, fuzzy, python-format
|
||||
msgid ""
|
||||
"Use FILENAME as configuration file. Per default LinkChecker uses\n"
|
||||
"~/.linkchecker/linkcheckerrc (under Windows\n"
|
||||
"%HOMEPATH%\\.linkchecker\\linkcheckerrc)."
|
||||
"%%HOMEPATH%%\\.linkchecker\\linkcheckerrc)."
|
||||
msgstr ""
|
||||
"Benutze FILENAME als Konfigurationsdatei. Standardmäßig benutzt\n"
|
||||
" LinkChecker ~/.linkchecker/linkcheckerrc\n"
|
||||
"(unter Windows %HOMEPATH%\\.linkchecker\\linkcheckerrc)."
|
||||
|
||||
#: ../linkchecker:269
|
||||
#: ../linkchecker:256
|
||||
msgid ""
|
||||
"Generate no more than the given number of threads. Default number\n"
|
||||
"of threads is 10. To disable threading specify a non-positive number."
|
||||
|
|
@ -2293,35 +2299,35 @@ msgstr ""
|
|||
"von Threads ist 10. Geben Sie eine negative Zahl an, um Threading zu "
|
||||
"deaktivieren."
|
||||
|
||||
#: ../linkchecker:272
|
||||
#: ../linkchecker:259
|
||||
msgid "Print version and exit."
|
||||
msgstr "Drucke die Version und beende das Programm."
|
||||
|
||||
#: ../linkchecker:275
|
||||
#: ../linkchecker:262
|
||||
msgid "Read list of white-space separated URLs to check from stdin."
|
||||
msgstr ""
|
||||
"Lese eine Liste von URLs zum Prüfen von der Standardeingabe, getrennt durch "
|
||||
"Leerzeichen."
|
||||
|
||||
#: ../linkchecker:279
|
||||
#: ../linkchecker:265
|
||||
msgid "Output options"
|
||||
msgstr "Ausgabeoptionen"
|
||||
|
||||
#: ../linkchecker:282
|
||||
#: ../linkchecker:268
|
||||
#, fuzzy
|
||||
msgid "Check syntax of CSS URLs with the W3C online validator."
|
||||
msgstr ""
|
||||
"Prüfe Syntax von CSS URLs mit cssutils. Falls es nicht installiert ist,\n"
|
||||
"prüfe mit dem W3C Online Validator."
|
||||
|
||||
#: ../linkchecker:285
|
||||
#: ../linkchecker:271
|
||||
#, fuzzy
|
||||
msgid "Check syntax of HTML URLs with the W3C online validator."
|
||||
msgstr ""
|
||||
"Prüfe Syntax von HTML URLs mit HTML tidy. Falls es nicht installiert ist,\n"
|
||||
"prüfe mit dem W3C Online Validator."
|
||||
|
||||
#: ../linkchecker:287
|
||||
#: ../linkchecker:273
|
||||
msgid ""
|
||||
"Log all URLs, including duplicates.\n"
|
||||
"Default is to log duplicate URLs only once."
|
||||
|
|
@ -2329,7 +2335,7 @@ msgstr ""
|
|||
"Logge alle URLs, inklusive Duplikate.\n"
|
||||
"Standard ist, doppelte URLs nur einmal zu loggen."
|
||||
|
||||
#: ../linkchecker:291
|
||||
#: ../linkchecker:276
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Print debugging output for the given logger.\n"
|
||||
|
|
@ -2349,7 +2355,7 @@ msgstr ""
|
|||
"\n"
|
||||
"Für exakte Resultate wird Threading während Debugläufen deaktiviert."
|
||||
|
||||
#: ../linkchecker:302
|
||||
#: ../linkchecker:287
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Output to a file linkchecker-out.TYPE, $HOME/.linkchecker/blacklist for\n"
|
||||
|
|
@ -2379,15 +2385,15 @@ msgstr ""
|
|||
"Standard ist keine Dateiausgabe. Beachten Sie dass die Option\n"
|
||||
"'-o none' jegliche Ausgaben auf der Konsole verhindert."
|
||||
|
||||
#: ../linkchecker:316
|
||||
#: ../linkchecker:301
|
||||
msgid "Do not print check status messages."
|
||||
msgstr "Gebe keine Statusmeldungen aus."
|
||||
|
||||
#: ../linkchecker:318
|
||||
#: ../linkchecker:303
|
||||
msgid "Don't log warnings. Default is to log warnings."
|
||||
msgstr "Gebe keine Warnungen aus. Standard ist die Ausgabe von Warnungen."
|
||||
|
||||
#: ../linkchecker:322
|
||||
#: ../linkchecker:306
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Specify output as %(loggertypes)s. Default output type is text.\n"
|
||||
|
|
@ -2402,7 +2408,7 @@ msgstr ""
|
|||
"Gültige Enkodierungen sind unter http://docs.python.org/lib/standard-"
|
||||
"encodings.html aufgeführt."
|
||||
|
||||
#: ../linkchecker:332
|
||||
#: ../linkchecker:316
|
||||
msgid ""
|
||||
"Quiet operation, an alias for '-o none'.\n"
|
||||
"This is only useful with -F."
|
||||
|
|
@ -2410,19 +2416,19 @@ msgstr ""
|
|||
"Keine Ausgabe, ein Alias für '-o none'.\n"
|
||||
"Dies ist nur in Verbindung mit -F nützlich."
|
||||
|
||||
#: ../linkchecker:336
|
||||
#: ../linkchecker:320
|
||||
msgid "Scan content of URLs with ClamAV virus scanner."
|
||||
msgstr "Prüfe Inhalt von URLs mit dem ClamAV Antivirus Programm."
|
||||
|
||||
#: ../linkchecker:338
|
||||
#: ../linkchecker:322
|
||||
msgid "Print tracing information."
|
||||
msgstr "Trace-Information ausgeben."
|
||||
|
||||
#: ../linkchecker:341
|
||||
#: ../linkchecker:325
|
||||
msgid "Log all URLs. Default is to log only errors and warnings."
|
||||
msgstr "Logge alle URLs. Standard ist es, nur fehlerhafte URLs zu loggen."
|
||||
|
||||
#: ../linkchecker:347
|
||||
#: ../linkchecker:331
|
||||
msgid ""
|
||||
"Define a regular expression which prints a warning if it matches\n"
|
||||
"any content of the checked link. This applies only to valid pages,\n"
|
||||
|
|
@ -2446,7 +2452,7 @@ msgstr ""
|
|||
"werden können, zum Beispiel \"(Diese Seite ist umgezogen|Oracle "
|
||||
"Applikationsfehler)\"."
|
||||
|
||||
#: ../linkchecker:360
|
||||
#: ../linkchecker:344
|
||||
msgid ""
|
||||
"Print a warning if content size info is available and exceeds the\n"
|
||||
"given number of bytes."
|
||||
|
|
@ -2454,7 +2460,7 @@ msgstr ""
|
|||
"Gebe eine Warnung aus wenn die Inhaltsgröße bekannt ist und die\n"
|
||||
"angegebene Anzahl an Bytes übersteigt."
|
||||
|
||||
#: ../linkchecker:369
|
||||
#: ../linkchecker:352
|
||||
msgid ""
|
||||
"Check HTTP anchor references. Default is not to check anchors.\n"
|
||||
"This option enables logging of the warning 'url-anchor-not-found'."
|
||||
|
|
@ -2462,7 +2468,7 @@ msgstr ""
|
|||
"Prüfe HTTP Anker Verweise. Standard ist keine Überprüfung.\n"
|
||||
"Diese Option aktiviert die Ausgabe der Warnung 'url-anchor-not-found'."
|
||||
|
||||
#: ../linkchecker:373
|
||||
#: ../linkchecker:356
|
||||
msgid ""
|
||||
"Accept and send HTTP cookies according to RFC 2109. Only cookies\n"
|
||||
"which are sent back to the originating server are accepted.\n"
|
||||
|
|
@ -2475,7 +2481,7 @@ msgstr ""
|
|||
"Gesendete und akzeptierte Cookies werden als zusätzlich geloggte\n"
|
||||
"Information aufgeführt."
|
||||
|
||||
#: ../linkchecker:380
|
||||
#: ../linkchecker:362
|
||||
msgid ""
|
||||
"Read a file with initial cookie data. The cookie data format is\n"
|
||||
"explained below."
|
||||
|
|
@ -2483,7 +2489,7 @@ msgstr ""
|
|||
"Lese eine Datei mit Cookie-Daten. Das Datenformat\n"
|
||||
"ist weiter unten erklärt."
|
||||
|
||||
#: ../linkchecker:385
|
||||
#: ../linkchecker:366
|
||||
msgid ""
|
||||
"Only check syntax of URLs matching the given regular expression.\n"
|
||||
" This option can be given multiple times."
|
||||
|
|
@ -2491,7 +2497,7 @@ msgstr ""
|
|||
"Prüfe lediglich den Syntax der URLs, welche auf den angegebenen regulären "
|
||||
"Ausdruck zutreffen. Diese Option kann mehrmals angegebenen werden."
|
||||
|
||||
#: ../linkchecker:390
|
||||
#: ../linkchecker:370
|
||||
msgid ""
|
||||
"Check but do not recurse into URLs matching the given regular\n"
|
||||
"expression. This option can be given multiple times."
|
||||
|
|
@ -2499,7 +2505,7 @@ msgstr ""
|
|||
"Prüfe URLs die auf den angegebenen regulären Ausdruck zutreffen, aber steige "
|
||||
"nicht rekursiv in sie hinab. Diese Option kann mehrmals angegeben werden."
|
||||
|
||||
#: ../linkchecker:395
|
||||
#: ../linkchecker:374
|
||||
msgid ""
|
||||
"Specify an NNTP server for 'news:...' links. Default is the\n"
|
||||
"environment variable NNTP_SERVER. If no host is given,\n"
|
||||
|
|
@ -2509,7 +2515,7 @@ msgstr ""
|
|||
"Umgebungsvariable NNTP_SERVER. Falls kein Rechner angegeben ist,\n"
|
||||
"wird lediglich auf korrekte Syntax des Links geprüft."
|
||||
|
||||
#: ../linkchecker:401
|
||||
#: ../linkchecker:380
|
||||
msgid ""
|
||||
"Read a password from console and use it for HTTP and FTP authorization.\n"
|
||||
"For FTP the default password is 'anonymous@'. For HTTP there is\n"
|
||||
|
|
@ -2521,7 +2527,7 @@ msgstr ""
|
|||
"Standardpasswort.\n"
|
||||
"Siehe auch -u."
|
||||
|
||||
#: ../linkchecker:407
|
||||
#: ../linkchecker:386
|
||||
msgid ""
|
||||
"Pause the given number of seconds between two subsequent connection\n"
|
||||
"requests to the same host. Default is no pause between requests."
|
||||
|
|
@ -2531,7 +2537,7 @@ msgstr ""
|
|||
"Verbindungen zum demselben Rechner. Standard ist keine Pause zwischen "
|
||||
"Verbindungen."
|
||||
|
||||
#: ../linkchecker:412
|
||||
#: ../linkchecker:391
|
||||
msgid ""
|
||||
"Check recursively all links up to given depth. A negative depth\n"
|
||||
"will enable infinite recursion. Default depth is infinite."
|
||||
|
|
@ -2540,7 +2546,7 @@ msgstr ""
|
|||
"negative Tiefe erwirkt unendliche Rekursion. Standard Tiefe ist\n"
|
||||
"unendlich."
|
||||
|
||||
#: ../linkchecker:417
|
||||
#: ../linkchecker:396
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Set the timeout for connection attempts in seconds. The default\n"
|
||||
|
|
@ -2549,7 +2555,7 @@ msgstr ""
|
|||
"Setze den Timeout für Verbindungen in Sekunden. Der Standard\n"
|
||||
"Timeout ist %d Sekunden."
|
||||
|
||||
#: ../linkchecker:422
|
||||
#: ../linkchecker:400
|
||||
msgid ""
|
||||
"Try the given username for HTTP and FTP authorization.\n"
|
||||
"For FTP the default username is 'anonymous'. For HTTP there is\n"
|
||||
|
|
@ -2559,7 +2565,7 @@ msgstr ""
|
|||
"Authorisation. Für FTP ist der Standardname 'anonymous'. Für HTTP gibt es "
|
||||
"kein Standardnamen. Siehe auch -p."
|
||||
|
||||
#: ../linkchecker:428
|
||||
#: ../linkchecker:405
|
||||
msgid ""
|
||||
"Specify the User-Agent string to send to the HTTP server, for example\n"
|
||||
"\"Mozilla/4.0\". The default is \"LinkChecker/X.Y\" where X.Y is the "
|
||||
|
|
@ -2570,60 +2576,60 @@ msgstr ""
|
|||
"z.B. \"Mozilla/4.0\". Der Standard ist \"LinkChecker/X.Y\", wobei X.Y\n"
|
||||
"die aktuelle Version von LinkChecker ist."
|
||||
|
||||
#: ../linkchecker:474
|
||||
#: ../linkchecker:439
|
||||
#, python-format
|
||||
msgid "Invalid debug level %(level)r"
|
||||
msgstr "Ungültiger Debuglevel %(level)r"
|
||||
|
||||
#: ../linkchecker:487
|
||||
#: ../linkchecker:452
|
||||
#, python-format
|
||||
msgid "Unreadable config file: %r"
|
||||
msgstr "Nicht lesbare Konfigurationsdatei: %r"
|
||||
|
||||
#: ../linkchecker:495
|
||||
#: ../linkchecker:460
|
||||
msgid "Running with python -O disables debugging."
|
||||
msgstr "Die Option python -O verhindert das Debuggen."
|
||||
|
||||
#: ../linkchecker:518 ../linkchecker:550
|
||||
#: ../linkchecker:483 ../linkchecker:515
|
||||
#, python-format
|
||||
msgid "Unknown logger type %(type)r in %(output)r for option %(option)s"
|
||||
msgstr "Unbekannter Logtyp %(type)r in %(output)r für Option %(option)s"
|
||||
|
||||
#: ../linkchecker:522 ../linkchecker:556
|
||||
#: ../linkchecker:487 ../linkchecker:521
|
||||
#, python-format
|
||||
msgid "Unknown encoding %(encoding)r in %(output)r for option %(option)s"
|
||||
msgstr "Unbekanntes Encoding %(encoding)r in %(output)r für Option %(option)s"
|
||||
|
||||
#: ../linkchecker:568
|
||||
#: ../linkchecker:533
|
||||
#, python-format
|
||||
msgid "Enter LinkChecker HTTP/FTP password for user %(user)s:"
|
||||
msgstr "Gebe LinkChecker HTTP/FTP Passwort für Benutzer %(user)s ein:"
|
||||
|
||||
#: ../linkchecker:571
|
||||
#: ../linkchecker:536
|
||||
msgid "Enter LinkChecker HTTP/FTP password:"
|
||||
msgstr "Gebe LinkChecker HTTP/FTP Passwort ein:"
|
||||
|
||||
#: ../linkchecker:578 ../linkchecker:596
|
||||
#: ../linkchecker:543 ../linkchecker:561
|
||||
#, python-format
|
||||
msgid "Illegal argument %(arg)r for option %(option)s"
|
||||
msgstr "Ungültiges Argument %(arg)r für Option %(option)s"
|
||||
|
||||
#: ../linkchecker:634
|
||||
#: ../linkchecker:599
|
||||
#, python-format
|
||||
msgid "Enter LinkChecker password for user %(user)s at %(strpattern)s:"
|
||||
msgstr ""
|
||||
"Gebe LinkChecker Passwort für Benutzer %(user)s bei %(strpattern)s ein:"
|
||||
|
||||
#: ../linkchecker:655
|
||||
#: ../linkchecker:620
|
||||
#, python-format
|
||||
msgid "Could not parse cookie file: %s"
|
||||
msgstr "Konnte Cookie-Datei nicht parsen: %s"
|
||||
|
||||
#: ../linkchecker:670
|
||||
#: ../linkchecker:635
|
||||
msgid "no files or URLs given"
|
||||
msgstr "keine Dateien oder URLs angegeben"
|
||||
|
||||
#: ../linkchecker:675
|
||||
#: ../linkchecker:640
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Overwrite profiling file %(file)r?\n"
|
||||
|
|
@ -2632,11 +2638,11 @@ msgstr ""
|
|||
"Profildatei %(file)r überschreiben?\n"
|
||||
"Drücken Sie Strg-C zum Abbrechen, EINGABETASTE zum Fortfahren."
|
||||
|
||||
#: ../linkchecker:681
|
||||
#: ../linkchecker:646
|
||||
msgid "Canceled."
|
||||
msgstr "Abgebrochen."
|
||||
|
||||
#: ../linkchecker:685
|
||||
#: ../linkchecker:650
|
||||
msgid ""
|
||||
"The `cProfile' Python module is not installed, therefore the --profile "
|
||||
"option is disabled."
|
||||
|
|
@ -2644,77 +2650,190 @@ msgstr ""
|
|||
"Das `cProfile' Python Modul ist nicht installiert, deshalb ist die --profile "
|
||||
"Option deaktiviert."
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:140
|
||||
#, python-format
|
||||
msgid "no such option: %s"
|
||||
msgstr "Keine solche Option: %s"
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:151
|
||||
#, python-format
|
||||
msgid "ambiguous option: %s (%s?)"
|
||||
msgstr "Mehrdeutige Option: %s (%s?)"
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:374
|
||||
#, python-format
|
||||
msgid "Usage: %s\n"
|
||||
#: /usr/lib/python2.7/argparse.py:292
|
||||
#, fuzzy
|
||||
msgid "usage: "
|
||||
msgstr "Syntax: %s\n"
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:393
|
||||
msgid "Usage"
|
||||
msgstr "Syntax"
|
||||
#: /usr/lib/python2.7/argparse.py:800
|
||||
msgid ".__call__() not defined"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:418
|
||||
msgid "integer"
|
||||
msgstr "Nummer"
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:419
|
||||
msgid "long integer"
|
||||
msgstr "Nummer"
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:420
|
||||
msgid "floating-point"
|
||||
msgstr "Fließkommazahl"
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:421
|
||||
msgid "complex"
|
||||
msgstr "komplex"
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:429
|
||||
#: /usr/lib/python2.7/argparse.py:1084
|
||||
#, python-format
|
||||
msgid "option %s: invalid %s value: %r"
|
||||
msgstr "Option %s: Ungültiger %s Wert: %r"
|
||||
msgid "unknown parser %r (choices: %s)"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:437
|
||||
#: /usr/lib/python2.7/argparse.py:1125
|
||||
#, python-format
|
||||
msgid "option %s: invalid choice: %r (choose from %s)"
|
||||
msgstr "Option %s: ungültige Auswahl: %r (wähle von %s)"
|
||||
msgid "argument \"-\" with mode %r"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:1250
|
||||
#: /usr/lib/python2.7/argparse.py:1132
|
||||
#, python-format
|
||||
msgid "can't open '%s': %s"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1336
|
||||
#, python-format
|
||||
msgid "cannot merge actions - two groups are named %r"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1374
|
||||
msgid "'required' is an invalid argument for positionals"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1394
|
||||
#, python-format
|
||||
msgid "invalid option string %r: must start with a character %r"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1415
|
||||
#, python-format
|
||||
msgid "dest= is required for options like %r"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1432
|
||||
#, fuzzy, python-format
|
||||
msgid "invalid conflict_resolution value: %r"
|
||||
msgstr "ungültiger \"notAfter\" Zertifikatwert %r"
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1450
|
||||
#, python-format
|
||||
msgid "conflicting option string(s): %s"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1514
|
||||
msgid "mutually exclusive arguments must be optional"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1584
|
||||
#, fuzzy
|
||||
msgid "positional arguments"
|
||||
msgstr "%s Option erfordert ein Argument"
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1585
|
||||
#, fuzzy
|
||||
msgid "optional arguments"
|
||||
msgstr "%s Option erfordert ein Argument"
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1600
|
||||
msgid "show this help message and exit"
|
||||
msgstr "Zeige diesen Hilfetext und beende"
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:1255
|
||||
#: /usr/lib/python2.7/argparse.py:1606
|
||||
msgid "show program's version number and exit"
|
||||
msgstr "Zeige Programmversion und beende"
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:1278
|
||||
msgid "%prog [options]"
|
||||
msgstr "%prog [Optionen]"
|
||||
#: /usr/lib/python2.7/argparse.py:1638
|
||||
msgid "cannot have multiple subparser arguments"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:1498 /usr/lib/python2.7/optparse.py:1537
|
||||
#: /usr/lib/python2.7/argparse.py:1690
|
||||
#, python-format
|
||||
msgid "%s option requires an argument"
|
||||
msgstr "%s Option erfordert ein Argument"
|
||||
msgid "unrecognized arguments: %s"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:1500 /usr/lib/python2.7/optparse.py:1539
|
||||
#: /usr/lib/python2.7/argparse.py:1790
|
||||
#, python-format
|
||||
msgid "%s option requires %d arguments"
|
||||
msgstr "%s Option erfordert %d Argumente"
|
||||
msgid "not allowed with argument %s"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:1509
|
||||
#: /usr/lib/python2.7/argparse.py:1836 /usr/lib/python2.7/argparse.py:1850
|
||||
#, python-format
|
||||
msgid "%s option does not take a value"
|
||||
msgstr "%s Option nimmt kein Wert"
|
||||
msgid "ignored explicit argument %r"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1940
|
||||
msgid "too few arguments"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1947
|
||||
#, python-format
|
||||
msgid "argument %s is required"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1961
|
||||
#, python-format
|
||||
msgid "one of the arguments %s is required"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:2007
|
||||
msgid "expected one argument"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:2008
|
||||
msgid "expected at most one argument"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:2009
|
||||
msgid "expected at least one argument"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:2011
|
||||
#, python-format
|
||||
msgid "expected %s argument(s)"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:2068
|
||||
#, fuzzy, python-format
|
||||
msgid "ambiguous option: %s could match %s"
|
||||
msgstr "Mehrdeutige Option: %s (%s?)"
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:2130
|
||||
#, python-format
|
||||
msgid "unexpected option string: %s"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:2234
|
||||
#, python-format
|
||||
msgid "%r is not callable"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:2250
|
||||
#, fuzzy, python-format
|
||||
msgid "invalid %s value: %r"
|
||||
msgstr "Option %s: Ungültiger %s Wert: %r"
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:2260
|
||||
#, fuzzy, python-format
|
||||
msgid "invalid choice: %r (choose from %s)"
|
||||
msgstr "Option %s: ungültige Auswahl: %r (wähle von %s)"
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:2353
|
||||
#, fuzzy, python-format
|
||||
msgid "%s: error: %s\n"
|
||||
msgstr "ignore%d: Syntaxfehler %s\n"
|
||||
|
||||
#~ msgid "USAGE\tlinkchecker [options] [file-or-url]..."
|
||||
#~ msgstr "BENUTZUNG\tlinkchecker [Optionen] [datei-oder-url]..."
|
||||
|
||||
#~ msgid "no such option: %s"
|
||||
#~ msgstr "Keine solche Option: %s"
|
||||
|
||||
#~ msgid "Usage"
|
||||
#~ msgstr "Syntax"
|
||||
|
||||
#~ msgid "integer"
|
||||
#~ msgstr "Nummer"
|
||||
|
||||
#~ msgid "long integer"
|
||||
#~ msgstr "Nummer"
|
||||
|
||||
#~ msgid "floating-point"
|
||||
#~ msgstr "Fließkommazahl"
|
||||
|
||||
#~ msgid "complex"
|
||||
#~ msgstr "komplex"
|
||||
|
||||
#~ msgid "%prog [options]"
|
||||
#~ msgstr "%prog [Optionen]"
|
||||
|
||||
#~ msgid "%s option requires %d arguments"
|
||||
#~ msgstr "%s Option erfordert %d Argumente"
|
||||
|
||||
#~ msgid "%s option does not take a value"
|
||||
#~ msgstr "%s Option nimmt kein Wert"
|
||||
|
||||
#~ msgid "tidy HTML parsing caused error: %(msg)s "
|
||||
#~ msgstr "tidy HTML Parser verursachte Fehler: %(msg)s"
|
||||
|
|
@ -3151,6 +3270,3 @@ msgstr "%s Option nimmt kein Wert"
|
|||
|
||||
#~ msgid "nofollow%d: syntax error %s\n"
|
||||
#~ msgstr "nofollow%d: Syntaxfehler %s\n"
|
||||
|
||||
#~ msgid "ignore%d: syntax error %s\n"
|
||||
#~ msgstr "ignore%d: Syntaxfehler %s\n"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR Bastian Kleineidam <calvin@users.sourceforge.net>
|
||||
# Copyright (C) YEAR Bastian Kleineidam <bastian.kleineidam@web.de>
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
|
|
@ -7,8 +7,8 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: calvin@users.sourceforge.net\n"
|
||||
"POT-Creation-Date: 2013-02-05 14:55+0100\n"
|
||||
"Report-Msgid-Bugs-To: bastian.kleineidam@web.de\n"
|
||||
"POT-Creation-Date: 2013-02-27 10:40+0100\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"
|
||||
|
|
@ -87,7 +87,7 @@ msgstr ""
|
|||
msgid "System info:"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/director/console.py:145 ../linkchecker:476
|
||||
#: ../linkcheck/director/console.py:145 ../linkchecker:441
|
||||
#, python-format
|
||||
msgid "Python %(version)s on %(platform)s"
|
||||
msgstr ""
|
||||
|
|
@ -509,126 +509,134 @@ msgstr ""
|
|||
msgid "URL is unrecognized or has invalid syntax"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:115
|
||||
#: ../linkcheck/checker/const.py:117
|
||||
msgid "The effective URL is different from the original."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:117
|
||||
#: ../linkcheck/checker/const.py:119
|
||||
msgid "Could not get the content of the URL."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:118
|
||||
#: ../linkcheck/checker/const.py:120
|
||||
msgid "URL anchor was not found."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:120
|
||||
#: ../linkcheck/checker/const.py:122
|
||||
msgid "The warning regular expression was found in the URL contents."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:121
|
||||
#: ../linkcheck/checker/const.py:123
|
||||
msgid "The URL content is a duplicate of another URL."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:122
|
||||
#: ../linkcheck/checker/const.py:124
|
||||
msgid "The URL content size is too large."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:123
|
||||
#: ../linkcheck/checker/const.py:125
|
||||
msgid "The URL content size is zero."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:124
|
||||
#: ../linkcheck/checker/const.py:126
|
||||
msgid "The URL content size and download size are unequal."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:125
|
||||
#: ../linkcheck/checker/const.py:127
|
||||
msgid "The URL is longer than the recommended size."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:126
|
||||
#: ../linkcheck/checker/const.py:128
|
||||
msgid "The URL contains leading or trailing whitespace."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:127
|
||||
#: ../linkcheck/checker/const.py:129
|
||||
msgid "The file: URL is missing a trailing slash."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:129
|
||||
#: ../linkcheck/checker/const.py:131
|
||||
msgid "The file: path is not the same as the system specific path."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:130
|
||||
#: ../linkcheck/checker/const.py:132
|
||||
msgid "The ftp: URL is missing a trailing slash."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:131
|
||||
#: ../linkcheck/checker/const.py:133
|
||||
msgid "The http: URL checking has been denied."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:132
|
||||
#: ../linkcheck/checker/const.py:134
|
||||
msgid "The URL has moved permanently."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:134
|
||||
#: ../linkcheck/checker/const.py:136
|
||||
msgid "The URL has been redirected to an URL of a different type."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:135
|
||||
#: ../linkcheck/checker/const.py:137
|
||||
msgid "The URL had no content."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:137
|
||||
#: ../linkcheck/checker/const.py:139
|
||||
msgid "An error occurred while storing a cookie."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:139
|
||||
#: ../linkcheck/checker/const.py:141
|
||||
msgid "An error occurred while decompressing the URL content."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:141
|
||||
#: ../linkcheck/checker/const.py:143
|
||||
msgid "The URL content is encoded with an unknown encoding."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:143
|
||||
#: ../linkcheck/checker/const.py:145
|
||||
msgid "Unsupported HTTP authentication method."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:145 ../linkcheck/checker/httpurl.py:243
|
||||
#: ../linkcheck/checker/const.py:147 ../linkcheck/checker/httpurl.py:243
|
||||
msgid "Unauthorized access without HTTP authentication."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:146
|
||||
#: ../linkcheck/checker/const.py:148
|
||||
msgid "The SSL certificate is invalid or expired."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:147
|
||||
#: ../linkcheck/checker/const.py:149
|
||||
msgid "The URL has been ignored."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:148
|
||||
#: ../linkcheck/checker/const.py:150
|
||||
msgid "The mail MX host could not be found."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:150
|
||||
#: ../linkcheck/checker/const.py:152
|
||||
msgid "The mailto: address could not be verified."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:152
|
||||
#: ../linkcheck/checker/const.py:154
|
||||
msgid "No connection to a MX host could be established."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:153
|
||||
#: ../linkcheck/checker/const.py:155
|
||||
msgid "No NNTP server was found."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:154
|
||||
#: ../linkcheck/checker/const.py:156
|
||||
msgid "The NNTP newsgroup could not be found."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:155
|
||||
#: ../linkcheck/checker/const.py:157
|
||||
msgid "The IP is obfuscated."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:158
|
||||
msgid "HTML syntax error."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/const.py:159
|
||||
msgid "CSS syntax error."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/mailtourl.py:87
|
||||
#, python-format
|
||||
msgid "No mail addresses found in `%(url)s'."
|
||||
|
|
@ -881,32 +889,32 @@ msgstr ""
|
|||
msgid "%(w3type)s validation error at line %(line)s col %(column)s: %(msg)s"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/urlbase.py:883
|
||||
#: ../linkcheck/checker/urlbase.py:882
|
||||
msgid "valid HTML syntax"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/urlbase.py:892
|
||||
#: ../linkcheck/checker/urlbase.py:890
|
||||
#, python-format
|
||||
msgid "HTML W3C validation caused error: %(msg)s "
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/urlbase.py:919
|
||||
#: ../linkcheck/checker/urlbase.py:917
|
||||
msgid "valid CSS syntax"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/urlbase.py:927
|
||||
#: ../linkcheck/checker/urlbase.py:925
|
||||
#, python-format
|
||||
msgid "CSS W3C validation caused error: %(msg)s "
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/checker/urlbase.py:980
|
||||
#: ../linkcheck/checker/urlbase.py:978
|
||||
#, python-format
|
||||
msgid "%(num)d URL parsed."
|
||||
msgid_plural "%(num)d URLs parsed."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../linkcheck/checker/urlbase.py:1126
|
||||
#: ../linkcheck/checker/urlbase.py:1124
|
||||
#, python-format
|
||||
msgid "URL has unparsable domain name: %(domain)s"
|
||||
msgstr ""
|
||||
|
|
@ -1336,7 +1344,6 @@ msgstr ""
|
|||
|
||||
#: ../linkcheck/gui/linkchecker_ui_main.py:845
|
||||
#: ../linkcheck/gui/linkchecker_ui_options.py:137
|
||||
#: /usr/lib/python2.7/optparse.py:1626
|
||||
msgid "Options"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1580,7 +1587,7 @@ msgstr ""
|
|||
msgid "Closing active URLs with timeout %s..."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/gui/__init__.py:437 ../linkchecker:698
|
||||
#: ../linkcheck/gui/__init__.py:437 ../linkchecker:663
|
||||
msgid "Dumping memory statistics..."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1588,7 +1595,7 @@ msgstr ""
|
|||
msgid "LinkChecker memory dump written"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/gui/__init__.py:440 ../linkchecker:700
|
||||
#: ../linkcheck/gui/__init__.py:440 ../linkchecker:665
|
||||
#, python-format
|
||||
msgid "The memory dump has been written to `%(filename)s'."
|
||||
msgstr ""
|
||||
|
|
@ -1613,7 +1620,7 @@ msgstr[1] ""
|
|||
msgid "LinkChecker internal error"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkcheck/gui/linkchecker_ui_options.py:138 ../linkchecker:366
|
||||
#: ../linkcheck/gui/linkchecker_ui_options.py:138 ../linkchecker:349
|
||||
msgid "Checking options"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1838,11 +1845,7 @@ msgid_plural "%d misses"
|
|||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../linkchecker:56
|
||||
msgid "USAGE\tlinkchecker [options] [file-or-url]..."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:58
|
||||
#: ../linkchecker:55
|
||||
msgid ""
|
||||
"NOTES\n"
|
||||
" o URLs on the command line starting with \"ftp.\" are treated like\n"
|
||||
|
|
@ -1861,7 +1864,7 @@ msgid ""
|
|||
" same as the host of the user browsing your pages.\n"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:74
|
||||
#: ../linkchecker:71
|
||||
msgid ""
|
||||
"PROXY SUPPORT\n"
|
||||
"To use a proxy on Unix or Windows set $http_proxy, $https_proxy or "
|
||||
|
|
@ -1888,7 +1891,7 @@ msgid ""
|
|||
"\n"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:98
|
||||
#: ../linkchecker:95
|
||||
msgid ""
|
||||
"REGULAR EXPRESSIONS\n"
|
||||
"Only Python regular expressions are accepted by LinkChecker.\n"
|
||||
|
|
@ -1899,7 +1902,7 @@ msgid ""
|
|||
"the regular expression.\n"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:107
|
||||
#: ../linkchecker:104
|
||||
msgid ""
|
||||
"COOKIE FILES\n"
|
||||
"A cookie file contains standard RFC 805 header data with the following\n"
|
||||
|
|
@ -1929,7 +1932,7 @@ msgid ""
|
|||
"Set-cookie: baggage=\"elitist\"; comment=\"hologram\"\n"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:135
|
||||
#: ../linkchecker:132
|
||||
msgid ""
|
||||
"RETURN VALUE\n"
|
||||
"The return value is non-zero when\n"
|
||||
|
|
@ -1938,7 +1941,7 @@ msgid ""
|
|||
" o a program error occurred\n"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:142
|
||||
#: ../linkchecker:139
|
||||
msgid ""
|
||||
"EXAMPLES\n"
|
||||
"The most common use checks the given domain recursively, plus any\n"
|
||||
|
|
@ -1964,7 +1967,7 @@ msgid ""
|
|||
" linkchecker -r0 ftp.example.org\n"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:166
|
||||
#: ../linkchecker:163
|
||||
msgid ""
|
||||
"OUTPUT TYPES\n"
|
||||
"Note that by default only errors and warnings are logged.\n"
|
||||
|
|
@ -1991,77 +1994,78 @@ msgid ""
|
|||
"none Logs nothing. Suitable for debugging or checking the exit code.\n"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:191
|
||||
#: ../linkchecker:188
|
||||
msgid ""
|
||||
"IGNORE WARNINGS\n"
|
||||
"The following warnings are recognized in the 'ignorewarnings' config\n"
|
||||
"file entry:\n"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:203
|
||||
#: ../linkchecker:202
|
||||
msgid ""
|
||||
"The `pstats' Python module is not installed, therefore the --viewprof option "
|
||||
"is disabled."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:208
|
||||
#: ../linkchecker:207
|
||||
#, python-format
|
||||
msgid "Could not find profiling file %(file)r."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:210
|
||||
#: ../linkchecker:209
|
||||
msgid "Please run linkchecker with --profile to generate it."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:225
|
||||
#: ../linkchecker:224
|
||||
#, python-format
|
||||
msgid "Syntax error in %(arg)r: %(msg)s"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:259
|
||||
#: ../linkchecker:247
|
||||
msgid "General options"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:263
|
||||
#: ../linkchecker:251
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use FILENAME as configuration file. Per default LinkChecker uses\n"
|
||||
"~/.linkchecker/linkcheckerrc (under Windows\n"
|
||||
"%HOMEPATH%\\.linkchecker\\linkcheckerrc)."
|
||||
"%%HOMEPATH%%\\.linkchecker\\linkcheckerrc)."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:269
|
||||
#: ../linkchecker:256
|
||||
msgid ""
|
||||
"Generate no more than the given number of threads. Default number\n"
|
||||
"of threads is 10. To disable threading specify a non-positive number."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:272
|
||||
#: ../linkchecker:259
|
||||
msgid "Print version and exit."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:275
|
||||
#: ../linkchecker:262
|
||||
msgid "Read list of white-space separated URLs to check from stdin."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:279
|
||||
#: ../linkchecker:265
|
||||
msgid "Output options"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:282
|
||||
#: ../linkchecker:268
|
||||
msgid "Check syntax of CSS URLs with the W3C online validator."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:285
|
||||
#: ../linkchecker:271
|
||||
msgid "Check syntax of HTML URLs with the W3C online validator."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:287
|
||||
#: ../linkchecker:273
|
||||
msgid ""
|
||||
"Log all URLs, including duplicates.\n"
|
||||
"Default is to log duplicate URLs only once."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:291
|
||||
#: ../linkchecker:276
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Print debugging output for the given logger.\n"
|
||||
|
|
@ -2073,7 +2077,7 @@ msgid ""
|
|||
"For accurate results, threading will be disabled during debug runs."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:302
|
||||
#: ../linkchecker:287
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Output to a file linkchecker-out.TYPE, $HOME/.linkchecker/blacklist for\n"
|
||||
|
|
@ -2090,15 +2094,15 @@ msgid ""
|
|||
"suppress all console output with the option '-o none'."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:316
|
||||
#: ../linkchecker:301
|
||||
msgid "Do not print check status messages."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:318
|
||||
#: ../linkchecker:303
|
||||
msgid "Don't log warnings. Default is to log warnings."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:322
|
||||
#: ../linkchecker:306
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Specify output as %(loggertypes)s. Default output type is text.\n"
|
||||
|
|
@ -2108,25 +2112,25 @@ msgid ""
|
|||
"html."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:332
|
||||
#: ../linkchecker:316
|
||||
msgid ""
|
||||
"Quiet operation, an alias for '-o none'.\n"
|
||||
"This is only useful with -F."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:336
|
||||
#: ../linkchecker:320
|
||||
msgid "Scan content of URLs with ClamAV virus scanner."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:338
|
||||
#: ../linkchecker:322
|
||||
msgid "Print tracing information."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:341
|
||||
#: ../linkchecker:325
|
||||
msgid "Log all URLs. Default is to log only errors and warnings."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:347
|
||||
#: ../linkchecker:331
|
||||
msgid ""
|
||||
"Define a regular expression which prints a warning if it matches\n"
|
||||
"any content of the checked link. This applies only to valid pages,\n"
|
||||
|
|
@ -2140,19 +2144,19 @@ msgid ""
|
|||
"for example \"(This page has moved|Oracle Application error)\"."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:360
|
||||
#: ../linkchecker:344
|
||||
msgid ""
|
||||
"Print a warning if content size info is available and exceeds the\n"
|
||||
"given number of bytes."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:369
|
||||
#: ../linkchecker:352
|
||||
msgid ""
|
||||
"Check HTTP anchor references. Default is not to check anchors.\n"
|
||||
"This option enables logging of the warning 'url-anchor-not-found'."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:373
|
||||
#: ../linkchecker:356
|
||||
msgid ""
|
||||
"Accept and send HTTP cookies according to RFC 2109. Only cookies\n"
|
||||
"which are sent back to the originating server are accepted.\n"
|
||||
|
|
@ -2160,208 +2164,288 @@ msgid ""
|
|||
"information."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:380
|
||||
#: ../linkchecker:362
|
||||
msgid ""
|
||||
"Read a file with initial cookie data. The cookie data format is\n"
|
||||
"explained below."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:385
|
||||
#: ../linkchecker:366
|
||||
msgid ""
|
||||
"Only check syntax of URLs matching the given regular expression.\n"
|
||||
" This option can be given multiple times."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:390
|
||||
#: ../linkchecker:370
|
||||
msgid ""
|
||||
"Check but do not recurse into URLs matching the given regular\n"
|
||||
"expression. This option can be given multiple times."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:395
|
||||
#: ../linkchecker:374
|
||||
msgid ""
|
||||
"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."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:401
|
||||
#: ../linkchecker:380
|
||||
msgid ""
|
||||
"Read a password from console and use it for HTTP and FTP authorization.\n"
|
||||
"For FTP the default password is 'anonymous@'. For HTTP there is\n"
|
||||
"no default password. See also -u."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:407
|
||||
#: ../linkchecker:386
|
||||
msgid ""
|
||||
"Pause the given number of seconds between two subsequent connection\n"
|
||||
"requests to the same host. Default is no pause between requests."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:412
|
||||
#: ../linkchecker:391
|
||||
msgid ""
|
||||
"Check recursively all links up to given depth. A negative depth\n"
|
||||
"will enable infinite recursion. Default depth is infinite."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:417
|
||||
#: ../linkchecker:396
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Set the timeout for connection attempts in seconds. The default\n"
|
||||
"timeout is %d seconds."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:422
|
||||
#: ../linkchecker:400
|
||||
msgid ""
|
||||
"Try the given username for HTTP and FTP authorization.\n"
|
||||
"For FTP the default username is 'anonymous'. For HTTP there is\n"
|
||||
"no default username. See also -p."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:428
|
||||
#: ../linkchecker:405
|
||||
msgid ""
|
||||
"Specify the User-Agent string to send to the HTTP server, for example\n"
|
||||
"\"Mozilla/4.0\". The default is \"LinkChecker/X.Y\" where X.Y is the current\n"
|
||||
"version of LinkChecker."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:474
|
||||
#: ../linkchecker:439
|
||||
#, python-format
|
||||
msgid "Invalid debug level %(level)r"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:487
|
||||
#: ../linkchecker:452
|
||||
#, python-format
|
||||
msgid "Unreadable config file: %r"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:495
|
||||
#: ../linkchecker:460
|
||||
msgid "Running with python -O disables debugging."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:518 ../linkchecker:550
|
||||
#: ../linkchecker:483 ../linkchecker:515
|
||||
#, python-format
|
||||
msgid "Unknown logger type %(type)r in %(output)r for option %(option)s"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:522 ../linkchecker:556
|
||||
#: ../linkchecker:487 ../linkchecker:521
|
||||
#, python-format
|
||||
msgid "Unknown encoding %(encoding)r in %(output)r for option %(option)s"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:568
|
||||
#: ../linkchecker:533
|
||||
#, python-format
|
||||
msgid "Enter LinkChecker HTTP/FTP password for user %(user)s:"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:571
|
||||
#: ../linkchecker:536
|
||||
msgid "Enter LinkChecker HTTP/FTP password:"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:578 ../linkchecker:596
|
||||
#: ../linkchecker:543 ../linkchecker:561
|
||||
#, python-format
|
||||
msgid "Illegal argument %(arg)r for option %(option)s"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:634
|
||||
#: ../linkchecker:599
|
||||
#, python-format
|
||||
msgid "Enter LinkChecker password for user %(user)s at %(strpattern)s:"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:655
|
||||
#: ../linkchecker:620
|
||||
#, python-format
|
||||
msgid "Could not parse cookie file: %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:670
|
||||
#: ../linkchecker:635
|
||||
msgid "no files or URLs given"
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:675
|
||||
#: ../linkchecker:640
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Overwrite profiling file %(file)r?\n"
|
||||
"Press Ctrl-C to cancel, RETURN to continue."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:681
|
||||
#: ../linkchecker:646
|
||||
msgid "Canceled."
|
||||
msgstr ""
|
||||
|
||||
#: ../linkchecker:685
|
||||
#: ../linkchecker:650
|
||||
msgid ""
|
||||
"The `cProfile' Python module is not installed, therefore the --profile option "
|
||||
"is disabled."
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:140
|
||||
#: /usr/lib/python2.7/argparse.py:292
|
||||
msgid "usage: "
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:800
|
||||
msgid ".__call__() not defined"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1084
|
||||
#, python-format
|
||||
msgid "no such option: %s"
|
||||
msgid "unknown parser %r (choices: %s)"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:151
|
||||
#: /usr/lib/python2.7/argparse.py:1125
|
||||
#, python-format
|
||||
msgid "ambiguous option: %s (%s?)"
|
||||
msgid "argument \"-\" with mode %r"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:374
|
||||
#: /usr/lib/python2.7/argparse.py:1132
|
||||
#, python-format
|
||||
msgid "Usage: %s\n"
|
||||
msgid "can't open '%s': %s"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:393
|
||||
msgid "Usage"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:418
|
||||
msgid "integer"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:419
|
||||
msgid "long integer"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:420
|
||||
msgid "floating-point"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:421
|
||||
msgid "complex"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:429
|
||||
#: /usr/lib/python2.7/argparse.py:1336
|
||||
#, python-format
|
||||
msgid "option %s: invalid %s value: %r"
|
||||
msgid "cannot merge actions - two groups are named %r"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:437
|
||||
#: /usr/lib/python2.7/argparse.py:1374
|
||||
msgid "'required' is an invalid argument for positionals"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1394
|
||||
#, python-format
|
||||
msgid "option %s: invalid choice: %r (choose from %s)"
|
||||
msgid "invalid option string %r: must start with a character %r"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:1250
|
||||
#: /usr/lib/python2.7/argparse.py:1415
|
||||
#, python-format
|
||||
msgid "dest= is required for options like %r"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1432
|
||||
#, python-format
|
||||
msgid "invalid conflict_resolution value: %r"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1450
|
||||
#, python-format
|
||||
msgid "conflicting option string(s): %s"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1514
|
||||
msgid "mutually exclusive arguments must be optional"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1584
|
||||
msgid "positional arguments"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1585
|
||||
msgid "optional arguments"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1600
|
||||
msgid "show this help message and exit"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:1255
|
||||
#: /usr/lib/python2.7/argparse.py:1606
|
||||
msgid "show program's version number and exit"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:1278
|
||||
msgid "%prog [options]"
|
||||
#: /usr/lib/python2.7/argparse.py:1638
|
||||
msgid "cannot have multiple subparser arguments"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:1498 /usr/lib/python2.7/optparse.py:1537
|
||||
#: /usr/lib/python2.7/argparse.py:1690
|
||||
#, python-format
|
||||
msgid "%s option requires an argument"
|
||||
msgid "unrecognized arguments: %s"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:1500 /usr/lib/python2.7/optparse.py:1539
|
||||
#: /usr/lib/python2.7/argparse.py:1790
|
||||
#, python-format
|
||||
msgid "%s option requires %d arguments"
|
||||
msgid "not allowed with argument %s"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/optparse.py:1509
|
||||
#: /usr/lib/python2.7/argparse.py:1836 /usr/lib/python2.7/argparse.py:1850
|
||||
#, python-format
|
||||
msgid "%s option does not take a value"
|
||||
msgid "ignored explicit argument %r"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1940
|
||||
msgid "too few arguments"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1947
|
||||
#, python-format
|
||||
msgid "argument %s is required"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:1961
|
||||
#, python-format
|
||||
msgid "one of the arguments %s is required"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:2007
|
||||
msgid "expected one argument"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:2008
|
||||
msgid "expected at most one argument"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:2009
|
||||
msgid "expected at least one argument"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:2011
|
||||
#, python-format
|
||||
msgid "expected %s argument(s)"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:2068
|
||||
#, python-format
|
||||
msgid "ambiguous option: %s could match %s"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:2130
|
||||
#, python-format
|
||||
msgid "unexpected option string: %s"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:2234
|
||||
#, python-format
|
||||
msgid "%r is not callable"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:2250
|
||||
#, python-format
|
||||
msgid "invalid %s value: %r"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:2260
|
||||
#, python-format
|
||||
msgid "invalid choice: %r (choose from %s)"
|
||||
msgstr ""
|
||||
|
||||
#: /usr/lib/python2.7/argparse.py:2353
|
||||
#, python-format
|
||||
msgid "%s: error: %s\n"
|
||||
msgstr ""
|
||||
|
|
|
|||
4
setup.py
4
setup.py
|
|
@ -111,7 +111,7 @@ py_includes = ['dns.rdtypes.IN.*', 'dns.rdtypes.ANY.*',
|
|||
'twill.other_packages.*', 'twill.other_packages._mechanize_dist.*',
|
||||
]
|
||||
# basic excludes for py2exe and py2app
|
||||
py_excludes = ['doctest', 'unittest', 'optcomplete', 'Tkinter',
|
||||
py_excludes = ['doctest', 'unittest', 'argcomplete', 'Tkinter',
|
||||
'PyQt4.QtDesigner', 'PyQt4.QtNetwork', 'PyQt4.QtOpenGL',
|
||||
'PyQt4.QtScript', 'PyQt4.QtTest', 'PyQt4.QtWebKit', 'PyQt4.QtXml',
|
||||
'PyQt4.phonon',
|
||||
|
|
@ -951,7 +951,7 @@ o a command line, GUI and web interface
|
|||
# "IP country info": ['GeoIP'], # http://www.maxmind.com/app/python
|
||||
# "Login form": ['twill'], # http://twill.idyll.org/
|
||||
# "GNOME proxies": ['pygtk'], # http://www.pygtk.org/downloads.html
|
||||
# "Bash completion": ['optcomplete'], # http://furius.ca/optcomplete/
|
||||
# "Bash completion": ['argcomplete'], # https://pypi.python.org/pypi/argcomplete
|
||||
# "Memory debugging": ['meliae'], # https://launchpad.net/meliae
|
||||
#}
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in a new issue