﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/en_001.xml
// *
// ***************************************************************************
en_001{
    Version{"2.1.19.14"}
    units{
        acceleration{
            meter-per-second-squared{
                dnam{"metres per second squared"}
                one{"{0} metre per second squared"}
                other{"{0} metres per second squared"}
            }
        }
        area{
            square-centimeter{
                dnam{"square centimetres"}
                one{"{0} square centimetre"}
                other{"{0} square centimetres"}
                per{"{0} per square centimetre"}
            }
            square-kilometer{
                dnam{"square kilometres"}
                one{"{0} square kilometre"}
                other{"{0} square kilometres"}
            }
            square-meter{
                dnam{"square metres"}
                one{"{0} square metre"}
                other{"{0} square metres"}
                per{"{0} per square metre"}
            }
        }
        consumption{
            liter-per-100kilometers{
                dnam{"litres per 100 kilometres"}
                one{"{0} litre per 100 kilometres"}
                other{"{0} litres per 100 kilometres"}
            }
            liter-per-kilometer{
                dnam{"litres per kilometre"}
                one{"{0} litre per kilometre"}
                other{"{0} litres per kilometre"}
            }
        }
        length{
            centimeter{
                dnam{"centimetres"}
                one{"{0} centimetre"}
                other{"{0} centimetres"}
                per{"{0} per centimetre"}
            }
            decimeter{
                dnam{"decimetre"}
                one{"{0} decimetre"}
                other{"{0} decimetres"}
            }
            kilometer{
                dnam{"kilometres"}
                one{"{0} kilometre"}
                other{"{0} kilometres"}
                per{"{0} per kilometre"}
            }
            meter{
                dnam{"metres"}
                one{"{0} metre"}
                other{"{0} metres"}
                per{"{0} per metre"}
            }
            micrometer{
                dnam{"micrometre"}
                one{"{0} micrometre"}
                other{"{0} micrometres"}
            }
            millimeter{
                dnam{"millimetres"}
                one{"{0} millimetre"}
                other{"{0} millimetres"}
            }
            nanometer{
                dnam{"nanometres"}
                one{"{0} nanometre"}
                other{"{0} nanometres"}
            }
            picometer{
                dnam{"picometres"}
                one{"{0} picometre"}
                other{"{0} picometres"}
            }
        }
        pressure{
            millimeter-of-mercury{
                dnam{"millimetres of mercury"}
                one{"{0} millimetre of mercury"}
                other{"{0} millimetres of mercury"}
            }
        }
        speed{
            kilometer-per-hour{
                dnam{"kilometres per hour"}
                one{"{0} kilometre per hour"}
                other{"{0} kilometres per hour"}
            }
            meter-per-second{
                dnam{"metres per second"}
                one{"{0} metre per second"}
                other{"{0} metres per second"}
            }
        }
        volume{
            centiliter{
                dnam{"centilitres"}
                one{"{0} centilitre"}
                other{"{0} centilitres"}
            }
            cubic-centimeter{
                dnam{"cubic centimetres"}
                one{"{0} cubic centimetre"}
                other{"{0} cubic centimetres"}
                per{"{0} per cubic centimetre"}
            }
            cubic-kilometer{
                dnam{"cubic kilometres"}
                one{"{0} cubic kilometre"}
                other{"{0} cubic kilometres"}
            }
            cubic-meter{
                dnam{"cubic metres"}
                one{"{0} cubic metre"}
                other{"{0} cubic metres"}
                per{"{0} per cubic metre"}
            }
            deciliter{
                dnam{"decilitres"}
                one{"{0} decilitre"}
                other{"{0} decilitres"}
            }
            hectoliter{
                dnam{"hectolitres"}
                one{"{0} hectolitre"}
                other{"{0} hectolitres"}
            }
            liter{
                dnam{"litres"}
                one{"{0} litre"}
                other{"{0} litres"}
                per{"{0} per litre"}
            }
            megaliter{
                dnam{"megalitres"}
                one{"{0} megalitre"}
                other{"{0} megalitres"}
            }
            milliliter{
                dnam{"millilitres"}
                one{"{0} millilitre"}
                other{"{0} millilitres"}
            }
        }
    }
    unitsNarrow{
        consumption{
            liter-per-100kilometers{
                dnam{"l/100km"}
                one{"{0}l/100km"}
                other{"{0}l/100km"}
            }
            liter-per-kilometer{
                dnam{"l/km"}
                one{"{0}l/km"}
                other{"{0}l/km"}
            }
        }
        mass{
            pound{
                one{"{0}lb"}
                other{"{0}lb"}
            }
        }
        temperature{
            celsius{
                one{"{0}°"}
                other{"{0}°"}
            }
            fahrenheit{
                one{"{0}°F"}
                other{"{0}°F"}
            }
        }
        volume{
            centiliter{
                dnam{"cl"}
                one{"{0}cl"}
                other{"{0}cl"}
            }
            deciliter{
                dnam{"dl"}
                one{"{0}dl"}
                other{"{0}dl"}
            }
            hectoliter{
                dnam{"hl"}
                one{"{0}hl"}
                other{"{0}hl"}
            }
            liter{
                dnam{"litre"}
                one{"{0}l"}
                other{"{0}l"}
                per{"{0}/l"}
            }
            megaliter{
                dnam{"Ml"}
                one{"{0}Ml"}
                other{"{0}Ml"}
            }
            milliliter{
                dnam{"ml"}
                one{"{0}ml"}
                other{"{0}ml"}
            }
        }
    }
    unitsShort{
        acceleration{
            meter-per-second-squared{
                dnam{"metres/sec²"}
            }
        }
        consumption{
            liter-per-100kilometers{
                dnam{"l/100 km"}
                one{"{0} l/100 km"}
                other{"{0} l/100 km"}
            }
            liter-per-kilometer{
                dnam{"litres/km"}
                one{"{0} l/km"}
                other{"{0} l/km"}
            }
        }
        duration{
            hour{
                one{"{0} hr"}
                other{"{0} hrs"}
            }
            minute{
                one{"{0} min"}
                other{"{0} mins"}
            }
            second{
                one{"{0} sec"}
                other{"{0} secs"}
            }
        }
        length{
            meter{
                dnam{"metres"}
            }
            micrometer{
                dnam{"µmetres"}
            }
        }
        speed{
            meter-per-second{
                dnam{"metres/sec"}
            }
        }
        volume{
            centiliter{
                dnam{"cl"}
                one{"{0} cl"}
                other{"{0} cl"}
            }
            deciliter{
                dnam{"dl"}
                one{"{0} dl"}
                other{"{0} dl"}
            }
            hectoliter{
                dnam{"hl"}
                one{"{0} hl"}
                other{"{0} hl"}
            }
            liter{
                dnam{"litres"}
                one{"{0} l"}
                other{"{0} l"}
            }
            megaliter{
                dnam{"Ml"}
                one{"{0} Ml"}
                other{"{0} Ml"}
            }
            milliliter{
                dnam{"ml"}
                one{"{0} ml"}
                other{"{0} ml"}
            }
        }
    }
}
