﻿// ***************************************************************************
// *
// * Copyright (C) 2014 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%variant{
        ps{"Pushto"}
        ug{"Uighur"}
    }
    LanguagesShort{
        az{"Azeri"}
        en_GB{"Ingles (U.K.)"}
        en_US{"Ingles (U.S.)"}
    }
    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.8.9"}
    codePatterns{
        language{"Wika: {0}"}
        script{"Script: {0}"}
        territory{"Rehiyon: {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
