Currency and Locale manager for AngularJS
<script src="angular-locale.min.js"></script>angular.module 'yourApp', ['vtex.ngLocale']LocaleServiceautomatically listens to this and expectslangarguments.langfollows 'xx-XX' format, e.g.: 'en-US'.- Therefore both
tmhDynamicLocaleand$translate(in this order) are called and updated with new i18n data.
LocaleServicetriggers this once it has set$translateto use new language and i18n is updated. Obs:setCurrencyis called everytime language/locale gets updated, since it will reset$locale.NUMBER_FORMATSeach time.
LocaleServicetriggers this once it has set$localeaccording to current currency configuration.
- string
eventName, Objectdatawith any information you want to be registered within the event
- currencyConfiguration
Objectfor United States Dollar:
currencySymbol: '$ '
decimalSeparator: ','
groupSeparator: '.'
ngPatterns:
gSize: 3
lgSize: 3
macFrac: 0
maxFrac: 2
minFrac: 2
minInt: 1
negPre: "- \u00a4"
negSuf: ""
posPre: "\u00a4"
posSuf: ""This gets mapped into Angular's $locale:
$locale.NUMBER_FORMATS.CURRENCY_SYM = currencyConfiguration.currencySymbol
$locale.NUMBER_FORMATS.DECIMAL_SEP = currencyConfiguration.decimalSeparator
$locale.NUMBER_FORMATS.GROUP_SEP = currencyConfiguration.groupSeparator
$locale.NUMBER_FORMATS.PATTERNS[1] = currencyConfiguration.ngPatternsObs: ngPatterns/NUMBER_FORMATS.PATTERNS[1] has a default value, no worries :)
Inside src you can find this module source code, written in CoffeeScript. To build the .js and uglify it, install npm dev-dependencies and run grunt:
(sudo) npm i
grunt