tinigin/morphos

完全使用PHP编写的俄语和英语语言形态学解决方案。提供用于屈折个人名称、地名、名词变格和复数化、生成基数词和序数词、拼写货币金额和时间的类。

v1.0.0 2024-07-16 09:55 UTC

This package is auto-updated.

Last update: 2024-09-16 10:20:29 UTC


README

完全使用PHP编写的俄语和英语语言形态学解决方案,以PHP库或docker镜像的形式提供,以集成到非PHP堆栈中。

Latest Stable Version License Total Downloads Daily Downloads Latest Unstable Version

测试与质量: Build Status Scrutinizer Code Quality Code Coverage

特性

  • [✓] 个人名称的屈折(Фамилия, Имя, Отчество)(俄语)
  • [✓] 地名屈折(Страны/Города)(俄语)
  • [✓] 名词和形容词的变格/复数化(俄语,英语)
  • [✓] 数字基数词和序数词的生成(количественные и порядковые)(俄语,英语)
  • [✓] 拼写货币金额(俄语)
  • [✓] 拼写时间单位和区间(俄语,英语)

目录

  1. 安装
  2. 快速开始
  3. 文档
  4. 贡献

安装

作为PHP库

  • 通过composer下载库
composer require wapmorgan/morphos

或通过适配器安装

作为独立的服务

服务器从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'

文档

贡献

有关此信息,请参阅CONTRIBUTING.md