﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/es_419.xml
// *
// ***************************************************************************
es_419{
    Version{"2.1.19.14"}
    units{
        volume{
            acre-foot{
                one{"{0} acre pie"}
                other{"{0} acres pies"}
            }
        }
    }
    unitsNarrow{
        duration{
            day{
                dnam{"d."}
                one{"{0}d."}
                other{"{0}dd."}
            }
            month{
                dnam{"m."}
                one{"{0}m."}
                other{"{0}mm."}
            }
            week{
                dnam{"sem."}
                one{"{0}sem."}
                other{"{0}sems."}
            }
            year{
                dnam{"a."}
                one{"{0}a."}
                other{"{0}aa."}
            }
        }
    }
    unitsShort{
        duration{
            day{
                dnam{"dd."}
                one{"{0} d."}
                other{"{0} dd."}
            }
            month{
                dnam{"mm."}
                one{"{0} m."}
                other{"{0} mm."}
            }
            week{
                dnam{"sems."}
                one{"{0} sem."}
                other{"{0} sems."}
            }
            year{
                dnam{"aa."}
                one{"{0} a."}
                other{"{0} aa."}
            }
        }
        electric{
            volt{
                dnam{"volts"}
            }
        }
        length{
            light-year{
                dnam{"aa. l."}
                one{"{0} a. l."}
                other{"{0} aa. l."}
            }
            nautical-mile{
                dnam{"nmi"}
                one{"{0} nmi"}
                other{"{0} nmi"}
            }
            parsec{
                dnam{"parsecs"}
            }
            yard{
                dnam{"yardas"}
            }
        }
        power{
            watt{
                dnam{"watts"}
            }
        }
        volume{
            pint{
                dnam{"pintas"}
            }
            tablespoon{
                dnam{"cdas."}
                one{"{0} cda."}
                other{"{0} cdas."}
            }
            teaspoon{
                dnam{"cdtas."}
                one{"{0} cdta."}
                other{"{0} cdtas."}
            }
        }
    }
}
