﻿// ***************************************************************************
// *
// * Copyright (C) 2014 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/zh_Hans_HK.xml
// *
// ***************************************************************************
zh_Hans_HK{
    NumberElements{
        latn{
            patterns{
                currencyFormat{"¤#,##0.00"}
            }
            patternsLong{
                decimalFormat{
                    1000000000000{
                        other{"0万亿"}
                    }
                    10000000000000{
                        other{"00万亿"}
                    }
                    100000000000000{
                        other{"000万亿"}
                    }
                }
            }
            patternsShort{
                decimalFormat{
                    1000000000000{
                        other{"0万亿"}
                    }
                    10000000000000{
                        other{"00万亿"}
                    }
                    100000000000000{
                        other{"000万亿"}
                    }
                }
            }
        }
    }
    Version{"2.1.8.19"}
    calendar{
        buddhist{
            DateTimePatterns{
                "zzzzah:mm:ss",
                "zah:mm:ss",
                "ah:mm:ss",
                "ah:mm",
                "Gy年M月d日EEEE",
                "Gy年M月d日",
                "Gy年M月d日",
                "Gd/M/yy",
                "{1}{0}",
                "{1}{0}",
                "{1}{0}",
                "{1}{0}",
                "{1}{0}",
            }
            availableFormats{
                M{"L"}
                MEd{"M/dE"}
            }
        }
        chinese{
            DateTimePatterns{
                "zzzzah:mm:ss",
                "zah:mm:ss",
                "ah:mm:ss",
                "ah:mm",
                {
                    "U年MMMd日EEEE",
                    "hanidec",
                }
                {
                    "U年MMMd日",
                    "hanidec",
                }
                {
                    "U年MMMd日",
                    "hanidec",
                }
                "U-M-d",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
        }
        generic{
            DateTimePatterns{
                "zzzzah:mm:ss",
                "zah:mm:ss",
                "ah:mm:ss",
                "ah:mm",
                "Gy年M月d日EEEE",
                "Gy年M月d日",
                "Gy年M月d日",
                "d/M/yyGGGGG",
                "{1}{0}",
                "{1}{0}",
                "{1}{0}",
                "{1}{0}",
                "{1}{0}",
            }
            availableFormats{
                HHmm{"HH:mm"}
                M{"L"}
                MEd{"E, d/M"}
                MMM{"M月"}
                MMMMdd{"M月d日"}
                Md{"d/M"}
                yyyyM{"M/yGGGGG"}
                yyyyMEd{"E, d/M/yGGGGG"}
                yyyyMd{"d/M/yGGGGG"}
            }
            intervalFormats{
                Hmv{
                    H{"vHH:mm–HH:mm"}
                    m{"vHH:mm–HH:mm"}
                }
                Hv{
                    H{"vHH–HH"}
                }
                MMM{
                    M{"M月至M月"}
                }
                fallback{"{0}–{1}"}
                h{
                    h{"ah至h时"}
                }
                yM{
                    M{"y年M月至y年M月"}
                }
                yMEd{
                    M{"d/M/yE至d/M/yE"}
                    d{"d/M/yE至d/M/yE"}
                    y{"d/M/yE至d/M/yE"}
                }
                yMMMEd{
                    d{"y年M月d日E至M月d日E"}
                }
                yMd{
                    M{"d/M/y至d/M/y"}
                    d{"d/M/y至d/M/y"}
                    y{"d/M/y至d/M/y"}
                }
            }
        }
        gregorian{
            DateTimePatterns{
                "zzzzah:mm:ss",
                "zah:mm:ss",
                "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{
                HHmm{"HH:mm"}
                M{"L"}
                MEd{"E, d/M"}
                MMMMdd{"M月d日"}
                MMdd{"dd/MM"}
                Md{"d/M"}
                yM{"M/y"}
                yMEd{"d/M/y（E）"}
                yMM{"MM/y"}
                yMd{"d/M/y"}
            }
            intervalFormats{
                Hmv{
                    H{"vHH:mm–HH:mm"}
                    m{"vHH:mm–HH:mm"}
                }
                Hv{
                    H{"vHH–HH"}
                }
                fallback{"{0}–{1}"}
                h{
                    h{"ah至h时"}
                }
                yM{
                    M{"y年M月至y年M月"}
                }
                yMEd{
                    M{"d/M/yE至d/M/yE"}
                    d{"d/M/yE至d/M/yE"}
                    y{"d/M/yE至d/M/yE"}
                }
                yMMMEd{
                    d{"y年M月d日E至M月d日E"}
                }
                yMd{
                    M{"d/M/y至d/M/y"}
                    d{"d/M/y至d/M/y"}
                    y{"d/M/y至d/M/y"}
                }
            }
        }
        islamic{
            DateTimePatterns{
                "zzzzah:mm:ss",
                "zah:mm:ss",
                "ah:mm:ss",
                "ah:mm",
                "Gy年M月d日EEEE",
                "Gy年M月d日",
                "Gy年M月d日",
                "Gd/M/yy",
                "{1}{0}",
                "{1}{0}",
                "{1}{0}",
                "{1}{0}",
                "{1}{0}",
            }
        }
        japanese{
            DateTimePatterns{
                "zzzzah:mm:ss",
                "zah:mm:ss",
                "ah:mm:ss",
                "ah:mm",
                "Gy年M月d日EEEE",
                "Gy年M月d日",
                "Gy年M月d日",
                "Gd/M/yy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                MEd{"M/dE"}
                Md{"M/d"}
            }
        }
        roc{
            DateTimePatterns{
                "zzzzah:mm:ss",
                "zah:mm:ss",
                "ah:mm:ss",
                "ah:mm",
                "Gy年M月d日EEEE",
                "Gy年M月d日",
                "Gy年M月d日",
                "Gd/M/yy",
                "{1}{0}",
                "{1}{0}",
                "{1}{0}",
                "{1}{0}",
                "{1}{0}",
            }
            availableFormats{
                M{"L"}
                MMM{"M月"}
                Md{"M-d"}
            }
        }
    }
    fields{
        second{
            relativeTime{
                future{
                    other{"{0}秒后"}
                }
                past{
                    other{"{0}秒前"}
                }
            }
        }
    }
}
