/*
 * Wine command prompt
 * Swedish Language Support
 *
 * Copyright 2010 Rikard Johansson
 *                Paul Vriens
 *
 * 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_SWEDISH, SUBLANG_NEUTRAL

STRINGTABLE
{
  WCMD_ATTRIB, "ATTRIB visar eller ändrar DOS-filers attribut.\n"
  WCMD_CALL,
"CALL <batchfilename> används inom en batchfil för att exekvera kommandon\n\
från en annan batchfil. När den anropade batchfilen stängs ner, så återfår den\n\
anropande batchfilen återigen kontrollen. Med CALL går det även att skicka med\n\
parametrar till den anropade metoden.\n\
\n\
Ändringar av standardsökväg, miljövariabler o.s.v. som görs inom en anropad\n\
process ärvs av den som anropar processen.\n"

  WCMD_CD,     "CD <dir> är en synonym för CHDIR. Den används för att\nändra standardsökväg.\n"
  WCMD_CHDIR,  "CHDIR <dir> ändrar standardsökväg.\n"

  WCMD_CLS,    "CLS rensar konsollen från text.\n"

  WCMD_COPY,   "COPY <filename> kopierar en fil.\n"
  WCMD_CTTY,   "CTTY ändrar input/output-enheter.\n"
  WCMD_DATE,   "DATE visar eller ändrar systemets datum.\n"
  WCMD_DEL,    "DEL <filename> tar bort en eller flera filer.\n"
  WCMD_DIR,    "DIR visar mappens innehåll.\n"

  WCMD_ECHO,
"ECHO <sträng> skriver ut <sträng> i den aktuella terminalen.\n\
\n\
ECHO ON gör att alla följdkommandon från en batchfil skrivs ut i terminalen\n\
innan dessa exekveras.\n\
\n\
ECHO OFF tar bort effekten av ett föregående ECHO ON. (ECHO är\n\
OFF (avstängd) som standard.) Du kan förhindra ECHO OFF från att visas genom\n\
att lägga till ett @-tecken innan kommandot.\n"

  WCMD_ERASE,  "ERASE <filename> tar bort en eller flera filer.\n"

  WCMD_FOR,
"FOR används för att exekvera ett kommando var för ett flertal filer.\n\
\n\
Syntax: FOR %variabel IN (set) DO kommando\n\
\n\
Kravet att dubbla %-tecknet när FOR används i en batchfil\n\
finns inte i Wines cmd.\n"

  WCMD_GOTO,
"Kommandot GOTO överlåter exekvering till ett annat påstående \n\
inom en batch fil.\n\
\n\
En etikett, som är GOTO-kommandots mål, kan innehålla upp till 255\n\
tecken, men blanksteg tillåts ej (till skillnad från andra operativsystem).\n\
Om två eller flera identiska etiketter existerar i en batchfil, så kommer \n\
alltid den första exekveras. Vid försök att använda GOTO till en icke\n\
existerande etikett så avbryts batchfilens exekvering.\n\
\n\
GOTO har ingen effekt när det används interaktivt.\n"

  WCMD_HELP,   "HELP <command> skriver ut mer detaljerad information ang. ämnet.\nHELP utan ett argument visar alla inbyggda CMD-kommandon.\n"

  WCMD_IF,
"IF används för att villkorligt exekvera ett kommando.\n\
\n\
Syntax:	IF [NOT] EXIST filnamn kommando\n\
	IF [NOT] sträng1==sträng2 kommando\n\
	IF [NOT] ERRORLEVEL nummer kommando\n\
\n\
I den andra IF-satsen måste sträng1 och sträng2 vara inom citattecken.\n\
IF bryr sej inte om stora eller små bokstäver. D.v.s. gemener och versaler.\n"

  WCMD_LABEL,  "LABEL används för att ge en hårddisk/enhet ett namn.\n\
\n\
Syntax: LABEL [diskvolym:]\n\
Kommandot kommer fråga dig efter enhetens nya namn.\n\
Du kan visa enhetens namn genom att använda kommandot VOL.\n"

  WCMD_MD,
"MD <name> är en synonym för MKDIR. \nDen skapar en ny mapp i mappen du befinner dig i\n"
  WCMD_MKDIR,  "MKDIR <name> skapar en ny mapp i mappen du befinner dig i.\n"
  WCMD_MOVE,
"MOVE flyttar en fil eller mapp till ett nytt ställe inom filsystemet.\n\
\n\
Om du flyttar på en mapp, så flyttas allting under mappen med.\n\
\n\
MOVE misslyckas om den gamla och det den nya stället är på olika\n\
DOS-enhetsbokstäver. Till exempel från C: till D:.\n"

  WCMD_PATH,
"PATH visar eller ändrar cmd:s sökväg.\n\
\n\
Om du skriver enbart PATH så visas den aktuella sökvägen \n\
(som står i windowsregistret). För att ändra på denna inställning,\n\
skriv PATH och sedan den nya sökvägen.\n\
\n\
Det går också att ändra PATH genom att använda PATH:s miljövariabler.\n\
Till exempel:\n\
		PATH %PATH%;c:\\temp\n"

  WCMD_PAUSE,
"PAUSE visar meddelandet 'Tryck enterknappen för att fortsätta'\n\
och väntar på att användaren skall trycka ner enterknappen.\n\
PAUSE används mestadels i batchfiler så att användare hinner läsa\n\
till exempel resultatet av ett kört kommando m.m. innan det rullar av skärmen.\n"

  WCMD_PROMPT,
"PROMPT aktiverar kommando-prompten.\n\
\n\
Inmatad sträng efter PROMPT-kommandot (och följande blanksteg)\n\
visas i början av nästa rad, när cmd väntar på inmatning.\n\
\n\
Följande tecken betyder:\n\
\n\
$$   Dollartecknet      $_   Fyll rad          $b   \"skicka vidare\"-tecknet (|)\n\
$d   Nuvarande datum    $e   Escape            $g   \">\"-tecknet\n\
$l   \"<\"-tecknet        $n   Befintlig enhet   $p   Nuvarande sökväg\n\
$q   \"=\"-tecknet        $t   Nuvarande tid     $v   cmd-version\n\
\n\
Notera att om PROMPT används utan en inmatning, så återställs\n\
prompten till tidigare läge, d.v.s tidigare sökväg\n\
(enhetstecken inkluderat) och ett större än-tecken (>).\n\
(Som kommandot PROMPT $p$g).\n\
\n\
Prompteen går att ändra genom att modifiera miljövariabeln PROMPT,\n\
så kommandot 'SET PROMPT=text' har samma effekt som 'PROMPT text'\n"

  WCMD_REM,
"En kommandorad som börjar på REM (med ett blanksteg efter) ignoreras.\n\
Därav kan REM användas för att kommentera rader i en batchfil.\n"

  WCMD_REN,
"REN <filnamn> är en synonym för kommandot RENAME.\nREN döper om en fil.\n"
  WCMD_RENAME, "RENAME <filnamn> döper om en fil.\n"
  WCMD_RD,
"RD <plats> är en synonym för RMDIR. RD tar bort vald plats.\n"
  WCMD_RMDIR,  "RMDIR <plats> tar bort vald plats.\n"

  WCMD_SET,
"SET visar eller ändrar cmd:s miljövariabler.\n\
\n\
SET utan någon parameter visar alla befintliga miljövariabler.\n\
\n\
Syntaxen för att skapa eller ändra en miljövariabler är:\n\
\n\
      SET <variabel>=<värde>\n\
\n\
där <variabel> och <värde> är teckensträngar. Inga blanksteg är\n\
tillåtna varken innan lika med tecknet eller inom variabel namnet.\n\
\n\
I Wine inkluderas miljövariabler från det underliggande operativsystemet\n\
i Win32 vilket resulterar i att det finns många fler värden\n\
än i en riktig Win32-implementation. Notera att det inte går att påverka\n\
operativsystemets miljövariabler via cmd.\n"

  WCMD_SHIFT,
"SHIFT används i batchfiler för att ta bort en parameter högst upp på listan.\nParametrar i turordning flyttas ner ett steg, parameter 2 blir parameter 1 o.s.v.\nSHIFT har ingen effekt om det anropas ifrån kommandoraden.\n"

  WCMD_TIME,   "TIME ställer in eller skriver ut ditt systems tid.\n"

  WCMD_TITLE,  "Ändrar fönsternamn för cmd-fönstret. Syntax: TITLE [namn]\n"

  WCMD_TYPE,
"TYPE <filnamn> kopierar <filnamn> till konsollen (eller annanstans om\n\
angivet). TYPE kollar inte vad filen i fråga är för typ av fil.\n"

  WCMD_VERIFY,
"VERIFY används för att ställa in, rensa eller testa verifieraflaggan.\n\
Godkänd användning är:\n\
\n\
VERIFY ON\tTillämpa flaggan\n\
VERIFY OFF\tRensa flaggan\n\
VERIFY\t\tVisar tillstånd på VERIFY. ON eller OFF.\n\
\n\
Det finns dock ingen användning för verifieraflaggor i Wine.\n"

  WCMD_VER,
"VER visar cmd:s version.\n"

  WCMD_VOL,    "VOL visar namnet på en diskvolym.\n"

  WCMD_PUSHD,  "PUSHD <mappnamn> sparar nuvarande sökväg i en stack,\n\
och ändrar sedan sökvägen till den angivna mappen.\n"

  WCMD_POPD,   "POPD ändrar nuvarande sökväg till den senast angivna i PUSHD.\n"

  WCMD_MORE,   "MORE skriver ut filers utskrift eller vidarebefodrade förfrågningar på sidor.\n"

  WCMD_EXIT,
"EXIT avslutar cmd och skickar tillbaks användaren till\n\
operativsystemet eller skalet som cmd startades ifrån.\n"

  WCMD_ALLHELP, "CMD:s inbyggda kommandon är:\n\
ATTRIB\t\tVisa eller ändra DOS-filers attribut\n\
CALL\t\tAnropar en batchfil inifrån en annan \n\
CD (CHDIR)\tÄndrar nuvarande standardsökväg\n\
CLS\t\tRensar konsollen\n\
COPY\t\tKopierar en fil\n\
CTTY\t\tÄndrar input/output-enhet\n\
DATE\t\tVisar eller ändrar systemets tid\n\
DEL (ERASE)\tTar bort en eller flera filer\n\
DIR\t\tVisar innehållet av en mapp\n\
ECHO\t\tKopierar och skriver ut inmatad text\n\
HELP\t\tVisar hjälpavsnitt om specificerat område\n\
MD (MKDIR)\tSkapar en mapp i sökvägen\n\
MORE\t\tVisar resultatet i sidor\n\
MOVE\t\tFlyttar en fil eller en mapp med alla dess filer/mappar under\n\
PATH\t\tVisar eller ställer in sökvägen\n\
POPD\t\tÅterställer mappen till sökvägen sist sparad med PUSHD.\n\
PROMPT\t\tÄndrar kommandoprompten\n\
PUSHD\t\tSparar den nuvarande sökvägen i en stack\n\
REN (RENAME)\tDöper om en fil\n\
RD (RMDIR)\tTar bort en mapp\n\
SET\t\tVisar eller ställer in miljövariabler\n\
TIME\t\tVisar eller ställer in systemets tid\n\
TITLE\t\tStäller in titeln för CMD:s session\n\
TYPE\t\tSkriver ut innehållet av en fil\n\
VER\t\tVisar CMD:s version\n\
VOL\t\tVisar namnet på specificerad enhet\n\
EXIT\t\tStänger CMD\n\n\
Skriv HELP <command> för mer information om något av kommandona ovanför\n"

  WCMD_CONFIRM, "Är du säker?"
  WCMD_YES, "J"
  WCMD_NO, "N"
  WCMD_NOASSOC, "Det finns ingen filassociation för detta filformat %s\n"
  WCMD_NOFTYPE, "Ingen kommando förknippat med filtyp '%s'\n"
  WCMD_OVERWRITE, "Skriva över %s"
  WCMD_MORESTR, "Mer..."
  WCMD_TRUNCATEDLINE, "En rad i batch möjligtvis trunkerad. Använder:\n"
  WCMD_NYI, "Ännu ej implementerat\n\n"
  WCMD_NOARG, "Argument saknas\n"
  WCMD_SYNTAXERR, "Syntaxfel\n"
  WCMD_FILENOTFOUND, "%s : kunde inte hitta filen\n"
  WCMD_NOCMDHELP, "Ingen hjälp tillgänglig för %s\n"
  WCMD_NOTARGET, "Mål för GOTO ej funnet\n"
  WCMD_CURRENTDATE, "Dagens datum är %s\n"
  WCMD_CURRENTTIME, "Tiden är %s\n"
  WCMD_NEWDATE, "Skriv nytt datum: "
  WCMD_NEWTIME, "Skriv in den nya tiden: "
  WCMD_MISSINGENV, "Miljövariabeln %s ej definierad\n"
  WCMD_READFAIL, "Misslyckades med att öppna '%s'\n"
  WCMD_CALLINSCRIPT, "Går ej att anropa en batchetikett utanför ett batchskript\n"
  WCMD_ALL, "A"
  WCMD_DELPROMPT, "%s, ta bort"
  WCMD_ECHOPROMPT, "Ekot är %s\n"
  WCMD_VERIFYPROMPT, "Verifiera blev %s\n"
  WCMD_VERIFYERR, "Verifiera måste vara ON (på) eller OFF (av)\n"
  WCMD_ARGERR, "Parameterfel\n"
  WCMD_VOLUMEDETAIL, "Diskvolymen på hårddisk %c är %s\nDiskvolymens serienummer är %04x-%04x\n"
  WCMD_VOLUMEPROMPT, "Diskvolymens namn (11 karaktärer, tryck enter för inget)?"
  WCMD_NOPATH, "Sökväg ej funnen\n"
  WCMD_ANYKEY,"Tryck enter för att fortsätta: "
  WCMD_CONSTITLE,"Wine kommandoprompt"
  WCMD_VERSION,"CMD Version %s\n"
  WCMD_MOREPROMPT, "Mer? "
  WCMD_LINETOOLONG, "Inmatningen är för lång.\n"
}
