angular-locale

Currency and Locale manager for AngularJS

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
angular-locale
210.3.19 years ago9 years agoMinified + gzip package size for angular-locale in KB

Readme

Angular Locale
Currency and Locale manager for AngularJS

Usage

Reference script

<script src="angular-locale.min.js"></script>

Inject vtex.ngLocale

angular.module 'yourApp', ['vtex.ngLocale']

Events

localeSelected.vtex

  • LocaleService automatically listens to this and expects lang 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.

API LocaleService

setLanguage language

  • string eventName, Object data 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 = currencyConfiguration.currencySymbol
$locale.NUMBER_FORMATS.DECIMAL_SEP = currencyConfiguration.decimalSeparator
$locale.NUMBER_FORMATS.GROUP_SEP = currencyConfiguration.groupSeparator
$locale.NUMBER_FORMATS.PATTERNS[1] = currencyConfiguration.ngPatterns

Obs: ngPatterns/NUMBERFORMATS.PATTERNS1 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