# Do not edit - generated from Unicode CLDR data
#
# The key is an ISO4217 currency code, and the value is of the form:
#   display name|symbol|decimal digits|not-used-flag
# If a symbol is not supplied, the currency code will be used
# If # of decimal digits is omitted, 2 is used
# If a currency is not generally used, not-used-flag=1
# Trailing empty fields can be omitted

AED = Lupila lwa Hufalme dza Huhihalabu
AOA = Lupila lwa Huangola|Kz
AUD = Lupila lwa Huaustlalia|AU$
BHD = Lupila lwa Hubahareni|BD|3
BIF = Lupila lwa Huburundi|FBu|0
BWP = Lupila lwa Hubotswana
CAD = Lupila lwa Hukanada|CA$
CDF = Lupila lwa Hukongo
CHF = Lupila lwa Huuswisi
CNY = Lupila lwa Huchina|CN¥
CVE = Lupila lwa Hukepuvede|CV$
DJF = Lupila lwa Hujibuti|Fdj|0
DZD = Lupila lwa Hualjelia|DA
EGP = Lupila lwa Humisri|EG£
ERN = Lupila lwa Hueritrea|Nfk
ETB = Lupila lwa Huuhabeshi|Br
EUR = Lupila lwa Yulo|€
GBP = Lupila lwa Huuingereza|UK£
GHC = Lupila lwa Hughana|₵||1
GMD = Lupila lwa Hugambia
GNS = Lupila lwa Hujine|||1
INR = Lupila lwa Huindia|Rs.
JPY = Lupila lwa Hijapani|JP¥|0
KES = Shilingi ya Hukenya|Ksh
KMF = Lupila lwa Hukomoro|CF|0
LRD = Lupila lwa Hulibelia|L$
LSL = Lupila lwa Hulesoto
LYD = Lupila lwa Hulibya|LD|3
MAD = Lupila lwa Humoloko
MGA = Lupila lwa Hubukini||0
MRO = Lupila lwa Humolitania|UM|0
MUR = Lupila lwa Humolisi|MURs|0
MWK = Lupila lwa Humalawi
MZM = Lupila lwa Humsumbiji|Mt||1
NAD = Lupila lwa Hunamibia|N$
NGN = Lupila lwa Hunijelia|₦
RWF = Lupila lwa Hurwanda||0
SAR = Lupila lwa Husaudi|SR
SCR = Lupila lwa Hushelisheli|SRe
SDG = Lupila lwa Husudani
SHP = Lupila lwa Husantahelena|SH£
SLL = Lupila lwa Lioni|Le|0
SOS = Lupila lwa Husomalia|Ssh|0
STD = Lupila lwa Husaotome na Huprinisipe|Db|0
SZL = Lupila lwa Lilangeni
TND = Lupila lwa Hutunisia|DT|3
TZS = Shilingi ya Hutanzania|TSh|0
UGX = Shilingi ya Huuganda|USh|0
USD = Lupila lwa Humalekani|US$
XAF = Lupila lwa CFA BEAC|FCFA|0
XOF = Lupila lwa CFA BCEAO|CFA|0
ZAR = Lupila lwa Huafriaka ya Hukusini|R
ZMK = Lupila lwa Huzambia|ZK|0
ZWD = Lupila lwa Huzimbabwe|Z$|0|1
