From 50c30c25eceb1b111abf4e70c2aec87a38229aae Mon Sep 17 00:00:00 2001 From: Javier Date: Mon, 5 Sep 2016 11:25:30 -0300 Subject: [PATCH 1/3] fix language --- src/js/services/uxLanguage.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/js/services/uxLanguage.js b/src/js/services/uxLanguage.js index 0bd7883f0..5ff4de7a7 100644 --- a/src/js/services/uxLanguage.js +++ b/src/js/services/uxLanguage.js @@ -1,6 +1,6 @@ 'use strict'; angular.module('copayApp.services') - .factory('uxLanguage', function languageService($log, lodash, gettextCatalog, amMoment, configService) { + .factory('uxLanguage', function languageService($log, $timeout, lodash, gettextCatalog, amMoment, configService) { var root = {}; root.currentLanguage = null; @@ -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); }; @@ -96,9 +97,18 @@ angular.module('copayApp.services') }; root.init = function() { - root._detect(function(lang) { - root._set(lang); - }); + $timeout(function() { + var userLang = configService.getSync().wallet.settings.defaultLanguage; + + if (userLang && userLang != root.currentLanguage) { + root._set(userLang); + return; + } + + root._detect(function(lang) { + root._set(lang); + }); + }, 100); }; root.update = function(cb) { From 55ae03613f035a26c7ea68a5e39d3f78bcbf8992 Mon Sep 17 00:00:00 2001 From: Javier Date: Mon, 5 Sep 2016 11:33:41 -0300 Subject: [PATCH 2/3] replace timeout for whenAvailable function --- src/js/services/uxLanguage.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/js/services/uxLanguage.js b/src/js/services/uxLanguage.js index 5ff4de7a7..7ba880891 100644 --- a/src/js/services/uxLanguage.js +++ b/src/js/services/uxLanguage.js @@ -1,6 +1,6 @@ 'use strict'; angular.module('copayApp.services') - .factory('uxLanguage', function languageService($log, $timeout, lodash, gettextCatalog, amMoment, configService) { + .factory('uxLanguage', function languageService($log, lodash, gettextCatalog, amMoment, configService) { var root = {}; root.currentLanguage = null; @@ -97,8 +97,8 @@ angular.module('copayApp.services') }; root.init = function() { - $timeout(function() { - var userLang = configService.getSync().wallet.settings.defaultLanguage; + configService.whenAvailable(function(config) { + var userLang = config.wallet.settings.defaultLanguage; if (userLang && userLang != root.currentLanguage) { root._set(userLang); @@ -108,7 +108,7 @@ angular.module('copayApp.services') root._detect(function(lang) { root._set(lang); }); - }, 100); + }); }; root.update = function(cb) { From 1b35ec67e736c361d9e8ed5afedaab8895a6db5c Mon Sep 17 00:00:00 2001 From: Javier Date: Mon, 5 Sep 2016 11:54:14 -0300 Subject: [PATCH 3/3] refactor --- src/js/controllers/preferencesLanguage.js | 2 +- src/js/services/uxLanguage.js | 33 +++++------------------ 2 files changed, 7 insertions(+), 28 deletions(-) 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 7ba880891..92f527f73 100644 --- a/src/js/services/uxLanguage.js +++ b/src/js/services/uxLanguage.js @@ -96,40 +96,19 @@ angular.module('copayApp.services') return root.availableLanguages; }; - root.init = function() { + root.init = function(cb) { configService.whenAvailable(function(config) { var userLang = config.wallet.settings.defaultLanguage; if (userLang && userLang != root.currentLanguage) { root._set(userLang); - return; - } - - root._detect(function(lang) { - root._set(lang); - }); - }); - }; - - root.update = function(cb) { - var userLang = configService.getSync().wallet.settings.defaultLanguage; - - if (!userLang) { - root._detect(function(lang) { - userLang = lang; - - if (userLang != root.currentLanguage) { + } else { + root._detect(function(lang) { root._set(lang); - } - if (cb) return cb(userLang); - }); - } else { - if (userLang != root.currentLanguage) { - root._set(userLang); + }); } - - if (cb) return cb(userLang); - } + if (cb) return cb(); + }); }; root.getName = function(lang) {