﻿// ***************************************************************************
// *
// * Copyright (C) 2016 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"}
        sw_CD{"Swahili (Congo)"}
        swb{"Comorian"}
        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.22.93"}
    codePatterns{
        language{"Wika: {0}"}
        script{"Script: {0}"}
        territory{"Rehiyon: {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
