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

Commit

Permalink
fix(service): apply fix for empty strings in navigator.language
Browse files Browse the repository at this point in the history
Solves #821
  • Loading branch information
knalli committed Nov 23, 2014
1 parent 32f08db commit 5b4edd9
Showing 1 changed file with 31 additions and 8 deletions.
39 changes: 31 additions & 8 deletions src/service/translate.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,17 +35,40 @@ angular.module('pascalprecht.translate').provider('$translate', ['$STORAGE_KEY',

var version = 'x.y.z';

// tries to determine the browsers language
var getFirstBrowserLanguage = function () {
var nav = window.navigator,
browserLanguagePropertyKeys = ['language', 'browserLanguage', 'systemLanguage', 'userLanguage'],
i,
language;

// support for HTML 5.1 "navigator.languages"
if (angular.isArray(nav.languages)) {
for (i = 0; i < nav.languages.length; i++) {
language = nav.languages[i];
if (language && language.length) {
return language;
}
}
}

// support for other well known properties in browsers
for (i = 0; i < browserLanguagePropertyKeys.length; i++) {
language = nav[browserLanguagePropertyKeys[i]];
if (language && language.length) {
return language;
}
}

return null;
};
getFirstBrowserLanguage.displayName = 'angular-translate/service: getFirstBrowserLanguage';

// tries to determine the browsers locale
var getLocale = function () {
var nav = window.navigator;
return ((
angular.isArray(nav.languages) ? nav.languages[0] :
nav.language ||
nav.browserLanguage ||
nav.systemLanguage ||
nav.userLanguage
) || '').split('-').join('_');
return (getFirstBrowserLanguage() || '').split('-').join('_');
};
getLocale.displayName = 'angular-translate/service: getLocale';

/**
* @name indexOf
Expand Down

0 comments on commit 5b4edd9

Please sign in to comment.