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

#include <svids.hrc>

String SV_RESID_STRING_NOSELECTIONPOSSIBLE
{
	Text [ en-US ] = "<No selection possible>" ;
};

Menu SV_RESID_MENU_EDIT
{
	ItemList =
	{
		MenuItem
		{
			Identifier = SV_MENU_EDIT_UNDO ;
			Text [ en-US ] = "~Undo" ;
		};
		MenuItem { Separator = TRUE ; } ;
		MenuItem
		{
			Identifier = SV_MENU_EDIT_CUT ;
			Text [ en-US ] = "Cu~t" ;
		};
		MenuItem
		{
			Identifier = SV_MENU_EDIT_COPY ;
			Text [ en-US ] = "~Copy" ;
		};
		MenuItem
		{
			Identifier = SV_MENU_EDIT_PASTE ;
			Text [ en-US ] = "~Paste" ;
		};
		MenuItem
		{
			Identifier = SV_MENU_EDIT_DELETE ;
			Text [ en-US ] = "~Delete" ;
		};
		MenuItem { Separator = TRUE ; };
		MenuItem
		{
			Identifier = SV_MENU_EDIT_SELECTALL ;
			Text [ en-US ] = "Select ~All" ;
		};
		MenuItem { Separator = TRUE ; } ;
		MenuItem
		{
			Identifier = SV_MENU_EDIT_INSERTSYMBOL ;
			Text [ en-US ] = "~Special Character..." ;

		};
	};
};

String SV_MENU_MAC_SERVICES
{
	Text [ en-US ] = "Services" ;
};

String SV_MENU_MAC_HIDEAPP
{
	Text [ en-US ] = "Hide %PRODUCTNAME" ;
};

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

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

String SV_MENU_MAC_QUITAPP
{
	Text [ en-US ] = "Quit %PRODUCTNAME" ;
};

// ********************************************************************** EOF
