├── .eslintignore ├── .nvmrc ├── .ruby-version ├── .gitignore ├── Gemfile ├── .prettierrc ├── test ├── mocha.opts ├── krokusMath.spec.js ├── currencies.spec.js ├── locales.spec.js ├── krokusFormat.spec.js └── krokus.spec.js ├── Rakefile ├── src ├── index.js ├── js │ ├── krokusMath.js │ ├── krokus.js │ └── krokusFormat.js ├── rb │ └── createLocaleJsonFromUnicode.rb └── generated │ ├── currencies.json │ └── locales.json ├── Gemfile.lock ├── .babelrc ├── .codeclimate.yml ├── webpack.config.js ├── .travis.yml ├── LICENSE ├── .eslintrc ├── package.json ├── README.md └── dist └── krokus.js /.eslintignore: -------------------------------------------------------------------------------- 1 | dist -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 10.13 2 | -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | ruby-2.4.5 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .bundle 2 | node_modules 3 | coverage 4 | core.zip 5 | .nyc_output 6 | .DS_Store 7 | isolate-* 8 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem "nokogiri" 4 | gem "rake" 5 | gem "json" 6 | gem "rubyzip" 7 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 80, 3 | "parser": "flow", 4 | "singleQuote": true, 5 | "trailingComma": "es5" 6 | } -------------------------------------------------------------------------------- /test/mocha.opts: -------------------------------------------------------------------------------- 1 | --slow 20 2 | --require @babel/register 3 | --reporter spec 4 | --check-leaks 5 | --perf-basic-prof 6 | --prof 7 | --recursive 8 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'net/http' 3 | 4 | task :default => [:update] 5 | 6 | task :update do 7 | ruby "src/rb/createLocaleJsonFromUnicode.rb" 8 | end 9 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | export { 2 | formatCurrency, 3 | formatNumber, 4 | parseCurrency, 5 | parseNumber, 6 | } from './js/krokus.js'; 7 | 8 | import currencyList from './generated/currencies.json'; 9 | import localeList from './generated/locales.json'; 10 | 11 | export const currencies = currencyList; 12 | export const locales = localeList; 13 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | json (2.2.0) 5 | mini_portile2 (2.4.0) 6 | nokogiri (1.10.2) 7 | mini_portile2 (~> 2.4.0) 8 | rake (12.3.2) 9 | rubyzip (1.2.2) 10 | 11 | PLATFORMS 12 | ruby 13 | 14 | DEPENDENCIES 15 | json 16 | nokogiri 17 | rake 18 | rubyzip 19 | 20 | BUNDLED WITH 21 | 1.17.1 22 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | [ 4 | "@babel/preset-env", 5 | { 6 | "targets": { 7 | "browsers": [ 8 | "> 0.25%", 9 | "not dead" 10 | ] 11 | } 12 | } 13 | ] 14 | ], 15 | "env": { 16 | "test": { 17 | "presets": [ 18 | "@babel/preset-env" 19 | ] 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /.codeclimate.yml: -------------------------------------------------------------------------------- 1 | --- 2 | engines: 3 | bundler-audit: 4 | enabled: true 5 | duplication: 6 | enabled: true 7 | config: 8 | languages: 9 | - ruby 10 | - javascript 11 | eslint: 12 | enabled: true 13 | fixme: 14 | enabled: true 15 | rubocop: 16 | enabled: false 17 | ratings: 18 | paths: 19 | - Gemfile.lock 20 | - "**.js" 21 | - "**.jsx" 22 | - "**.rb" 23 | exclude_paths: 24 | - dist/ 25 | - test/ 26 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | bail: true, 3 | mode: 'production', 4 | entry: { 5 | krokus: './src/index.js', 6 | }, 7 | output: { 8 | filename: '[name].js', 9 | libraryTarget: 'commonjs', 10 | }, 11 | resolve: { 12 | extensions: ['.js', '.json'], 13 | }, 14 | module: { 15 | rules: [ 16 | { 17 | test: /\.js$/, 18 | use: { 19 | loader: 'babel-loader', 20 | options: { 21 | presets: ['@babel/preset-env'] 22 | } 23 | } 24 | }, 25 | ], 26 | }, 27 | stats: { 28 | colors: true, 29 | }, 30 | }; 31 | -------------------------------------------------------------------------------- /src/js/krokusMath.js: -------------------------------------------------------------------------------- 1 | export const round = (number, decimals) => { 2 | return Math.round(number * Math.pow(10, decimals)) / Math.pow(10, decimals); 3 | }; 4 | 5 | export const trunc = x => { 6 | return x < 0 ? Math.ceil(x) : Math.floor(x); 7 | }; 8 | 9 | export const getDecimalPart = number => { 10 | const numberAsString = String(number); 11 | const indexOfDecimals = numberAsString.indexOf('.'); 12 | if (indexOfDecimals < 0) { 13 | return 0; 14 | } 15 | return Number('0.' + numberAsString.substr(indexOfDecimals + 1)); 16 | }; 17 | 18 | export const countNumberOfDecimals = number => { 19 | const numberAsString = String(number); 20 | const indexOfDecimals = numberAsString.indexOf('.'); 21 | if (indexOfDecimals < 0) { 22 | return 0; 23 | } 24 | return numberAsString.substr(indexOfDecimals + 1).length; 25 | }; 26 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | install: 3 | - bundle install 4 | - yarn 5 | script: 6 | - yarn test 7 | deploy: 8 | tag: next 9 | provider: npm 10 | email: tina.umlandt@gmail.com 11 | api_key: 12 | secure: 04W5ymOr3usbzAQEw1Fl1QiudJ9j1HQ0cFgWnxqbUMAtI7dZPo635nM5/0jiJdLwc7x4hTXBPtmo8y5IujzfgRN4d4mcG2QZ2+4wiI5nExYZhF6xS0YheWpPYn9E5uG5FomBbwsLPEDo6eW1fYTs71bxCfi5s+WDWw+bSjkmDVJNqmAc5A7S9dZFPkaDbofGqnk5ubJZG4VjjJtNqo+1N9XINysIavmmhEuN1pd+jwTlcg9MkmpLI2N+6uigHS3AClwE70UBpA4p21Hfy0OmdPghXLN+jOnl69CyAUsNtQ/knEp3Tc7VVHOXvo+9RPHGRf8xN4HJVAnH3Kt9LBeh/HCvUo0aecRDzL/C3kRmt9fyrlNtligm+b40e677jiqnP3RPv1vkVAhRuw3+ib+OT+1dE/F7F3dSUyKcPnzkgAJ7HO/kP2eJlw/me6jBuPMTKS3pbDtlpgrfpAi8SUoDmN3wh7kv//feabSKhql63ddhUCUhw2QmsEwZ3soA9+qqZzqdeX7ZBLlT1GkCHlUt9CPGAAEmLsDzPvwSCB86JqIqTq/vufxEOghLA0QioH3W+aobermvAeY/mBIDJ39M33zbLw5znWJfXTeXCxwFckS2MAXMdPIwwfr7B2EAylohPGwWId8WzohWvuarJozeELzvHuF1rNKqRKYVQtnpHk0= 13 | on: 14 | tags: true 15 | repo: klyrr/krokus 16 | branch: master 17 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Tina U 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "commonjs": true, 4 | "es6": true 5 | }, 6 | "extends": "eslint:recommended", 7 | "parserOptions": { 8 | "ecmaVersion": 6, 9 | "sourceType": "module" 10 | }, 11 | "rules": { 12 | "indent": [ 13 | "error", 14 | 2 15 | ], 16 | "linebreak-style": [ 17 | "error", 18 | "unix" 19 | ], 20 | "quotes": [ 21 | "error", 22 | "single" 23 | ], 24 | "semi": [ 25 | "error", 26 | "always" 27 | ], 28 | "no-extra-parens": [ 29 | "error", 30 | "all" 31 | ], 32 | "class-methods-use-this": "error", 33 | "complexity": [ 34 | "error", 35 | 8 36 | ], 37 | "consistent-return": [ 38 | "error", 39 | { 40 | "treatUndefinedAsUnspecified": false 41 | } 42 | ], 43 | "no-unused-expressions": [ 44 | "error" 45 | ], 46 | "no-unused-vars": "error", 47 | "vars-on-top": [ 48 | "error" 49 | ], 50 | "yoda": "error", 51 | "no-var": "error", 52 | "prefer-arrow-callback": "error", 53 | "prefer-const": "error", 54 | "prefer-spread": "error", 55 | "sort-imports": "error" 56 | } 57 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "krokus", 3 | "version": "1.1.0", 4 | "description": "Provider for localization patterns and a number and currency formatter.", 5 | "keywords": [ 6 | "localization", 7 | "l10n", 8 | "format", 9 | "numberformat", 10 | "numberFormat", 11 | "currencyformat", 12 | "currencyFormat", 13 | "locale" 14 | ], 15 | "repository": { 16 | "type": "git", 17 | "url": "git+https://github.com/klyrr/krokus.git" 18 | }, 19 | "license": "MIT", 20 | "scripts": { 21 | "compile": "webpack", 22 | "test": "c8 mocha", 23 | "format": "prettier-eslint --write --prettier-last \"**/*.js\"" 24 | }, 25 | "devDependencies": { 26 | "@babel/cli": "^7.4.3", 27 | "@babel/core": "^7.4.3", 28 | "@babel/preset-env": "^7.4.3", 29 | "@babel/register": "^7.4.0", 30 | "babel-loader": "^8.0.5", 31 | "c8": "^3.4.0", 32 | "chai": "^4.2.0", 33 | "eslint": "^5.16.0", 34 | "mocha": "^6.0.2", 35 | "prettier": "^1.16.4", 36 | "prettier-eslint": "^8.8.2", 37 | "prettier-eslint-cli": "^4.7.1", 38 | "webpack": "^4.29.6", 39 | "webpack-cli": "^3.3.0" 40 | }, 41 | "bugs": { 42 | "url": "https://github.com/klyrr/krokus/issues" 43 | }, 44 | "author": "Tina Umlandt", 45 | "homepage": "https://github.com/klyrr/krokus#readme", 46 | "main": "dist/krokus.js", 47 | "files": [ 48 | "dist" 49 | ], 50 | "directories": { 51 | "test": "test" 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /test/krokusMath.spec.js: -------------------------------------------------------------------------------- 1 | /* global describe it */ 2 | 3 | import { 4 | countNumberOfDecimals, 5 | getDecimalPart, 6 | round, 7 | trunc, 8 | } from '../src/js/krokusMath'; 9 | 10 | import { assert } from 'chai'; 11 | 12 | describe('Krokus Math', () => { 13 | describe('round', () => { 14 | it('should round the numbers', () => { 15 | assert.equal(round(23.44, 2), 23.44); 16 | assert.equal(round(23.442, 2), 23.44); 17 | assert.equal(round(23.446, 2), 23.45); 18 | assert.equal(round(23.44, 1), 23.4); 19 | assert.equal(round(23.44, 4), 23.44); 20 | assert.equal(round(432.5579, 3), 432.558); 21 | assert.equal(round(-432.5579, 3), -432.558); 22 | }); 23 | }); 24 | 25 | describe('trunc', () => { 26 | it('should trunc the given numbers', () => { 27 | assert.equal(trunc(23.44), 23); 28 | assert.equal(trunc(23), 23); 29 | }); 30 | }); 31 | 32 | describe('countNumberOfDecimals', () => { 33 | it('should return the number of decimals', () => { 34 | assert.equal(countNumberOfDecimals(23.44), 2); 35 | assert.equal(countNumberOfDecimals(23), 0); 36 | assert.equal(countNumberOfDecimals(23.76262), 5); 37 | assert.equal(countNumberOfDecimals(-23.76262), 5); 38 | }); 39 | }); 40 | 41 | describe('getDecimalPart', () => { 42 | it('should return the number of decimals', () => { 43 | assert.equal(getDecimalPart(23.44), 0.44); 44 | assert.equal(getDecimalPart(23), 0); 45 | assert.equal(getDecimalPart(23.76262), 0.76262); 46 | assert.equal(getDecimalPart(-23.76262), 0.76262); 47 | }); 48 | }); 49 | }); 50 | -------------------------------------------------------------------------------- /test/currencies.spec.js: -------------------------------------------------------------------------------- 1 | /* global describe, it */ 2 | import { AED, EUR, INR, JPY, USD } from '../src/generated/currencies.json'; 3 | import { formatCurrency, formatNumber } from '../src/js/krokus'; 4 | import { assert } from 'chai'; 5 | import { de } from '../src/generated/locales.json'; 6 | 7 | describe('Currencies', () => { 8 | it('should format a price in EUR for de_DE as expected.', () => { 9 | const locale_de_DE = de; 10 | const currency_EUR = EUR; 11 | const format = { 12 | pattern: locale_de_DE.currency_pattern, 13 | decimal_sep: locale_de_DE.decimal_sep, 14 | group_sep: locale_de_DE.group_sep, 15 | symbol: currency_EUR.symbol, 16 | }; 17 | 18 | assert.equal(formatNumber(20000, format), '20.000,00'); 19 | assert.equal(formatCurrency(20000, format), '20.000,00 €'); 20 | }); 21 | 22 | it('should have the expected USD symbol', () => { 23 | assert.equal(USD.symbol, '$'); 24 | assert.equal(USD.wideSymbol, 'US$'); 25 | assert.equal(USD.code, 'USD'); 26 | }); 27 | 28 | it('should have the expected AED symbol', () => { 29 | assert.equal(AED.symbol, 'AED'); 30 | assert.equal(AED.wideSymbol, 'AED'); 31 | assert.equal(AED.code, 'AED'); 32 | }); 33 | 34 | it('should have the expected EUR symbol', () => { 35 | assert.equal(EUR.symbol, '€'); 36 | assert.equal(EUR.wideSymbol, '€'); 37 | assert.equal(EUR.code, 'EUR'); 38 | }); 39 | 40 | it('should have the expected INR symbol', () => { 41 | assert.equal(INR.symbol, '₹'); 42 | assert.equal(INR.wideSymbol, '₹'); 43 | assert.equal(INR.code, 'INR'); 44 | }); 45 | 46 | it('should have the expected JPY symbol', () => { 47 | assert.equal(JPY.symbol, '¥'); 48 | assert.equal(JPY.wideSymbol, 'JP¥'); 49 | assert.equal(JPY.code, 'JPY'); 50 | }); 51 | }); 52 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Krokus 2 | ===================== 3 | 4 | [![Build Status](https://travis-ci.org/klyrr/krokus.svg?branch=master)](https://travis-ci.org/klyrr/krokus) 5 | [![Locales 703](https://img.shields.io/badge/locales-703-green.svg)](https://img.shields.io/badge/locales-703-green.svg) 6 | [![Currencies 301](https://img.shields.io/badge/currencies-301-green.svg)](https://img.shields.io/badge/currencies-301-green.svg) 7 | 8 | A provider for localization patterns and a number and currency formatter and parser. 9 | 10 | In order to have the all currency and locale patterns in one place. 11 | 12 | [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) is a standard to format currencies. 13 | 14 | The data is generated from [CLDR33](http://unicode.org/Public/cldr/33/core.zip). 15 | 16 | ## Installation 17 | ### npm 18 | `npm install --save krokus` 19 | 20 | ### yarn 21 | `yarn add krokus` 22 | 23 | ----- 24 | 25 | ### Use the krokus formatter 26 | ```javascript 27 | import krokus from 'krokus'; 28 | 29 | const formatPattern = { 30 | pattern: '#,##0.00 ¤', 31 | decimal_sep: ',', 32 | group_sep: '.', 33 | symbol: '€', 34 | }; 35 | 36 | > krokus.formatCurrency(10000, formatPattern); 37 | 10.000,00 € 38 | ``` 39 | 40 | ### Use the krokus parser 41 | ```javascript 42 | import krokus from 'krokus'; 43 | 44 | const formatPattern = { 45 | pattern: '#,##0.00 ¤', 46 | decimal_sep: ',', 47 | group_sep: '.', 48 | symbol: '€', 49 | }; 50 | 51 | > krokus.parseCurrency('10.000,00 €', formatPattern); 52 | 10000 53 | ``` 54 | 55 | ### Access the generated currency and locale settings 56 | ```javascript 57 | import krokus from 'krokus'; 58 | 59 | > krokus.locales.de_DE 60 | { decimal_sep: ',', 61 | group_sep: '.', 62 | number_pattern: '#,##0.###', 63 | currency_pattern: '#,##0.00 ¤' } 64 | 65 | > krokus.currencies.EUR 66 | { symbol: '€', wideSymbol: '€', code: 'EUR' } 67 | ``` 68 | 69 | ### Real-life example 70 | 71 | Use the krokus calls in your functions: 72 | 73 | ```javascript 74 | import krokus from 'krokus'; 75 | 76 | export const formatNumber = (amount, locale) => { 77 | const format = krokus.locales[locale]; 78 | format.pattern = format.number_pattern; 79 | return krokus.formatNumber(amount, format); 80 | }; 81 | 82 | export const formatCurrency = (amount, locale, currency) => { 83 | if (!currency) { 84 | return formatNumber(amount, locale); 85 | } 86 | 87 | const localeData = krokus.locales[locale]; 88 | const currencyData = krokus.currencies[currency.code]; 89 | 90 | return krokus.formatCurrency(amount, { 91 | pattern: localeData.currency_pattern, 92 | decimal_sep: localeData.decimal_sep, 93 | group_sep: localeData.group_sep, 94 | symbol: currencyData.wideSymbol 95 | }); 96 | }; 97 | ``` 98 | 99 | #### Run the tests if the formats are still generating the expected formatted numbers in JS 100 | 101 | ``` 102 | yarn 103 | 104 | yarn test 105 | ``` 106 | 107 | #### Generate the krokus number formatter from the es6 files 108 | 109 | ``` 110 | yarn 111 | 112 | yarn run compile 113 | ``` 114 | 115 | #### Create the up-to-date version of the json files 116 | 117 | ``` 118 | bundle install 119 | 120 | rake update 121 | ``` 122 | -------------------------------------------------------------------------------- /test/locales.spec.js: -------------------------------------------------------------------------------- 1 | /* global describe it */ 2 | import { assert } from 'chai'; 3 | import localeConfig from '../src/generated/locales.json'; 4 | 5 | describe('Locales', () => { 6 | describe('FR', () => { 7 | it('should have the expected patterns for fr', () => { 8 | assert.equal(localeConfig.fr.group_sep, ' '); 9 | assert.equal(localeConfig.fr.decimal_sep, ','); 10 | assert.equal(localeConfig.fr.number_pattern, '#,##0.###'); 11 | assert.equal(localeConfig.fr.currency_pattern, '#,##0.00 ¤'); 12 | }); 13 | it('should have the expected patterns for fr_CA', () => { 14 | assert.equal(localeConfig.fr_CA.group_sep, ' '); 15 | assert.equal(localeConfig.fr_CA.decimal_sep, ','); 16 | assert.equal(localeConfig.fr_CA.number_pattern, '#,##0.###'); 17 | assert.equal(localeConfig.fr_CA.currency_pattern, '#,##0.00 ¤'); 18 | }); 19 | it('should have the expected patterns for fr_CH', () => { 20 | assert.equal(localeConfig.fr_CH.group_sep, ' '); 21 | assert.equal(localeConfig.fr_CH.decimal_sep, ','); 22 | assert.equal(localeConfig.fr_CH.number_pattern, '#,##0.###'); 23 | assert.equal( 24 | localeConfig.fr_CH.currency_pattern, 25 | '#,##0.00 ¤;-#,##0.00 ¤' 26 | ); 27 | }); 28 | }); 29 | 30 | describe('EN', () => { 31 | it('should have the expected patterns for en', () => { 32 | assert.equal(localeConfig.en.group_sep, ','); 33 | assert.equal(localeConfig.en.decimal_sep, '.'); 34 | assert.equal(localeConfig.en.number_pattern, '#,##0.###'); 35 | assert.equal(localeConfig.en.currency_pattern, '¤#,##0.00'); 36 | }); 37 | 38 | it('should have the expected patterns for en_IE', () => { 39 | assert.equal(localeConfig.en_IE.group_sep, ','); 40 | assert.equal(localeConfig.en_IE.decimal_sep, '.'); 41 | assert.equal(localeConfig.en_IE.number_pattern, '#,##0.###'); 42 | assert.equal(localeConfig.en_IE.currency_pattern, '¤#,##0.00'); 43 | }); 44 | 45 | it('should have the expected patterns for en_IN', () => { 46 | assert.equal(localeConfig.en_IN.group_sep, ','); 47 | assert.equal(localeConfig.en_IN.decimal_sep, '.'); 48 | assert.equal(localeConfig.en_IN.number_pattern, '#,##,##0.###'); 49 | assert.equal(localeConfig.en_IN.currency_pattern, '¤ #,##,##0.00'); 50 | }); 51 | }); 52 | 53 | describe('AR', () => { 54 | it('should have the expected patterns for ar', () => { 55 | assert.equal(localeConfig.ar.group_sep, ','); 56 | assert.equal(localeConfig.ar.decimal_sep, '.'); 57 | assert.equal(localeConfig.ar.number_pattern, '#,##0.###'); 58 | assert.equal(localeConfig.ar.currency_pattern, '¤ #,##0.00'); 59 | }); 60 | 61 | it('should have the expected patterns for ar_AE', () => { 62 | assert.equal(localeConfig.ar_AE.group_sep, ','); 63 | assert.equal(localeConfig.ar_AE.decimal_sep, '.'); 64 | assert.equal(localeConfig.ar_AE.number_pattern, '#,##0.###'); 65 | assert.equal(localeConfig.ar_AE.currency_pattern, '¤ #,##0.00'); 66 | }); 67 | }); 68 | 69 | describe('UK', () => { 70 | it('should have the expected patterns for uk', () => { 71 | assert.equal(localeConfig.uk.group_sep, ' '); 72 | assert.equal(localeConfig.uk.decimal_sep, ','); 73 | assert.equal(localeConfig.uk.number_pattern, '#,##0.###'); 74 | assert.equal(localeConfig.uk.currency_pattern, '#,##0.00 ¤'); 75 | }); 76 | 77 | it('should have the expected patterns for uk_UA', () => { 78 | assert.equal(localeConfig.uk_UA.group_sep, ' '); 79 | assert.equal(localeConfig.uk_UA.decimal_sep, ','); 80 | assert.equal(localeConfig.uk_UA.number_pattern, '#,##0.###'); 81 | assert.equal(localeConfig.uk_UA.currency_pattern, '#,##0.00 ¤'); 82 | }); 83 | }); 84 | }); 85 | -------------------------------------------------------------------------------- /src/js/krokus.js: -------------------------------------------------------------------------------- 1 | import { 2 | CURRENCY_SYMBOL, 3 | checkFormattedNumber, 4 | formatDecimalPart, 5 | formatIntegerPart, 6 | getNumberOfDecimals, 7 | getNumberOfRequiredDecimals, 8 | isValidFormatPattern, 9 | replaceFormatWithNumber, 10 | } from './krokusFormat'; 11 | import { getDecimalPart, round, trunc } from './krokusMath'; 12 | 13 | /** 14 | * formatPattern = { pattern, decimal_sep, group_sep } 15 | * pattern: #,##0.00 16 | */ 17 | export const formatNumber = (number, formatPattern) => { 18 | const pattern = formatPattern.pattern; 19 | if (!isValidFormatPattern(pattern)) { 20 | throw 'Given format is wrong: ' + formatPattern.pattern; 21 | } 22 | if (typeof number !== 'number') { 23 | return number; 24 | } 25 | 26 | const numberOfMaximumDecimals = getNumberOfDecimals(pattern); 27 | const numberOfMinimumDecimals = getNumberOfRequiredDecimals(pattern); 28 | 29 | const roundedNumber = round(number, numberOfMaximumDecimals); 30 | const integerPart = trunc(number); 31 | const decimalPart = getDecimalPart(roundedNumber); 32 | 33 | const integerPartAsString = formatIntegerPart( 34 | integerPart, 35 | pattern, 36 | formatPattern.group_sep 37 | ); 38 | 39 | if (decimalPart === 0 && numberOfMinimumDecimals === 0) { 40 | return integerPartAsString; 41 | } 42 | 43 | const decimalPartAsString = formatDecimalPart( 44 | number, 45 | decimalPart, 46 | numberOfMaximumDecimals, 47 | numberOfMinimumDecimals, 48 | formatPattern.decimal_sep 49 | ); 50 | 51 | return integerPartAsString + decimalPartAsString; 52 | }; 53 | 54 | /** 55 | * formatPattern = { pattern, decimal_sep, group_sep, symbol } 56 | * pattern: #,##0.00 57 | */ 58 | export const formatCurrency = (number, formatPattern) => { 59 | if (!isValidFormatPattern(formatPattern.pattern)) { 60 | throw 'Given format is wrong: ' + formatPattern.pattern; 61 | } 62 | if (typeof number !== 'number') { 63 | return number; 64 | } 65 | 66 | const formattedNumber = formatNumber(number, formatPattern); 67 | const formattedCurrency = replaceFormatWithNumber( 68 | formatPattern.pattern, 69 | formattedNumber 70 | ); 71 | return formattedCurrency.replace(CURRENCY_SYMBOL, formatPattern.symbol); 72 | }; 73 | 74 | /** Parsing */ 75 | 76 | export const parseNumber = (formattedNumber, formatPattern) => { 77 | if (!isValidFormatPattern(formatPattern.pattern)) { 78 | throw 'Given format is wrong: ' + formatPattern.pattern; 79 | } 80 | 81 | if ( 82 | !checkFormattedNumber( 83 | formattedNumber, 84 | formatPattern.decimal_sep, 85 | formatPattern.group_sep 86 | ) 87 | ) { 88 | throw 'Given formatted number is wrong: ' + formattedNumber; 89 | } 90 | 91 | const decimalSep = formatPattern.decimal_sep; 92 | if (formattedNumber.charAt(formattedNumber.length - 1) === decimalSep) { 93 | return parseFloat(formattedNumber); 94 | } 95 | 96 | const splitNumber = formattedNumber.split(decimalSep); 97 | if (splitNumber.length !== 2 && splitNumber.length !== 1) { 98 | return false; 99 | } 100 | 101 | const groupSep = formatPattern.group_sep; 102 | const integerPart = splitNumber[0].split(groupSep).join(''); 103 | const decimalPart = splitNumber[1] ? splitNumber[1] : ''; 104 | 105 | return parseFloat(`${integerPart}.${decimalPart}`); 106 | }; 107 | 108 | /** 109 | * formatPattern = { pattern, decimal_sep, group_sep } 110 | * pattern: #,##0.00 111 | */ 112 | export const parseCurrency = (formattedCurrency, formatPattern) => { 113 | if (!isValidFormatPattern(formatPattern.pattern)) { 114 | throw 'Given format is wrong: ' + formatPattern.pattern; 115 | } 116 | 117 | const formattedNumber = formattedCurrency 118 | .replace(formatPattern.symbol, '') 119 | .trim(); 120 | 121 | return parseNumber(formattedNumber, formatPattern); 122 | }; 123 | -------------------------------------------------------------------------------- /src/rb/createLocaleJsonFromUnicode.rb: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'open-uri' 3 | require 'nokogiri' 4 | require 'json' 5 | require 'zip' 6 | 7 | DOWNLOAD_UNICODE_CORE_ZIP = 'http://unicode.org/Public/cldr/33/core.zip' 8 | LOCALE_JSON_FILE_NAME = 'locales.json' 9 | CURRENCY_JSON_FILE_NAME = 'currencies.json' 10 | 11 | DECIMAL_SEPARATOR = 'decimal_sep' 12 | GROUP_SEPARATOR = 'group_sep' 13 | CURRENCY_PATTERN = 'currency_pattern' 14 | NUMBER_PATTERN = 'number_pattern' 15 | 16 | SYMBOL = 'symbol' 17 | WIDE_SYMBOL = 'wideSymbol' 18 | ISOCODE = 'code' 19 | 20 | # locales 21 | LANGUAGE_PATH = 'ldml/identity/language/@type' 22 | TERRITORY_PATH = 'ldml/identity/territory/@type' 23 | DECIMAL_SEPARATOR_PATH = 'ldml/numbers/symbols[@numberSystem="latn"]/decimal' 24 | GROUP_SEPARATOR_PATH = 'ldml/numbers/symbols[@numberSystem="latn"]/group' 25 | CURRENCY_FORMAT_PATH = 'ldml/numbers/currencyFormats[@numberSystem="latn"]/currencyFormatLength[not(@type)]/currencyFormat/pattern' 26 | CURRENCY_FORMAT_PATH_STANDARD = 'ldml/numbers/currencyFormats[@numberSystem="latn"]/currencyFormatLength/currencyFormat[type="standard"]/pattern' 27 | DECIMAL_FORMAT_PATH = 'ldml/numbers/decimalFormats[@numberSystem="latn"]/decimalFormatLength[not(@type)]/decimalFormat/pattern' 28 | DECIMAL_FORMAT_PATH_STANDARD = 'ldml/numbers/decimalFormats[@numberSystem="latn"]/decimalFormatLength/decimalFormat[type="standard"]/pattern' 29 | 30 | # currency 31 | CURRENCY_PATH = 'ldml/numbers/currencies/currency' 32 | 33 | @currencies = {} 34 | locales = {} 35 | @language_templates = {} 36 | tmp_file = 'core.zip'; 37 | 38 | def create_locale(language, territory) 39 | if !territory 40 | return language 41 | end 42 | language.to_s + '_' + territory.to_s 43 | end 44 | 45 | def get_value(element, path) 46 | if element.at_xpath(path) 47 | return element.xpath(path).first().content() 48 | end 49 | return '' 50 | end 51 | 52 | def merge_currencies(element) 53 | 54 | if !element.at_xpath(CURRENCY_PATH) 55 | return 56 | end 57 | 58 | element.xpath(CURRENCY_PATH).each do | currencyElement | 59 | isoCode = currencyElement.xpath('@type').to_s 60 | result = @currencies[isoCode] ? @currencies[isoCode] : {} 61 | 62 | symbol = get_value(currencyElement, 'symbol[not(@alt)]') 63 | symbolNarrow = get_value(currencyElement, 'symbol[@alt="narrow"]') 64 | 65 | result[SYMBOL] = symbolNarrow.empty? ? symbol : symbolNarrow 66 | result[WIDE_SYMBOL] = symbol.empty? ? symbolNarrow : symbol 67 | result[ISOCODE] = isoCode 68 | @currencies[isoCode] = result 69 | end 70 | end 71 | 72 | def create_locale_element(doc, territory, language) 73 | result = {} 74 | if territory 75 | language_template = @language_templates[language] 76 | if language_template 77 | result = language_template.clone() 78 | end 79 | end 80 | 81 | if doc.at_xpath(DECIMAL_SEPARATOR_PATH) 82 | result[DECIMAL_SEPARATOR] = doc.xpath(DECIMAL_SEPARATOR_PATH).first().content() 83 | end 84 | 85 | if doc.at_xpath(GROUP_SEPARATOR_PATH) 86 | result[GROUP_SEPARATOR] = doc.xpath(GROUP_SEPARATOR_PATH).first().content() 87 | end 88 | 89 | if doc.at_xpath(DECIMAL_FORMAT_PATH_STANDARD) 90 | result[NUMBER_PATTERN] = doc.xpath(DECIMAL_FORMAT_PATH_STANDARD).first().content() 91 | elsif doc.at_xpath(DECIMAL_FORMAT_PATH) 92 | result[NUMBER_PATTERN] = doc.xpath(DECIMAL_FORMAT_PATH).first().content() 93 | end 94 | 95 | if doc.at_xpath(CURRENCY_FORMAT_PATH_STANDARD) 96 | result[CURRENCY_PATTERN] = doc.xpath(CURRENCY_FORMAT_PATH_STANDARD).first().content() 97 | elsif doc.at_xpath(CURRENCY_FORMAT_PATH) 98 | result[CURRENCY_PATTERN] = doc.xpath(CURRENCY_FORMAT_PATH).first().content() 99 | end 100 | 101 | if !territory 102 | @language_templates[language] = result; 103 | end 104 | 105 | result 106 | end 107 | 108 | if !File.exists?(tmp_file) 109 | puts tmp_file + ' does not exists locally. We have to download it.' 110 | open(tmp_file, 'wb') do |file| 111 | file << open(DOWNLOAD_UNICODE_CORE_ZIP).read 112 | end 113 | end 114 | 115 | Zip::File.open(tmp_file) do |zipfile| 116 | zipfile.each do |file| 117 | next if !file.to_s.start_with?('common/main') 118 | next if file.name_is_directory? 119 | 120 | doc = Nokogiri::XML(file.get_input_stream.read) 121 | 122 | if doc.at_xpath(LANGUAGE_PATH) 123 | language = doc.xpath(LANGUAGE_PATH).to_s 124 | end 125 | if doc.at_xpath(TERRITORY_PATH) 126 | territory = doc.xpath(TERRITORY_PATH).to_s 127 | end 128 | 129 | result = create_locale_element(doc, territory, language) 130 | locales[create_locale(language, territory)] = result; 131 | 132 | merge_currencies(doc) 133 | end 134 | end 135 | 136 | Dir.mkdir('src/generated/') unless Dir.exist?('src/generated/') 137 | 138 | File.write('src/generated/' + LOCALE_JSON_FILE_NAME, locales.to_json) 139 | puts 'Wrote ' + locales.length.to_s + " locales successfully." 140 | 141 | File.write('src/generated/' + CURRENCY_JSON_FILE_NAME, @currencies.to_json) 142 | puts 'Wrote ' + @currencies.length.to_s + " currencies successfully." 143 | -------------------------------------------------------------------------------- /test/krokusFormat.spec.js: -------------------------------------------------------------------------------- 1 | /* global describe it */ 2 | /* eslint-disable no-irregular-whitespace */ 3 | 4 | import { 5 | checkFormattedNumber, 6 | formatDecimalPart, 7 | formatIntegerPart, 8 | getNumberOfDecimals, 9 | getNumberOfRequiredDecimals, 10 | getSizeOfGroup, 11 | isValidFormatPattern, 12 | replaceFormatWithNumber, 13 | } from '../src/js/krokusFormat'; 14 | 15 | import { assert } from 'chai'; 16 | 17 | describe('Krokus Format', () => { 18 | describe('getNumberOfDecimals', () => { 19 | it('should return the number of decimals from the format', () => { 20 | // assert.equal(getNumberOfDecimals('¤ #,##0.00;¤ -#,##0.00'), 2); 21 | assert.equal(getNumberOfDecimals('¤ #,##,##0.00'), 2); 22 | assert.equal(getNumberOfDecimals('#,##0.00 ¤'), 2); 23 | assert.equal(getNumberOfDecimals('#,##0.0000 ¤'), 4); 24 | assert.equal(getNumberOfDecimals(' ¤ #,##0.00'), 2); 25 | assert.equal(getNumberOfDecimals(' ¤ #,##0.000'), 3); 26 | assert.equal(getNumberOfDecimals('#,##0.00'), 2); 27 | assert.equal(getNumberOfDecimals('#,##0'), 0); 28 | assert.equal(getNumberOfDecimals('#,##0.###'), 3); 29 | }); 30 | it('should return the number of decimals with formats that use non-breaking spaces', () => { 31 | assert.equal(getNumberOfDecimals('#,##0.00 ¤'), 2); 32 | }); 33 | }); 34 | 35 | describe('getNumberOfRequiredDecimals', () => { 36 | it('should return the numbers of required decimals', () => { 37 | assert.equal(getNumberOfRequiredDecimals('#,##0.00'), 2); 38 | assert.equal(getNumberOfRequiredDecimals('#,##0.00#'), 2); 39 | assert.equal(getNumberOfRequiredDecimals('#,##0'), 0); 40 | assert.equal(getNumberOfRequiredDecimals('#,##0.###'), 0); 41 | }); 42 | }); 43 | 44 | describe('getSizeOfGroup', () => { 45 | it('should return the size of the group', () => { 46 | assert.equal(getSizeOfGroup('#,##0.00'), 3); 47 | assert.equal(getSizeOfGroup('#,##0'), 3); 48 | assert.equal(getSizeOfGroup('¤ #,##0.00;¤ -#,##0.00'), 3); 49 | // assert.equal(getSizeOfGroup('¤ #,##,##0.00'), 3); 50 | }); 51 | }); 52 | 53 | describe('isValidFormatPattern', () => { 54 | it('should return the number of decimals from the format', () => { 55 | assert.equal(isValidFormatPattern('#,##0.00 ¤'), true); 56 | assert.equal(isValidFormatPattern('#,##0.00'), true); 57 | assert.equal(isValidFormatPattern('#,##0'), true); 58 | assert.equal(isValidFormatPattern('¤ #,##0.00;¤ -#,##0.00'), true); 59 | assert.equal(isValidFormatPattern('¤ #,##,##0.00'), true); 60 | assert.equal(isValidFormatPattern(' ¤ #,##,##0.00'), true); 61 | 62 | assert.equal(isValidFormatPattern('f ¤ #,##,##0.00'), false); 63 | assert.equal(isValidFormatPattern('#.##,##0'), false); 64 | assert.equal(isValidFormatPattern('#.,##0dds'), false); 65 | assert.equal(isValidFormatPattern('#,33.8'), false); 66 | }); 67 | }); 68 | 69 | describe('replaceFormatWithNumber', () => { 70 | it('should replace the number in the given format', () => { 71 | assert.equal(replaceFormatWithNumber('#,##0.00', '10.000'), '10.000'); 72 | assert.equal( 73 | replaceFormatWithNumber('#,##0.0000 ¤', '10.000'), 74 | '10.000 ¤' 75 | ); 76 | }); 77 | }); 78 | 79 | describe('formatIntegerPart', () => { 80 | it('should replace the number in the given format', () => { 81 | assert.equal(formatIntegerPart(120000, '#,##0.00', 'x'), '120x000'); 82 | assert.equal(formatIntegerPart(0, '#,##0.0000 ¤', 'x'), '0'); 83 | }); 84 | }); 85 | 86 | describe('formatDecimalPart', () => { 87 | it('should replace the number in the given format', () => { 88 | // number, decimalPart, numberOfMaximumDecimals, numberOfMinimumDecimals, decimalSeparator 89 | assert.equal(formatDecimalPart(12000.33, 0.33, 2, 2, ','), ',33'); 90 | assert.equal(formatDecimalPart(12000.353, 0.35, 2, 2, ','), ',35'); 91 | assert.equal(formatDecimalPart(12000.35, 0.35, 3, 3, ','), ',350'); 92 | assert.equal(formatDecimalPart(12000, 0, 2, 0, ','), ''); 93 | }); 94 | }); 95 | 96 | describe('checkFormattedNumber', () => { 97 | it('should validate the given number', () => { 98 | assert.equal(checkFormattedNumber('10.000,44', '.', ','), true); 99 | assert.equal(checkFormattedNumber('10 000,44', ',', ' '), true); 100 | assert.equal(checkFormattedNumber('10,000.44', '.', ','), true); 101 | assert.equal(checkFormattedNumber('10.000', '.', ','), true); 102 | assert.equal(checkFormattedNumber('-10.000', '.', ','), true); 103 | assert.equal(checkFormattedNumber('-10.000,54', '.', ','), true); 104 | assert.equal(checkFormattedNumber('0', '.', ','), true); 105 | }); 106 | it('should return false', () => { 107 | assert.equal(checkFormattedNumber('10 000,44', ',', '.'), false); 108 | assert.equal(checkFormattedNumber('s,33.8', '.', ','), false); 109 | assert.equal(checkFormattedNumber('#,33.8', '.', ','), false); 110 | assert.equal(checkFormattedNumber('hello', '.', ','), false); 111 | assert.equal(checkFormattedNumber(42, '.', ','), false); 112 | }); 113 | }); 114 | }); 115 | -------------------------------------------------------------------------------- /src/js/krokusFormat.js: -------------------------------------------------------------------------------- 1 | import { countNumberOfDecimals } from './krokusMath'; 2 | 3 | export const CURRENCY_SYMBOL = '¤'; 4 | 5 | const DECIMAL_SEPARTOR = '.'; 6 | const GROUP_SEPARTOR = ','; 7 | const ALLOWED_NUMBER_FORMAT_CHARS = ',#0;'; 8 | const ALLOWED_GENERAL_FORMAT_CHARS = 9 | ALLOWED_NUMBER_FORMAT_CHARS + '- ' + CURRENCY_SYMBOL; 10 | 11 | export const isValidFormatPattern = givenFormat => { 12 | let format = givenFormat.trim(); 13 | const posGroupSeparator = format.indexOf(GROUP_SEPARTOR); 14 | const posDecimalSeparator = format.indexOf(DECIMAL_SEPARTOR); 15 | 16 | if (posDecimalSeparator >= 0 && posDecimalSeparator < posGroupSeparator) { 17 | return false; 18 | } 19 | 20 | // currency must be first or last character of pattern or non-exiting 21 | const posCurrencySymbol = format.indexOf(CURRENCY_SYMBOL); 22 | if ( 23 | posCurrencySymbol !== 0 && 24 | posCurrencySymbol !== -1 && 25 | posCurrencySymbol !== format.length - 1 26 | ) { 27 | return false; 28 | } 29 | 30 | format = format.replace(/\./g, '').trim(); 31 | format = replaceChars(format, ALLOWED_GENERAL_FORMAT_CHARS); 32 | return format.length === 0 || format === CURRENCY_SYMBOL; 33 | }; 34 | 35 | export const formatIntegerPart = (integerPart, pattern, groupSeparator) => { 36 | let integerPartAsString = String(integerPart); 37 | const groupSize = getSizeOfGroup(pattern); 38 | 39 | const length = integerPartAsString.length; 40 | let i = length - groupSize; 41 | 42 | while (i > 0) { 43 | integerPartAsString = 44 | integerPartAsString.substr(0, i) + 45 | groupSeparator + 46 | integerPartAsString.substr(i); 47 | i = i - groupSize; 48 | } 49 | 50 | return integerPartAsString; 51 | }; 52 | 53 | export const formatDecimalPart = ( 54 | number, 55 | decimalPart, 56 | numberOfMaximumDecimals, 57 | numberOfMinimumDecimals, 58 | decimalSeparator 59 | ) => { 60 | if (decimalPart === 0 && numberOfMinimumDecimals === 0) { 61 | return ''; 62 | } 63 | if (decimalPart === 0) { 64 | return decimalSeparator + new Array(numberOfMinimumDecimals + 1).join('0'); 65 | } 66 | 67 | if (numberOfMinimumDecimals > 0 || numberOfMaximumDecimals > 0) { 68 | const numberOfActualDecimals = countNumberOfDecimals(number); 69 | // cut the '0.' 70 | const decimalPartString = String(decimalPart).substr(2); 71 | const formattedDecimalPart = addZerosIfNeeded( 72 | numberOfMinimumDecimals, 73 | Math.min(numberOfActualDecimals, numberOfMaximumDecimals), 74 | decimalPartString 75 | ); 76 | 77 | return decimalSeparator + formattedDecimalPart; 78 | } 79 | 80 | return ''; 81 | }; 82 | 83 | const replaceChars = (pattern, charsToBeReplaced, replacement = '') => { 84 | for (let i = 0; i < charsToBeReplaced.length; i++) { 85 | pattern = pattern 86 | .replace(new RegExp(charsToBeReplaced[i], 'g'), replacement) 87 | .trim(); 88 | } 89 | return pattern; 90 | }; 91 | 92 | const addZerosIfNeeded = ( 93 | numberOfMinimumDecimals, 94 | numberOfActualDecimals, 95 | decimalPartString 96 | ) => { 97 | const zerosToAdd = numberOfMinimumDecimals - decimalPartString.length; 98 | 99 | return zerosToAdd <= 0 100 | ? decimalPartString.substr(0, numberOfActualDecimals) 101 | : decimalPartString + new Array(zerosToAdd + 1).join('0'); 102 | }; 103 | 104 | export const replaceFormatWithNumber = (pattern, formattedNumber) => { 105 | pattern = pattern.replace(/\./g, '@').trim(); 106 | pattern = replaceChars(pattern, ALLOWED_NUMBER_FORMAT_CHARS, '@'); 107 | pattern = pattern.replace('@', formattedNumber); 108 | return pattern.split('@').join(''); 109 | }; 110 | 111 | export const getNumberOfDecimals = pattern => { 112 | const posDecimalSeparator = pattern.indexOf(DECIMAL_SEPARTOR); 113 | if (posDecimalSeparator < 0) { 114 | return 0; 115 | } 116 | // if currency pattern cut the currency symbol 117 | const posSpace = pattern.indexOf(' ', posDecimalSeparator); 118 | 119 | // look also for non-breaking space 120 | const posNBSpace = pattern.indexOf(' ', posDecimalSeparator); 121 | 122 | if (posSpace >= 0) { 123 | pattern = pattern.substr(0, posSpace); 124 | } else if (posNBSpace >= 0) { 125 | pattern = pattern.substr(0, posNBSpace); 126 | } 127 | return pattern.length - posDecimalSeparator - 1; 128 | }; 129 | 130 | export const getNumberOfRequiredDecimals = pattern => { 131 | const numberOfDecimals = getNumberOfDecimals(pattern); 132 | if (numberOfDecimals === 0) { 133 | return 0; 134 | } 135 | const posDecimalSeparator = pattern.indexOf(DECIMAL_SEPARTOR); 136 | const decimals = pattern.substr( 137 | posDecimalSeparator + 1, 138 | posDecimalSeparator + numberOfDecimals 139 | ); 140 | const firstOptionalDecimal = decimals.indexOf('#'); 141 | 142 | return firstOptionalDecimal === -1 ? numberOfDecimals : firstOptionalDecimal; 143 | }; 144 | 145 | export const getSizeOfGroup = format => { 146 | const posGroupSeparator = format.indexOf(GROUP_SEPARTOR); 147 | const posDecimalSeparator = format.indexOf(DECIMAL_SEPARTOR); 148 | 149 | if (posDecimalSeparator < 0) { 150 | return format.length - posGroupSeparator - 1; 151 | } 152 | return posDecimalSeparator - posGroupSeparator - 1; 153 | }; 154 | 155 | export const checkFormattedNumber = (formattedNumber, decimalSep, groupSep) => { 156 | // formattedNumber is a string and it has to be validated if it is a valid number 157 | if (typeof formattedNumber !== 'string') { 158 | return false; 159 | } 160 | const allowedChars = `[${decimalSep}${groupSep}-\\d]`; 161 | const hasNotAllowedChars = formattedNumber.replace( 162 | new RegExp(allowedChars, 'g'), 163 | '' 164 | ); 165 | 166 | if (hasNotAllowedChars.length > 0) { 167 | return false; 168 | } 169 | 170 | const splitNumber = formattedNumber.split(decimalSep); 171 | return splitNumber.length === 2 || splitNumber.length === 1; 172 | }; 173 | -------------------------------------------------------------------------------- /test/krokus.spec.js: -------------------------------------------------------------------------------- 1 | /* global describe it */ 2 | 3 | import { 4 | formatCurrency, 5 | formatNumber, 6 | parseCurrency, 7 | parseNumber, 8 | } from '../src/js/krokus'; 9 | import { assert } from 'chai'; 10 | import locales from '../src/generated/locales.json'; 11 | 12 | describe('krokus', () => { 13 | describe('formatter', () => { 14 | it('should format the numbers', () => { 15 | const formatPattern = { 16 | pattern: '#,##0.00', 17 | decimal_sep: ',', 18 | group_sep: '.', 19 | }; 20 | assert.equal(formatNumber(10000, formatPattern), '10.000,00'); 21 | assert.equal(formatNumber(200000000, formatPattern), '200.000.000,00'); 22 | assert.equal(formatNumber(432.55, formatPattern), '432,55'); 23 | assert.equal(formatNumber(432.5, formatPattern), '432,50'); 24 | // assert.equal(formatNumber(-432.5, formatPattern), '-432,50'); 25 | }); 26 | 27 | it('should format the numbers without trailing numbers', () => { 28 | const formatPattern = { 29 | pattern: '#,##0.###', 30 | decimal_sep: ',', 31 | group_sep: '.', 32 | }; 33 | 34 | assert.equal(formatNumber(10000, formatPattern), '10.000'); 35 | assert.equal(formatNumber(200000000, formatPattern), '200.000.000'); 36 | assert.equal(formatNumber(432.55, formatPattern), '432,55'); 37 | assert.equal(formatNumber(432.5577, formatPattern), '432,558'); 38 | // assert.equal(formatNumber(-432.5577, formatPattern), '432,558'); 39 | }); 40 | 41 | it('should not format strings only numbers', () => { 42 | const formatPattern = { 43 | pattern: '#,##0.00', 44 | decimal_sep: ',', 45 | group_sep: '.', 46 | }; 47 | 48 | assert.equal(formatNumber('10000', formatPattern), '10000'); 49 | assert.equal(formatCurrency('10000', formatPattern), '10000'); 50 | }); 51 | 52 | it('should format the currencies', () => { 53 | const formatCurrencyPattern = locales.de_DE; 54 | formatCurrencyPattern.pattern = formatCurrencyPattern.currency_pattern; 55 | formatCurrencyPattern.symbol = '€'; 56 | 57 | assert.equal(formatCurrency(10000, formatCurrencyPattern), '10.000,00 €'); 58 | }); 59 | 60 | it('should format the currencies for USD', () => { 61 | const formatCurrencyPatternForUSD = { 62 | pattern: '¤#,##0.00', 63 | decimal_sep: '.', 64 | group_sep: ',', 65 | symbol: '$', 66 | }; 67 | 68 | assert.equal( 69 | formatCurrency(10000000, formatCurrencyPatternForUSD), 70 | '$10,000,000.00' 71 | ); 72 | }); 73 | 74 | it('should format the currency for negative and positive numbers', () => { 75 | const formatCurrencyPattern = { 76 | pattern: '#,##0.00 ¤', 77 | decimal_sep: ',', 78 | group_sep: '.', 79 | symbol: '€', 80 | }; 81 | 82 | assert.equal(formatCurrency(10000, formatCurrencyPattern), '10.000,00 €'); 83 | assert.equal( 84 | formatCurrency(-10000, formatCurrencyPattern), 85 | '-10.000,00 €' 86 | ); 87 | }); 88 | 89 | it('should format the format not currency', () => { 90 | const wrongPattern = '#,##0.00 ¤ l'; 91 | const wrongFormatCurrencyPattern = { 92 | pattern: wrongPattern, 93 | decimal_sep: ',', 94 | group_sep: '.', 95 | symbol: '€', 96 | }; 97 | 98 | try { 99 | const notDefined = formatCurrency(10000, wrongFormatCurrencyPattern); 100 | assert.equal(notDefined, 'This must not happen'); 101 | } catch (e) { 102 | assert.equal(e, 'Given format is wrong: ' + wrongPattern); 103 | } 104 | }); 105 | }); 106 | 107 | describe('parser', () => { 108 | it('should parse the numbers', () => { 109 | const formatPattern = { 110 | pattern: '#,##0.00', 111 | decimal_sep: ',', 112 | group_sep: '.', 113 | }; 114 | 115 | assert.equal(parseNumber('10.000,00', formatPattern), 10000); 116 | assert.equal(parseNumber('200.000.000,00', formatPattern), 200000000); 117 | assert.equal(parseNumber('432,55', formatPattern), 432.55); 118 | assert.equal(parseNumber('432,50', formatPattern), 432.5); 119 | assert.equal(parseNumber('10.000', formatPattern), 10000); 120 | assert.equal(parseNumber('200.000.000', formatPattern), 200000000); 121 | assert.equal(parseNumber('432,558', formatPattern), 432.558); 122 | 123 | assert.equal(parseNumber('-432,55', formatPattern), -432.55); 124 | }); 125 | 126 | it('should parse the currencies', () => { 127 | const formatPattern = { 128 | pattern: '#,##0.00 ¤', 129 | decimal_sep: ',', 130 | group_sep: '.', 131 | symbol: '€', 132 | }; 133 | 134 | assert.equal(parseCurrency('10.000,00 €', formatPattern), 10000); 135 | assert.equal(parseCurrency('200.000.000,00 €', formatPattern), 200000000); 136 | assert.equal(parseCurrency('432,55 €', formatPattern), 432.55); 137 | assert.equal(parseCurrency('432,50 €', formatPattern), 432.5); 138 | assert.equal(parseCurrency('10.000 €', formatPattern), 10000); 139 | assert.equal(parseCurrency('200.000.000 €', formatPattern), 200000000); 140 | assert.equal(parseCurrency('€432,558', formatPattern), 432.558); 141 | 142 | assert.equal(parseCurrency('-432,55 €', formatPattern), -432.55); 143 | assert.equal(parseCurrency('€ -432,55', formatPattern), -432.55); 144 | }); 145 | 146 | it('should parse swiss currencies', () => { 147 | const formatPattern = { 148 | pattern: '#,##0.00 ¤', 149 | decimal_sep: ',', 150 | group_sep: ' ', 151 | symbol: 'CHF', 152 | }; 153 | 154 | try { 155 | const notDefined = parseCurrency('10.000,00 CHF', formatPattern); 156 | assert.equal(notDefined, 'This must not happen'); 157 | } catch (e) { 158 | assert.equal(e, 'Given formatted number is wrong: 10.000,00'); 159 | } 160 | 161 | assert.equal(parseCurrency('10 000,00 CHF', formatPattern), 10000); 162 | }); 163 | }); 164 | }); 165 | -------------------------------------------------------------------------------- /src/generated/currencies.json: -------------------------------------------------------------------------------- 1 | {"AED":{"symbol":"AED","wideSymbol":"AED","code":"AED"},"AFN":{"symbol":"AFN","wideSymbol":"AFN","code":"AFN"},"ALL":{"symbol":"ALL","wideSymbol":"ALL","code":"ALL"},"AMD":{"symbol":"AMD","wideSymbol":"AMD","code":"AMD"},"ANG":{"symbol":"ANG","wideSymbol":"ANG","code":"ANG"},"AOA":{"symbol":"Kz","wideSymbol":"AOA","code":"AOA"},"ARS":{"symbol":"$","wideSymbol":"ARS","code":"ARS"},"AUD":{"symbol":"$","wideSymbol":"A$","code":"AUD"},"AWG":{"symbol":"AWG","wideSymbol":"AWG","code":"AWG"},"AZN":{"symbol":"AZN","wideSymbol":"AZN","code":"AZN"},"BAM":{"symbol":"KM","wideSymbol":"BAM","code":"BAM"},"BBD":{"symbol":"$","wideSymbol":"BBD","code":"BBD"},"BDT":{"symbol":"৳","wideSymbol":"BDT","code":"BDT"},"BGN":{"symbol":"BGN","wideSymbol":"BGN","code":"BGN"},"BHD":{"symbol":"BHD","wideSymbol":"BHD","code":"BHD"},"BIF":{"symbol":"BIF","wideSymbol":"BIF","code":"BIF"},"BMD":{"symbol":"$","wideSymbol":"BMD","code":"BMD"},"BND":{"symbol":"$","wideSymbol":"BND","code":"BND"},"BOB":{"symbol":"Bs","wideSymbol":"BOB","code":"BOB"},"BRL":{"symbol":"R$","wideSymbol":"R$","code":"BRL"},"BSD":{"symbol":"$","wideSymbol":"BSD","code":"BSD"},"BTN":{"symbol":"BTN","wideSymbol":"BTN","code":"BTN"},"BWP":{"symbol":"P","wideSymbol":"BWP","code":"BWP"},"BYN":{"symbol":"P.","wideSymbol":"BYN","code":"BYN"},"BYR":{"symbol":"BYR","wideSymbol":"BYR","code":"BYR"},"BZD":{"symbol":"$","wideSymbol":"BZD","code":"BZD"},"CAD":{"symbol":"$","wideSymbol":"CA$","code":"CAD"},"CDF":{"symbol":"CDF","wideSymbol":"CDF","code":"CDF"},"CHF":{"symbol":"CHF","wideSymbol":"CHF","code":"CHF"},"CLP":{"symbol":"$","wideSymbol":"CLP","code":"CLP"},"CNH":{"symbol":"","wideSymbol":"","code":"CNH"},"CNY":{"symbol":"¥","wideSymbol":"CN¥","code":"CNY"},"COP":{"symbol":"$","wideSymbol":"COP","code":"COP"},"CRC":{"symbol":"₡","wideSymbol":"CRC","code":"CRC"},"CUC":{"symbol":"$","wideSymbol":"CUC","code":"CUC"},"CUP":{"symbol":"$","wideSymbol":"CUP","code":"CUP"},"CVE":{"symbol":"CVE","wideSymbol":"CVE","code":"CVE"},"CZK":{"symbol":"Kč","wideSymbol":"CZK","code":"CZK"},"DJF":{"symbol":"DJF","wideSymbol":"DJF","code":"DJF"},"DKK":{"symbol":"Kr","wideSymbol":"DKK","code":"DKK"},"DOP":{"symbol":"$","wideSymbol":"DOP","code":"DOP"},"DZD":{"symbol":"DZD","wideSymbol":"DZD","code":"DZD"},"EGP":{"symbol":"E£","wideSymbol":"EGP","code":"EGP"},"ERN":{"symbol":"ERN","wideSymbol":"ERN","code":"ERN"},"ETB":{"symbol":"ETB","wideSymbol":"ETB","code":"ETB"},"EUR":{"symbol":"€","wideSymbol":"€","code":"EUR"},"FJD":{"symbol":"$","wideSymbol":"FJD","code":"FJD"},"FKP":{"symbol":"£","wideSymbol":"FKP","code":"FKP"},"GBP":{"symbol":"£","wideSymbol":"£","code":"GBP"},"GEL":{"symbol":"₾","wideSymbol":"GEL","code":"GEL"},"GHC":{"symbol":"GHC","wideSymbol":"GHC","code":"GHC"},"GHS":{"symbol":"GHS","wideSymbol":"GHS","code":"GHS"},"GIP":{"symbol":"£","wideSymbol":"GIP","code":"GIP"},"GMD":{"symbol":"GMD","wideSymbol":"GMD","code":"GMD"},"GNF":{"symbol":"FG","wideSymbol":"GNF","code":"GNF"},"GNS":{"symbol":"GNS","wideSymbol":"GNS","code":"GNS"},"GTQ":{"symbol":"Q","wideSymbol":"GTQ","code":"GTQ"},"GYD":{"symbol":"$","wideSymbol":"GYD","code":"GYD"},"HKD":{"symbol":"$","wideSymbol":"HK$","code":"HKD"},"HNL":{"symbol":"L","wideSymbol":"HNL","code":"HNL"},"HRK":{"symbol":"Kn","wideSymbol":"HRK","code":"HRK"},"HTG":{"symbol":"HTG","wideSymbol":"HTG","code":"HTG"},"HUF":{"symbol":"Ft","wideSymbol":"HUF","code":"HUF"},"IDR":{"symbol":"Rp","wideSymbol":"IDR","code":"IDR"},"ILS":{"symbol":"₪","wideSymbol":"₪","code":"ILS"},"INR":{"symbol":"₹","wideSymbol":"₹","code":"INR"},"IQD":{"symbol":"IQD","wideSymbol":"IQD","code":"IQD"},"IRR":{"symbol":"IRR","wideSymbol":"IRR","code":"IRR"},"ISK":{"symbol":"Kr","wideSymbol":"ISK","code":"ISK"},"ITL":{"symbol":"","wideSymbol":"","code":"ITL"},"JMD":{"symbol":"$","wideSymbol":"JMD","code":"JMD"},"JOD":{"symbol":"JOD","wideSymbol":"JOD","code":"JOD"},"JPY":{"symbol":"¥","wideSymbol":"JP¥","code":"JPY"},"KES":{"symbol":"KES","wideSymbol":"KES","code":"KES"},"KGS":{"symbol":"KGS","wideSymbol":"KGS","code":"KGS"},"KHR":{"symbol":"៛","wideSymbol":"KHR","code":"KHR"},"KMF":{"symbol":"CF","wideSymbol":"KMF","code":"KMF"},"KPW":{"symbol":"₩","wideSymbol":"KPW","code":"KPW"},"KRW":{"symbol":"₩","wideSymbol":"₩","code":"KRW"},"KWD":{"symbol":"KWD","wideSymbol":"KWD","code":"KWD"},"KYD":{"symbol":"$","wideSymbol":"KYD","code":"KYD"},"KZT":{"symbol":"₸","wideSymbol":"KZT","code":"KZT"},"LAK":{"symbol":"₭","wideSymbol":"LAK","code":"LAK"},"LBP":{"symbol":"L£","wideSymbol":"LBP","code":"LBP"},"LKR":{"symbol":"Rs","wideSymbol":"LKR","code":"LKR"},"LRD":{"symbol":"$","wideSymbol":"LRD","code":"LRD"},"LSL":{"symbol":"","wideSymbol":"","code":"LSL"},"LTL":{"symbol":"","wideSymbol":"","code":"LTL"},"LVL":{"symbol":"","wideSymbol":"","code":"LVL"},"LYD":{"symbol":"LYD","wideSymbol":"LYD","code":"LYD"},"MAD":{"symbol":"MAD","wideSymbol":"MAD","code":"MAD"},"MDL":{"symbol":"MDL","wideSymbol":"MDL","code":"MDL"},"MGA":{"symbol":"Ar","wideSymbol":"MGA","code":"MGA"},"MKD":{"symbol":"MKD","wideSymbol":"MKD","code":"MKD"},"MMK":{"symbol":"K","wideSymbol":"MMK","code":"MMK"},"MNT":{"symbol":"₮","wideSymbol":"MNT","code":"MNT"},"MOP":{"symbol":"MOP","wideSymbol":"MOP","code":"MOP"},"MRO":{"symbol":"MRO","wideSymbol":"MRO","code":"MRO"},"MRU":{"symbol":"","wideSymbol":"","code":"MRU"},"MUR":{"symbol":"Rs","wideSymbol":"MUR","code":"MUR"},"MVR":{"symbol":"MVR","wideSymbol":"MVR","code":"MVR"},"MWK":{"symbol":"MWK","wideSymbol":"MWK","code":"MWK"},"MXN":{"symbol":"$","wideSymbol":"MX$","code":"MXN"},"MYR":{"symbol":"RM","wideSymbol":"MYR","code":"MYR"},"MZM":{"symbol":"MZM","wideSymbol":"MZM","code":"MZM"},"MZN":{"symbol":"MZN","wideSymbol":"MZN","code":"MZN"},"NAD":{"symbol":"$","wideSymbol":"NAD","code":"NAD"},"NGN":{"symbol":"₦","wideSymbol":"NGN","code":"NGN"},"NIO":{"symbol":"C$","wideSymbol":"NIO","code":"NIO"},"NOK":{"symbol":"Kr","wideSymbol":"NOK","code":"NOK"},"NPR":{"symbol":"Rs","wideSymbol":"NPR","code":"NPR"},"NZD":{"symbol":"$","wideSymbol":"NZ$","code":"NZD"},"OMR":{"symbol":"OMR","wideSymbol":"OMR","code":"OMR"},"PAB":{"symbol":"PAB","wideSymbol":"PAB","code":"PAB"},"PEN":{"symbol":"PEN","wideSymbol":"PEN","code":"PEN"},"PGK":{"symbol":"PGK","wideSymbol":"PGK","code":"PGK"},"PHP":{"symbol":"₱","wideSymbol":"PHP","code":"PHP"},"PKR":{"symbol":"Rs","wideSymbol":"PKR","code":"PKR"},"PLN":{"symbol":"Zł","wideSymbol":"PLN","code":"PLN"},"PYG":{"symbol":"₲","wideSymbol":"PYG","code":"PYG"},"QAR":{"symbol":"QAR","wideSymbol":"QAR","code":"QAR"},"RON":{"symbol":"RON","wideSymbol":"RON","code":"RON"},"RSD":{"symbol":"RSD","wideSymbol":"RSD","code":"RSD"},"RUB":{"symbol":"₽","wideSymbol":"RUB","code":"RUB"},"RWF":{"symbol":"RF","wideSymbol":"RWF","code":"RWF"},"SAR":{"symbol":"SAR","wideSymbol":"SAR","code":"SAR"},"SBD":{"symbol":"$","wideSymbol":"SBD","code":"SBD"},"SCR":{"symbol":"SCR","wideSymbol":"SCR","code":"SCR"},"SDG":{"symbol":"SDG","wideSymbol":"SDG","code":"SDG"},"SDP":{"symbol":"SDP","wideSymbol":"SDP","code":"SDP"},"SEK":{"symbol":"Kr","wideSymbol":"SEK","code":"SEK"},"SGD":{"symbol":"$","wideSymbol":"SGD","code":"SGD"},"SHP":{"symbol":"£","wideSymbol":"SHP","code":"SHP"},"SLL":{"symbol":"SLL","wideSymbol":"SLL","code":"SLL"},"SOS":{"symbol":"SOS","wideSymbol":"SOS","code":"SOS"},"SRD":{"symbol":"$","wideSymbol":"SRD","code":"SRD"},"SSP":{"symbol":"£","wideSymbol":"SSP","code":"SSP"},"STD":{"symbol":"STD","wideSymbol":"STD","code":"STD"},"STN":{"symbol":"Db","wideSymbol":"Db","code":"STN"},"SYP":{"symbol":"£","wideSymbol":"SYP","code":"SYP"},"SZL":{"symbol":"SZL","wideSymbol":"SZL","code":"SZL"},"THB":{"symbol":"฿","wideSymbol":"฿","code":"THB"},"TJS":{"symbol":"TJS","wideSymbol":"TJS","code":"TJS"},"TMT":{"symbol":"TMT","wideSymbol":"TMT","code":"TMT"},"TND":{"symbol":"TND","wideSymbol":"TND","code":"TND"},"TOP":{"symbol":"T$","wideSymbol":"TOP","code":"TOP"},"TRL":{"symbol":"TRL","wideSymbol":"TRL","code":"TRL"},"TRY":{"symbol":"₺","wideSymbol":"TRY","code":"TRY"},"TTD":{"symbol":"$","wideSymbol":"TTD","code":"TTD"},"TWD":{"symbol":"NT$","wideSymbol":"NT$","code":"TWD"},"TZS":{"symbol":"TZS","wideSymbol":"TZS","code":"TZS"},"UAH":{"symbol":"₴","wideSymbol":"UAH","code":"UAH"},"UGX":{"symbol":"UGX","wideSymbol":"UGX","code":"UGX"},"USD":{"symbol":"$","wideSymbol":"US$","code":"USD"},"UYU":{"symbol":"$","wideSymbol":"UYU","code":"UYU"},"UZS":{"symbol":"UZS","wideSymbol":"UZS","code":"UZS"},"VEF":{"symbol":"Bs","wideSymbol":"VEF","code":"VEF"},"VND":{"symbol":"₫","wideSymbol":"₫","code":"VND"},"VUV":{"symbol":"VUV","wideSymbol":"VUV","code":"VUV"},"WST":{"symbol":"WST","wideSymbol":"WST","code":"WST"},"XAF":{"symbol":"FCFA","wideSymbol":"FCFA","code":"XAF"},"XCD":{"symbol":"$","wideSymbol":"EC$","code":"XCD"},"XOF":{"symbol":"CFA","wideSymbol":"CFA","code":"XOF"},"XPF":{"symbol":"CFPF","wideSymbol":"CFPF","code":"XPF"},"XXX":{"symbol":"","wideSymbol":"","code":"XXX"},"YER":{"symbol":"YER","wideSymbol":"YER","code":"YER"},"ZAR":{"symbol":"R","wideSymbol":"R","code":"ZAR"},"ZMK":{"symbol":"","wideSymbol":"","code":"ZMK"},"ZMW":{"symbol":"ZK","wideSymbol":"ZMW","code":"ZMW"},"ZWD":{"symbol":"ZWD","wideSymbol":"ZWD","code":"ZWD"},"ADP":{"symbol":"ADP","wideSymbol":"ADP","code":"ADP"},"AFA":{"symbol":"AFA","wideSymbol":"AFA","code":"AFA"},"AOK":{"symbol":"AOK","wideSymbol":"AOK","code":"AOK"},"AON":{"symbol":"AON","wideSymbol":"AON","code":"AON"},"AOR":{"symbol":"AOR","wideSymbol":"AOR","code":"AOR"},"ARA":{"symbol":"ARA","wideSymbol":"ARA","code":"ARA"},"ARP":{"symbol":"ARP","wideSymbol":"ARP","code":"ARP"},"ATS":{"symbol":"ATS","wideSymbol":"ATS","code":"ATS"},"AZM":{"symbol":"AZM","wideSymbol":"AZM","code":"AZM"},"BAD":{"symbol":"","wideSymbol":"","code":"BAD"},"BEC":{"symbol":"BEC","wideSymbol":"BEC","code":"BEC"},"BEF":{"symbol":"BEF","wideSymbol":"BEF","code":"BEF"},"BEL":{"symbol":"BEL","wideSymbol":"BEL","code":"BEL"},"BOP":{"symbol":"BOP","wideSymbol":"BOP","code":"BOP"},"BOV":{"symbol":"BOV","wideSymbol":"BOV","code":"BOV"},"BRB":{"symbol":"BRB","wideSymbol":"BRB","code":"BRB"},"BRC":{"symbol":"BRC","wideSymbol":"BRC","code":"BRC"},"BRE":{"symbol":"BRE","wideSymbol":"BRE","code":"BRE"},"BUK":{"symbol":"BUK","wideSymbol":"BUK","code":"BUK"},"BYB":{"symbol":"BYB","wideSymbol":"BYB","code":"BYB"},"CSD":{"symbol":"CSD","wideSymbol":"CSD","code":"CSD"},"CSK":{"symbol":"CSK","wideSymbol":"CSK","code":"CSK"},"CYP":{"symbol":"CYP","wideSymbol":"CYP","code":"CYP"},"DDM":{"symbol":"DDM","wideSymbol":"DDM","code":"DDM"},"DEM":{"symbol":"DEM","wideSymbol":"DEM","code":"DEM"},"EEK":{"symbol":"EEK","wideSymbol":"EEK","code":"EEK"},"ESP":{"symbol":"₧","wideSymbol":"ESP","code":"ESP"},"FIM":{"symbol":"FIM","wideSymbol":"FIM","code":"FIM"},"FRF":{"symbol":"FRF","wideSymbol":"FRF","code":"FRF"},"GQE":{"symbol":"GQE","wideSymbol":"GQE","code":"GQE"},"GRD":{"symbol":"GRD","wideSymbol":"GRD","code":"GRD"},"GWE":{"symbol":"GWE","wideSymbol":"GWE","code":"GWE"},"GWP":{"symbol":"GWP","wideSymbol":"GWP","code":"GWP"},"HRD":{"symbol":"HRD","wideSymbol":"HRD","code":"HRD"},"IEP":{"symbol":"IEP","wideSymbol":"IEP","code":"IEP"},"ILP":{"symbol":"ILP","wideSymbol":"ILP","code":"ILP"},"LTT":{"symbol":"LTT","wideSymbol":"LTT","code":"LTT"},"LUC":{"symbol":"LUC","wideSymbol":"LUC","code":"LUC"},"LUF":{"symbol":"LUF","wideSymbol":"LUF","code":"LUF"},"LUL":{"symbol":"LUL","wideSymbol":"LUL","code":"LUL"},"LVR":{"symbol":"LVR","wideSymbol":"LVR","code":"LVR"},"MAF":{"symbol":"MAF","wideSymbol":"MAF","code":"MAF"},"MGF":{"symbol":"MGF","wideSymbol":"MGF","code":"MGF"},"MLF":{"symbol":"MLF","wideSymbol":"MLF","code":"MLF"},"MTL":{"symbol":"MTL","wideSymbol":"MTL","code":"MTL"},"MTP":{"symbol":"MTP","wideSymbol":"MTP","code":"MTP"},"MXP":{"symbol":"MXP","wideSymbol":"MXP","code":"MXP"},"MZE":{"symbol":"MZE","wideSymbol":"MZE","code":"MZE"},"NIC":{"symbol":"NIC","wideSymbol":"NIC","code":"NIC"},"NLG":{"symbol":"NLG","wideSymbol":"NLG","code":"NLG"},"PLZ":{"symbol":"PLZ","wideSymbol":"PLZ","code":"PLZ"},"PTE":{"symbol":"PTE","wideSymbol":"PTE","code":"PTE"},"RHD":{"symbol":"RHD","wideSymbol":"RHD","code":"RHD"},"ROL":{"symbol":"ROL","wideSymbol":"ROL","code":"ROL"},"RUR":{"symbol":"р.","wideSymbol":"RUR","code":"RUR"},"SDD":{"symbol":"SDD","wideSymbol":"SDD","code":"SDD"},"SIT":{"symbol":"SIT","wideSymbol":"SIT","code":"SIT"},"SKK":{"symbol":"SKK","wideSymbol":"SKK","code":"SKK"},"SRG":{"symbol":"SRG","wideSymbol":"SRG","code":"SRG"},"SUR":{"symbol":"SUR","wideSymbol":"SUR","code":"SUR"},"SVC":{"symbol":"SVC","wideSymbol":"SVC","code":"SVC"},"TJR":{"symbol":"TJR","wideSymbol":"TJR","code":"TJR"},"TMM":{"symbol":"TMM","wideSymbol":"TMM","code":"TMM"},"TPE":{"symbol":"TPE","wideSymbol":"TPE","code":"TPE"},"UGS":{"symbol":"UGS","wideSymbol":"UGS","code":"UGS"},"USN":{"symbol":"USN","wideSymbol":"USN","code":"USN"},"USS":{"symbol":"USS","wideSymbol":"USS","code":"USS"},"UYP":{"symbol":"UYP","wideSymbol":"UYP","code":"UYP"},"VEB":{"symbol":"VEB","wideSymbol":"VEB","code":"VEB"},"XAG":{"symbol":"XAG","wideSymbol":"XAG","code":"XAG"},"XAU":{"symbol":"XAU","wideSymbol":"XAU","code":"XAU"},"XBA":{"symbol":"XBA","wideSymbol":"XBA","code":"XBA"},"XBB":{"symbol":"XBB","wideSymbol":"XBB","code":"XBB"},"XBC":{"symbol":"XBC","wideSymbol":"XBC","code":"XBC"},"XBD":{"symbol":"XBD","wideSymbol":"XBD","code":"XBD"},"XDR":{"symbol":"XDR","wideSymbol":"XDR","code":"XDR"},"XEU":{"symbol":"XEU","wideSymbol":"XEU","code":"XEU"},"XFO":{"symbol":"XFO","wideSymbol":"XFO","code":"XFO"},"XFU":{"symbol":"XFU","wideSymbol":"XFU","code":"XFU"},"XPD":{"symbol":"XPD","wideSymbol":"XPD","code":"XPD"},"XPT":{"symbol":"XPT","wideSymbol":"XPT","code":"XPT"},"XTS":{"symbol":"XTS","wideSymbol":"XTS","code":"XTS"},"YDD":{"symbol":"YDD","wideSymbol":"YDD","code":"YDD"},"YUD":{"symbol":"YUD","wideSymbol":"YUD","code":"YUD"},"YUN":{"symbol":"YUN","wideSymbol":"YUN","code":"YUN"},"ZAL":{"symbol":"ZAL","wideSymbol":"ZAL","code":"ZAL"},"ZRN":{"symbol":"ZRN","wideSymbol":"ZRN","code":"ZRN"},"ZRZ":{"symbol":"ZRZ","wideSymbol":"ZRZ","code":"ZRZ"},"ZWL":{"symbol":"ZWL","wideSymbol":"ZWL","code":"ZWL"},"ALK":{"symbol":"ALK","wideSymbol":"ALK","code":"ALK"},"ARL":{"symbol":"ARL","wideSymbol":"ARL","code":"ARL"},"ARM":{"symbol":"ARM","wideSymbol":"ARM","code":"ARM"},"BAN":{"symbol":"BAN","wideSymbol":"BAN","code":"BAN"},"BGL":{"symbol":"BGL","wideSymbol":"BGL","code":"BGL"},"BGM":{"symbol":"BGM","wideSymbol":"BGM","code":"BGM"},"BGO":{"symbol":"BGO","wideSymbol":"BGO","code":"BGO"},"BOL":{"symbol":"BOL","wideSymbol":"BOL","code":"BOL"},"BRN":{"symbol":"BRN","wideSymbol":"BRN","code":"BRN"},"BRR":{"symbol":"BRR","wideSymbol":"BRR","code":"BRR"},"BRZ":{"symbol":"BRZ","wideSymbol":"BRZ","code":"BRZ"},"CHE":{"symbol":"CHE","wideSymbol":"CHE","code":"CHE"},"CHW":{"symbol":"CHW","wideSymbol":"CHW","code":"CHW"},"CLE":{"symbol":"CLE","wideSymbol":"CLE","code":"CLE"},"CLF":{"symbol":"CLF","wideSymbol":"CLF","code":"CLF"},"CNX":{"symbol":"CNX","wideSymbol":"CNX","code":"CNX"},"COU":{"symbol":"COU","wideSymbol":"COU","code":"COU"},"ECS":{"symbol":"ECS","wideSymbol":"ECS","code":"ECS"},"ECV":{"symbol":"ECV","wideSymbol":"ECV","code":"ECV"},"ESA":{"symbol":"ESA","wideSymbol":"ESA","code":"ESA"},"ESB":{"symbol":"ESB","wideSymbol":"ESB","code":"ESB"},"GEK":{"symbol":"GEK","wideSymbol":"GEK","code":"GEK"},"ILR":{"symbol":"ILR","wideSymbol":"ILR","code":"ILR"},"ISJ":{"symbol":"ISJ","wideSymbol":"ISJ","code":"ISJ"},"KRH":{"symbol":"KRH","wideSymbol":"KRH","code":"KRH"},"KRO":{"symbol":"KRO","wideSymbol":"KRO","code":"KRO"},"MCF":{"symbol":"MCF","wideSymbol":"MCF","code":"MCF"},"MDC":{"symbol":"MDC","wideSymbol":"MDC","code":"MDC"},"MKN":{"symbol":"MKN","wideSymbol":"MKN","code":"MKN"},"MVP":{"symbol":"MVP","wideSymbol":"MVP","code":"MVP"},"MXV":{"symbol":"MXV","wideSymbol":"MXV","code":"MXV"},"PEI":{"symbol":"PEI","wideSymbol":"PEI","code":"PEI"},"PES":{"symbol":"PES","wideSymbol":"PES","code":"PES"},"UAK":{"symbol":"UAK","wideSymbol":"UAK","code":"UAK"},"UYI":{"symbol":"UYI","wideSymbol":"UYI","code":"UYI"},"VNN":{"symbol":"VNN","wideSymbol":"VNN","code":"VNN"},"XRE":{"symbol":"XRE","wideSymbol":"XRE","code":"XRE"},"XSU":{"symbol":"XSU","wideSymbol":"XSU","code":"XSU"},"XUA":{"symbol":"XUA","wideSymbol":"XUA","code":"XUA"},"YUM":{"symbol":"YUM","wideSymbol":"YUM","code":"YUM"},"YUR":{"symbol":"YUR","wideSymbol":"YUR","code":"YUR"},"ZWR":{"symbol":"ZWR","wideSymbol":"ZWR","code":"ZWR"}} -------------------------------------------------------------------------------- /src/generated/locales.json: -------------------------------------------------------------------------------- 1 | {"af":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"af_NA":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"af_ZA":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"agq":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00¤"},"agq_CM":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00¤"},"ak":{"decimal_sep":".","group_sep":",","currency_pattern":"¤#,##0.00"},"ak_GH":{"decimal_sep":".","group_sep":",","currency_pattern":"¤#,##0.00"},"am":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"am_ET":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"ar":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_001":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_AE":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_BH":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_DJ":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_DZ":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_EG":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_EH":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_ER":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_IL":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_IQ":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_JO":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_KM":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_KW":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_LB":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_LY":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_MA":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_MR":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_OM":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_PS":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_QA":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_SA":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_SD":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_SO":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_SS":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_SY":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_TD":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_TN":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ar_YE":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"as":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤ #,##,##0.00"},"as_IN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤ #,##,##0.00"},"asa":{"currency_pattern":"#,##0.00 ¤"},"asa_TZ":{"currency_pattern":"#,##0.00 ¤"},"ast":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ast_ES":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"az":{},"az_AZ":{},"bas":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"bas_CM":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"be":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"be_BY":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"bem":{"currency_pattern":"¤#,##0.00"},"bem_ZM":{"currency_pattern":"¤#,##0.00"},"bez":{"currency_pattern":"#,##0.00¤"},"bez_TZ":{"currency_pattern":"#,##0.00¤"},"bg":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"0.00 ¤"},"bg_BG":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"0.00 ¤"},"bm":{"currency_pattern":"¤#,##0.00"},"bm_ML":{"currency_pattern":"¤#,##0.00"},"bn":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"#,##,##0.00¤"},"bn_BD":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"#,##,##0.00¤"},"bn_IN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"#,##,##0.00¤"},"bo":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"bo_CN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"bo_IN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"br":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"br_FR":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"brx":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤ #,##,##0.00"},"brx_IN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤ #,##,##0.00"},"bs":{},"bs_BA":{},"ca":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ca_AD":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ca_ES":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ca_FR":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ca_IT":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ccp":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"#,##,##0.00¤"},"ccp_BD":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"#,##,##0.00¤"},"ccp_IN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"#,##,##0.00¤"},"ce":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ce_RU":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"cgg":{"currency_pattern":"¤#,##0.00"},"cgg_UG":{"currency_pattern":"¤#,##0.00"},"chr":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"chr_US":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"ckb":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ckb_IQ":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ckb_IR":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"cs":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"cs_CZ":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"cu":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"cu_RU":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"cy":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"cy_GB":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"da":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"da_DK":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"da_GL":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"dav":{"currency_pattern":"¤#,##0.00"},"dav_KE":{"currency_pattern":"¤#,##0.00"},"de":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"de_AT":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"de_BE":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"de_CH":{"decimal_sep":".","group_sep":"’","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00;¤-#,##0.00"},"de_DE":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"de_IT":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"de_LI":{"decimal_sep":".","group_sep":"’","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"de_LU":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"dje":{"decimal_sep":".","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00¤"},"dje_NE":{"decimal_sep":".","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00¤"},"dsb":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"dsb_DE":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"dua":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"dua_CM":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"dyo":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"dyo_SN":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"dz":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤#,##,##0.00"},"dz_BT":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤#,##,##0.00"},"ebu":{"currency_pattern":"¤#,##0.00"},"ebu_KE":{"currency_pattern":"¤#,##0.00"},"ee":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"ee_GH":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"ee_TG":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"el":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"el_CY":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"el_GR":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"en":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_001":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_150":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"en_AG":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_AI":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_AS":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_AT":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"en_AU":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_BB":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_BE":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"en_BI":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_BM":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_BS":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_BW":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_BZ":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_CA":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_CC":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_CH":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00;¤-#,##0.00"},"en_CK":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_CM":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_CX":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_CY":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_DE":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_DG":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_DK":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_DM":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_ER":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_FI":{"decimal_sep":".","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_FJ":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_FK":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_FM":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_GB":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_GD":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_GG":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_GH":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_GI":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_GM":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_GU":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_GY":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_HK":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_IE":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_IL":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_IM":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_IN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤ #,##,##0.00"},"en_IO":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_JE":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_JM":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_KE":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_KI":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_KN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_KY":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_LC":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_LR":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_LS":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_MG":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_MH":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_MO":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_MP":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_MS":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_MT":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_MU":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_MW":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_MY":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_NA":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_NF":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_NG":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_NL":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00;¤ -#,##0.00"},"en_NR":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_NU":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_NZ":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_PG":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_PH":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_PK":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_PN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_PR":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_PW":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_RW":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_SB":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_SC":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_SD":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_SE":{"decimal_sep":".","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_SG":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_SH":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_SI":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤;(#,##0.00 ¤)"},"en_SL":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_SS":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_SX":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_SZ":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_TC":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_TK":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_TO":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_TT":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_TV":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_TZ":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_UG":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_UM":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_US":{"decimal_sep":".","group_sep":",","number_pattern":"0.######","currency_pattern":"¤ 0.00"},"en_VC":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_VG":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_VI":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_VU":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_WS":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_ZA":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_ZM":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"en_ZW":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"eo":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###"},"eo_001":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###"},"es":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"es_419":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"es_AR":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"es_BO":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"es_BR":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"es_BZ":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"es_CL":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00;¤-#,##0.00"},"es_CO":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"es_CR":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"es_CU":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"es_DO":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00;(¤#,##0.00)"},"es_EA":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"es_EC":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00;¤-#,##0.00"},"es_ES":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"es_GQ":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"es_GT":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"es_HN":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"es_IC":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"es_MX":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"es_NI":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"es_PA":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"es_PE":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"es_PH":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"es_PR":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"es_PY":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00;¤ -#,##0.00"},"es_SV":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"es_US":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"es_UY":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"es_VE":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00;¤-#,##0.00"},"et":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"et_EE":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"eu":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"eu_ES":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ewo":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ewo_CM":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fa":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"‎¤ #,##0.00"},"fa_AF":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"fa_IR":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"‎¤ #,##0.00"},"ff":{"decimal_sep":",","group_sep":" ","currency_pattern":"#,##0.00 ¤"},"ff_CM":{"decimal_sep":",","group_sep":" ","currency_pattern":"#,##0.00 ¤"},"ff_GN":{"decimal_sep":",","group_sep":" ","currency_pattern":"#,##0.00 ¤"},"ff_MR":{"decimal_sep":",","group_sep":" ","currency_pattern":"#,##0.00 ¤"},"ff_SN":{"decimal_sep":",","group_sep":" ","currency_pattern":"#,##0.00 ¤"},"fi":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fi_FI":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fil":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"fil_PH":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"fo":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fo_DK":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fo_FO":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_BE":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_BF":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_BI":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_BJ":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_BL":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_CA":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_CD":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_CF":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_CG":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_CH":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤;-#,##0.00 ¤"},"fr_CI":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_CM":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_DJ":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_DZ":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_FR":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_GA":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_GF":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_GN":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_GP":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_GQ":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_HT":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_KM":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_LU":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_MA":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_MC":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_MF":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_MG":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_ML":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_MQ":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_MR":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_MU":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_NC":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_NE":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_PF":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_PM":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_RE":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_RW":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_SC":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_SN":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_SY":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_TD":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_TG":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_TN":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_VU":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_WF":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fr_YT":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"fur":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"fur_IT":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"fy":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00;¤ #,##0.00-"},"fy_NL":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00;¤ #,##0.00-"},"ga":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"ga_IE":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"gd":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"gd_GB":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"gl":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"gl_ES":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"gsw":{"decimal_sep":".","group_sep":"’","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"gsw_CH":{"decimal_sep":".","group_sep":"’","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"gsw_FR":{"decimal_sep":".","group_sep":"’","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"gsw_LI":{"decimal_sep":".","group_sep":"’","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"gu":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤#,##,##0.00"},"gu_IN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤#,##,##0.00"},"guz":{"currency_pattern":"¤#,##0.00"},"guz_KE":{"currency_pattern":"¤#,##0.00"},"gv":{"currency_pattern":"¤#,##0.00"},"gv_IM":{"currency_pattern":"¤#,##0.00"},"ha":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ha_GH":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ha_NE":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ha_NG":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"haw":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"haw_US":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"he":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"‏#,##0.00 ¤;‏-#,##0.00 ¤"},"he_IL":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"‏#,##0.00 ¤;‏-#,##0.00 ¤"},"hi":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤#,##,##0.00"},"hi_IN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤#,##,##0.00"},"hr":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"hr_BA":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"hr_HR":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"hsb":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"hsb_DE":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"hu":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"hu_HU":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"hy":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"hy_AM":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"id":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"id_ID":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"ig":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"ig_NG":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"ii":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ii_CN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"is":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"is_IS":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"it":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"it_CH":{"decimal_sep":".","group_sep":"’","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00;¤-#,##0.00"},"it_IT":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"it_SM":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"it_VA":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ja":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"ja_JP":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"jgo":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"jgo_CM":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"jmc":{"currency_pattern":"¤#,##0.00"},"jmc_TZ":{"currency_pattern":"¤#,##0.00"},"ka":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ka_GE":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"kab":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00¤"},"kab_DZ":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00¤"},"kam":{"currency_pattern":"¤#,##0.00"},"kam_KE":{"currency_pattern":"¤#,##0.00"},"kde":{"currency_pattern":"¤#,##0.00"},"kde_TZ":{"currency_pattern":"¤#,##0.00"},"kea":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"kea_CV":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"khq":{"group_sep":" ","currency_pattern":"#,##0.00¤"},"khq_ML":{"group_sep":" ","currency_pattern":"#,##0.00¤"},"ki":{"currency_pattern":"¤#,##0.00"},"ki_KE":{"currency_pattern":"¤#,##0.00"},"kk":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"kk_KZ":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"kkj":{"decimal_sep":",","group_sep":"."},"kkj_CM":{"decimal_sep":",","group_sep":"."},"kl":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00;¤-#,##0.00"},"kl_GL":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00;¤-#,##0.00"},"kln":{"currency_pattern":"¤#,##0.00"},"kln_KE":{"currency_pattern":"¤#,##0.00"},"km":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00¤"},"km_KH":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00¤"},"kn":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"kn_IN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"ko":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"ko_KP":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"ko_KR":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"kok":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤ #,##,##0.00"},"kok_IN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤ #,##,##0.00"},"ks":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤ #,##,##0.00"},"ks_IN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤ #,##,##0.00"},"ksb":{"currency_pattern":"#,##0.00¤"},"ksb_TZ":{"currency_pattern":"#,##0.00¤"},"ksf":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ksf_CM":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ksh":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ksh_DE":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"kw":{"currency_pattern":"¤#,##0.00"},"kw_GB":{"currency_pattern":"¤#,##0.00"},"ky":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ky_KG":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"lag":{},"lag_TZ":{},"lb":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"lb_LU":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"lg":{"currency_pattern":"#,##0.00¤"},"lg_UG":{"currency_pattern":"#,##0.00¤"},"lkt":{"decimal_sep":".","group_sep":","},"lkt_US":{"decimal_sep":".","group_sep":","},"ln":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ln_AO":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ln_CD":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ln_CF":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ln_CG":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"lo":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00;¤-#,##0.00"},"lo_LA":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00;¤-#,##0.00"},"lrc":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"lrc_IQ":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"lrc_IR":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"lt":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"lt_LT":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"lu":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00¤"},"lu_CD":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00¤"},"luo":{"currency_pattern":"#,##0.00¤"},"luo_KE":{"currency_pattern":"#,##0.00¤"},"luy":{"currency_pattern":"¤#,##0.00;¤- #,##0.00"},"luy_KE":{"currency_pattern":"¤#,##0.00;¤- #,##0.00"},"lv":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"lv_LV":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"mas":{"currency_pattern":"¤#,##0.00"},"mas_KE":{"currency_pattern":"¤#,##0.00"},"mas_TZ":{"currency_pattern":"¤#,##0.00"},"mer":{"currency_pattern":"¤#,##0.00"},"mer_KE":{"currency_pattern":"¤#,##0.00"},"mfe":{"group_sep":" "},"mfe_MU":{"group_sep":" "},"mg":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"mg_MG":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"mgh":{"decimal_sep":",","group_sep":"."},"mgh_MZ":{"decimal_sep":",","group_sep":"."},"mgo":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"mgo_CM":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"mk":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"mk_MK":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ml":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤#,##0.00"},"ml_IN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤#,##0.00"},"mn":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"mn_MN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"mr":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤#,##0.00"},"mr_IN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤#,##0.00"},"ms":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"ms_BN":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ms_MY":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"ms_SG":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"mt":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"mt_MT":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"mua":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"mua_CM":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"my":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"my_MM":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"mzn":{},"mzn_IR":{},"naq":{"currency_pattern":"¤#,##0.00"},"naq_NA":{"currency_pattern":"¤#,##0.00"},"nb":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"nb_NO":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"nb_SJ":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"nd":{"currency_pattern":"¤#,##0.00"},"nd_ZW":{"currency_pattern":"¤#,##0.00"},"nds":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"nds_DE":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"nds_NL":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ne":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ne_IN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ne_NP":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"nl":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00;¤ -#,##0.00"},"nl_AW":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00;¤ -#,##0.00"},"nl_BE":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"nl_BQ":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00;¤ -#,##0.00"},"nl_CW":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00;¤ -#,##0.00"},"nl_NL":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00;¤ -#,##0.00"},"nl_SR":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00;¤ -#,##0.00"},"nl_SX":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00;¤ -#,##0.00"},"nmg":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"nmg_CM":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"nn":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"nn_NO":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"nnh":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"nnh_CM":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"nus":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"nus_SS":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"nyn":{"currency_pattern":"¤#,##0.00"},"nyn_UG":{"currency_pattern":"¤#,##0.00"},"om":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"om_ET":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"om_KE":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"or":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤ #,##,##0.00"},"or_IN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤ #,##,##0.00"},"os":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"os_GE":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"os_RU":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"pa":{},"pa_PK":{},"pa_IN":{},"pl":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"pl_PL":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"prg":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"prg_001":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ps":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ps_AF":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"pt":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"pt_AO":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"pt_BR":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"pt_CH":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"pt_CV":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"pt_GQ":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"pt_GW":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"pt_LU":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"pt_MO":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"pt_MZ":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"pt_PT":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"pt_ST":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"pt_TL":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"qu":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"qu_BO":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"qu_EC":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"qu_PE":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"rm":{"decimal_sep":".","group_sep":"’","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"rm_CH":{"decimal_sep":".","group_sep":"’","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"rn":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00¤"},"rn_BI":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00¤"},"ro":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ro_MD":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ro_RO":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"rof":{"currency_pattern":"¤#,##0.00"},"rof_TZ":{"currency_pattern":"¤#,##0.00"},"root":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ru":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ru_BY":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ru_KG":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ru_KZ":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ru_MD":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ru_RU":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ru_UA":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"rw":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"rw_RW":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"rwk":{"currency_pattern":"#,##0.00¤"},"rwk_TZ":{"currency_pattern":"#,##0.00¤"},"sah":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"sah_RU":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"saq":{"currency_pattern":"¤#,##0.00"},"saq_KE":{"currency_pattern":"¤#,##0.00"},"sbp":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"#,##0.00¤"},"sbp_TZ":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"#,##0.00¤"},"sd":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"sd_PK":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"se":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"se_FI":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"se_NO":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"se_SE":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"seh":{"decimal_sep":",","group_sep":".","currency_pattern":"#,##0.00¤"},"seh_MZ":{"decimal_sep":",","group_sep":".","currency_pattern":"#,##0.00¤"},"ses":{"group_sep":" ","currency_pattern":"#,##0.00¤"},"ses_ML":{"group_sep":" ","currency_pattern":"#,##0.00¤"},"sg":{"decimal_sep":",","group_sep":".","currency_pattern":"¤#,##0.00;¤-#,##0.00"},"sg_CF":{"decimal_sep":",","group_sep":".","currency_pattern":"¤#,##0.00;¤-#,##0.00"},"shi":{},"shi_MA":{},"si":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"si_LK":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"sk":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"sk_SK":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"sl":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"sl_SI":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"smn":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"smn_FI":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"sn":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"sn_ZW":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"so":{"decimal_sep":".","group_sep":",","currency_pattern":"¤#,##0.00"},"so_DJ":{"decimal_sep":".","group_sep":",","currency_pattern":"¤#,##0.00"},"so_ET":{"decimal_sep":".","group_sep":",","currency_pattern":"¤#,##0.00"},"so_KE":{"decimal_sep":".","group_sep":",","currency_pattern":"¤#,##0.00"},"so_SO":{"decimal_sep":".","group_sep":",","currency_pattern":"¤#,##0.00"},"sq":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"sq_AL":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"sq_MK":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"sq_XK":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"sr":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"sr_BA":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"sr_ME":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"sr_RS":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"sr_XK":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"sv":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"sv_AX":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"sv_FI":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"sv_SE":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"sw":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"sw_CD":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"sw_KE":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"sw_TZ":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"sw_UG":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"ta":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤ #,##,##0.00"},"ta_IN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤ #,##,##0.00"},"ta_LK":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤ #,##,##0.00"},"ta_MY":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ta_SG":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"te":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤#,##,##0.00"},"te_IN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##,##0.###","currency_pattern":"¤#,##,##0.00"},"teo":{"currency_pattern":"¤#,##0.00"},"teo_KE":{"currency_pattern":"¤#,##0.00"},"teo_UG":{"currency_pattern":"¤#,##0.00"},"tg":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"tg_TJ":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"th":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"th_TH":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"ti":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"ti_ER":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"ti_ET":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"tk":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"tk_TM":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"to":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"to_TO":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"tr":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"tr_CY":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"tr_TR":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"tt":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"tt_RU":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"twq":{"decimal_sep":".","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00¤"},"twq_NE":{"decimal_sep":".","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00¤"},"tzm":{"decimal_sep":",","group_sep":" ","currency_pattern":"#,##0.00 ¤"},"tzm_MA":{"decimal_sep":",","group_sep":" ","currency_pattern":"#,##0.00 ¤"},"ug":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"ug_CN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"uk":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"uk_UA":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"ur":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ur_IN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"ur_PK":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"uz":{},"uz_AF":{"decimal_sep":",","group_sep":".","currency_pattern":"#,##0.00 ¤"},"uz_UZ":{},"vai":{},"vai_LR":{},"vi":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"vi_VN":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"vo":{},"vo_001":{},"vun":{"currency_pattern":"¤#,##0.00"},"vun_TZ":{"currency_pattern":"¤#,##0.00"},"wae":{"decimal_sep":",","group_sep":"’"},"wae_CH":{"decimal_sep":",","group_sep":"’"},"wo":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"wo_SN":{"decimal_sep":",","group_sep":".","number_pattern":"#,##0.###","currency_pattern":"¤ #,##0.00"},"xog":{"currency_pattern":"#,##0.00 ¤"},"xog_UG":{"currency_pattern":"#,##0.00 ¤"},"yav":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"yav_CM":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00 ¤"},"yi":{"decimal_sep":".","group_sep":","},"yi_001":{"decimal_sep":".","group_sep":","},"yo":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"yo_BJ":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"yo_NG":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"yue":{},"yue_CN":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"yue_HK":{},"zgh":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00¤"},"zgh_MA":{"decimal_sep":",","group_sep":" ","number_pattern":"#,##0.###","currency_pattern":"#,##0.00¤"},"zh":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"zh_CN":{},"zh_HK":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"zh_MO":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"zh_SG":{},"zh_TW":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"zu":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"},"zu_ZA":{"decimal_sep":".","group_sep":",","number_pattern":"#,##0.###","currency_pattern":"¤#,##0.00"}} -------------------------------------------------------------------------------- /dist/krokus.js: -------------------------------------------------------------------------------- 1 | !function(e,r){for(var p in r)e[p]=r[p]}(exports,function(e){var r={};function p(_){if(r[_])return r[_].exports;var n=r[_]={i:_,l:!1,exports:{}};return e[_].call(n.exports,n,n.exports,p),n.l=!0,n.exports}return p.m=e,p.c=r,p.d=function(e,r,_){p.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:_})},p.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},p.t=function(e,r){if(1&r&&(e=p(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var _=Object.create(null);if(p.r(_),Object.defineProperty(_,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)p.d(_,n,function(r){return e[r]}.bind(null,n));return _},p.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return p.d(r,"a",r),r},p.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},p.p="",p(p.s=2)}([function(e){e.exports={AED:{symbol:"AED",wideSymbol:"AED",code:"AED"},AFN:{symbol:"AFN",wideSymbol:"AFN",code:"AFN"},ALL:{symbol:"ALL",wideSymbol:"ALL",code:"ALL"},AMD:{symbol:"AMD",wideSymbol:"AMD",code:"AMD"},ANG:{symbol:"ANG",wideSymbol:"ANG",code:"ANG"},AOA:{symbol:"Kz",wideSymbol:"AOA",code:"AOA"},ARS:{symbol:"$",wideSymbol:"ARS",code:"ARS"},AUD:{symbol:"$",wideSymbol:"A$",code:"AUD"},AWG:{symbol:"AWG",wideSymbol:"AWG",code:"AWG"},AZN:{symbol:"AZN",wideSymbol:"AZN",code:"AZN"},BAM:{symbol:"KM",wideSymbol:"BAM",code:"BAM"},BBD:{symbol:"$",wideSymbol:"BBD",code:"BBD"},BDT:{symbol:"৳",wideSymbol:"BDT",code:"BDT"},BGN:{symbol:"BGN",wideSymbol:"BGN",code:"BGN"},BHD:{symbol:"BHD",wideSymbol:"BHD",code:"BHD"},BIF:{symbol:"BIF",wideSymbol:"BIF",code:"BIF"},BMD:{symbol:"$",wideSymbol:"BMD",code:"BMD"},BND:{symbol:"$",wideSymbol:"BND",code:"BND"},BOB:{symbol:"Bs",wideSymbol:"BOB",code:"BOB"},BRL:{symbol:"R$",wideSymbol:"R$",code:"BRL"},BSD:{symbol:"$",wideSymbol:"BSD",code:"BSD"},BTN:{symbol:"BTN",wideSymbol:"BTN",code:"BTN"},BWP:{symbol:"P",wideSymbol:"BWP",code:"BWP"},BYN:{symbol:"P.",wideSymbol:"BYN",code:"BYN"},BYR:{symbol:"BYR",wideSymbol:"BYR",code:"BYR"},BZD:{symbol:"$",wideSymbol:"BZD",code:"BZD"},CAD:{symbol:"$",wideSymbol:"CA$",code:"CAD"},CDF:{symbol:"CDF",wideSymbol:"CDF",code:"CDF"},CHF:{symbol:"CHF",wideSymbol:"CHF",code:"CHF"},CLP:{symbol:"$",wideSymbol:"CLP",code:"CLP"},CNH:{symbol:"",wideSymbol:"",code:"CNH"},CNY:{symbol:"¥",wideSymbol:"CN¥",code:"CNY"},COP:{symbol:"$",wideSymbol:"COP",code:"COP"},CRC:{symbol:"₡",wideSymbol:"CRC",code:"CRC"},CUC:{symbol:"$",wideSymbol:"CUC",code:"CUC"},CUP:{symbol:"$",wideSymbol:"CUP",code:"CUP"},CVE:{symbol:"CVE",wideSymbol:"CVE",code:"CVE"},CZK:{symbol:"Kč",wideSymbol:"CZK",code:"CZK"},DJF:{symbol:"DJF",wideSymbol:"DJF",code:"DJF"},DKK:{symbol:"Kr",wideSymbol:"DKK",code:"DKK"},DOP:{symbol:"$",wideSymbol:"DOP",code:"DOP"},DZD:{symbol:"DZD",wideSymbol:"DZD",code:"DZD"},EGP:{symbol:"E£",wideSymbol:"EGP",code:"EGP"},ERN:{symbol:"ERN",wideSymbol:"ERN",code:"ERN"},ETB:{symbol:"ETB",wideSymbol:"ETB",code:"ETB"},EUR:{symbol:"€",wideSymbol:"€",code:"EUR"},FJD:{symbol:"$",wideSymbol:"FJD",code:"FJD"},FKP:{symbol:"£",wideSymbol:"FKP",code:"FKP"},GBP:{symbol:"£",wideSymbol:"£",code:"GBP"},GEL:{symbol:"₾",wideSymbol:"GEL",code:"GEL"},GHC:{symbol:"GHC",wideSymbol:"GHC",code:"GHC"},GHS:{symbol:"GHS",wideSymbol:"GHS",code:"GHS"},GIP:{symbol:"£",wideSymbol:"GIP",code:"GIP"},GMD:{symbol:"GMD",wideSymbol:"GMD",code:"GMD"},GNF:{symbol:"FG",wideSymbol:"GNF",code:"GNF"},GNS:{symbol:"GNS",wideSymbol:"GNS",code:"GNS"},GTQ:{symbol:"Q",wideSymbol:"GTQ",code:"GTQ"},GYD:{symbol:"$",wideSymbol:"GYD",code:"GYD"},HKD:{symbol:"$",wideSymbol:"HK$",code:"HKD"},HNL:{symbol:"L",wideSymbol:"HNL",code:"HNL"},HRK:{symbol:"Kn",wideSymbol:"HRK",code:"HRK"},HTG:{symbol:"HTG",wideSymbol:"HTG",code:"HTG"},HUF:{symbol:"Ft",wideSymbol:"HUF",code:"HUF"},IDR:{symbol:"Rp",wideSymbol:"IDR",code:"IDR"},ILS:{symbol:"₪",wideSymbol:"₪",code:"ILS"},INR:{symbol:"₹",wideSymbol:"₹",code:"INR"},IQD:{symbol:"IQD",wideSymbol:"IQD",code:"IQD"},IRR:{symbol:"IRR",wideSymbol:"IRR",code:"IRR"},ISK:{symbol:"Kr",wideSymbol:"ISK",code:"ISK"},ITL:{symbol:"",wideSymbol:"",code:"ITL"},JMD:{symbol:"$",wideSymbol:"JMD",code:"JMD"},JOD:{symbol:"JOD",wideSymbol:"JOD",code:"JOD"},JPY:{symbol:"¥",wideSymbol:"JP¥",code:"JPY"},KES:{symbol:"KES",wideSymbol:"KES",code:"KES"},KGS:{symbol:"KGS",wideSymbol:"KGS",code:"KGS"},KHR:{symbol:"៛",wideSymbol:"KHR",code:"KHR"},KMF:{symbol:"CF",wideSymbol:"KMF",code:"KMF"},KPW:{symbol:"₩",wideSymbol:"KPW",code:"KPW"},KRW:{symbol:"₩",wideSymbol:"₩",code:"KRW"},KWD:{symbol:"KWD",wideSymbol:"KWD",code:"KWD"},KYD:{symbol:"$",wideSymbol:"KYD",code:"KYD"},KZT:{symbol:"₸",wideSymbol:"KZT",code:"KZT"},LAK:{symbol:"₭",wideSymbol:"LAK",code:"LAK"},LBP:{symbol:"L£",wideSymbol:"LBP",code:"LBP"},LKR:{symbol:"Rs",wideSymbol:"LKR",code:"LKR"},LRD:{symbol:"$",wideSymbol:"LRD",code:"LRD"},LSL:{symbol:"",wideSymbol:"",code:"LSL"},LTL:{symbol:"",wideSymbol:"",code:"LTL"},LVL:{symbol:"",wideSymbol:"",code:"LVL"},LYD:{symbol:"LYD",wideSymbol:"LYD",code:"LYD"},MAD:{symbol:"MAD",wideSymbol:"MAD",code:"MAD"},MDL:{symbol:"MDL",wideSymbol:"MDL",code:"MDL"},MGA:{symbol:"Ar",wideSymbol:"MGA",code:"MGA"},MKD:{symbol:"MKD",wideSymbol:"MKD",code:"MKD"},MMK:{symbol:"K",wideSymbol:"MMK",code:"MMK"},MNT:{symbol:"₮",wideSymbol:"MNT",code:"MNT"},MOP:{symbol:"MOP",wideSymbol:"MOP",code:"MOP"},MRO:{symbol:"MRO",wideSymbol:"MRO",code:"MRO"},MRU:{symbol:"",wideSymbol:"",code:"MRU"},MUR:{symbol:"Rs",wideSymbol:"MUR",code:"MUR"},MVR:{symbol:"MVR",wideSymbol:"MVR",code:"MVR"},MWK:{symbol:"MWK",wideSymbol:"MWK",code:"MWK"},MXN:{symbol:"$",wideSymbol:"MX$",code:"MXN"},MYR:{symbol:"RM",wideSymbol:"MYR",code:"MYR"},MZM:{symbol:"MZM",wideSymbol:"MZM",code:"MZM"},MZN:{symbol:"MZN",wideSymbol:"MZN",code:"MZN"},NAD:{symbol:"$",wideSymbol:"NAD",code:"NAD"},NGN:{symbol:"₦",wideSymbol:"NGN",code:"NGN"},NIO:{symbol:"C$",wideSymbol:"NIO",code:"NIO"},NOK:{symbol:"Kr",wideSymbol:"NOK",code:"NOK"},NPR:{symbol:"Rs",wideSymbol:"NPR",code:"NPR"},NZD:{symbol:"$",wideSymbol:"NZ$",code:"NZD"},OMR:{symbol:"OMR",wideSymbol:"OMR",code:"OMR"},PAB:{symbol:"PAB",wideSymbol:"PAB",code:"PAB"},PEN:{symbol:"PEN",wideSymbol:"PEN",code:"PEN"},PGK:{symbol:"PGK",wideSymbol:"PGK",code:"PGK"},PHP:{symbol:"₱",wideSymbol:"PHP",code:"PHP"},PKR:{symbol:"Rs",wideSymbol:"PKR",code:"PKR"},PLN:{symbol:"Zł",wideSymbol:"PLN",code:"PLN"},PYG:{symbol:"₲",wideSymbol:"PYG",code:"PYG"},QAR:{symbol:"QAR",wideSymbol:"QAR",code:"QAR"},RON:{symbol:"RON",wideSymbol:"RON",code:"RON"},RSD:{symbol:"RSD",wideSymbol:"RSD",code:"RSD"},RUB:{symbol:"₽",wideSymbol:"RUB",code:"RUB"},RWF:{symbol:"RF",wideSymbol:"RWF",code:"RWF"},SAR:{symbol:"SAR",wideSymbol:"SAR",code:"SAR"},SBD:{symbol:"$",wideSymbol:"SBD",code:"SBD"},SCR:{symbol:"SCR",wideSymbol:"SCR",code:"SCR"},SDG:{symbol:"SDG",wideSymbol:"SDG",code:"SDG"},SDP:{symbol:"SDP",wideSymbol:"SDP",code:"SDP"},SEK:{symbol:"Kr",wideSymbol:"SEK",code:"SEK"},SGD:{symbol:"$",wideSymbol:"SGD",code:"SGD"},SHP:{symbol:"£",wideSymbol:"SHP",code:"SHP"},SLL:{symbol:"SLL",wideSymbol:"SLL",code:"SLL"},SOS:{symbol:"SOS",wideSymbol:"SOS",code:"SOS"},SRD:{symbol:"$",wideSymbol:"SRD",code:"SRD"},SSP:{symbol:"£",wideSymbol:"SSP",code:"SSP"},STD:{symbol:"STD",wideSymbol:"STD",code:"STD"},STN:{symbol:"Db",wideSymbol:"Db",code:"STN"},SYP:{symbol:"£",wideSymbol:"SYP",code:"SYP"},SZL:{symbol:"SZL",wideSymbol:"SZL",code:"SZL"},THB:{symbol:"฿",wideSymbol:"฿",code:"THB"},TJS:{symbol:"TJS",wideSymbol:"TJS",code:"TJS"},TMT:{symbol:"TMT",wideSymbol:"TMT",code:"TMT"},TND:{symbol:"TND",wideSymbol:"TND",code:"TND"},TOP:{symbol:"T$",wideSymbol:"TOP",code:"TOP"},TRL:{symbol:"TRL",wideSymbol:"TRL",code:"TRL"},TRY:{symbol:"₺",wideSymbol:"TRY",code:"TRY"},TTD:{symbol:"$",wideSymbol:"TTD",code:"TTD"},TWD:{symbol:"NT$",wideSymbol:"NT$",code:"TWD"},TZS:{symbol:"TZS",wideSymbol:"TZS",code:"TZS"},UAH:{symbol:"₴",wideSymbol:"UAH",code:"UAH"},UGX:{symbol:"UGX",wideSymbol:"UGX",code:"UGX"},USD:{symbol:"$",wideSymbol:"US$",code:"USD"},UYU:{symbol:"$",wideSymbol:"UYU",code:"UYU"},UZS:{symbol:"UZS",wideSymbol:"UZS",code:"UZS"},VEF:{symbol:"Bs",wideSymbol:"VEF",code:"VEF"},VND:{symbol:"₫",wideSymbol:"₫",code:"VND"},VUV:{symbol:"VUV",wideSymbol:"VUV",code:"VUV"},WST:{symbol:"WST",wideSymbol:"WST",code:"WST"},XAF:{symbol:"FCFA",wideSymbol:"FCFA",code:"XAF"},XCD:{symbol:"$",wideSymbol:"EC$",code:"XCD"},XOF:{symbol:"CFA",wideSymbol:"CFA",code:"XOF"},XPF:{symbol:"CFPF",wideSymbol:"CFPF",code:"XPF"},XXX:{symbol:"",wideSymbol:"",code:"XXX"},YER:{symbol:"YER",wideSymbol:"YER",code:"YER"},ZAR:{symbol:"R",wideSymbol:"R",code:"ZAR"},ZMK:{symbol:"",wideSymbol:"",code:"ZMK"},ZMW:{symbol:"ZK",wideSymbol:"ZMW",code:"ZMW"},ZWD:{symbol:"ZWD",wideSymbol:"ZWD",code:"ZWD"},ADP:{symbol:"ADP",wideSymbol:"ADP",code:"ADP"},AFA:{symbol:"AFA",wideSymbol:"AFA",code:"AFA"},AOK:{symbol:"AOK",wideSymbol:"AOK",code:"AOK"},AON:{symbol:"AON",wideSymbol:"AON",code:"AON"},AOR:{symbol:"AOR",wideSymbol:"AOR",code:"AOR"},ARA:{symbol:"ARA",wideSymbol:"ARA",code:"ARA"},ARP:{symbol:"ARP",wideSymbol:"ARP",code:"ARP"},ATS:{symbol:"ATS",wideSymbol:"ATS",code:"ATS"},AZM:{symbol:"AZM",wideSymbol:"AZM",code:"AZM"},BAD:{symbol:"",wideSymbol:"",code:"BAD"},BEC:{symbol:"BEC",wideSymbol:"BEC",code:"BEC"},BEF:{symbol:"BEF",wideSymbol:"BEF",code:"BEF"},BEL:{symbol:"BEL",wideSymbol:"BEL",code:"BEL"},BOP:{symbol:"BOP",wideSymbol:"BOP",code:"BOP"},BOV:{symbol:"BOV",wideSymbol:"BOV",code:"BOV"},BRB:{symbol:"BRB",wideSymbol:"BRB",code:"BRB"},BRC:{symbol:"BRC",wideSymbol:"BRC",code:"BRC"},BRE:{symbol:"BRE",wideSymbol:"BRE",code:"BRE"},BUK:{symbol:"BUK",wideSymbol:"BUK",code:"BUK"},BYB:{symbol:"BYB",wideSymbol:"BYB",code:"BYB"},CSD:{symbol:"CSD",wideSymbol:"CSD",code:"CSD"},CSK:{symbol:"CSK",wideSymbol:"CSK",code:"CSK"},CYP:{symbol:"CYP",wideSymbol:"CYP",code:"CYP"},DDM:{symbol:"DDM",wideSymbol:"DDM",code:"DDM"},DEM:{symbol:"DEM",wideSymbol:"DEM",code:"DEM"},EEK:{symbol:"EEK",wideSymbol:"EEK",code:"EEK"},ESP:{symbol:"₧",wideSymbol:"ESP",code:"ESP"},FIM:{symbol:"FIM",wideSymbol:"FIM",code:"FIM"},FRF:{symbol:"FRF",wideSymbol:"FRF",code:"FRF"},GQE:{symbol:"GQE",wideSymbol:"GQE",code:"GQE"},GRD:{symbol:"GRD",wideSymbol:"GRD",code:"GRD"},GWE:{symbol:"GWE",wideSymbol:"GWE",code:"GWE"},GWP:{symbol:"GWP",wideSymbol:"GWP",code:"GWP"},HRD:{symbol:"HRD",wideSymbol:"HRD",code:"HRD"},IEP:{symbol:"IEP",wideSymbol:"IEP",code:"IEP"},ILP:{symbol:"ILP",wideSymbol:"ILP",code:"ILP"},LTT:{symbol:"LTT",wideSymbol:"LTT",code:"LTT"},LUC:{symbol:"LUC",wideSymbol:"LUC",code:"LUC"},LUF:{symbol:"LUF",wideSymbol:"LUF",code:"LUF"},LUL:{symbol:"LUL",wideSymbol:"LUL",code:"LUL"},LVR:{symbol:"LVR",wideSymbol:"LVR",code:"LVR"},MAF:{symbol:"MAF",wideSymbol:"MAF",code:"MAF"},MGF:{symbol:"MGF",wideSymbol:"MGF",code:"MGF"},MLF:{symbol:"MLF",wideSymbol:"MLF",code:"MLF"},MTL:{symbol:"MTL",wideSymbol:"MTL",code:"MTL"},MTP:{symbol:"MTP",wideSymbol:"MTP",code:"MTP"},MXP:{symbol:"MXP",wideSymbol:"MXP",code:"MXP"},MZE:{symbol:"MZE",wideSymbol:"MZE",code:"MZE"},NIC:{symbol:"NIC",wideSymbol:"NIC",code:"NIC"},NLG:{symbol:"NLG",wideSymbol:"NLG",code:"NLG"},PLZ:{symbol:"PLZ",wideSymbol:"PLZ",code:"PLZ"},PTE:{symbol:"PTE",wideSymbol:"PTE",code:"PTE"},RHD:{symbol:"RHD",wideSymbol:"RHD",code:"RHD"},ROL:{symbol:"ROL",wideSymbol:"ROL",code:"ROL"},RUR:{symbol:"р.",wideSymbol:"RUR",code:"RUR"},SDD:{symbol:"SDD",wideSymbol:"SDD",code:"SDD"},SIT:{symbol:"SIT",wideSymbol:"SIT",code:"SIT"},SKK:{symbol:"SKK",wideSymbol:"SKK",code:"SKK"},SRG:{symbol:"SRG",wideSymbol:"SRG",code:"SRG"},SUR:{symbol:"SUR",wideSymbol:"SUR",code:"SUR"},SVC:{symbol:"SVC",wideSymbol:"SVC",code:"SVC"},TJR:{symbol:"TJR",wideSymbol:"TJR",code:"TJR"},TMM:{symbol:"TMM",wideSymbol:"TMM",code:"TMM"},TPE:{symbol:"TPE",wideSymbol:"TPE",code:"TPE"},UGS:{symbol:"UGS",wideSymbol:"UGS",code:"UGS"},USN:{symbol:"USN",wideSymbol:"USN",code:"USN"},USS:{symbol:"USS",wideSymbol:"USS",code:"USS"},UYP:{symbol:"UYP",wideSymbol:"UYP",code:"UYP"},VEB:{symbol:"VEB",wideSymbol:"VEB",code:"VEB"},XAG:{symbol:"XAG",wideSymbol:"XAG",code:"XAG"},XAU:{symbol:"XAU",wideSymbol:"XAU",code:"XAU"},XBA:{symbol:"XBA",wideSymbol:"XBA",code:"XBA"},XBB:{symbol:"XBB",wideSymbol:"XBB",code:"XBB"},XBC:{symbol:"XBC",wideSymbol:"XBC",code:"XBC"},XBD:{symbol:"XBD",wideSymbol:"XBD",code:"XBD"},XDR:{symbol:"XDR",wideSymbol:"XDR",code:"XDR"},XEU:{symbol:"XEU",wideSymbol:"XEU",code:"XEU"},XFO:{symbol:"XFO",wideSymbol:"XFO",code:"XFO"},XFU:{symbol:"XFU",wideSymbol:"XFU",code:"XFU"},XPD:{symbol:"XPD",wideSymbol:"XPD",code:"XPD"},XPT:{symbol:"XPT",wideSymbol:"XPT",code:"XPT"},XTS:{symbol:"XTS",wideSymbol:"XTS",code:"XTS"},YDD:{symbol:"YDD",wideSymbol:"YDD",code:"YDD"},YUD:{symbol:"YUD",wideSymbol:"YUD",code:"YUD"},YUN:{symbol:"YUN",wideSymbol:"YUN",code:"YUN"},ZAL:{symbol:"ZAL",wideSymbol:"ZAL",code:"ZAL"},ZRN:{symbol:"ZRN",wideSymbol:"ZRN",code:"ZRN"},ZRZ:{symbol:"ZRZ",wideSymbol:"ZRZ",code:"ZRZ"},ZWL:{symbol:"ZWL",wideSymbol:"ZWL",code:"ZWL"},ALK:{symbol:"ALK",wideSymbol:"ALK",code:"ALK"},ARL:{symbol:"ARL",wideSymbol:"ARL",code:"ARL"},ARM:{symbol:"ARM",wideSymbol:"ARM",code:"ARM"},BAN:{symbol:"BAN",wideSymbol:"BAN",code:"BAN"},BGL:{symbol:"BGL",wideSymbol:"BGL",code:"BGL"},BGM:{symbol:"BGM",wideSymbol:"BGM",code:"BGM"},BGO:{symbol:"BGO",wideSymbol:"BGO",code:"BGO"},BOL:{symbol:"BOL",wideSymbol:"BOL",code:"BOL"},BRN:{symbol:"BRN",wideSymbol:"BRN",code:"BRN"},BRR:{symbol:"BRR",wideSymbol:"BRR",code:"BRR"},BRZ:{symbol:"BRZ",wideSymbol:"BRZ",code:"BRZ"},CHE:{symbol:"CHE",wideSymbol:"CHE",code:"CHE"},CHW:{symbol:"CHW",wideSymbol:"CHW",code:"CHW"},CLE:{symbol:"CLE",wideSymbol:"CLE",code:"CLE"},CLF:{symbol:"CLF",wideSymbol:"CLF",code:"CLF"},CNX:{symbol:"CNX",wideSymbol:"CNX",code:"CNX"},COU:{symbol:"COU",wideSymbol:"COU",code:"COU"},ECS:{symbol:"ECS",wideSymbol:"ECS",code:"ECS"},ECV:{symbol:"ECV",wideSymbol:"ECV",code:"ECV"},ESA:{symbol:"ESA",wideSymbol:"ESA",code:"ESA"},ESB:{symbol:"ESB",wideSymbol:"ESB",code:"ESB"},GEK:{symbol:"GEK",wideSymbol:"GEK",code:"GEK"},ILR:{symbol:"ILR",wideSymbol:"ILR",code:"ILR"},ISJ:{symbol:"ISJ",wideSymbol:"ISJ",code:"ISJ"},KRH:{symbol:"KRH",wideSymbol:"KRH",code:"KRH"},KRO:{symbol:"KRO",wideSymbol:"KRO",code:"KRO"},MCF:{symbol:"MCF",wideSymbol:"MCF",code:"MCF"},MDC:{symbol:"MDC",wideSymbol:"MDC",code:"MDC"},MKN:{symbol:"MKN",wideSymbol:"MKN",code:"MKN"},MVP:{symbol:"MVP",wideSymbol:"MVP",code:"MVP"},MXV:{symbol:"MXV",wideSymbol:"MXV",code:"MXV"},PEI:{symbol:"PEI",wideSymbol:"PEI",code:"PEI"},PES:{symbol:"PES",wideSymbol:"PES",code:"PES"},UAK:{symbol:"UAK",wideSymbol:"UAK",code:"UAK"},UYI:{symbol:"UYI",wideSymbol:"UYI",code:"UYI"},VNN:{symbol:"VNN",wideSymbol:"VNN",code:"VNN"},XRE:{symbol:"XRE",wideSymbol:"XRE",code:"XRE"},XSU:{symbol:"XSU",wideSymbol:"XSU",code:"XSU"},XUA:{symbol:"XUA",wideSymbol:"XUA",code:"XUA"},YUM:{symbol:"YUM",wideSymbol:"YUM",code:"YUM"},YUR:{symbol:"YUR",wideSymbol:"YUR",code:"YUR"},ZWR:{symbol:"ZWR",wideSymbol:"ZWR",code:"ZWR"}}},function(e){e.exports={af:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},af_NA:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},af_ZA:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},agq:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00¤"},agq_CM:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00¤"},ak:{decimal_sep:".",group_sep:",",currency_pattern:"¤#,##0.00"},ak_GH:{decimal_sep:".",group_sep:",",currency_pattern:"¤#,##0.00"},am:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},am_ET:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},ar:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_001:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_AE:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_BH:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_DJ:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_DZ:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_EG:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_EH:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_ER:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_IL:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_IQ:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_JO:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_KM:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_KW:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_LB:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_LY:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_MA:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_MR:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_OM:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_PS:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_QA:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_SA:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_SD:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_SO:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_SS:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_SY:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_TD:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_TN:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ar_YE:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},as:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤ #,##,##0.00"},as_IN:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤ #,##,##0.00"},asa:{currency_pattern:"#,##0.00 ¤"},asa_TZ:{currency_pattern:"#,##0.00 ¤"},ast:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ast_ES:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},az:{},az_AZ:{},bas:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},bas_CM:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},be:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},be_BY:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},bem:{currency_pattern:"¤#,##0.00"},bem_ZM:{currency_pattern:"¤#,##0.00"},bez:{currency_pattern:"#,##0.00¤"},bez_TZ:{currency_pattern:"#,##0.00¤"},bg:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"0.00 ¤"},bg_BG:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"0.00 ¤"},bm:{currency_pattern:"¤#,##0.00"},bm_ML:{currency_pattern:"¤#,##0.00"},bn:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"#,##,##0.00¤"},bn_BD:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"#,##,##0.00¤"},bn_IN:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"#,##,##0.00¤"},bo:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},bo_CN:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},bo_IN:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},br:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},br_FR:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},brx:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤ #,##,##0.00"},brx_IN:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤ #,##,##0.00"},bs:{},bs_BA:{},ca:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ca_AD:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ca_ES:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ca_FR:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ca_IT:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ccp:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"#,##,##0.00¤"},ccp_BD:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"#,##,##0.00¤"},ccp_IN:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"#,##,##0.00¤"},ce:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ce_RU:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},cgg:{currency_pattern:"¤#,##0.00"},cgg_UG:{currency_pattern:"¤#,##0.00"},chr:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},chr_US:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},ckb:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ckb_IQ:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ckb_IR:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},cs:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},cs_CZ:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},cu:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},cu_RU:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},cy:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},cy_GB:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},da:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},da_DK:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},da_GL:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},dav:{currency_pattern:"¤#,##0.00"},dav_KE:{currency_pattern:"¤#,##0.00"},de:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},de_AT:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},de_BE:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},de_CH:{decimal_sep:".",group_sep:"’",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00;¤-#,##0.00"},de_DE:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},de_IT:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},de_LI:{decimal_sep:".",group_sep:"’",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},de_LU:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},dje:{decimal_sep:".",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00¤"},dje_NE:{decimal_sep:".",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00¤"},dsb:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},dsb_DE:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},dua:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},dua_CM:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},dyo:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},dyo_SN:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},dz:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤#,##,##0.00"},dz_BT:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤#,##,##0.00"},ebu:{currency_pattern:"¤#,##0.00"},ebu_KE:{currency_pattern:"¤#,##0.00"},ee:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},ee_GH:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},ee_TG:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},el:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},el_CY:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},el_GR:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},en:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_001:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_150:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},en_AG:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_AI:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_AS:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_AT:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},en_AU:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_BB:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_BE:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},en_BI:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_BM:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_BS:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_BW:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_BZ:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_CA:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_CC:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_CH:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00;¤-#,##0.00"},en_CK:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_CM:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_CX:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_CY:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_DE:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_DG:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_DK:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_DM:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_ER:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_FI:{decimal_sep:".",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_FJ:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_FK:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_FM:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_GB:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_GD:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_GG:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_GH:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_GI:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_GM:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_GU:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_GY:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_HK:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_IE:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_IL:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_IM:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_IN:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤ #,##,##0.00"},en_IO:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_JE:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_JM:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_KE:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_KI:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_KN:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_KY:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_LC:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_LR:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_LS:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_MG:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_MH:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_MO:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_MP:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_MS:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_MT:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_MU:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_MW:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_MY:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_NA:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_NF:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_NG:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_NL:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00;¤ -#,##0.00"},en_NR:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_NU:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_NZ:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_PG:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_PH:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_PK:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_PN:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_PR:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_PW:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_RW:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_SB:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_SC:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_SD:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_SE:{decimal_sep:".",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_SG:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_SH:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_SI:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤;(#,##0.00 ¤)"},en_SL:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_SS:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_SX:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_SZ:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_TC:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_TK:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_TO:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_TT:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_TV:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_TZ:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_UG:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_UM:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_US:{decimal_sep:".",group_sep:",",number_pattern:"0.######",currency_pattern:"¤ 0.00"},en_VC:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_VG:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_VI:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_VU:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_WS:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_ZA:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_ZM:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},en_ZW:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},eo:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###"},eo_001:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###"},es:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},es_419:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},es_AR:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},es_BO:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},es_BR:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},es_BZ:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},es_CL:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00;¤-#,##0.00"},es_CO:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},es_CR:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},es_CU:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},es_DO:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00;(¤#,##0.00)"},es_EA:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},es_EC:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00;¤-#,##0.00"},es_ES:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},es_GQ:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},es_GT:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},es_HN:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},es_IC:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},es_MX:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},es_NI:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},es_PA:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},es_PE:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},es_PH:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},es_PR:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},es_PY:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00;¤ -#,##0.00"},es_SV:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},es_US:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},es_UY:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},es_VE:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00;¤-#,##0.00"},et:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},et_EE:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},eu:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},eu_ES:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ewo:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ewo_CM:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fa:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"‎¤ #,##0.00"},fa_AF:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},fa_IR:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"‎¤ #,##0.00"},ff:{decimal_sep:",",group_sep:" ",currency_pattern:"#,##0.00 ¤"},ff_CM:{decimal_sep:",",group_sep:" ",currency_pattern:"#,##0.00 ¤"},ff_GN:{decimal_sep:",",group_sep:" ",currency_pattern:"#,##0.00 ¤"},ff_MR:{decimal_sep:",",group_sep:" ",currency_pattern:"#,##0.00 ¤"},ff_SN:{decimal_sep:",",group_sep:" ",currency_pattern:"#,##0.00 ¤"},fi:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fi_FI:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fil:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},fil_PH:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},fo:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fo_DK:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fo_FO:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_BE:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_BF:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_BI:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_BJ:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_BL:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_CA:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_CD:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_CF:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_CG:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_CH:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤;-#,##0.00 ¤"},fr_CI:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_CM:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_DJ:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_DZ:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_FR:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_GA:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_GF:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_GN:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_GP:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_GQ:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_HT:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_KM:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_LU:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_MA:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_MC:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_MF:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_MG:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_ML:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_MQ:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_MR:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_MU:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_NC:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_NE:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_PF:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_PM:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_RE:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_RW:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_SC:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_SN:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_SY:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_TD:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_TG:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_TN:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_VU:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_WF:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fr_YT:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},fur:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},fur_IT:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},fy:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00;¤ #,##0.00-"},fy_NL:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00;¤ #,##0.00-"},ga:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},ga_IE:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},gd:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},gd_GB:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},gl:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},gl_ES:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},gsw:{decimal_sep:".",group_sep:"’",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},gsw_CH:{decimal_sep:".",group_sep:"’",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},gsw_FR:{decimal_sep:".",group_sep:"’",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},gsw_LI:{decimal_sep:".",group_sep:"’",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},gu:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤#,##,##0.00"},gu_IN:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤#,##,##0.00"},guz:{currency_pattern:"¤#,##0.00"},guz_KE:{currency_pattern:"¤#,##0.00"},gv:{currency_pattern:"¤#,##0.00"},gv_IM:{currency_pattern:"¤#,##0.00"},ha:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ha_GH:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ha_NE:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ha_NG:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},haw:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},haw_US:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},he:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"‏#,##0.00 ¤;‏-#,##0.00 ¤"},he_IL:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"‏#,##0.00 ¤;‏-#,##0.00 ¤"},hi:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤#,##,##0.00"},hi_IN:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤#,##,##0.00"},hr:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},hr_BA:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},hr_HR:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},hsb:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},hsb_DE:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},hu:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},hu_HU:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},hy:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},hy_AM:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},id:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},id_ID:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},ig:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},ig_NG:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},ii:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ii_CN:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},is:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},is_IS:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},it:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},it_CH:{decimal_sep:".",group_sep:"’",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00;¤-#,##0.00"},it_IT:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},it_SM:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},it_VA:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ja:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},ja_JP:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},jgo:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},jgo_CM:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},jmc:{currency_pattern:"¤#,##0.00"},jmc_TZ:{currency_pattern:"¤#,##0.00"},ka:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ka_GE:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},kab:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00¤"},kab_DZ:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00¤"},kam:{currency_pattern:"¤#,##0.00"},kam_KE:{currency_pattern:"¤#,##0.00"},kde:{currency_pattern:"¤#,##0.00"},kde_TZ:{currency_pattern:"¤#,##0.00"},kea:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},kea_CV:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},khq:{group_sep:" ",currency_pattern:"#,##0.00¤"},khq_ML:{group_sep:" ",currency_pattern:"#,##0.00¤"},ki:{currency_pattern:"¤#,##0.00"},ki_KE:{currency_pattern:"¤#,##0.00"},kk:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},kk_KZ:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},kkj:{decimal_sep:",",group_sep:"."},kkj_CM:{decimal_sep:",",group_sep:"."},kl:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00;¤-#,##0.00"},kl_GL:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00;¤-#,##0.00"},kln:{currency_pattern:"¤#,##0.00"},kln_KE:{currency_pattern:"¤#,##0.00"},km:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00¤"},km_KH:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00¤"},kn:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},kn_IN:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},ko:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},ko_KP:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},ko_KR:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},kok:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤ #,##,##0.00"},kok_IN:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤ #,##,##0.00"},ks:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤ #,##,##0.00"},ks_IN:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤ #,##,##0.00"},ksb:{currency_pattern:"#,##0.00¤"},ksb_TZ:{currency_pattern:"#,##0.00¤"},ksf:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ksf_CM:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ksh:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ksh_DE:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},kw:{currency_pattern:"¤#,##0.00"},kw_GB:{currency_pattern:"¤#,##0.00"},ky:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ky_KG:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},lag:{},lag_TZ:{},lb:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},lb_LU:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},lg:{currency_pattern:"#,##0.00¤"},lg_UG:{currency_pattern:"#,##0.00¤"},lkt:{decimal_sep:".",group_sep:","},lkt_US:{decimal_sep:".",group_sep:","},ln:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ln_AO:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ln_CD:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ln_CF:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ln_CG:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},lo:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00;¤-#,##0.00"},lo_LA:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00;¤-#,##0.00"},lrc:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},lrc_IQ:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},lrc_IR:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},lt:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},lt_LT:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},lu:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00¤"},lu_CD:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00¤"},luo:{currency_pattern:"#,##0.00¤"},luo_KE:{currency_pattern:"#,##0.00¤"},luy:{currency_pattern:"¤#,##0.00;¤- #,##0.00"},luy_KE:{currency_pattern:"¤#,##0.00;¤- #,##0.00"},lv:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},lv_LV:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},mas:{currency_pattern:"¤#,##0.00"},mas_KE:{currency_pattern:"¤#,##0.00"},mas_TZ:{currency_pattern:"¤#,##0.00"},mer:{currency_pattern:"¤#,##0.00"},mer_KE:{currency_pattern:"¤#,##0.00"},mfe:{group_sep:" "},mfe_MU:{group_sep:" "},mg:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},mg_MG:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},mgh:{decimal_sep:",",group_sep:"."},mgh_MZ:{decimal_sep:",",group_sep:"."},mgo:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},mgo_CM:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},mk:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},mk_MK:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ml:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤#,##0.00"},ml_IN:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤#,##0.00"},mn:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},mn_MN:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},mr:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤#,##0.00"},mr_IN:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤#,##0.00"},ms:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},ms_BN:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ms_MY:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},ms_SG:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},mt:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},mt_MT:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},mua:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},mua_CM:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},my:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},my_MM:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},mzn:{},mzn_IR:{},naq:{currency_pattern:"¤#,##0.00"},naq_NA:{currency_pattern:"¤#,##0.00"},nb:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},nb_NO:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},nb_SJ:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},nd:{currency_pattern:"¤#,##0.00"},nd_ZW:{currency_pattern:"¤#,##0.00"},nds:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},nds_DE:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},nds_NL:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ne:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ne_IN:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ne_NP:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},nl:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00;¤ -#,##0.00"},nl_AW:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00;¤ -#,##0.00"},nl_BE:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},nl_BQ:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00;¤ -#,##0.00"},nl_CW:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00;¤ -#,##0.00"},nl_NL:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00;¤ -#,##0.00"},nl_SR:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00;¤ -#,##0.00"},nl_SX:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00;¤ -#,##0.00"},nmg:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},nmg_CM:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},nn:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},nn_NO:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},nnh:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},nnh_CM:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},nus:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},nus_SS:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},nyn:{currency_pattern:"¤#,##0.00"},nyn_UG:{currency_pattern:"¤#,##0.00"},om:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},om_ET:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},om_KE:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},or:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤ #,##,##0.00"},or_IN:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤ #,##,##0.00"},os:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},os_GE:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},os_RU:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},pa:{},pa_PK:{},pa_IN:{},pl:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},pl_PL:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},prg:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},prg_001:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ps:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ps_AF:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},pt:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},pt_AO:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},pt_BR:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},pt_CH:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},pt_CV:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},pt_GQ:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},pt_GW:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},pt_LU:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},pt_MO:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},pt_MZ:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},pt_PT:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},pt_ST:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},pt_TL:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},qu:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},qu_BO:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},qu_EC:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},qu_PE:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},rm:{decimal_sep:".",group_sep:"’",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},rm_CH:{decimal_sep:".",group_sep:"’",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},rn:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00¤"},rn_BI:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00¤"},ro:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ro_MD:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ro_RO:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},rof:{currency_pattern:"¤#,##0.00"},rof_TZ:{currency_pattern:"¤#,##0.00"},root:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ru:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ru_BY:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ru_KG:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ru_KZ:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ru_MD:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ru_RU:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ru_UA:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},rw:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},rw_RW:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},rwk:{currency_pattern:"#,##0.00¤"},rwk_TZ:{currency_pattern:"#,##0.00¤"},sah:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},sah_RU:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},saq:{currency_pattern:"¤#,##0.00"},saq_KE:{currency_pattern:"¤#,##0.00"},sbp:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"#,##0.00¤"},sbp_TZ:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"#,##0.00¤"},sd:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},sd_PK:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},se:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},se_FI:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},se_NO:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},se_SE:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},seh:{decimal_sep:",",group_sep:".",currency_pattern:"#,##0.00¤"},seh_MZ:{decimal_sep:",",group_sep:".",currency_pattern:"#,##0.00¤"},ses:{group_sep:" ",currency_pattern:"#,##0.00¤"},ses_ML:{group_sep:" ",currency_pattern:"#,##0.00¤"},sg:{decimal_sep:",",group_sep:".",currency_pattern:"¤#,##0.00;¤-#,##0.00"},sg_CF:{decimal_sep:",",group_sep:".",currency_pattern:"¤#,##0.00;¤-#,##0.00"},shi:{},shi_MA:{},si:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},si_LK:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},sk:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},sk_SK:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},sl:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},sl_SI:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},smn:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},smn_FI:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},sn:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},sn_ZW:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},so:{decimal_sep:".",group_sep:",",currency_pattern:"¤#,##0.00"},so_DJ:{decimal_sep:".",group_sep:",",currency_pattern:"¤#,##0.00"},so_ET:{decimal_sep:".",group_sep:",",currency_pattern:"¤#,##0.00"},so_KE:{decimal_sep:".",group_sep:",",currency_pattern:"¤#,##0.00"},so_SO:{decimal_sep:".",group_sep:",",currency_pattern:"¤#,##0.00"},sq:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},sq_AL:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},sq_MK:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},sq_XK:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},sr:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},sr_BA:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},sr_ME:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},sr_RS:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},sr_XK:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},sv:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},sv_AX:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},sv_FI:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},sv_SE:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},sw:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},sw_CD:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},sw_KE:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},sw_TZ:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},sw_UG:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},ta:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤ #,##,##0.00"},ta_IN:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤ #,##,##0.00"},ta_LK:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤ #,##,##0.00"},ta_MY:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ta_SG:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},te:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤#,##,##0.00"},te_IN:{decimal_sep:".",group_sep:",",number_pattern:"#,##,##0.###",currency_pattern:"¤#,##,##0.00"},teo:{currency_pattern:"¤#,##0.00"},teo_KE:{currency_pattern:"¤#,##0.00"},teo_UG:{currency_pattern:"¤#,##0.00"},tg:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},tg_TJ:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},th:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},th_TH:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},ti:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},ti_ER:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},ti_ET:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},tk:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},tk_TM:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},to:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},to_TO:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},tr:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},tr_CY:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},tr_TR:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},tt:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},tt_RU:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},twq:{decimal_sep:".",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00¤"},twq_NE:{decimal_sep:".",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00¤"},tzm:{decimal_sep:",",group_sep:" ",currency_pattern:"#,##0.00 ¤"},tzm_MA:{decimal_sep:",",group_sep:" ",currency_pattern:"#,##0.00 ¤"},ug:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},ug_CN:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},uk:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},uk_UA:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},ur:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ur_IN:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},ur_PK:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},uz:{},uz_AF:{decimal_sep:",",group_sep:".",currency_pattern:"#,##0.00 ¤"},uz_UZ:{},vai:{},vai_LR:{},vi:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},vi_VN:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},vo:{},vo_001:{},vun:{currency_pattern:"¤#,##0.00"},vun_TZ:{currency_pattern:"¤#,##0.00"},wae:{decimal_sep:",",group_sep:"’"},wae_CH:{decimal_sep:",",group_sep:"’"},wo:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},wo_SN:{decimal_sep:",",group_sep:".",number_pattern:"#,##0.###",currency_pattern:"¤ #,##0.00"},xog:{currency_pattern:"#,##0.00 ¤"},xog_UG:{currency_pattern:"#,##0.00 ¤"},yav:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},yav_CM:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00 ¤"},yi:{decimal_sep:".",group_sep:","},yi_001:{decimal_sep:".",group_sep:","},yo:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},yo_BJ:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},yo_NG:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},yue:{},yue_CN:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},yue_HK:{},zgh:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00¤"},zgh_MA:{decimal_sep:",",group_sep:" ",number_pattern:"#,##0.###",currency_pattern:"#,##0.00¤"},zh:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},zh_CN:{},zh_HK:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},zh_MO:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},zh_SG:{},zh_TW:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},zu:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"},zu_ZA:{decimal_sep:".",group_sep:",",number_pattern:"#,##0.###",currency_pattern:"¤#,##0.00"}}},function(e,r,p){"use strict";p.r(r);var _=function(e){var r=e.trim(),p=r.indexOf(","),_=r.indexOf(".");if(_>=0&&_0||p>0){var t=function(e){var r=String(e),p=r.indexOf(".");return p<0?0:r.substr(p+1).length}(e),a=String(r).substr(2);return n+c(_,Math.min(t,p),a)}return""},t=function(e,r){for(var p=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",_=0;_=0?e=e.substr(0,p):_>=0&&(e=e.substr(0,_)),e.length-r-1},u=function(e){var r=e.indexOf(","),p=e.indexOf(".");return p<0?e.length-r-1:p-r-1},m=function(e,r){var p=r.pattern;if(!_(p))throw"Given format is wrong: "+r.pattern;if("number"!=typeof e)return e;var t,c=a(p),m=function(e){var r=a(e);if(0===r)return 0;var p=e.indexOf("."),_=e.substr(p+1,p+r).indexOf("#");return-1===_?r:_}(p),s=function(e,r){return Math.round(e*Math.pow(10,r))/Math.pow(10,r)}(e,c),o=(t=e)<0?Math.ceil(t):Math.floor(t),l=function(e){var r=String(e),p=r.indexOf(".");return p<0?0:Number("0."+r.substr(p+1))}(s),y=function(e,r,p){for(var _=String(e),n=u(r),t=_.length-n;t>0;)_=_.substr(0,t)+p+_.substr(t),t-=n;return _}(o,p,r.group_sep);return 0===l&&0===m?y:y+n(e,l,c,m,r.decimal_sep)},s=function(e,r){if(!_(r.pattern))throw"Given format is wrong: "+r.pattern;if("number"!=typeof e)return e;var p=m(e,r);return function(e,r){return e=e.replace(/\./g,"@").trim(),(e=(e=t(e,",#0;","@")).replace("@",r)).split("@").join("")}(r.pattern,p).replace("¤",r.symbol)},o=function(e,r){if(!_(r.pattern))throw"Given format is wrong: "+r.pattern;if(!function(e,r,p){if("string"!=typeof e)return!1;var _="[".concat(r).concat(p,"-\\d]");if(e.replace(new RegExp(_,"g"),"").length>0)return!1;var n=e.split(r);return 2===n.length||1===n.length}(e,r.decimal_sep,r.group_sep))throw"Given formatted number is wrong: "+e;var p=r.decimal_sep;if(e.charAt(e.length-1)===p)return parseFloat(e);var n=e.split(p);if(2!==n.length&&1!==n.length)return!1;var t=r.group_sep,c=n[0].split(t).join(""),a=n[1]?n[1]:"";return parseFloat("".concat(c,".").concat(a))},l=function(e,r){if(!_(r.pattern))throw"Given format is wrong: "+r.pattern;var p=e.replace(r.symbol,"").trim();return o(p,r)},y=p(0),d=p(1);p.d(r,"currencies",function(){return b}),p.d(r,"locales",function(){return i}),p.d(r,"formatCurrency",function(){return s}),p.d(r,"formatNumber",function(){return m}),p.d(r,"parseCurrency",function(){return l}),p.d(r,"parseNumber",function(){return o});var b=y,i=d}])); --------------------------------------------------------------------------------