﻿// ***************************************************************************
// *
// * Copyright (C) 2010 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{
        ",",
        ".",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "‰",
        "∞",
        "NaN",
        "+",
    }
    NumberPatterns{
        "#,##0.###",
        "#,##0.00 ¤",
        "#,##0%",
        "#E0",
    }
    Version{"2.0.48.64"}
    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{
                d{"d"}
                yyQ{"Q yy"}
            }
            dayNames{
                format{
                    abbreviated{
                        "ig",
                        "al",
                        "as",
                        "az",
                        "og",
                        "or",
                        "lr",
                    }
                    wide{
                        "igandea",
                        "astelehena",
                        "asteartea",
                        "asteazkena",
                        "osteguna",
                        "ostirala",
                        "larunbata",
                    }
                }
            }
            fields{
                day{
                    relative{
                        "0"{"Gaur"}
                        "1"{"Bihar"}
                    }
                }
            }
            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",
                    }
                    wide{
                        "1. hiruhilekoa",
                        "2. hiruhilekoa",
                        "3. hiruhilekoa",
                        "4. hiruhilekoa",
                    }
                }
            }
        }
        roc{
            eras{
                abbreviated{
                    "R.O.C. aurretik",
                    "R.O.C.",
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‘"}
        quotationEnd{"”"}
        quotationStart{"“"}
    }
    measurementSystemNames{
        US{"US"}
        metric{"Metriko"}
    }
    units{
        day{
            one{"{0} eguna"}
            other{"{0} egun"}
        }
        hour{
            one{"{0} ordua"}
            other{"{0} h"}
        }
        minute{
            one{"{0} minutu"}
            other{"{0} minutu"}
        }
        month{
            one{"{0} hilea"}
        }
        second{
            one{"{0} segundo"}
            other{"{0} s"}
        }
        week{
            one{"{0} aste"}
            other{"{0} aste"}
        }
        year{
            one{"{0} urtea"}
            other{"{0} urte"}
        }
    }
}
