﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/fil.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/fil.xml
 */
fil{
    Keys{
        calendar{"Kalendaryo"}
        colAlternate{"Pag-uuri-uri ng Mga Ignore Symbol"}
        colBackwards{"Pag-uuri-uri ng Baliktad na Accent"}
        colCaseFirst{"Uppercase/Lowercase na Pagsusunud-sunod"}
        colCaseLevel{"Case Sensitive na Pag-uuri-uri"}
        colHiraganaQuaternary{"Pag-uuri-uri ng Kana"}
        colNormalization{"Normalized na Pag-uuri-uri"}
        colNumeric{"Numeric na Pag-uuri-uri"}
        colStrength{"Lakas ng Pag-uuri-uri"}
        collation{"Pagkakasunud-sunod ng Ayos"}
        currency{"Pera"}
        numbers{"Mga Numero"}
        timezone{"Time Zone"}
        va{"Lokal na Variant"}
        variableTop{"Pag-uri-uriin Bilang Mga Simbolo"}
        x{"Pribadong Paggamit"}
    }
    Languages{
        ab{"Abkhazian"}
        ach{"Acoli"}
        af{"Afrikaans"}
        agq{"Aghem"}
        ak{"Akan"}
        am{"Amharic"}
        ar{"Arabe"}
        ar_001{"Modernong Karaniwang Arabe"}
        arn{"Mapuche"}
        as{"Assamese"}
        asa{"Asu"}
        ay{"Aymara"}
        az{"Azerbaijani"}
        ba{"Bashkir"}
        be{"Belarusian"}
        bem{"Bemba"}
        bez{"Bena"}
        bg{"Bulgarian"}
        bm{"Bambara"}
        bn{"Bengali"}
        bo{"Tibetan"}
        br{"Breton"}
        brx{"Bodo"}
        bs{"Bosnian"}
        ca{"Catalan"}
        cgg{"Chiga"}
        chr{"Cherokee"}
        ckb{"Sorani Kurdish"}
        co{"Corsican"}
        cs{"Czech"}
        cy{"Welsh"}
        da{"Danish"}
        dav{"Taita"}
        de{"German"}
        dje{"Zarma"}
        dsb{"Lower Sorbian"}
        dua{"Duala"}
        dv{"Divehi"}
        dyo{"Jola-Fonyi"}
        dz{"Dzongkha"}
        ebu{"Embu"}
        ee{"Ewe"}
        efi{"Efik"}
        el{"Greek"}
        en{"Ingles"}
        en_AU{"Ingles ng Australya"}
        en_CA{"Ingles sa Canada"}
        en_GB{"Ingles (UK)"}
        en_US{"Ingles (US)"}
        eo{"Esperanto"}
        es{"Spanish"}
        es_419{"Latin American Spanish"}
        es_ES{"European Spanish"}
        es_MX{"Mexican Spanish"}
        et{"Estonian"}
        eu{"Basque"}
        fa{"Persian"}
        fi{"Finnish"}
        fil{"Filipino"}
        fj{"Fijian"}
        fo{"Faroese"}
        fr{"French"}
        fr_CA{"Canadian French"}
        fr_CH{"Swiss French"}
        fy{"Western Frisian"}
        ga{"Irish"}
        gaa{"Ga"}
        gag{"Gagauz"}
        gd{"Scots Gaelic"}
        gl{"Galician"}
        gn{"Guarani"}
        gsw{"Swiss German"}
        gu{"Gujarati"}
        guz{"Gusii"}
        gv{"Manx"}
        ha{"Hausa"}
        haw{"Hawaiian"}
        he{"Hebrew"}
        hi{"Hindi"}
        hr{"Croatian"}
        hsb{"Upper Sorbian"}
        ht{"Haitian"}
        hu{"Hungarian"}
        hy{"Armenian"}
        ia{"Interlingua"}
        id{"Indonesian"}
        ie{"Interlingue"}
        ig{"Igbo"}
        ii{"Sichuan Yi"}
        is{"Icelandic"}
        it{"Italian"}
        iu{"Inuktitut"}
        ja{"Japanese"}
        jgo{"Ngomba"}
        jmc{"Machame"}
        jv{"Javanese"}
        ka{"Georgian"}
        kab{"Kabyle"}
        kam{"Kamba"}
        kde{"Makonde"}
        kea{"Kabuverdianu"}
        kg{"Kongo"}
        khq{"Koyra Chiini"}
        ki{"Kikuyu"}
        kk{"Kazakh"}
        kl{"Kalaallisut"}
        kln{"Kalenjin"}
        km{"Khmer"}
        kn{"Kannada"}
        ko{"Korean"}
        koi{"Komi-Permyak"}
        kok{"Konkani"}
        ks{"Kashmiri"}
        ksb{"Shambala"}
        ksf{"Bafia"}
        ku{"Kurdish"}
        kw{"Cornish"}
        ky{"Kirghiz"}
        la{"Latin"}
        lag{"Langi"}
        lb{"Luxembourgish"}
        lg{"Ganda"}
        lkt{"Lakota"}
        ln{"Lingala"}
        lo{"Lao"}
        loz{"Lozi"}
        lt{"Lithuanian"}
        lu{"Luba-Katanga"}
        lua{"Luba-Lulua"}
        luo{"Luo"}
        luy{"Luyia"}
        lv{"Latvian"}
        mas{"Masai"}
        mer{"Meru"}
        mfe{"Morisyen"}
        mg{"Malagasy"}
        mgh{"Makhuwa-Meetto"}
        mgo{"Meta’"}
        mi{"Maori"}
        mk{"Macedonian"}
        ml{"Malayalam"}
        mn{"Mongolian"}
        moh{"Mohawk"}
        mr{"Marathi"}
        ms{"Malay"}
        mt{"Maltese"}
        mua{"Mundang"}
        my{"Burmese"}
        naq{"Nama"}
        nb{"Norwegian Bokmal"}
        nd{"North Ndebele"}
        ne{"Nepali"}
        nl{"Dutch"}
        nl_BE{"Flemish"}
        nmg{"Kwasio"}
        nn{"Norwegian Nynorsk"}
        no{"Norwegian"}
        nqo{"N’Ko"}
        nso{"Northern Sotho"}
        nus{"Nuer"}
        ny{"Nyanja"}
        nyn{"Nyankole"}
        oc{"Occitan"}
        om{"Oromo"}
        or{"Oriya"}
        os{"Ossetic"}
        pa{"Punjabi"}
        pl{"Polish"}
        ps{"Pashto"}
        pt{"Portuges"}
        pt_BR{"Brazilian Portuguese"}
        pt_PT{"European Portuguese"}
        qu{"Quechua"}
        quc{"Kʼicheʼ"}
        rm{"Romansh"}
        rn{"Rundi"}
        ro{"Romanian"}
        ro_MD{"Moldavian"}
        rof{"Rombo"}
        ru{"Russian"}
        rw{"Kinyarwanda"}
        rwk{"Rwa"}
        sa{"Sanskrit"}
        saq{"Samburu"}
        sbp{"Sangu"}
        sd{"Sindhi"}
        se{"Northern Sami"}
        seh{"Sena"}
        ses{"Koyraboro Senni"}
        sg{"Sango"}
        sh{"Serbo-Croatian"}
        shi{"Tachelhit"}
        si{"Sinhala"}
        sk{"Slovak"}
        sl{"Slovenian"}
        sm{"Samoan"}
        sma{"Southern Sami"}
        smj{"Lule Sami"}
        smn{"Inari Sami"}
        sms{"Skolt Sami"}
        sn{"Shona"}
        so{"Somali"}
        sq{"Albanian"}
        sr{"Serbian"}
        ss{"Swati"}
        st{"Southern Sotho"}
        su{"Sundanese"}
        sv{"Swedish"}
        sw{"Swahili"}
        swb{"Comorian"}
        swc{"Swahili (Congo)"}
        ta{"Tamil"}
        te{"Telugu"}
        teo{"Teso"}
        tet{"Tetum"}
        tg{"Tajik"}
        th{"Thai"}
        ti{"Tigrinya"}
        tk{"Turkmen"}
        tlh{"Klingon"}
        tn{"Tswana"}
        to{"Tongan"}
        tpi{"Tok Pisin"}
        tr{"Turkish"}
        ts{"Tsonga"}
        tt{"Tatar"}
        tum{"Tumbuka"}
        twq{"Tasawaq"}
        ty{"Tahitian"}
        tzm{"Tamazight ng Gitnang Atlas"}
        ug{"Uyghur"}
        uk{"Ukranian"}
        und{"Hindi Kilalang Wika"}
        ur{"Urdu"}
        uz{"Uzbek"}
        vai{"Vai"}
        ve{"Venda"}
        vi{"Vietnamese"}
        vun{"Vunjo"}
        wo{"Wolof"}
        xh{"Xhosa"}
        xog{"Soga"}
        yi{"Yiddish"}
        yo{"Yoruba"}
        yue{"Cantonese"}
        zgh{"Standard Moroccan Tamazight"}
        zh{"Chinese"}
        zh_Hans{"Simplified Chinese"}
        zu{"Zulu"}
        zxx{"Walang nilalaman na ukol sa wika"}
    }
    Languages%short{
        az{"Azeri"}
        en_GB{"Ingles (U.K.)"}
        en_US{"Ingles (U.S.)"}
    }
    Languages%variant{
        ps{"Pushto"}
        ug{"Uighur"}
    }
    Scripts{
        Arab{"Arabic"}
        Armn{"Armenian"}
        Beng{"Bengali"}
        Bopo{"Bopomofo"}
        Brai{"Braille"}
        Cyrl{"Cyrillic"}
        Deva{"Devanagari"}
        Ethi{"Ethiopic"}
        Geor{"Georgian"}
        Grek{"Greek"}
        Gujr{"Gujarati"}
        Guru{"Gurmukhi"}
        Hang{"Hangul"}
        Hani{"Han"}
        Hans{"Simplified"}
        Hant{"Traditional"}
        Hebr{"Hebrew"}
        Hira{"Hiragana"}
        Jpan{"Japanese"}
        Kana{"Katakana"}
        Khmr{"Khmer"}
        Knda{"Kannada"}
        Kore{"Korean"}
        Laoo{"Lao"}
        Latn{"Latin"}
        Mlym{"Malayalam"}
        Mong{"Mongolian"}
        Mymr{"Myanmar"}
        Orya{"Oriya"}
        Sinh{"Sinhala"}
        Taml{"Tamil"}
        Telu{"Telugu"}
        Thaa{"Thaana"}
        Thai{"Thai"}
        Tibt{"Tibetan"}
        Zsym{"Mga Simbolo"}
        Zxxx{"Hindi Nakasulat"}
        Zyyy{"Karaniwan"}
        Zzzz{"Hindi Kilalang Script"}
    }
    Scripts%stand-alone{
        Hans{"Simplified Han"}
        Hant{"Traditional Han"}
    }
    Scripts%variant{
        Arab{"Perso-Arabic"}
    }
    Types{
        calendar{
            buddhist{"Kalendaryo ng Buddhist"}
            chinese{"Kalendaryong Chinese"}
            coptic{"Coptic Calendar"}
            dangi{"Dangi na Kalendaryo"}
            ethiopic{"Kalendaryo ng Ethiopia"}
            ethiopic-amete-alem{"Kalendaryong Ethiopic Amete Alem"}
            gregorian{"Gregorian na Kalendaryo"}
            hebrew{"Hebrew na Kalendaryo"}
            indian{"Pambansang Kalendaryong Indian"}
            islamic{"Kalendaryong Islamic"}
            islamic-civil{"Kalendaryong Islamic-Civil"}
            iso8601{"ISO-8601 na Kalendaryo"}
            japanese{"Kalendaryong Japanese"}
            persian{"Kalendaryong Persian"}
            roc{"Kalendaryong Minguo"}
        }
        colAlternate{
            non-ignorable{"Pag-uri-uriin ang Mga Simbolo"}
            shifted{"Pag-uri-uriin ang Mga Ignoring Symbol"}
        }
        colBackwards{
            no{"Pag-uri-uriin ang Mga Accent nang Normal"}
            yes{"Pag-uri-uriin ang Mga Accent nang Baliktad"}
        }
        colCaseFirst{
            lower{"Lowercase Muna ang Pag-uri-uriin"}
            no{"Pag-uri-uriin ang Ayos ng Normal na Case"}
            upper{"Uppercase Muna ang Pag-uri-uriin"}
        }
        colCaseLevel{
            no{"Pag-uri-uriin ang Hindi Case Sensitive"}
            yes{"Pag-uri-uriin ang Case Sensitive"}
        }
        colHiraganaQuaternary{
            no{"Pag-uri-uriin ang Kana nang Hiwalay"}
            yes{"Pag-uri-uriin ang Kana nang Naiiba"}
        }
        colNormalization{
            no{"Pag-uri-uriin nang Walang Pag-normalize"}
            yes{"Pag-uri-uriin ang Unicode nang Normalized"}
        }
        colNumeric{
            no{"Pag-uri-uriin ang Mga Digit nang Indibidwal"}
            yes{"Pag-uri-uriin ang Mga Digit nang Numerical"}
        }
        colStrength{
            identical{"Pag-uri-uriin Lahat"}
            primary{"Mga Base na Titik Lang ang Pag-uri-uriin"}
            quaternary{"Pag-uri-uriin ang Mga Accent/Case/Lapad/Kana"}
            secondary{"Pag-uri-uriin ang Mga Accent"}
            tertiary{"Pag-uri-uriin ang Mga Accent/Case/Lapad"}
        }
        collation{
            big5han{"Pagkakasunod-sunod ng Pag-uuri ng Tradisyunal na Chinese - Big5"}
            dictionary{"Pagkakasunud-sunod ng Pag-uuri ng Diksyunaryo"}
            ducet{"Default na Pagkakasunud-sunod ng Ayos ng Unicode"}
            gb2312han{"Pagkakasunud-sunod ng Pag-uuri ng Pinasimpleng Chinese - GB2312"}
            phonebook{"Pagkakasunud-sunod ng Pag-uuri ng Phonebook"}
            phonetic{"Phonetic na Ayos ng Pag-uuri-uri"}
            pinyin{"Pagkakasunud-sunod ng Pag-uuri ng Pinyin"}
            reformed{"Pagkakasunud-sunod ng Pag-uuri ng Na-reform"}
            search{"Pangkalahatang Paghahanap"}
            searchjl{"Maghanap Ayon sa Unang Katinig ng Hangul"}
            standard{"Karaniwang Pagkakasunud-sunod ng Ayos"}
            stroke{"Pagkakasunud-sunod ng Pag-uuri ng Stroke"}
            traditional{"Tradisyunal na Pagkakasunud-sunod ng Pag-uuri"}
            unihan{"Pagkakasunud-sunod ng Pag-uuri ng Radical-Stroke"}
        }
        numbers{
            arab{"Arabic-Indic na Mga Digit"}
            arabext{"Extendend Arabic-Indic na Mga Digit"}
            armn{"Armenian na Mga Numeral"}
            armnlow{"Armenian Lowercase Numerals"}
            beng{"Bengali na Mga Digit"}
            deva{"Devanagari na Mga Digit"}
            ethi{"Mga Numeral ng Ethiopia"}
            finance{"Mga Pampinansyang Numeral"}
            fullwide{"Full Width Digits"}
            geor{"Georgian na Mga Numeral"}
            grek{"Greek na Mga Numeral"}
            greklow{"Greek Lowercase Numerals"}
            gujr{"Gujarati na Mga Digit"}
            guru{"Gurmukhi na Mga Digit"}
            hanidec{"Chinese Decimal na Mga Numeral"}
            hans{"Simplified Chinese na Mga Numeral"}
            hansfin{"Simplified Chinese na Mga Numeral para sa Pananalapi"}
            hant{"Traditional Chinese na Mga Numeral"}
            hantfin{"Traditional Chinese na Mga Numeral para sa Pananalapi"}
            hebr{"Hebrew na Mga Numeral"}
            jpan{"Japanese na Mga Numeral"}
            jpanfin{"Japanese na Mga Numeral para sa Pananalapi"}
            khmr{"Khmer na Mga Digit"}
            knda{"Kannada na Mga Digit"}
            laoo{"Lao na Mga Digit"}
            latn{"Western Digits"}
            mlym{"Malayalam na Mga Digit"}
            mong{"Mongolian Digits"}
            mymr{"Myanmar na Mga Digit"}
            native{"Mga Native na Digit"}
            orya{"Oriya na Mga Digit"}
            roman{"Mga Roman Numeral"}
            romanlow{"Roman Lowercase Numerals"}
            taml{"Tamil na Mga Numeral"}
            tamldec{"Tamil na Mga Digit"}
            telu{"Telugu na Mga Digit"}
            thai{"Thai na Mga Digit"}
            tibt{"Tibetan na Mga Digit"}
            traditional{"Mga Tradisyunal na Numeral"}
            vaii{"Mga Vai na Digit"}
        }
    }
    Variants{
        PINYIN{"Pinyin Romanization"}
        WADEGILE{"Wade-Giles Romanization"}
    }
    Version{"2.1.12.94"}
    codePatterns{
        language{"Wika: {0}"}
        script{"Script: {0}"}
        territory{"Rehiyon: {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
