﻿// ***************************************************************************
// *
// * Copyright (C) 2012 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/ln.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/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]"
    }
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00 ¤"}
                decimalFormat{"#,##0.###"}
            }
            symbols{
                decimal{","}
                group{"."}
            }
        }
    }
    Version{"2.0.64.50"}
    calendar{
        gregorian{
            AmPmMarkers{
                "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/yyyy",
                "{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"}
                yQ{"Q y"}
                yQQQ{"QQQ 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",
                }
            }
            fields{
                day{
                    dn{"Mokɔlɔ"}
                    relative{
                        "-1"{"Lóbí"}
                        "0"{"Lɛlɔ́"}
                        "1"{"Lóbí"}
                    }
                }
                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"}
                }
            }
            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{"“"}
    }
}
