/*
 * Wine command prompt
 * German Language Support
 *
 * Copyright 2004 Henning Gerhardt
 * Copyright 2009 André Hentschel
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#include "wcmd.h"

#pragma code_page(65001)

LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL

STRINGTABLE
{
  WCMD_ATTRIB, "ATTRIB zeigt oder ändert die DOS Dateieigenschaften.\n"
  WCMD_CALL,
"CALL <Batchdateiname> wird in einer Batchdatei genutzt, um Befehle aus\n\
einer anderen Batchdatei auszuführen. Wenn die Batchdatei exisiert, kehrt\n\
die Kontrolle zu der Datei zurück, die sie aufgerufen hat. Der CALL Befehl kann\n\
Parameter zu der rufenden Prozedure übergeben.\n\
\n\
Änderungen für das aktuelle Verzeichnis, Umgebungsvariablen usw. werden in\n\
der gerufenen Prozedur gemacht, die sie von der aufgerufenen geerbt hat.\n"

  WCMD_CD,     "CD ist die Kurzform von CHDIR.\n"
  WCMD_CHDIR,  "CHDIR Wechselt in ein Verzeichnis.\n"

  WCMD_CLS,    "CLS löscht den Bildschirminhalt der Konsole.\n"

  WCMD_COPY,   "COPY Kopiert eine Datei.\n"
  WCMD_CTTY,   "CTTY Ändert das Eingabe/Ausgabe - Gerät.\n"
  WCMD_DATE,   "DATE zeigt oder ändert das Systemdatum.\n"
  WCMD_DEL,    "DEL löscht eine oder mehrere Dateien\n"
  WCMD_DIR,    "DIR listet den Inhalt eines Verzeichnisses.\n"

  WCMD_ECHO,
"ECHO <Zeichenkette> zeigt die <Zeichenkette> auf dem aktuellen Terminalgerät.\n\
\n\
ECHO ON bewirkt, dass alle nachfolgenden Befehle in einer Batchdatei zuerst\n\
auf dem Terminalgerät angezeigt und danach ausgeführt werden.\n\
\n\
ECHO OFF kehrt den Effekt des vorherigen ECHO ON (ECHO ist standardmässig\n\
auf OFF) um. Um den ECHO OFF Befehl nicht anzeigen zu lassen, kann vor dessen\n\
ein @ Zeichen gesetzt werden.\n"

  WCMD_ERASE,  "ERASE löscht die angegebenen Dateien.\n"

  WCMD_FOR,
"Der FOR Befehl wird genutzt, um einen Befehl für eine Menge von Dateien\n\
einzeln auszuführen.\n\
\n\
Syntax: FOR %Variable IN (set) DO Befehl\n\
\n\
Die Anforderung das % Zeichen zu verdoppeln, sobald FOR in einer Batchdatei\n\
benutzt wird, existiert in CMD nicht.\n"

  WCMD_GOTO,
"Der GOTO Befehl transferiert die Ausführung zu einer anderen Stelle in einer\n\
Batchdatei.\n\
\n\
Die Bezeichnung, die das Ziel eines GOTO's ist, kann bis zu 255 Zeichen lang\n\
sein, darf aber keine Leerzeichen enthalten (dies ist der Unterschied zu\n\
anderen Betriebssystemen). Wenn zwei oder mehr identische Bezeichnungen in\n\
einer Batchdatei existieren, dann wird immer zu der ersten Bezeichnung\n\
gesprungen. Versucht GOTO zu einer nicht vorhanden Bezeichnung zu springen,\n\
beendet sich die Ausführung der Batchdatei.\n\
\n\
GOTO hat keine Auswirkungen, wenn es interaktiv genutzt wird.\n"

  WCMD_HELP,   "HELP zeigt die Hilfe an\n"

  WCMD_IF,
"IF wird benutzt, um einen Befehl bedingt auszuführen.\n\
\n\
Syntax:	IF [NOT] EXIST Dateiname Befehl\n\
	IF [NOT] Zeichenkette1==Zeichenkette2 Befehl\n\
	IF [NOT] ERRORLEVEL Nummer Befehl\n\
\n\
In der zweiten Form des Befehls, müssen die beiden Zeichenketten in doppelten\n\
Anführungszeichen stehen. Der Vergleich achtet nicht auf die Groß- und\n\
Kleinschreibung.\n"

  WCMD_LABEL,  
"LABEL wird benutzt, um die Laufwerksbezeichnung festzulegen.\n\
\n\
Syntax: LABEL [Laufwerk:]\n\
\n\
Der Befehl wartet auf die Eingabe einer neuen Bezeichnung für das angegebene\n\
Laufwerk. Sie können sich auch die Laufwerksbezeicnung mit dem VOL - Befehl\n\
anzeigen lassen.\n"

  WCMD_MD,     "MD ist die Kurzform von MKDIR\n"
  WCMD_MKDIR,  "MKDIR erstellt ein Verzeichnis\n"
  WCMD_MOVE,
"MOVE verschiebt eine Datei oder ein Verzeichnis zu einem neuen Punkt im\n\
Dateisystem.\n\
\n\
Ist das zu verschiebende Objekt ein Verzeichnis, dann werden alle Dateien und\n\
Unterverzeichnisse unterhalb des Objektes genauso verschoben.\n\
\n\
MOVE schlägt fehl, wenn die alte und die neue Position auf verschiedenen DOS\n\
Laufwerken sind.\n"

  WCMD_PATH,
"PATH ändert oder zeigt den CMD Suchpfad an.\n\
\n\
Nach der Eingabe von PATH, wird die aktuelle PATH Einstellung angezeigt\n\
(nach dem Start wird der Wert aus der wine.conf Datei genommen). Um die\n\
Einstellungen zu ändern, muss nach dem PATH Befehl der neue Wert angegeben\n\
werden\n\
\n\
Es ist auch möglich den PATH mit Hilfe der PATH Umgebungsvariable zu\n\
modifizieren. Zum Beispiel:\n\
		PATH %PATH%;c:\\temp\n"

  WCMD_PAUSE,
"PAUSE lässt eine Meldung auf dem Bildschirm erscheinen\n\
'Drücken Sie die Eingabetaste um fortzufahren' und wartet darauf, dass der\n\
Benutzer die Eingabetaste/Enter-Taste drückt. Es wird hauptsächlich in\n\
Batchdateien genutzt, um dem Beutzer zu erlauben, die Ausgabe eines vorherigen\n\
Befehls zu lesen, bevor es durch Scrollen vom Bildschirm verschwindet.\n"

  WCMD_PROMPT,
"PROMPT setzt den Befehlszeilenprompt.\n\
\n\
Die Zeichenkette, die dem PROMPT Befehl folgt (und dem Leerzeichen\n\
unmittelbar danach), erscheint am Zeilenanfang, wenn CMD auf die Eingabe\n\
wartet.\n\
\n\
Die nachfolgenden Zeichen haben eine besondere Bedeutung:\n\
\n\
$$    Dollarzeichen       $_    Zeilenvorschub      $b    Pipe Zeichen (|)\n\
$d    aktuelles Datum     $e    Escape              $g    > Zeichen\n\
$l    < Zeichen           $n    akutelles Laufwerk  $p    aktueller Pfad\n\
$q    Gleichheitszeichen  $t    aktuelle Zeit       $v    cmd Version\n\
\n\
Hinweis: Die Eingabe des PROMPT Befehls ohne eine Prompt-Zeichenkette, setzt\n\
den Prompt zu den Standardwert zurück, was das aktuelle Verzeichnis (inklusive\n\
dem aktuellen Laufwerksbuchstaben) gefolgt von einen Größerzeichen (>)\n\
(genau wie der PROMPT $p$g Befehl).\n\
\n\
Der Prompt kann auch geändert werden durch das Ändern der PROMPT\n\
Umgebungsvariable, so hat der Befehl 'SET PROMPT=text' die gleiche Auswirkung\n\
wie 'PROMPT text'.\n"

  WCMD_REM,
"Beginnt eine Befehlszeile mit REM (gefolgt von einem Leerzeichen), wird\n\
keine Aktion ausgeführt und kann deshalb auch als Kommentar in einer\n\
Batchdatei genutzt werden.\n"

  WCMD_REN,    "REN ist die Kurzform von RENAME.\n"
  WCMD_RENAME, "RENAME benennt die angegebenen Dateien um.\n"
  WCMD_RD,     "RD ist die Kurzform von RMDIR.\n"
  WCMD_RMDIR,  "RMDIR löscht das angegebene Verzeichnis.\n"

  WCMD_SET,
"SET ändert oder zeigt die CMD Umgebungsvariablen an.\n\
\n\
SET ohne Parameter zeigt alle aktuellen Umgebungsvariablen an.\n\
\n\
Um eine Umgebungsvariable zu erschaffen oder zu ändern, ist der Syntax nötig:\n\
\n\
      SET <Variable>=<Wert>\n\
\n\
Wobei <Variable> und <Wert> Zeichenketten sind. Es dürfen keine Leerzeichen vor\n\
dem Gleichheitszeichen sein, noch darf der Variablenname Leerzeichen enthalten.\n\
\n\
In Wine werden die Umgebungsvariablen des darunterliegenden Betriebssystems\n\
mit in die Win32 Umgebung eingebunden, deshalb gibt es gewöhnlich mehr Werte\n\
als es sie in einer ursprünglichen Win32 Realisierung gäbe. Anmerkung: Es ist\n\
nicht möglich die Umgebungsvariablen des Betriebssystems vom CMD aus zu\n\
beeinflussen.\n"

  WCMD_SHIFT,
"SHIFT wird in einer Batchdatei genutzt, um einen Parameter vom Anfang der\n\
Liste zu entfernen, so das der Parameter 2 zu Parameter 1 wird und so weiter.\n\
Es hat keine Auswirkungen, wenn es von der Befehlszeile aus aufgerufen wird.\n"

  WCMD_TIME,   "TIME Setzt oder zeigt die aktuelle Systemzeit an.\n"

  WCMD_TITLE,
"Setzt den Fenstertitel für das CMD - Fenster.\n\
\n\
Syntax: TITLE [Zeichenkette]\n"

  WCMD_TYPE,
"TYPE <Datei> kopiert <Datei> zu dem Konsolengerät (oder dorthin, wohin\n\
dies umgeleitet wurde). Es wird keine Überprüfung vorgenommen, ob die\n\
Datei lesbaren Text enthält.\n"

  WCMD_VERIFY,
"VERIFY wird benutzt, um das Verify Flag zu setzen, zu löschen oder zu\n\
testen. Gültige Eingaben sind:\n\
\n\
VERIFY ON	Setzt das Flag\n\
VERIFY OFF	Löscht das Flag\n\
VERIFY		Zeigt an, ob ON oder OFF verwendet wird.\n\
\n\
Das Verify Flag hat keine Funktion in Wine.\n"

  WCMD_VER,
"VER zeigt die aktuelle Version von CMD an.\n"

  WCMD_VOL,    "VOL zeigt die Volumeseriennummer an\n"

  WCMD_PUSHD,  "PUSHD <Verzeichnisname> speichert das aktuelle\n\
Verzeichnis auf einem Stack und wecheselt das Arbeitsverzeichnis\n\
zu dem angegebenen.\n"

  WCMD_POPD,   "POPD wechselt das Arbeitsverzeichnis zu dem zuletzt\n\
mit PUSHD gespeicherten.\n"

  WCMD_MORE,   "MORE gibt Dateien und Pipes seitenweise aus.\n"

  WCMD_EXIT,
"EXIT beendet die aktuelle Befehlssitzung und kehrt zum\n\
Betriebssystem oder der Shell zurück, von der CMD gestart wurde.\n"


  WCMD_ALLHELP, "CMD eingebauten Befehle sind:\n\
ATTRIB\t\tZeigt oder ändert die DOS Dateieigenschaften\n\
CALL\t\tRuft eine Batch-Datei innerhalb einer anderen auf\n\
CD (CHDIR)\tWechselt in ein Verzeichnis\n\
CLS\t\tLöscht den Inhalt der Konsole\n\
COPY\t\tKopiert eine Datei\n\
CTTY\t\tÄndert das Eingabe/Ausgabe - Gerät\n\
DATE\t\tZeigt oder ändert das Systemdatum\n\
DEL (ERASE)\tLöscht eine oder mehrere Dateien\n\
DIR\t\tListet den Inhalt eines Verzeichnisses\n\
ECHO\t\tKopiert den Text direkt zur Konsolenausgabe\n\
HELP\t\tZeigt detalierte Informationen zu einen Thema\n\
MD (MKDIR)\tErzeugt ein Unterverzeichnis\n\
MORE\t\tZeigt die Ausgabe seitenweise an\n\
MOVE\t\tBewegt eine oder mehrere Dateien oder einen Verzeichnisbaum\n\
PATH\t\tSetzt oder zeigt den Suchpfad an\n\
PROMPT\t\tÄndert den Befehlszeilenprompt\n\
REN (RENAME)\tBenennt eine Datei um\n\
RD (RMDIR)\tLöscht ein Unterverzeichnis\n\
SET\t\tSetzt oder zeigt die Umgebungsvariablen an\n\
TIME\t\tSetzt oder zeigt die aktuelle Systemzeit an\n\
TITLE\t\tSetzt den Fenstertitel für die CMD - Sitzung\n\
TYPE\t\tGibt den Inhalt einer Textdatei aus\n\
VER\t\tZeigt die aktuelle Version von CMD an\n\
VOL\t\tZeigt die Bezeichnung eines Laufwerkes an\n\
EXIT\t\tBeendet den CMD\n\n\
Geben Sie HELP <Befehl> ein, damit Sie weitere Informationen für einen der\n\
obigen Befehle erhalten.\n"

  WCMD_CONFIRM, "Sind sie sicher"
  WCMD_YES, "J"
  WCMD_NO, "N"
  WCMD_NOASSOC, "Verknüpfung für Dateiendung %s fehlt\n"
  WCMD_NOFTYPE, "Kein Befehl zum Öffnen für Dateityp '%s'\n"
  WCMD_OVERWRITE, "%s überschreiben"
  WCMD_MORESTR, "Mehr..."
  WCMD_TRUNCATEDLINE, "Die Zeile bei der Batchverarbeitung ist möglicherweise abgeschnitten. Benutze:\n"
  WCMD_NYI, "Noch nicht implementiert\n\n"
  WCMD_NOARG, "Argument fehlt\n"
  WCMD_SYNTAXERR, "Syntaxfehler\n"
  WCMD_FILENOTFOUND, "%s : Datei nicht gefunden\n"
  WCMD_NOCMDHELP, "Hilfe für %s ist nicht verfügbar\n"
  WCMD_NOTARGET, "Das Sprungziel von GOTO wurde nicht gefunden\n"
  WCMD_CURRENTDATE, "Aktuelles Datum ist %s\n"
  WCMD_CURRENTTIME, "Aktuelle Zeit ist %s\n"
  WCMD_NEWDATE, "Geben Sie das neue Datum ein: "
  WCMD_NEWTIME, "Geben Sie die neue Zeit ein: "
  WCMD_MISSINGENV, "Die Umgebungsvariable %s ist nicht definiert\n"
  WCMD_READFAIL, "'%s' konnte nicht geöffnet werden\n"
  WCMD_CALLINSCRIPT, "Kann kein Batch-Label außerhalb eines Batch-Scripts aufrufen\n"
  WCMD_ALL, "A"
  WCMD_DELPROMPT, "%s, löschen"
  WCMD_ECHOPROMPT, "Echo ist %s\n"
  WCMD_VERIFYPROMPT, "Verify ist %s\n"
  WCMD_VERIFYERR, "Verify muß ON oder OFF sein\n";
  WCMD_ARGERR, "Parameterfehler\n"
  WCMD_VOLUMEDETAIL, "Volume in Laufwerk %c ist %s\nVolumeseriennummer ist %04x-%04x\n\n"
  WCMD_VOLUMEPROMPT, "Volumebezeichnung (11 Zeichen, EINGABETASTE für keine)?"
  WCMD_NOPATH, "PATH nicht gefunden\n"
  WCMD_ANYKEY,"Drücken Sie die Eingabetaste um fortzufahren: "
  WCMD_CONSTITLE,"Wine Befehlsprozessor"
  WCMD_VERSION,"CMD Version %s\n\n"
  WCMD_MOREPROMPT, "Mehr? "
  WCMD_LINETOOLONG, "Die Eingabezeile ist zu lang.\n"
}
