﻿// ***************************************************************************
// *
// * Copyright (C) 2015 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/zh_Hant_HK.xml
// *
// ***************************************************************************
zh_Hant_HK{
    NumberElements{
        latn{
            patternsLong{
                decimalFormat{
                    1000{
                        other{"0千"}
                    }
                    10000{
                        other{"0萬"}
                    }
                    100000{
                        other{"00萬"}
                    }
                }
            }
        }
    }
    Version{"2.1.13.23"}
    calendar{
        buddhist{
            availableFormats{
                MEd{"M-d（E）"}
                Md{"M-d"}
            }
        }
        chinese{
            monthNames{
                format{
                    abbreviated{
                        "正月",
                        "二月",
                        "三月",
                        "四月",
                        "五月",
                        "六月",
                        "七月",
                        "八月",
                        "九月",
                        "十月",
                        "十一月",
                        "十二月",
                    }
                    narrow{
                        "正",
                        "二",
                        "三",
                        "四",
                        "五",
                        "六",
                        "七",
                        "八",
                        "九",
                        "十",
                        "十一",
                        "十二",
                    }
                    wide{
                        "正月",
                        "二月",
                        "三月",
                        "四月",
                        "五月",
                        "六月",
                        "七月",
                        "八月",
                        "九月",
                        "十月",
                        "十一月",
                        "十二月",
                    }
                }
                stand-alone{
                    abbreviated{
                        "正月",
                        "二月",
                        "三月",
                        "四月",
                        "五月",
                        "六月",
                        "七月",
                        "八月",
                        "九月",
                        "十月",
                        "十一月",
                        "十二月",
                    }
                    narrow{
                        "正",
                        "二",
                        "三",
                        "四",
                        "五",
                        "六",
                        "七",
                        "八",
                        "九",
                        "十",
                        "十一",
                        "十二",
                    }
                    wide{
                        "正月",
                        "二月",
                        "三月",
                        "四月",
                        "五月",
                        "六月",
                        "七月",
                        "八月",
                        "九月",
                        "十月",
                        "十一月",
                        "十二月",
                    }
                }
            }
        }
        generic{
            DateTimePatterns{
                "ah:mm:ss [zzzz]",
                "ah:mm:ss [z]",
                "ah:mm:ss",
                "ah:mm",
                "Gy年M月d日EEEE",
                "Gy年M月d日",
                "Gy年M月d日",
                "Gy/M/d",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"d日E"}
                Gy{"Gy年"}
                GyMMM{"Gy年M月"}
                GyMMMEd{"Gy年M月d日E"}
                GyMMMd{"Gy年M月d日"}
                MEd{"E, d/M"}
                MMMEd{"M月d日E"}
                Md{"d/M"}
                y{"Gy年"}
                yyyy{"Gy年"}
                yyyyM{"Gy/M"}
                yyyyMEd{"Gy/M/dE"}
                yyyyMMM{"Gy年M月"}
                yyyyMMMEd{"Gy年M月d日E"}
                yyyyMMMd{"Gy年M月d日"}
                yyyyMd{"Gy/M/d"}
                yyyyQQQ{"Gy年QQQ"}
                yyyyQQQQ{"Gy年QQQQ"}
            }
            intervalFormats{
                MEd{
                    M{"d/M（E） 至 d/M（E）"}
                    d{"d/M（E） 至 d/M（E）"}
                }
                Md{
                    M{"d/M 至 d/M"}
                    d{"d/M 至 d/M"}
                }
                y{
                    y{"Gy年至y年"}
                }
                yM{
                    M{"Gy/M至y/M"}
                    y{"Gy/M至y/M"}
                }
                yMEd{
                    M{"Gy/M/dE至y/M/dE"}
                    d{"Gy/M/dE至y/M/dE"}
                    y{"Gy/M/dE至y/M/dE"}
                }
                yMMM{
                    M{"Gy年M月至M月"}
                    y{"Gy年M月至y年M月"}
                }
                yMMMEd{
                    M{"Gy年M月d日E至M月d日E"}
                    d{"Gy年M月d日E至d日E"}
                    y{"Gy年M月d日E至y年M月d日E"}
                }
                yMMMM{
                    M{"Gy年M月至M月"}
                    y{"Gy年M月至y年M月"}
                }
                yMMMd{
                    M{"Gy年M月d日至M月d日"}
                    d{"Gy年M月d日至d日"}
                    y{"Gy年M月d日至y年M月d日"}
                }
                yMd{
                    M{"Gy/M/d至y/M/d"}
                    d{"Gy/M/d至y/M/d"}
                    y{"Gy/M/d至y/M/d"}
                }
            }
        }
        gregorian{
            DateTimePatterns{
                "ah:mm:ss [zzzz]",
                "ah:mm:ss [z]",
                "ah:mm:ss",
                "ah:mm",
                "y年M月d日EEEE",
                "y年M月d日",
                "y年M月d日",
                "d/M/yy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"d日E"}
                GyMMMEd{"Gy年M月d日E"}
                MEd{"E, d/M"}
                MMMEd{"M月d日E"}
                MMdd{"dd/MM"}
                Md{"d/M"}
                yM{"M/y"}
                yMEd{"y/M/dE"}
                yMM{"MM/y"}
                yMMMEd{"y年M月d日E"}
                yMd{"d/M/y"}
            }
            intervalFormats{
                MEd{
                    M{"d/M（E） 至 d/M（E）"}
                    d{"d/M（E） 至 d/M（E）"}
                }
                Md{
                    M{"d/M 至 d/M"}
                    d{"d/M 至 d/M"}
                }
                yM{
                    M{"M/y 至 M/y"}
                    y{"M/y 至 M/y"}
                }
                yMEd{
                    M{"d/M/y（E） 至 d/M/y（E）"}
                    d{"d/M/y（E） 至 d/M/y（E）"}
                    y{"d/M/y（E） 至 d/M/y（E）"}
                }
                yMd{
                    M{"d/M/y 至 d/M/y"}
                    d{"d/M/y 至 d/M/y"}
                    y{"d/M/y 至 d/M/y"}
                }
            }
            quarters{
                format{
                    abbreviated{
                        "Q1",
                        "Q2",
                        "Q3",
                        "Q4",
                    }
                }
                stand-alone{
                    abbreviated{
                        "Q1",
                        "Q2",
                        "Q3",
                        "Q4",
                    }
                }
            }
        }
        roc{
            availableFormats{
                Ed{"d日E"}
                MEd{"d-M（E）"}
                Md{"d-M"}
                yyyyMEd{"Gy/M/dE"}
            }
        }
    }
    fields{
        hour-narrow{
            dn{"時"}
        }
        minute-narrow{
            dn{"分"}
        }
        week{
            dn{"星期"}
        }
        weekday{
            dn{"星期幾"}
        }
    }
}
