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

String STR_ACCESS_DOC_NAME
{
	Text [ en-US ] = "Document view" ;
};
String STR_ACCESS_DOC_DESC
{
	Text [ en-US ] = "Document view" ;
};
String STR_ACCESS_HEADING_WITH_NUM_DESC
{
	Text [ en-US ] = "Heading number $(ARG2): $(ARG1)" ;
};
String STR_ACCESS_HEADER_NAME
{
	Text [ en-US ] = "Header $(ARG1)" ;
};
String STR_ACCESS_HEADER_DESC
{
	Text [ en-US ] = "Header page $(ARG1)" ;
};
String STR_ACCESS_FOOTER_NAME
{
	Text [ en-US ] = "Footer $(ARG1)" ;
};
String STR_ACCESS_FOOTER_DESC
{
	Text [ en-US ] = "Footer page $(ARG1)" ;
};
String STR_ACCESS_FOOTNOTE_NAME
{
	Text [ en-US ] = "Footnote $(ARG1)" ;
};
String STR_ACCESS_FOOTNOTE_DESC
{
	Text [ en-US ] = "Footnote $(ARG1)" ;
};
String STR_ACCESS_ENDNOTE_NAME
{
	Text [ en-US ] = "Endnote $(ARG1)" ;
};
String STR_ACCESS_ENDNOTE_DESC
{
	Text [ en-US ] = "Endnote $(ARG1)" ;
};
String STR_ACCESS_TABLE_DESC
{
	Text [ en-US ] = "$(ARG1) on page $(ARG2)" ;
};
String STR_ACCESS_PAGE_NAME
{
	Text [ en-US ] = "Page $(ARG1)" ;
};
String STR_ACCESS_PAGE_DESC
{
	Text [ en-US ] = "Page: $(ARG1)" ;
};
String STR_ACCESS_ANNOTATION_AUTHOR_NAME
{
	Text [ en-US ] = "Author" ;
};
String STR_ACCESS_ANNOTATION_DATE_NAME
{
	Text [ en-US ] = "Date";
};
String STR_ACCESS_ANNOTATION_BUTTON_NAME
{
	Text [ en-US ] = "Actions" ;
};
String STR_ACCESS_ANNOTATION_BUTTON_DESC
{
	Text [ en-US ] = "Activate this button to open a list of actions which can be performed on this comment and other comments" ;
};

String STR_ACCESS_PREVIEW_DOC_NAME
{
	Text [ en-US ] = "Document preview" ;
};
String STR_ACCESS_PREVIEW_DOC_SUFFIX
{
	Text [ en-US ] = "(Preview mode)" ;
};
String STR_ACCESS_DOC_WORDPROCESSING
{
	Text [ en-US ] = "%PRODUCTNAME Document" ;
};
String STR_ACCESS_DOC_WORDPROCESSING_READONLY
{
	Text [ en-US ] = "(read-only)" ;
};

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