Skip to content

Commit 06bc1ea

Browse files
committed
Merge pull request siddii#181 from evilaliv3/issue/180
Issue/180
2 parents f9fa496 + 36dbdfb commit 06bc1ea

File tree

3 files changed

+21
-5
lines changed

3 files changed

+21
-5
lines changed

app/js/_timer.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ var timerModule = angular.module('timer', [])
1111
finishCallback: '&finishCallback',
1212
autoStart: '&autoStart',
1313
language: '@?',
14+
fallback: '@?',
1415
maxTimeUnit: '='
1516
},
1617
controller: ['$scope', '$element', '$attrs', '$timeout', 'I18nService', '$interpolate', 'progressBarService', function ($scope, $element, $attrs, $timeout, I18nService, $interpolate, progressBarService) {
@@ -30,15 +31,18 @@ var timerModule = angular.module('timer', [])
3031

3132

3233
$scope.language = $scope.language || 'en';
34+
$scope.fallback = $scope.fallback || 'en';
3335

3436
//allow to change the language of the directive while already launched
35-
$scope.$watch('language', function() {
36-
i18nService.init($scope.language);
37+
$scope.$watch('language', function(newVal, oldVal) {
38+
if(newVal !== undefined) {
39+
i18nService.init(newVal, $scope.fallback);
40+
}
3741
});
3842

3943
//init momentJS i18n, default english
4044
var i18nService = new I18nService();
41-
i18nService.init($scope.language);
45+
i18nService.init($scope.language, $scope.fallback);
4246

4347
//progress bar
4448
$scope.displayProgressBar = 0;

app/js/i18nService.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,22 @@ app.factory('I18nService', function() {
55
var I18nService = function() {};
66

77
I18nService.prototype.language = 'en';
8+
I18nService.prototype.fallback = 'en';
89
I18nService.prototype.timeHumanizer = {};
910

10-
I18nService.prototype.init = function init(lang){
11+
I18nService.prototype.init = function init(lang, fallback) {
12+
var supported_languages = humanizeDuration.getSupportedLanguages();
13+
14+
this.fallback = (fallback !== undefined) ? fallback : 'en';
15+
if (supported_languages.indexOf(fallback) === -1) {
16+
this.fallback = 'en';
17+
}
18+
1119
this.language = lang;
20+
if (supported_languages.indexOf(lang) === -1) {
21+
this.language = this.fallback;
22+
}
23+
1224
//moment init
1325
moment.locale(this.language); //@TODO maybe to remove, it should be handle by the user's application itself, and not inside the directive
1426

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"dependencies": {
1212
"angular": ">= 1.0.7",
1313
"momentjs": "~2.9.0",
14-
"humanize-duration": "~2.4.0"
14+
"humanize-duration": "~2.8.0"
1515
},
1616
"devDependencies": {
1717
"bootstrap": "2.3.2",

0 commit comments

Comments
 (0)