/*
 * 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 "shdoclc.h"

LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT

#pragma code_page(65001)

STRINGTABLE DISCARDABLE
{
    IDS_MESSAGE_BOX_TITLE, "Wine Internet Explorer"
}

STRINGTABLE DISCARDABLE
{
    IDS_PRINT_HEADER_TEMPLATE "&w&bStran &p" /* FIXME: should be "&w&bPage &p of &P" */
    IDS_PRINT_FOOTER_TEMPLATE "&u&b&d"
}

IDR_BROWSE_CONTEXT_MENU MENU
{
    POPUP "Privzeto"
    {
        MENUITEM "&Naprej",                  IDM_GOBACKWARD
        MENUITEM "Na&zaj",               IDM_GOFORWARD
        MENUITEM SEPARATOR
        MENUITEM "&Shrani ozadje kot ...", IDM_SAVEBACKGROUND
        MENUITEM "Nastavi kot oza&dje",     IDM_SETWALLPAPER
        MENUITEM "&Kopiraj ozadje",       IDM_COPYBACKGROUND
        MENUITEM "Nastavi kot p&redmet Namizja",   IDM_SETDESKTOPITEM
        MENUITEM SEPARATOR
        MENUITEM "Izberi &vse",            IDM_SELECTALL
        MENUITEM "&Prilepi",                 IDM_PASTE
        MENUITEM SEPARATOR
        MENUITEM "Ustvari &bližnjico",       IDM_CREATESHORTCUT
        MENUITEM "Dodaj med Pri&ljubljene",     IDM_ADDFAVORITES
        MENUITEM "Poka&ži izvorno kodo",           IDM_VIEWSOURCE
        MENUITEM SEPARATOR
        MENUITEM "N&abor znakov",              IDM_LANGUAGE
        MENUITEM SEPARATOR
        MENUITEM "Na&tisni",                 IDM_PRINT
        MENUITEM "&Osveži",               _IDM_REFRESH
        MENUITEM SEPARATOR
        MENUITEM SEPARATOR
        MENUITEM "Lastnost&i",            IDM_PROPERTIES
    }

    POPUP "Slika"
    {
        MENUITEM "&Odpri povezavo",               IDM_FOLLOWLINKC
        MENUITEM "Odpri povezavo v &novem oknu", IDM_FOLLOWLINKN
        MENUITEM "Shrani cilj &kot ...",       IDM_SAVETARGET
        MENUITEM "Na&tisni cilj",            IDM_PRINTTARGET
        MENUITEM SEPARATOR
        MENUITEM "P&okaži sliko",            IDM_SHOWPICTURE
        MENUITEM "&Shrani sliko kot ...",      IDM_SAVEPICTURE
        MENUITEM "Po&šlji sliko ...",       IDM_MP_EMAILPICTURE
        MENUITEM "Natisni s&liko ...",        IDM_MP_PRINTPICTURE
        MENUITEM "Po&jdi v mapo Slike",       IDM_MP_MYPICS
        MENUITEM "Nastavi kot oza&dje",       IDM_SETWALLPAPER
        MENUITEM "Nastavi kot p&redmet Namizja ...",  IDM_SETDESKTOPITEM
        MENUITEM SEPARATOR
        MENUITEM "&Izreži",                     IDM_CUT
        MENUITEM "&Kopiraj",                    IDM_COPY
        MENUITEM "Kopiraj &bližnjico",           IDM_COPYSHORTCUT
        MENUITEM "&Prilepi",                   IDM_PASTE
        MENUITEM SEPARATOR
        MENUITEM "Dodaj med Pri&ljubljene ...",     IDM_ADDFAVORITES
        MENUITEM SEPARATOR
        MENUITEM SEPARATOR
        MENUITEM "Lastnost&i",              IDM_PROPERTIES
    }

    POPUP "Kontrola"
    {
        MENUITEM "&Razveljavi",       IDM_UNDO
        MENUITEM SEPARATOR
        MENUITEM "&Izreži",        IDM_CUT
        MENUITEM "&Kopiraj",       IDM_COPY
        MENUITEM "&Prilepi",      IDM_PASTE
        MENUITEM "I&zbriši",     IDM_DELETE
        MENUITEM SEPARATOR
        MENUITEM SEPARATOR
        MENUITEM "Izberi &vse", IDM_SELECTALL
    }

    POPUP "Tabela"
    {
        POPUP "&Izberi"
        {
            MENUITEM "&Celico",         IDM_CELLSELECT
            MENUITEM "&Vrstico",          IDM_ROWSELECT
            MENUITEM "&Stoplec",       IDM_COLUMNSELECT
            MENUITEM "&Tabelo",        IDM_TABLESELECT
        }
        MENUITEM SEPARATOR
        MENUITEM SEPARATOR
        MENUITEM "Lastnosti &celice",  IDM_CELLPROPERTIES
        MENUITEM "Lastnosti &tabele", IDM_TABLEPROPERTIES
    }

    POPUP "1DSite Select"
    {
        MENUITEM "&Izreži",        IDM_CUT
        MENUITEM "&Kopiraj",       IDM_COPY
        MENUITEM "Prilepi",       IDM_PASTE
        MENUITEM "Izberi &vse", IDM_SELECTALL
        MENUITEM "Na&tisni",      IDM_PRINT
        MENUITEM SEPARATOR
    }

    POPUP "Sidro"
    {
        MENUITEM "&Odpri",                IDM_FOLLOWLINKC
        MENUITEM "Odpri v &novem oknu",  IDM_FOLLOWLINKN
        MENUITEM "Shrani colj &kot ...",   IDM_SAVETARGET
        MENUITEM "Na&tisni cilj",        IDM_PRINTTARGET
        MENUITEM SEPARATOR
        MENUITEM "Izreži",                  IDM_CUT
        MENUITEM "&Kopiraj",                IDM_COPY
        MENUITEM "Kopiraj &bližnjico",       IDM_COPYSHORTCUT
        MENUITEM "&Prilepi",               IDM_PASTE
        MENUITEM SEPARATOR
        MENUITEM "Dodaj med Pri&ljubljene ...", IDM_ADDFAVORITES
        MENUITEM SEPARATOR
        MENUITEM SEPARATOR
        MENUITEM "Lastnost&i",          IDM_PROPERTIES
    }

    POPUP "Neznan kontekst"
    {
        MENUITEM SEPARATOR
    }

    POPUP "DYNSRC slika"
    {
        MENUITEM "&Odpri povezavo",               IDM_FOLLOWLINKC
        MENUITEM "Odpri povezavo v &novem oknu", IDM_FOLLOWLINKN
        MENUITEM "Shrani cilj &kot ...",       IDM_SAVETARGET
        MENUITEM "Na&tisni cilj",            IDM_PRINTTARGET
        MENUITEM SEPARATOR
        MENUITEM "&Pokaži sliko",            IDM_SHOWPICTURE
        MENUITEM "Shrani &video kot ...",        IDM_SAVEPICTURE
        MENUITEM "Nastavi kot oza&dje",       IDM_SETWALLPAPER
        MENUITEM "Nastavi kot p&redmet Namizja ...",  IDM_SETDESKTOPITEM
        MENUITEM SEPARATOR
        MENUITEM "&Izreži",                     IDM_CUT
        MENUITEM "&Kopiraj",                    IDM_COPY
        MENUITEM "Kopiraj &bližnjico",           IDM_COPYSHORTCUT
        MENUITEM "&Prilepi",                   IDM_PASTE
        MENUITEM SEPARATOR
        MENUITEM "Dodaj med Pri&ljubljene ...",     IDM_ADDFAVORITES
        MENUITEM SEPARATOR
        MENUITEM SEPARATOR
        MENUITEM "Predvajaj",                     IDM_DYNSRCPLAY
        MENUITEM "Ustavi",                     IDM_DYNSRCSTOP
        MENUITEM "Lastnost&i",              IDM_PROPERTIES
    }

    POPUP "ART slika"
    {
        MENUITEM "&Odpri povezavo",               IDM_FOLLOWLINKC
        MENUITEM "Odpri povezavo v &novem oknu", IDM_FOLLOWLINKN
        MENUITEM "Shrani cilj &kot ...",       IDM_SAVETARGET
        MENUITEM "Na&tisni cilj",            IDM_PRINTTARGET
        MENUITEM SEPARATOR
        MENUITEM "&Pokaži sliko",            IDM_SHOWPICTURE
        MENUITEM "Shrani &sliko kot ...",      IDM_SAVEPICTURE
        MENUITEM "Nastavi kot oza&dje",       IDM_SETWALLPAPER
        MENUITEM "Nastavi kot p&redmet Namizja",  IDM_SETDESKTOPITEM
        MENUITEM SEPARATOR
        MENUITEM "&Izreži",                     IDM_CUT
        MENUITEM "&Kopiraj",                    IDM_COPY
        MENUITEM "Kopiraj &bližnjico",           IDM_COPYSHORTCUT
        MENUITEM "&Prilepi",                   IDM_PASTE
        MENUITEM SEPARATOR
        MENUITEM "Dodaj med Pri&ljubljene ...",     IDM_ADDFAVORITES
        MENUITEM SEPARATOR
        MENUITEM "Predvajaj",                     IDM_IMGARTPLAY
        MENUITEM "Ustavi",                     IDM_IMGARTSTOP
        MENUITEM "Previj",                   IDM_IMGARTREWIND
        MENUITEM SEPARATOR
        MENUITEM SEPARATOR
        MENUITEM "Lastnost&i",              IDM_PROPERTIES
    }

    POPUP "Debug"
    {
        MENUITEM "Trace Tags",         IDM_TRACETAGS
        MENUITEM "Resource Failures",  IDM_RESOURCEFAILURES
        MENUITEM "Dump Tracking Info", IDM_DUMPTRACKINGINFO
        MENUITEM "Debug Break",        IDM_DEBUGBREAK
        MENUITEM "Debug View",         IDM_DEBUGVIEW
        MENUITEM "Dump Tree",          IDM_DUMPTREE
        MENUITEM "Dump Lines",         IDM_DUMPLINES
        MENUITEM "Dump DisplayTree",   IDM_DUMPDISPLAYTREE
        MENUITEM "Dump FormatCaches",  IDM_DUMPFORMATCACHES
        MENUITEM "Dump LayoutRects",   IDM_DUMPLAYOUTRECTS
        MENUITEM "Memory Monitor",     IDM_MEMORYMONITOR
        MENUITEM "Performance Meters", IDM_PERFORMANCEMETERS
        MENUITEM "Save HTML",          IDM_SAVEHTML
        MENUITEM SEPARATOR
        MENUITEM "&Browse View",       IDM_BROWSEMODE
        MENUITEM "&Edit View",         IDM_EDITMODE
    }

    POPUP "Navpični drsnik"
    {
        MENUITEM "Uporabi drsnik",  IDM_SCROLL_HERE
        MENUITEM SEPARATOR
        MENUITEM "Vrh",          IDM_SCROLL_TOP
        MENUITEM "Dno",       IDM_SCROLL_BOTTOM
        MENUITEM SEPARATOR
        MENUITEM "Stran gor",      IDM_SCROLL_PAGEUP
        MENUITEM "Stran dol",    IDM_SCROLL_PAGEDOWN
        MENUITEM SEPARATOR
        MENUITEM "Drsenje gor",    IDM_SCROLL_UP
        MENUITEM "Drsenje dol",  IDM_SCROLL_DOWN
    }

    POPUP "Vodoraven drsnik"
    {
        MENUITEM "Uporabi drsnik",  IDM_SCROLL_HERE
        MENUITEM SEPARATOR
        MENUITEM "Levi rob",    IDM_SCROLL_LEFTEDGE
        MENUITEM "Desni rob",   IDM_SCROLL_RIGHTEDGE
        MENUITEM SEPARATOR
        MENUITEM "Stran levo",    IDM_SCROLL_PAGELEFT
        MENUITEM "Stran desno",   IDM_SCROLL_PAGERIGHT
        MENUITEM SEPARATOR
        MENUITEM "Drsenje levo",  IDM_SCROLL_LEFT
        MENUITEM "Drsenje desno", IDM_SCROLL_RIGHT
    }
}
