/**************************************************************
 *
 * 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 "Strings.hrc"

String STR_DLG_CHART_WIZARD
{
	Text [ en-US ] = "Chart Wizard" ;
};

String STR_DLG_SMOOTH_LINE_PROPERTIES
{
	Text [ en-US ] = "Smooth Lines" ;
};

String STR_DLG_NUMBERFORMAT_FOR_PERCENTAGE_VALUE
{
	Text [ en-US ] = "Number Format for Percentage Value" ;
};

String STR_PAGE_CHARTTYPE
{
	Text [ en-US ] = "Chart Type" ;
};

String STR_PAGE_DATA_RANGE
{
	Text [ en-US ] = "Data Range" ;
};

String STR_PAGE_CHART_ELEMENTS
{
	Text [ en-US ] = "Chart Elements" ;
};

String STR_PAGE_CHART_LOCATION
{
	Text [ en-US ] = "Chart Location" ;
};

String STR_PAGE_LINE
{
	Text [ en-US ] = "Line" ;
};

String STR_PAGE_BORDER
{
	Text [ en-US ] = "Borders" ;
};

String STR_PAGE_AREA
{
	Text [ en-US ] = "Area" ;
};

String STR_PAGE_TRANSPARENCY
{
	Text [ en-US ] = "Transparency" ;
};

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

String STR_PAGE_FONT_EFFECTS
{
	Text [ en-US ] = "Font Effects" ;
};

String STR_PAGE_NUMBERS
{
	Text [ en-US ] = "Numbers" ;
};

String STR_PAGE_POSITION
{
	Text [ en-US ] = "Position" ;
};

String STR_BUTTON_UP
{
	Text [ en-US ] = "Up" ;
};
String STR_BUTTON_DOWN
{
	Text [ en-US ] = "Down" ;
};

String STR_PAGE_LAYOUT
{
	Text [ en-US ] = "Layout" ;
};

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

String STR_PAGE_SCALE
{
	Text [ en-US ] = "Scale" ;
};

String STR_PAGE_POSITIONING
{
	Text [ en-US ] = "Positioning" ;
};

// String STR_PAGE_STATISTICS
// {
// 	Text [ en-US ] = "Statistics" ;
// };

String STR_PAGE_TRENDLINE_TYPE
{
	Text [ en-US ] = "Type" ;
};

String STR_PAGE_YERROR_BARS
{
	Text [ en-US ] = "Y Error Bars" ;
};

String STR_PAGE_ALIGNMENT
{
	Text [ en-US ] = "Alignment" ;
};

String STR_PAGE_PERSPECTIVE
{
	Text [ en-US ] = "Perspective" ;
};
String STR_PAGE_APPEARANCE
{
	Text [ en-US ] = "Appearance" ;
};
String STR_PAGE_ILLUMINATION
{
	Text [ en-US ] = "Illumination" ;
};

String STR_PAGE_ASIAN
{
	Text [ en-US ] = "Asian Typography" ;
};

String STR_OBJECT_AVERAGE_LINE_WITH_PARAMETERS
{
	Text [ en-US ] = "Mean value line with value %AVERAGE_VALUE and standard deviation %STD_DEVIATION" ;
};

String STR_OBJECT_AXIS
{
	Text [ en-US ] = "Axis" ;
};
String STR_OBJECT_AXIS_X
{
	Text [ en-US ] = "X Axis" ;
};
String STR_OBJECT_AXIS_Y
{
	Text [ en-US ] = "Y Axis" ;
};
String STR_OBJECT_AXIS_Z
{
	Text [ en-US ] = "Z Axis" ;
};
String STR_OBJECT_SECONDARY_X_AXIS
{
	Text [ en-US ] = "Secondary X Axis" ;
};
String STR_OBJECT_SECONDARY_Y_AXIS
{
	Text [ en-US ] = "Secondary Y Axis" ;
};

String STR_OBJECT_AXES
{
	Text [ en-US ] = "Axes" ;
};
String STR_OBJECT_GRIDS
{
	Text [ en-US ] = "Grids" ;
};
String STR_OBJECT_GRID
{
	Text [ en-US ] = "Grid" ;
};
String STR_OBJECT_GRID_MAJOR_X
{
	Text [ en-US ] = "X Axis Major Grid" ;
};
String STR_OBJECT_GRID_MAJOR_Y
{
	Text [ en-US ] = "Y Axis Major Grid" ;
};
String STR_OBJECT_GRID_MAJOR_Z
{
	Text [ en-US ] = "Z Axis Major Grid" ;
};
String STR_OBJECT_GRID_MINOR_X
{
	Text [ en-US ] = "X Axis Minor Grid" ;
};
String STR_OBJECT_GRID_MINOR_Y
{
	Text [ en-US ] = "Y Axis Minor Grid" ;
};
String STR_OBJECT_GRID_MINOR_Z
{
	Text [ en-US ] = "Z Axis Minor Grid" ;
};

String STR_OBJECT_LEGEND
{
	Text [ en-US ] = "Legend" ;
};

String STR_OBJECT_TITLE
{
	Text [ en-US ] = "Title" ;
};
String STR_OBJECT_TITLES
{
	Text [ en-US ] = "Titles" ;
};
String STR_OBJECT_TITLE_MAIN
{
	Text [ en-US ] = "Main Title" ;
};
String STR_OBJECT_TITLE_SUB
{
	Text [ en-US ] = "Subtitle" ;
};
String STR_OBJECT_TITLE_X_AXIS
{
	Text [ en-US ] = "X Axis Title" ;
};
String STR_OBJECT_TITLE_Y_AXIS
{
	Text [ en-US ] = "Y Axis Title" ;
};
String STR_OBJECT_TITLE_Z_AXIS
{
	Text [ en-US ] = "Z Axis Title" ;
};
String STR_OBJECT_TITLE_SECONDARY_X_AXIS
{
	Text [ en-US ] = "Secondary X Axis Title" ;
};
String STR_OBJECT_TITLE_SECONDARY_Y_AXIS
{
	Text [ en-US ] = "Secondary Y Axis Title" ;
};
String STR_OBJECT_LABEL
{
	Text [ en-US ] = "Label" ;
};

String STR_OBJECT_DATALABELS
{
	Text [ en-US ] = "Data Labels" ;
};
String STR_OBJECT_DATAPOINT
{
	Text [ en-US ] = "Data Point" ;
};
String STR_OBJECT_DATAPOINTS
{
	Text [ en-US ] = "Data Points" ;
};
String STR_OBJECT_LEGEND_SYMBOL
{
	Text [ en-US ] = "Legend Key" ;
};
String STR_OBJECT_DATASERIES
{
	Text [ en-US ] = "Data Series" ;
};
String STR_OBJECT_DATASERIES_PLURAL
{
	Text [ en-US ] = "Data Series" ;
};
String STR_OBJECT_CURVE
{
	Text [ en-US ] = "Trend Line" ;
};
String STR_OBJECT_CURVES
{
	Text [ en-US ] = "Trend Lines" ;
};
String STR_OBJECT_CURVE_WITH_PARAMETERS
{
	Text [ en-US ] = "Trend line %FORMULA with accuracy R² = %RSQUARED" ;
};
String STR_OBJECT_AVERAGE_LINE
{
	Text [ en-US ] = "Mean Value Line" ;
};
String STR_OBJECT_CURVE_EQUATION
{
	Text [ en-US ] = "Equation" ;
};

String STR_OBJECT_ERROR_BARS
{
	Text [ en-US ] = "Error Bars" ;
};
String STR_OBJECT_STOCK_LOSS
{
	Text [ en-US ] = "Stock Loss" ;
};

String STR_OBJECT_STOCK_GAIN
{
	Text [ en-US ] = "Stock Gain" ;
};

String STR_OBJECT_PAGE
{
	Text [ en-US ] = "Chart Area" ;
};
String STR_OBJECT_DIAGRAM
{
	Text [ en-US ] = "Chart" ;
};
String STR_OBJECT_DIAGRAM_WALL
{
	Text [ en-US ] = "Chart Wall" ;
};
String STR_OBJECT_DIAGRAM_FLOOR
{
	Text [ en-US ] = "Chart Floor" ;
};

String STR_OBJECT_SHAPE
{
	Text [ en-US ] = "Drawing Object" ;
};

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

String STR_TIP_SELECT_RANGE
{
	Text [ en-US ] = "Select data range" ;
};

String STR_TIP_CHOOSECOLOR
{
	Text [ en-US ] = "Select a color using the color dialog" ;
};

String STR_TIP_LIGHTSOURCE_X
{
	Text [ en-US ] = "Light Source %LIGHTNUMBER" ;
};

String STR_TIP_DATASERIES
{
	Text [ en-US ] = "Data Series '%SERIESNAME'" ;
};

String STR_TIP_DATAPOINT_INDEX
{
	Text [ en-US ] = "Data Point %POINTNUMBER" ;
};

String STR_TIP_DATAPOINT_VALUES
{
	Text [ en-US ] = "Values: %POINTVALUES" ;
};

String STR_TIP_DATAPOINT
{
	Text [ en-US ] = "Data Point %POINTNUMBER, data series %SERIESNUMBER, values: %POINTVALUES" ;
};

String STR_STATUS_DATAPOINT_MARKED
{
	Text [ en-US ] = "Data point %POINTNUMBER in data series %SERIESNUMBER selected, values: %POINTVALUES" ;
};

String STR_STATUS_OBJECT_MARKED
{
	Text [ en-US ] = "%OBJECTNAME selected" ;
};

String STR_STATUS_PIE_SEGMENT_EXPLODED
{
	Text [ en-US ] = "Pie exploded by %PERCENTVALUE percent" ;
};

//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
String STR_OBJECT_FOR_SERIES
{
	Text [ en-US ] = "%OBJECTNAME for Data Series '%SERIESNAME'" ;
};

String STR_OBJECT_FOR_ALL_SERIES
{
	Text [ en-US ] = "%OBJECTNAME for all Data Series" ;
};

//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
String STR_ACTION_EDIT_CHARTTYPE
{
	Text [ en-US ] = "Edit chart type" ;
};
String STR_ACTION_EDIT_DATA_RANGES
{
	Text [ en-US ] = "Edit data ranges" ;
};
String STR_ACTION_EDIT_3D_VIEW
{
	Text [ en-US ] = "Edit 3D view" ;
};
String STR_ACTION_EDIT_CHART_DATA
{
	Text [ en-US ] = "Edit chart data" ;
};
String STR_ACTION_TOGGLE_LEGEND
{
	Text [ en-US ] = "Legend on/off" ;
};
String STR_ACTION_TOGGLE_GRID_HORZ
{
	Text [ en-US ] = "Horizontal grid on/off" ;
};
String STR_ACTION_SCALE_TEXT
{
	Text [ en-US ] = "Scale Text" ;
};
String STR_ACTION_REARRANGE_CHART
{
	Text [ en-US ] = "Automatic Layout" ;
};
String STR_ACTION_NOTPOSSIBLE
{
	Text [ en-US ] = "This function cannot be completed with the selected objects." ;
};
String STR_ACTION_EDIT_TEXT
{
	Text [ en-US ] = "Edit text" ;
};

String STR_COLUMN_LABEL
{
	Text [ en-US ] = "Column %COLUMNNUMBER" ;
};
String STR_ROW_LABEL
{
	Text [ en-US ] = "Row %ROWNUMBER" ;
};

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

//for range didalog
String STR_DATA_ROLE_LABEL
{
	Text [ en-US ] = "Name" ;
};

String STR_DATA_ROLE_X
{
	Text [ en-US ] = "X-Values" ;
};

String STR_DATA_ROLE_Y
{
	Text [ en-US ] = "Y-Values" ;
};

String STR_DATA_ROLE_SIZE
{
	Text [ en-US ] = "Bubble Sizes" ;
};

String STR_DATA_ROLE_X_ERROR
{
	Text [ en-US ] = "X-Error-Bars" ;
};
String STR_DATA_ROLE_X_ERROR_POSITIVE
{
	Text [ en-US ] = "Positive X-Error-Bars" ;
};
String STR_DATA_ROLE_X_ERROR_NEGATIVE
{
	Text [ en-US ] = "Negative X-Error-Bars" ;
};

String STR_DATA_ROLE_Y_ERROR
{
	Text [ en-US ] = "Y-Error-Bars" ;
};
String STR_DATA_ROLE_Y_ERROR_POSITIVE
{
	Text [ en-US ] = "Positive Y-Error-Bars" ;
};
String STR_DATA_ROLE_Y_ERROR_NEGATIVE
{
	Text [ en-US ] = "Negative Y-Error-Bars" ;
};

String STR_DATA_ROLE_FIRST
{
	Text [ en-US ] = "Open Values" ;
};

String STR_DATA_ROLE_LAST
{
	Text [ en-US ] = "Close Values" ;
};

String STR_DATA_ROLE_MIN
{
	Text [ en-US ] = "Low Values" ;
};

String STR_DATA_ROLE_MAX
{
	Text [ en-US ] = "High Values" ;
};

String STR_DATA_ROLE_CATEGORIES
{
	Text [ en-US ] = "Categories" ;
};

String STR_DATA_UNNAMED_SERIES
{
	Text [ en-US ] = "Unnamed Series" ;
};

String STR_DATA_UNNAMED_SERIES_WITH_INDEX
{
	Text [ en-US ] = "Unnamed Series %NUMBER" ;
};

String STR_DATA_SELECT_RANGE_FOR_SERIES
{
	Text [ en-US ] = "Select Range for %VALUETYPE of %SERIESNAME" ;
};

String STR_DATA_SELECT_RANGE_FOR_CATEGORIES
{
	Text [ en-US ] = "Select Range for Categories" ;
};

String STR_DATA_SELECT_RANGE_FOR_DATALABELS
{
	Text [ en-US ] = "Select Range for data labels" ;
};
String STR_DATA_SELECT_RANGE_FOR_POSITIVE_ERRORBARS
{
	Text [ en-US ] = "Select Range for Positive Error Bars" ;
};
String STR_DATA_SELECT_RANGE_FOR_NEGATIVE_ERRORBARS
{
	Text [ en-US ] = "Select Range for Negative Error Bars" ;
};

String STR_DATA_EDITOR_INCORRECT_INPUT
{
	Text [ en-US ] = "Your last input is incorrect.\nIgnore this change and close the dialog?" ;
};

// frame direction ------------------------------------------------------------

String STR_TEXT_DIRECTION_LTR
{
	Text [ en-US ] = "Left-to-right" ;
};

String STR_TEXT_DIRECTION_RTL
{
	Text [ en-US ] = "Right-to-left" ;
};

String STR_TEXT_DIRECTION_SUPER
{
	Text [ en-US ] = "Use superordinate object settings" ;
};

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