/**************************************************************
 *
 * 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 "sc.hrc" // -> #include <sfx.hrc>

// Strings for interface names

String SCSTR_APPLICATION
{
	Text [ en-US ] = "%PRODUCTNAME Calc 6.0" ;
};
String SCSTR_50_APPLICATION
{
	Text [ en-US ] = "StarCalc 5.0" ;
};
String SCSTR_40_APPLICATION
{
	Text [ en-US ] = "StarCalc 4.0" ;
};
String SCSTR_30_APPLICATION
{
	Text [ en-US ] = "StarCalc 3.0" ;
};
String SCSTR_LONG_SCDOC_NAME
{
	Text [ en-US ] = "%PRODUCTNAME %PRODUCTVERSION Spreadsheet" ;
};
String SCSTR_50_LONG_DOCNAME
{
	Text [ en-US ] = "%PRODUCTNAME 5.0 Spreadsheet" ;
};
String SCSTR_40_LONG_DOCNAME
{
	Text [ en-US ] = "%PRODUCTNAME 4.0 Spreadsheet" ;
};
String SCSTR_30_LONG_DOCNAME
{
	Text [ en-US ] = "StarCalc 3.0 Spreadsheet" ;
};
String SCSTR_SHORT_SCDOC_NAME
{
	Text [ en-US ] = "Spreadsheet" ;
};
String SCSTR_HUMAN_SCDOC_NAME
{
	Text [ en-US ] = "Spreadsheet" ;
};

String SCSTR_DOCSHELL
{
	Text [ en-US ] = "Sheet" ;
};

String SCSTR_TABVIEWSHELL
{
	Text [ en-US ] = "Cells" ;
};

String SCSTR_CELLSHELL
{
	Text [ en-US ] = "Functions for Cells" ;
};

String SCSTR_FORMATSHELL
{
	Text [ en-US ] = "Formats for Cells" ;
};


String SCSTR_DRAWSHELL
{
	Text [ en-US ] = "Graphics objects" ;
};

String SCSTR_DRAWTEXTSHELL
{
	Text [ en-US ] = "Text objects" ;
};

String SCSTR_DRAWFORMSHELL
{
	Text [ en-US ] = "Form objects" ;
};

String SCSTR_CHARTSHELL
{
	Text [ en-US ] = "Chart objects" ;
};

String SCSTR_OLEOBJECTSHELL
{
	Text [ en-US ] = "OLE objects" ;
};

String SCSTR_GRAPHICSHELL
{
	Text [ en-US ] = "Graphics" ;
};
String SCSTR_PAGEBREAKSHELL
{
	Text [ en-US ] = "Pagebreak" ;
};

String SCSTR_EDITSHELL
{
	Text [ en-US ] = "Text editing" ;
};

String SCSTR_PREVIEWSHELL
{
	Text [ en-US ] = "Print Preview" ;
};

String SCSTR_PIVOTSHELL
{
	Text [ en-US ] = "Pivot Tables" ;
};

String SCSTR_AUDITSHELL
{
	Text [ en-US ] = "Detective Fill Mode" ;
};

// -----------------------------------------------------------------------

String STR_ROWHEIGHT
{
	Text [ en-US ] = "Height" ;
};
String STR_OPT_ROWHEIGHT
{
	Text [ en-US ] = "Add" ;
};
String STR_ROWHEIGHT_TITLE
{
	Text [ en-US ] = "Row Height" ;
};
String STR_OPT_ROWHEIGHT_TITLE
{
	Text [ en-US ] = "Optimal Row Height" ;
};
String STR_COLWIDTH
{
	Text [ en-US ] = "Width" ;
};
String STR_OPT_COLWIDTH
{
	Text [ en-US ] = "Add" ;
};
String STR_COLWIDTH_TITLE
{
	Text [ en-US ] = "Column Width" ;
};
String STR_OPT_COLWIDTH_TITLE
{
	Text [ en-US ] = "Optimal Column Width" ;
};
String SCSTR_UNDEFINED
{
	Text [ en-US ] = "- undefined -" ;
};
String SCSTR_NONE
{
	Text [ en-US ] = "- none -" ;
};
String SCSTR_EMPTY
{
	Text [ en-US ] = "- empty -" ;
};
String SCSTR_NOTEMPTY
{
	Text [ en-US ] = "- not empty -" ;
};
String SCSTR_NEWTABLE
{
	Text [ en-US ] = "- new sheet -" ;
};
String SCSTR_ALL
{
	Text [ en-US ] = "- all -" ;
};
String SCSTR_STDFILTER
{
	Text [ en-US ] = "Standard Filter..." ;
};
String SCSTR_TOP10FILTER
{
	Text [ en-US ] = "Top 10" ;
};
String SCSTR_NONAME
{
	Text [ en-US ] = "unnamed" ;
};
String SCSTR_COLUMN
{
	Text [ en-US ] = "Column" ;
};
String SCSTR_ROW
{
	Text [ en-US ] = "Row" ;
};
String SCSTR_NEW
{
	Text [ en-US ] = "~New" ;
};
String SCSTR_ADD
{
	Text [ en-US ] = "~Add" ;
};
String SCSTR_REMOVE
{
	Text [ en-US ] = "~Delete" ;
};
String SCSTR_CANCEL
{
	Text [ en-US ] = "Cance~l" ;
};
String SCSTR_MODIFY
{
	Text [ en-US ] = "Modif~y" ;
};


String SCSTR_SHOWTABLE
{
	Text [ en-US ] = "Show Sheet" ;
};
String SCSTR_HIDDENTABLES
{
	Text [ en-US ] = "Hidden Sheets" ;
};
String SCSTR_SELECTDB
{
	Text [ en-US ] = "Select Database Range" ;
};
String SCSTR_AREAS
{
	Text [ en-US ] = "Ranges" ;
};
String SCSTR_TABLE
{
	Text [ en-US ] = "Sheet" ;
};
String SCSTR_NAME
{
	Text [ en-US ] = "Name" ;
};
String SCSTR_INSTABLE
{
	Text [ en-US ] = "Insert Sheet" ;
};
String SCSTR_APDTABLE
{
	Text [ en-US ] = "Append Sheet" ;
};
String SCSTR_RENAMETAB
{
	Text [ en-US ] = "Rename Sheet" ;
};
String SCSTR_SET_TAB_BG_COLOR
{
	Text [ en-US ] = "Tab Color" ;
};
String SCSTR_NO_TAB_BG_COLOR
{
	Text [ en-US ] = "Default" ;
};
String SCSTR_RENAMEOBJECT
{
	Text [ en-US ] = "Name Object" ;
};
String STR_INSERTGRAPHIC
{
	Text [ en-US ] = "Insert Picture" ;
};

// Attributes

String SCSTR_HOR_JUSTIFY_LEFT
{
	Text [ en-US ] = "Align left" ;
};
String SCSTR_HOR_JUSTIFY_CENTER
{
	Text [ en-US ] = "Centered horizontally" ;
};
String SCSTR_HOR_JUSTIFY_RIGHT
{
	Text [ en-US ] = "Align right" ;
};
String SCSTR_HOR_JUSTIFY_BLOCK
{
	Text [ en-US ] = "Justify" ;
};
String SCSTR_HOR_JUSTIFY_REPEAT
{
	Text [ en-US ] = "Repeat alignment" ;
};
String SCSTR_HOR_JUSTIFY_STANDARD
{
	Text [ en-US ] = "Horizontal alignment default" ;
};
String SCSTR_VER_JUSTIFY_TOP
{
	Text [ en-US ] = "Align to top" ;
};
String SCSTR_VER_JUSTIFY_CENTER
{
	Text [ en-US ] = "Centered vertically" ;
};
String SCSTR_VER_JUSTIFY_BOTTOM
{
	Text [ en-US ] = "Align to bottom" ;
};
String SCSTR_VER_JUSTIFY_STANDARD
{
	Text [ en-US ] = "Vertical alignment default" ;
};
String SCSTR_ORIENTATION_TOPBOTTOM
{
	Text [ en-US ] = "Top to bottom" ;
};
String SCSTR_ORIENTATION_BOTTOMTOP
{
	Text [ en-US ] = "Bottom to Top" ;
};
String SCSTR_ORIENTATION_STANDARD
{
	Text [ en-US ] = "Default orientation" ;
};

String SCSTR_PROTECTDOC
{
	Text [ en-US ] = "Protect Document" ;
};
String SCSTR_UNPROTECTDOC
{
	Text [ en-US ] = "Unprotect document" ;
};
String SCSTR_PROTECTTAB
{
	Text [ en-US ] = "Protect Sheet" ;
};
String SCSTR_UNPROTECTTAB
{
	Text [ en-US ] = "Unprotect sheet" ;
};
String SCSTR_CHG_PROTECT
{
	Text [ en-US ] = "Protect Records" ;
};
String SCSTR_CHG_UNPROTECT
{
	Text [ en-US ] = "Unprotect Records" ;
};
String SCSTR_PASSWORD
{
	Text [ en-US ] = "Password:" ;
};
String SCSTR_PASSWORDOPT
{
	Text [ en-US ] = "Password (optional):" ;
};

String SCSTR_WRONGPASSWORD
{
	Text [ en-US ] = "Incorrect Password" ;
};

String SCSTR_END
{
	Text [ en-US ] = "~End" ;
};

String SCSTR_STAT_PRINT
{
	Text [ en-US ] = "Printing..." ;
};

String SCSTR_UNKNOWN
{
	Text [ en-US ] = "Unknown" ;
};

String SCSTR_CHAR_ATTRS
{
	Text [ en-US ] = "Font Attributes" ;
};


String SCSTR_CLPBRD_CLEAR
{
	Text [ en-US ] = "You have a large amount of data saved in the clipboard.\nDo you want the clipboard contents to be available in other applications?" ;
};

String SCSTR_CFG_APP
{
	Text [ en-US ] = "System Options" ;
};

String SCSTR_CFG_DOC
{
	Text [ en-US ] = "Document Options" ;
};

String SCSTR_CFG_VIEW
{
	Text [ en-US ] = "View Options" ;
};

String SCSTR_CFG_INPUT
{
	Text [ en-US ] = "Input Options" ;
};

String SCSTR_CFG_SPELLCHECK
{
	Text [ en-US ] = "Spelling Options" ;
};

String SCSTR_CFG_PRINT
{
	Text [ en-US ] = "Print Options" ;
};

String SCSTR_CFG_NAVIPI
{
	Text [ en-US ] = "Navigator Settings" ;
};

String SCSTR_VALID_MINIMUM
{
	Text [ en-US ] = "~Minimum" ;
};
String SCSTR_VALID_MAXIMUM
{
	Text [ en-US ] = "~Maximum" ;
};
String SCSTR_VALID_VALUE
{
	Text [ en-US ] = "~Value" ;
};
String SCSTR_VALID_RANGE
{
	Text [ en-US ] = "~Source" ;
};
String SCSTR_VALID_LIST
{
	Text [ en-US ] = "~Entries" ;
};

// for dialogs:

String SCSTR_CHARSET_USER
{
	Text [ en-US ] = "System" ;
};

String SCSTR_COLUMN_USER
{
	Text [ en-US ] = "Standard;Text;Date (DMY);Date (MDY);Date (YMD);US English;Hide" ;
};

String SCSTR_FIELDSEP
{
	Text = ",\t44\t;\t59\t:\t58\t{%TAB}\t9\t{%SPACE}\t32 " ;
};

String SCSTR_FIELDSEP_TAB
{
	Text [ en-US ] = "Tab" ;
};

String SCSTR_FIELDSEP_SPACE
{
	Text [ en-US ] = "space" ;
};

String SCSTR_TEXTSEP
{
	Text = "\"\t34\t'\t39" ;
};

String SCSTR_FORMULA_AUTOCORRECTION
{
	Text [ en-US ] = "%PRODUCTNAME Calc found an error in the formula entered.\nDo you want to accept the correction proposed below?\n\n" ;
};

//!	the graphics filter error strings should be moved to svx or offapp!

String SCSTR_GRFILTER_OPENERROR
{
	Text [ en-US ] = "Graphics file can not be opened" ;
};
String SCSTR_GRFILTER_IOERROR
{
	Text [ en-US ] = "Graphics file can not be read" ;
};
String SCSTR_GRFILTER_FORMATERROR
{
	Text [ en-US ] = "Unknown graphic format" ;
};
String SCSTR_GRFILTER_VERSIONERROR
{
	Text [ en-US ] = "This graphic file version is not supported" ;
};
String SCSTR_GRFILTER_FILTERERROR
{
	Text [ en-US ] = "Graphics filter not found" ;
};
String SCSTR_GRFILTER_TOOBIG
{
	Text [ en-US ] = "Not enough memory available to insert graphics." ;
};
String SCSTR_UNDO_GRAFFILTER
{
	Text [ en-US ] = "Graphics Filter" ;
};

// #98185#
String STR_CAPTION_DEFAULT_TEXT
{
	Text [ en-US ] = "Text" ;
};

// Select tables dialog title
String STR_DLG_SELECTTABLES_TITLE
{
	Text [ en-US ] = "Select Sheets" ;
};

// Select tables dialog listbox
String STR_DLG_SELECTTABLES_LBNAME
{
	Text [ en-US ] = "~Selected sheets" ;
};

String STR_REPLCELLSWARN
{
	Text [ en-US ] = "You are pasting data into cells that already contain data.\nDo you really want to overwrite the existing data?" ;
};

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

String STR_ACC_CSVRULER_NAME
{
	Text [ en-US ] = "Ruler" ;
};

String STR_ACC_CSVRULER_DESCR
{
	Text [ en-US ] = "This ruler manages objects at fixed positions." ;
};

String STR_ACC_CSVGRID_NAME
{
	Text [ en-US ] = "Preview" ;
};

String STR_ACC_CSVGRID_DESCR
{
	Text [ en-US ] = "This sheet shows how the data will be arranged in the document." ;
};

String STR_ACC_DOC_NAME
{
	Text [ en-US ] = "Document view" ;
};

String STR_ACC_DOC_DESCR
{
	Text = "" ;
};

String STR_ACC_TABLE_NAME
{
	Text [ en-US ] = "Sheet %1" ;
};

String STR_ACC_TABLE_DESCR
{
	Text = "" ;
};

String STR_ACC_CELL_NAME
{
	Text [ en-US ] = "Cell %1" ;
};

String STR_ACC_CELL_DESCR
{
	Text = "" ;
};

String STR_ACC_PREVIEWDOC_NAME
{
	Text [ en-US ] = "Page preview" ;
};

String STR_ACC_PREVIEWDOC_DESCR
{
	Text = "" ;
};

String STR_ACC_HEADERCELL_NAME
{
	Text = "" ;
};

String STR_ACC_HEADERCELL_DESCR
{
	Text = "" ;
};

String STR_ACC_LEFTAREA_NAME
{
	Text [ en-US ] = "Left area" ;
};

String STR_ACC_LEFTAREA_DESCR
{
	Text = "" ;
};

String STR_ACC_CENTERAREA_NAME
{
	Text [ en-US ] = "Center area" ;
};

String STR_ACC_CENTERAREA_DESCR
{
	Text = "" ;
};

String STR_ACC_RIGHTAREA_NAME
{
	Text [ en-US ] = "Right area" ;
};

String STR_ACC_RIGHTAREA_DESCR
{
	Text = "" ;
};

String STR_ACC_HEADER_NAME
{
	Text [ en-US ] = "Header of page %1" ;
};

String STR_ACC_HEADER_DESCR
{
	Text = "" ;
};

String STR_ACC_FOOTER_NAME
{
	Text [ en-US ] = "Footer of page %1" ;
};

String STR_ACC_FOOTER_DESCR
{
	Text = "" ;
};

String STR_ACC_EDITLINE_NAME
{
	Text [ en-US ] = "Input line" ;
};

String STR_ACC_EDITLINE_DESCR
{
	Text [ en-US ] = "This is where you enter or edit text, numbers and formulas." ;
};

String STR_ACC_EDITCELL_NAME
{
	Text [ en-US ] = "Cell %1" ;
};

String STR_ACC_EDITCELL_DESCR
{
	Text = "" ;
};

String STR_ACC_DATAPILOT_ROW_DESCR
{
	Text [ en-US ] = "Fields that you drop here will be displayed as rows in the final pivot table." ;
};

String STR_ACC_DATAPILOT_COL_DESCR
{
	Text [ en-US ] = "Fields that you drop here will be displayed as columns in the final pivot table." ;
};

String STR_ACC_DATAPILOT_DATA_DESCR
{
	Text [ en-US ] = "Fields that you drop here will be used for calculations in the final pivot table." ;
};

String STR_ACC_DATAPILOT_SEL_DESCR
{
	Text [ en-US ] = "Lists the fields that you can drag to one of the other three areas." ;
};

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

String RID_SCSTR_ONCLICK
{
	Text [ en-US ] = "Mouse button pressed" ;
};

String STR_ACC_TOOLBAR_FORMULA
{
	Text [ en-US ] = "Formula Tool Bar" ;
};
String STR_ACC_DOC_SPREADSHEET
{
	Text [ en-US ] = "%PRODUCTNAME Spreadsheets" ;
};
String STR_ACC_DOC_SPREADSHEET_READONLY
{
	Text [ en-US ] = "(read-only)" ;
};
String STR_ACC_DOC_PREVIEW_SUFFIX
{
	Text [ en-US ] = "(Preview mode)" ;
};

String SCSTR_MOREBTN_MOREOPTIONS
{
	Text [ en-US ] = "More ~Options" ;
};

String SCSTR_MOREBTN_FEWEROPTIONS
{
	Text [ en-US ] = "Fewer ~Options" ;
};

StringArray SCSTR_PRINT_OPTIONS
{
	ItemList [ en-US ] =
	{
		< "Pages" ;								>;
		< "~Include output of empty pages" ;	>;
		< "Print content" ;						>;
		< "~All sheets" ;						>;
		< "~Selected sheets" ;					>;
		< "Selected cells" ;					>;
		< "Thereof print" ;						>;
		< "All ~pages" ;						>;
		< "Pa~ges" ;							>;
		< "%PRODUCTNAME %s" ;					>;
	};
};

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