﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/mt.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/mt.xml
 */
mt{
    Version{"2.1.8.22"}
    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"}
            }
        }
    }
}
