﻿// ***************************************************************************
// *
// * Copyright (C) 2009 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/ii.xml
// *
// ***************************************************************************
/**
 *  ICU <specials > source: <path>/xml/main/ii.xml
 */
ii{
    Countries{
        BR{"ꀠꑭ"}
        CN{"ꍏꇩ"}
        DE{"ꄓꇩ"}
        FR{"ꃔꇩ"}
        GB{"ꑱꇩ"}
        IN{"ꑴꄗ"}
        IT{"ꑴꄊꆺ"}
        JP{"ꏝꀪ"}
        RU{"ꊉꇆꌦ"}
        US{"ꂰꇩ"}
        ZZ{"ꃅꄷꅉꀋꐚꌠ"}
    }
    Currencies{
        XXX{
            "XXX",
            "ꅉꀋꐚꌠꌋꆀꎆꃀꀋꈁꀐꌠ",
        }
    }
    ExemplarCharacters{"[ꀀ-ꒌ]"}
    Languages{
        de{"ꄓꇩꉙ"}
        en{"ꑱꇩꉙ"}
        es{"ꑭꀠꑸꉙ"}
        fr{"ꃔꇩꉙ"}
        ii{"ꆈꌠꉙ"}
        it{"ꑴꄊꆺꉙ"}
        ja{"ꏝꀪꉙ"}
        pt{"ꁍꄨꑸꉙ"}
        pt_BR{"ꀠꑟꁍꄨꑸꉙ"}
        ru{"ꊉꇩꉙ"}
        und{"ꅉꀋꌠꅇꂷ"}
        zh{"ꍏꇩꉙ"}
        zh_Hans{"ꈝꐯꍏꇩꉙ"}
        zh_Hant{"ꀎꋏꍏꇩꉙ"}
    }
    LocaleScript{
        "Yiii",
    }
    NumberElements{
        ".",
        ",",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "‰",
        "∞",
        "NaN",
        "+",
    }
    Scripts{
        Arab{"ꀊꇁꀨꁱꂷ"}
        Cyrl{"ꀊꆨꌦꇁꃚꁱꂷ"}
        Hans{"ꈝꐯꉌꈲꁱꂷ"}
        Hant{"ꀎꋏꉌꈲꁱꂷ"}
        Latn{"ꇁꄀꁱꂷ"}
        Yiii{"ꆈꌠꁱꂷ"}
        Zxxx{"ꁱꀋꉆꌠ"}
        Zzzz{"ꅉꀋꐚꌠꁱꂷ"}
    }
    Types{
        calendar{
            gregorian{"ꄉꉻꃅꑍ"}
            islamic{"ꑳꌦꇂꑍꉖ"}
        }
    }
    Version{"2.0.42.82"}
    calendar{
        gregorian{
            AmPmMarkers{
                "ꎸꄑ",
                "ꁯꋒ",
            }
            dayNames{
                format{
                    abbreviated{
                        "ꆏꑍ",
                        "ꆏꋍ",
                        "ꆏꑍ",
                        "ꆏꌕ",
                        "ꆏꇖ",
                        "ꆏꉬ",
                        "ꆏꃘ",
                    }
                    wide{
                        "ꑭꆏꑍ",
                        "ꆏꊂꋍ",
                        "ꆏꊂꑍ",
                        "ꆏꊂꌕ",
                        "ꆏꊂꇖ",
                        "ꆏꊂꉬ",
                        "ꆏꊂꃘ",
                    }
                }
                stand-alone{
                    narrow{
                        "ꆏ",
                        "ꋍ",
                        "ꑍ",
                        "ꌕ",
                        "ꇖ",
                        "6",
                        "ꃘ",
                    }
                }
            }
            eras{
                abbreviated{
                    "ꃅꋊꂿ",
                    "ꃅꋊꊂ",
                }
            }
            fields{
                day{
                    dn{"ꑍ"}
                    relative{
                        "-1"{"ꀋꅔꉈ"}
                        "-2"{"ꎴꂿꋍꑍ"}
                        "0"{"ꀃꑍ"}
                        "1"{"ꃆꏂꑍ"}
                        "2"{"ꌕꀿꑍ"}
                    }
                }
                dayperiod{
                    dn{"ꎸꄑ/ꁯꋒ"}
                }
                era{
                    dn{"ꃅꋊ"}
                }
                hour{
                    dn{"ꄮꈉ"}
                }
                minute{
                    dn{"ꃏ"}
                }
                month{
                    dn{"ꆪ"}
                }
                second{
                    dn{"ꇙ"}
                }
                week{
                    dn{"ꑭꆏ"}
                }
                weekday{
                    dn{"ꆏꑍ"}
                }
                year{
                    dn{"ꈎ"}
                }
                zone{
                    dn{"ꃅꄷꄮꈉ"}
                }
            }
            monthNames{
                format{
                    wide{
                        "ꋍꆪ",
                        "ꑍꆪ",
                        "ꌕꆪ",
                        "ꇖꆪ",
                        "ꉬꆪ",
                        "ꃘꆪ",
                        "ꏃꆪ",
                        "ꉆꆪ",
                        "ꈬꆪ",
                        "10",
                        "ꊰꊪꆪ",
                        "ꊰꑋꆪ",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "ꃅꑌ",
                        "ꃅꎸ",
                        "ꃅꍵ",
                        "Q4",
                    }
                    wide{
                        "ꃅꑌ",
                        "ꃅꎸ",
                        "Q3",
                        "Q4",
                    }
                }
                stand-alone{
                    narrow{
                        "1",
                        "2",
                        "3",
                        "4",
                    }
                }
            }
        }
    }
    codePatterns{
        language{"ꅇꉙ: {0}"}
        script{"ꇇꁱ: {0}"}
        territory{"ꃅꄷ: {0}"}
    }
    measurementSystemNames{
        US{"ꂰꇩ"}
        metric{"ꂰꌬꌠ"}
    }
    zoneStrings{
        "Etc:Unknown"{
            ec{"ꅉꀋꐚꌠ"}
        }
    }
}
