mirror of https://github.com/BTCPrivate/copay.git
Merge pull request #3707 from gabrielbazan7/fix/langBugAndroid1
Fix/lang bug android
This commit is contained in:
commit
3e061211d5
|
@ -94,6 +94,9 @@ if [ ! -d $PROJECT ]; then
|
|||
checkOK
|
||||
fi
|
||||
|
||||
cordova plugin add cordova-plugin-globalization
|
||||
checkOK
|
||||
|
||||
cordova plugin add cordova-plugin-splashscreen
|
||||
checkOK
|
||||
|
||||
|
|
|
@ -1055,9 +1055,11 @@ angular.module('copayApp.controllers').controller('indexController', function($r
|
|||
};
|
||||
|
||||
self.setUxLanguage = function() {
|
||||
var userLang = uxLanguage.update();
|
||||
uxLanguage.update(function(lang) {
|
||||
var userLang = lang;
|
||||
self.defaultLanguageIsoCode = userLang;
|
||||
self.defaultLanguageName = uxLanguage.getName(userLang);
|
||||
});
|
||||
};
|
||||
|
||||
self.initGlidera = function(accessToken) {
|
||||
|
@ -1216,13 +1218,14 @@ angular.module('copayApp.controllers').controller('indexController', function($r
|
|||
});
|
||||
|
||||
$rootScope.$on('Local/LanguageSettingUpdated', function() {
|
||||
self.setUxLanguage();
|
||||
self.setUxLanguage(function() {
|
||||
self.updateRemotePreferences({
|
||||
saveAll: true
|
||||
}, function() {
|
||||
$log.debug('Remote preferences saved')
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
$rootScope.$on('Local/GlideraUpdated', function(event, accessToken) {
|
||||
self.initGlidera(accessToken);
|
||||
|
@ -1391,7 +1394,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r
|
|||
self.noFocusedWallet = true;
|
||||
self.isComplete = null;
|
||||
self.walletName = null;
|
||||
self.setUxLanguage();
|
||||
self.setUxLanguage(function() {});
|
||||
profileService.isDisclaimerAccepted(function(v) {
|
||||
if (v) {
|
||||
go.path('import');
|
||||
|
@ -1401,7 +1404,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r
|
|||
});
|
||||
|
||||
$rootScope.$on('Local/NewFocusedWallet', function() {
|
||||
self.setUxLanguage();
|
||||
self.setUxLanguage(function() {});
|
||||
self.setFocusedWallet();
|
||||
self.debounceUpdateHistory();
|
||||
self.isDisclaimerAccepted();
|
||||
|
|
|
@ -26,24 +26,33 @@ angular.module('copayApp.services')
|
|||
|
||||
root.currentLanguage = null;
|
||||
|
||||
root._detect = function() {
|
||||
// Auto-detect browser language
|
||||
root._detect = function(cb) {
|
||||
|
||||
var userLang, androidLang;
|
||||
if (navigator && navigator.globalization) {
|
||||
|
||||
if (navigator && navigator.userAgent && (androidLang = navigator.userAgent.match(/android.*\W(\w\w)-(\w\w)\W/i))) {
|
||||
userLang = androidLang[1];
|
||||
} else {
|
||||
navigator.globalization.getPreferredLanguage(function(preferedLanguage) {
|
||||
// works for iOS and Android 4.x
|
||||
userLang = navigator.userLanguage || navigator.language;
|
||||
}
|
||||
userLang = preferedLanguage.value;
|
||||
userLang = userLang ? (userLang.split('-', 1)[0] || 'en') : 'en';
|
||||
|
||||
// Set only available languages
|
||||
userLang = lodash.find(root.availableLanguages, {
|
||||
userLang = root.isAvailableLanguage(userLang);
|
||||
return cb(userLang);
|
||||
});
|
||||
} else {
|
||||
// Auto-detect browser language
|
||||
userLang = navigator.userLanguage || navigator.language;
|
||||
userLang = userLang ? (userLang.split('-', 1)[0] || 'en') : 'en';
|
||||
// Set only available languages
|
||||
userLang = root.isAvailableLanguage(userLang);
|
||||
return cb(userLang);
|
||||
}
|
||||
};
|
||||
|
||||
root.isAvailableLanguage = function(userLang) {
|
||||
return lodash.find(root.availableLanguages, {
|
||||
'isoCode': userLang
|
||||
}) ? userLang : 'en';
|
||||
|
||||
return userLang;
|
||||
};
|
||||
|
||||
root._set = function(lang) {
|
||||
|
@ -72,20 +81,30 @@ angular.module('copayApp.services')
|
|||
};
|
||||
|
||||
root.init = function() {
|
||||
root._set(root._detect());
|
||||
root._detect(function(lang) {
|
||||
root._set(lang);
|
||||
});
|
||||
};
|
||||
|
||||
root.update = function() {
|
||||
root.update = function(cb) {
|
||||
var userLang = configService.getSync().wallet.settings.defaultLanguage;
|
||||
|
||||
if (!userLang) {
|
||||
userLang = root._detect();
|
||||
}
|
||||
|
||||
if (userLang != gettextCatalog.getCurrentLanguage()) {
|
||||
root._detect(function(lang) {
|
||||
userLang = lang;
|
||||
|
||||
if (userLang != root.currentLanguage) {
|
||||
root._set(lang);
|
||||
}
|
||||
return cb(userLang);
|
||||
});
|
||||
} else {
|
||||
if (userLang != root.currentLanguage) {
|
||||
root._set(userLang);
|
||||
}
|
||||
return userLang;
|
||||
return cb(userLang);
|
||||
}
|
||||
};
|
||||
|
||||
root.getName = function(lang) {
|
||||
|
|
Loading…
Reference in New Issue