﻿// ***************************************************************************
// *
// * 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
// *
// ***************************************************************************
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"}
        hc{"Siklo ng Oras (12 laban sa 24)"}
        lb{"Estilo ng Putol ng Linya"}
        ms{"Sistema ng Pagsukat"}
        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"}
        bgn{"Kanlurang Balochi"}
        bm{"Bambara"}
        bn{"Bengali"}
        bo{"Tibetan"}
        br{"Breton"}
        brx{"Bodo"}
        bs{"Bosnian"}
        ca{"Catalan"}
        ce{"Chechen"}
        cgg{"Chiga"}
        chr{"Cherokee"}
        ckb{"Central Kurdish"}
        co{"Corsican"}
        cs{"Czech"}
        cv{"Chuvash"}
        cy{"Welsh"}
        da{"Danish"}
        dav{"Taita"}
        de{"German"}
        de_AT{"Austrian German"}
        de_CH{"Swiss High 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 ng British"}
        en_US{"Ingles (US)"}
        eo{"Esperanto"}
        es{"Espanyol"}
        es_419{"Latin American na Espanyol"}
        es_ES{"European Spanish"}
        es_MX{"Espanyol ng Mehiko"}
        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{"Kanlurang 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"}
        lrc{"Hilagang Luri"}
        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"}
        mzn{"Mazanderani"}
        naq{"Nama"}
        nb{"Norwegian Bokmal"}
        nd{"Hilagang Ndebele"}
        nds{"Low German"}
        nds_NL{"Low Saxon"}
        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{"Portuges ng Brasil"}
        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"}
        sdh{"Katimugang Kurdish"}
        se{"Hilagang Sami"}
        seh{"Sena"}
        ses{"Koyraboro Senni"}
        sg{"Sango"}
        sh{"Serbo-Croatian"}
        shi{"Tachelhit"}
        si{"Sinhala"}
        sk{"Slovak"}
        sl{"Slovenian"}
        sm{"Samoan"}
        sma{"Katimugang 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"}
        wbp{"Warlpiri"}
        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 ng UK"}
        en_US{"Ingles sa US"}
    }
    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{"Pinasimple"}
        Hant{"Tradisyonal"}
        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{"Pinasimpleng Han"}
        Hant{"Tradisyonal na 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"}
        }
        hc{
            h11{"12 Oras na Sistema (0–11)"}
            h12{"12 Oras na Sistema (1–12)"}
            h23{"24 na Oras na Sistema (0–23)"}
            h24{"24 na Oras na Sistema (1–24)"}
        }
        lb{
            loose{"Loose na Estilo ng Putol ng Linya"}
            normal{"Normal na Estilo ng Putol ng Linya"}
            strict{"Mahigpit na Estilo ng Putol ng Linya"}
        }
        ms{
            metric{"Metrikong Sistema"}
            uksystem{"Sistemang Imperial na Pagsukat"}
            ussystem{"Sistema ng Pagsukat sa US"}
        }
        numbers{
            arab{"Arabic-Indic na Mga Digit"}
            arabext{"Extendend Arabic-Indic na Mga Digit"}
            armn{"Mga Armenian Numeral"}
            armnlow{"Armenian Lowercase Numerals"}
            beng{"Mga Bengali Digit"}
            deva{"Mga Devanagari Digit"}
            ethi{"Mga Ethiopic Numeral"}
            finance{"Mga Pampinansyang Numeral"}
            fullwide{"Mga Full-Width Digit"}
            geor{"Georgian na Mga Numeral"}
            grek{"Greek na Mga Numeral"}
            greklow{"Greek Lowercase Numerals"}
            gujr{"Mga Gujarati Digit"}
            guru{"Mga Gurmukhi Digit"}
            hanidec{"Mga Chinese Decimal na 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{"Mga Hebrew Numeral"}
            jpan{"Mga Japanese Numeral"}
            jpanfin{"Mga Japanese Numeral sa Pananalapi"}
            khmr{"Mga Khmer na Digit"}
            knda{"Mga Kannada na Digit"}
            laoo{"Mga Lao na Digit"}
            latn{"Mga Kanluraning Digit"}
            mlym{"Mga Malayalam na Digit"}
            mong{"Mongolian Digits"}
            mymr{"Mga Myanmar na Digit"}
            native{"Mga Native na Digit"}
            orya{"Mga Oriya na Digit"}
            roman{"Mga Roman Numeral"}
            romanlow{"Roman Lowercase Numerals"}
            taml{"Tamil na Mga Numeral"}
            tamldec{"Mga Tamil na Digit"}
            telu{"Mga Telugu na Digit"}
            thai{"Mga Thai na Digit"}
            tibt{"Mga Tibetan na Digit"}
            traditional{"Mga Tradisyunal na Numeral"}
            vaii{"Mga Vai na Digit"}
        }
    }
    Variants{
        PINYIN{"Pinyin Romanization"}
        WADEGILE{"Wade-Giles Romanization"}
    }
    Version{"2.1.19.94"}
    codePatterns{
        language{"Wika: {0}"}
        script{"Script: {0}"}
        territory{"Rehiyon: {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
