# 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

AUD = aŭstrala dolaro|AU$
BRL = brazila realo|R$
CNY = ĉina juano|CN¥
EUR = eŭro|€
GBP = brita sterlinga funto|UK£
INR = hinda rupio|Rs.
JPY = japana eno|JP¥|0
NOK = norvega krono|Nkr
RUB = rusa rublo
USD = usona dolaro|US$
XAG = arĝento|||1
XAU = oro|||1
XBB = eŭropa monunuo|||1
XFO = franca ora franko|||1
XPD = paladio|||1
XPT = plateno|||1
