首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用pspell API获取支持的语言/字典列表?

如何使用pspell API获取支持的语言/字典列表?
EN

Stack Overflow用户
提问于 2012-12-11 05:28:05
回答 2查看 945关注 0票数 2

pspell

有没有办法使用PHP API获得pspell支持的一组字典,最好是它们的完整名称?

目前我是这样做的:

代码语言:javascript
复制
$dicts = explode(PHP_EOL,rtrim(`aspell dicts`));

但这仍然不能给出人类友好的版本(例如,en_CA可能是“英语加拿大人”)

解决方案

这是我想出来的:

代码语言:javascript
复制
$dicts = explode(PHP_EOL,rtrim(`aspell dicts`));
$ltr = array();
foreach($dicts as $dict) {
    if(preg_match('`^([a-z]+)$`',$dict,$m)) {
        $lang = _iso639_1_to_lang_name($dict) ?: $dict;
    } elseif(preg_match('`^([a-z]+)_([A-Z]+)$`',$dict,$m)) {
        $lang = (_iso639_1_to_lang_name($m[1]) ?: $m[1]).' - '.(_country_code_to_adjectival($m[2])?:$m[2]);
    } elseif(preg_match('`^([a-z]+)_([A-Z]+)-(.*)$`',$dict,$m)) {
        $lang = (_iso639_1_to_lang_name($m[1]) ?: $m[1]).' - '.(_country_code_to_adjectival($m[2])?:$m[2]).' - '.ucwords(str_replace('_',' ',$m[3]));
    } elseif(preg_match('`^([a-z]+)-(.*)$`',$dict,$m)) {
        $lang = (_iso639_1_to_lang_name($m[1]) ?: $m[1]).' - '.ucwords(str_replace('_',' ',$m[2]));
    } else {
        $lang = $dict;
    }
    $ltr[$dict] = $lang;
}

这些功能只是根据我从维基百科上搜集的数据,从ISO代码中查找全名。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-11 05:33:48

你的意思是找出你的系统上有哪些字典?pspell只是GNU aspell库上的一个非常薄的包装器。它支持aspell库支持的任何内容,但不幸的是,它没有提供列出所有字典的方法。如果能添加这个功能就太好了。

票数 1
EN

Stack Overflow用户

发布于 2012-12-11 05:45:49

您必须使用PHP文档中的locale_parse及其详细信息:

http://php.net/manual/en/locale.parselocale.php

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13809560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档