﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/en_GB.xml
// *
// ***************************************************************************
en_GB{
    %%Parent{"en_001"}
    Version{"2.1.8.19"}
    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"}
            }
            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"}
            }
        }
        consumption{
            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"}
            }
            decimeter{
                dnam{"decimetre"}
                one{"{0} decimetre"}
                other{"{0} decimetres"}
            }
            kilometer{
                dnam{"kilometres"}
                one{"{0} kilometre"}
                other{"{0} kilometres"}
            }
            meter{
                dnam{"metres"}
                one{"{0} metre"}
                other{"{0} metres"}
            }
            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"}
            }
            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"}
            }
            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"}
            }
            megaliter{
                dnam{"megalitres"}
                one{"{0} megalitre"}
                other{"{0} megalitres"}
            }
            milliliter{
                dnam{"millilitres"}
                one{"{0} millilitre"}
                other{"{0} millilitres"}
            }
        }
    }
    unitsNarrow{
        acceleration{
            g-force{
                one{"{0}G"}
                other{"{0}G"}
            }
        }
        mass{
            pound{
                one{"{0}lb"}
                other{"{0}lb"}
            }
        }
        pressure{
            inch-hg{
                one{"{0}\u0022 Hg"}
                other{"{0}\u0022 Hg"}
            }
        }
        volume{
            liter{
                dnam{"litre"}
            }
        }
    }
    unitsShort{
        acceleration{
            meter-per-second-squared{
                dnam{"metres/sec²"}
            }
        }
        consumption{
            liter-per-kilometer{
                dnam{"litres/km"}
            }
        }
        length{
            centimeter{
                dnam{"centimetres"}
            }
            fathom{
                one{"{0} fm"}
                other{"{0} fm"}
            }
            meter{
                dnam{"metres"}
            }
        }
        speed{
            kilometer-per-hour{
                dnam{"kilometres per hour"}
            }
            meter-per-second{
                dnam{"metres per second"}
            }
        }
        volume{
            liter{
                dnam{"litres"}
                one{"{0} l"}
                other{"{0} l"}
            }
        }
    }
}
