问题描述
Centos 8 -> Hunspell 1.6.2 -> Laravel 8 -> tigitz/PHP-spellchecker
语言环境
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
字典列表:
SEARCH PATH:
.::/usr/share/hunspell:/usr/share/myspell:/usr/share/myspell/dicts:/Library/Spelling:/root/.openoffice.org/3/user/wordbook:/root/.openoffice.org2/user/wordbook:/root/.openoffice.org2.0/user/wordbook:/root/Library/Spelling:/opt/openoffice.org/basis3.0/share/dict/ooo:/usr/lib/openoffice.org/basis3.0/share/dict/ooo:/opt/openoffice.org2.4/share/dict/ooo:/usr/lib/openoffice.org2.4/share/dict/ooo:/opt/openoffice.org2.3/share/dict/ooo:/usr/lib/openoffice.org2.3/share/dict/ooo:/opt/openoffice.org2.2/share/dict/ooo:/usr/lib/openoffice.org2.2/share/dict/ooo:/opt/openoffice.org2.1/share/dict/ooo:/usr/lib/openoffice.org2.1/share/dict/ooo:/opt/openoffice.org2.0/share/dict/ooo:/usr/lib/openoffice.org2.0/share/dict/ooo
AVAILABLE DICTIONARIES (path is not mandatory for -d option):
./ru_UA
./ru_RU
./en_US
/usr/share/myspell/ru_UA
/usr/share/myspell/ru_RU
/usr/share/myspell/en_US
LOADED DICTIONARY:
./en_US.aff
./en_US.dic
我按照说明去做
$hunspell = \PHPSpellcheck\Spellchecker\Hunspell::create();
$misspellings = $hunspell->check("exxample error ошиббка",['ru_RU'],['from_example']);
我添加了不同方式的词典,我试过官方
yum install hunspell-ru
但问题是,通过PHP代码,只有en_US
字典。如果我从控制台运行 Hunspell,则所有词典都可以运行 hunspell -d ru_RU
它也让我感到困惑的是,在显示字典时它总是报告
LOADED DICTIONARY:
./en_US.aff
./en_US.dic
如果我想使用其他词典,我不清楚为什么总是加载这些词典。我有一种感觉,PHP 代码会选择默认的控制台编码并通过它 LANG=en_US.UTF-8
传递字典。字典通过控制台工作,但通过 PHP-spellchecker
它们总是 en_US
尽管我将不同的字典传递给函数参数。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)