﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/ee.xml
// *
// ***************************************************************************
ee{
    Version{"2.1.12.94"}
    units{
        duration{
            day{
                one{"ŋkeke {0} wo"}
                other{"ŋkeke {0} wo"}
            }
            hour{
                one{"gaƒoƒo {0} wo"}
                other{"gaƒoƒo {0} wo"}
            }
            minute{
                one{"aɖabaƒoƒo {0} wo"}
                other{"aɖabaƒoƒo {0} wo"}
            }
            month{
                one{"ɣleti {0} wo"}
                other{"ɣleti {0} wo"}
            }
            second{
                one{"sekend {0} wo"}
                other{"sekend {0} wo"}
            }
            week{
                one{"kɔsiɖa {0} wo"}
                other{"kɔsiɖa {0} wo"}
            }
            year{
                one{"ƒe {0} wo"}
                other{"ƒe {0} wo"}
            }
        }
    }
    unitsNarrow{
        duration{
            hour{
                one{"g {0}"}
                other{"g {0}"}
            }
            minute{
                one{"a {0}"}
                other{"a {0}"}
            }
            second{
                one{"s {0}"}
                other{"s {0}"}
            }
        }
    }
    unitsShort{
        duration{
            day{
                one{"ŋkeke {0}"}
                other{"ŋkeke {0}"}
            }
            hour{
                one{"gaƒoƒo {0}"}
                other{"gaƒoƒo {0}"}
            }
            minute{
                one{"aɖabaƒoƒo {0}"}
                other{"aɖabaƒoƒo {0}"}
            }
            month{
                one{"ɣleti {0}"}
                other{"ɣleti {0}"}
            }
            second{
                one{"sekend {0}"}
                other{"sekend {0}"}
            }
            week{
                one{"kɔsiɖa {0}"}
                other{"kɔsiɖa {0}"}
            }
            year{
                one{"ƒe {0}"}
                other{"ƒe {0}"}
            }
        }
    }
}
