﻿// ***************************************************************************
// *
// * Copyright (C) 2016 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/ln.xml
// *
// ***************************************************************************
ln{
    AuxExemplarCharacters{"[j q x]"}
    ExemplarCharacters{
        "[a á â ǎ b c d e é ê ě ɛ {ɛ\u0301} {ɛ\u0302} {ɛ\u030C} f g {gb} h i í î ǐ k "
        "l m {mb} {mp} n {nd} {ng} {nk} {ns} {nt} {ny} {nz} o ó ô ǒ ɔ {ɔ\u0301} {ɔ"
        "\u0302} {ɔ\u030C} p r s t u ú v w y z]"
    }
    ExemplarCharactersIndex{
        "[A B C D E Ɛ F G {Gb} H I K L M {Mb} {Mp} N {Nd} {Ng} {Nk} {Ns} {Nt} {Ny} {N"
        "z} O Ɔ P R S T U V W Y Z]"
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00 ¤"}
                decimalFormat{"#,##0.###"}
            }
            symbols{
                decimal{","}
                group{"."}
            }
        }
    }
    Version{"2.1.23.7"}
    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{
                Ed{"E d"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E d/M"}
                MMM{"LLL"}
                MMMEd{"E d MMM"}
                MMMd{"d MMM"}
                Md{"d/M"}
                d{"d"}
                hm{"h:mm a"}
                hms{"h:mm:ss a"}
                ms{"m:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"E d/M/y"}
                yMMM{"MMM y"}
                yMMMEd{"E d MMM y"}
                yMMMd{"d MMM y"}
                yMd{"d/M/y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
        }
        gregorian{
            AmPmMarkers{
                "ntɔ́ngɔ́",
                "mpókwa",
            }
            AmPmMarkersAbbr{
                "ntɔ́ngɔ́",
                "mpókwa",
            }
            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{
                Ed{"E d"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E d/M"}
                MMM{"LLL"}
                MMMEd{"E d MMM"}
                MMMd{"d MMM"}
                Md{"d/M"}
                d{"d"}
                hm{"h:mm a"}
                hms{"h:mm:ss a"}
                ms{"m:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"E d/M/y"}
                yMMM{"MMM y"}
                yMMMEd{"E d MMM y"}
                yMMMd{"d MMM y"}
                yMd{"d/M/y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "eye",
                        "ybo",
                        "mbl",
                        "mst",
                        "min",
                        "mtn",
                        "mps",
                    }
                    wide{
                        "eyenga",
                        "mokɔlɔ mwa yambo",
                        "mokɔlɔ mwa míbalé",
                        "mokɔlɔ mwa mísáto",
                        "mokɔlɔ ya mínéi",
                        "mokɔlɔ ya mítáno",
                        "mpɔ́sɔ",
                    }
                }
                stand-alone{
                    narrow{
                        "e",
                        "y",
                        "m",
                        "m",
                        "m",
                        "m",
                        "p",
                    }
                }
            }
            eras{
                abbreviated{
                    "libóso ya",
                    "nsima ya Y",
                }
                wide{
                    "Yambo ya Yézu Krís",
                    "Nsima ya Yézu Krís",
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "yan",
                        "fbl",
                        "msi",
                        "apl",
                        "mai",
                        "yun",
                        "yul",
                        "agt",
                        "stb",
                        "ɔtb",
                        "nvb",
                        "dsb",
                    }
                    wide{
                        "sánzá ya yambo",
                        "sánzá ya míbalé",
                        "sánzá ya mísáto",
                        "sánzá ya mínei",
                        "sánzá ya mítáno",
                        "sánzá ya motóbá",
                        "sánzá ya nsambo",
                        "sánzá ya mwambe",
                        "sánzá ya libwa",
                        "sánzá ya zómi",
                        "sánzá ya zómi na mɔ̌kɔ́",
                        "sánzá ya zómi na míbalé",
                    }
                }
                stand-alone{
                    narrow{
                        "y",
                        "f",
                        "m",
                        "a",
                        "m",
                        "y",
                        "y",
                        "a",
                        "s",
                        "ɔ",
                        "n",
                        "d",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "SM1",
                        "SM2",
                        "SM3",
                        "SM4",
                    }
                    wide{
                        "sánzá mísáto ya yambo",
                        "sánzá mísáto ya míbalé",
                        "sánzá mísáto ya mísáto",
                        "sánzá mísáto ya mínei",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"’"}
        alternateQuotationStart{"‘"}
        quotationEnd{"”"}
        quotationStart{"“"}
    }
    fields{
        day{
            dn{"Mokɔlɔ"}
            relative{
                "-1"{"Lóbi elékí"}
                "0"{"Lɛlɔ́"}
                "1"{"Lóbi ekoyâ"}
            }
        }
        dayperiod{
            dn{"Eleko ya mokɔlɔ"}
        }
        era{
            dn{"Ntángo"}
        }
        hour{
            dn{"Ngonga"}
        }
        minute{
            dn{"Monúti"}
        }
        month{
            dn{"Sánzá"}
        }
        second{
            dn{"Sɛkɔ́ndɛ"}
        }
        week{
            dn{"Pɔ́sɔ"}
        }
        weekday{
            dn{"Mokɔlɔ ya pɔ́sɔ"}
        }
        year{
            dn{"Mobú"}
        }
        zone{
            dn{"Ntáká ya ngonga"}
        }
    }
}
