﻿// ***************************************************************************
// *
// * 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{"Ayos ng Pag-uuri-uri"}
        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"}
        ak{"Akan"}
        am{"Amharic"}
        ar{"Arabic"}
        ar_001{"Modern Standard Arabic"}
        as{"Assamese"}
        ay{"Aymara"}
        az{"Azerbaijani"}
        be{"Belarusian"}
        bem{"Bemba"}
        bg{"Bulgarian"}
        bn{"Bengali"}
        bo{"Tibetan"}
        br{"Breton"}
        bs{"Bosnian"}
        ca{"Catalan"}
        chr{"Cherokee"}
        ckb{"Sorani Kurdish"}
        co{"Corsican"}
        cs{"Czech"}
        cy{"Welsh"}
        da{"Danish"}
        de{"German"}
        de_AT{"Austrian German"}
        de_CH{"Swiss High German"}
        dv{"Divehi"}
        dz{"Dzongkha"}
        ee{"Ewe"}
        efi{"Efik"}
        el{"Greek"}
        en{"Ingles"}
        en_AU{"Ingles sa Australia"}
        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"}
        gd{"Scots Gaelic"}
        gl{"Galician"}
        gn{"Guarani"}
        gsw{"Swiss German"}
        gu{"Gujarati"}
        ha{"Hausa"}
        haw{"Hawaiian"}
        he{"Hebrew"}
        hi{"Hindi"}
        hr{"Croatian"}
        ht{"Haitian"}
        hu{"Hungarian"}
        hy{"Armenian"}
        ia{"Interlingua"}
        id{"Indonesian"}
        ie{"Interlingue"}
        ig{"Igbo"}
        is{"Icelandic"}
        it{"Italian"}
        ja{"Japanese"}
        jv{"Javanese"}
        ka{"Georgian"}
        kg{"Kongo"}
        kk{"Kazakh"}
        km{"Khmer"}
        kn{"Kannada"}
        ko{"Korean"}
        ks{"Kashmiri"}
        ku{"Kurdish"}
        ky{"Kirghiz"}
        la{"Latin"}
        lb{"Luxembourgish"}
        lg{"Ganda"}
        ln{"Lingala"}
        lo{"Lao"}
        loz{"Lozi"}
        lt{"Lithuanian"}
        lua{"Luba-Lulua"}
        lv{"Latvian"}
        mfe{"Morisyen"}
        mg{"Malagasy"}
        mi{"Maori"}
        mk{"Macedonian"}
        ml{"Malayalam"}
        mn{"Mongolian"}
        mr{"Marathi"}
        ms{"Malay"}
        mt{"Maltese"}
        my{"Burmese"}
        nb{"Norwegian Bokmal"}
        nd{"North Ndebele"}
        ne{"Nepali"}
        nl{"Dutch"}
        nl_BE{"Flemish"}
        nn{"Norwegian Nynorsk"}
        no{"Norwegian"}
        nso{"Northern Sotho"}
        ny{"Nyanja"}
        nyn{"Nyankole"}
        oc{"Occitan"}
        om{"Oromo"}
        or{"Oriya"}
        os{"Ossetic"}
        pa{"Punjabi"}
        pl{"Polish"}
        ps{"Pashto"}
        pt{"Portuguese"}
        pt_BR{"Brazilian Portuguese"}
        pt_PT{"European Portuguese"}
        qu{"Quechua"}
        rm{"Romansh"}
        rn{"Rundi"}
        ro{"Romanian"}
        ru{"Russian"}
        rw{"Kinyarwanda"}
        sa{"Sanskrit"}
        sd{"Sindhi"}
        se{"Northern Sami"}
        sg{"Sango"}
        sh{"Serbo-Croatian"}
        si{"Sinhala"}
        sk{"Slovak"}
        sl{"Slovenian"}
        sm{"Samoan"}
        sn{"Shona"}
        so{"Somali"}
        sq{"Albanian"}
        sr{"Serbian"}
        ss{"Swati"}
        st{"Southern Sotho"}
        su{"Sundanese"}
        sv{"Swedish"}
        sw{"Swahili"}
        swb{"Comorian"}
        ta{"Tamil"}
        te{"Telugu"}
        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"}
        ty{"Tahitian"}
        ug{"Uyghur"}
        uk{"Ukranian"}
        und{"Hindi Kilalang Wika"}
        ur{"Urdu"}
        uz{"Uzbek"}
        ve{"Venda"}
        vi{"Vietnamese"}
        wo{"Wolof"}
        xh{"Xhosa"}
        yi{"Yiddish"}
        yo{"Yoruba"}
        yue{"Cantonese"}
        zgh{"Standard Moroccan Tamazight"}
        zh{"Chinese"}
        zh_Hans{"Simplified Chinese"}
        zh_Hant{"Traditional Chinese"}
        zu{"Zulu"}
        zxx{"Walang nilalamang linguistic"}
    }
    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{"Unwritten"}
        Zyyy{"Common"}
        Zzzz{"Hindi Kilalang Script"}
    }
    Scripts%stand-alone{
        Hans{"Simplified Han"}
        Hant{"Traditional Han"}
    }
    Types{
        calendar{
            buddhist{"Kalendaryo ng Buddhist"}
            chinese{"Kalendaryong Chinese"}
            coptic{"Coptic Calendar"}
            ethiopic{"Kalendaryong Ethiopic"}
            ethiopic-amete-alem{"Kalendaryong Ethiopic Amete Alem"}
            gregorian{"Kalendaryong Gregorian"}
            hebrew{"Hebrew Calendar"}
            indian{"Pambansang Kalendaryong Indian"}
            islamic{"Kalendaryong Islamic"}
            islamic-civil{"Kalendaryong Islamic-Civil"}
            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 Ayos ng Pag-uuri 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{"Paghahanap na May Layuning Pangkalahatan"}
            searchjl{"Maghanap Ayon sa Unang Katinig ng Hangul"}
            standard{"Karaniwang Ayos ng Pag-uuri-uri"}
            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 Digits"}
            arabext{"Extended Arabic-Indic Digits"}
            armn{"Armenian Numerals"}
            armnlow{"Armenian Lowercase Numerals"}
            beng{"Bengali Digits"}
            deva{"Devanagari Digits"}
            ethi{"Ethiopic Numerals"}
            finance{"Mga Pampinansyang Numeral"}
            fullwide{"Full Width Digits"}
            geor{"Georgian Numerals"}
            grek{"Greek Numerals"}
            greklow{"Greek Lowercase Numerals"}
            gujr{"Gujarati Digits"}
            guru{"Gurmukhi Digits"}
            hanidec{"Chinese Decimal Numerals"}
            hans{"Simplified Chinese Numerals"}
            hansfin{"Simplified Chinese Financial Numerals"}
            hant{"Traditional Chinese Numerals"}
            hantfin{"Traditional Chinese Financial Numerals"}
            hebr{"Hebrew Numerals"}
            jpan{"Japanese Numerals"}
            jpanfin{"Japanese Financial Numerals"}
            khmr{"Khmer Digits"}
            knda{"Kannada Digits"}
            laoo{"Lao Digits"}
            latn{"Western Digits"}
            mlym{"Malayalam Digits"}
            mong{"Mongolian Digits"}
            mymr{"Myanmar Digits"}
            native{"Mga Native na Digit"}
            orya{"Oriya Digits"}
            roman{"Roman Numerals"}
            romanlow{"Roman Lowercase Numerals"}
            taml{"Tamil Numerals"}
            tamldec{"Tamil Digits"}
            telu{"Telugu Digits"}
            thai{"Thai Digits"}
            tibt{"Tibetan Digits"}
            traditional{"Mga Tradisyunal na Numeral"}
            vaii{"Mga Vai na Digit"}
        }
    }
    Variants{
        PINYIN{"Pinyin Romanization"}
        WADEGILE{"Wade-Giles Romanization"}
    }
    Version{"2.0.97.91"}
    codePatterns{
        language{"Wika: {0}"}
        script{"Script: {0}"}
        territory{"Rehiyon: {0}"}
    }
    localeDisplayPattern{
        keyTypePattern{"{0}: {1}"}
        pattern{"{0} ({1})"}
        separator{"{0}, {1}"}
    }
}
