summaryrefslogtreecommitdiff
path: root/roundcubemail/program
diff options
context:
space:
mode:
authoralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-04-19 11:59:06 +0000
committeralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-04-19 11:59:06 +0000
commit8ad91df9a54e647e94ec7ccba9ace9eafdd3f4a0 (patch)
treeeda45fcdc69d1149baf04ed84f776cc3e32a0080 /roundcubemail/program
parentf99443e76f6cae3e52399e42a29cc70c18b44c09 (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.inc30
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(