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

vi {
    Version { "2.1" }
    // 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
    }

    // 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]" }
    NumberElements {
        ",",
        ".",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "\u2030",
        "\u221E",
        "\uFFFD",
        ",",
        "+",
    }
    NumberPatterns {
        "#,##0.###;-#,##0.###",
        "#,##0.00 \u00A4;-#,##0.00 \u00A4",
        "#,##0%",
        "#E0",
    }
    calendar{
        gregorian{
            DateTimeElements:intvector { 
                2,
                1,
            }
            AmPmMarkers{
                "SA",
                "CH",
            }
            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}",
            }
            dayNames{
                format{
                    abbreviated{
                        "CN",
                        "Th 2",
                        "Th 3",
                        "Th 4",
                        "Th 5",
                        "Th 6",
                        "Th 7"
                    }
                    wide{
                        "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"
            }
            monthNames{
                format{
                    abbreviated{
                        "thg 1",
                        "thg 2",
                        "thg 3",
                        "thg 4",
                        "thg 5",
                        "thg 6",
                        "thg 7",
                        "thg 8",
                        "thg 9",
                        "thg 10",
                        "thg 11",
                        "thg 12",
                    }
                    wide{
                        "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",
                    }
                }
            }
        }
    }
}
