# 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 = Diramu re United Arab Emirates
AOA = Kwanza ye Angola|Kz
AUD = Dora re Australia|AU$
BHD = Dhinari re Bhahareni|BD|3
BIF = Furenki re Bhurundi|FBu|0
BWP = Pura re Botswana
CAD = Dora re Kanada|CA$
CDF = Furenki re Kongo
CHF = Furenki re Swisi
CNY = Yuan Renminbi ye China|CN¥
CVE = Dhora re Escudo|CV$
DJF = Furenki re Jibhuti|Fdj|0
DZD = Dhinari  re Aljeria|DA
EGP = Paundi re Ijipita|EG£
ERN = Nakfa re Eritrea|Nfk
ETB = Dhora re Etiopia|Br
EUR = Yuro|€
GBP = Paundi ye Bhiriteni|UK£
GHC = Sedi ye Ghana|₵||1
GMD = Dalasi ye Gambia
GNS = Furenki re Gine|||1
INR = Rupe re India|Rs.
JPY = Yeni ye Japani|JP¥|0
KES = Shiringi ye Kenya|Ksh
KMF = Furenki re Komoro|CF|0
LRD = Dora re Liberia|L$
LSL = Loti ye Lesoto
LYD = Dinari re Libya|LD|3
MAD = Dirham ye Moroko
MGA = Furenki re Malagasi||0
MRO = Ugwiya ye Moritania|UM|0
MUR = Rupi ye Morishasi|MURs|0
MWK = Kwacha ye Malawi
MZM = Metika ye Mozambiki|Mt||1
NAD = Dora re Namibia|N$
NGN = Naira ye Nijeria|₦
RWF = Furenki re Ruwanda||0
SAR = Riyali re Saudi|SR
SCR = Rupi re Seyisheri|SRe
SDG = Dinari re Sudani
SDP = Paundi re Sudani|||1
SHP = Paundi re Senti Helena|SH£
SLL = Leoni|Le|0
SOS = Shiringi re Somalia|Ssh|0
STD = Dobra re Sao Tome ne Principe|Db|0
SZL = Lilangeni
TND = Dinari re Tunisia|DT|3
TZS = Shiringi re Tanzania|TSh|0
UGX = Shiringi re Uganda|USh|0
USD = Dora re Amerika|US$
XAF = Furenki CFA BEAC|FCFA|0
XOF = Furenki CFA BCEAO|CFA|0
ZAR = Randi|R
ZMK = Kwacha ye Zambia|ZK|0
ZWD = Dora re Zimbabwe|Z$|0|1
