/*
 * Copyright 2005 Jacek Caban
 *
 * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */


LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT

STRINGTABLE DISCARDABLE
{
    IDS_HTMLDISABLED    "HTML rendering is currently disabled."
    IDS_HTMLDOCUMENT    "HTML Document"
}

/* FIXME: This should be in shdoclc.dll */

IDR_BROWSE_CONTEXT_MENU MENU
{
    POPUP "Default"
    {
        MENUITEM "&Back",                  IDM_BACK
        MENUITEM "F&orward",               IDM_FORWARD
        MENUITEM SEPARATOR
        MENUITEM "&Save Background As...", IDM_SAVEBACKGROUNDAS
        MENUITEM "Set As Back&ground",     IDM_SETASBACKGROUND
        MENUITEM "&Copy Background",       IDM_COPYBACKGROUND
        MENUITEM "Set as &Desktop Item",   IDM_SETASDESKTOPITEM
        MENUITEM SEPARATOR
        MENUITEM "Select &All",            IDM_SELECTALL
        MENUITEM "&Paste",                 IDM_PASTE
        MENUITEM SEPARATOR
        MENUITEM "Create Shor&tcut",       IDM_CREATESHORTCUT
        MENUITEM "Add to &Favourites",     IDM_ADDTOFAVOURITES
        MENUITEM "&View Source",           IDM_VIEWSOURCE
        MENUITEM SEPARATOR
        MENUITEM "&Encoding",              IDM_ENCODING 
        MENUITEM SEPARATOR
        MENUITEM "Pr&int",                 IDM_PRINT
        MENUITEM "&Refresh",               IDM_REFRESH 
        MENUITEM SEPARATOR
        MENUITEM SEPARATOR
        MENUITEM "&Properties",            IDM_PROPERTIES
    }

    POPUP "Image"
    {
        MENUITEM "&Open Link",               IDM_OPENLINK
        MENUITEM "Open Link in &New Window", IDM_OPENINNEWWINDOW
        MENUITEM "Save Target &As...",       IDM_SAVETARGETAS
        MENUITEM "&Print Target",            IDM_PRINTTARGET
        MENUITEM SEPARATOR
        MENUITEM "S&how Picture",            IDM_SHOWPICTURE
        MENUITEM "&Save Picture As...",      IDM_SAVEPICTUREAS
        MENUITEM "&E-mail Picture...",       IDM_EMAILPICTURE
        MENUITEM "Pr&int Picture...",        IDM_PRINTPICTURE
        MENUITEM "&Go to My Pictures",       IDM_GOTOMYPICTURES
        MENUITEM "Set as Back&ground",       IDM_SETASBACKGROUND
        MENUITEM "Set as &Desktop Item...",  IDM_SETASDESKTOPITEM
        MENUITEM SEPARATOR
        MENUITEM "Cu&t",                     IDM_CUT
        MENUITEM "&Copy",                    IDM_COPY
        MENUITEM "Copy Shor&tcut",           IDM_COPYSHORTCUT
        MENUITEM "&Paste",                   IDM_PASTE 
        MENUITEM SEPARATOR
        MENUITEM "Add to &Favorites...",     IDM_ADDTOFAVOURITES
        MENUITEM SEPARATOR
        MENUITEM SEPARATOR
        MENUITEM "P&roperties",              IDM_PROPERTIES
    }

    POPUP "Control"
    {
        MENUITEM "&Undo",       IDM_UNDO 
        MENUITEM SEPARATOR
        MENUITEM "Cu&t",        IDM_CUT
        MENUITEM "&Copy",       IDM_COPY
        MENUITEM "&Paste",      IDM_PASTE
        MENUITEM "&Delete",     IDM_DELETE
        MENUITEM SEPARATOR
        MENUITEM SEPARATOR
        MENUITEM "Select &All", IDM_SELECTALL
    }

    POPUP "Table"
    {
        POPUP "&Select"
        {
            MENUITEM "&Cell",         IDM_CELL 
            MENUITEM "&Row",          IDM_ROW
            MENUITEM "&Column",       IDM_COLUMN
            MENUITEM "&Table",        IDM_TABLE
        }
        MENUITEM SEPARATOR
        MENUITEM SEPARATOR
        MENUITEM "&Cell Properties",  IDM_CELLPROPERTIES
        MENUITEM "&Table Properties", IDM_TABLEPROPERTIES
    }

    POPUP "1DSite Select"
    {
        MENUITEM "Cu&t",        IDM_CUT
        MENUITEM "&Copy",       IDM_COPY
        MENUITEM "Paste",       IDM_PASTE
        MENUITEM "Select &All", IDM_SELECTALL 
        MENUITEM "&Print",      IDM_PRINT
        MENUITEM SEPARATOR
    }

    POPUP "Anchor"
    {
        MENUITEM "&Open",                IDM_OPENLINK
        MENUITEM "Open in &New Window",  IDM_OPENINNEWWINDOW
        MENUITEM "Save Target &As...",   IDM_SAVETARGETAS
        MENUITEM "&Print Target",        IDM_PRINTTARGET
        MENUITEM SEPARATOR
        MENUITEM "Cut",                  IDM_CUT
        MENUITEM "&Copy",                IDM_COPY
        MENUITEM "Copy Shor&tcut",       IDM_COPYSHORTCUT
        MENUITEM "&Paste",               IDM_PASTE
        MENUITEM SEPARATOR
        MENUITEM "Add to &Favorites...", IDM_ADDTOFAVOURITES
        MENUITEM SEPARATOR
        MENUITEM SEPARATOR
        MENUITEM "P&roperties",          IDM_PROPERTIES
    }

    POPUP "Context Unknown"
    {
        MENUITEM SEPARATOR
    }

    POPUP "DYNSRC Image"
    {
        MENUITEM "&Open Link",               IDM_OPENLINK
        MENUITEM "Open Link in &New Window", IDM_OPENINNEWWINDOW
        MENUITEM "Save Target &As...",       IDM_SAVETARGETAS
        MENUITEM "&Print Target",            IDM_PRINTTARGET
        MENUITEM SEPARATOR
        MENUITEM "S&how Picture",            IDM_SHOWPICTURE
        MENUITEM "&Save Video As...",        IDM_SAVEPICTUREAS
        MENUITEM "Set as Back&ground",       IDM_SETASBACKGROUND
        MENUITEM "Set as &Desktop Item...",  IDM_SETASDESKTOPITEM
        MENUITEM SEPARATOR
        MENUITEM "Cu&t",                     IDM_CUT
        MENUITEM "&Copy",                    IDM_COPY
        MENUITEM "Copy Shor&tcut",           IDM_COPYSHORTCUT
        MENUITEM "&Paste",                   IDM_PASTE
        MENUITEM SEPARATOR
        MENUITEM "Add to &Favorites...",     IDM_ADDTOFAVOURITES
        MENUITEM SEPARATOR
        MENUITEM SEPARATOR
        MENUITEM "Play",                     IDM_PLAY
        MENUITEM "Stop",                     IDM_STOP
        MENUITEM "P&roperties",              IDM_PROPERTIES
    }

    POPUP "ART Image"
    {
        MENUITEM "&Open Link",               IDM_OPENLINK
        MENUITEM "Open Link in &New Window", IDM_OPENINNEWWINDOW
        MENUITEM "Save Target &As...",       IDM_SAVETARGETAS
        MENUITEM "&Print Target",            IDM_PRINTTARGET
        MENUITEM SEPARATOR
        MENUITEM "S&how Picture",            IDM_SHOWPICTURE
        MENUITEM "&Save Picture As...",      IDM_SAVEPICTUREAS
        MENUITEM "Set as Back&ground",       IDM_SETASBACKGROUND
        MENUITEM "Set as &Desktop Item...",  IDM_SETASDESKTOPITEM
        MENUITEM SEPARATOR
        MENUITEM "Cu&t",                     IDM_CUT
        MENUITEM "&Copy",                    IDM_COPY
        MENUITEM "Copy Shor&tcut",           IDM_COPYSHORTCUT
        MENUITEM "&Paste",                   IDM_PASTE
        MENUITEM SEPARATOR
        MENUITEM "Add to &Favorites...",     IDM_ADDTOFAVOURITES
        MENUITEM SEPARATOR
        MENUITEM "Play",                     IDM_PLAY
        MENUITEM "Stop",                     IDM_STOP
        MENUITEM "Rewind",                   IDM_REWIND
        MENUITEM SEPARATOR
        MENUITEM SEPARATOR
        MENUITEM "P&roperties",              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_BROWSEVIEW
        MENUITEM "&Edit View",         IDM_EDITVIEW
    }

    POPUP "Vertical Scrollbar"
    {
        MENUITEM "Scroll Here",  IDM_SCROLLHERE
        MENUITEM SEPARATOR
        MENUITEM "Top",          IDM_TOP
        MENUITEM "Bottom",       IDM_BOTTOM
        MENUITEM SEPARATOR
        MENUITEM "Page Up",      IDM_PAGEUP
        MENUITEM "Page Down",    IDM_PAGEDOWN
        MENUITEM SEPARATOR
        MENUITEM "Scroll Up",    IDM_SCROLLUP
        MENUITEM "Scroll Down",  IDM_SCROLLDOWN
    }

    POPUP "Horizontal Scrollbar"
    {
        MENUITEM "Scroll Here",  IDM_SCROLLHERE
        MENUITEM SEPARATOR
        MENUITEM "Left Edge",    IDM_LEFTEDGE
        MENUITEM "Right Edge",   IDM_RIGHTEDGE
        MENUITEM SEPARATOR
        MENUITEM "Page Left",    IDM_PAGELEFT
        MENUITEM "Page Right",   IDM_PAGERIGHT
        MENUITEM SEPARATOR
        MENUITEM "Scroll Left",  IDM_SCROLLLEFT
        MENUITEM "Scroll Right", IDM_SCROLLRIGHT
    }
}
