aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDi Peng2011-07-29 13:47:16 -0700
committerIgor Minar2011-08-14 23:44:20 -0700
commit6802a760078d9f8e305e41cc208383ca6415436f (patch)
tree746b1900df7dd3d7b6c08e24e13100c498c7b67a
parent7ec8a89362f7010f2b0f5fb73a644dab789ce010 (diff)
downloadangular.js-6802a760078d9f8e305e41cc208383ca6415436f.tar.bz2
feat($locale): add default locale service for en-US
-rw-r--r--Rakefile1
-rw-r--r--jsTestDriver-coverage.conf1
-rw-r--r--jsTestDriver-jquery.conf1
-rw-r--r--jsTestDriver-perf.conf1
-rw-r--r--jsTestDriver.conf1
-rw-r--r--src/angular-bootstrap.js1
-rw-r--r--src/service/locale.js65
-rw-r--r--test/service/localeSpec.js40
8 files changed, 111 insertions, 0 deletions
diff --git a/Rakefile b/Rakefile
index 20e073ab..3641863c 100644
--- a/Rakefile
+++ b/Rakefile
@@ -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);
+ });
+});
+