﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/ff.xml
// *
// ***************************************************************************
ff{
    AuxExemplarCharacters{"[q v x z]"}
    ExemplarCharacters{"[a b ɓ c d ɗ e f g h i j k l m n ñ ŋ o p r s t u w y ƴ]"}
    ExemplarCharactersIndex{"[A B Ɓ C D Ɗ E F G H I J K L M N Ñ Ŋ O P R S T U W Y Ƴ]"}
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00 ¤"}
            }
            symbols{
                decimal{","}
                group{" "}
            }
        }
    }
    Version{"2.1.7.39"}
    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{
                "subaka",
                "kikiiɗe",
            }
            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{
                        "dew",
                        "aaɓ",
                        "maw",
                        "nje",
                        "naa",
                        "mwd",
                        "hbi",
                    }
                    wide{
                        "dewo",
                        "aaɓnde",
                        "mawbaare",
                        "njeslaare",
                        "naasaande",
                        "mawnde",
                        "hoore-biir",
                    }
                }
                stand-alone{
                    narrow{
                        "d",
                        "a",
                        "m",
                        "n",
                        "n",
                        "m",
                        "h",
                    }
                }
            }
            eras{
                abbreviated{
                    "H-I",
                    "C-I",
                }
                wide{
                    "Hade Iisa",
                    "Caggal Iisa",
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "sii",
                        "col",
                        "mbo",
                        "see",
                        "duu",
                        "kor",
                        "mor",
                        "juk",
                        "slt",
                        "yar",
                        "jol",
                        "bow",
                    }
                    wide{
                        "siilo",
                        "colte",
                        "mbooy",
                        "seeɗto",
                        "duujal",
                        "korse",
                        "morso",
                        "juko",
                        "siilto",
                        "yarkomaa",
                        "jolal",
                        "bowte",
                    }
                }
                stand-alone{
                    narrow{
                        "s",
                        "c",
                        "m",
                        "s",
                        "d",
                        "k",
                        "m",
                        "j",
                        "s",
                        "y",
                        "j",
                        "b",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "T1",
                        "T2",
                        "T3",
                        "T4",
                    }
                    wide{
                        "Termes 1",
                        "Termes 2",
                        "Termes 3",
                        "Termes 4",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‚"}
        quotationEnd{"”"}
        quotationStart{"„"}
    }
    fields{
        day{
            dn{"Ñalnde"}
            relative{
                "-1"{"Haŋki"}
                "0"{"Hannde"}
                "1"{"Jaŋngo"}
            }
        }
        dayperiod{
            dn{"Sahnga"}
        }
        era{
            dn{"Jamaanu"}
        }
        hour{
            dn{"Waktu"}
        }
        minute{
            dn{"Hoƴom"}
        }
        month{
            dn{"Lewru"}
        }
        second{
            dn{"Majaango"}
        }
        week{
            dn{"Yontere"}
        }
        weekday{
            dn{"Ñalɗi yontere"}
        }
        year{
            dn{"Hitaande"}
        }
        zone{
            dn{"Diiwaan waktu"}
        }
    }
}
