wapmorgan/morphos

完全使用PHP编写的俄语和英语语法的解决方案。提供类来屈折人名、地名、名词变格和复数形式、生成基数词和序数词、拼写金额和时间。

3.2.29 2023-08-08 22:15 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