web/wp-includes/js/tinymce/plugins/spellchecker/classes/EnchantSpell.php
author ymh
Fri, 12 Mar 2010 13:29:04 +0000
changeset 1 0d28b7c10758
permissions -rw-r--r--
First commit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
0d28b7c10758 First commit
ymh
parents:
diff changeset
     1
<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
     2
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
     3
 * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
0d28b7c10758 First commit
ymh
parents:
diff changeset
     4
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
     5
 * This class was contributed by Michel Weimerskirch.
0d28b7c10758 First commit
ymh
parents:
diff changeset
     6
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
     7
 * @package MCManager.includes
0d28b7c10758 First commit
ymh
parents:
diff changeset
     8
 * @author Moxiecode
0d28b7c10758 First commit
ymh
parents:
diff changeset
     9
 * @copyright Copyright � 2004-2007, Moxiecode Systems AB, All rights reserved.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    10
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    11
0d28b7c10758 First commit
ymh
parents:
diff changeset
    12
class EnchantSpell extends SpellChecker {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    13
	/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
    14
	 * Spellchecks an array of words.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    15
	 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
    16
	 * @param String $lang Selected language code (like en_US or de_DE). Shortcodes like "en" and "de" work with enchant >= 1.4.1
0d28b7c10758 First commit
ymh
parents:
diff changeset
    17
	 * @param Array $words Array of words to check.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    18
	 * @return Array of misspelled words.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    19
	 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    20
	function &checkWords($lang, $words) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    21
		$r = enchant_broker_init();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    22
		
0d28b7c10758 First commit
ymh
parents:
diff changeset
    23
		if (enchant_broker_dict_exists($r,$lang)) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    24
			$d = enchant_broker_request_dict($r, $lang);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    25
			
0d28b7c10758 First commit
ymh
parents:
diff changeset
    26
			$returnData = array();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    27
			foreach($words as $key => $value) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    28
				$correct = enchant_dict_check($d, $value);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    29
				if(!$correct) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    30
					$returnData[] = trim($value);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    31
				}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    32
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    33
	
0d28b7c10758 First commit
ymh
parents:
diff changeset
    34
			return $returnData;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    35
			enchant_broker_free_dict($d);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    36
		} else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    37
0d28b7c10758 First commit
ymh
parents:
diff changeset
    38
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    39
		enchant_broker_free($r);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    40
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    41
0d28b7c10758 First commit
ymh
parents:
diff changeset
    42
	/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
    43
	 * Returns suggestions for a specific word.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    44
	 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
    45
	 * @param String $lang Selected language code (like en_US or de_DE). Shortcodes like "en" and "de" work with enchant >= 1.4.1
0d28b7c10758 First commit
ymh
parents:
diff changeset
    46
	 * @param String $word Specific word to get suggestions for.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    47
	 * @return Array of suggestions for the specified word.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    48
	 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    49
	function &getSuggestions($lang, $word) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    50
		$r = enchant_broker_init();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    51
		$suggs = array();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    52
0d28b7c10758 First commit
ymh
parents:
diff changeset
    53
		if (enchant_broker_dict_exists($r,$lang)) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    54
			$d = enchant_broker_request_dict($r, $lang);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    55
			$suggs = enchant_dict_suggest($d, $word);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    56
0d28b7c10758 First commit
ymh
parents:
diff changeset
    57
			enchant_broker_free_dict($d);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    58
		} else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    59
0d28b7c10758 First commit
ymh
parents:
diff changeset
    60
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    61
		enchant_broker_free($r);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    62
0d28b7c10758 First commit
ymh
parents:
diff changeset
    63
		return $suggs;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    64
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    65
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    66
0d28b7c10758 First commit
ymh
parents:
diff changeset
    67
?>