﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/haw.xml
// *
// ***************************************************************************
haw{
    AuxExemplarCharacters{"[b c d f g j q r s t v x y z]"}
    ExemplarCharacters{"[a ā e ē i ī o ō u ū h k l m n p w ʻ]"}
    NumberElements{
        latn{
            patterns{
                accountingFormat{"¤#,##0.00;(¤#,##0.00)"}
                currencyFormat{"¤#,##0.00"}
            }
        }
    }
    Version{"2.1.15.45"}
    calendar{
        generic{
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, d MMMM y G",
                "d MMMM y G",
                "d MMM y G",
                {
                    "d/M/yy GGGGG",
                    "M=romanlow",
                }
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
        }
        gregorian{
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, d MMMM y",
                "d MMMM y",
                "d MMM y",
                {
                    "d/M/yy",
                    "M=romanlow",
                }
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"E d"}
                Gy{"y G"}
                GyMMM{"MMM y G"}
                GyMMMEd{"E, d MMM y G"}
                GyMMMd{"d MMM y G"}
                MEd{"E, d/M"}
                MMMEd{"E, d MMM"}
                MMMd{"d MMM"}
                Md{"d/M"}
                yM{"M/y"}
                yMEd{"E, d/M/y"}
                yMMM{"MMM y"}
                yMMMEd{"E, d MMM y"}
                yMMMd{"d MMM y"}
                yMd{"d/M/y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "LP",
                        "P1",
                        "P2",
                        "P3",
                        "P4",
                        "P5",
                        "P6",
                    }
                    wide{
                        "Lāpule",
                        "Poʻakahi",
                        "Poʻalua",
                        "Poʻakolu",
                        "Poʻahā",
                        "Poʻalima",
                        "Poʻaono",
                    }
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Ian.",
                        "Pep.",
                        "Mal.",
                        "ʻAp.",
                        "Mei",
                        "Iun.",
                        "Iul.",
                        "ʻAu.",
                        "Kep.",
                        "ʻOk.",
                        "Now.",
                        "Kek.",
                    }
                    wide{
                        "Ianuali",
                        "Pepeluali",
                        "Malaki",
                        "ʻApelila",
                        "Mei",
                        "Iune",
                        "Iulai",
                        "ʻAukake",
                        "Kepakemapa",
                        "ʻOkakopa",
                        "Nowemapa",
                        "Kekemapa",
                    }
                }
            }
        }
    }
    measurementSystemNames{
        US{"ʻAmelika Hui Pū ʻIa"}
        metric{"Mekalika"}
    }
}
