diff --git a/src/js/controllers/preferencesLanguage.js b/src/js/controllers/preferencesLanguage.js index 0406d3542..8327e84a5 100644 --- a/src/js/controllers/preferencesLanguage.js +++ b/src/js/controllers/preferencesLanguage.js @@ -22,7 +22,7 @@ angular.module('copayApp.controllers').controller('preferencesLanguageController if (err) $log.warn(err); $ionicHistory.goBack(); - uxLanguage.update(function() { + uxLanguage.init(function() { walletService.updateRemotePreferences(profileService.getWallets(), {}, function() { $log.debug('Remote preferences saved'); }); diff --git a/src/js/services/uxLanguage.js b/src/js/services/uxLanguage.js index 0bd7883f0..92f527f73 100644 --- a/src/js/services/uxLanguage.js +++ b/src/js/services/uxLanguage.js @@ -72,7 +72,8 @@ angular.module('copayApp.services') root._set = function(lang) { $log.debug('Setting default language: ' + lang); gettextCatalog.setCurrentLanguage(lang); - root.currentLanguage = lang; + root.currentLanguage = lang; + if (lang == 'zh') lang = lang + '-CN'; // Fix for Chinese Simplified amMoment.changeLocale(lang); }; @@ -95,31 +96,19 @@ angular.module('copayApp.services') return root.availableLanguages; }; - root.init = function() { - root._detect(function(lang) { - root._set(lang); - }); - }; + root.init = function(cb) { + configService.whenAvailable(function(config) { + var userLang = config.wallet.settings.defaultLanguage; - root.update = function(cb) { - var userLang = configService.getSync().wallet.settings.defaultLanguage; - - if (!userLang) { - root._detect(function(lang) { - userLang = lang; - - if (userLang != root.currentLanguage) { - root._set(lang); - } - if (cb) return cb(userLang); - }); - } else { - if (userLang != root.currentLanguage) { + if (userLang && userLang != root.currentLanguage) { root._set(userLang); + } else { + root._detect(function(lang) { + root._set(lang); + }); } - - if (cb) return cb(userLang); - } + if (cb) return cb(); + }); }; root.getName = function(lang) {