﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/mt.xml
// *
// ***************************************************************************
mt{
    Version{"2.1.15.45"}
    units{
        angle{
            arc-minute{
                few{"{0}′"}
                many{"{0}′"}
                one{"{0}′"}
                other{"{0}′"}
            }
        }
        consumption{
            liter-per-kilometer{
                dnam{"L/km"}
                few{"{0} litri kull kilometru"}
                many{"{0} litri kull kilometru"}
                one{"{0} litru kull kilometru"}
                other{"{0} litri kull kilometru"}
            }
        }
        digital{
            megabyte{
                dnam{"megabytes"}
                few{"{0} megabytes"}
                many{"{0} megabytes"}
                one{"{0} megabyte"}
                other{"{0} megabytes"}
            }
            terabit{
                dnam{"terabits"}
                few{"{0} terabits"}
                many{"{0} terabits"}
                one{"{0} terabit"}
                other{"{0} terabits"}
            }
            terabyte{
                dnam{"terabytes"}
                few{"{0} terabytes"}
                many{"{0} terabytes"}
                one{"{0} terabyte"}
                other{"{0} terabytes"}
            }
        }
        duration{
            millisecond{
                dnam{"millisekondi"}
                few{"{0} millisekondi"}
                many{"{0} millisekondi"}
                one{"{0} millisekonda"}
                other{"{0} millisekondi"}
            }
        }
        light{
            lux{
                dnam{"lx"}
                few{"{0} lx"}
                many{"{0} lx"}
                one{"{0} lx"}
                other{"{0} lx"}
            }
        }
        proportion{
            karat{
                dnam{"karati"}
                few{"{0} kt"}
                many{"{0} kt"}
                one{"{0} kt"}
                other{"{0} kt"}
            }
        }
    }
    unitsNarrow{
        duration{
            millisecond{
                dnam{"millisek"}
                few{"{0}ms"}
                many{"{0}ms"}
                one{"{0}ms"}
                other{"{0}ms"}
            }
        }
    }
    unitsShort{
        consumption{
            liter-per-kilometer{
                dnam{"L/km"}
                few{"{0} L/km"}
                many{"{0} L/km"}
                one{"{0} L/km"}
                other{"{0} L/km"}
            }
        }
        digital{
            megabit{
                few{"{0} Mb"}
                many{"{0} Mb"}
                one{"{0} Mb"}
                other{"{0} Mb"}
            }
            megabyte{
                dnam{"MB"}
                few{"{0} MB"}
                many{"{0} MB"}
                one{"{0} MB"}
                other{"{0} MB"}
            }
            terabit{
                dnam{"Tb"}
                few{"{0} Tb"}
                many{"{0} Tb"}
                one{"{0} Tb"}
                other{"{0} Tb"}
            }
            terabyte{
                dnam{"TB"}
                few{"{0} TB"}
                many{"{0} TB"}
                one{"{0} TB"}
                other{"{0} TB"}
            }
        }
        duration{
            millisecond{
                dnam{"millisek"}
                few{"{0} ms"}
                many{"{0} ms"}
                one{"{0} ms"}
                other{"{0} ms"}
            }
        }
        light{
            lux{
                dnam{"lx"}
                few{"{0} lx"}
                many{"{0} lx"}
                one{"{0} lx"}
                other{"{0} lx"}
            }
        }
        proportion{
            karat{
                dnam{"kt"}
                few{"{0} kt"}
                many{"{0} kt"}
                one{"{0} kt"}
                other{"{0} kt"}
            }
        }
    }
}
