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

vi {
    Version { "2.0" }
    CollationElements { 
        Version { "2.0" }
        Sequence { "[normalization on]&\u0300<<\u0309<<\u0303<<\u0301<<"
        "\u0323<<\u0306<<\u0302<<\u031B"
        "&D<\u0111<<<\u0110" }
    }
    Countries {
        VN { "Vi\u1EC7t Nam" }
    }
    Languages {
        vi { "Ti\u1EBFng Vi\u1EC7t" }
    }
    DateTimePatterns {
        "HH:mm:ss z",
        "HH:mm:ss z",
        "HH:mm:ss",
        "HH:mm",
        "EEEE dd MMMM yyyy",
        "EEE dd MMM yyyy",
        "dd MMM yyyy",
        "dd/MM/yy",
        "{0} {1}",
    }
    DayAbbreviations {
        "Th 2",
        "Th 3",
        "Th 4",
        "Th 5",
        "Th 6",
        "Th 7",
        "CN",
    }
    DayNames {
        "Th\u1EE9 hai",
        "Th\u1EE9 ba",
        "Th\u1EE9 t\u01B0",
        "Th\u1EE9 n\u0103m",
        "Th\u1EE9 s\u00E1u",
        "Th\u1EE9 b\u1EA3y",
        "Ch\u1EE7 nh\u1EADt",
    }
    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",
        ",",
        "+",
    }
    Currencies {
        VND { "\u20AB", "VND" } // Vietnamese Dong
    }
    NumberPatterns {
        "#,##0.###;-#,##0.###",
        "#,##0.00 \u00A4;-#,##0.00 \u00A4",
        "#,##0%",
        "#E0",
    }
    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]" }
}
