diff options
Diffstat (limited to 'program/steps/mail/compose.inc')
-rw-r--r-- | program/steps/mail/compose.inc | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc index 2fac294af..bc7cd8960 100644 --- a/program/steps/mail/compose.inc +++ b/program/steps/mail/compose.inc @@ -522,16 +522,36 @@ function rcmail_compose_body($attrib) // include GoogieSpell if (!empty($CONFIG['enable_spellcheck'])) { - $lang = strtolower(substr($_SESSION['language'], 0, 2)); - - $spellcheck_langs = (array)$RCMAIL->config->get('spellcheck_languages', array('da'=>'Dansk', 'de'=>'Deutsch', 'en' => 'English', 'es'=>'Español', 'fr'=>'Français', 'it'=>'Italiano', 'nl'=>'Nederlands', 'pl'=>'Polski', 'pt'=>'Português', 'fi'=>'Suomi', 'sv'=>'Svenska')); + $engine = $RCMAIL->config->get('spellcheck_engine','googie'); + $spellcheck_langs = (array) $RCMAIL->config->get('spellcheck_languages', + array('da'=>'Dansk', 'de'=>'Deutsch', 'en' => 'English', 'es'=>'Español', + 'fr'=>'Français', 'it'=>'Italiano', 'nl'=>'Nederlands', 'pl'=>'Polski', + 'pt'=>'Português', 'fi'=>'Suomi', 'sv'=>'Svenska')); + + // googie works only with two-letter codes + if ($engine == 'googie') { + $lang = strtolower(substr($_SESSION['language'], 0, 2)); + + $spellcheck_langs_googie = array(); + foreach ($spellcheck_langs as $key => $name) + $spellcheck_langs_googie[strtolower(substr($key,0,2))] = $name; + $spellcheck_langs = $spellcheck_langs_googie; + } + else { + $lang = $_SESSION['language']; + + // if not found in the list, try with two-letter code + if (!$spellcheck_langs[$lang]) + $lang = strtolower(substr($lang, 0, 2)); + } + if (!$spellcheck_langs[$lang]) $lang = 'en'; - + $editor_lang_set = array(); foreach ($spellcheck_langs as $key => $name) { $editor_lang_set[] = ($key == $lang ? '+' : '') . JQ($name).'='.JQ($key); - } + } $OUTPUT->include_script('googiespell.js'); $OUTPUT->add_script(sprintf( |