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

#include "accessibility.hrc"

// Names and descriptions of the Draw/Impress accessibility views

String SID_SD_A11Y_D_DRAWVIEW_N
{
	Text [ en-US ] = "Normal View" ;
};

String SID_SD_A11Y_D_DRAWVIEW_D
{
	Text [ en-US ] = "This is where you create and edit drawings." ;
};

String SID_SD_A11Y_I_DRAWVIEW_N
{
	Text [ en-US ] = "Normal View" ;
};

String SID_SD_A11Y_I_DRAWVIEW_D
{
	Text [ en-US ] = "This is where you create and edit slides." ;
};

String SID_SD_A11Y_I_OUTLINEVIEW_N
{
	Text [ en-US ] = "Outline View" ;
};

String SID_SD_A11Y_I_OUTLINEVIEW_D
{
	Text [ en-US ] = "This is where you enter or edit text in list form." ;
};

String SID_SD_A11Y_I_SLIDEVIEW_N
{
	Text [ en-US ] = "Slides View" ;
};

String SID_SD_A11Y_I_SLIDEVIEW_D
{
	Text [ en-US ] = "This is where you sort slides." ;
};

String SID_SD_A11Y_I_NOTESVIEW_N
{
	Text [ en-US ] = "Notes View" ;
};

String SID_SD_A11Y_I_NOTESVIEW_D
{
	Text [ en-US ] = "This is where you enter and view notes." ;
};

String SID_SD_A11Y_I_HANDOUTVIEW_N
{
	Text [ en-US ] = "Handout View" ;
};

String SID_SD_A11Y_I_HANDOUTVIEW_D
{
	Text [ en-US ] = "This is where you decide on the layout for handouts." ;
};

String SID_SD_A11Y_P_TITLE_N
{
	Text [ en-US ] = "PresentationTitle" ;
};

String SID_SD_A11Y_P_OUTLINER_N
{
	Text [ en-US ] = "PresentationOutliner" ;
};

String SID_SD_A11Y_P_SUBTITLE_N
{
	Text [ en-US ] = "PresentationSubtitle" ;
};

String SID_SD_A11Y_P_PAGE_N
{
	Text [ en-US ] = "PresentationPage" ;
};

String SID_SD_A11Y_P_NOTES_N
{
	Text [ en-US ] = "PresentationNotes" ;
};

String SID_SD_A11Y_P_HANDOUT_N
{
	Text [ en-US ] = "Handout" ;
};

String SID_SD_A11Y_P_UNKNOWN_N
{
	Text [ en-US ] = "UnknownAccessiblePresentationShape" ;
};

String SID_SD_A11Y_P_TITLE_D
{
	Text [ en-US ] = "PresentationTitleShape" ;
};

String SID_SD_A11Y_P_OUTLINER_D
{
	Text [ en-US ] = "PresentationOutlinerShape" ;
};

String SID_SD_A11Y_P_SUBTITLE_D
{
	Text [ en-US ] = "PresentationSubtitleShape" ;
};

String SID_SD_A11Y_P_PAGE_D
{
	Text [ en-US ] = "PresentationPageShape" ;
};

String SID_SD_A11Y_P_NOTES_D
{
	Text [ en-US ] = "PresentationNotesShape" ;
};

String SID_SD_A11Y_P_HANDOUT_D
{
	Text [ en-US ] = "PresentationHandoutShape" ;
};

String SID_SD_A11Y_P_UNKNOWN_D
{
	Text [ en-US ] = "Unknown accessible presentation shape" ;
};

String SID_SD_A11Y_P_FOOTER_N
{
	Text [ en-US ] = "PresentationFooter" ;
};
String SID_SD_A11Y_P_FOOTER_D
{
	Text [ en-US ] = "PresentationFooterShape" ;
};
String SID_SD_A11Y_P_HEADER_N
{
	Text [ en-US ] = "PresentationHeader" ;
};
String SID_SD_A11Y_P_HEADER_D
{
	Text [ en-US ] = "PresentationHeaderShape" ;
};
String SID_SD_A11Y_P_DATE_N
{
	Text [ en-US ] = "PresentationDateAndTime" ;
};
String SID_SD_A11Y_P_DATE_D
{
	Text [ en-US ] = "PresentationDateAndTimeShape" ;
};
String SID_SD_A11Y_P_NUMBER_N
{
	Text [ en-US ] = "PresentationPageNumber" ;
};
String SID_SD_A11Y_P_NUMBER_D
{
	Text [ en-US ] = "PresentationPageNumberShape" ;
};

String SID_SD_A11Y_D_PRESENTATION
{
	Text [ en-US ] = "%PRODUCTNAME Presentation" ;
};
String SID_SD_A11Y_P_TITLE_N_STYLE
{
	Text [ en-US ] = "Title" ;
};
String SID_SD_A11Y_P_OUTLINER_N_STYLE
{
	Text [ en-US ] = "Outliner" ;
};
String SID_SD_A11Y_P_SUBTITLE_N_STYLE
{
	Text [ en-US ] = "Sub Title" ;
};
String SID_SD_A11Y_P_PAGE_N_STYLE
{
	Text [ en-US ] = "Page" ;
};
String SID_SD_A11Y_P_NOTES_N_STYLE
{
	Text [ en-US ] = "Notes" ;
};
String SID_SD_A11Y_P_HANDOUT_N_STYLE
{
	Text [ en-US ] = "Handout" ;
};
String SID_SD_A11Y_P_UNKNOWN_N_STYLE
{
	Text [ en-US ] = "Unknown Accessible Presentation Shape" ;
};
String SID_SD_A11Y_P_FOOTER_N_STYLE
{
	Text [ en-US ] = "Footer" ;
};
String SID_SD_A11Y_P_HEADER_N_STYLE
{
	Text [ en-US ] = "Header" ;
};
String SID_SD_A11Y_P_DATE_N_STYLE
{
	Text [ en-US ] = "Date" ;
};
String SID_SD_A11Y_P_NUMBER_N_STYLE
{
	Text [ en-US ] = "Number" ;
};

String SID_SD_A11Y_I_PREVIEW_N
{
	Text [ en-US ] = "Preview View" ;
};
String SID_SD_A11Y_I_PREVIEW_D
{
	Text [ en-US ] = "This is where you print preview pages." ;
};
String SID_SD_A11Y_I_PREVIEW_SUFFIX
{
	Text [ en-US ] = "(Preview mode)" ;
};

String SID_SD_A11Y_D_PRESENTATION_READONLY
{
	Text [ en-US ] = "(read-only)" ;
};

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