﻿// ***************************************************************************
// *
// * Copyright (C) 2011 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.57.98"}
    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{
                EEEd{"EEE d"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"EEE 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{"EEE d/M/y"}
                yMMM{"MMM y"}
                yMMMEd{"EEE 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{"'"}
    }
}
