﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/guz.xml
// *
// ***************************************************************************
guz{
    AuxExemplarCharacters{"[q x]"}
    ExemplarCharacters{"[a b c d e f g h i j k l m n o p r s t u v w y z]"}
    ExemplarCharactersIndex{"[A B C D E F G H I J K L M N O P R S T U V W Y Z]"}
    NumberElements{
        latn{
            patterns{
                accountingFormat{"¤#,##0.00;(¤#,##0.00)"}
                currencyFormat{"¤#,##0.00"}
            }
        }
    }
    Version{"2.1.7.39"}
    calendar{
        generic{
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, d MMMM y G",
                "d MMMM y G",
                "d MMM y G",
                "dd/MM/y GGGGG",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, M/d"}
                MMM{"LLL"}
                MMMEd{"E, MMM d"}
                MMMMEd{"E, MMMM d"}
                MMMMd{"MMMM d"}
                MMMd{"MMM d"}
                Md{"M/d"}
                d{"d"}
                hm{"h:mm a"}
                ms{"mm:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"E, M/d/y"}
                yMMM{"MMM y"}
                yMMMEd{"E, MMM d, y"}
                yMMMM{"MMMM y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
        }
        gregorian{
            AmPmMarkers{
                "Ma/Mo",
                "Mambia/Mog",
            }
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, d MMMM y",
                "d MMMM y",
                "d MMM y",
                "dd/MM/y",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, M/d"}
                MMM{"LLL"}
                MMMEd{"E, MMM d"}
                MMMMEd{"E, MMMM d"}
                MMMMd{"MMMM d"}
                MMMd{"MMM d"}
                Md{"M/d"}
                d{"d"}
                hm{"h:mm a"}
                ms{"mm:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"E, M/d/y"}
                yMMM{"MMM y"}
                yMMMEd{"E, MMM d, y"}
                yMMMM{"MMMM y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "Cpr",
                        "Ctt",
                        "Cmn",
                        "Cmt",
                        "Ars",
                        "Icm",
                        "Est",
                    }
                    wide{
                        "Chumapiri",
                        "Chumatato",
                        "Chumaine",
                        "Chumatano",
                        "Aramisi",
                        "Ichuma",
                        "Esabato",
                    }
                }
                stand-alone{
                    narrow{
                        "C",
                        "C",
                        "C",
                        "C",
                        "A",
                        "I",
                        "E",
                    }
                }
            }
            eras{
                abbreviated{
                    "YA",
                    "YK",
                }
                wide{
                    "Yeso ataiborwa",
                    "Yeso kaiboirwe",
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Can",
                        "Feb",
                        "Mac",
                        "Apr",
                        "Mei",
                        "Jun",
                        "Cul",
                        "Agt",
                        "Sep",
                        "Okt",
                        "Nob",
                        "Dis",
                    }
                    wide{
                        "Chanuari",
                        "Feburari",
                        "Machi",
                        "Apiriri",
                        "Mei",
                        "Juni",
                        "Chulai",
                        "Agosti",
                        "Septemba",
                        "Okitoba",
                        "Nobemba",
                        "Disemba",
                    }
                }
                stand-alone{
                    narrow{
                        "C",
                        "F",
                        "M",
                        "A",
                        "M",
                        "J",
                        "C",
                        "A",
                        "S",
                        "O",
                        "N",
                        "D",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "E1",
                        "E2",
                        "E3",
                        "E4",
                    }
                    wide{
                        "Erobo entang’ani",
                        "Erobo yakabere",
                        "Erobo yagatato",
                        "Erobo yakane",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‘"}
        quotationEnd{"”"}
        quotationStart{"“"}
    }
    fields{
        day{
            dn{"Rituko"}
            relative{
                "-1"{"Igoro"}
                "0"{"Rero"}
                "1"{"Mambia"}
            }
        }
        dayperiod{
            dn{"Mambia gose Morogoba"}
        }
        era{
            dn{"Ebiro"}
        }
        hour{
            dn{"Ensa"}
        }
        minute{
            dn{"Edakika"}
        }
        month{
            dn{"Omotienyi"}
        }
        second{
            dn{"Esekendi"}
        }
        week{
            dn{"Omokubio"}
        }
        weekday{
            dn{"Rituko r’ewiki"}
        }
        year{
            dn{"Omwaka"}
        }
        zone{
            dn{"Chinse ‘chimo"}
        }
    }
}
