Hopefully someone here can help me figure out what is going on. I have an Angular 1.5.8 app, using angular-translate 2.15.2. I have language files set up for English and Japanese and can swap languages at runtime, but the default language on page load is always 'en'. I've set my computer language to Japanese, but I can't get my site to default to that language.
Here is my translations config:
'use strict';
(function() {
angular.module('app')
.config(translation);
/**
* @name translation
* @desc Loads the string resource file associated with the selected language code.
* @ngInject
*/
function translation($translateProvider) {
// Specifies mappings of alternative language codes to a root language.
$translateProvider.registerAvailableLanguageKeys([
'en',
'ja',
], {
'en': 'en',
'en_*': 'en',
'ja': 'ja',
'ja_JP': 'ja',
});
$translateProvider.useLocalStorage();
$translateProvider.useSanitizeValueStrategy('escape');
$translateProvider.useLocalStorage();
$translateProvider.useStaticFilesLoader({
prefix: 'assets/languages/strings-',
suffix: '.json',
});
$translateProvider.fallbackLanguage('en');
$translateProvider.determinePreferredLanguage();
}
})();
I set my computer to Japanese and other sites default to Japanese. If I check the NG_TRANSLATE_LANG_KEY, it is 'en'. If I console log navigator.languages, it is ['ja', 'en', 'en-US']. Navigator.language is 'en'.
I'm at the end of my theories of what to check next. Anyone have an idea?