diff --git a/sao/src/sao.js b/sao/src/sao.js index b1cefa776a..3b6c2cfee9 100644 --- a/sao/src/sao.js +++ b/sao/src/sao.js @@ -374,17 +374,22 @@ var Sao = { }); } return prm.then(() => { - Sao.set_title(); - var new_lang = preferences.language != Sao.i18n.getLocale(); var prm = jQuery.Deferred(); - Sao.i18n.setlang(preferences.language).always(function() { - if (new_lang) { - Sao.user_menu(preferences); - } + Sao.set_title(); + if (!preferences.language) { + session.context.language = Sao.i18n.getLocale(); prm.resolve(preferences); - }); - Sao.i18n.set_direction(preferences.language_direction); - Sao.i18n.locale = preferences.locale; + } else { + var new_lang = preferences.language != Sao.i18n.getLocale(); + Sao.i18n.setlang(preferences.language).always(function() { + if (new_lang) { + Sao.user_menu(preferences); + } + prm.resolve(preferences); + }); + Sao.i18n.set_direction(preferences.language_direction); + Sao.i18n.locale = preferences.locale; + } Sao.common.MODELNAME.clear(); return prm; }); diff --git a/tryton/tryton/gui/main.py b/tryton/tryton/gui/main.py index 34ab14ef0d..a1ebfd5ea4 100644 --- a/tryton/tryton/gui/main.py +++ b/tryton/tryton/gui/main.py @@ -536,7 +536,7 @@ class Main(Gtk.Application): for target in targets: target() - if prefs and 'language_direction' in prefs: + if prefs and prefs.get('language_direction'): translate.set_language_direction(prefs['language_direction']) CONFIG['client.language_direction'] = \ prefs['language_direction'] @@ -544,12 +544,14 @@ class Main(Gtk.Application): for action_id in prefs.get('actions', []): Action.execute(action_id, {}) self.set_title(prefs.get('status_bar', '')) - if prefs and 'language' in prefs: + if prefs and prefs.get('language'): translate.setlang(prefs['language'], prefs.get('locale')) if CONFIG['client.lang'] != prefs['language']: self.favorite_unset() self.primary_menu.set_menu_model(self._get_primary_menu()) CONFIG['client.lang'] = prefs['language'] + else: + rpc.CONTEXT['language'] = CONFIG['client.lang'] common.MODELNAME.clear() # Set placeholder after language is set to get correct translation self.global_search_entry.set_placeholder_text(_("Action")) diff --git a/tryton/tryton/rpc.py b/tryton/tryton/rpc.py index a31cf3e58c..e941862dac 100644 --- a/tryton/tryton/rpc.py +++ b/tryton/tryton/rpc.py @@ -38,6 +38,7 @@ def context_reset(): from tryton.bus import Bus CONTEXT.clear() CONTEXT['client'] = Bus.ID + CONTEXT['language'] = CONFIG['client.lang'] context_reset() @@ -118,7 +119,7 @@ def login(parameters): port = common.get_port(host) database = CONFIG['login.db'] username = CONFIG['login.login'] - language = CONFIG['client.lang'] + CONTEXT['language'] = language = CONFIG['client.lang'] parameters['device_cookie'] = device_cookie.get() connection = ServerProxy(hostname, port, database) logger.info('common.db.login(%s, %s, %s)', username, 'x' * 10, language)