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

#include "wordpad.h"

#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 ...\tCtrl+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

IDM_COLOR_POPUP MENU DISCARDABLE
BEGIN
    POPUP ""
    BEGIN
        MENUITEM "Črna"        ID_COLOR_BLACK
        MENUITEM "Kostanjeva"  ID_COLOR_MAROON
        MENUITEM "Zelena"      ID_COLOR_GREEN
        MENUITEM "Olivna"      ID_COLOR_OLIVE
        MENUITEM "Mornariška"  ID_COLOR_NAVY
        MENUITEM "Vijolična"   ID_COLOR_PURPLE
        MENUITEM "Zelenomodra" ID_COLOR_TEAL
        MENUITEM "Siva"        ID_COLOR_GRAY
        MENUITEM "Srebrna"     ID_COLOR_SILVER
        MENUITEM "Rdeča"       ID_COLOR_RED
        MENUITEM "Citronska"   ID_COLOR_LIME
        MENUITEM "Rumena"      ID_COLOR_YELLOW
        MENUITEM "Modra"       ID_COLOR_BLUE
        MENUITEM "Roza"        ID_COLOR_FUCHSIA
        MENUITEM "Akvamarin"   ID_COLOR_AQUA
        MENUITEM "Bela"        ID_COLOR_WHITE
        MENUITEM "Automatic"   ID_COLOR_AUTOMATIC
    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",-1,3,2,100,15
    LISTBOX      IDC_DATETIME,3,12,80,65,LBS_NOINTEGRALHEIGHT | LBS_NOTIFY
    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",-1,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", -1, 10, 10, 120, 68
    LTEXT "Levo", -1, 15, 22, 40, 13
    EDITTEXT IDC_PARA_LEFT, 55, 20, 60, 13
    LTEXT "Desno", -1, 15, 40, 40, 13
    EDITTEXT IDC_PARA_RIGHT, 55, 38, 60, 13
    LTEXT "Prva vrstica", -1, 15, 58, 40, 13
    EDITTEXT IDC_PARA_FIRST, 55, 56, 60, 13
    LTEXT "Poravnava", -1, 15, 87, 40, 13
    COMBOBOX IDC_PARA_ALIGN, 55, 85, 60, 60, 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", -1, 10, 10, 120, 90
    COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE
    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", -1, 10, 10, 130, 85
    RADIOBUTTON "No line wrapping", IDC_PAGEFMT_WN, 18, 25, 117, 15
    RADIOBUTTON "Prelomi besedilo na robu o&kna", IDC_PAGEFMT_WW, 18, 45, 117, 15
    RADIOBUTTON "Prelomi besedilo na robu &papirja", IDC_PAGEFMT_WM, 18, 65, 117, 15
    GROUPBOX "Orodne vrstice", -1, 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_ZOOMIN,           "Zoom in"
    STRING_PREVIEW_ZOOMOUT,          "Zoom out"
    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"
    STRING_WRITE_FAILED,              "Napaka pri shranjevanju datoteke."
    STRING_WRITE_ACCESS_DENIED,       "Nimate pravic za shranjevanje te datoteke."
    STRING_OPEN_FAILED,               "Napaka pri odpiranju datoteke."
    STRING_OPEN_ACCESS_DENIED,        "Nimate pravic za odpiranje te datoteke."
    STRING_PRINTING_NOT_IMPLEMENTED,  "Tiskanje (še) ni na voljo"
    STRING_MAX_TAB_STOPS,             "Ne morem vstaviti več kot 32 položajev tabulatorja."
END
