﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/ses.xml
// *
// ***************************************************************************
ses{
    AuxExemplarCharacters{"[v]"}
    ExemplarCharacters{"[a ã b c d e ẽ f g h i j k l m n ɲ ŋ o õ p q r s š t u 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 W X Y Z Ž]"}
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00¤"}
            }
            symbols{
                group{" "}
            }
        }
    }
    Version{"2.1.19.14"}
    calendar{
        generic{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d MMMM y G",
                "d MMMM y G",
                "d MMM, y G",
                "d/M/y GGGGG",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                M{"M"}
                MMM{"MMM"}
                MMMEd{"E d MMM"}
                MMMMEd{"E d MMMM"}
                MMMMd{"d MMMM"}
                MMMd{"d MMM"}
                MMd{"d/MM"}
                MMdd{"dd/MM"}
                Md{"d/M"}
                ms{"m:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"E d/M/y"}
                yMM{"MM/y"}
                yMMM{"MMM y"}
                yMMMEd{"E d MMM y"}
                yMMMM{"MMMM y"}
                yMMMd{"d MMM y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
        }
        gregorian{
            AmPmMarkers{
                "Adduha",
                "Aluula",
            }
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d MMMM y",
                "d MMMM y",
                "d MMM, y",
                "d/M/y",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                M{"M"}
                MMM{"MMM"}
                MMMEd{"E d MMM"}
                MMMMEd{"E d MMMM"}
                MMMMd{"d MMMM"}
                MMMd{"d MMM"}
                MMd{"d/MM"}
                MMdd{"dd/MM"}
                Md{"d/M"}
                ms{"m:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"E d/M/y"}
                yMM{"MM/y"}
                yMMM{"MMM y"}
                yMMMEd{"E d MMM y"}
                yMMMM{"MMMM y"}
                yMMMd{"d MMM y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "Alh",
                        "Ati",
                        "Ata",
                        "Ala",
                        "Alm",
                        "Alz",
                        "Asi",
                    }
                    wide{
                        "Alhadi",
                        "Atinni",
                        "Atalaata",
                        "Alarba",
                        "Alhamiisa",
                        "Alzuma",
                        "Asibti",
                    }
                }
                stand-alone{
                    narrow{
                        "H",
                        "T",
                        "T",
                        "L",
                        "L",
                        "L",
                        "S",
                    }
                }
            }
            eras{
                abbreviated{
                    "IJ",
                    "IZ",
                }
                wide{
                    "Isaa jine",
                    "Isaa zamanoo",
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Žan",
                        "Fee",
                        "Mar",
                        "Awi",
                        "Me",
                        "Žuw",
                        "Žuy",
                        "Ut",
                        "Sek",
                        "Okt",
                        "Noo",
                        "Dee",
                    }
                    wide{
                        "Žanwiye",
                        "Feewiriye",
                        "Marsi",
                        "Awiril",
                        "Me",
                        "Žuweŋ",
                        "Žuyye",
                        "Ut",
                        "Sektanbur",
                        "Oktoobur",
                        "Noowanbur",
                        "Deesanbur",
                    }
                }
                stand-alone{
                    narrow{
                        "Ž",
                        "F",
                        "M",
                        "A",
                        "M",
                        "Ž",
                        "Ž",
                        "U",
                        "S",
                        "O",
                        "N",
                        "D",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "A1",
                        "A2",
                        "A3",
                        "A4",
                    }
                    wide{
                        "Arrubu 1",
                        "Arrubu 2",
                        "Arrubu 3",
                        "Arrubu 4",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‘"}
        quotationEnd{"”"}
        quotationStart{"“"}
    }
    fields{
        day{
            dn{"Zaari"}
            relative{
                "-1"{"Bi"}
                "0"{"Hõo"}
                "1"{"Suba"}
            }
        }
        dayperiod{
            dn{"Adduha wala Aluula"}
        }
        era{
            dn{"Zaman"}
        }
        hour{
            dn{"Guuru"}
        }
        minute{
            dn{"Miniti"}
        }
        month{
            dn{"Handu"}
        }
        second{
            dn{"Miti"}
        }
        week{
            dn{"Hebu"}
        }
        year{
            dn{"Jiiri"}
        }
        zone{
            dn{"Leerazuu"}
        }
    }
}
