/*
 * Copyright 2009 by Anders Jonsson
 *
 * 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 "wordpad.h"

LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL

#pragma code_page(65001)

IDM_MAINMENU MENU DISCARDABLE
BEGIN
    POPUP "&Arkiv"
    BEGIN
        MENUITEM "&Nytt...\tCtrl+N",       ID_FILE_NEW
        MENUITEM "&Öppna...\tCtrl+O",      ID_FILE_OPEN
        MENUITEM "&Spara\tCtrl+S",         ID_FILE_SAVE
        MENUITEM "Spara s&om...",          ID_FILE_SAVEAS
        MENUITEM SEPARATOR
        MENUITEM "Skriv &ut...\tCtrl+P",   ID_PRINT
        MENUITEM "&Förhandsgranskning...", ID_PREVIEW
        MENUITEM "U&tskriftsformat...",    ID_PRINTSETUP
        MENUITEM SEPARATOR
        MENUITEM "&Avsluta",               ID_FILE_EXIT
    END
    POPUP "&Redigera"
    BEGIN
        MENUITEM "&Ångra\tCtrl+Z",              ID_EDIT_UNDO
        MENUITEM "Å&terställ\tCtrl+Y",          ID_EDIT_REDO
        MENUITEM SEPARATOR
        MENUITEM "Klipp &ut\tCtrl+X",           ID_EDIT_CUT
        MENUITEM "&Kopiera\tCtrl+C",            ID_EDIT_COPY
        MENUITEM "Klistra &in\tCtrl+V",         ID_EDIT_PASTE
        MENUITEM "Ta &bort\tDEL",               ID_EDIT_CLEAR
        MENUITEM "&Markera allt\tCtrl+A",       ID_EDIT_SELECTALL
        MENUITEM SEPARATOR
        MENUITEM "&Sök...\tCrtl+F",             ID_FIND
        MENUITEM "Sök &nästa\tF3",              ID_FIND_NEXT
        MENUITEM "&Ersätt...\tCtrl+H",          ID_REPLACE
        MENUITEM SEPARATOR
        MENUITEM "Sk&rivskyddat",               ID_EDIT_READONLY
        MENUITEM "&Ändrat",                     ID_EDIT_MODIFIED
        MENUITEM SEPARATOR
        POPUP "E&xtra"
        BEGIN
            MENUITEM "&Information om markerad text",      ID_EDIT_SELECTIONINFO
            MENUITEM "&Teckenformat",                      ID_EDIT_CHARFORMAT
            MENUITEM "&Standardteckenformat",              ID_EDIT_DEFCHARFORMAT
            MENUITEM "Stycke&format",                      ID_EDIT_PARAFORMAT
            MENUITEM "&Hämta text",                        ID_EDIT_GETTEXT
        END
    END
    POPUP "&Visa"
    BEGIN
        MENUITEM "&Verktygsfält",    ID_TOGGLE_TOOLBAR
        MENUITEM "&Formatfält",      ID_TOGGLE_FORMATBAR
        MENUITEM "&Linjal",          ID_TOGGLE_RULER
        MENUITEM "&Statusfält",      ID_TOGGLE_STATUSBAR
        MENUITEM SEPARATOR
        MENUITEM "&Alternativ...",   ID_VIEWPROPERTIES
    END
    POPUP "&Infoga"
    BEGIN
        MENUITEM "&Datum och tid...",  ID_DATETIME
    END
    POPUP "F&ormat"
    BEGIN
        MENUITEM "T&ecken...",                 ID_FONTSETTINGS
        MENUITEM "&Punktuppställning"          ID_BULLET
        MENUITEM "&Stycke..."                  ID_PARAFORMAT
        MENUITEM "&Tabulatorer..."             ID_TABSTOPS
        POPUP "&Bakgrund"
        BEGIN
            MENUITEM "&System\tCtrl+1",                 ID_BACK_1
            MENUITEM "Anteckningslapps-&gult\tCtrl+2",  ID_BACK_2
        END
    END
    POPUP "&Hjälp"
    BEGIN
        MENUITEM "&Om Wine Wordpad"       ID_ABOUT
    END
END

IDM_POPUP MENU DISCARDABLE
BEGIN
    POPUP ""
    BEGIN
        MENUITEM "Klipp &ut",            ID_EDIT_CUT
        MENUITEM "&Kopiera",             ID_EDIT_COPY
        MENUITEM "Klistra &in",          ID_EDIT_PASTE
        MENUITEM SEPARATOR
        MENUITEM "&Punktuppställning"    ID_BULLET
        MENUITEM "&Stycke..."            ID_PARAFORMAT
    END
END

IDD_DATETIME DIALOG DISCARDABLE 30, 20, 130, 80
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Datum och tid"
FONT 10, "MS Sans Serif"
BEGIN
    LTEXT        "Tillgängliga format",-1,3,2,100,15
    LISTBOX      IDC_DATETIME,3,12,80,65,LBS_NOINTEGRALHEIGHT | LBS_NOTIFY
    PUSHBUTTON   "&OK",IDOK,87,12,40,12
    PUSHBUTTON   "&Avbryt",IDCANCEL,87,26,40,12
END

IDD_NEWFILE DIALOG DISCARDABLE 30, 20, 140, 80
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Ny"
FONT 10, "MS Sans Serif"
BEGIN
    LTEXT        "Ny dokumenttyp",-1,3,2,100,15
    LISTBOX      IDC_NEWFILE,3,12,90,65,LBS_NOINTEGRALHEIGHT
    PUSHBUTTON   "&OK",IDOK,97,12,40,12
    PUSHBUTTON   "&Avbryt",IDCANCEL,97,26,40,12
END

IDD_PARAFORMAT DIALOG DISCARDABLE 30, 20, 200, 110
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
Caption "Formatera stycke"
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX "Indrag", -1, 10, 10, 120, 68
    LTEXT "Vänster", -1, 15, 22, 40, 13
    EDITTEXT IDC_PARA_LEFT, 55, 20, 60, 13
    LTEXT "Höger", -1, 15, 40, 40, 13
    EDITTEXT IDC_PARA_RIGHT, 55, 38, 60, 13
    LTEXT "Första rad", -1, 15, 58, 40, 13
    EDITTEXT IDC_PARA_FIRST, 55, 56, 60, 13
    LTEXT "Justering", -1, 15, 87, 40, 13
    COMBOBOX IDC_PARA_ALIGN, 55, 85, 60, 60, CBS_DROPDOWNLIST
    PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15
    PUSHBUTTON "&Avbryt", IDCANCEL, 137, 33, 50, 15
END

IDD_TABSTOPS DIALOG DISCARDABLE 30, 20, 200, 110
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
Caption "Tabulatorer"
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX "Tabbstopp", -1, 10, 10, 120, 90
    COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE
    DEFPUSHBUTTON "Lägg &till", ID_TAB_ADD, 20, 80, 45, 15
    PUSHBUTTON "Ta &bort", ID_TAB_DEL, 72, 80, 45, 15
    PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15
    PUSHBUTTON "&Avbryt", IDCANCEL, 137, 33, 50, 15
    PUSHBUTTON "Ta bort a&lla", ID_TAB_EMPTY, 137, 51, 50, 15
END

IDD_FORMATOPTS DIALOG DISCARDABLE 0, 0, 280, 110
STYLE DS_SYSMODAL
Caption ""
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX "Radbrytning", -1, 10, 10, 130, 85
    RADIOBUTTON "&Ingen radbrytning", IDC_PAGEFMT_WN, 18, 25, 117, 15
    RADIOBUTTON "&Bryt text vid fönsterkanten", IDC_PAGEFMT_WW, 18, 45, 117, 15
    RADIOBUTTON "Bryt text vid &marginalen", IDC_PAGEFMT_WM, 18, 65, 117, 15
    GROUPBOX "Verktygsrader", -1, 150, 10, 120, 85
    CHECKBOX "&Verktygsrad", IDC_PAGEFMT_TB, 160, 20, 80, 15
    CHECKBOX "&Formatrad", IDC_PAGEFMT_FB, 160, 38, 80, 15
    CHECKBOX "&Linjal", IDC_PAGEFMT_RU, 160, 56, 80, 15
    CHECKBOX "&Statusrad", IDC_PAGEFMT_SB, 160, 74, 80, 15
    LTEXT "", IDC_PAGEFMT_ID, 0,0,0,0
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_RICHTEXT_FILES_RTF,     "Rich text-format (*.rtf)"
    STRING_TEXT_FILES_TXT,         "Textdokument (*.txt)"
    STRING_TEXT_FILES_UNICODE_TXT, "Unicode-textdokument (*.txt)"
    STRING_ALL_FILES,              "Alla filer (*.*)"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_ALIGN_LEFT,            "Vänsterställt"
    STRING_ALIGN_RIGHT,           "Högerställt"
    STRING_ALIGN_CENTER,          "Centrerat"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_NEWFILE_RICHTEXT,     "Rich text-dokument"
    STRING_NEWFILE_TXT,          "Textdokument"
    STRING_NEWFILE_TXT_UNICODE,  "Textdokument (Unicode)"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_PRINTER_FILES_PRN,        "Skrivarfiler (*.PRN)"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_VIEWPROPS_TITLE,          "Alternativ"
    STRING_VIEWPROPS_TEXT,           "Text"
    STRING_VIEWPROPS_RICHTEXT,       "Rich text"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_PREVIEW_PRINT,            "Skriv ut"
    STRING_PREVIEW_NEXTPAGE,         "Nästa sida"
    STRING_PREVIEW_PREVPAGE,         "Föregående sida"
    STRING_PREVIEW_TWOPAGES,         "Två sidor"
    STRING_PREVIEW_ONEPAGE,          "En sida"
    STRING_PREVIEW_CLOSE,            "Stäng"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_UNITS_CM,             "cm"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_DEFAULT_FILENAME,     "Dokument"
    STRING_PROMPT_SAVE_CHANGES,  "Spara ändringar i '%s'?"
    STRING_SEARCH_FINISHED,      "Sökningen i dokumentet har slutförts."
    STRING_LOAD_RICHED_FAILED,   "Misslyckades att ladda RichEdit-biblioteket."
    STRING_SAVE_LOSEFORMATTING,  "Du har valt att spara i rent textformat, " \
                                 "vilket kommer leda till att all formatering förloras. " \
                                 "Är du säker att du vill göra detta?"
    STRING_INVALID_NUMBER,       "Ogiltigt talformat"
    STRING_OLE_STORAGE_NOT_SUPPORTED, "OLE storage documents are not supported"
    STRING_WRITE_FAILED,              "Kunde inte spara filen."
    STRING_WRITE_ACCESS_DENIED,       "Du har inte tillgång till att spara filen."
    STRING_OPEN_FAILED,               "Kunde inte öppna filen."
    STRING_OPEN_ACCESS_DENIED,        "Du har inte tillgång till att öppna filen."
    STRING_PRINTING_NOT_IMPLEMENTED, "Utskrift ej implementerat."
    STRING_MAX_TAB_STOPS,            "Kan ej lägga till mer än 32 tabbstopp."
END
