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


/* StarView ressource file */

#define __RSC

#include "misc.hxx"
#include "glob.hrc"
#include "sderror.hxx"

String STR_LAYER_BCKGRND
{
	Text [ en-US ] = "Background" ;
};
String STR_LAYER_BCKGRNDOBJ
{
	Text [ en-US ] = "Background objects" ;
};
String STR_LAYER_LAYOUT
{
	Text [ en-US ] = "Layout" ;
};
String STR_LAYER_CONTROLS
{
	Text [ en-US ] = "Controls" ;
};
String STR_LAYER_MEASURELINES
{
	Text [ en-US ] = "Dimension Lines" ;
};
String STR_PAGE
{
	Text [ en-US ] = "Slide" ;
};
String STR_PAGE_NAME
{
	Text [ en-US ] = "Page" ;
};
String STR_SLIDE_NAME
{
	Text [ en-US ] = "Slide" ;
};
String STR_MASTERPAGE
{
	Text [ en-US ] = "Background" ;
};
String STR_NOTES
{
	Text [ en-US ] = "(Notes)" ;
};
String STR_HANDOUT
{
	Text [ en-US ] = "Handouts" ;
};
String STR_PRESOBJ_MPTITLE
{
	Text [ en-US ] = "Click to edit the title text format" ;
};
String STR_PRESOBJ_MPOUTLINE
{
	Text [ en-US ] = "Click to edit the outline text format" ;
};
String STR_PRESOBJ_MPOUTLLAYER2
{
	Text [ en-US ] = "Second Outline Level" ;
};
String STR_PRESOBJ_MPOUTLLAYER3
{
	Text [ en-US ] = "Third Outline Level" ;
};
String STR_PRESOBJ_MPOUTLLAYER4
{
	Text [ en-US ] = "Fourth Outline Level" ;
};
String STR_PRESOBJ_MPOUTLLAYER5
{
	Text [ en-US ] = "Fifth Outline Level" ;
};
String STR_PRESOBJ_MPOUTLLAYER6
{
	Text [ en-US ] = "Sixth Outline Level" ;
};
String STR_PRESOBJ_MPOUTLLAYER7
{
	Text [ en-US ] = "Seventh Outline Level" ;
};
String STR_PRESOBJ_MPOUTLLAYER8
{
	Text [ en-US ] = "Eighth Outline Level" ;
};
String STR_PRESOBJ_MPOUTLLAYER9
{
	Text [ en-US ] = "Ninth Outline Level" ;
};
String STR_PRESOBJ_MPNOTESTITLE
{
	Text [ en-US ] = "Click to move the slide" ;
};
String STR_PRESOBJ_MPNOTESTEXT
{
	Text [ en-US ] = "Click to edit the notes format" ;
};
String STR_PRESOBJ_TITLE
{
	Text [ en-US ] = "Click to add title" ;
};
String STR_PRESOBJ_OUTLINE
{
	Text [ en-US ] = "Click to add text" ;
};
String STR_PRESOBJ_TEXT
{
	Text [ en-US ] = "Click to add text" ;
};
String STR_PRESOBJ_NOTESTEXT
{
	Text [ en-US ] = "Click to add notes" ;
};
String STR_PRESOBJ_GRAPHIC
{
	Text [ en-US ] = "Double-click to add graphics" ;
};
String STR_PRESOBJ_OBJECT
{
	Text [ en-US ] = "Double-click to add an object" ;
};
String STR_PRESOBJ_CHART
{
	Text [ en-US ] = "Double-click to add a chart" ;
};
String STR_PRESOBJ_ORGCHART
{
	Text [ en-US ] = "Double-click to add an organization chart" ;
};
String STR_PRESOBJ_TABLE
{
	Text [ en-US ] = "Double-click to add a spreadsheet" ;
};
String STR_OUTLINEVIEWSHELL
{
	Text [ en-US ] = "Outline View" ;
};
String STR_DRAWVIEWSHELL
{
	Text [ en-US ] = "Drawing View" ;
};
String STR_PRESVIEWSHELL
{
	Text [ en-US ] = "Presentation mode" ;
};
String STR_PREVIEWVIEWSHELL
{
	Text [ en-US ] = "Preview Window";
};
String STR_TEXTOBJECTBARSHELL
{
	Text [ en-US ] = "Text Mode" ;
};
String STR_STDOBJECTBARSHELL
{
	Text [ en-US ] = "Document Mode" ;
};
String STR_BEZIEROBJECTBARSHELL
{
	Text [ en-US ] = "Bézier mode" ;
};
String STR_APPLICATIONOBJECTBAR
{
	Text [ en-US ] = "StarImpress 4.0" ;
};
String STR_GLUEPOINTSOBJECTBARSHELL
{
	Text [ en-US ] = "Glue Points Mode" ;
};
/* nicht uebersetzen */
String STR_LAYOUT_TITLE
{
	Text = "Titel" ;
};
/* nicht uebersetzen */
String STR_LAYOUT_OUTLINE
{
	Text = "Gliederung" ;
};
/* nicht uebersetzen */
String STR_LAYOUT_BACKGROUND
{
	Text = "Hintergrund" ;
};
/* nicht uebersetzen */
String STR_LAYOUT_BACKGROUNDOBJECTS
{
	Text = "Hintergrundobjekte" ;
};
/* nicht uebersetzen */
String STR_LAYOUT_NOTES
{
	Text = "Notizen" ;
};
String STR_LAYOUT_DEFAULT_NAME
{
	Text [ en-US ] = "Default" ;
};
String STR_LAYOUT_DEFAULT_TITLE_NAME
{
	Text [ en-US ] = "Title" ;
};
String STR_STANDARD_STYLESHEET_NAME
{
	Text [ en-US ] = "Default" ;
};
String STR_BAD_PASSWORD_OR_FILE_CORRUPTED
{
	Text [ en-US ] = "The password is incorrect or the file is damaged." ;
};
String STR_UNDO_MOVEPAGES
{
	Text [ en-US ] = "Move slides" ;
};
String STR_NOT_ENOUGH_MEMORY
{
	Text [ en-US ] = "Not enough memory!\nThe action will be aborted." ;
};
/* nicht uebersetzen */
String STR_LAYOUT_SUBTITLE
{
	Text = "Untertitel" ;
};
String STR_POOLSHEET_MEASURE
{
	Text [ en-US ] = "Dimension Line" ;
};
String STR_POOLSHEET_OBJNOLINENOFILL
{
	Text [ en-US ] = "Object with no fill and no line" ;
};
String STR_POOLSHEET_OBJWITHARROW
{
	Text [ en-US ] = "Object with arrow" ;
};
String STR_POOLSHEET_OBJWITHSHADOW
{
	Text [ en-US ] = "Object with shadow" ;
};
String STR_POOLSHEET_OBJWITHOUTFILL
{
	Text [ en-US ] = "Object without fill" ;
};
String STR_POOLSHEET_TEXT
{
	Text [ en-US ] = "Text" ;
};
String STR_POOLSHEET_TEXTBODY
{
	Text [ en-US ] = "Text body" ;
};
String STR_POOLSHEET_TEXTBODY_JUSTIFY
{
	Text [ en-US ] = "Text body justified" ;
};
String STR_POOLSHEET_TEXTBODY_INDENT
{
	Text [ en-US ] = "First line indent" ;
};
String STR_POOLSHEET_TITLE
{
	Text [ en-US ] = "Title" ;
};
String STR_POOLSHEET_TITLE1
{
	Text [ en-US ] = "Title1" ;
};
String STR_POOLSHEET_TITLE2
{
	Text [ en-US ] = "Title2" ;
};
String STR_POOLSHEET_HEADLINE
{
	Text [ en-US ] = "Heading" ;
};
String STR_POOLSHEET_HEADLINE1
{
	Text [ en-US ] = "Heading1" ;
};

String STR_POOLSHEET_HEADLINE2
{
	Text [ en-US ] = "Heading2" ;
};
String STR_EMPTY_STYLESHEET_NAME
{
	Text [ en-US ] = "Blank template" ;
};
String STR_PSEUDOSHEET_TITLE
{
	Text [ en-US ] = "Title" ;
};
String STR_PSEUDOSHEET_SUBTITLE
{
	Text [ en-US ] = "Subtitle";
};
String STR_PSEUDOSHEET_OUTLINE
{
	Text [ en-US ] = "Outline" ;
};
String STR_PSEUDOSHEET_BACKGROUNDOBJECTS
{
	Text [ en-US ] = "Background objects" ;
};
String STR_PSEUDOSHEET_BACKGROUND
{
	Text [ en-US ] = "Background" ;
};
String STR_PSEUDOSHEET_NOTES
{
	Text [ en-US ] = "Notes" ;
};
String STR_GRAFOBJECTBARSHELL
{
	Text [ en-US ] = "Graphics mode" ;
};

String STR_MEDIAOBJECTBARSHELL
{
	Text [ en-US ] = "Media Playback" ;
};

String STR_TABLEOBJECTBARSHELL
{
	Text [ en-US ] = "Table" ;
};

String STR_POWERPOINT_IMPORT
{
	Text [ en-US ] = "PowerPoint Import";
};

String STR_POOLSHEET_ARROW
{
	Text [ en-US ] = "Arrow" ;
};


String STR_LOAD_DOC
{
	Text [ en-US ] = "Load Document" ;
};
String STR_SAVE_DOC
{
	Text [ en-US ] = "Save Document" ;
};

#define ERR_CODE( class, err )	(class | (err - ERROR_SD_BASE))
#define WARN_CODE( class, err )	(class | ( err - WARN_SD_BASE))

Resource RID_SD_ERRHDL
{
	String ERR_CODE ( ERRCODE_CLASS_READ , ERR_FORMAT_ROWCOL )
	{
		Text [ en-US ] = "File format error found at $(ARG1)(row,col)." ;
	};
	String ERR_CODE ( ERRCODE_CLASS_READ , ERR_FORMAT_FILE_ROWCOL )
	{
		Text [ en-US ] = "Format error discovered in the file in sub-document $(ARG1) at position $(ARG2)(row,col).";
	};
	String ERR_CODE ( ERRCODE_CLASS_READ , WARN_FORMAT_FILE_ROWCOL )
	{
		Text [ en-US ] = "Format error discovered in the file in sub-document $(ARG1) at position $(ARG2)(row,col).";
	};
};

String STR_3DOBJECTBARSHELL
{
	Text [ en-US ] = "3-D Settings" ;
};
String STR_FONTWORKOBJECTBARSHELL
{
	Text [ en-US ] = "Fontwork" ;
};

String STR_POOLSHEET_BANDED_CELL
{
	Text [ en-US ] = "Banding cell" ;
};

String STR_POOLSHEET_HEADER
{
	Text [ en-US ] = "Header" ;
};

String STR_POOLSHEET_TOTAL
{
	Text [ en-US ] = "Total line" ;
};

String STR_POOLSHEET_FIRST_COLUMN
{
	Text [ en-US ] = "First column" ;
};

String STR_POOLSHEET_LAST_COLUMN
{
	Text [ en-US ] = "Last column" ;
};
