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

Commit

Permalink
fix(service): add shim for indexOf and trim #638
Browse files Browse the repository at this point in the history
  • Loading branch information
Gergely Nemeth authored and knalli committed Sep 7, 2014
1 parent 595501a commit b951fd5
Showing 1 changed file with 37 additions and 24 deletions.
61 changes: 37 additions & 24 deletions src/service/translate.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,40 @@ angular.module('pascalprecht.translate').provider('$translate', ['$STORAGE_KEY',
) || '').split('-').join('_');
};

/**
* @name indexOf
* @private
*
* @description
* indexOf polyfill. Kinda sorta.
*
* @param {array} array Array to search in.
* @param {string} searchElement Element to search for.
*
* @returns {int} Index of search element.
*/
var indexOf = function(array, searchElement) {
for (var i = 0, len = array.length; i < len; i++) {
if (array[i] === searchElement) {
return i;
}
}
return -1;
};

/**
* @name trim
* @private
*
* @description
* trim polyfill
*
* @returns {string} The string stripped of whitespace from both ends
*/
var trim = function() {
return this.replace(/^\s+|\s+$/g, '');
};

var negotiateLocale = function (preferred) {

var avail = [],
Expand All @@ -55,7 +89,7 @@ angular.module('pascalprecht.translate').provider('$translate', ['$STORAGE_KEY',
avail.push(angular.lowercase($availableLanguageKeys[i]));
}

if (avail.indexOf(locale) > -1) {
if (indexOf(avail, locale) > -1) {
return preferred;
}

Expand All @@ -71,7 +105,7 @@ angular.module('pascalprecht.translate').provider('$translate', ['$STORAGE_KEY',
}
if (hasExactKey || hasWildcardKey) {
alias = $languageKeyAliases[langKeyAlias];
if (avail.indexOf(angular.lowercase(alias)) > -1) {
if (indexOf(avail, angular.lowercase(alias)) > -1) {
return alias;
}
}
Expand Down Expand Up @@ -747,7 +781,7 @@ angular.module('pascalprecht.translate').provider('$translate', ['$STORAGE_KEY',

// trim off any whitespace
if (translationId) {
translationId = translationId.trim();
translationId = trim.apply(translationId);
}

var promiseToWaitFor = (function () {
Expand Down Expand Up @@ -790,27 +824,6 @@ angular.module('pascalprecht.translate').provider('$translate', ['$STORAGE_KEY',
return deferred.promise;
};

/**
* @name indexOf
* @private
*
* @description
* indexOf polyfill. Kinda sorta.
*
* @param {array} array Array to search in.
* @param {string} searchElement Element to search for.
*
* @returns {int} Index of search element.
*/
var indexOf = function(array, searchElement) {
for (var i = 0, len = array.length; i < len; i++) {
if (array[i] === searchElement) {
return i;
}
}
return -1;
};

/**
* @name applyNotFoundIndicators
* @private
Expand Down

0 comments on commit b951fd5

Please sign in to comment.