feat($locale): add default locale service for en-US

This commit is contained in:
Di Peng 2011-07-29 13:47:16 -07:00 committed by Igor Minar
parent 7ec8a89362
commit 6802a76007
8 changed files with 111 additions and 0 deletions

View file

@ -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',

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -119,6 +119,7 @@
'service/xhr.cache.js',
'service/xhr.error.js',
'service/xhr.js',
'service/locale.js',
'apis.js',
'filters.js',

65
src/service/locale.js Normal file
View file

@ -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'
}
};
});

View file

@ -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);
});
});