/**************************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 *************************************************************/



#define _SV_HELPTEXT_SRC

#include <svids.hrc>

String SV_HELPTEXT_CLOSE
{
	Text [ en-US ] = "Close";
};
String SV_HELPTEXT_CLOSEDOCUMENT
{
	Text [ en-US ] = "Close Document";
};
String SV_HELPTEXT_MINIMIZE
{
	Text [ en-US ] = "Minimize";
};

String SV_HELPTEXT_MAXIMIZE
{
	Text [ en-US ] = "Maximize";
};

String SV_HELPTEXT_RESTORE
{
	Text [ en-US ] = "Restore";
};

String SV_HELPTEXT_ROLLDOWN
{
	Text [ en-US ] = "Drop down";
};

String SV_HELPTEXT_ROLLUP
{
	Text [ en-US ] = "Roll up";
};

String SV_HELPTEXT_HELP
{
	Text [ en-US ] = "Help";
};

String SV_HELPTEXT_ALWAYSVISIBLE
{
	Text [ en-US ] = "Always visible";
};

String SV_HELPTEXT_FADEIN
{
	Text [ en-US ] = "Show";
};

String SV_HELPTEXT_FADEOUT
{
	Text [ en-US ] = "Hide";
};

String SV_HELPTEXT_SPLITFLOATING
{
	Text [ en-US ] = "Floating";
};

String SV_HELPTEXT_SPLITFIXED
{
	Text [ en-US ] = "Stick";
};

String SV_SHORTCUT_HELP
{
	Text [ en-US ] = "Help" ;
};

String SV_SHORTCUT_CONTEXTHELP
{
	Text [ en-US ] = "Context Help";
};

String SV_SHORTCUT_ACTIVEHELP
{
	Text [ en-US ] = "Extended Tips";
};

String SV_SHORTCUT_DOCKUNDOCK
{
	Text [ en-US ] = "Dock/Undock Windows";
};

String SV_SHORTCUT_NEXTSUBWINDOW
{
	Text [ en-US ] = "To Next Toolbar/Window";
};

String SV_SHORTCUT_PREVSUBWINDOW
{
	Text [ en-US ] = "To Previous Toolbar/Window";
};

String SV_SHORTCUT_TODOCUMENT
{
	Text [ en-US ] = "To Document";
};

String SV_SHORTCUT_MENUBAR
{
	Text [ en-US ] = "To Menu Bar";
};

String SV_SHORTCUT_SPLITTER
{
	Text [ en-US ] = "Split window separator" ;
};























