diff --git a/README.md b/README.md index a009c23c..1a05db06 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,13 @@ -This is the source code of Angry IP Scanner, licensed with GPL v2. +# Angry IP Scanner -[Official site - AngryIP.org](http://angryip.org/) +This is the source code of Angry IP Scanner, licensed with GPL v2. [Official site](http://angryip.org/) The code is written mostly in Java. IntelliJ IDEA is recommended for coding, but Eclipse would do as well. After loading the project in IDEA, make sure you select the appropriate for your platform lib_xxx library in module dependencies. -Building -======== +## Building [![Build Status](https://travis-ci.org/angryziber/ipscan.svg?branch=master)](https://travis-ci.org/angryziber/ipscan) JDK 1.6+ as well as Ant are required for building. diff --git a/resources/messages.properties b/resources/messages.properties index ca332a46..17985d24 100644 --- a/resources/messages.properties +++ b/resources/messages.properties @@ -5,6 +5,7 @@ preferences.language.needsRestart=You need to restart the app for the language c preferences.language.someIncomplete=Some translations are incomplete language.system=System default language.en=English +language.de=German language.hu=Hungarian language.es=Spanish language.lt=Lithuanian diff --git a/resources/messages_de.properties b/resources/messages_de.properties new file mode 100644 index 00000000..684ff414 --- /dev/null +++ b/resources/messages_de.properties @@ -0,0 +1,352 @@ +# Messages in properties format +# To translate, copy this file to e.g. messages_fr.txt, where "fr" is the language code +preferences.language=Sprache +preferences.language.needsRestart=Sie m\u00fcssen die Anwendung erneut starten, damit die Sprache \u00fcbernommen wird +preferences.language.someIncomplete=Manche \u00dcbersetzungen sind unvollst\u00e4ndig +language.system=Systemstandard +language.en=Englisch +language.de=Deutsch +language.hu=Ungarisch +language.es=Spanisch +language.lt=Litauisch +language.ku=Kurdisch +language.tr=T\u00fcrkisch +preferences.csv=CSV +preferences.csv.separator=CSV Trennzeichen +text.progress.ipProgressBar=IP Status: +text.progress.portProgressBar=Port Status: +icon=images/icon.png +menu.scan=Scan +menu.scan.newWindow=Neues Fenster +menu.scan.exportAll=Alles exportieren... +menu.scan.exportSelection=Auswahl exportieren... +menu.scan.exportPreferences=Export Einstellungen... +menu.scan.importPreferences=Import Einstellungen... +menu.scan.quit=Beenden +menu.scan.load=Aus Datei laden... +menu.goto=Gehe zu +menu.goto.next.aliveHost=N\u00e4chster lebender Host +menu.goto.next.deadHost=N\u00e4chster toter Host +menu.goto.next.openPort=N\u00e4chster offener Port +menu.goto.prev.aliveHost=Vorheriger lebender Host +menu.goto.prev.deadHost=Vorheriger toter Host +menu.goto.prev.openPort=Vorheriger offener Port +menu.goto.find=Suchen... +menu.commands=Befehle +menu.commands.details=Zeige Deteils +menu.commands.rescan=Erneut IP(s) scannen +menu.commands.delete=L\u00f6sche IP(s) +menu.commands.copy=IP kopieren +menu.commands.copyDetails=Details kopieren +menu.commands.show=Zeigen +menu.commands.open=\u00d6ffnen +menu.commands.open.edit=Bearbeite Opener... +menu.favorites=Favoriten +menu.favorites.add=Aktuelles hinzuf\u00fcgen... +menu.favorites.edit=Favoriten verwalten... +menu.tools=Werkzeuge +menu.tools.preferences=Einstellungen... +menu.tools.fetchers=Fetcher... +menu.tools.select=Auswahl +menu.tools.select.alive=Verf\u00fcgbare Hosts +menu.tools.select.dead=Tote Hosts +menu.tools.select.withPorts=Mit offenen Ports +menu.tools.select.withoutPorts=Ohne offene Ports +menu.tools.select.invert=Auswahl umkehren +menu.tools.scanStatistics=Scan Statistiken +menu.help=Hilfe +menu.help.gettingStarted=Erste Schritte +menu.help.website=Offizielle Webseite +menu.help.faq=FAQ +menu.help.plugins=Plugins +menu.help.cmdLine=Kommandozeilen-Benutzung +menu.help.checkVersion=Nach neuen Versionen suchen... +menu.help.about=\u00dcber +menu.columns.sortBy=Sortieren nach +menu.columns.sortDirection=Sortierreihenfolge umkehren +menu.columns.about=\u00dcber +menu.columns.preferences=Einstellungen... +state.ready=Fertig +state.scanning=Gestartet\u0020 +state.waitForThreads=Warte bis alle Threads beendet sind... +state.killingThreads=Alle Threads killen... +state.exporting=Ergebnisse exportieren... +state.searching=Suche... +state.opening=\u00d6ffne +state.retrievingVersion=Empfange die letzte Version... +title.about=\u00dcber +title.configDetect=Konfigurationsabfrage +title.statistics=Scan Statistik +title.preferences=Einstellungen +title.preferences.scanning=Scannen +title.preferences.display=Anzeigen +title.preferences.fetchers=Fetcher +title.preferences.ports=Ports +title.details=IP-Addressen-Details +title.exportAll=Exportiere alle Ergebnisse +title.exportSelection=Exportiere ausgew\u00e4hlte Ergebnisse +title.gettingStarted=Erste Schritte +title.favorite.add=Einen Favoriten hinzuf\u00fcgen +title.favorite.edit=Favoriten bearbeiten +title.openers.edit=Bearbeite Opener +title.fetchers.select=W\u00e4hle Fetcher +title.rename=Umbenennen +title.load=Laden +title.find=Finden +title.commandline=Kommandozeilen-Benutzung +text.error=Fehler +text.userError=Problem +text.ip=IP +text.threads=Threads:\u0020 +text.threads.max=\u0020(max) +text.display.ALL=Anzeigen: Alle +text.display.ALIVE=Anzeigen: nur lebende +text.display.PORTS=Anzeigen: offene Ports +text.hostsSelected=\u00A0Hosts ausgew\u00e4hlt +text.favorite.add=Gebe den Namen des neuen Favoriten ein +text.favorite.edit=Unten lassen sich die Favoriten umsortieren oder l\u00f6schen +text.find=Geben Sie den Text ein, nach dem gesucht werden soll +text.find.notFound=Es wurde nichts gefunden. +text.find.restart=M\u00f6chten Sie von vorne starten? +text.comment.edit=Kommentar +text.configDetect=Wir werden versuchen die Anzahl an Threads zu erkennen, welche zuverl\u00e4ssig auf dieser Maschine laufen, indem zu einem bekannten Host gleichzeitig vielfach mit dem konfigurierten Port-Timeout zugegriffen wird.\n\nBitte stellen Sie einen Host und Port zur Verf\u00fcgung, der 100% offen ist und funktioniert, z.B. einen Proxy oder Webserver in Ihrem Netzwerk. +text.configDetect.host=Host: +text.configDetect.port=Port: +text.configDetect.tries=Initierte Verbindungen: +text.configDetect.successes=Erfolgreiche Verbindungen: +text.configDetect.failed=%d Verbindungsversuche wurden unternommen. %d wurden als erfolgreich erwartet, aber nur %d funktionierten. Es scheint, dass Sie entweder die maximale Anzahl an Threads reduzieren oder den Connection-Timeout vergr\u00f6\u00dfern sollten. +text.configDetect.success=Die ausgew\u00e4hlte Nummer an Threads von %d l\u00e4uft einwandfrei auf Ihrer Maschine. +text.scan.new=Neuer Scan +text.scan.confirmation=Vorherige Scan-Ergebnisse l\u00f6schen? +text.scan.completed=Scan vollst\u00e4ndig +text.scan.incomplete=Scan unvollst\u00e4ndig +text.scan.aborted=Scan abgebrochen +text.scan.time.total=Gesamtzeit: +text.scan.time.average=Durchschnittszeit pro Host: +text.scan.hosts.total=Hosts gescannt: +text.scan.hosts.alive=Hosts lebend: +text.scan.hosts.ports=Mit offenen Ports: +text.version.latest=Sie haben bereits die letzte Version +text.version.old=Die letzte stabile Version ist %LATEST, aber sie besitzen %VERSION.\n\nM\u00f6chten Sie die Downloadseite \u00f6ffnen? +text.openers.edit=Unten k\u00f6nnen Sie neue Opener hinzuf\u00fcgen oder vorhandene bearbeiten +text.openers.name=Opener-Name (Men\u00fceintrag): +text.openers.string=Ausf\u00fchrungs-String: +text.openers.directory=Arbeitsverzeichnis: +text.openers.inTerminal=Starte das Programm in der Kommandozeile +text.openers.new=Neuer Opener +text.openers.hint=Ersetzungen... +text.openers.hintText=Sie k\u00f6nnen jeden gescannten Wert, der von einem Fetcher zur\u00fcckgegeben wurde in dem Ausf\u00fchrstring verwenden.\n\nFolgende Fetcher sind momentan zur Ersetzung verf\u00fcgbar:\n\n +text.fetchers.select=Hier k\u00f6nnen Sie Fetcher ausw\u00e4hlen. Fetcher werden durch Spalten repr\u00e4sentiert. +text.fetchers.selectedList=Ausgew\u00e4hlte Fetcher +text.fetchers.availableList=Verf\u00fcgbare Fetcher +text.fetchers.info=Informationen zu Fetcher: +text.fetchers.info.notAvailable=Ungl\u00fccklicherweise, ist keine zus\u00e4tzliche Information zu diesem Fetcher verf\u00fcgbar. +text.fetchers.preferences=Einstellungen der ausgew\u00e4hlten Fetcher +text.fetcher.portText.send=Text zum senden (\\n, \\r, \\t und \\xXX sind erlaubt) +text.fetcher.portText.match=Regul\u00e4rer Ausdruck, um Antworten Zeile f\u00fcr Zeile zuzuordnen +text.fetcher.portText.replace=RErsetzungsstring f\u00fcr Regul\u00e4rer Ausdruck ($0 .. $9 werden durch zugeordnete Gruppen ersetzt) +text.about=%NAME\n\nVersion: %VERSION\nBuild-Datum: %DATE\n\n%COPYLEFT +text.about.system=Java: %JAVA\nOS: %OS +button.OK=OK +button.cancel=Abbrechen +button.find.next=N\u00e4chstes finden +button.close=Beenden +button.next=N\u00e4chstes +button.start=Start +button.start.img=images/buttons/start.png +button.stop=Stop +button.stop.img=images/buttons/stop.png +button.kill=Stop! +button.kill.img=images/buttons/kill.png +button.ipUp=IP +button.ipUp.img=images/buttons/ipup.png +button.preferences.img=images/buttons/prefs.png +button.fetchers.img=images/buttons/fetchers.png +button.up=Hoch +button.down=Runter +button.delete=L\u00f6schen +button.rename=Umbenennen +button.save=Speichern +button.insert=Einf\u00fcgen +button.add=Hinzuf\u00fcgen +button.left=<< +button.right=>> +button.fetcherPrefs=... +button.check=Pr\u00fcfen... +combobox.feeder.tooltip=IP Auswahl. \u00c4ndern Sie dies, wenn Sie eine andere Quelle f\u00fcr IP-Addressen zum scannen ben\u00f6tigen +list.unknown.img=images/list/unknown.png +list.dead.img=images/list/dead.png +list.alive.img=images/list/alive.png +list.addinfo.img=images/list/addinfo.png +pinger.icmp=ICMP Echo +pinger.icmp2=ICMP Echo (Alternative) +pinger.windows=Windows ICMP.DLL +pinger.udp=UDP packet +pinger.tcp=TCP port probe +pinger.combined=Kombiniertes UDP+TCP +opener.web=Web Browser +opener.ftp=FTP +opener.telnet=Telnet +opener.ssh=SSH +opener.ping=Ping +opener.traceroute=Trace-Route +opener.whois=Whois +opener.geolocate=Geo-Locate +opener.netbios=Windows Freigaben +opener.email=E-mail sample +feeder.range=IP-Bereich +feeder.range.to=bis +feeder.range.startIP=Start-IP +feeder.range.endIP=End-IP +feeder.range.netmask=Netzmaske +feeder.range.netmask.tooltip=Netzmaske f\u00fcr den IP-Bereich. Benutze entweder die Nummer der Bits (z.B. /24) oder die Punkt-Annotation (.255. = ..) +feeder.range.hostname=Hostname +feeder.range.hostname.tooltip=Benutze dieses Feld um Hostnamen in IP-Addressen aufzul\u00f6sen +feeder.file=IP-Listen-Datei +feeder.file.name=Datei +feeder.file.browse=Durchsuchen... +feeder.random=Zuf\u00e4llig +feeder.random.prototype=Basis-IP +feeder.random.mask=IP-Maske +feeder.random.hostname=Hostname +feeder.random.count=Anzahl +feeder.rescan.of=Rescan von\u0020 +fetcher.ip=IP +fetcher.ip.info=Zeigt die gescannten IP-Addressen an.\nDieser Fetcher ist verpflichtend und kann nicht aus der Liste entfernt werden. +fetcher.ping=Ping +fetcher.ping.info=Zeigt, ob der Host auf Ping-Anfragen antwortet und zeigt die durchschnittliche Roundtrip Zeit zum Host und zur\u00fcck, falls erkannt (Abh\u00e4ngig von der ausgew\u00e4hlten Ping-Methode im Einstellungs-Dialog). +fetcher.ping.ttl=TTL +fetcher.ping.ttl.info=Zeigt den TTL (Time To Live) Wert in den Ping-Antwort-Paketen (funktioniert nur bei ICMP pinging).\n\nDieser Wert wird standardm\u00e4\u00dfig bei jedem Konten im Netzwerk, welcher das Paket weiterleitet reduziert. Wenn also der Standardwert sch\u00e4tzbar ist (normalerweise 64, 128 oder 255), dann wird die Distanz zum Host angezeigt (Anzahl der Knoten). +fetcher.hostname=Hostname +fetcher.hostname.info=Zeigt den Hostnamen des Host welcher \u00fcber Reverse-DNS-Lookup ermittelt wurde an.\n\nDies ist der regristrierte Hostname auf dem DNS-Server und eventuell unterschiedlich von dem Namen, welcher auf der Maschine selbst eingestellt wurde. +fetcher.ports=Ports +fetcher.ports.info=Zeigt die Liste der offenen Ports des gescannten Ger\u00e4ts an.\n\nEin Port ist offen, wenn ein kompletter TCP Handshake und eine Verbindung m\u00f6glich ist.\n\nSie k\u00f6nnen zu scannende Ports im Einstellungs-Dialog ausw\u00e4hlen.\n\nDie Nummer in dem Spaltenkopf zeigt die aktuelle Anzahl der ausgew\u00e4hlten Ports f\u00fcrs scannen; '+' wird angezeigt, wenn die angeforderten Ports f\u00fcr jeden Host genau so gescannt werden. +fetcher.ports.filtered=Gefilterte Ports +fetcher.ports.filtered.info=Zeigt die liste der gefilterten Ports bei den Ger\u00e4ten, welche gescannt wurden.\n\nEin Port ist gefiltert, wenn keine Antwort zur Verbindung innerhalb einer spezifizierten Zeit empfangen wurde. Wenn ein Port gefiltert wurde, dann ist er wahrscheinlich von einer Firewall geblockt worden. +fetcher.comment=Kommentare +fetcher.comment.info=Zeigt das Kommmentar, welches zu der Addresse im IP-Deteils-Fenster eingegeben wurde an.\nDas Kommentar ist persistent und wird erneut gezeigt, wenn der Host erneut gescannt wird. +fetcher.webDetect=Web Erkennung +fetcher.webDetect.info=Erkennt den Webserver Software-Name und Version, wenn m\u00f6glich.\n\nFunktioniert auf Basis einer HEAD-Anfrage und dem lesen des HTTP-Headers der Antwort. +fetcher.httpSender=HTTP Sender +fetcher.httpSender.info=Sendet die festgelegten w\u00f6rtlichen Anfragen zu dem spezifizierten TCP-Port (z.B. 3128, HTTP Proxy), empf\u00e4ngt die Antwort und benutzt den festgelegten Regul\u00e4ren Ausdruck um die gew\u00fcnschte Informaation zu extrahieren.\n\nSehr anpassungsf\u00e4hig, kann f\u00fcr jedes Text-Protokoll, wie HTTP, SMTP, POP3, IMAP, etc verwendet werden. F\u00fcr erfaherene Benutzer. +fetcher.portText.custom=Benutzerdefiniert +fetcher.netbios=NetBIOS Info +fetcher.netbios.info=Empf\u00e4ngt die NetBIOS Information von Windows-Maschinen.\n\n Die Antwort hat das folgende Format:\nDOMAIN\\USER@COMPUTER [MAC]\n\nWo:\nDOMAIN - Windows domain oder Arbeitsgruppe\nUSER - momentan eingeloggter Benutzer\nCOMPUTER - Windows Computer name (kann anders als der DNS-Name sein)\nTeile sind eventuell nicht vorhanden, abh\u00e4ngig von der Antwort.\n\nDas funktioniert nicht mit Maschinen, welche eine Firewall aktiviert haben (die meisten modernen Konfigurationen).\n Dieser Fetcher ist haups\u00e4chlich vorhanden um die Funktionskompatibilit\u00e4t zur Version 2.x zu gew\u00e4hrleisten. +fetcher.mac=MAC Addresse +fetcher.mac.info=L\u00f6st die MAC-Adresse des Hosts mithilfe des ARP-Protokolls auf.\nFunktioniert nicht in nicht-lokalen Netzwerken. +fetcher.mac.vendor=MAC Hersteller +fetcher.mac.vendor.info=Zeigt den Herstellername, welcher vermutlich die Netzwerkkarte mit der aufgel\u00f6sten MAC-Adresse produziert hat an. +fetcher.value.notAvailable=[n/a] +fetcher.value.notScanned=[n/s] +unit.ms=\u00A0ms +unit.second=\u00A0sec +unit.minute=\u00A0min +unit.hour=\u00A0h +preferences.threads=Threads +preferences.threads.delay=Wartezeit zwischen dem starten von Threads (in ms): +preferences.threads.maxThreads=Maximale Anzahl an Threads: +preferences.pinging.deadHosts=Scanne tote Hosts, welche nicht auf Pings reagieren +preferences.pinging=Ping +preferences.pinging.type=Ping Methode: +preferences.pinging.count=Anzahl der Ping-Untersuchungen (Pakete zum senden): +preferences.pinging.timeout=Ping timeout (in ms): +preferences.skipping=\u00dcberspringen +preferences.skipping.broadcast=\u00dcberspringe vermutlich nicht zugewiesene IP-Addressen *.0 und *.255 +preferences.fetchers.info=Hier k\u00f6nnen Sie die Einstellungen speziell zu den Fetchern \u00e4ndern +preferences.ports.timing=Timing +preferences.ports.timing.timeout=Standardm\u00e4\u00dfiger Port-Verbindungs-Timeout (in ms): +preferences.ports.timing.adaptTimeout=Gleicher Timeout zur Ping-Roundtrip-Zeit (wenn verf\u00fcgbar) +preferences.ports.timing.minTimeout=Minimal angeglichener Connect-Timeout (in ms): +preferences.ports.ports=Port Auswahl +preferences.ports.portsDescription=Geben Sie hier die Ports zum scannen an. Bereiche werden unterst\u00fctzt.\nBeispiel: 1-3,5,7,10-15,6000-6100\nWenn viele Ports ausgew\u00e4hlt sind wird das Scannen einige Zeit in Anspruch nehmen. +preferences.ports.addRequested=F\u00fcge f\u00fcr jeden Host spezifische Ports hinzu +preferences.ports.addRequested.info=Feeder unterst\u00fctzen zus\u00e4tzlich zur Addresse das angeben von spezifizierten Ports (z.B. Datei Feeder, in der Form: Adresse:Port)\nDies erlaubt das erneute Scannen von exportierten IP:Port Datei-Listen. Seien Sie vorsichtig bei HTTP-Proxy-Listen und \u00e4hnlichem.\nSollte dies aktiviert sein, dann wird immer jeder angefragte Port des Hostes als Erg\u00e4nzung der gemeinsamen Ports, welche oben spezifiziert wurden gescannt. +preferences.display.list=Zeige in der Ergebnis-Liste +preferences.display.list.ALL=Alle gescannten Hosts +preferences.display.list.ALIVE=Nur Lebende Hosts (antworten auf Pings) +preferences.display.list.PORTS=Nur Hosts mit offenen Ports +preferences.display.labels=Beschriftungen in der Ergebnisliste angezeigt +preferences.display.labels.notAvailable=Der Wert ist nicht verf\u00fcgbar (keine Ergebnisse): +preferences.display.labels.notScanned=Der aktuelle Wert wurde nicht gescannt (unbekannt): +preferences.display.confirmation=Best\u00e4tigung +preferences.display.confirmation.newScan=Frage nach einer Best\u00e4tigung, um einen neuen Scan zu starten +preferences.display.confirmation.showInfo=Zeige Infodialog nach jedem Scan +exporter.txt=Textdatei (txt) +exporter.txt.generated=Erstellt von +exporter.txt.scanned=Gescannt %INFO +exporter.csv=Komma-Getrennte Datei (csv) +exporter.xml=XML Datei (xml) +exporter.ipList=IP:Port Liste (lst) +exception.FeederException.invalidNetmask=Ung\u00fcltige Netzmaske festgelegt. Muss im A.B.C.D Format sein +exception.FeederException.invalidHostname=Ung\u00fcltiger oder nichtexistenter Hostname festgelegt +exception.FeederException.malformedIP=Ung\u00fcltige IP-Addresse festgelegt, sie sollte so aussehen: A.B.C.D +exception.FeederException.random.invalidCount=Zuf\u00e4lliger Adressenz\u00e4hler muss gr\u00f6\u00dfer als 0 sein +exception.FeederException.file.notExists=Festgelegte Datei existiert nicht oder Sie haben keine Berechtigung f\u00fcr die Datei +exception.FeederException.file.errorWhileReading=Fehler w\u00e4hrend dem lesen der Datei +exception.FeederException.file.nothingFound=Keine IP-Addresse in der Datei gefunden +exception.FetcherException.preferences.notAvailable=Dieser Fetcher hat keine Einstellungen. +exception.FetcherException.unparseablePortString=Der Port-String ist entweder ung\u00fcltig oder unvollst\u00e4ndig.\nBitte \u00fcberpr\u00fcfe, dass er im korrekten Format ist und die Portnummern im korrekten Bereich sind (1-65535) +exception.FetcherException.unsupportedPinger=Der ausgew\u00e4hlte Pinger ist in der aktuellen Umgebung nicht verf\u00fcgbar.\n\nDas kann der Fall sein bei ICMP Pinger, welche RawSocket-Unterst\u00fctzung vom Betriebssystem ben\u00f6tigen (z.B. wurde die Unterst\u00fctzung in der Consumer-Version von Windows seit XP SP2 entfernt) und die entsprechende Rechte (auf fast allen Systemen werden Root- bzw. Administratorrechte ben\u00f6tigt) +exception.FetcherException.pingerCreateFailure=Unf\u00e4hig den angefragten Pinger zu initialisieren.\nSie k\u00f6nnen veruchen einen anderen Pinger im Einstellungs-Dialog auszuw\u00e4hlen. +exception.ExporterException.failed=Export fehlgeschlagen +exception.ExporterException.exporter.unknown=Unbekannter Dateityp. Bitte geben Sie eine korrekte Dateiendung an. +exception.ExporterException.xml.noAppend=Anf\u00fcgen an XML-Dateinen wird nicht unterst\u00fctzt. +exception.ExporterException.fetcher.notFound=Nicht gen\u00fcgend Daten im Scanergebnis, um in diesen Dateityp zu exportieren. +exception.ExporterException.scanningInProgress=Das Scannen ist noch nicht abgeschlossen. M\u00f6chten Sie wirklich die unvollst\u00e4ndigen Ergebnisse exportieren? +exception.UserErrorException.openURL.failed=Konnte den Standardbrowser nicht starten, sorry.\nURL: +exception.UserErrorException.openTerminal.failed=Konnte das Terminal nicht starten, sorry\n +exception.UserErrorException.opener.failed=Konnte einen externen Prozess nicht starten, sorry.\nCommand-line: +exception.UserErrorException.opener.unknownFetcher=Der referenzierte Fetcher kann im aktuellen Scanprozess nicht aufgel\u00f6st werden. Kann den Opener nicht mit den folgenden Informationen \u00f6ffnen: +exception.UserErrorException.opener.nullFetcherValue=Der Ersetzungs-Wert des Fetchers ist in den Scanergebnissen leer. Kann den Opener nicht mit den folgenden Informationen \u00f6ffnen: +exception.UserErrorException.opener.edit.noSelection=Bitte w\u00e4hle die Position aus, an der der Opener gespeichert werden soll und den Einf\u00fcgen Knopf um einen neuen hinzuzuf\u00fcgen. +exception.UserErrorException.commands.noSelection=Keine IP-Addresse ausgew\u00e4hlt +exception.UserErrorException.commands.noResults=Keine Scan-Ergebnisse verf\u00fcgbar, bitte starten Sie erst einen Scan +exception.UserErrorException.favorite.alreadyExists=Ein Favorit mit dem selben Namen existiert bereits, bitte versuche einen anderen +exception.UserErrorException.version.latestFailed=Abrufen der neusten Version fehlgeschlagen. Bitte besuche die Webseite manuell. +exception.UserErrorException.fileLoad.failed=Unf\u00e4hig die Ergebnisse aus der Datei zu lesen. Stelle sicher, dass die Datei vorher vom Angry IP Scanner exportiert wurde. +exception.OutOfMemoryError=Speicher voll. Der Betrag des verf\u00fcgbaren Speichers wurde \u00fcberschritten.\nBitte vergr\u00f6\u00dfere die maximale Heap Gr\u00f6\u00dfe f\u00fcr dieses Programm. + +text.gettingStarted=Dummy + +text.gettingStarted1=Angry IP Scanner ist ein IP-Scanner-Werkzeug.\n\n\ +Es wird verwendet, um IP-Adressen zu scannen. Mit dem Ziel lebende Hosts zu finden und Informationen \u00fcber diese zu erlangen.\n\n\ +Sie k\u00f6nnen mit der Eingabe der IP-Adresse (Ihre lokale ist vorausgew\u00e4hlt) und dem bet\u00e4tigen des Start-Buttons beginnen. + +text.gettingStarted2=Haupt-Terminologie:\n\n\ +Feeder - Generator von IP-Addressen f\u00fcrs Scannen. Angry IP Scanner liefert unterschiedliche Arten von Feeder: IP-Bereich, Zufall und IP-Listen-Datei. Sie k\u00f6nnen einen Feeder durch die Kombobox neben dem Start-Button ausw\u00e4hlen.\n\n\ +Fetcher - gewinnt spezifische Informationen \u00fcber den Host, z.B. Ping-Zeit, Hostname, offene Ports. Feeder repr\u00e4sentieren normalerweise Spalten in der Ergebnisliste. Sie k\u00f6nnen zus\u00e4tzliche Fetcher \u00fcber "Werkzeuge->Fetcher ausw\u00e4hlen" vom Men\u00fc aus einstellen. + +text.gettingStarted3=Haupt-Terminologie (fortgesetzt):\n\n\ +Lebende Hosts - ist der Host, welcher auf Pings antwortet. Diese sind blau in der Ergebnisliste.\n\n\ +Tote Hosts - ist der Host, welcher nicht auf Pings antwortet (rot in der Liste). Unter Umst\u00e4nden hat er offene Ports (wenn die Firewall Pings blockt). Wenn diese Hosts voll gescannt werden sollen, w\u00e4hle "scanne tote Hosts" in dem Werkzeug->Einstellungen-Dialog.\n\n\ +Offene Ports - ein TCP-Port, welcher auf Verbindungsversuche antwortet. Hosts mit offenen Ports erscheinen in der Verbindungsliste gr\u00fcn.\n\n\ +Gefilterte Ports - ein TCP Port, welcher nicht antwortet, dass er geschlossen ist (kein RST-Packet). Diese Ports sind normalerweise speziell in der Firewall aus bestimmten Gr\u00fcnden geblockt. + +text.gettingStarted4=Pinging (\u00fcberpr\u00fcfen ob der Host verf\u00fcgbar ist):\n\n\ +Angry IP Scanner kann verschiedene Methoden f\u00fcr das anpingen von Hosts verwenden. Sie k\u00f6nnen zwischen diesen im EInstellungs-Dialog ausw\u00e4hlen.\n\n\ +ICMP echo - ist die Standard-Methode welche vom 'ping'-Programm verwendet wird. Dies ben\u00f6tigt auf den meisten Plattformen Administrator- oder Root-Rechte.Beachte, dass einige Firewalls das Senden von ICMP-Echo-Replay-Paketen deaktivieren, was lebende Hosts tot erscheinen l\u00e4sst.\n\n\ +UDP - sendet UDP-Pakete (Datagramme) zu einem Port des Hosts und sieht, ob es irgend eine Antwort (entweder positiv oder negativ) gibt. Dies ist nicht dem Standard entsprechend, ben\u00f6tigt aber keine speziellen Rechte.\n\n\ +TCP - probiert eine Verbindung auf den Port 80 (HTTP) auf dem Host. Das funktioniert besser als UDP auf manchen Netzwerken, aber \u00fcblicherweise ist es schlecht.\n\n\ +UDP und TCP Pinging erkennt meist Router oder anderes Netzwerk-Equipment nicht korrekt.\n\n\ +TTL (time to live) - dieser Fetcher funktioniert nur mit der ICMP-Ping-Methode. Sein Standard-Wert ist normalerweise 64 oder 128 und der Unterschied zum Startwert repr\u00e4sentiert die Entfernung zum Host in der Anzahl der passierten Knoten. + +text.gettingStarted5=Die Ergebnisliste zeigt jede Zeile eine gescannte Adresse.\n\n\ +Mit dem Einstellungs-Dialog lassen sich folgende Anzeigen einstellen:\n\ +- alle gescannten Hosts\n\ +- nur lebende Hosts\n\ +- nur Host mit einem ge\u00f6ffneten Port\n\n\ +Spezialwerte (auch konfigurierbar):\n\ +[n/s] - wurde nicht gescannt (z.B. der Host ist tot)\n\ +[n/a] - der Wert ist nicht verf\u00fcgbar, wurde aber gescannt + +text.crippledWindowsInfo=Danke f\u00fcr das ausprobieren von Angry IP Scanner!\n\n\ +Bedenken Sie dass die Consumer-Versionen von Windows (z.B. Windows XP SP2 / Vista / 7) eingeschr\u00e4nkte F\u00e4higkeiten zum Scannen besitzen. Dies kommt durch den entfernten RawSocket-Support und der TCP-Connection-Rate-Limitierung.\n\n\ +Aufgrund dessen sind einige Einstellungen ver\u00e4ndert, welche den Scanner langsamer als auf anderen Betriebssystemen macht.\n\n\ +Siehe die FAQ-Seite auf der Webseite (Hilfe-Men\u00fc) f\u00fcr mehr Informationen. + +text.gnuJavaInfo=Danke f\u00fcr das ausprobieren von Angry IP Scanner!\n\n\ +Das Programm l\u00e4uft momentan unter der GNU Java (GIJ/GCJ) Implementierung.\n\n\ +Ungl\u00fccklicherweise besitzt diese Version von Java einige Bugs und Einschr\u00e4nkungen, welche den Angry IP Scanner betreffen.\n\n\ +Bekannte Probleme:\n-Langsamer Start\n- EInstellungen nicht gespeichert\n- TCP Pinger und Port-Scanning k\u00f6nnen falsche Ergebnisse bringen\n\ +\nBitte \u00fcberlege Sun Java von http://java.com oder OpenJDK/IcedTea zu nutzen\n\n\ +oder... helfe Angry IP Scanner und GNU Java mit dem unterst\u00fctzen beider Projekte kompatibel zu machen :-) diff --git a/src/net/azib/ipscan/gui/EditFavoritesDialog.java b/src/net/azib/ipscan/gui/EditFavoritesDialog.java index a12bce0c..f93f7319 100644 --- a/src/net/azib/ipscan/gui/EditFavoritesDialog.java +++ b/src/net/azib/ipscan/gui/EditFavoritesDialog.java @@ -6,16 +6,10 @@ package net.azib.ipscan.gui; import net.azib.ipscan.config.FavoritesConfig; import net.azib.ipscan.config.Labels; import net.azib.ipscan.gui.util.LayoutHelper; - import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.List; -import org.eclipse.swt.widgets.Listener; -import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.*; /** * EditFavoritesDialog @@ -82,13 +76,13 @@ public class EditFavoritesDialog extends AbstractModalDialog { shell.pack(); - okButton.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() { + okButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) { saveFavorites(); shell.close(); } }); - cancelButton.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() { + cancelButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) { shell.close(); } diff --git a/src/net/azib/ipscan/gui/EditOpenersDialog.java b/src/net/azib/ipscan/gui/EditOpenersDialog.java index 34962e1e..534b8fba 100644 --- a/src/net/azib/ipscan/gui/EditOpenersDialog.java +++ b/src/net/azib/ipscan/gui/EditOpenersDialog.java @@ -10,6 +10,7 @@ import net.azib.ipscan.fetchers.Fetcher; import net.azib.ipscan.fetchers.FetcherRegistry; import net.azib.ipscan.gui.util.LayoutHelper; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.layout.FormAttachment; import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.*; @@ -63,11 +64,21 @@ public class EditOpenersDialog extends AbstractModalDialog { Button upButton = new Button(shell, SWT.NONE); upButton.setText(Labels.getLabel("button.up")); - upButton.addListener(SWT.Selection, new UpButtonListener(openersList)); + upButton.addListener(SWT.Selection, new UpButtonListener(openersList) { + @Override public void handleEvent(Event event) { + super.handleEvent(event); + currentSelectionIndex = openersList.getSelectionIndex(); + } + }); Button downButton = new Button(shell, SWT.NONE); downButton.setText(Labels.getLabel("button.down")); - downButton.addListener(SWT.Selection, new DownButtonListener(openersList)); + downButton.addListener(SWT.Selection, new DownButtonListener(openersList) { + @Override public void handleEvent(Event event) { + super.handleEvent(event); + currentSelectionIndex = openersList.getSelectionIndex(); + } + }); Button addButton = new Button(shell, SWT.NONE); addButton.setText(Labels.getLabel("button.add")); @@ -119,19 +130,30 @@ public class EditOpenersDialog extends AbstractModalDialog { editFieldsGroup.layout(); editFieldsGroup.pack(); - Button closeButton = createCloseButton(); - closeButton.setLayoutData(formData(85, SWT.DEFAULT, null, new FormAttachment(editFieldsGroup, 0, SWT.RIGHT), new FormAttachment(editFieldsGroup, 6), null)); - + Button okButton = new Button(shell, SWT.NONE); + okButton.setText(Labels.getLabel("button.OK")); + + Button cancelButton = new Button(shell, SWT.NONE); + cancelButton.setText(Labels.getLabel("button.cancel")); + + positionButtonsInFormLayout(okButton, cancelButton, editFieldsGroup); + shell.pack(); + okButton.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) { + saveOpeners(); + shell.close(); + } + }); + cancelButton.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) { + shell.close(); + } + }); + openersList.select(0); loadFieldsForSelection(); - - shell.addListener(SWT.Close, new Listener() { - public void handleEvent(Event e) { - saveOpeners(); - } - }); } private void saveOpeners() { @@ -193,7 +215,7 @@ public class EditOpenersDialog extends AbstractModalDialog { class AddButtonListener implements Listener { public void handleEvent(Event event) { saveCurrentFields(); - + currentSelectionIndex = openersList.getSelectionIndex(); if (currentSelectionIndex < 0) { currentSelectionIndex = openersList.getItemCount(); @@ -201,14 +223,14 @@ public class EditOpenersDialog extends AbstractModalDialog { String newName = Labels.getLabel("text.openers.new"); openersList.add(newName, currentSelectionIndex); openersList.setSelection(currentSelectionIndex); - + // reset fields editFieldsGroup.setText(newName); openerNameText.setText(newName); openerStringText.setText("${fetcher.ip}"); workingDirText.setText(""); isInTerminalCheckbox.setSelection(false); - + openerNameText.forceFocus(); openerNameText.setSelection(0, newName.length()); } @@ -218,7 +240,7 @@ public class EditOpenersDialog extends AbstractModalDialog { public void handleEvent(Event event) { if (openersList.getSelectionCount() == 0) return; - + saveCurrentFields(); loadFieldsForSelection(); } diff --git a/src/net/azib/ipscan/gui/PreferencesDialog.java b/src/net/azib/ipscan/gui/PreferencesDialog.java index 86b676e8..14bfc136 100644 --- a/src/net/azib/ipscan/gui/PreferencesDialog.java +++ b/src/net/azib/ipscan/gui/PreferencesDialog.java @@ -67,7 +67,7 @@ public class PreferencesDialog extends AbstractModalDialog { private Button showInfoCheckbox; private Button askConfirmationCheckbox; private Combo languageCombo; - private String[] languages = { "system", "en", "hu", "lt", "es", "ku", "tr" }; + private String[] languages = { "system", "en", "de", "hu", "lt", "es", "ku", "tr" }; @Inject public PreferencesDialog(PingerRegistry pingerRegistry, Config globalConfig, ScannerConfig scannerConfig, GUIConfig guiConfig) { this.pingerRegistry = pingerRegistry; @@ -76,8 +76,7 @@ public class PreferencesDialog extends AbstractModalDialog { this.guiConfig = guiConfig; } - @Override - public void open() { + @Override public void open() { openTab(0); }