# German translations for noVNC package
# German translation for noVNC.
# Copyright (C) 2018 The noVNC Authors
# This file is distributed under the same license as the noVNC package.
# Loek Janssen <loekjanssen@gmail.com>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: noVNC 0.6.1\n"
"Report-Msgid-Bugs-To: novnc@googlegroups.com\n"
"POT-Creation-Date: 2017-11-24 07:16+0000\n"
"PO-Revision-Date: 2017-11-24 08:20+0100\n"
"Last-Translator: Dominik Csapak <d.csapak@proxmox.com>\n"
"Language-Team: none\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.8.11\n"

#: ../app/ui.js:404
msgid "Connecting..."
msgstr "Verbinden..."

#: ../app/ui.js:411
msgid "Disconnecting..."
msgstr "Verbindung trennen..."

#: ../app/ui.js:417
msgid "Reconnecting..."
msgstr "Verbindung wiederherstellen..."

#: ../app/ui.js:422
msgid "Internal error"
msgstr "Interner Fehler"

#: ../app/ui.js:1019
msgid "Must set host"
msgstr "Richten Sie den Server ein"

#: ../app/ui.js:1099
msgid "Connected (encrypted) to "
msgstr "Verbunden mit (verschlüsselt) "

#: ../app/ui.js:1101
msgid "Connected (unencrypted) to "
msgstr "Verbunden mit (unverschlüsselt) "

#: ../app/ui.js:1119
msgid "Something went wrong, connection is closed"
msgstr "Etwas lief schief, Verbindung wurde getrennt"

#: ../app/ui.js:1129
msgid "Disconnected"
msgstr "Verbindung zum Server getrennt"

#: ../app/ui.js:1142
msgid "New connection has been rejected with reason: "
msgstr "Verbindung wurde aus folgendem Grund abgelehnt: "

#: ../app/ui.js:1145
msgid "New connection has been rejected"
msgstr "Verbindung wurde abgelehnt"

#: ../app/ui.js:1166
msgid "Password is required"
msgstr "Passwort ist erforderlich"

#: ../vnc.html:89
msgid "noVNC encountered an error:"
msgstr "Ein Fehler ist aufgetreten:"

#: ../vnc.html:99
msgid "Hide/Show the control bar"
msgstr "Kontrollleiste verstecken/anzeigen"

#: ../vnc.html:106
msgid "Move/Drag Viewport"
msgstr "Ansichtsfenster verschieben/ziehen"

#: ../vnc.html:106
msgid "viewport drag"
msgstr "Ansichtsfenster ziehen"

#: ../vnc.html:112 ../vnc.html:115 ../vnc.html:118 ../vnc.html:121
msgid "Active Mouse Button"
msgstr "Aktive Maustaste"

#: ../vnc.html:112
msgid "No mousebutton"
msgstr "Keine Maustaste"

#: ../vnc.html:115
msgid "Left mousebutton"
msgstr "Linke Maustaste"

#: ../vnc.html:118
msgid "Middle mousebutton"
msgstr "Mittlere Maustaste"

#: ../vnc.html:121
msgid "Right mousebutton"
msgstr "Rechte Maustaste"

#: ../vnc.html:124
msgid "Keyboard"
msgstr "Tastatur"

#: ../vnc.html:124
msgid "Show Keyboard"
msgstr "Tastatur anzeigen"

#: ../vnc.html:131
msgid "Extra keys"
msgstr "Zusatztasten"

#: ../vnc.html:131
msgid "Show Extra Keys"
msgstr "Zusatztasten anzeigen"

#: ../vnc.html:136
msgid "Ctrl"
msgstr "Strg"

#: ../vnc.html:136
msgid "Toggle Ctrl"
msgstr "Strg umschalten"

#: ../vnc.html:139
msgid "Alt"
msgstr "Alt"

#: ../vnc.html:139
msgid "Toggle Alt"
msgstr "Alt umschalten"

#: ../vnc.html:142
msgid "Send Tab"
msgstr "Tab senden"

#: ../vnc.html:142
msgid "Tab"
msgstr "Tab"

#: ../vnc.html:145
msgid "Esc"
msgstr "Esc"

#: ../vnc.html:145
msgid "Send Escape"
msgstr "Escape senden"

#: ../vnc.html:148
msgid "Ctrl+Alt+Del"
msgstr "Strg+Alt+Entf"

#: ../vnc.html:148
msgid "Send Ctrl-Alt-Del"
msgstr "Strg+Alt+Entf senden"

#: ../vnc.html:156
msgid "Shutdown/Reboot"
msgstr "Herunterfahren/Neustarten"

#: ../vnc.html:156
msgid "Shutdown/Reboot..."
msgstr "Herunterfahren/Neustarten..."

#: ../vnc.html:162
msgid "Power"
msgstr "Energie"

#: ../vnc.html:164
msgid "Shutdown"
msgstr "Herunterfahren"

#: ../vnc.html:165
msgid "Reboot"
msgstr "Neustarten"

#: ../vnc.html:166
msgid "Reset"
msgstr "Zurücksetzen"

#: ../vnc.html:171 ../vnc.html:177
msgid "Clipboard"
msgstr "Zwischenablage"

#: ../vnc.html:181
msgid "Clear"
msgstr "Löschen"

#: ../vnc.html:187
msgid "Fullscreen"
msgstr "Vollbild"

#: ../vnc.html:192 ../vnc.html:199
msgid "Settings"
msgstr "Einstellungen"

#: ../vnc.html:202
msgid "Shared Mode"
msgstr "Geteilter Modus"

#: ../vnc.html:205
msgid "View Only"
msgstr "Nur betrachten"

#: ../vnc.html:209
msgid "Clip to Window"
msgstr "Auf Fenster begrenzen"

#: ../vnc.html:212
msgid "Scaling Mode:"
msgstr "Skalierungsmodus:"

#: ../vnc.html:214
msgid "None"
msgstr "Keiner"

#: ../vnc.html:215
msgid "Local Scaling"
msgstr "Lokales skalieren"

#: ../vnc.html:216
msgid "Remote Resizing"
msgstr "Serverseitiges skalieren"

#: ../vnc.html:221
msgid "Advanced"
msgstr "Erweitert"

#: ../vnc.html:224
msgid "Repeater ID:"
msgstr "Repeater ID:"

#: ../vnc.html:228
msgid "WebSocket"
msgstr "WebSocket"

#: ../vnc.html:231
msgid "Encrypt"
msgstr "Verschlüsselt"

#: ../vnc.html:234
msgid "Host:"
msgstr "Server:"

#: ../vnc.html:238
msgid "Port:"
msgstr "Port:"

#: ../vnc.html:242
msgid "Path:"
msgstr "Pfad:"

#: ../vnc.html:249
msgid "Automatic Reconnect"
msgstr "Automatisch wiederverbinden"

#: ../vnc.html:252
msgid "Reconnect Delay (ms):"
msgstr "Wiederverbindungsverzögerung (ms):"

#: ../vnc.html:258
msgid "Logging:"
msgstr "Protokollierung:"

#: ../vnc.html:270
msgid "Disconnect"
msgstr "Verbindung trennen"

#: ../vnc.html:289
msgid "Connect"
msgstr "Verbinden"

#: ../vnc.html:299
msgid "Password:"
msgstr "Passwort:"

#: ../vnc.html:313
msgid "Cancel"
msgstr "Abbrechen"

#: ../vnc.html:329
msgid "Canvas not supported."
msgstr "Canvas nicht unterstützt."

#~ msgid "Disconnect timeout"
#~ msgstr "Zeitüberschreitung beim Trennen"

#~ msgid "Local Downscaling"
#~ msgstr "Lokales herunterskalieren"

#~ msgid "Local Cursor"
#~ msgstr "Lokaler Mauszeiger"

#~ msgid "Forcing clipping mode since scrollbars aren't supported by IE in fullscreen"
#~ msgstr "'Clipping-Modus' aktiviert, Scrollbalken in 'IE-Vollbildmodus' werden nicht unterstützt"

#~ msgid "True Color"
#~ msgstr "True Color"
