﻿// ***************************************************************************
// *
// * Copyright (C) 2011 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/eu.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/eu.xml
 */
eu{
    AuxExemplarCharacters{"[]"}
    ExemplarCharacters{"[a b c ç d e f g h i j k l m n ñ o p q r s t u v w x y z]"}
    ExemplarCharactersCurrency{"[a b c d e f g h i j k l m n o p q r s t u v w x y z]"}
    ExemplarCharactersIndex{"[A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00 ¤"}
                decimalFormat{"#,##0.###"}
                scientificFormat{"#E0"}
            }
            symbols{
                decimal{","}
                exponential{"E"}
                group{"."}
                infinity{"∞"}
                list{";"}
                minusSign{"-"}
                nan{"NaN"}
                perMille{"‰"}
                percentSign{"%"}
                plusSign{"+"}
            }
        }
    }
    Version{"2.0.59.53"}
    calendar{
        buddhist{
            eras{
                abbreviated{
                    "BG",
                }
            }
        }
        gregorian{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, y'eko' MMMM'ren' dd'a'",
                "y'eko' MMM'ren' dd'a'",
                "y MMM d",
                "yyyy-MM-dd",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                MEd{"E, M/d"}
                MMMEd{"E, MMM d"}
                Md{"M/d"}
                d{"d"}
                yM{"M/y"}
                yMEd{"EEE, M/d/y"}
                yMMM{"MMM y"}
                yMMMEd{"EEE, MMM d, y"}
                yMMMd{"MMM d, y"}
                yMd{"M/d/y"}
                yQ{"Q y"}
                yQQQ{"QQQ y"}
                yyQ{"Q yy"}
            }
            dayNames{
                format{
                    abbreviated{
                        "ig",
                        "al",
                        "as",
                        "az",
                        "og",
                        "or",
                        "lr",
                    }
                    narrow{
                        "I",
                        "M",
                        "A",
                        "A",
                        "A",
                        "O",
                        "I",
                    }
                    wide{
                        "igandea",
                        "astelehena",
                        "asteartea",
                        "asteazkena",
                        "osteguna",
                        "ostirala",
                        "larunbata",
                    }
                }
                stand-alone{
                    narrow{
                        "I",
                        "M",
                        "A",
                        "L",
                        "A",
                        "O",
                        "I",
                    }
                }
            }
            eras{
                abbreviated{
                    "K.a.",
                    "K.o.",
                }
            }
            fields{
                day{
                    dn{"Eguna"}
                    relative{
                        "-1"{"Atzo"}
                        "-2"{"Herenegun"}
                        "0"{"Gaur"}
                        "1"{"Bihar"}
                        "2"{"Etzi"}
                    }
                }
                dayperiod{
                    dn{"AM//PM"}
                }
                era{
                    dn{"Aroa"}
                }
                hour{
                    dn{"Ordua"}
                }
                minute{
                    dn{"Minutuak"}
                }
                month{
                    dn{"Hilabetea"}
                    relative{
                        "-1"{"Aurreko hilabetea"}
                        "0"{"Gauden hilabetea"}
                        "1"{"Hurrengo hilabetea"}
                    }
                }
                second{
                    dn{"Segundoak"}
                }
                week{
                    dn{"Astea"}
                    relative{
                        "-1"{"Aurreko astea"}
                        "0"{"Aste hau"}
                        "1"{"Hurrengo astea"}
                    }
                }
                weekday{
                    dn{"Asteguna"}
                }
                year{
                    dn{"Urtea"}
                    relative{
                        "-1"{"Aurreko urtea"}
                        "0"{"Aurten"}
                        "1"{"Hurrengo urtea"}
                    }
                }
                zone{
                    dn{"Ordu-eremua"}
                }
            }
            intervalFormats{
                MEd{
                    M{"E, M/d – E, M/d"}
                    d{"E, M/d – E, M/d"}
                }
                MMM{
                    M{"MMM–MMM"}
                }
                MMMEd{
                    M{"E, MMM d – E, MMM d"}
                    d{"E, MMM d – E, MMM d"}
                }
                MMMd{
                    M{"MMM d – MMM d"}
                    d{"MMM d–d"}
                }
                Md{
                    M{"M/d – M/d"}
                    d{"M/d – M/d"}
                }
                hm{
                    a{":h:mm a – h:mm a"}
                }
                yM{
                    M{"M/yy – M/yy"}
                    y{"M/yy – M/yy"}
                }
                yMEd{
                    M{"E, M/d/yy – E, M/d/yy"}
                    d{"E, M/d/yy – E, M/d/yy"}
                    y{"E, M/d/yy – E, M/d/yy"}
                }
                yMMM{
                    M{"MMM–MMM y"}
                    y{"MMM y – MMM y"}
                }
                yMMMEd{
                    M{"E, MMM d – E, MMM d, y"}
                    d{"E, MMM d – E, MMM d, y"}
                    y{"E, MMM d, y – E, MMM d, y"}
                }
                yMMMM{
                    M{"MMMM–MMMM y"}
                    y{"MMMM y – MMMM y"}
                }
                yMMMd{
                    M{"MMM d – MMM d, y"}
                    d{"MMM d–d, y"}
                    y{"MMM d, y – MMM d, y"}
                }
                yMd{
                    M{"M/d/yy – M/d/yy"}
                    d{"M/d/yy – M/d/yy"}
                    y{"M/d/yy – M/d/yy"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "urt",
                        "ots",
                        "mar",
                        "api",
                        "mai",
                        "eka",
                        "uzt",
                        "abu",
                        "ira",
                        "urr",
                        "aza",
                        "abe",
                    }
                    wide{
                        "urtarrila",
                        "otsaila",
                        "martxoa",
                        "apirila",
                        "maiatza",
                        "ekaina",
                        "uztaila",
                        "abuztua",
                        "iraila",
                        "urria",
                        "azaroa",
                        "abendua",
                    }
                }
                stand-alone{
                    narrow{
                        "U",
                        "O",
                        "M",
                        "A",
                        "M",
                        "E",
                        "U",
                        "A",
                        "I",
                        "U",
                        "A",
                        "A",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "1Hh",
                        "2Hh",
                        "3Hh",
                        "4Hh",
                    }
                    narrow{
                        "1",
                        "2",
                        "3",
                        "4",
                    }
                    wide{
                        "1. hiruhilekoa",
                        "2. hiruhilekoa",
                        "3. hiruhilekoa",
                        "4. hiruhilekoa",
                    }
                }
            }
        }
        roc{
            eras{
                abbreviated{
                    "R.O.C. aurretik",
                    "R.O.C.",
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‘"}
        quotationEnd{"”"}
        quotationStart{"“"}
    }
    listPattern{
        standard{
            2{"{0} eta {1}"}
            end{"{0} eta {1}"}
        }
    }
    measurementSystemNames{
        US{"US"}
        metric{"Metriko"}
    }
    units{
        day{
            one{"{0} eguna"}
            other{"{0} egun"}
        }
        day-future{
            0{"0 egun barru"}
            1{"1 egun barru"}
            other{"{0} egun barru"}
        }
        day-past{
            0{"Duela 0 egun"}
            1{"Duela 1 egun"}
            other{"Duela {0} egun"}
        }
        hour{
            one{"{0} ordua"}
            other{"{0} h"}
        }
        hour-future{
            0{"0 ordu barru"}
            1{"1 ordu barru"}
            other{"{0} ordu barru"}
        }
        hour-past{
            0{"Duela 0 ordu"}
            1{"Duela ordubete"}
            other{"Duela {0} ordu"}
        }
        minute{
            one{"{0} minutu"}
            other{"{0} minutu"}
        }
        minute-future{
            0{"0 minutu barru"}
            1{"1 minutu barru"}
            other{"{0} minutu barru"}
        }
        minute-past{
            0{"Duela 0 minutu"}
            1{"Duela 1 minutu"}
            other{"Duela {0} minutu"}
        }
        month{
            0{"0 hilabete"}
            1{"1 hilabete"}
            one{"{0} hilea"}
            other{"{0} hilabete"}
        }
        month-future{
            0{"0 hilabete barru"}
            1{"1 hilabete barru"}
            other{"{0} hilabete barru"}
        }
        month-past{
            0{"Duela 0 hilabete"}
            1{"Duela 1 hilabete"}
            other{"Duela {0} hilabete"}
        }
        second{
            one{"{0} segundo"}
            other{"{0} s"}
        }
        second-future{
            0{"0 segundo barru"}
            1{"1 segundo barru"}
            other{"{0} segundo barru"}
        }
        second-past{
            0{"Duela 0 segundo"}
            1{"Duela 1 segundo"}
            other{"Duela {0} segundo"}
        }
        week{
            one{"{0} aste"}
            other{"{0} aste"}
        }
        week-future{
            0{"0 aste barru"}
            1{"1 aste barru"}
            other{"{0} aste barru"}
        }
        week-past{
            0{"Duela 0 aste"}
            1{"Duela 1 aste"}
            other{"Duela {0} aste"}
        }
        year{
            one{"{0} urtea"}
            other{"{0} urte"}
        }
        year-future{
            0{"0 urte barru"}
            1{"1 urte barru"}
            other{"{0} urte barru"}
        }
        year-past{
            0{"Duela 0 urte"}
            1{"Duela 1 urte"}
            other{"Duela {0} urte"}
        }
    }
    unitsShort{
        day{
            0{"0 egun"}
            1{"1 egun"}
            other{"{0} egun"}
        }
        hour{
            1{"1 ordu"}
            other{"{0} ordu"}
        }
        minute{
            1{"1 minutu"}
            other{"{0} minutu"}
        }
        month{
            0{"0 hilabete"}
            1{"1 hilabete"}
            other{"{0} hilabete"}
        }
        second{
            0{"0 seg."}
            1{"1 seg."}
            other{"{0} seg."}
        }
        week{
            0{"0 aste"}
            1{"1 aste"}
            other{"{0} aste"}
        }
        year{
            0{"0 urte"}
            1{"1 urte"}
            other{"{0} urte"}
        }
    }
}
