﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/haw.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <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 ʻ]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                accountingFormat{"¤#,##0.00;(¤#,##0.00)"}
                currencyFormat{"¤#,##0.00"}
            }
        }
    }
    Version{"2.1.6.69"}
    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"}
    }
}
