#Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)
#
# Copyright (c) 2005, 2011, Werner Keil, Ikayzo and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#    Werner Keil, Ikayzo and others - initial API and implementation
#

# Imperial Units
org.eclipse.uomo.units.impl.system.Imperial.GALLON_UK            = gal_uk
# SI Units
org.eclipse.uomo.units.SI.AMPERE                     = A
org.eclipse.uomo.units.SI.AMPERE_TURN                = At
org.eclipse.uomo.units.SI.BECQUEREL                  = Bq
org.eclipse.uomo.units.SI.CANDELA                    = cd
org.eclipse.uomo.units.SI.CELSIUS                    = \u00B0C
org.eclipse.uomo.units.SI.CELSIUS.1                  = \u2103
org.eclipse.uomo.units.SI.CELSIUS.2                  = Celsius
org.eclipse.uomo.units.SI.COULOMB                    = C
org.eclipse.uomo.units.SI.FARAD                      = F
org.eclipse.uomo.units.SI.GRAM                       = g
org.eclipse.uomo.units.SI.GRAY                       = Gy
org.eclipse.uomo.units.SI.HENRY                      = H
org.eclipse.uomo.units.SI.HERTZ                      = Hz
org.eclipse.uomo.units.SI.HERTZ.2                    = hertz
org.eclipse.uomo.units.SI.JOULE                      = J
org.eclipse.uomo.units.SI.KATAL                      = kat
org.eclipse.uomo.units.SI.KELVIN                     = K
org.eclipse.uomo.units.SI.KILOGRAM                   = kg
org.eclipse.uomo.units.SI.KILOGRAM.1                 = kilogram
org.eclipse.uomo.units.SI.LUMEN                      = lm
org.eclipse.uomo.units.SI.LUX                        = lx
org.eclipse.uomo.units.SI.METRE                      = m
org.eclipse.uomo.units.SI.MOLE                       = mol
org.eclipse.uomo.units.SI.NEWTON                     = N
org.eclipse.uomo.units.SI.OHM                        = \u03A9
org.eclipse.uomo.units.SI.PASCAL                     = Pa
org.eclipse.uomo.units.SI.RADIAN                     = rad
org.eclipse.uomo.units.SI.ROENTGEN                   = R
org.eclipse.uomo.units.SI.SECOND                     = s
org.eclipse.uomo.units.SI.SIEMENS                    = S
org.eclipse.uomo.units.SI.SIEVERT                    = Sv
org.eclipse.uomo.units.SI.STERADIAN                  = sr
org.eclipse.uomo.units.SI.TESLA                      = T
org.eclipse.uomo.units.SI.VOLT                       = V
org.eclipse.uomo.units.SI.WATT                       = W
org.eclipse.uomo.units.SI.WEBER                      = Wb

# US Units
org.eclipse.uomo.units.impl.system.USCustomary.FAHRENHEIT 		 = \u00B0F
org.eclipse.uomo.units.impl.system.USCustomary.FAHRENHEIT.1      = \u2109
org.eclipse.uomo.units.impl.system.USCustomary.FOOT              = ft
org.eclipse.uomo.units.impl.system.USCustomary.HORSEPOWER        = hp
org.eclipse.uomo.units.impl.system.USCustomary.GALLON_LIQUID 	 = gal
org.eclipse.uomo.units.impl.system.USCustomary.GALLON_DRY 	     = gal_dry
org.eclipse.uomo.units.impl.system.USCustomary.INCH              = in
org.eclipse.uomo.units.impl.system.USCustomary.KNOT              = kn
org.eclipse.uomo.units.impl.system.USCustomary.LITER             = l
org.eclipse.uomo.units.impl.system.USCustomary.MILE    			 = mi
org.eclipse.uomo.units.impl.system.USCustomary.MILES_PER_HOUR    = mph
org.eclipse.uomo.units.impl.system.USCustomary.POUND			 = lb
# SI Prefixes
org.eclipse.uomo.units.impl.format.ParsePrefix.ATTO  = a
org.eclipse.uomo.units.impl.format.ParsePrefix.CENTI = c
org.eclipse.uomo.units.impl.format.ParsePrefix.DECI  = d
org.eclipse.uomo.units.impl.format.ParsePrefix.DEKA  = da
org.eclipse.uomo.units.impl.format.ParsePrefix.EXA   = E
org.eclipse.uomo.units.impl.format.ParsePrefix.FEMTO = f
org.eclipse.uomo.units.impl.format.ParsePrefix.GIGA  = G
org.eclipse.uomo.units.impl.format.ParsePrefix.HECTO = h
org.eclipse.uomo.units.impl.format.ParsePrefix.KILO  = k
org.eclipse.uomo.units.impl.format.ParsePrefix.MEGA  = M
org.eclipse.uomo.units.impl.format.ParsePrefix.MICRO = \u00B5
org.eclipse.uomo.units.impl.format.ParsePrefix.MILLI = m
org.eclipse.uomo.units.impl.format.ParsePrefix.NANO  = n
org.eclipse.uomo.units.impl.format.ParsePrefix.PETA  = P
org.eclipse.uomo.units.impl.format.ParsePrefix.PICO  = p
org.eclipse.uomo.units.impl.format.ParsePrefix.TERA  = T
org.eclipse.uomo.units.impl.format.ParsePrefix.YOCTO = y
org.eclipse.uomo.units.impl.format.ParsePrefix.YOTTA = Y
org.eclipse.uomo.units.impl.format.ParsePrefix.ZEPTO = z
org.eclipse.uomo.units.impl.format.ParsePrefix.ZETTA = Z

org.eclipse.uomo.units.impl.system.CommonUnits.KILOMETRES_PER_HOUR=kph