Skip to content
This repository has been archived by the owner on Jan 29, 2024. It is now read-only.

Commit

Permalink
feat(translateService): extracts default interpolation in standalone …
Browse files Browse the repository at this point in the history
…service
  • Loading branch information
0x-r4bbit committed Jul 15, 2013
1 parent 2eb4364 commit 5d8cb56
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 10 deletions.
7 changes: 5 additions & 2 deletions bower.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,13 @@
},
"main": "./build/angular-translate",
"dependencies": {
"angular": "1.0.7"
"angular": "1.0.7",
"angular-mocks": "1.0.7",
"ngMidwayTester": "yearofmoo/ngMidwayTester#*",
"angular-translate-interpolation-default": "~0.1.0"
},
"devDependencies": {
"angular-mocks": "1.0.7",
"ngMidwayTester": "yearofmoo/ngMidwayTester"
}
}
}
1 change: 1 addition & 0 deletions karma.midway.conf.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ files = [
'bower_components/angular/angular.js',
'bower_components/ngMidwayTester/Source/ngMidwayTester.js',
'src/translate.js',
'bower_components/angular-translate-interpolation-default/angular-translate-interpolation-default.js',
'src/**/*.js',
'test/midway/**/*Spec.js'
];
Expand Down
1 change: 1 addition & 0 deletions karma.unit.conf.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ files = [
'bower_components/angular/angular.js',
'bower_components/angular-mocks/angular-mocks.js',
'src/translate.js',
'bower_components/angular-translate-interpolation-default/angular-translate-interpolation-default.js',
'src/**/*.js',
'test/unit/**/*Spec.js'
];
Expand Down
22 changes: 14 additions & 8 deletions src/translate.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ angular.module('pascalprecht.translate').provider('$translate', ['$STORAGE_KEY',
$storageKey = $STORAGE_KEY,
$storagePrefix,
$missingTranslationHandlerFactory,
$interpolationFactory,
$loaderFactory,
$loaderOptions,
$notFoundIndicatorLeft,
Expand Down Expand Up @@ -146,6 +147,10 @@ angular.module('pascalprecht.translate').provider('$translate', ['$STORAGE_KEY',

this.translations = translations;

this.useInterpolation = function (factory) {
$interpolationFactory = factory;
};

/**
* @ngdoc function
* @name pascalprecht.translate.$translateProvider#preferredLanguage
Expand Down Expand Up @@ -465,14 +470,14 @@ angular.module('pascalprecht.translate').provider('$translate', ['$STORAGE_KEY',
* @param {object=} interpolateParams An object hash for dynamic values
*/
this.$get = [
'$interpolate',
'$log',
'$injector',
'$rootScope',
'$q',
function ($interpolate, $log, $injector, $rootScope, $q) {
function ($log, $injector, $rootScope, $q) {

var Storage,
interpolate = $injector.get($interpolationFactory || '$translateDefaultInterpolation'),
pendingLoader = false;

if ($storageFactory) {
Expand All @@ -487,20 +492,21 @@ angular.module('pascalprecht.translate').provider('$translate', ['$STORAGE_KEY',
var table = $uses ? $translationTable[$uses] : $translationTable;

if (table && table.hasOwnProperty(translationId)) {
return $interpolate(table[translationId])(interpolateParams);
}

if ($missingTranslationHandlerFactory && !pendingLoader) {
$injector.get($missingTranslationHandlerFactory)(translationId, $uses);
return interpolate(table[translationId], interpolateParams);
}

if ($uses && $fallbackLanguage && $uses !== $fallbackLanguage){
var translation = $translationTable[$fallbackLanguage][translationId];
if (translation) {
return $interpolate(translation)(interpolateParams);
return interpolate(translation, interpolateParams);
}
}

if ($missingTranslationHandlerFactory && !pendingLoader) {
$injector.get($missingTranslationHandlerFactory)(translationId, $uses);
}


if ($notFoundIndicatorLeft) {
translationId = [$notFoundIndicatorLeft, translationId].join(' ');
}
Expand Down

0 comments on commit 5d8cb56

Please sign in to comment.