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

IMAGE RID_IMG_SCALABLEFONT
{
	ImageBitmap = Bitmap { File = "scalfont.png" ; };
};

IMAGE RID_IMG_SCALABLEFONT_HC
{
	ImageBitmap = Bitmap { File = "scalfont_h.png" ; };
};

IMAGE RID_IMG_PRINTERFONT
{
	ImageBitmap = Bitmap { File = "prnfont.png" ; };
};

IMAGE RID_IMG_PRINTERFONT_HC
{
	ImageBitmap = Bitmap { File = "prnfont_h.png" ; };
};

IMAGE RID_IMG_BITMAPFONT
{
	ImageBitmap = Bitmap { File = "bmpfont.png" ; };
};

IMAGE RID_IMG_BITMAPFONT_HC
{
	ImageBitmap = Bitmap { File = "bmpfont_h.png" ; };
};

String STR_SVT_AUTOMATIC_COLOR
{
	Text [ en-US ] = "Automatic" ;
};

/*
 * resources for CollatorRessource / CollatorRessourceData resp.
 */

String STR_SVT_COLLATE_ALPHANUMERIC
{
	/* alphanumeric sorting algorithm */
	Text [ en-US ] = "Alphanumeric" ;
};

String STR_SVT_COLLATE_NORMAL
{
	/* default or normal sorting algorithm */
	Text [ en-US ] = "Normal" ;
};

String STR_SVT_COLLATE_CHARSET
{
	/* default or normal sorting algorithm */
	Text [ en-US ] = "Character set" ;
};

String STR_SVT_COLLATE_DICTIONARY
{
	/* German dictionary word order / sorting */
	Text [ en-US ] = "Dictionary" ;
};

String STR_SVT_COLLATE_PINYIN
{
	/* Chinese sorting algorithm */
	Text [ en-US ] = "Pinyin" ;
};

String STR_SVT_COLLATE_STROKE
{
	/* Chinese sorting algorithm */
	Text [ en-US ] = "Stroke" ;
};

String STR_SVT_COLLATE_RADICAL
{
	/* Chinese sorting algorithm */
	Text [ en-US ] = "Radical" ;
};

String STR_SVT_COLLATE_UNICODE
{
	/* sorting according to the unicode code point of the character */
	Text [ en-US ] = "Unicode" ;
};

String STR_SVT_COLLATE_ZHUYIN
{
	/* Chinese sorting algorithm */
	Text [ en-US ] = "Zhuyin" ;
};

String STR_SVT_COLLATE_PHONEBOOK
{
	/* phone book sorting algorithm. e.g. German */
	Text [ en-US ] = "Phone book" ;
};

String STR_SVT_COLLATE_PHONETIC_F
{
	Text [ en-US ] = "Phonetic (alphanumeric first)" ;
};

String STR_SVT_COLLATE_PHONETIC_L
{
	Text [ en-US ] = "Phonetic (alphanumeric last)" ;
};

String STR_SVT_INDEXENTRY_ALPHANUMERIC
{
	/* alphanumeric indexentry algorithm */
	Text [ en-US ] = "Alphanumeric" ;
};

String STR_SVT_INDEXENTRY_DICTIONARY
{
	/* korean dictionary indexentry algorithm */
	Text [ en-US ] = "Dictionary" ;
};

String STR_SVT_INDEXENTRY_PINYIN
{
	/* Chinese sorting algorithm */
	Text [ en-US ] = "Pinyin" ;
};

String STR_SVT_INDEXENTRY_RADICAL
{
	/* Chinese indexentry algorithm */
	Text [ en-US ] = "Radical" ;
};

String STR_SVT_INDEXENTRY_STROKE
{
	/* Chinese indexentry algorithm */
	Text [ en-US ] = "Stroke" ;
};

String STR_SVT_INDEXENTRY_ZHUYIN
{
	/* Chinese indexentry algorithm */
	Text [ en-US ] = "Zhuyin" ;
};

String STR_SVT_INDEXENTRY_PHONETIC_FS
{
	Text [ en-US ] = "Phonetic (alphanumeric first, grouped by syllables)" ;
};

String STR_SVT_INDEXENTRY_PHONETIC_FC
{
	Text [ en-US ] = "Phonetic (alphanumeric first, grouped by consonants)" ;
};

String STR_SVT_INDEXENTRY_PHONETIC_LS
{
	Text [ en-US ] = "Phonetic (alphanumeric last, grouped by syllables)" ;
};

String STR_SVT_INDEXENTRY_PHONETIC_LC
{
	Text [ en-US ] = "Phonetic (alphanumeric last, grouped by consonants)" ;
};

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