diff options
| author | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2010-04-19 11:59:06 +0000 |
|---|---|---|
| committer | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2010-04-19 11:59:06 +0000 |
| commit | 8ad91df9a54e647e94ec7ccba9ace9eafdd3f4a0 (patch) | |
| tree | eda45fcdc69d1149baf04ed84f776cc3e32a0080 /roundcubemail/program | |
| parent | f99443e76f6cae3e52399e42a29cc70c18b44c09 (diff) | |
- Fix setting spellcheck languages with extended codes (#1486605)
git-svn-id: https://svn.roundcube.net/trunk@3502 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'roundcubemail/program')
| -rw-r--r-- | roundcubemail/program/steps/mail/compose.inc | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/roundcubemail/program/steps/mail/compose.inc b/roundcubemail/program/steps/mail/compose.inc index 2fac294af..bc7cd8960 100644 --- a/roundcubemail/program/steps/mail/compose.inc +++ b/roundcubemail/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( |
