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

#define _SV_UNITS_SRC

#include <svids.hrc>

StringArray SV_FUNIT_STRINGS
{
	ItemList [ en-US ] =
	{
		< "mm" ; FUNIT_MM ;			> ;
		< "cm" ; FUNIT_CM ;			> ;
		< "m" ; FUNIT_M ;			> ;
		< "km" ; FUNIT_KM ;			> ;
		< "twips" ; FUNIT_TWIP ;	> ;
		< "twip" ; FUNIT_TWIP ;		> ;
		< "pt" ; FUNIT_POINT ;		> ;
		< "pi" ; FUNIT_PICA ;		> ;
		< "\"" ; FUNIT_INCH ;		> ;
		< "in" ; FUNIT_INCH ;		> ;
		< "inch" ; FUNIT_INCH ;		> ;
		< "'" ; FUNIT_FOOT ;		> ;
		< "ft" ; FUNIT_FOOT ;		> ;
		< "foot" ; FUNIT_FOOT ;		> ;
		< "feet" ; FUNIT_FOOT ;		> ;
		< "miles" ; FUNIT_MILE ;	> ;
		< "mile" ; FUNIT_MILE ;		> ;
		< "%" ; FUNIT_PERCENT ;		> ;
	};
};

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