UNPKG

twitter_cldr

Version:

JavaScript implementation of the ICU (International Components for Unicode) that uses the Common Locale Data Repository to format dates, plurals, and more. Based on twitter-cldr-rb

966 lines (860 loc) 239 kB
/* // Copyright 2012 Twitter, Inc // http://www.apache.org/licenses/LICENSE-2.0 // TwitterCLDR (JavaScript) v3.3.0 // Authors: Cameron Dutro [@camertron] Kirill Lashuk [@KL_7] portions by Sven Fuchs [@svenfuchs] // Homepage: https://twitter.com // Description: Provides date, time, number, and list formatting functionality for various Twitter-supported locales in Javascript. */ /*-module-*/ /*_lib/twitter_cldr_*/ (function() { var TwitterCldr, get_with_data_isolation, key, obj, proxy_or_primitive, root, with_data_isolation, __hasProp = {}.hasOwnProperty, __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, __slice = [].slice; TwitterCldr = {}; TwitterCldr.Utilities = (function() { function Utilities() {} Utilities.from_char_code = function(code_point) { if (code_point > 0xFFFF) { code_point -= 0x10000; return String.fromCharCode(0xD800 + (code_point >> 10), 0xDC00 + (code_point & 0x3FF)); } else { return String.fromCharCode(code_point); } }; Utilities.char_code_at = function(str, idx) { var code, end, hi, li, low, surrogatePairs; str += ''; end = str.length; surrogatePairs = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; while (surrogatePairs.exec(str) !== null) { li = surrogatePairs.lastIndex; if (li - 2 < idx) { idx += 1; } else { break; } } if ((idx >= end) || (idx < 0)) { return NaN; } code = str.charCodeAt(idx); if ((0xD800 <= code) && (code <= 0xDBFF)) { hi = code; low = str.charCodeAt(idx + 1); return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000; } return code; }; Utilities.unpack_string = function(str) { var code_point, idx, result, _i, _ref; result = []; for (idx = _i = 0, _ref = str.length; 0 <= _ref ? _i < _ref : _i > _ref; idx = 0 <= _ref ? ++_i : --_i) { code_point = this.char_code_at(str, idx); if (!code_point) { break; } result.push(code_point); } return result; }; Utilities.pack_array = function(char_arr) { var cur_char; return ((function() { var _i, _len, _results; _results = []; for (_i = 0, _len = char_arr.length; _i < _len; _i++) { cur_char = char_arr[_i]; _results.push(this.from_char_code(cur_char)); } return _results; }).call(this)).join(""); }; Utilities.arraycopy = function(orig, orig_index, dest, dest_index, length) { var count, elem, _i, _len, _ref; _ref = orig.slice(orig_index, orig_index + length); for (count = _i = 0, _len = _ref.length; _i < _len; count = ++_i) { elem = _ref[count]; dest[dest_index + count] = elem; } }; Utilities.max = function(arr) { var elem, i, max, start_index, _i, _j, _len, _ref; max = null; for (start_index = _i = 0, _len = arr.length; _i < _len; start_index = ++_i) { elem = arr[start_index]; if (elem != null) { max = elem; break; } } for (i = _j = start_index, _ref = arr.length; start_index <= _ref ? _j <= _ref : _j >= _ref; i = start_index <= _ref ? ++_j : --_j) { if (arr[i] > max) { max = arr[i]; } } return max; }; Utilities.min = function(arr) { var elem, i, min, start_index, _i, _j, _len, _ref; min = null; for (start_index = _i = 0, _len = arr.length; _i < _len; start_index = ++_i) { elem = arr[start_index]; if (elem != null) { min = elem; break; } } for (i = _j = start_index, _ref = arr.length; start_index <= _ref ? _j <= _ref : _j >= _ref; i = start_index <= _ref ? ++_j : --_j) { if (arr[i] < min) { min = arr[i]; } } return min; }; Utilities.is_even = function(num) { return num % 2 === 0; }; Utilities.is_odd = function(num) { return num % 2 === 1; }; Utilities.remove_duplicates = function(arr) { return arr.reduce((function(u, elem) { if (u.indexOf(elem) < 0) { u.push(elem); } return u; }), []); }; Utilities.regex_escape = function(s) { return s.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1"); }; Utilities.trim_string = function(s) { return s.replace(/^\s+|\s+$/g, ''); }; Utilities.clone = function(obj) { var flags, key, newInstance; if ((obj == null) || typeof obj !== 'object') { return obj; } if (obj instanceof Date) { return new Date(obj.getTime()); } if (obj instanceof RegExp) { flags = ''; if (obj.global != null) { flags += 'g'; } if (obj.ignoreCase != null) { flags += 'i'; } if (obj.multiline != null) { flags += 'm'; } if (obj.sticky != null) { flags += 'y'; } return new RegExp(obj.source, flags); } newInstance = new obj.constructor(); for (key in obj) { newInstance[key] = this.clone(obj[key]); } return newInstance; }; Utilities.compute_cache_key = function(pieces) { if ((pieces != null) && pieces.length > 0) { return pieces.join("|"); } return null; }; Utilities.traverse_object = function(obj, path) { var key, value, _i, _len; value = obj; if (path.length === 0) { return null; } for (_i = 0, _len = path.length; _i < _len; _i++) { key = path[_i]; if ((value != null) && value.hasOwnProperty(key)) { value = value[key]; } else { return null; } } return value; }; return Utilities; })(); TwitterCldr.NotImplementedException = (function(_super) { __extends(NotImplementedException, _super); function NotImplementedException(message) { this.message = message != null ? message : ""; NotImplementedException.__super__.constructor.apply(this, arguments); } return NotImplementedException; })(Error); TwitterCldr.Settings = (function() { function Settings() {} Settings.is_rtl = function() { return TwitterCldr.get_data().Settings.is_rtl; }; Settings.locale = function() { return TwitterCldr.get_data().Settings.locale; }; return Settings; })(); TwitterCldr.PluralRules = (function() { function PluralRules() {} PluralRules.runtime = (function(context) { this.buildArgsFor = function(num_str) { return [ this.n(num_str), this.i(num_str), this.f(num_str), this.t(num_str), this.v(num_str), this.w(num_str) ]; } this.n = function(str) { if (str.indexOf('.') > -1) { return this.toNum(this._n(str).replace(/([0]+\.$)/, '')); } else { return this.toNum(this._n(str)); } } this.i = function(str) { return this.toNum(this._i(str)); } this.f = function(str) { return this.toNum(this._f(str)); } this.t = function(str) { return this.toNum(this._t(str)); } this.v = function(str) { return this.toNum(this._v(str)); } this.w = function(str) { return this.toNum(this._w(str)); } // private this.toNum = function(str) { if (str.length == 0) { return 0; } else { return str.indexOf('.') > -1 ? parseFloat(str) : parseInt(str); } } // absolute value of the source number (integer and decimals). this._n = function(str) { return /(-)?(.*)/.exec(str)[2]; } /// integer digits of n. this._i = function(str) { return /([\d]+)(\..*)?/.exec(this._n(str))[1]; } // visible fractional digits in n, with trailing zeros. this._f = function(str) { return /([\d]+\.?)(.*)/.exec(this._n(str))[2]; } // visible fractional digits in n, without trailing zeros. this._t = function(str) { return this._f(str).replace(/([0]+$)/, ''); } // number of visible fraction digits in n, with trailing zeros. this._v = function(str) { return this._f(str).length.toString(); } // number of visible fraction digits in n, without trailing zeros. this._w = function(str) { return this._t(str).length.toString(); } return this; }).call({}) ; PluralRules.data = function() { return TwitterCldr.get_data().PluralRules; }; PluralRules.all = function(type) { if (type == null) { type = 'cardinal'; } return this.data().names[type]; }; PluralRules.rule_for = function(number, type) { var error; if (type == null) { type = 'cardinal'; } try { return eval(this.data().rules[type])(number.toString(), this.runtime); } catch (_error) { error = _error; return "other"; } }; return PluralRules; })(); TwitterCldr.TimespanFormatter = (function() { function TimespanFormatter() { this.approximate_multiplier = 0.75; this.default_type = "default"; this.time_in_seconds = { "second": 1, "minute": 60, "hour": 3600, "day": 86400, "week": 604800, "month": 2629743.83, "year": 31556926 }; } TimespanFormatter.data = function() { return TwitterCldr.get_data().TimespanFormatter; }; TimespanFormatter.prototype.patterns = function() { return this.constructor.data().patterns; }; TimespanFormatter.prototype.format = function(seconds, fmt_options) { var key, number, obj, options; if (fmt_options == null) { fmt_options = {}; } options = {}; for (key in fmt_options) { obj = fmt_options[key]; options[key] = obj; } options["direction"] || (options["direction"] = (seconds < 0 ? "ago" : "until")); if (options["unit"] === null || options["unit"] === void 0) { options["unit"] = this.calculate_unit(Math.abs(seconds), options); } options["type"] || (options["type"] = this.default_type); options["number"] = this.calculate_time(Math.abs(seconds), options["unit"]); number = this.calculate_time(Math.abs(seconds), options["unit"]); options["rule"] = TwitterCldr.PluralRules.rule_for(number); return this.patterns()[options["direction"]][options["unit"]][options["type"]][options["rule"]].replace(/\{[0-9]\}/, number.toString()); }; TimespanFormatter.prototype.calculate_unit = function(seconds, unit_options) { var key, multiplier, obj, options; if (unit_options == null) { unit_options = {}; } options = {}; for (key in unit_options) { obj = unit_options[key]; options[key] = obj; } if (options.approximate == null) { options["approximate"] = false; } multiplier = options.approximate ? this.approximate_multiplier : 1; if (seconds < (this.time_in_seconds.minute * multiplier)) { return "second"; } else if (seconds < (this.time_in_seconds.hour * multiplier)) { return "minute"; } else if (seconds < (this.time_in_seconds.day * multiplier)) { return "hour"; } else if (seconds < (this.time_in_seconds.week * multiplier)) { return "day"; } else if (seconds < (this.time_in_seconds.month * multiplier)) { return "week"; } else if (seconds < (this.time_in_seconds.year * multiplier)) { return "month"; } else { return "year"; } }; TimespanFormatter.prototype.calculate_time = function(seconds, unit) { return Math.round(seconds / this.time_in_seconds[unit]); }; return TimespanFormatter; })(); TwitterCldr.DateTimeFormatter = (function() { function DateTimeFormatter() { this.weekday_keys = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"]; this.methods = { 'G': 'era', 'y': 'year', 'Y': 'year_of_week_of_year', 'Q': 'quarter', 'q': 'quarter_stand_alone', 'M': 'month', 'L': 'month_stand_alone', 'w': 'week_of_year', 'W': 'week_of_month', 'd': 'day', 'D': 'day_of_month', 'F': 'day_of_week_in_month', 'E': 'weekday', 'e': 'weekday_local', 'c': 'weekday_local_stand_alone', 'a': 'period', 'h': 'hour', 'H': 'hour', 'K': 'hour', 'k': 'hour', 'm': 'minute', 's': 'second', 'S': 'second_fraction', 'z': 'timezone', 'Z': 'timezone', 'v': 'timezone_generic_non_location', 'V': 'timezone_metazone' }; } DateTimeFormatter.data = function() { return TwitterCldr.get_data().DateTimeFormatter; }; DateTimeFormatter.prototype.tokens = function() { return this.constructor.data().tokens; }; DateTimeFormatter.prototype.format = function(obj, options) { var format_token, token, tokens; format_token = (function(_this) { return function(token) { var result; result = ""; switch (token.type) { case "pattern": return _this.result_for_token(token, obj); default: return token.value.replace(/'([^']+)'/g, '$1'); } }; })(this); tokens = this.get_tokens(obj, options); return ((function() { var _i, _len, _results; _results = []; for (_i = 0, _len = tokens.length; _i < _len; _i++) { token = tokens[_i]; _results.push(format_token(token)); } return _results; })()).join(""); }; DateTimeFormatter.prototype.get_tokens = function(obj, options) { var format, type; format = options.format || "date_time"; type = options.type || "default"; if (format === "additional") { return this.tokens()["date_time"][format][this.additional_format_selector().find_closest(options.type)]; } else { return this.tokens()[format][type]; } }; DateTimeFormatter.prototype.result_for_token = function(token, date) { return this[this.methods[token.value[0]]](date, token.value, token.value.length); }; DateTimeFormatter.prototype.additional_format_selector = function() { return new TwitterCldr.AdditionalDateFormatSelector(this.tokens()["date_time"]["additional"]); }; DateTimeFormatter.additional_formats = function() { return new TwitterCldr.DateTimeFormatter().additional_format_selector().patterns(); }; DateTimeFormatter.prototype.era = function(date, pattern, length) { var choices, index, result; switch (length) { case 0: choices = ["", ""]; break; case 1: case 2: case 3: choices = TwitterCldr.Calendar.calendar()["eras"]["abbr"]; break; default: choices = TwitterCldr.Calendar.calendar()["eras"]["name"]; } index = date.getFullYear() < 0 ? 0 : 1; result = choices[index]; if (result != null) { return result; } else { return this.era(date, pattern.slice(0, -1), length - 1); } }; DateTimeFormatter.prototype.year = function(date, pattern, length) { var year; year = date.getFullYear().toString(); if (length === 2) { if (year.length !== 1) { year = year.slice(-2); } } if (length > 1) { year = ("0000" + year).slice(-length); } return year; }; DateTimeFormatter.prototype.year_of_week_of_year = function(date, pattern, length) { throw 'not implemented'; }; DateTimeFormatter.prototype.day_of_week_in_month = function(date, pattern, length) { throw 'not implemented'; }; DateTimeFormatter.prototype.quarter = function(date, pattern, length) { var quarter; quarter = ((date.getMonth() / 3) | 0) + 1; switch (length) { case 1: return quarter.toString(); case 2: return ("0000" + quarter.toString()).slice(-length); case 3: return TwitterCldr.Calendar.quarters({ format: 'format', names_form: 'abbreviated' })[quarter]; case 4: return TwitterCldr.Calendar.quarters({ format: 'format', names_form: 'wide' })[quarter]; } }; DateTimeFormatter.prototype.quarter_stand_alone = function(date, pattern, length) { var quarter; quarter = (date.getMonth() - 1) / 3 + 1; switch (length) { case 1: return quarter.toString(); case 2: return ("0000" + quarter.toString()).slice(-length); case 3: throw 'not yet implemented (requires cldr\'s "multiple inheritance")'; break; case 4: throw 'not yet implemented (requires cldr\'s "multiple inheritance")'; break; case 5: return TwitterCldr.Calendar.quarters({ format: 'stand-alone', names_form: 'narrow' })[quarter]; } }; DateTimeFormatter.prototype.month = function(date, pattern, length) { var month, month_str; month = date.getMonth(); month_str = (month + 1).toString(); switch (length) { case 1: return month_str; case 2: return ("0000" + month_str).slice(-length); case 3: return TwitterCldr.Calendar.months({ format: 'format', names_form: 'abbreviated' })[month]; case 4: return TwitterCldr.Calendar.months({ format: 'format', names_form: 'wide' })[month]; case 5: throw 'not yet implemented (requires cldr\'s "multiple inheritance")'; break; default: throw "Unknown date format"; } }; DateTimeFormatter.prototype.month_stand_alone = function(date, pattern, length) { var month, month_str; month = date.getMonth(); month_str = (month + 1).toString(); switch (length) { case 1: return month_str; case 2: return ("0000" + month_str).slice(-length); case 3: return TwitterCldr.Calendar.months({ format: 'stand-alone', names_form: 'abbreviated' })[month]; case 4: return TwitterCldr.Calendar.months({ format: 'stand-alone', names_form: 'wide' })[month]; case 5: return TwitterCldr.Calendar.months({ format: 'stand-alone', names_form: 'narrow' })[month]; default: throw "Unknown date format"; } }; DateTimeFormatter.prototype.day = function(date, pattern, length) { switch (length) { case 1: return date.getDate().toString(); case 2: return ("0000" + date.getDate().toString()).slice(-length); } }; DateTimeFormatter.prototype.weekday = function(date, pattern, length) { var key; key = this.weekday_keys[date.getDay()]; switch (length) { case 1: case 2: case 3: return TwitterCldr.Calendar.weekdays({ format: 'format', names_form: 'abbreviated' })[key]; case 4: return TwitterCldr.Calendar.weekdays({ format: 'format', names_form: 'wide' })[key]; case 5: return TwitterCldr.Calendar.weekdays({ format: 'stand-alone', names_form: 'narrow' })[key]; } }; DateTimeFormatter.prototype.weekday_local = function(date, pattern, length) { var day; switch (length) { case 1: case 2: day = date.getDay(); if (day === 0) { return "7"; } else { return day.toString(); } break; default: return this.weekday(date, pattern, length); } }; DateTimeFormatter.prototype.weekday_local_stand_alone = function(date, pattern, length) { switch (length) { case 1: return this.weekday_local(date, pattern, length); default: return this.weekday(date, pattern, length); } }; DateTimeFormatter.prototype.period = function(time, pattern, length) { if (time.getHours() > 11) { return TwitterCldr.Calendar.periods({ format: 'format', names_form: 'wide' })["pm"]; } else { return TwitterCldr.Calendar.periods({ format: 'format', names_form: 'wide' })["am"]; } }; DateTimeFormatter.prototype.hour = function(time, pattern, length) { var hour; hour = time.getHours(); switch (pattern[0]) { case 'h': if (hour > 12) { hour = hour - 12; } else if (hour === 0) { hour = 12; } break; case 'K': if (hour > 11) { hour = hour - 12; } break; case 'k': if (hour === 0) { hour = 24; } } if (length === 1) { return hour.toString(); } else { return ("000000" + hour.toString()).slice(-length); } }; DateTimeFormatter.prototype.minute = function(time, pattern, length) { if (length === 1) { return time.getMinutes().toString(); } else { return ("000000" + time.getMinutes().toString()).slice(-length); } }; DateTimeFormatter.prototype.second = function(time, pattern, length) { if (length === 1) { return time.getSeconds().toString(); } else { return ("000000" + time.getSeconds().toString()).slice(-length); } }; DateTimeFormatter.prototype.second_fraction = function(time, pattern, length) { if (length > 6) { throw 'can not use the S format with more than 6 digits'; } return ("000000" + Math.round(Math.pow(time.getMilliseconds() * 100.0, 6 - length)).toString()).slice(-length); }; DateTimeFormatter.prototype.timezone = function(time, pattern, length) { var hours, minutes, offset, offsetString, sign; offset = time.getTimezoneOffset(); hours = ("00" + (Math.floor(Math.abs(offset) / 60)).toString()).slice(-2); minutes = ("00" + (Math.abs(offset) % 60).toString()).slice(-2); sign = offset > 0 ? "-" : "+"; offsetString = sign + hours + ":" + minutes; switch (length) { case 1: case 2: case 3: return offsetString; default: return "UTC" + offsetString; } }; DateTimeFormatter.prototype.timezone_generic_non_location = function(time, pattern, length) { throw 'not yet implemented (requires timezone translation data")'; }; return DateTimeFormatter; })(); TwitterCldr.AdditionalDateFormatSelector = (function() { function AdditionalDateFormatSelector(pattern_hash) { this.pattern_hash = pattern_hash; } AdditionalDateFormatSelector.prototype.find_closest = function(goal_pattern) { var key, min_key, min_rank, rank, ranks; if ((goal_pattern == null) || goal_pattern.replace(/^\s+|\s+$/g, "").length === 0) { return null; } else { ranks = this.rank(goal_pattern); min_rank = 100; min_key = null; for (key in ranks) { rank = ranks[key]; if (rank < min_rank) { min_rank = rank; min_key = key; } } return min_key; } }; AdditionalDateFormatSelector.prototype.patterns = function() { var key, _results; _results = []; for (key in this.pattern_hash) { _results.push(key); } return _results; }; AdditionalDateFormatSelector.prototype.separate = function(pattern_key) { var cur_char, last_char, result, _i, _len; last_char = ""; result = []; for (_i = 0, _len = pattern_key.length; _i < _len; _i++) { cur_char = pattern_key[_i]; if (cur_char === last_char) { result[result.length - 1] += cur_char; } else { result.push(cur_char); } last_char = cur_char; } return result; }; AdditionalDateFormatSelector.prototype.all_separated_patterns = function() { var key, _results; _results = []; for (key in this.pattern_hash) { _results.push(this.separate(key)); } return _results; }; AdditionalDateFormatSelector.prototype.score = function(entities, goal_entities) { var score; score = this.exist_score(entities, goal_entities) * 2; score += this.position_score(entities, goal_entities); return score + this.count_score(entities, goal_entities); }; AdditionalDateFormatSelector.prototype.position_score = function(entities, goal_entities) { var found, goal_entity, index, sum; sum = 0; for (index in goal_entities) { goal_entity = goal_entities[index]; found = entities.indexOf(goal_entity); if (found > -1) { sum += Math.abs(found - index); } } return sum; }; AdditionalDateFormatSelector.prototype.exist_score = function(entities, goal_entities) { var count, entity, goal_entity, _i, _len; count = 0; for (_i = 0, _len = goal_entities.length; _i < _len; _i++) { goal_entity = goal_entities[_i]; if (!(((function() { var _j, _len1, _results; _results = []; for (_j = 0, _len1 = entities.length; _j < _len1; _j++) { entity = entities[_j]; if (entity[0] === goal_entity[0]) { _results.push(entity); } } return _results; })()).length > 0)) { count += 1; } } return count; }; AdditionalDateFormatSelector.prototype.count_score = function(entities, goal_entities) { var entity, found_entity, goal_entity, sum, _i, _len; sum = 0; for (_i = 0, _len = goal_entities.length; _i < _len; _i++) { goal_entity = goal_entities[_i]; found_entity = ((function() { var _j, _len1, _results; _results = []; for (_j = 0, _len1 = entities.length; _j < _len1; _j++) { entity = entities[_j]; if (entity[0] === goal_entity[0]) { _results.push(entity); } } return _results; })())[0]; if (found_entity != null) { sum += Math.abs(found_entity.length - goal_entity.length); } } return sum; }; AdditionalDateFormatSelector.prototype.rank = function(goal_pattern) { var result, separated_goal_pattern, separated_pattern, _i, _len, _ref; separated_goal_pattern = this.separate(goal_pattern); result = {}; _ref = this.all_separated_patterns(); for (_i = 0, _len = _ref.length; _i < _len; _i++) { separated_pattern = _ref[_i]; result[separated_pattern.join("")] = this.score(separated_pattern, separated_goal_pattern); } return result; }; return AdditionalDateFormatSelector; })(); TwitterCldr.Currencies = (function() { function Currencies() {} Currencies.currencies = {"ADP":{"currency":"ADP","name":"Andorran peseta","cldr_symbol":"ADP","symbol":"ADP","code_points":[65,68,80]},"AED":{"currency":"AED","name":"UAE dirham","cldr_symbol":"AED","symbol":"AED","code_points":[65,69,68]},"AFA":{"currency":"AFA","name":"Afghan afghani (1927–2002)","cldr_symbol":"AFA","symbol":"AFA","code_points":[65,70,65]},"AFN":{"currency":"AFN","name":"Afghan Afghani","cldr_symbol":"AFN","symbol":"؋","code_points":[1547]},"ALK":{"currency":"ALK","name":"Albanian lek (1946–1965)","cldr_symbol":"ALK","symbol":"ALK","code_points":[65,76,75]},"ALL":{"currency":"ALL","name":"Albanian lek","cldr_symbol":"ALL","symbol":"LEK","code_points":[76,69,75]},"AMD":{"currency":"AMD","name":"Armenian dram","cldr_symbol":"AMD","symbol":"AMD","code_points":[65,77,68]},"ANG":{"currency":"ANG","name":"Netherlands Antillean guilder","cldr_symbol":"ANG","symbol":"ƒ","code_points":[402]},"AOA":{"currency":"AOA","name":"Angolan kwanza","cldr_symbol":"Kz","symbol":"Kz","code_points":[75,122]},"AOK":{"currency":"AOK","name":"Angolan kwanza (1977–1991)","cldr_symbol":"AOK","symbol":"AOK","code_points":[65,79,75]},"AON":{"currency":"AON","name":"Angolan new kwanza (1990–2000)","cldr_symbol":"AON","symbol":"AON","code_points":[65,79,78]},"AOR":{"currency":"AOR","name":"Angolan readjusted kwanza (1995–1999)","cldr_symbol":"AOR","symbol":"AOR","code_points":[65,79,82]},"ARA":{"currency":"ARA","name":"Argentine austral","cldr_symbol":"ARA","symbol":"ARA","code_points":[65,82,65]},"ARL":{"currency":"ARL","name":"Argentine peso ley (1970–1983)","cldr_symbol":"ARL","symbol":"ARL","code_points":[65,82,76]},"ARM":{"currency":"ARM","name":"Argentine peso (1881–1970)","cldr_symbol":"ARM","symbol":"ARM","code_points":[65,82,77]},"ARP":{"currency":"ARP","name":"Argentine peso (1983–1985)","cldr_symbol":"ARP","symbol":"ARP","code_points":[65,82,80]},"ARS":{"currency":"ARS","name":"Argentine peso","cldr_symbol":"$","symbol":"$","code_points":[36]},"ATS":{"currency":"ATS","name":"Austrian schilling","cldr_symbol":"ATS","symbol":"ATS","code_points":[65,84,83]},"AUD":{"currency":"AUD","name":"Australian dollar","cldr_symbol":"A$","symbol":"$","code_points":[36]},"AWG":{"currency":"AWG","name":"Aruban florin","cldr_symbol":"AWG","symbol":"ƒ","code_points":[402],"alt_name":"Florins"},"AZM":{"currency":"AZM","name":"Azerbaijani manat (1993–2006)","cldr_symbol":"AZM","symbol":"AZM","code_points":[65,90,77]},"AZN":{"currency":"AZN","name":"Azerbaijani manat","cldr_symbol":"AZN","symbol":"ман","code_points":[1084,1072,1085]},"BAD":{"currency":"BAD","name":"Bosnia-Herzegovina dinar (1992–1994)","cldr_symbol":"BAD","symbol":"BAD","code_points":[66,65,68]},"BAM":{"currency":"BAM","name":"Bosnia-Herzegovina convertible mark","cldr_symbol":"KM","symbol":"KM","code_points":[75,77]},"BAN":{"currency":"BAN","name":"Bosnia-Herzegovina new dinar (1994–1997)","cldr_symbol":"BAN","symbol":"BAN","code_points":[66,65,78]},"BBD":{"currency":"BBD","name":"Barbadian dollar","cldr_symbol":"$","symbol":"$","code_points":[36]},"BDT":{"currency":"BDT","name":"Bangladeshi taka","cldr_symbol":"৳","symbol":"৳","code_points":[2547]},"BEC":{"currency":"BEC","name":"Belgian franc (convertible)","cldr_symbol":"BEC","symbol":"BEC","code_points":[66,69,67]},"BEF":{"currency":"BEF","name":"Belgian franc","cldr_symbol":"BEF","symbol":"BEF","code_points":[66,69,70]},"BEL":{"currency":"BEL","name":"Belgian franc (financial)","cldr_symbol":"BEL","symbol":"BEL","code_points":[66,69,76]},"BGL":{"currency":"BGL","name":"Bulgarian hard lev","cldr_symbol":"BGL","symbol":"BGL","code_points":[66,71,76]},"BGM":{"currency":"BGM","name":"Bulgarian socialist lev","cldr_symbol":"BGM","symbol":"BGM","code_points":[66,71,77]},"BGN":{"currency":"BGN","name":"Bulgarian lev","cldr_symbol":"BGN","symbol":"лв","code_points":[1083,1074]},"BGO":{"currency":"BGO","name":"Bulgarian lev (1879–1952)","cldr_symbol":"BGO","symbol":"BGO","code_points":[66,71,79]},"BHD":{"currency":"BHD","name":"Bahraini dinar","cldr_symbol":"BHD","symbol":"BHD","code_points":[66,72,68]},"BIF":{"currency":"BIF","name":"Burundian franc","cldr_symbol":"BIF","symbol":"BIF","code_points":[66,73,70]},"BMD":{"currency":"BMD","name":"Bermudan dollar","cldr_symbol":"$","symbol":"$","code_points":[36]},"BND":{"currency":"BND","name":"Brunei dollar","cldr_symbol":"$","symbol":"$","code_points":[36]},"BOB":{"currency":"BOB","name":"Bolivian boliviano","cldr_symbol":"Bs","symbol":"$b","code_points":[36,98]},"BOL":{"currency":"BOL","name":"Bolivian boliviano (1863–1963)","cldr_symbol":"BOL","symbol":"BOL","code_points":[66,79,76]},"BOP":{"currency":"BOP","name":"Bolivian peso","cldr_symbol":"BOP","symbol":"BOP","code_points":[66,79,80]},"BOV":{"currency":"BOV","name":"Bolivian mvdol","cldr_symbol":"BOV","symbol":"BOV","code_points":[66,79,86]},"BRB":{"currency":"BRB","name":"Brazilian new cruzeiro (1967–1986)","cldr_symbol":"BRB","symbol":"BRB","code_points":[66,82,66]},"BRC":{"currency":"BRC","name":"Brazilian cruzado (1986–1989)","cldr_symbol":"BRC","symbol":"BRC","code_points":[66,82,67]},"BRE":{"currency":"BRE","name":"Brazilian cruzeiro (1990–1993)","cldr_symbol":"BRE","symbol":"BRE","code_points":[66,82,69]},"BRL":{"currency":"BRL","name":"Brazilian real","cldr_symbol":"R$","symbol":"R$","code_points":[82,36]},"BRN":{"currency":"BRN","name":"Brazilian new cruzado (1989–1990)","cldr_symbol":"BRN","symbol":"BRN","code_points":[66,82,78]},"BRR":{"currency":"BRR","name":"Brazilian cruzeiro (1993–1994)","cldr_symbol":"BRR","symbol":"BRR","code_points":[66,82,82]},"BRZ":{"currency":"BRZ","name":"Brazilian cruzeiro (1942–1967)","cldr_symbol":"BRZ","symbol":"BRZ","code_points":[66,82,90]},"BSD":{"currency":"BSD","name":"Bahamian dollar","cldr_symbol":"$","symbol":"$","code_points":[36]},"BTN":{"currency":"BTN","name":"Bhutanese ngultrum","cldr_symbol":"BTN","symbol":"BTN","code_points":[66,84,78]},"BUK":{"currency":"BUK","name":"Burmese kyat","cldr_symbol":"BUK","symbol":"BUK","code_points":[66,85,75]},"BWP":{"currency":"BWP","name":"Botswanan pula","cldr_symbol":"P","symbol":"P","code_points":[80]},"BYB":{"currency":"BYB","name":"Belarusian new ruble (1994–1999)","cldr_symbol":"BYB","symbol":"BYB","code_points":[66,89,66]},"BYR":{"currency":"BYR","name":"Belarusian ruble","cldr_symbol":"р.","symbol":"p.","code_points":[112,46]},"BZD":{"currency":"BZD","name":"Belize dollar","cldr_symbol":"$","symbol":"BZ$","code_points":[66,90,36]},"CAD":{"currency":"CAD","name":"Canadian dollar","cldr_symbol":"CA$","symbol":"$","code_points":[36]},"CDF":{"currency":"CDF","name":"Congolese franc","cldr_symbol":"CDF","symbol":"CDF","code_points":[67,68,70]},"CHE":{"currency":"CHE","name":"WIR euro","cldr_symbol":"CHE","symbol":"CHE","code_points":[67,72,69]},"CHF":{"currency":"CHF","name":"Swiss franc","cldr_symbol":"CHF","symbol":"CHF","code_points":[67,72,70]},"CHW":{"currency":"CHW","name":"WIR franc","cldr_symbol":"CHW","symbol":"CHW","code_points":[67,72,87]},"CLE":{"currency":"CLE","name":"Chilean escudo","cldr_symbol":"CLE","symbol":"CLE","code_points":[67,76,69]},"CLF":{"currency":"CLF","name":"Chilean unit of account (UF)","cldr_symbol":"CLF","symbol":"CLF","code_points":[67,76,70]},"CLP":{"currency":"CLP","name":"Chilean peso","cldr_symbol":"$","symbol":"$","code_points":[36]},"CNX":{"currency":"CNX","name":"Chinese People’s Bank dollar","cldr_symbol":"CNX","symbol":"CNX","code_points":[67,78,88]},"CNY":{"currency":"CNY","name":"Chinese yuan","cldr_symbol":"CN¥","symbol":"¥","code_points":[165]},"COP":{"currency":"COP","name":"Colombian peso","cldr_symbol":"$","symbol":"$","code_points":[36]},"COU":{"currency":"COU","name":"Colombian real value unit","cldr_symbol":"COU","symbol":"COU","code_points":[67,79,85]},"CRC":{"currency":"CRC","name":"Costa Rican colón","cldr_symbol":"₡","symbol":"₡","code_points":[8353]},"CSD":{"currency":"CSD","name":"Serbian dinar (2002–2006)","cldr_symbol":"CSD","symbol":"CSD","code_points":[67,83,68]},"CSK":{"currency":"CSK","name":"Czechoslovak hard koruna","cldr_symbol":"CSK","symbol":"CSK","code_points":[67,83,75]},"CUC":{"currency":"CUC","name":"Cuban convertible peso","cldr_symbol":"$","symbol":"$","code_points":[36]},"CUP":{"currency":"CUP","name":"Cuban peso","cldr_symbol":"$","symbol":"₱","code_points":[8369]},"CVE":{"currency":"CVE","name":"Cape Verdean escudo","cldr_symbol":"CVE","symbol":"CVE","code_points":[67,86,69]},"CYP":{"currency":"CYP","name":"Cypriot pound","cldr_symbol":"CYP","symbol":"CYP","code_points":[67,89,80]},"CZK":{"currency":"CZK","name":"Czech Republic koruna","cldr_symbol":"Kč","symbol":"Kč","code_points":[75,269]},"DDM":{"currency":"DDM","name":"East German mark","cldr_symbol":"DDM","symbol":"DDM","code_points":[68,68,77]},"DEM":{"currency":"DEM","name":"German mark","cldr_symbol":"DEM","symbol":"DEM","code_points":[68,69,77]},"DJF":{"currency":"DJF","name":"Djiboutian franc","cldr_symbol":"DJF","symbol":"DJF","code_points":[68,74,70]},"DKK":{"currency":"DKK","name":"Danish krone","cldr_symbol":"kr","symbol":"kr","code_points":[107,114]},"DOP":{"currency":"DOP","name":"Dominican peso","cldr_symbol":"$","symbol":"RD$","code_points":[82,68,36]},"DZD":{"currency":"DZD","name":"Algerian dinar","cldr_symbol":"DZD","symbol":"DZD","code_points":[68,90,68]},"ECS":{"currency":"ECS","name":"Ecuadorian sucre","cldr_symbol":"ECS","symbol":"ECS","code_points":[69,67,83]},"ECV":{"currency":"ECV","name":"Ecuadorian unit of constant value","cldr_symbol":"ECV","symbol":"ECV","code_points":[69,67,86]},"EEK":{"currency":"EEK","name":"Estonian kroon","cldr_symbol":"EEK","symbol":"kr","code_points":[107,114]},"EGP":{"currency":"EGP","name":"Egyptian pound","cldr_symbol":"E£","symbol":"£","code_points":[163]},"ERN":{"currency":"ERN","name":"Eritrean nakfa","cldr_symbol":"ERN","symbol":"ERN","code_points":[69,82,78]},"ESA":{"currency":"ESA","name":"Spanish peseta (A account)","cldr_symbol":"ESA","symbol":"ESA","code_points":[69,83,65]},"ESB":{"currency":"ESB","name":"Spanish peseta (convertible account)","cldr_symbol":"ESB","symbol":"ESB","code_points":[69,83,66]},"ESP":{"currency":"ESP","name":"Spanish peseta","cldr_symbol":"₧","symbol":"₧","code_points":[8359]},"ETB":{"currency":"ETB","name":"Ethiopian birr","cldr_symbol":"ETB","symbol":"ETB","code_points":[69,84,66]},"EUR":{"currency":"EUR","name":"euro","cldr_symbol":"€","symbol":"€","code_points":[8364]},"FIM":{"currency":"FIM","name":"Finnish markka","cldr_symbol":"FIM","symbol":"FIM","code_points":[70,73,77]},"FJD":{"currency":"FJD","name":"Fijian dollar","cldr_symbol":"$","symbol":"$","code_points":[36]},"FKP":{"currency":"FKP","name":"Falkland Islands pound","cldr_symbol":"£","symbol":"£","code_points":[163]},"FRF":{"currency":"FRF","name":"French franc","cldr_symbol":"FRF","symbol":"FRF","code_points":[70,82,70]},"GBP":{"currency":"GBP","name":"British pound sterling","cldr_symbol":"£","symbol":"£","code_points":[163]},"GEK":{"currency":"GEK","name":"Georgian kupon larit","cldr_symbol":"GEK","symbol":"GEK","code_points":[71,69,75]},"GEL":{"currency":"GEL","name":"Georgian lari","cldr_symbol":"GEL","symbol":"GEL","code_points":[71,69,76]},"GHC":{"currency":"GHC","name":"Ghanaian cedi (1979–2007)","cldr_symbol":"GHC","symbol":"GHC","code_points":[71,72,67]},"GHS":{"currency":"GHS","name":"Ghanaian cedi","cldr_symbol":"GHS","symbol":"¢","code_points":[162]},"GIP":{"currency":"GIP","name":"Gibraltar pound","cldr_symbol":"£","symbol":"£","code_points":[163]},"GMD":{"currency":"GMD","name":"Gambian dalasi","cldr_symbol":"GMD","symbol":"GMD","code_points":[71,77,68]},"GNF":{"currency":"GNF","name":"Guinean franc","cldr_symbol":"FG","symbol":"FG","code_points":[70,71]},"GNS":{"currency":"GNS","name":"Guinean syli","cldr_symbol":"GNS","symbol":"GNS","code_points":[71,78,83]},"GQE":{"currency":"GQE","name":"Equatorial Guinean ekwele","cldr_symbol":"GQE","symbol":"GQE","code_points":[71,81,69]},"GRD":{"currency":"GRD","name":"Greek drachma","cldr_symbol":"GRD","symbol":"GRD","code_points":[71,82,68]},"GTQ":{"currency":"GTQ","name":"Guatemalan quetzal","cldr_symbol":"Q","symbol":"Q","code_points":[81]},"GWE":{"currency":"GWE","name":"Portuguese Guinea escudo","cldr_symbol":"GWE","symbol":"GWE","code_points":[71,87,69]},"GWP":{"currency":"GWP","name":"Guinea-Bissau peso","cldr_symbol":"GWP","symbol":"GWP","code_points":[71,87,80]},"GYD":{"currency":"GYD","name":"Guyanaese dollar","cldr_symbol":"$","symbol":"$","code_points":[36]},"HKD":{"currency":"HKD","name":"Hong Kong dollar","cldr_symbol":"HK$","symbol":"$","code_points":[36]},"HNL":{"currency":"HNL","name":"Honduran lempira","cldr_symbol":"L","symbol":"L","code_points":[76]},"HRD":{"currency":"HRD","name":"Croatian dinar","cldr_symbol":"HRD","symbol":"HRD","code_points":[72,82,68]},"HRK":{"currency":"HRK","name":"Croatian kuna","cldr_symbol":"kn","symbol":"kn","code_points":[107,110]},"HTG":{"currency":"HTG","name":"Haitian gourde","cldr_symbol":"HTG","symbol":"HTG","code_points":[72,84,71]},"HUF":{"currency":"HUF","name":"Hungarian forint","cldr_symbol":"Ft","symbol":"Ft","code_points":[70,116]},"IDR":{"currency":"IDR","name":"Indonesian rupiah","cldr_symbol":"Rp","symbol":"Rp","code_points":[82,112]},"IEP":{"currency":"IEP","name":"Irish pound","cldr_symbol":"IEP","symbol":"IEP","code_points":[73,69,80]},"ILP":{"currency":"ILP","name":"Israeli pound","cldr_symbol":"ILP","symbol":"ILP","code_points":[73,76,80]},"ILR":{"currency":"ILR","name":"Israeli sheqel (1980–1985)","cldr_symbol":"ILR","symbol":"ILR","code_points":[73,76,82]},"ILS":{"currency":"ILS","name":"Israeli new sheqel","cldr_symbol":"₪","symbol":"₪","code_points":[8362]},"INR":{"currency":"INR","name":"Indian rupee","cldr_symbol":"₹","symbol":"₨","code_points":[8360]},"IQD":{"currency":"IQD","name":"Iraqi dinar","cldr_symbol":"IQD","symbol":"IQD","code_points":[73,81,68]},"IRR":{"currency":"IRR","name":"Iranian rial","cldr_symbol":"IRR","symbol":"﷼","code_points":[65020]},"ISJ":{"currency":"ISJ","name":"Icelandic króna (1918–1981)","cldr_symbol":"ISJ","symbol":"ISJ","code_points":[73,83,74]},"ISK":{"currency":"ISK","name":"Icelandic króna","cldr_symbol":"kr","symbol":"kr","code_points":[107,114]},"ITL":{"currency":"ITL","name":"Italian lira","cldr_symbol":"ITL","symbol":"ITL","code_points":[73,84,76]},"JMD":{"currency":"JMD","name":"Jamaican dollar","cldr_symbol":"$","symbol":"$","code_points":[36]},"JOD":{"currency":"JOD","name":"Jordanian dinar","cldr_symbol":"JOD","symbol":"JOD","code_points":[74,79,68]},"JPY":{"currency":"JPY","name":"Japanese yen","cldr_symbol":"¥","symbol":"¥","code_points":[165]},"KES":{"currency":"KES","name":"Kenyan shilling","cldr_symbol":"KES","symbol":"KES","code_points":[75,69,83]},"KGS":{"currency":"KGS","name":"Kyrgystani som","cldr_symbol":"KGS","symbol":"лв","code_points":[1083,1074]},"KHR":{"currency":"KHR","name":"Cambodian riel","cldr_symbol":"៛","symbol":"៛","code_points":[6107]},"KMF":{"currency":"KMF","name":"Comorian franc","cldr_symbol":"CF","symbol":"CF","code_points":[67,70]},"KPW":{"currency":"KPW","name":"North Korean won","cldr_symbol":"₩","symbol":"₩","code_points":[8361]},"KRH":{"currency":"KRH","name":"South Korean hwan (1953–1962)","cldr_symbol":"KRH","symbol":"KRH","code_points":[75,82,72]},"KRO":{"currency":"KRO","name":"South Korean won (1945–1953)","cldr_symbol":"KRO","symbol":"KRO","code_points":[75,82,79]},"KRW":{"currency":"KRW","name":"South Korean won","cldr_symbol":"₩","symbol":"₩","code_points":[8361]},"KWD":{"currency":"KWD","name":"Kuwaiti dinar","cldr_symbol":"KWD","symbol":"KWD","code_points":[75,87,68]},"KYD":{"currency":"KYD","name":"Cayman Islands dollar","cldr_symbol":"$","symbol":"$","code_points":[36]},"KZT":{"currency":"KZT","name":"Kazakhstani tenge","cldr_symbol":"₸","symbol":"лв","code_points":[1083,1074]},"LAK":{"currency":"LAK","name":"Laotian kip","cldr_symbol":"₭","symbol":"₭","code_points":[8365]},"LBP":{"currency":"LBP","name":"Lebanese pound","cldr_symbol":"L£","symbol":"£","code_points":[163]},"LKR":{"currency":"LKR","name":"Sri Lankan rupee","cldr_symbol":"Rs","symbol":"₨","code_points":[8360]},"LRD":{"currency":"LRD","name":"Liberian dollar","cldr_symbol":"$","symbol":"$","code_points":[36]},"LSL":{"currency":"LSL","name":"Lesotho loti","cldr_symbol":"LSL","symbol":"LSL","code_points":[76,83,76]},"LTL":{"currency":"LTL","name":"Lithuanian litas","cldr_symbol":"Lt","symbol":"Lt","code_points":[76,116]},"LTT":{"currency":"LTT","name":"Lithuanian talonas","cldr_symbol":"LTT","symbol":"LTT","code_points":[76,84,84]},"LUC":{"currency":"LUC","name":"Luxembourgian convertible franc","cldr_symbol":"LUC","symbol":"LUC","code_points":[76,85,67]},"LUF":{"currency":"LUF","name":"Luxembourgian franc","cldr_symbol":"LUF","symbol":"LUF","code_points":[76,85,70]},"LUL":{"currency":"LUL","name":"Luxembourg financial franc","cldr_symbol":"LUL","symbol":"LUL","code_points":[76,85,76]},"LVL":{"currency":"LVL","name":"Latvian lats","cldr_symbol":"Ls","symbol":"Ls","code_points":[76,115]},"LVR":{"currency":"LVR","name":"Latvian ruble","cldr_symbol":"LVR","symbol":"LVR","code_points":[76,86,82]},"LYD":{"currency":"LYD","name":"Libyan dinar","cldr_symbol":"LYD","symbol":"LYD","code_points":[76,89,68]},"MAD":{"currency":"MAD","name":"Moroccan dirham","cldr_symbol":"MAD","symbol":"MAD","code_points":[77,65,68]},"MAF":{"currency":"MAF","name":"Moroccan franc","cldr_symbol":"MAF","symbol":"MAF","code_points":[77,65,70]},"MCF":{"currency":"MCF","name":"Monegasque franc","cldr_symbol":"MCF","symbol":"MCF","code_points":[77,67,70]},"MDC":{"currency":"MDC","name":"Moldovan cupon","cldr_symbol":"MDC","symbol":"MDC","code_points":[77,68,67]},"MDL":{"currency":"MDL","name":"Moldovan leu","cldr_symbol":"MDL","symbol":"MDL","code_points":[77,68,76]},"MGA":{"currency":"MGA","name":"Malagasy Ariary","cldr_symbol":"Ar","symbol":"Ar","code_points":[65,114]},"MGF":{"currency":"MGF","name":"Malagasy franc","cldr_symbol":"MGF","symbol":"MGF","code_points":[77,71,70]},"MKD":{"currency":"MKD","name":"Macedonian denar","cldr_symbol":"MKD","symbol":"MKD","code_points":[77,75,68]},"MKN":{"currency":"MKN","name":"Macedonian denar (1992–1993)","cldr_symbol":"MKN","symbol":"MKN","code_points":[77,75,78]},"MLF":{"currency":"MLF","name":"Malian franc","cldr_symbol":"MLF","symbol":"MLF","code_points":[77,76,70]},"MMK":{"currency":"MMK","name":"Myanmar kyat","cldr_symbol":"K","symbol":"K","code_points":[75]},"MNT":{"currency":"MNT","name":"Mongolian tugrik","cldr_symbol":"₮","symbol":"₮","code_points":[8366]},"MOP":{"currency":"MOP","name":"Macanese pataca","cldr_symbol":"MOP","symbol":"MOP","code_points":[77,79,80]},"MRO":{"currency":"MRO","name":"Mauritanian ouguiya","cldr_symbol":"MRO","symbol":"MRO","code_points":[77,82,79]},"MTL":{"currency":"MTL","name":"Maltese lira","cldr_symbol":"MTL","symbol":"MTL","code_points":[77,84,76]},"MTP":{"currency":"MTP","name":"Maltese pound","cldr_symbol":"MTP","symbol":"MTP","code_points":[77,84,80]},"MUR":{"currency":"MUR","name":"Mauritian rupee","cldr_symbol":"Rs","symbol":"₨","code_points":[8360]},"MVP":{"currency":"MVP","name":"Maldivian rupee (1947–1981)","cldr_symbol":"MVP","symbol":"MVP","code_points":[77,86,80]},"MVR":{"currency":"MVR","name":"Maldivian rufiyaa","cldr_symbol":"MVR","symbol":"MVR","code_points":[77,86,82]},"MWK":{"currency":"MWK","name":"Malawian Kwacha","cldr_symbol":"MWK","symbol":"MWK","code_points":[77,87,75]},"MXN":{"currency":"MXN","name":"Mexican peso","cldr_symbol":"MX$","symbol":"$","code_points":[36]},"MXP":{"currency":"MXP","name":"Mexican silver peso (1861–1992)","cldr_symbol":"MXP","symbol":"MXP","code_points":[77,88,80]},"MXV":{"currency":"MXV","name":"Mexican investment unit","cldr_symbol":"MXV","symbol":"MXV","code_points":[77,88,86]},"MYR":{"currency":"MYR","name":"Malaysian ringgit","cldr_symbol":"RM","symbol":"RM","code_points":[82,77]},"MZE":{"currency":"MZE","name":"Mozambican escudo","cldr_symbol":"MZE","symbol":"MZE","code_points":[77,90,69]},"MZM":{"currency":"MZM","name":"Mozambican metical (1980–2006)","cldr_symbol":"MZM","symbol":"MZM","code_points":[77,90,77]},"MZN":{"currency":"MZN","name":"Mozambican metical","cldr_symbol":"MZN","symbol":"MT","code_points":[77,84]},"NAD":{"currency":"NAD","name":"Namibian dollar","cldr_symbol":"$","symbol":"$","code_points":[36]},"NGN":{"currency":"NGN","name":"Nigerian naira","cldr_symbol":"₦","symbol":"₦","code_points":[8358]},"NIC":{"currency":"NIC","name":"Nicaraguan córdoba (1988–1991)","cldr_symbol":"NIC","symbol":"NIC","code_points":[78,73,67]},"NIO":{"currency":"NIO","name":"Nicaraguan córdoba","cldr_symbol":"C$","symbol":"C$","code_points":[67,36]},"NLG":{"currency":"NLG","name":"Dutch guilder","cldr_symbol":"NLG","symbol":"NLG","code_points":[78,76,71]},"NOK":{"currency":"NOK","name":"Norwegian krone","cldr_symbol":"kr","symbol":"kr","code_points":[107,114]},"NPR":{"currency":"NPR","name":"Nepalese rupee","cldr_symbol":"Rs","symbol":"₨","code_points":[8360]},"NZD":{"currency":"NZD","name":"New Zealand dollar","cldr_symbol":"NZ$","symbol":"$","code_points":[36]},"OMR":{"currency":"OMR","name":"Omani rial","cldr_symbol":"OMR","symbol":"﷼","code_points":[65020]},"PAB":{"currency":"PAB","name":"Panamanian balboa","cldr_symbol":"PAB","symbol":"B/.","code_points":[66,47,46]},"PEI":{"currency":"PEI","name":"Peruvian inti","cldr_symbol":"PEI","symbol":"PEI","code_points":[80,69,73]},"PEN":{"currency":"PEN","name":"Peruvian nuevo sol","cldr_symbol":"PEN","symbol":"S/.","code_points":[83,47,46]},"PES":{"currency":"PES","name":"Peruvian sol (1863–1965)","cldr_symbol":"PES","symbol":"PES","code_points":[80,69,83]},"PGK":{"currency":"PGK","name":"Papua New Guinean kina","cldr_symbol":"PGK","symbol":"PGK","code_points":[80,71,75]},"PHP":{"currency":"PHP","name":"Philippine peso","cldr_symbol":"₱","symbol":"Php","code_points":[80,104,112]},"PKR":{"currency":"PKR","name":"Pakistani rupee","cldr_symbol":"Rs","symbol":"₨","code_points":[8360]},"PLN"