From 8c7a2cb2ebf004fd4d1c4ca79013a520bbdd281b Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Tue, 7 Mar 2017 15:13:04 -0500 Subject: [PATCH] (js) Fix SCAYT automatic language selection --- NEWS | 1 + UI/WebServerResources/UIxMailEditor.js | 3 ++- UI/WebServerResources/UIxPreferences.js | 3 ++- UI/WebServerResources/generic.js | 16 ++++++++++++++++ 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 6ae3847d0..9c62f19fd 100644 --- a/NEWS +++ b/NEWS @@ -12,6 +12,7 @@ Bug fixes - [core] remove attendees that have the same identity as the organizer (#3905) - [eas] improved EAS parameters parsing (#4003) - [eas] properly handle canceled appointments + - [web] fixed SCAYT automatic language selection in HTML editor 2.3.19 (2017-01-09) ------------------- diff --git a/UI/WebServerResources/UIxMailEditor.js b/UI/WebServerResources/UIxMailEditor.js index 60e10dfa9..35bd436cf 100644 --- a/UI/WebServerResources/UIxMailEditor.js +++ b/UI/WebServerResources/UIxMailEditor.js @@ -533,7 +533,8 @@ function initMailEditor() { CKEDITOR.replace('text', { language : localeCode, - scayt_sLang : localeCode + scayt_disableOptionsStorage : 'lang', + scayt_sLang : scaytLang(localeCode) } ); CKEDITOR.on('instanceReady', function(event) { diff --git a/UI/WebServerResources/UIxPreferences.js b/UI/WebServerResources/UIxPreferences.js index cda69eba5..8052c5ca6 100644 --- a/UI/WebServerResources/UIxPreferences.js +++ b/UI/WebServerResources/UIxPreferences.js @@ -715,7 +715,8 @@ function onMailIdentitySignatureClick(event) { 'BGColor'], ['Source'] ], language: localeCode, - scayt_sLang: localeCode }); + scayt_disableOptionsStorage : 'lang', + scayt_sLang : scaytLang(localeCode) }); } } dialog.mailAccount = this.mailAccount; diff --git a/UI/WebServerResources/generic.js b/UI/WebServerResources/generic.js index aa24d11e7..e569187c5 100644 --- a/UI/WebServerResources/generic.js +++ b/UI/WebServerResources/generic.js @@ -2285,6 +2285,22 @@ function _disposeDialog() { } } +// Pickup the first matching language supported by SCAYT +// See http://docs.ckeditor.com/#!/guide/dev_howtos_scayt +function scaytLang(locale) { + var i, langs, lang; + + langs = ['en_US', 'en_GB', 'pt_BR', 'da_DK', 'nl_NL', 'en_CA', 'fi_FI', 'fr_FR', 'fr_CA', 'de_DE', 'el_GR', 'it_IT', 'nb_NO', 'pt_PT', 'es_ES', 'sv_SE']; + lang = 'en_US'; + for (i = 0; i < langs.length; i++) + if (langs[i].lastIndexOf(locale, 0) == 0) { + lang = langs[i]; + break; + } + + return lang; +} + function readCookie(name) { var foundCookie = null;