- Fix setting language for spellchecker on spellcheck_before_send

release-0.6
alecpl 14 years ago
parent 1d5779b257
commit 644e3ad912

@ -52,7 +52,7 @@ class rcube_spellchecker
{
$this->rc = rcmail::get_instance();
$this->engine = $this->rc->config->get('spellcheck_engine', 'googie');
$this->lang = $lang;
$this->lang = $lang ? $lang : 'en';
if ($this->engine == 'pspell' && !extension_loaded('pspell')) {
raise_error(array(
@ -160,6 +160,29 @@ class rcube_spellchecker
}
/**
* Returns checking result (mispelled words with suggestions)
*
* @return array Spellchecking result. An array indexed by word.
*/
function get()
{
$result = array();
foreach ($this->matches as $item) {
if ($this->engine == 'pspell') {
$word = $item[0];
}
else {
$word = mb_substr($this->content, $item[1], $item[2], RCMAIL_CHARSET);
}
$result[$word] = is_array($item[4]) ? implode("\t", $item[4]) : $item[4];
}
return $out;
}
/**
* Returns error message
*

@ -890,12 +890,14 @@ function rcube_webmail()
self.clearTimeout(this.save_timer);
// all checks passed, send message
var form = this.gui_objects.messageform,
var lang = this.spellcheck_lang(),
form = this.gui_objects.messageform,
msgid = this.set_busy(true, 'sendingmessage');
form.target = 'savetarget';
form._draft.value = '';
form.action = this.add_url(form.action, '_unlock', msgid);
form.action = this.add_url(form.action, '_lang', lang);
form.submit();
// clear timeout (sending could take longer)
@ -3004,6 +3006,18 @@ function rcube_webmail()
this.enable_command('spellcheck', this.spellcheck_ready);
};
// get selected language
this.spellcheck_lang = function()
{
var ed;
if (window.tinyMCE && (ed = tinyMCE.get(this.env.composebody)) && ed.plugins.spellchecker) {
return ed.plugins.spellchecker.selectedLang;
}
else if (this.env.spellcheck) {
return GOOGIE_CUR_LANG;
}
};
this.set_draft_id = function(id)
{
$("input[name='_draft_saveid']").val(id);

@ -10,8 +10,8 @@
Aleksander Machniak - alec [at] alec.pl
*/
var SPELL_CUR_LANG = null;
var GOOGIE_DEFAULT_LANG = 'en';
var GOOGIE_CUR_LANG,
GOOGIE_DEFAULT_LANG = 'en';
function GoogieSpell(img_dir, server_url) {
var ref = this,
@ -260,9 +260,9 @@ this.spellCheck = function(ignore) {
ref.resumeEditingState();
} else {
if (!ref.custom_no_spelling_error)
ref.flashNoSpellingErrorState();
else
ref.custom_no_spelling_error(ref);
ref.flashNoSpellingErrorState();
else
ref.custom_no_spelling_error(ref);
}
ref.removeIndicator();
}

@ -413,7 +413,7 @@ if (!$savedraft) {
if ($CONFIG['spellcheck_before_send'] && $CONFIG['enable_spellcheck']
&& empty($_SESSION['compose']['spell_checked'])
) {
$spellchecker = new rcube_spellchecker();
$spellchecker = new rcube_spellchecker(get_input_value('_lang', RCUBE_INPUT_GPC));
$spell_result = $spellchecker->check($message_body, $isHtml);
$_SESSION['compose']['spell_checked'] = true;

Loading…
Cancel
Save