diff options
| author | Di Peng | 2011-07-29 13:47:16 -0700 |
|---|---|---|
| committer | Igor Minar | 2011-08-14 23:44:20 -0700 |
| commit | 6802a760078d9f8e305e41cc208383ca6415436f (patch) | |
| tree | 746b1900df7dd3d7b6c08e24e13100c498c7b67a | |
| parent | 7ec8a89362f7010f2b0f5fb73a644dab789ce010 (diff) | |
| download | angular.js-6802a760078d9f8e305e41cc208383ca6415436f.tar.bz2 | |
feat($locale): add default locale service for en-US
| -rw-r--r-- | Rakefile | 1 | ||||
| -rw-r--r-- | jsTestDriver-coverage.conf | 1 | ||||
| -rw-r--r-- | jsTestDriver-jquery.conf | 1 | ||||
| -rw-r--r-- | jsTestDriver-perf.conf | 1 | ||||
| -rw-r--r-- | jsTestDriver.conf | 1 | ||||
| -rw-r--r-- | src/angular-bootstrap.js | 1 | ||||
| -rw-r--r-- | src/service/locale.js | 65 | ||||
| -rw-r--r-- | test/service/localeSpec.js | 40 |
8 files changed, 111 insertions, 0 deletions
@@ -32,6 +32,7 @@ ANGULAR = [ 'src/service/xhr.cache.js', 'src/service/xhr.error.js', 'src/service/xhr.js', + 'src/service/locale.js', 'src/directives.js', 'src/markups.js', 'src/widgets.js', diff --git a/jsTestDriver-coverage.conf b/jsTestDriver-coverage.conf index de7f8536..f9d9f93c 100644 --- a/jsTestDriver-coverage.conf +++ b/jsTestDriver-coverage.conf @@ -35,6 +35,7 @@ load: - src/service/xhr.cache.js - src/service/xhr.error.js - src/service/xhr.js + - src/service/locale.js - src/directives.js - src/markups.js - src/widgets.js diff --git a/jsTestDriver-jquery.conf b/jsTestDriver-jquery.conf index 7cadc3aa..018e836c 100644 --- a/jsTestDriver-jquery.conf +++ b/jsTestDriver-jquery.conf @@ -35,6 +35,7 @@ load: - src/service/xhr.cache.js - src/service/xhr.error.js - src/service/xhr.js + - src/service/locale.js - src/directives.js - src/markups.js - src/widgets.js diff --git a/jsTestDriver-perf.conf b/jsTestDriver-perf.conf index 73b301c4..a46cbf71 100644 --- a/jsTestDriver-perf.conf +++ b/jsTestDriver-perf.conf @@ -34,6 +34,7 @@ load: - src/service/xhr.cache.js - src/service/xhr.error.js - src/service/xhr.js + - src/service/locale.js - src/directives.js - src/markups.js - src/widgets.js diff --git a/jsTestDriver.conf b/jsTestDriver.conf index 57ddae32..b55a387c 100644 --- a/jsTestDriver.conf +++ b/jsTestDriver.conf @@ -35,6 +35,7 @@ load: - src/service/xhr.cache.js - src/service/xhr.error.js - src/service/xhr.js + - src/service/locale.js - src/directives.js - src/markups.js - src/widgets.js diff --git a/src/angular-bootstrap.js b/src/angular-bootstrap.js index 7495b6ad..fdf07c3e 100644 --- a/src/angular-bootstrap.js +++ b/src/angular-bootstrap.js @@ -119,6 +119,7 @@ 'service/xhr.cache.js', 'service/xhr.error.js', 'service/xhr.js', + 'service/locale.js', 'apis.js', 'filters.js', diff --git a/src/service/locale.js b/src/service/locale.js new file mode 100644 index 00000000..0e8c3b42 --- /dev/null +++ b/src/service/locale.js @@ -0,0 +1,65 @@ +'use strict'; + +/** + * @ngdoc service + * @name angular.service.$locale + * + * @description + * $locale service provides localization rules for various Angular components. As of right now the + * only public api is: + * + * * `id` – `{string}` – locale id formatted as `languageId-countryId` (e.g. `en-us`) + */ +angularServiceInject('$locale', function() { + return { + id: 'en-us', + + NUMBER_FORMATS: { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PATTERNS: [ + { // Decimal Pattern + minInt: 1, + minFrac: 0, + maxFrac: 3, + posPre: '', + posSuf: '', + negPre: '-', + negSuf: '', + gSize: 3, + lgSize: 3 + },{ //Currency Pattern + minInt: 1, + minFrac: 2, + maxFrac: 2, + posPre: '\u00A4', + posSuf: '', + negPre: '(\u00A4', + negSuf: ')', + gSize: 3, + lgSize: 3 + } + ], + CURRENCY_SYM: '$' + }, + + DATETIME_FORMATS: { + MONTH: 'January,February,March,April,May,June,July,August,September,October,November,December' + .split(','), + SHORTMONTH: 'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'.split(','), + DAY: 'Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday'.split(','), + SHORTDAY: 'Sun,Mon,Tue,Wed,Thu,Fri,Sat'.split(','), + AMPMS: ['AM','PM'], + long: 'MMMM d, y h:mm:ss a z', + medium: 'MMM d, y h:mm:ss a', + short: 'M/d/yy h:mm a', + fullDate: 'EEEE, MMMM d, y', + longDate: 'MMMM d, y', + mediumDate: 'MMM d, y', + shortDate: 'M/d/yy', + longTime: 'h:mm:ss a z', + mediumTime: 'h:mm:ss a', + shortTime: 'h:mm a' + } + }; +}); diff --git a/test/service/localeSpec.js b/test/service/localeSpec.js new file mode 100644 index 00000000..048cf5b5 --- /dev/null +++ b/test/service/localeSpec.js @@ -0,0 +1,40 @@ +'use strict'; + +describe('$locale', function() { + + var $locale = angular.service('$locale')(); + + it('should have locale id set to en-us', function() { + expect($locale.id).toBe('en-us'); + }); + + + it('should have NUMBER_FORMATS', function() { + var numberFormats = $locale.NUMBER_FORMATS; + expect(numberFormats).toBeDefined(); + expect(numberFormats.PATTERNS.length).toBe(2); + angular.forEach(numberFormats.PATTERNS, function(pattern) { + expect(pattern.minInt).toBeDefined(); + expect(pattern.minFrac).toBeDefined(); + expect(pattern.maxFrac).toBeDefined(); + expect(pattern.posPre).toBeDefined(); + expect(pattern.posSuf).toBeDefined(); + expect(pattern.negPre).toBeDefined(); + expect(pattern.negSuf).toBeDefined(); + expect(pattern.gSize).toBeDefined(); + expect(pattern.lgSize).toBeDefined(); + }); + }); + + + it('should have DATETIME_FORMATS', function() { + var datetime = $locale.DATETIME_FORMATS; + expect(datetime).toBeDefined(); + expect(datetime.DAY.length).toBe(7); + expect(datetime.SHORTDAY.length).toBe(7); + expect(datetime.SHORTMONTH.length).toBe(12); + expect(datetime.MONTH.length).toBe(12); + expect(datetime.AMPMS.length).toBe(2); + }); +}); + |
