/*
 * 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
 */

LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL

#pragma code_page(65001)

IDM_MAINMENU MENU DISCARDABLE
BEGIN
    POPUP "&Fil"
    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 "Tabulatorstopp", -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."
END

#pragma code_page(default)
