﻿// ***************************************************************************
// *
// * 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.62.5"}
    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{"'"}
    }
}
