﻿// ***************************************************************************
// *
// * 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/az.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/az.xml
 */
az{
    AuxExemplarCharacters{"[w]"}
    ExemplarCharacters{"[a b c ç d e ə f g ğ h x ı i {i\u0307} j k q l m n o ö p r s ş t u ü v y z]"}
    ExemplarCharactersIndex{"[A B C Ç D E Ə F G Ğ H X I İ J K Q L M N O Ö P R S Ş T U Ü V W Y Z]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        ",",
        ".",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "‰",
        "∞",
        "NaN",
        "+",
    }
    NumberPatterns{
        "#,##0.###",
        "¤ #,##0.00",
        "#,##0%",
        "#E0",
    }
    Version{"2.0.47.53"}
    calendar{
        gregorian{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, d, MMMM, y",
                "d MMMM , y",
                "d MMM, y",
                "yyyy-MM-dd",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            dayNames{
                format{
                    abbreviated{
                        "B.",
                        "B.E.",
                        "Ç.A.",
                        "Ç.",
                        "C.A.",
                        "C",
                        "Ş.",
                    }
                    wide{
                        "bazar",
                        "bazar ertəsi",
                        "çərşənbə axşamı",
                        "çərşənbə",
                        "cümə axşamı",
                        "cümə",
                        "şənbə",
                    }
                }
                stand-alone{
                    narrow{
                        "7",
                        "1",
                        "2",
                        "3",
                        "4",
                        "5",
                        "6",
                    }
                }
            }
            eras{
                abbreviated{
                    "e.ə.",
                    "b.e.",
                }
                wide{
                    "eramızdan əvvəl",
                    "bizim eramızın",
                }
            }
            fields{
                day{
                    dn{"bu gün"}
                    relative{
                        "-1"{"dünən"}
                        "-3"{"üç gün əvvəl"}
                        "0"{"bu gün"}
                        "1"{"sabah"}
                        "3"{"üç gün sonra"}
                    }
                }
                era{
                    dn{"era"}
                }
                hour{
                    dn{"saat"}
                }
                minute{
                    dn{"dəqiqə"}
                }
                month{
                    dn{"ay"}
                }
                second{
                    dn{"saniyə"}
                }
                week{
                    dn{"həftə"}
                }
                weekday{
                    dn{"həftə günü"}
                }
                year{
                    dn{"il"}
                }
                zone{
                    dn{"zona"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "yan",
                        "fev",
                        "mar",
                        "apr",
                        "may",
                        "iyn",
                        "iyl",
                        "avq",
                        "sen",
                        "okt",
                        "noy",
                        "dek",
                    }
                    wide{
                        "Yanvar",
                        "Fevral",
                        "Mart",
                        "Aprel",
                        "May",
                        "İyun",
                        "İyul",
                        "Avqust",
                        "Sentyabr",
                        "Oktyabr",
                        "Noyabr",
                        "Dekabr",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "1-ci kv.",
                        "2-ci kv.",
                        "3-cü kv.",
                        "4-cü kv.",
                    }
                    wide{
                        "1-ci kvartal",
                        "2-ci kvartal",
                        "3-cü kvartal",
                        "4-cü kvartal",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‘"}
        quotationEnd{"”"}
        quotationStart{"“"}
    }
    measurementSystemNames{
        US{"ABŞ"}
        metric{"metr"}
    }
    units{
        day{
            other{"{0} gün"}
        }
        hour{
            other{"{0} saat"}
        }
        minute{
            other{"{0} dəqiqə"}
        }
        month{
            other{"{0} ay"}
        }
        second{
            other{"{0} saniyə"}
        }
        week{
            other{"{0} həftə"}
        }
        year{
            other{"{0} il"}
        }
    }
}
