Конвертировать американские слова в британский эквивалент

У меня есть функция, которая автоматически исправляет строку. Он исправляет слова с ошибками, как и ожидалось. Эта проблема, с которой я сталкиваюсь, заключается в том, что она не исправит написанное американцами слово в британском эквиваленте.

$pspell = pspell_new('en','british','','utf-8',PSPELL_FAST);

function spellCheckWord($word) {
global $pspell;
$autocorrect = TRUE;

// Take the string match from preg_replace_callback's array
$word = $word[0];

// Ignore ALL CAPS
if (preg_match('/^[A-Z]*$/',$word)) return $word;

// Return dictionary words
if (pspell_check($pspell,$word))
return $word;

// Auto-correct with the first suggestion
if ($autocorrect && $suggestions = pspell_suggest($pspell,$word))
return current($suggestions);

// No suggestions
return $word;
}

function spellCheck($string) {
return preg_replace_callback('/\b\w+\b/','spellCheckWord',$string);
}

echo spellCheck('This is a color.');

Приведенный выше пример не обнаруживает орфографическую ошибку. Как я могу заставить это измениться color в colour и то же самое для таких слов, как favorite в favourite?

3

Решение

Глядя на официальную документацию для pspell_new() метод — есть комментарий относительно различных значений для параметра «орфография» — который используется, чтобы установить, какая версия языка используется;

Я думаю, что язык и параметры правописания отличаются в разных версиях PHP и / или в дистрибутивах aspell / UNIX.

Мой PHP 5.2.6 Debian игнорирует параметр правописания.

Вместо:

Для американцев используйте en_US в качестве языка.
Для британцев используйте en_GB (не en_UK)
Для канадского использования en_CA

Похоже, что это значение может меняться в зависимости от конфигурации вашего сервера.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]