/*
 * Copyright 2008 Rok Mandeljc
 *
 * 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
 */

#pragma code_page(65001)

LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT

IDM_MAINMENU MENU DISCARDABLE
BEGIN
    POPUP "&Datotka"
    BEGIN
        MENUITEM "&Nova ...\tCtrl+N",          ID_FILE_NEW
        MENUITEM "&Odpri ...\tCtrl+O",   ID_FILE_OPEN
        MENUITEM "&Shrani\tCtrl+S",         ID_FILE_SAVE
        MENUITEM "Shrani &kot ...",        ID_FILE_SAVEAS
        MENUITEM SEPARATOR
        MENUITEM "Na&tisni ...\tCtrl+P",  ID_PRINT
        MENUITEM "Pre&dogled tiskanja ...",  ID_PREVIEW
        MENUITEM "Pri&prava strani ...",     ID_PRINTSETUP
        MENUITEM SEPARATOR
        MENUITEM "Iz&hod",         ID_FILE_EXIT
    END
    POPUP "&Urejanje"
    BEGIN
        MENUITEM "Ra&zveljavi\tCtrl+Z",               ID_EDIT_UNDO
        MENUITEM "Po&novi\tCtrl+Y",               ID_EDIT_REDO
        MENUITEM SEPARATOR
        MENUITEM "&Izreži\tCtrl+X",                ID_EDIT_CUT
        MENUITEM "&Kopiraj\tCtrl+C",               ID_EDIT_COPY
        MENUITEM "&Prilepi\tCtrl+V",              ID_EDIT_PASTE
        MENUITEM "Po&briši\tDEL",                 ID_EDIT_CLEAR
        MENUITEM "Izberi &vse\tCtrl+A",         ID_EDIT_SELECTALL
        MENUITEM SEPARATOR
        MENUITEM "Na&jdi ...\tCrtl+F",         ID_FIND
        MENUITEM "Najdi n&aslednje\tF3",              ID_FIND_NEXT
        MENUITEM "Za&menjaj ...\tCtrl+H",      ID_REPLACE
        MENUITEM SEPARATOR
        MENUITEM "Samo za b&ranje",                  ID_EDIT_READONLY
        MENUITEM "Spr&emenjeno",                   ID_EDIT_MODIFIED
        MENUITEM SEPARATOR
        POPUP "Do&datno"
        BEGIN
            MENUITEM "Poda&tki o izbiri",             ID_EDIT_SELECTIONINFO
            MENUITEM "Oblika zna&kov",           ID_EDIT_CHARFORMAT
            MENUITEM "Pr&ivzeta oblika znakov",           ID_EDIT_DEFCHARFORMAT
            MENUITEM "Ob&lika odstavka",           ID_EDIT_PARAFORMAT
            MENUITEM "Pridobi &besedilo",                   ID_EDIT_GETTEXT
        END
    END
    POPUP "Po&gled"
    BEGIN
        MENUITEM "O&rodna vrstica",        ID_TOGGLE_TOOLBAR
        MENUITEM "O&blikovna vrstica",      ID_TOGGLE_FORMATBAR
        MENUITEM "&Ravnilo",          ID_TOGGLE_RULER
        MENUITEM "&Vrstica stanja",      ID_TOGGLE_STATUSBAR
        MENUITEM SEPARATOR
        MENUITEM "&Možnosti ...",  ID_VIEWPROPERTIES
    END
    POPUP "&Vstavi"
    BEGIN
        MENUITEM "&Datum in čas ...",  ID_DATETIME
    END
    POPUP "O&blika"
    BEGIN
        MENUITEM "&Pisava ...",                  ID_FONTSETTINGS
        MENUITEM "&Vrstične oznake"                ID_BULLET
        MENUITEM "O&dstavek ..."              ID_PARAFORMAT
        MENUITEM "&Tabulator ..."                   ID_TABSTOPS
        POPUP "Ozad&je"
        BEGIN
            MENUITEM "&Sistemsko\tCtrl+1",         ID_BACK_1
            MENUITEM "&PostThat rumenkasto\tCtrl+2",           ID_BACK_2
        END
    END
    POPUP "&Pomoč"
    BEGIN
        MENUITEM "&O Wine Wordpadu"       ID_ABOUT
    END
END

IDM_POPUP MENU DISCARDABLE
BEGIN
    POPUP ""
    BEGIN
        MENUITEM "&Izreži",                ID_EDIT_CUT
        MENUITEM "&Kopiraj",               ID_EDIT_COPY
        MENUITEM "&Prilepi",              ID_EDIT_PASTE
        MENUITEM SEPARATOR
        MENUITEM "&Vrstične oznake"       ID_BULLET
        MENUITEM "O&dstavek ..."     ID_PARAFORMAT
    END
END

IDD_DATETIME DIALOG DISCARDABLE 30, 20, 130, 80
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Datum in čas"
FONT 10, "MS Sans Serif"
BEGIN
    LTEXT        "Razpoložljive oblike",0,3,2,100,15
    LISTBOX      IDC_DATETIME,3,12,80,65,LBS_NOINTEGRALHEIGHT
    PUSHBUTTON   "&V redu",IDOK,87,12,40,12
    PUSHBUTTON   "&Prekliči",IDCANCEL,87,26,40,12
END

IDD_NEWFILE DIALOG DISCARDABLE 30, 20, 140, 80
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Nov dokument"
FONT 10, "MS Sans Serif"
BEGIN
    LTEXT        "Vrsta dokumenta",0,3,2,100,15
    LISTBOX      IDC_NEWFILE,3,12,90,65,LBS_NOINTEGRALHEIGHT
    PUSHBUTTON   "&V redu",IDOK,97,12,40,12
    PUSHBUTTON   "&Prekliči",IDCANCEL,97,26,40,12
END

IDD_PARAFORMAT DIALOG DISCARDABLE 30, 20, 200, 110
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
Caption "Oblika odstavka"
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX "Zamiki", 0, 10, 10, 120, 68
    LTEXT "Levo", 0, 15, 22, 40, 13
    EDITTEXT IDC_PARA_LEFT, 55, 20, 60, 13
    LTEXT "Desno", 0, 15, 40, 40, 13
    EDITTEXT IDC_PARA_RIGHT, 55, 38, 60, 13
    LTEXT "Prva vrstica", 0, 15, 58, 40, 13
    EDITTEXT IDC_PARA_FIRST, 55, 56, 60, 13
    LTEXT "Poravnava", 0, 15, 87, 40, 13
    COMBOBOX IDC_PARA_ALIGN, 55, 85, 60, 13, CBS_DROPDOWNLIST
    PUSHBUTTON "&V redu", IDOK, 137, 15, 50, 15
    PUSHBUTTON "&Prekliči", IDCANCEL, 137, 33, 50, 15
END

IDD_TABSTOPS DIALOG DISCARDABLE 30, 20, 200, 110
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
Caption "Tabulatorji"
FONT 8, "MS SHell DLg"
BEGIN
    GROUPBOX "Položaji tabulatorja", 0, 10, 10, 120, 90
    COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT
    DEFPUSHBUTTON "&Dodaj", ID_TAB_ADD, 20, 80, 45, 15
    PUSHBUTTON "&Odstrani", ID_TAB_DEL, 72, 80, 45, 15
    PUSHBUTTON "&V redu", IDOK, 137, 15, 50, 15
    PUSHBUTTON "&Prekliči", IDCANCEL, 137, 33, 50, 15
    PUSHBUTTON "Odstrani v&se", 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 "Prelom vrstic", 0, 10, 10, 130, 85
    RADIOBUTTON "Prelomi besedilo na robu o&kna", IDC_PAGEFMT_WW, 18, 25, 117, 15
    RADIOBUTTON "Prelomi besedilo na robu &papirja", IDC_PAGEFMT_WM, 18, 45, 117, 15
    GROUPBOX "Orodne vrstice", 0, 150, 10, 120, 85
    CHECKBOX "O&rodna vrstica", IDC_PAGEFMT_TB, 160, 20, 80, 15
    CHECKBOX "O&blikovna vrstica", IDC_PAGEFMT_FB, 160, 38, 80, 15
    CHECKBOX "&Ravnilo", IDC_PAGEFMT_RU, 160, 56, 80, 15
    CHECKBOX "&Vrstica stanja", IDC_PAGEFMT_SB, 160, 74, 80, 15
    LTEXT "", IDC_PAGEFMT_ID, 0,0,0,0
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_RICHTEXT_FILES_RTF,     "Dokument z obogatenim besedilom (*.rtf)"
    STRING_TEXT_FILES_TXT,         "Dokument z besedilom (*.txt)"
    STRING_TEXT_FILES_UNICODE_TXT, "Dokument z Unicode besedilom (*.txt)"
    STRING_ALL_FILES,              "Vsi dokumenti (*.*)"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_ALIGN_LEFT,            "Levo"
    STRING_ALIGN_RIGHT,           "Desno"
    STRING_ALIGN_CENTER,          "Sredina"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_NEWFILE_RICHTEXT,     "Dokument z obogatenim besedilom"
    STRING_NEWFILE_TXT,          "Dokument z besedilom"
    STRING_NEWFILE_TXT_UNICODE,  "Dokument z Unicode besedilom"
END

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

STRINGTABLE DISCARDABLE
BEGIN
    STRING_VIEWPROPS_TITLE,          "Možnosti"
    STRING_VIEWPROPS_TEXT,           "Besedilo"
    STRING_VIEWPROPS_RICHTEXT,       "Obogateno besedilo"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_PREVIEW_PRINT,            "Natisni"
    STRING_PREVIEW_NEXTPAGE,         "Naslednja"
    STRING_PREVIEW_PREVPAGE,         "Prejšnja"
    STRING_PREVIEW_TWOPAGES,         "Dve strani"
    STRING_PREVIEW_ONEPAGE,          "Ena stran"
    STRING_PREVIEW_CLOSE,            "Zapri"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_UNITS_CM,             "cm"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_DEFAULT_FILENAME,     "Dokument"
    STRING_PROMPT_SAVE_CHANGES,  "Ali naj shranim spremembe v '%s'?"
    STRING_SEARCH_FINISHED,      "Konec iskanja po dokumentu."
    STRING_LOAD_RICHED_FAILED,   "Napaka pri nalaganju RichEdit knjižnice."
    STRING_SAVE_LOSEFORMATTING,  "Izbrali ste shranjevanje v čisti besedilni " \
                                 "obliki, kar bo povzročilo izgubo oblikovanja. " \
                                 "Ali ste prepričani, da želite shraniti " \
                                 "dokument v tej obliki?"
    STRING_INVALID_NUMBER,       "Neveljavna oblika števila"
    STRING_OLE_STORAGE_NOT_SUPPORTED, "Dokumenti z OLE predmeti niso podprti"
END

#pragma code_page(default)
