tinigin / morphos
完全使用PHP编写的俄语和英语语言形态学解决方案。提供用于屈折个人名称、地名、名词变格和复数化、生成基数词和序数词、拼写货币金额和时间的类。
v1.0.0
2024-07-16 09:55 UTC
Requires
- php: >=5.4.0
- ext-mbstring: *
Requires (Dev)
- php: >=7.3
- phpunit/phpunit: ~9.5.20
Suggests
- ext-readline: For using interactive version of script
This package is auto-updated.
Last update: 2024-09-16 10:20:29 UTC
README
完全使用PHP编写的俄语和英语语言形态学解决方案,以PHP库或docker镜像的形式提供,以集成到非PHP堆栈中。
特性
- [✓] 个人名称的屈折(Фамилия, Имя, Отчество)(俄语)
- [✓] 地名屈折(Страны/Города)(俄语)
- [✓] 名词和形容词的变格/复数化(俄语,英语)
- [✓] 数字基数词和序数词的生成(количественные и порядковые)(俄语,英语)
- [✓] 拼写货币金额(俄语)
- [✓] 拼写时间单位和区间(俄语,英语)
目录
- 安装
- 快速开始
- 文档
- 贡献
安装
作为PHP库
- 通过composer下载库
composer require wapmorgan/morphos
或通过适配器安装
- Blade适配器: wapmorgan/morphos-blade
- Twig适配器: wapmorgan/morphos-twig
- Yii2适配器: wapmorgan/yii2-inflection
作为独立的服务
服务器从docker镜像启动,监听8080端口接受GET请求。
将服务集成到您的堆栈中(例如,使用docker compose)
services: morphos: image: wapmorgan/morphos:3.2.29 ports: - 8093:8080
或作为独立的容器
docker run --env NUM_WORKERS=4 --rm --publish 8093:8080 -v wapmorgan/morphos:3.2.29
提示:如果将要向服务发送大量负载,请调整NUM_WORKERS
环境变量。默认值为4。
在文档中,对于作为服务端点公开的函数,有API:标记。只需传递与PHP函数/方法相同的参数即可。
快速开始
俄语
// Inflect russian names: morphos\Russian\inflectName('Иванов Петр', 'родительный') => 'Иванова Петра' // Inflect geographical names: morphos\Russian\GeographicalNamesInflection::getCase('Москва', 'родительный') => 'Москвы' // Pluralize russian nouns and adjectives: morphos\Russian\pluralize(10, 'новый дом') => '10 новых домов' // Generate russian cardinal numerals: morphos\Russian\CardinalNumeralGenerator::getCase(567, 'именительный') => 'пятьсот шестьдесят семь' // Generate russian ordinal numerals: morphos\Russian\OrdinalNumeralGenerator::getCase(961, 'именительный') => 'девятьсот шестьдесят первый' // Generate russian time difference morphos\Russian\TimeSpeller::spellDifference(time() + 3600, morphos\TimeSpeller::DIRECTION) => 'через 1 час' // other functions described in README-ru.md
英语
// Pluralize english nouns: morphos\English\pluralize(10, 'house') => '10 houses' // Generate english cardinal numerals: morphos\English\CardinalNumeralGenerator::generate(567) => 'five hundred sixty-seven' // Generate english ordinal numerals: morphos\English\OrdinalNumeralGenerator::generate(961) => 'nine hundred sixty-first' // Generate english time difference morphos\English\TimeSpeller::spellDifference(time() + 3600, morphos\TimeSpeller::DIRECTION) => 'in 1 hour'
文档
- Русская морфология在README-ru.md文件中
- English morphology在README-en.md文件中
贡献
有关此信息,请参阅CONTRIBUTING.md