﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/ga.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/ga.xml
 */
ga{
    Version{"2.1.8.9"}
    units{
        duration{
            day{
                dnam{"laethanta"}
                few{"{0} lá"}
                many{"{0} lá"}
                one{"{0} lá"}
                other{"{0} lá"}
                two{"{0} lá"}
            }
            hour{
                dnam{"uaireanta"}
                few{"{0} huaire"}
                many{"{0} n-uaire"}
                one{"{0} uair"}
                other{"{0} uair"}
                per{"{0} san uair"}
                two{"{0} uair"}
            }
            microsecond{
                dnam{"micreashoicindí"}
                few{"{0} mhicreashoicind"}
                many{"{0} micreashoicind"}
                one{"{0} mhicreashoicind"}
                other{"{0} micreashoicind"}
                two{"{0} mhicreashoicind"}
            }
            millisecond{
                dnam{"milleasoicindí"}
                few{"{0} mhilleasoicind"}
                many{"{0} milleasoicind"}
                one{"{0} mhilleasoicind"}
                other{"{0} milleasoicind"}
                two{"{0} mhilleasoicind"}
            }
            minute{
                dnam{"nóiméid"}
                few{"{0} nóiméad"}
                many{"{0} nóiméad"}
                one{"{0} nóiméad"}
                other{"{0} nóiméad"}
                two{"{0} nóiméad"}
            }
            month{
                dnam{"míonna"}
                few{"{0} mhí"}
                many{"{0} mí"}
                one{"{0} mhí"}
                other{"{0} mí"}
                two{"{0} mhí"}
            }
            nanosecond{
                dnam{"nanashoicindí"}
                few{"{0} nanashoicind"}
                many{"{0} nanashoicind"}
                one{"{0} nanashoicind"}
                other{"{0} nanashoicind"}
                two{"{0} nanashoicind"}
            }
            second{
                dnam{"soicindí"}
                few{"{0} shoicind"}
                many{"{0} soicind"}
                one{"{0} soicind"}
                other{"{0} soicind"}
                per{"{0} sa soicind"}
                two{"{0} shoicind"}
            }
            week{
                dnam{"seachtainí"}
                few{"{0} seachtaine"}
                many{"{0} seachtaine"}
                one{"{0} seachtain"}
                other{"{0} seachtain"}
                two{"{0} sheachtain"}
            }
            year{
                dnam{"blianta"}
                few{"{0} bliana"}
                many{"{0} mbliana"}
                one{"{0} bhliain"}
                other{"{0} bliain"}
                two{"{0} bhliain"}
            }
        }
    }
    unitsNarrow{
        duration{
            day{
                dnam{"lá"}
                few{"{0}l"}
                many{"{0}l"}
                one{"{0}l"}
                other{"{0}l"}
                two{"{0}l"}
            }
            hour{
                dnam{"uair"}
                few{"{0}u"}
                many{"{0}u"}
                one{"{0}u"}
                other{"{0}u"}
                two{"{0}u"}
            }
            microsecond{
                few{"{0}μs"}
                many{"{0}μs"}
                one{"{0}μs"}
                other{"{0}μs"}
                two{"{0}μs"}
            }
            millisecond{
                dnam{"ms"}
                few{"{0}ms"}
                many{"{0}ms"}
                one{"{0}ms"}
                other{"{0}ms"}
                two{"{0}ms"}
            }
            minute{
                dnam{"nóim"}
                few{"{0}n"}
                many{"{0}n"}
                one{"{0}n"}
                other{"{0}n"}
                two{"{0}n"}
            }
            month{
                dnam{"mí"}
                few{"{0}m"}
                many{"{0}m"}
                one{"{0}m"}
                other{"{0}m"}
                two{"{0}m"}
            }
            nanosecond{
                few{"{0}ns"}
                many{"{0}ns"}
                one{"{0}ns"}
                other{"{0}ns"}
                two{"{0}ns"}
            }
            second{
                dnam{"soic"}
                few{"{0}s"}
                many{"{0}s"}
                one{"{0}s"}
                other{"{0}s"}
                two{"{0}s"}
            }
            week{
                dnam{"scht"}
                few{"{0}s"}
                many{"{0}s"}
                one{"{0}s"}
                other{"{0}s"}
                two{"{0}s"}
            }
            year{
                dnam{"bl"}
                few{"{0}b"}
                many{"{0}b"}
                one{"{0}b"}
                other{"{0}b"}
                two{"{0}b"}
            }
        }
    }
    unitsShort{
        duration{
            day{
                dnam{"lá"}
                few{"{0} lá"}
                many{"{0} lá"}
                one{"{0} lá"}
                other{"{0} lá"}
                two{"{0} lá"}
            }
            hour{
                dnam{"uair"}
                few{"{0} u"}
                many{"{0} u"}
                one{"{0} u"}
                other{"{0} u"}
                per{"{0}/u"}
                two{"{0} u"}
            }
            microsecond{
                dnam{"μs"}
                few{"{0} μs"}
                many{"{0} μs"}
                one{"{0} μs"}
                other{"{0} μs"}
                two{"{0} μs"}
            }
            millisecond{
                dnam{"msoic"}
                few{"{0} ms"}
                many{"{0} ms"}
                one{"{0} ms"}
                other{"{0} ms"}
                two{"{0} ms"}
            }
            minute{
                dnam{"nóim"}
                few{"{0} nóim"}
                many{"{0} nóim"}
                one{"{0} nóim"}
                other{"{0} nóim"}
                two{"{0} nóim"}
            }
            month{
                dnam{"míonna"}
                few{"{0} mhí"}
                many{"{0} mí"}
                one{"{0} mhí"}
                other{"{0} mí"}
                two{"{0} mhí"}
            }
            nanosecond{
                dnam{"ns"}
                few{"{0} ns"}
                many{"{0} ns"}
                one{"{0} ns"}
                other{"{0} ns"}
                two{"{0} ns"}
            }
            second{
                dnam{"soic"}
                few{"{0} shoic"}
                many{"{0} soic"}
                one{"{0} soic"}
                other{"{0} soic"}
                per{"{0}/s"}
                two{"{0} shoic"}
            }
            week{
                dnam{"scht"}
                few{"{0} scht"}
                many{"{0} scht"}
                one{"{0} scht"}
                other{"{0} scht"}
                two{"{0} scht"}
            }
            year{
                dnam{"blianta"}
                few{"{0} bl"}
                many{"{0} mbl"}
                one{"{0} bhl"}
                other{"{0} bl"}
                two{"{0} bhl"}
            }
        }
    }
}
