Angular Locale
Currency and Locale manager for AngularJS
Usage
Reference script
vtex.ngLocale
Inject angularmodule 'yourApp''vtex.ngLocale'
Events
localeSelected.vtex
LocaleService
automatically listens to this and expectslang
arguments.lang
follows 'xx-XX' format, e.g.: 'en-US'.- Therefore both
tmhDynamicLocale
and$translate
(in this order) are called and updated with new i18n data.
localeUpdated.vtex
LocaleService
triggers this once it has set$translate
to use new language and i18n is updated. Obs:setCurrency
is called everytime language/locale gets updated, since it will reset$locale.NUMBER_FORMATS
each time.
currencyUpdated.vtex
LocaleService
triggers this once it has set$locale
according to current currency configuration.
LocaleService
API setLanguage language
- string
eventName
, Objectdata
with any information you want to be registered within the event
setCurrency currencyConfiguration
- currencyConfiguration
Object
for 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 = currencyConfigurationcurrencySymbol$locale.NUMBER_FORMATS.DECIMAL_SEP = currencyConfigurationdecimalSeparator$locale.NUMBER_FORMATS.GROUP_SEP = currencyConfigurationgroupSeparator$localeNUMBER_FORMATSPATTERNS1= currencyConfigurationngPatterns
Obs: ngPatterns/NUMBER_FORMATS.PATTERNS[1] has a default value, no worries :)
Development
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