diff --git a/lib/angular.dart b/lib/angular.dart index a663a77d5..e426a4e73 100644 --- a/lib/angular.dart +++ b/lib/angular.dart @@ -14,6 +14,7 @@ import 'dart:html' as dom; import 'dart:js' as js; import 'package:di/di.dart'; import 'package:di/dynamic_injector.dart'; +import 'package:intl/date_symbol_data_local.dart'; /** * If you are writing code accessed from Angular expressions, you must include diff --git a/lib/bootstrap.dart b/lib/bootstrap.dart index c4d0bf117..0b64e3a1a 100644 --- a/lib/bootstrap.dart +++ b/lib/bootstrap.dart @@ -89,8 +89,10 @@ Injector ngBootstrap({ return zone.run(() { var rootElements = [element]; Injector injector = injectorFactory(ngModules); - injector.get(Compiler)(rootElements, injector.get(DirectiveMap)) - (injector, rootElements); + initializeDateFormatting(null, null).then((_) { + injector.get(Compiler)(rootElements, injector.get(DirectiveMap)) + (injector, rootElements); + }); return injector; }); } diff --git a/test/filter/date_spec.dart b/test/filter/date_spec.dart index 2cb48e19d..eeeb4046c 100644 --- a/test/filter/date_spec.dart +++ b/test/filter/date_spec.dart @@ -1,6 +1,7 @@ library date_spec; import '../_specs.dart'; +import 'package:intl/intl.dart'; main() => describe('date', () { var morning = DateTime.parse('2010-09-03T07:05:08.008Z'); //7am @@ -63,4 +64,19 @@ main() => describe('date', () { date(noon, "shortTime"); date(noon, "shortTime"); }); + + it('should accept various locales', () { + + try { + Intl.defaultLocale = 'de'; + expect(date(noon, "medium")). + toEqual('Sep 3, 2010 12:05:08 nachm.'); + + Intl.defaultLocale = 'fr'; + expect(date(noon, "medium")). + toEqual('sept. 3, 2010 12:05:08 PM'); + } finally { + Intl.defaultLocale = 'en'; + } + }); });