emagedev / morpher
Magento 扩展,使用 morpher.ru 网站的 API 来变位俄语单词
Requires
Requires (Dev)
- ecomdev/ecomdev_phpunit: *
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()])
此函数有助于变位您的用户姓名。
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 |
# 标志
用于提高变数形质量。有些词可以有不同的变数形,例如
- 姓“雷尼克”在男性中变数形,在女性中不变数形;
- “罗夫”在工具格中将变为“罗夫”,如果是姓,则会变为“罗夫”,如果是城市名称;
- “测试员”在宾格中将是“测试员”,如果是人,则会是“测试员”,如果是仪器。
inflectName
、inflectMaleName
、inflectFemaleName
方法默认使用必要的标志。
标志 | 描述 | 别名 |
---|---|---|
女性 | 主 | 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/
示例中的所有与真实人物的重叠均为偶然。