// ***************************************************************************
// *
// *   Copyright (C) 1997-2004, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// ***************************************************************************

vi {
    Version { "2.1" }
    AmPmMarkers { 
        "SA",
        "CH",
    }
    // Note many of the country names have dashes in the name. This seems to be correct.
    // Translations that are done poorly seem to remove them. This doesn't mean that all the dashes are correct,
    // but care should be taken before removing them.
    Countries {
        AE { "C\u00e1c Ti\u1ec3u V\u01b0\u01a1ng qu\u1ed1c A-r\u1eadp Th\u1ed1ng nh\u1ea5t" }
        AF { "\u00c1p-ga-ni-xtan" }
        AG { "An-ti-gu-a v\u00e0 Ba-bu-\u0111a" }
        AL { "An-ba-ni" }
        AM { "\u00c1c-m\u00ea-ni-a" }
        AO { "\u0102ng-g\u00f4-la" }
        AR { "\u00c1c-hen-ti-na" }
        AT { "\u00c1o" } // \u00c1o Qu\u1ed1c ?
        AU { "\u00dac" } // \u00dac \u0110\u1ea1i L\u1ee3i?
        AZ { "Ai-d\u00e9c-bai-gian" }

        BA { "B\u00f4-xni-a H\u00e9c-x\u00ea-g\u00f4-vi-na" }
        BB { "B\u00e1c-ba-\u0111\u1ed1t" }
        BD { "B\u0103ng-la-\u0111\u00e9t" }
        BE { "B\u1ec9" }
        BF { "Bu\u1ed1c-ki-na Pha-x\u00f4" }
        BG { "Bun-ga-ri" }
        BH { "Ba-ren" }
        BI { "Bu-run-\u0111i" }
        BJ { "B\u00ea-nanh" }
        BN { "Bru-n\u00e2y" }
        BO { "B\u00f4-li-vi-a" }
        BR { "Bra-xin" }
        BS { "Ba-ha-ma" }
        BW { "B\u1ed1t-xoa-na" }
        BY { "B\u00ea-la-r\u00fat" }
        BZ { "B\u00ea-li-x\u00ea" }

        CA { "Ca-na-\u0111a" }
        CF { "C\u1ed9ng h\u00f2a Trung Phi" }
        CG { "C\u00f4ng-g\u00f4" }
        CH { "Th\u1ee5y S\u0129" }
        CI { "B\u1edd Bi\u1ec3n Ng\u00e0" }
        CL { "Chi-l\u00ea" }
        CM { "Ca-m\u01a1-run" }
        CN { "Trung Qu\u1ed1c" }
        CO { "C\u00f4-l\u00f4m-bi-a" }
        CR { "C\u1ed1t-xta Ri-ca" }
        CU { "Cu Ba" }
        CV { "C\u00e1p-ve" }
        CY { "S\u00edp" }
        CZ { "C\u1ed9ng h\u00f2a S\u00e9c" }

        DE { "\u0110\u1ee9c" }
        DJ { "Gi-bu-ti" }
        DK { "\u0110an M\u1ea1ch" }
        DZ { "An-gi\u00ea-ri" }

        EC { "\u00ca-cu-a-\u0111o" }
        EE { "E-xt\u00f4-ni-a" }
        EG { "Ai C\u1eadp" }
        EH { "T\u00e2y Sahara" }
        ER { "\u00ca-ri-t\u01a1-r\u00ea-a" }
        ES { "T\u00e2y Ban Nha" }
        ET { "\u00ca-ti-\u00f4-pi-a" }

        FI { "Ph\u1ea7n Lan" }
        FJ { "Phi-gi" }
        FM { "Mi-cr\u00f4-n\u00ea-xi-a" }
        FR { "Ph\u00e1p" }

        GA { "Ga-b\u00f4ng" }
        GB { "V\u01b0\u01a1ng qu\u1ed1c Anh" }
        GD { "Gr\u00ea-na-\u0111a" }
        GE { "Gru-di-a" }
        GH { "Gha-na" }
        GM { "G\u0103m-bi-a" }
        GN { "Ghi-n\u00ea" }
        GQ { "Ghi-n\u00ea X\u00edch-\u0111\u1ea1o" }
        GR { "Hy L\u1ea1p" }
        GT { "Goa-t\u00ea-ma-la" }
        GW { "Ghi-n\u00ea B\u00edt-xao" }
        GY { "Guy-a-na" }

        //HK { "H\u1ED3ng K\u00F4ng SAR Trung Qu\u1ed1c" }  // "H\u1ED3ng K\u00F4ng" is original form. SAR needs translation.
        HN { "H\u00f4n-\u0111u-r\u00e1t" }
        HR { "Cr\u00f4-a-ti-a" }
        HT { "Ha-i-ti" }
        HU { "Hung-ga-ri" }

        ID { "Nam D\u01b0\u01a1ng" } // or maybe also In-\u0111\u00f4-n\u00ea-xi-a
        IE { "Ai-len" }
        IL { "I-xra-en" }
        IN { "\u1ea4n \u0110\u1ed9" }
        IQ { "I-r\u1eafc" }
        IR { "I-ran" }
        IS { "Ai-x\u01a1-len" }
        IT { "\u00DD" } // The less frequent form of this country is "I-ta-li-a"

        JM { "Ha-mai-ca" }
        JO { "Gi\u00f3c-\u0111a-ni" }
        JP { "Nh\u1eadt B\u1ea3n" }

        KE { "K\u00ea-ni-a" }
        KG { "C\u01b0-r\u01a1-g\u01b0-xtan" }
        KH { "Campuchia" }
        KI { "Ki-ri-ba-ti" }
        KM { "C\u00f4-m\u00f4" }
        KN { "Xan-k\u00edt v\u00e0 N\u00ea-vi" }
        KP { "B\u1eafc Tri\u1ec1u Ti\u00ean" } // Alt name?: C\u1ed9ng h\u00f2a D\u00e2n ch\u1ee7 Nh\u00e2n d\u00e2n Tri\u1ec1u Ti\u00ean
        KR { "H\u00e0n Qu\u1ed1c" }
        KW { "C\u00f4-o\u00e9t" }
        KZ { "Ka-d\u1eafc-xtan" }

        LA { "L\u00e0o" }
        LB { "Li-b\u0103ng" }
        LC { "Xan Lu-xi" }
        LI { "Lich-ten-xt\u00ean" }
        LK { "Xri Lan-ca" }
        LR { "Li-b\u00ea-ri-a" }
        LS { "L\u00ea-x\u00f4-th\u00f4" }
        LT { "Li-tu-a-ni-a" }
        LU { "L\u00fac-x\u0103m-bua" }
        LV { "L\u00e1t-vi-a" }
        LY { "Li-bi" }

        MA { "Ma-r\u1ed1c" }
        MC { "M\u00f4-na-c\u00f4" }
        MD { "M\u00f4n-\u0111\u00f4-va" }
        MG { "Ma-\u0111a-g\u00e1t-xca" }
        MH { "Qu\u1ea7n \u0111\u1ea3o M\u00e1c-san"}
        MK { "Ma-x\u00ea-\u0111\u00f4-ni-a" }
        ML { "Ma-li" }
        MM { "Mi-an-ma" }
        MN { "M\u00f4ng C\u1ed5" }
        MR { "M\u00f4-ri-ta-ni" }
        MT { "Man-ta" }
        MU { "M\u00f4-ri-x\u01a1" }
        MV { "Man-\u0111i-v\u01a1" }
        MW { "Ma-la-uy" }
        MX { "M\u00ea-hi-c\u00f4" }
        MY { "Ma-lay-xi-a" }
        MZ { "M\u00f4-d\u0103m-b\u00edch" }

        NA { "Nam-mi-bi-a" }
        NE { "Ni-gi\u00ea" }
        NG { "Ni-gi\u00ea-ri-a" }
        NI { "Ni-ca-ra-goa" }
        NL { "H\u00e0 Lan" }
        NO { "Na Uy" }
        NP { "N\u00ea-pan" }
        NZ { "Niu Di-l\u00e2n" }

        OM { "\u00d4-man" }

        PA { "Pa-na-ma" }
        PE { "P\u00ea-ru" }
        PG { "Pa-pu-a Niu Ghi-n\u00ea" }
        PH { "Phi-lip-pin" }
        PK { "Pa-ki-xtan" }
        PL { "Ba Lan" }
        PT { "B\u1ed3 \u0110\u00e0o Nha" }
        PY { "Pa-ra-goay" }

        QA { "Ca-ta" }

        RO { "Ru-ma-ni" }
        RU { "Nga" }
        RW { "Ru-an-\u0111a" }

        SA { "A-r\u1eadp X\u00ea-\u00fat" }
        SB { "Qu\u1ea7n \u0111\u1ea3o X\u00f4-l\u00f4-m\u00f4ng" }
        SC { "X\u00e2y-sen" }
        SD { "Xu-\u0111\u0103ng" }
        SE { "Th\u1ee5y \u0110i\u1ec3n" }
        SG { "Xin-ga-po" }
        SI { "Xl\u00f4-ven-ni-a" }
        SK { "Xl\u00f4-va-ki-a" }
        SL { "Xi-\u00ea-ra L\u00ea-\u00f4n" }
        SM { "Xan Ma-ri-n\u00f4" }
        SN { "X\u00ea-n\u00ea-gan" }
        SO { "X\u00f4-ma-li" }
        SP { "S\u00e9c-bia" }
        SR { "Xu-ri-nam" }
        ST { "Xao T\u00f4-m\u00ea v\u00e0 Prin-xi-p\u00ea" }
        SV { "En-san-va-\u0111o" }
        SY { "Xi-ri" }
        SZ { "Xoa-di-len" }

        TD { "S\u00e1t" }
        TG { "T\u00f4-g\u00f4" }
        TH { "Th\u00e1i Lan" }
        TJ { "T\u00e1t-gi-ki-xtan" }
        TM { "Tu\u1ed1c-m\u00ea-ni-xtan" }
        TN { "Tuy-ni-di" }
        TO { "T\u00f4ng-ga" }
        TR { "Th\u1ed5 Nh\u0129 K\u1ef3" }
        TT { "Tri-ni-\u0111\u00e1t v\u00e0 T\u00f4-ba-g\u00f4" }
        TV { "Tu-va-lu" }
        TW { "\u0110\u00e0i Loan" }
        TZ { "Tan-da-ni-a" }

        UA { "U-crai-na" }
        UG { "U-gan-\u0111a" }
        US { "Hoa K\u1ef3" } // M\u1ef9 = slang abbreviated form of US; Hoa K\u1ef3 = US; H\u1ee3p ch\u00fang qu\u1ed1c Hoa k\u1ef3 = USA 
        UY { "U-ru-goay" }
        UZ { "U-d\u01a1-b\u00ea-ki-xtan" }

        VA { "Va-ti-c\u0103ng" }
        VC { "Xan Vin-xen v\u00e0 Gr\u00ea-na-din" }
        VE { "V\u00ea-n\u00ea-zu-\u00ea-la" }
        VN { "Vi\u1ec7t Nam" }
        VU { "Va-nu-a-tu" }

        WS { "Xa-moa" }

        YE { "Y-\u00ea-men" }
        YU { "Nam T\u01B0" }

        ZA { "Nam Phi" }
        ZM { "D\u0103m-bi-a" }
        ZW { "Dim-ba-bu-\u00ea" }
    }
    Currencies {
        VND { "\u0111", "\u0111\u1ED3ng" } // Vietnamese Dong. More people use \u0111 rather than \u20AB
    }
    DateTimeElements:intvector { 
        2,
        1,
    }
    DateTimePatterns {
        "HH:mm:ss z",
        "HH:mm:ss z",
        "HH:mm:ss",
        "HH:mm",
        "EEEE, 'ng\u00E0y' dd MMMM 'n\u0103m' yyyy",
        "'Ng\u00E0y' dd 'th\u00E1ng' M 'n\u0103m' yyyy",
        "dd-MM-yyyy",
        "dd/MM/yyyy",
        "{0} {1}",
    }
    DayAbbreviations {
        "CN",
        "Th 2",
        "Th 3",
        "Th 4",
        "Th 5",
        "Th 6",
        "Th 7"
    }
    DayNames {
        "Ch\u1EE7 nh\u1EADt",
        "Th\u1EE9 hai",
        "Th\u1EE9 ba",
        "Th\u1EE9 t\u01B0",
        "Th\u1EE9 n\u0103m",
        "Th\u1EE9 s\u00E1u",
        "Th\u1EE9 b\u1EA3y"
    }
    Eras { 
        "tr. CN",
        "sau CN"
    }
    // The case of the letters may be wrong for languages because Ti\u1EBFng is used.
    // Ti\u1EBFng is used in order to clarify some of the names, and ti\u1EBFng means "language".
    // Ti\u1EBFng is used to differentiate similar words like English from England and German from Germany,
    //   which are frequently the same in Vietnamese.
    // It is difficult to decide whether Ti\u1EBFng should precede the translation, but it doesn't hurt to keep it there.
    Languages {
        ar { "Ti\u1EBFng A-r\u1EADp" }
        az { "Ti\u1EBFng Ai-d\u00E9c-bai-gian" }
        be { "Ti\u1EBFng B\u00EA-la-r\u00FAt" }
        bg { "Ti\u1EBFng Bun-ga-ri" }
        bo { "Ti\u1EBFng T\u00E2y T\u1EA1ng" }
        ca { "Ti\u1EBFng Ca-ta-l\u0103ng" }
        cs { "Ti\u1EBFng S\u00E9c" }
        da { "Ti\u1EBFng \u0110an M\u1EA1ch" }
        de { "Ti\u1EBFng \u0110\u1EE9c" }
        el { "Ti\u1EBFng Hy L\u1EA1p" }
        en { "Ti\u1EBFng Anh" }
        eo { "Ti\u1EBFng Qu\u1ED1c T\u1EBF Ng\u1EEF" }
        es { "Ti\u1EBFng T\u00E2y Ban Nha" }
        et { "Ti\u1EBFng E-xt\u00F4-ni-a" }
        fa { "Ti\u1EBFng Ba T\u01B0" }
        fi { "Ti\u1EBFng Ph\u1EA7n Lan" }
        fr { "Ti\u1EBFng Ph\u00E1p" }
        ga { "Ti\u1EBFng Ai-len" }
        he { "Ti\u1EBFng H\u00EA-br\u01A1" }
        hi { "Ti\u1EBFng Hin-\u0111i" }
        hr { "Ti\u1EBFng Cr\u00F4-a-ti-a" }
        hu { "Ti\u1EBFng Hung-ga-ri" }
        hy { "Ti\u1EBFng \u00C1c-m\u00EA-ni" }
        ia { "Ti\u1EBFng Khoa H\u1ECDc Qu\u1ED1c T\u1EBF" }
        id { "Ti\u1EBFng In-\u0111\u00F4-n\u00EA-xia" }
        is { "Ti\u1EBFng Ai-x\u01A1-len" }
        it { "Ti\u1EBFng \u00DD" } // Just \u00DD seems okay because Ti\u1EBFng is used. \u00DD is sometimes used to mean Italy too.
        ja { "Ti\u1EBFng Nh\u1EADt" }
        jv { "Ti\u1EBFng Gia-va" }
        km { "Ti\u1EBFng Campuchia" }
        kn { "Ti\u1EBFng Kan-na-\u0111a" }
        ko { "Ti\u1EBFng H\u00E0n Qu\u1ED1c" }
        la { "Ti\u1EBFng La-tinh" }
        lo { "Ti\u1EBFng L\u00E0o" }
        lt { "Ti\u1EBFng L\u00EDt-va" }
        lv { "Ti\u1EBFng L\u00E1t-vi-a" }
        mk { "Ti\u1EBFng Ma-x\u00EA-\u0111\u00F4-ni-a" }
        mn { "Ti\u1EBFng M\u00F4ng C\u1ED5" }
        ms { "Ti\u1EBFng Ma-lay-xi-a" }
        ne { "Ti\u1EBFng N\u00EA-pan" }
        nl { "Ti\u1EBFng H\u00E0 Lan" }
        no { "Ti\u1EBFng Na Uy" }
        pl { "Ti\u1EBFng Ba Lan" }
        pt { "Ti\u1EBFng B\u1ED3 \u0110\u00E0o Nha" }
        ro { "Ti\u1EBFng Ru-ma-ni" }
        ru { "Ti\u1EBFng Nga" }
        sa { "Ti\u1EBFng Ph\u1EA1n" }
        sk { "Ti\u1EBFng Xl\u00F4-v\u00E1c" }
        sl { "Ti\u1EBFng Xl\u00F4-ven" }
        so { "Ti\u1EBFng X\u00F4-ma-li" }
        sq { "Ti\u1EBFng An-ba-ni" }
        sr { "Ti\u1EBFng S\u00E9c-bi" }
        sv { "Ti\u1EBFng Th\u1EE5y \u0110i\u1EC3n" }
        th { "Ti\u1EBFng Th\u00E1i" }
        tr { "Ti\u1EBFng Th\u1ED5 Nh\u0129 K\u1EF3" }
        uk { "Ti\u1EBFng U-crai-na" }
        uz { "Ti\u1EBFng U-d\u01A1-b\u1EBFch" }
        vi { "Ti\u1EBFng Vi\u1EC7t" }
        yi { "Ti\u1EBFng Y-\u0111it" }
        zh { "Ti\u1EBFng Trung Qu\u1ED1c" }
    }
    LocaleScript{ 
        "Latn",  // ISO 15924 Name 
    }
    ExemplarCharacters{ "[a-z\u1EA0-\u1Ef9\u0111\u01A1\u00E0-\u00E3\u00E8-\u00EA\u00EC\u00ED\u00F2-\u00F5\u00F9\u00FA\u00FD\u0103\u0129\u0169\u01B0]" }
    MonthAbbreviations {
        "thg 1",
        "thg 2",
        "thg 3",
        "thg 4",
        "thg 5",
        "thg 6",
        "thg 7",
        "thg 8",
        "thg 9",
        "thg 10",
        "thg 11",
        "thg 12",
    }
    MonthNames {
        "th\u00E1ng m\u1ED9t",
        "th\u00E1ng hai",
        "th\u00E1ng ba",
        "th\u00E1ng t\u01B0",
        "th\u00E1ng n\u0103m",
        "th\u00E1ng s\u00E1u",
        "th\u00E1ng b\u1EA3y",
        "th\u00E1ng t\u00E1m",
        "th\u00E1ng ch\u00EDn",
        "th\u00E1ng m\u01B0\u1EDDi",
        "th\u00E1ng m\u01B0\u1EDDi m\u1ED9t",
        "th\u00E1ng m\u01B0\u1EDDi hai",
    }
    NumberElements {
        ",",
        ".",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "\u2030",
        "\u221E",
        "\uFFFD",
        ",",
        "+",
    }
    NumberPatterns {
        "#,##0.###;-#,##0.###",
        "#,##0.00 \u00A4;-#,##0.00 \u00A4",
        "#,##0%",
        "#E0",
    }
}


