emagedev/morpher

该软件包已被废弃且不再维护。未建议替代软件包。

Magento 扩展,使用 morpher.ru 网站的 API 来变位俄语单词

安装: 199

依赖项: 0

建议者: 0

安全: 0

星星: 0

观察者: 1

分支: 0

开放问题: 0

类型:magento-module

1.1.4 2018-04-19 16:06 UTC

This package is not auto-updated.

Last update: 2021-04-13 20:56:05 UTC


README

为 Magento 定制的变位词工具

此模块允许使用 morpher.ru 在线服务根据上下文变位单词。第一个请求通过 REST API 进行,后续请求通过数据库中的缓存进行,这可以避免对服务进行不必要的请求(请求受到免费和付费订阅的限制)。

对于变位商品数量或用户姓名非常有用,以及用于其他用途。

传递给模块的所有单词和短语都必须是 名词性

与数字一起使用

# Mage::helper('morpher')->inflectWordByNumber($number, $phrase [, $keepNumber = false [, $translate = false ]])

此函数有助于变位与数字相邻的单词,例如用于目录或购物车中的商品数量。

  • $number 定义需要变位单词的相对数量
  • $phrase 定义要变位的短语或单词
  • $keepNumber 定义是否在单词或短语之前保留数字
  • $translate 定义是否需要在变位之前翻译单词或短语,以及使用哪个模块(可以是字符串,例如 yourmoule,或逻辑值)

示例

Mage::helper('morpher')->inflectWordByNumber(5, 'item', true, 'catalog');

返回

5 个商品

Mage::helper('morpher')->inflectWordByNumber(1, 'piece', false, 'yourmodule');

返回

1 个商品

在您的模块 thing 中应将“thing”翻译为“商品”

变位姓名

# Mage::helper('morpher')->inflectName($name, $inflection [, $flags = array()])

此函数有助于变位您的用户姓名。

  • $name 用户姓名
  • $inflection 变位
  • $flags 定义用于更精确变位的额外 标志

API 可以很好地区分姓名,但如果有可能,应在标志中指定性别或使用以下方法

  • inflectMaleName($name, $inflection [, $flags = array()]) 用于男性
  • inflectFemaleName($name, $inflection [, $flags = array()]) 用于女性

示例

Mage::helper('morpher')->inflectMaleName('Ломоносов, Михаил Васильевич', Emagedev_Morpher_Helper_Data::DATIVE);

返回

Михаил Васильевич Ломоносов

Mage::helper('morpher')->inflectFemaleName('Любовь Эдуардовна Соболь', Emagedev_Morpher_Helper_Data::GENITIVE);

返回

Любови Эдуардовны Соболь

一般情况

# Mage::helper('morpher')->inflectWord($phrase, $inflection [, $multi = false [, $flags = array() [, $translate = false ]]])

此函数根据指定参数变位单词。

  • $phrase 要变位的短语或单词
  • $inflection 变位
  • $multi 定义是否为复数
  • $flags 定义用于更精确变位的额外 标志
  • $translate 定义是否需要在变位之前翻译单词或短语,以及使用哪个模块(可以是字符串,例如 yourmoule,或逻辑值)

在 morpher.ru 上进行身份验证

进行身份验证是为了扩展变位单词的限额。您可以在管理面板中的配置中输入您的用户名和密码。设置位于 API 组(标准翻译为 服务)中的 网站 morpher.ru 的 API 选项卡。

速查表

# 变数形

如果您的代码风格不允许在代码中直接使用西里尔字母,则“变数形”具有在“Emagedev_Morpher_Helper_Data”辅助器中记录为常量的别名。

符号 别名
主格 Emagedev_Morpher_Helper_Data::NOMINATIVE
属格 Emagedev_Morpher_Helper_Data::GENITIVE
与格 Emagedev_Morpher_Helper_Data::ACCUSATIVE
宾格 Emagedev_Morpher_Helper_Data::DATIVE
工具格 工具 Emagedev_Morpher_Helper_Data::INSTRUMENTAL
前置格 前置 Emagedev_Morpher_Helper_Data::PREPOSITIONAL
前置格(关于) 前置 Emagedev_Morpher_Helper_Data::PREPOSITIONAL_WITH_PREFIX
地方格(见API) Emagedev_Morpher_Helper_Data::LOCATION

# 标志

用于提高变数形质量。有些词可以有不同的变数形,例如

  • 姓“雷尼克”在男性中变数形,在女性中不变数形;
  • “罗夫”在工具格中将变为“罗夫”,如果是姓,则会变为“罗夫”,如果是城市名称;
  • “测试员”在宾格中将是“测试员”,如果是人,则会是“测试员”,如果是仪器。

inflectNameinflectMaleNameinflectFemaleName方法默认使用必要的标志。

标志 描述 别名
女性 Emagedev_Morpher_Helper_Data::FLAG_FEMININE
男性 Emagedev_Morpher_Helper_Data::FLAG_MASCULINE
有生命的 Emagedev_Morpher_Helper_Data::FLAG_ANIMATE
无生命的 Emagedev_Morpher_Helper_Data::FLAG_INANIMATE
普通 工具 Emagedev_Morpher_Helper_Data::FLAG_COMMON
名字 前置 Emagedev_Morpher_Helper_Data::FLAG_NAME

单元测试

主要逻辑已覆盖,要运行需要EcomDev_PHPUnit模块

待办事项

  • 覆盖名称逻辑的测试
  • 为地方的介词格形式添加用例(标签 <地点>、<目的地> 和 <来源地>)
  • 为形容词添加用例

注意:不要忘记修改缓存键以正确处理数字。

注意:由于模块的功能是装饰性的,模块通常不会引发错误。如果某些事情不正确,请查看日志。

API描述在此:http://morpher.ru/ws3/

示例中的所有与真实人物的重叠均为偶然。