﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/se.xml
// *
// ***************************************************************************
se{
    Version{"2.1.7.53"}
    durationUnits{
        hm{"h:mm"}
        hms{"h:mm:ss"}
        ms{"m:ss"}
    }
    units{
        acceleration{
            g-force{
                dnam{"Maapallo gravitaatiovoimat"}
                one{"{0} Maapallo gravitaatiovoima"}
                other{"{0} Maapallo gravitaatiovoimat"}
                two{"{0} Maapallo gravitaatiovoimat"}
            }
        }
        angle{
            arc-minute{
                dnam{"jorbbas minuhtta"}
                one{"{0} jorbbas minuhta"}
                other{"{0} jorbbas minuhtta"}
                two{"{0} jorbbas minuhtta"}
            }
            arc-second{
                dnam{"jorbbas sekundda"}
                one{"{0} jorbbas sekunda"}
                other{"{0} jorbbas sekundda"}
                two{"{0} jorbbas sekundda"}
            }
            degree{
                dnam{"grádat"}
                one{"{0} grádat"}
                other{"{0} grádat"}
                two{"{0} grádat"}
            }
        }
        area{
            acre{
                dnam{"Amerihká tynnyrinala"}
                one{"{0} Amerihká tynnyrinala"}
                other{"{0} Amerihká tynnyrinala"}
                two{"{0} Amerihká tynnyrinala"}
            }
            hectare{
                dnam{"hehtaaria"}
                one{"{0} hehtaari"}
                other{"{0} hehtaaria"}
                two{"{0} hehtaaria"}
            }
            square-foot{
                dnam{"neliöjuolgi"}
                one{"{0} neliöjuolgi"}
                other{"{0} neliöjuolgi"}
                two{"{0} neliöjuolgi"}
            }
            square-kilometer{
                dnam{"neliökilomehtera"}
                one{"{0} neliökilomehter"}
                other{"{0} neliökilomehtera"}
                two{"{0} neliökilomehtera"}
            }
            square-meter{
                dnam{"neliömehtera"}
                one{"{0} neliömehter"}
                other{"{0} neliömehtera"}
                two{"{0} neliömehtera"}
            }
            square-mile{
                dnam{"eangas neliömiila"}
                one{"{0} eangas neliömiil"}
                other{"{0} eangas neliömiila"}
                two{"{0} eangas neliömiila"}
            }
        }
        compound{
            per{"{0} juohke {1}"}
        }
        duration{
            day{
                dnam{"jándora"}
                one{"{0} jándor"}
                other{"{0} jándora"}
                two{"{0} jándora"}
            }
            hour{
                dnam{"diibmur"}
                one{"{0} diibmu"}
                other{"{0} diibmur"}
                two{"{0} diimmur"}
            }
            millisecond{
                dnam{"millisekundda"}
                one{"{0} millisekunda"}
                other{"{0} millisekundda"}
                two{"{0} millisekundda"}
            }
            minute{
                dnam{"minuhtta"}
                one{"{0} minuhta"}
                other{"{0} minuhtta"}
                two{"{0} minuhtta"}
            }
            month{
                dnam{"mánotbadji"}
                one{"{0} mánotbadji"}
                other{"{0} mánotbadji"}
                two{"{0} mánotbaji"}
            }
            second{
                dnam{"sekundda"}
                one{"{0} sekunda"}
                other{"{0} sekundda"}
                two{"{0} sekundda"}
            }
            week{
                dnam{"váhkku"}
                one{"{0} váhku"}
                other{"{0} váhkku"}
                two{"{0} váhkku"}
            }
            year{
                dnam{"jahkki"}
                one{"{0} jahki"}
                other{"{0} jahkki"}
                two{"{0} jahkki"}
            }
        }
        length{
            centimeter{
                dnam{"sentimehtera"}
                one{"{0} sentimehter"}
                other{"{0} sentimehtera"}
                two{"{0} sentimehtera"}
            }
            foot{
                dnam{"juolgi"}
                one{"{0} juolgi"}
                other{"{0} juolgi"}
                two{"{0} juolgi"}
            }
            inch{
                dnam{"bealgi"}
                one{"{0} bealgi"}
                other{"{0} bealgi"}
                two{"{0} bealgi"}
            }
            kilometer{
                dnam{"kilomehtera"}
                one{"{0} kilomehter"}
                other{"{0} kilomehtera"}
                two{"{0} kilomehtera"}
            }
            light-year{
                dnam{"chuovgat jagi"}
                one{"{0} chuovgat jagi"}
                other{"{0} chuovgat jagi"}
                two{"{0} chuovgat jagi"}
            }
            meter{
                dnam{"mehtera"}
                one{"{0} mehter"}
                other{"{0} mehtera"}
                two{"{0} mehtera"}
            }
            mile{
                dnam{"eangas miila"}
                one{"{0} eangas miil"}
                other{"{0} eangas miila"}
                two{"{0} eangas miila"}
            }
            millimeter{
                dnam{"millimehtera"}
                one{"{0} millimehter"}
                other{"{0} millimehtera"}
                two{"{0} millimehtera"}
            }
            picometer{
                dnam{"pikomehtera"}
                one{"{0} pikomehter"}
                other{"{0} pikomehtera"}
                two{"{0} pikomehtera"}
            }
            yard{
                dnam{"eangas yard"}
                one{"{0} eangas yard"}
                other{"{0} eangas yard"}
                two{"{0} eangas yard"}
            }
        }
        mass{
            gram{
                dnam{"gram"}
                one{"{0} gram"}
                other{"{0} gram"}
                two{"{0} gram"}
            }
            kilogram{
                dnam{"kilogram"}
                one{"{0} kilogram"}
                other{"{0} kilogram"}
                two{"{0} kilogram"}
            }
            ounce{
                dnam{"unssi"}
                one{"{0} unssi"}
                other{"{0} unssi"}
                two{"{0} unssi"}
            }
            pound{
                dnam{"pauna"}
                one{"{0} pauna"}
                other{"{0} pauna"}
                two{"{0} pauna"}
            }
        }
        power{
            horsepower{
                dnam{"hevosvoima"}
                one{"{0} hevosvoima"}
                other{"{0} hevosvoima"}
                two{"{0} hevosvoima"}
            }
            kilowatt{
                dnam{"kilowatt"}
                one{"{0} kilowatt"}
                other{"{0} kilowatt"}
                two{"{0} kilowatt"}
            }
            watt{
                dnam{"watt"}
                one{"{0} watt"}
                other{"{0} watt"}
                two{"{0} watt"}
            }
        }
        pressure{
            hectopascal{
                dnam{"hehtopascal"}
                one{"{0} hehtopascal"}
                other{"{0} hehtopascal"}
                two{"{0} hehtopascal"}
            }
            inch-hg{
                dnam{"bealgi kvikksølv"}
                one{"{0} bealgi kvikksølv"}
                other{"{0} bealgi kvikksølv"}
                two{"{0} bealgi kvikksølv"}
            }
            millibar{
                dnam{"millibar"}
                one{"{0} millibar"}
                other{"{0} millibar"}
                two{"{0} millibar"}
            }
        }
        speed{
            kilometer-per-hour{
                dnam{"kilomehtera kohti diibmu"}
                one{"{0} kilomehter kohti diibmu"}
                other{"{0} kilomehtera kohti diibmu"}
                two{"{0} kilomehtera kohti diibmu"}
            }
            meter-per-second{
                dnam{"mehtera kohti sekunti"}
                one{"{0} mehter kohti sekunti"}
                other{"{0} mehtera kohti sekunti"}
                two{"{0} mehtera kohti sekunti"}
            }
            mile-per-hour{
                dnam{"eangas miila kohti diibmu"}
                one{"{0} eangas miil kohti diibmu"}
                other{"{0} eangas miila kohti diibmu"}
                two{"{0} eangas miila kohti diibmu"}
            }
        }
        temperature{
            celsius{
                dnam{"grádat Celsius"}
                one{"{0} grádat Celsius"}
                other{"{0} grádat Celsius"}
                two{"{0} grádat Celsius"}
            }
            fahrenheit{
                dnam{"grádat Fahrenheit"}
                one{"{0} grádat Fahrenheit"}
                other{"{0} grádat Fahrenheit"}
                two{"{0} grádat Fahrenheit"}
            }
        }
        volume{
            cubic-kilometer{
                dnam{"kubikkilomehtera"}
                one{"{0} kubikkilomehter"}
                other{"{0} kubikkilomehtera"}
                two{"{0} kubikkilomehtera"}
            }
            cubic-mile{
                dnam{"eangas kubikkmiila"}
                one{"{0} eangas kubikkmiil"}
                other{"{0} eangas kubikkmiila"}
                two{"{0} eangas kubikkmiila"}
            }
            liter{
                dnam{"lihtara"}
                one{"{0} lihtar"}
                other{"{0} lihtara"}
                two{"{0} lihtara"}
            }
        }
    }
    unitsNarrow{
        acceleration{
            g-force{
                one{"{0}G"}
                other{"{0}G"}
                two{"{0}G"}
            }
        }
        angle{
            arc-minute{
                one{"{0}′"}
                other{"{0}′"}
                two{"{0}′"}
            }
            arc-second{
                one{"{0}″"}
                other{"{0}″"}
                two{"{0}″"}
            }
            degree{
                one{"{0}°"}
                other{"{0}°"}
                two{"{0}°"}
            }
        }
        area{
            acre{
                one{"{0} ac"}
                other{"{0} ac"}
                two{"{0} ac"}
            }
            hectare{
                one{"{0}ha"}
                other{"{0}ha"}
                two{"{0}ha"}
            }
            square-foot{
                one{"{0} ft²"}
                other{"{0} ft²"}
                two{"{0} ft²"}
            }
            square-kilometer{
                one{"{0}km²"}
                other{"{0}km²"}
                two{"{0}km²"}
            }
            square-meter{
                one{"{0}m²"}
                other{"{0}m²"}
                two{"{0}m²"}
            }
            square-mile{
                one{"{0} mi²"}
                other{"{0} mi²"}
                two{"{0} mi²"}
            }
        }
        compound{
            per{"{0}/{1}"}
        }
        duration{
            day{
                one{"{0}d"}
                other{"{0}d"}
                two{"{0}d"}
            }
            hour{
                one{"{0}h"}
                other{"{0}h"}
                two{"{0}h"}
            }
            millisecond{
                one{"{0}ms"}
                other{"{0}ms"}
                two{"{0}ms"}
            }
            minute{
                one{"{0}m"}
                other{"{0}m"}
                two{"{0}m"}
            }
            month{
                one{"{0}m"}
                other{"{0}m"}
                two{"{0}m"}
            }
            second{
                one{"{0}s"}
                other{"{0}s"}
                two{"{0}s"}
            }
            week{
                one{"{0}v"}
                other{"{0}v"}
                two{"{0}v"}
            }
            year{
                one{"{0}j"}
                other{"{0}j"}
                two{"{0}j"}
            }
        }
        length{
            centimeter{
                one{"{0}cm"}
                other{"{0}cm"}
                two{"{0}cm"}
            }
            foot{
                one{"{0} juolgi"}
                other{"{0} juolgi"}
                two{"{0} juolgi"}
            }
            inch{
                one{"{0} bealgi"}
                other{"{0} bealgi"}
                two{"{0} bealgi"}
            }
            kilometer{
                one{"{0}km"}
                other{"{0}km"}
                two{"{0}km"}
            }
            light-year{
                one{"{0} ly"}
                other{"{0} ly"}
                two{"{0} ly"}
            }
            meter{
                one{"{0}m"}
                other{"{0}m"}
                two{"{0}m"}
            }
            mile{
                one{"{0} mi"}
                other{"{0} mi"}
                two{"{0} mi"}
            }
            millimeter{
                one{"{0}mm"}
                other{"{0}mm"}
                two{"{0}mm"}
            }
            picometer{
                one{"{0}pm"}
                other{"{0}pm"}
                two{"{0}pm"}
            }
            yard{
                one{"{0} yd"}
                other{"{0} yd"}
                two{"{0} yd"}
            }
        }
        mass{
            gram{
                one{"{0}g"}
                other{"{0}g"}
                two{"{0}g"}
            }
            kilogram{
                one{"{0}kg"}
                other{"{0}kg"}
                two{"{0}kg"}
            }
            ounce{
                one{"{0} unssi"}
                other{"{0} unssi"}
                two{"{0} unssi"}
            }
            pound{
                one{"{0} pauna"}
                other{"{0} pauna"}
                two{"{0} pauna"}
            }
        }
        power{
            horsepower{
                one{"{0}hv"}
                other{"{0}hv"}
                two{"{0}hv"}
            }
            kilowatt{
                one{"{0}kW"}
                other{"{0}kW"}
                two{"{0}kW"}
            }
            watt{
                one{"{0}W"}
                other{"{0}W"}
                two{"{0}W"}
            }
        }
        pressure{
            hectopascal{
                one{"{0}hPa"}
                other{"{0}hPa"}
                two{"{0}hPa"}
            }
            inch-hg{
                one{"{0} bealgi Hg"}
                other{"{0} bealgi Hg"}
                two{"{0} bealgi Hg"}
            }
            millibar{
                one{"{0}mbar"}
                other{"{0}mbar"}
                two{"{0}mbar"}
            }
        }
        speed{
            kilometer-per-hour{
                one{"{0}km/h"}
                other{"{0}km/h"}
                two{"{0}km/h"}
            }
            meter-per-second{
                one{"{0}m/s"}
                other{"{0}m/s"}
                two{"{0}m/s"}
            }
            mile-per-hour{
                one{"{0} mi/h"}
                other{"{0} mi/h"}
                two{"{0} mi/h"}
            }
        }
        temperature{
            celsius{
                one{"{0}°"}
                other{"{0}°"}
                two{"{0}°"}
            }
            fahrenheit{
                one{"{0}°F"}
                other{"{0}°F"}
                two{"{0}°F"}
            }
        }
        volume{
            cubic-kilometer{
                one{"{0}km³"}
                other{"{0}km³"}
                two{"{0}km³"}
            }
            cubic-mile{
                one{"{0} mi³"}
                other{"{0} mi³"}
                two{"{0} mi³"}
            }
            liter{
                one{"{0}L"}
                other{"{0}L"}
                two{"{0}L"}
            }
        }
    }
    unitsShort{
        acceleration{
            g-force{
                dnam{"Maapallo gravitaatiovoimat"}
                one{"{0} G"}
                other{"{0} G"}
                two{"{0} G"}
            }
        }
        angle{
            arc-minute{
                dnam{"jorbbas minuhtta"}
                one{"{0}′"}
                other{"{0}′"}
                two{"{0}′"}
            }
            arc-second{
                dnam{"jorbbas sekundda"}
                one{"{0}″"}
                other{"{0}″"}
                two{"{0}″"}
            }
            degree{
                dnam{"grádat"}
                one{"{0}°"}
                other{"{0}°"}
                two{"{0}°"}
            }
        }
        area{
            acre{
                dnam{"Amerihká tynnyrinala"}
                one{"{0} ac"}
                other{"{0} ac"}
                two{"{0} ac"}
            }
            hectare{
                dnam{"hehtaaria"}
                one{"{0} ha"}
                other{"{0} ha"}
                two{"{0} ha"}
            }
            square-foot{
                dnam{"neliöjuolgi"}
                one{"{0} ft²"}
                other{"{0} ft²"}
                two{"{0} ft²"}
            }
            square-kilometer{
                dnam{"neliökilomehtera"}
                one{"{0} km²"}
                other{"{0} km²"}
                two{"{0} km²"}
            }
            square-meter{
                dnam{"neliömehtera"}
                one{"{0} m²"}
                other{"{0} m²"}
                two{"{0} m²"}
            }
            square-mile{
                dnam{"eangas neliömiila"}
                one{"{0} mi²"}
                other{"{0} mi²"}
                two{"{0} mi²"}
            }
        }
        compound{
            per{"{0}/{1}"}
        }
        duration{
            day{
                dnam{"jándora"}
                one{"{0} d"}
                other{"{0} d"}
                two{"{0} d"}
            }
            hour{
                dnam{"diibmur"}
                one{"{0} h"}
                other{"{0} h"}
                two{"{0} h"}
            }
            millisecond{
                dnam{"millisekundda"}
                one{"{0} ms"}
                other{"{0} ms"}
                two{"{0} ms"}
            }
            minute{
                dnam{"minuhtta"}
                one{"{0} min"}
                other{"{0} min"}
                two{"{0} min"}
            }
            month{
                dnam{"mánotbadji"}
                one{"{0} mán"}
                other{"{0} mán"}
                two{"{0} mán"}
            }
            second{
                dnam{"sekundda"}
                one{"{0} s"}
                other{"{0} s"}
                two{"{0} s"}
            }
            week{
                dnam{"váhkku"}
                one{"{0} v"}
                other{"{0} v"}
                two{"{0} v"}
            }
            year{
                dnam{"jahkki"}
                one{"{0} jah"}
                other{"{0} jah"}
                two{"{0} jah"}
            }
        }
        length{
            centimeter{
                dnam{"sentimehtera"}
                one{"{0} cm"}
                other{"{0} cm"}
                two{"{0} cm"}
            }
            foot{
                dnam{"juolgi"}
                one{"{0} juolgi"}
                other{"{0} juolgi"}
                two{"{0} juolgi"}
            }
            inch{
                dnam{"bealgi"}
                one{"{0} bealgi"}
                other{"{0} bealgi"}
                two{"{0} bealgi"}
            }
            kilometer{
                dnam{"kilomehtera"}
                one{"{0} km"}
                other{"{0} km"}
                two{"{0} km"}
            }
            light-year{
                dnam{"chuovgat jagi"}
                one{"{0} ly"}
                other{"{0} ly"}
                two{"{0} ly"}
            }
            meter{
                dnam{"mehtera"}
                one{"{0} m"}
                other{"{0} m"}
                two{"{0} m"}
            }
            mile{
                dnam{"eangas miila"}
                one{"{0} mi"}
                other{"{0} mi"}
                two{"{0} mi"}
            }
            millimeter{
                dnam{"millimehtera"}
                one{"{0} mm"}
                other{"{0} mm"}
                two{"{0} mm"}
            }
            picometer{
                dnam{"pikomehtera"}
                one{"{0} pm"}
                other{"{0} pm"}
                two{"{0} pm"}
            }
            yard{
                dnam{"eangas yard"}
                one{"{0} yd"}
                other{"{0} yd"}
                two{"{0} yd"}
            }
        }
        mass{
            gram{
                dnam{"gram"}
                one{"{0} g"}
                other{"{0} g"}
                two{"{0} g"}
            }
            kilogram{
                dnam{"kilogram"}
                one{"{0} kg"}
                other{"{0} kg"}
                two{"{0} kg"}
            }
            ounce{
                dnam{"unssi"}
                one{"{0} unssi"}
                other{"{0} unssi"}
                two{"{0} unssi"}
            }
            pound{
                dnam{"pauna"}
                one{"{0} pauna"}
                other{"{0} pauna"}
                two{"{0} pauna"}
            }
        }
        power{
            horsepower{
                dnam{"hevosvoima"}
                one{"{0} hv"}
                other{"{0} hv"}
                two{"{0} hv"}
            }
            kilowatt{
                dnam{"kilowatt"}
                one{"{0} kW"}
                other{"{0} kW"}
                two{"{0} kW"}
            }
            watt{
                dnam{"watt"}
                one{"{0} W"}
                other{"{0} W"}
                two{"{0} W"}
            }
        }
        pressure{
            hectopascal{
                dnam{"hehtopascal"}
                one{"{0} hPa"}
                other{"{0} hPa"}
                two{"{0} hPa"}
            }
            inch-hg{
                dnam{"bealgi kvikksølv"}
                one{"{0} bealgi Hg"}
                other{"{0} bealgi Hg"}
                two{"{0} bealgi Hg"}
            }
            millibar{
                dnam{"millibar"}
                one{"{0} mbar"}
                other{"{0} mbar"}
                two{"{0} mbar"}
            }
        }
        speed{
            kilometer-per-hour{
                dnam{"kilomehtera kohti diibmu"}
                one{"{0} km/h"}
                other{"{0} km/h"}
                two{"{0} km/h"}
            }
            meter-per-second{
                dnam{"mehtera kohti sekunti"}
                one{"{0} m/s"}
                other{"{0} m/s"}
                two{"{0} m/s"}
            }
            mile-per-hour{
                dnam{"eangas miila kohti diibmu"}
                one{"{0} mi/h"}
                other{"{0} mi/h"}
                two{"{0} mi/h"}
            }
        }
        temperature{
            celsius{
                dnam{"grádat Celsius"}
                one{"{0}°C"}
                other{"{0}°C"}
                two{"{0}°C"}
            }
            fahrenheit{
                dnam{"grádat Fahrenheit"}
                one{"{0}°F"}
                other{"{0}°F"}
                two{"{0}°F"}
            }
        }
        volume{
            cubic-kilometer{
                dnam{"kubikkilomehtera"}
                one{"{0} km³"}
                other{"{0} km³"}
                two{"{0} km³"}
            }
            cubic-mile{
                dnam{"eangas kubikkmiila"}
                one{"{0} mi³"}
                other{"{0} mi³"}
                two{"{0} mi³"}
            }
            liter{
                dnam{"lihtara"}
                one{"{0} l"}
                other{"{0} l"}
                two{"{0} l"}
            }
        }
    }
}
