﻿// ***************************************************************************
// *
// * Copyright (C) 2006 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/zh_Hant_MO.xml
// *
// ***************************************************************************
zh_Hant_MO{
    Countries{
        MO{"澳門特別行政區"}
    }
    NumberPatterns{
        "#,##0.###",
        "¤#,##0.00;(¤#,##0.00)",
        "#,##0%",
        "#E0",
    }
    Version{"1.36"}
    calendar{
        gregorian{
            DateTimeElements:intvector{
                1,
                1,
            }
            DateTimePatterns{
                "ahh'時'mm'分'ss'秒' z",
                "ahh'時'mm'分'ss'秒'",
                "ahh:mm:ss",
                "ah:mm",
                "yyyy'年'MM'月'dd'日' EEEE",
                "yyyy'年'MM'月'dd'日'",
                "yyyy'年'M'月'd'日'",
                "yy'年'M'月'd'日'",
                "{1} {0}",
            }
            monthNames{
                format{
                    abbreviated{
                        "1月",
                        "2月",
                        "3月",
                        "4月",
                        "5月",
                        "6月",
                        "7月",
                        "8月",
                        "9月",
                        "10月",
                        "11月",
                        "12月",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"』"}
        alternateQuotationStart{"『"}
        quotationEnd{"」"}
        quotationStart{"「"}
    }
    zoneStrings{
        "Africa:Casablanca"{
            ec{"Casablanca"}
            ld{"格林威治夏令時間"}
        }
        "America:Anchorage"{
            ec{"Anchorage"}
            ld{"阿拉斯加夏令時間"}
        }
        "America:Chicago"{
            ec{"Chicago"}
            ld{"中部夏令時間"}
        }
        "America:Halifax"{
            ec{"Halifax"}
            ld{"大西洋夏令時間"}
        }
        "America:Indianapolis"{
            ec{"Indianapolis"}
            ld{"東部夏令時間"}
        }
        "America:Los_Angeles"{
            ec{"Los Angeles"}
            ld{"太平洋夏令時間"}
        }
        "America:New_York"{
            ec{"New York"}
            ld{"東部夏令時間"}
        }
        "America:St_Johns"{
            ec{"St Johns"}
            ld{"紐芬蘭夏令時間"}
        }
        "Asia:Jerusalem"{
            ec{"Jerusalem"}
            ld{"以色列夏令時間"}
        }
        "Asia:Shanghai"{
            ec{"Shanghai"}
            ld{"中國夏令時間"}
        }
        "Asia:Tokyo"{
            ec{"Tokyo"}
            ld{"日本夏令時間"}
        }
        "Europe:Bucharest"{
            ec{"Bucharest"}
            ld{"東歐夏令時間"}
        }
        "Europe:Paris"{
            ec{"Paris"}
            ld{"中歐夏令時間"}
        }
        "Pacific:Honolulu"{
            ec{"Honolulu"}
            ld{"夏威夷夏令時間"}
        }
    }
}
