﻿// ***************************************************************************
// *
// * 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{
    Version{"2.1.13.23"}
    units{
        acceleration{
            meter-per-second-squared{
                dnam{"米/平方秒"}
                other{"{0} 米/平方秒"}
            }
        }
        angle{
            arc-minute{
                dnam{"角分"}
                other{"{0} 角分"}
            }
            arc-second{
                dnam{"角秒"}
                other{"{0} 角秒"}
            }
        }
        area{
            square-centimeter{
                dnam{"平方厘米"}
                other{"{0} 平方厘米"}
            }
            square-foot{
                dnam{"平方呎"}
                other{"{0} 平方呎"}
            }
            square-inch{
                dnam{"平方吋"}
                other{"{0} 平方吋"}
            }
            square-meter{
                dnam{"平方米"}
                other{"{0} 平方米"}
            }
        }
        consumption{
            liter-per-kilometer{
                dnam{"公升/公里"}
                other{"{0} 公升/公里"}
            }
        }
        digital{
            bit{
                dnam{"位元"}
                other{"{0} 個位元"}
            }
            byte{
                dnam{"位元組"}
                other{"{0} 位元組"}
            }
        }
        duration{
            nanosecond{
                dnam{"納秒"}
                other{"{0} 納秒"}
            }
        }
        energy{
            foodcalorie{
                dnam{"卡路里"}
                other{"{0} 卡路里"}
            }
        }
        length{
            centimeter{
                dnam{"厘米"}
                other{"{0} 厘米"}
            }
            decimeter{
                dnam{"分米"}
                other{"{0} 分米"}
            }
            meter{
                dnam{"米"}
                other{"{0} 米"}
            }
            millimeter{
                dnam{"毫米"}
                other{"{0} 毫米"}
            }
            nanometer{
                dnam{"納米"}
                other{"{0} 納米"}
            }
        }
        mass{
            ounce{
                dnam{"安士"}
                other{"{0} 安士"}
            }
            ounce-troy{
                dnam{"金衡安士"}
                other{"{0} 金衡安士"}
            }
        }
        power{
            megawatt{
                dnam{"兆瓦"}
                other{"{0} 兆瓦"}
            }
        }
        pressure{
            hectopascal{
                dnam{"百帕斯卡"}
                other{"{0} 百帕斯卡"}
            }
            pound-per-square-inch{
                dnam{"磅/平方吋"}
                other{"{0} 磅/平方吋"}
            }
        }
        speed{
            meter-per-second{
                dnam{"米/秒"}
                other{"{0} 米/秒"}
            }
        }
        volume{
            centiliter{
                dnam{"厘升"}
                other{"{0} 厘升"}
            }
            cubic-centimeter{
                dnam{"立方厘米"}
                other{"{0} 立方厘米"}
            }
            cubic-foot{
                dnam{"立方呎"}
                other{"{0} 立方呎"}
            }
            cubic-inch{
                dnam{"立方吋"}
                other{"{0} 立方吋"}
            }
            cubic-meter{
                dnam{"立方米"}
                other{"{0} 立方米"}
            }
            fluid-ounce{
                dnam{"液安士"}
                other{"{0} 液安士"}
            }
        }
    }
    unitsNarrow{
        area{
            square-foot{
                other{"{0}ft²"}
            }
            square-mile{
                other{"{0}mi²"}
            }
        }
        duration{
            hour{
                other{"{0}小時"}
            }
        }
        length{
            centimeter{
                dnam{"厘米"}
                other{"{0}厘米"}
            }
            meter{
                dnam{"米"}
                other{"{0}米"}
            }
            millimeter{
                dnam{"毫米"}
                other{"{0}毫米"}
            }
        }
        mass{
            ounce{
                other{"{0} 安士"}
            }
        }
        pressure{
            inch-hg{
                other{"{0}″ Hg"}
            }
        }
        speed{
            kilometer-per-hour{
                other{"{0}kph"}
            }
            meter-per-second{
                other{"{0}m/s"}
            }
            mile-per-hour{
                other{"{0}mph"}
            }
        }
        volume{
            cubic-mile{
                other{"{0}mi³"}
            }
        }
    }
    unitsShort{
        acceleration{
            g-force{
                other{"{0} G"}
            }
        }
        angle{
            arc-minute{
                dnam{"分"}
            }
        }
        area{
            square-centimeter{
                dnam{"平方厘米"}
                other{"{0} 平方厘米"}
            }
            square-foot{
                dnam{"平方呎"}
                other{"{0} 平方呎"}
            }
            square-inch{
                dnam{"平方吋"}
                other{"{0} 平方吋"}
            }
            square-meter{
                dnam{"平方米"}
                other{"{0} 平方米"}
            }
        }
        duration{
            nanosecond{
                dnam{"納秒"}
                other{"{0} 納秒"}
            }
        }
        length{
            centimeter{
                dnam{"厘米"}
                other{"{0} 厘米"}
            }
            meter{
                dnam{"米"}
                other{"{0} 米"}
            }
            millimeter{
                dnam{"毫米"}
                other{"{0} 毫米"}
            }
        }
        mass{
            ounce{
                dnam{"安士"}
                other{"{0} 安士"}
            }
            ounce-troy{
                dnam{"金衡安士"}
            }
        }
        power{
            watt{
                dnam{"瓦"}
                other{"{0} 瓦"}
            }
        }
        speed{
            meter-per-second{
                other{"{0} 米/秒"}
            }
        }
        volume{
            cubic-foot{
                dnam{"立方呎"}
            }
            cubic-inch{
                dnam{"立方吋"}
            }
        }
    }
}
