﻿// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
mi{
    Languages{
        de{"Tiamana"}
        de_AT{"Tiamana Atiria"}
        de_CH{"Tiamana Ōkawa Huiterangi"}
        en{"Ingarihi"}
        en_AU{"Ingarihi Ahitereiriana"}
        en_CA{"Ingarihi Kānata"}
        en_GB{"Ingarihi Piritene"}
        en_US{"Ingarihi Amerikana"}
        es{"Paniora"}
        es_419{"Paniora Amerika ki te Tonga"}
        es_ES{"Paniora Uropi"}
        es_MX{"Paniora Mēhikana"}
        fr{"Wīwī"}
        fr_CA{"Wīwī Kānata"}
        fr_CH{"Wīwī Huiterangi"}
        it{"Ītariana"}
        ja{"Hapanihi"}
        mi{"te reo Māori"}
        pt{"Pōtikī"}
        pt_BR{"Pōtikī Parahi"}
        pt_PT{"Pōtikī Uropi"}
        ru{"Ruhiana"}
        und{"Reo Tē Mōhiotia"}
        zh{"Hainamana"}
        zh_Hans{"Hainamana Māmā"}
        zh_Hant{"Hainamana Tukuiho"}
    }
    Languages%menu{
        zh{"Hainamana Manarini"}
    }
    Languages%short{
        en_GB{"Ingarihi UK"}
        en_US{"Ingarihi US"}
    }
    Scripts{
        Arab{"Arapika"}
        Cyrl{"Hīririki"}
        Hans{"Māmā"}
        Hant{"Tukuiho"}
        Latn{"Rātina"}
        Zxxx{"Tuhikore"}
        Zzzz{"Momotuhi Tē Mōhiotia"}
    }
    Scripts%stand-alone{
        Hans{"Hana Māmā"}
        Hant{"Hana Tukuiho"}
    }
    Types{
        calendar{
            gregorian{"Maramataka Pākehā"}
        }
        collation{
            standard{"Raupapa Kōmaka Arowhānui"}
        }
        numbers{
            latn{"Ngā Mati Pākehā"}
        }
    }
    Version{"38"}
    codePatterns{
        language{"Reo: {0}"}
        script{"Momotuhi: {0}"}
        territory{"Rohe: {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
