From 6aa70d72e771c8fcc07fa7da61cf93d0c1564e4b Mon Sep 17 00:00:00 2001 From: Diego Sampaio Date: Mon, 3 Apr 2017 14:24:18 -0300 Subject: [PATCH] Fix not loading language subtags Closes #4277 --- client/startup/startup.js | 6 +++++- .../app/client/views/livechatWindow.js | 10 +++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/client/startup/startup.js b/client/startup/startup.js index 8ea9aee30c77..98d6669af1f7 100644 --- a/client/startup/startup.js +++ b/client/startup/startup.js @@ -44,6 +44,7 @@ Meteor.startup(function() { return RocketChat.settings.get('Language') || defaultAppLanguage(); }; + const availableLanguages = TAPi18n.getLanguages(); const loadedLanguages = []; window.setLanguage = function(language) { @@ -63,7 +64,10 @@ Meteor.startup(function() { $('html').removeClass('rtl'); } - language = language.split('-').shift(); + if (!availableLanguages[language]) { + language = language.split('-').shift(); + } + TAPi18n.setLanguage(language); language = language.toLowerCase(); diff --git a/packages/rocketchat-livechat/app/client/views/livechatWindow.js b/packages/rocketchat-livechat/app/client/views/livechatWindow.js index e0fb802e971f..fcbe88f9587d 100644 --- a/packages/rocketchat-livechat/app/client/views/livechatWindow.js +++ b/packages/rocketchat-livechat/app/client/views/livechatWindow.js @@ -70,6 +70,8 @@ Template.livechatWindow.events({ Template.livechatWindow.onCreated(function() { Session.set({sound: true}); + const availableLanguages = TAPi18n.getLanguages(); + const defaultAppLanguage = () => { let lng = window.navigator.userLanguage || window.navigator.language || 'en'; const regexp = /([a-z]{2}-)([a-z]{2})/; @@ -118,7 +120,13 @@ Template.livechatWindow.onCreated(function() { Livechat.agent = result.agentData; } - TAPi18n.setLanguage((result.language || defaultAppLanguage()).split('-').shift()); + let language = result.language || defaultAppLanguage(); + + if (!availableLanguages[language]) { + language = language.split('-').shift(); + } + + TAPi18n.setLanguage(language); Triggers.setTriggers(result.triggers); Triggers.init();