2017 © Pedro Peláez
 

magento-module morpher

Magento extension to inflect russian word with API of website morpher.ru

image

emagedev/morpher

Magento extension to inflect russian word with API of website morpher.ru

  • Thursday, April 19, 2018
  • by hws47a
  • Repository
  • 1 Watchers
  • 0 Stars
  • 83 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 5 Versions
  • 4 % Grown

The README.md

API сайта morpher.ru для Magento 1.9

Склонятор для Magento

Этот модуль позволит склонять слова в зависимости от контекста с помощью онлайн сервиса morpher.ru. Первый запрос осуществляется через REST API, дальнейшие - из кэша в базе данных, что позволяет не нагружать сервис лишними запросами (они ограничены по бесплатной и платной подпискам)., (*1)

Может быть полезно для склонения количеств товаров или имен пользователей, ну и для чего-нибудь ещё., (*2)

Все передаваемые в модуль слова и фразы должны быть в именительном падеже, (*3)

Использование с числами

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

Функция поможет склонять слова рядом с числами, например, для количества товаров в каталоге или корзине., (*5)

  • $number определяет число, относительно которого нужно склонить слово
  • $phrase определяет фразу или слово для склонения
  • $keepNumber определяет, стоит ли оставлять число перед словом или фразой
  • $translate определяет, необходимо ли переводить слово или фразу перед склонением, и каким модулем (может быть строкой, например yourmoule, или логическим значением)

Пример:, (*6)

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

Вернет:, (*7)

5 товаров, (*8)

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

Вернет:, (*9)

1 штука, (*10)

В вашем модуле thing должно быть переведено как штука, (*11)

Склонение имён

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

Функция поможет склонять имена ваших пользователей., (*13)

  • $name имя пользователя
  • $inflection склонение
  • $flags определяет дополнительные флаги для более точного склонения

API неплохо различает имена, но если есть возможность, следует указать род в флагах или использовать следующие методы:, (*14)

  • inflectMaleName($name, $inflection [, $flags = array()]) для мужских
  • inflectFemaleName($name, $inflection [, $flags = array()]) для женских

Пример:, (*15)

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

Вернет:, (*16)

Ломоносову, Михаилу Васильевичу, (*17)

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

Вернет:, (*18)

Любови Эдуардовны Соболь, (*19)

Общий случай

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

Функция склоняет слово с заданными параметрами., (*21)

  • $phrase фраза или слово для склонения
  • $inflection склонение
  • $multi определяет множественное ли число
  • $flags определяет дополнительные флаги для более точного склонения
  • $translate определяет, необходимо ли переводить слово или фразу перед склонением, и каким модулем (может быть строкой, например yourmoule, или логическим значением)

Авторизация на morpher.ru

Авторизация необходима для расширения лимита на склонение слов. Ваш логин и пароль вы можете ввести в панели управления в конфигурации. Настройки расположены в группе API (в стандартном переводе СЕРВИСЫ) во вкладке API сайта morpher.ru., (*22)

Шпаргалка

# Склонения

Если ваш кодстайл не позволяет напрямую использовать кириллицу в коде, для склонений есть алиасы, записанные как константы в хелпере Emagedev_Morpher_Helper_Data., (*23)

Падеж Символ Алиас
Именительный И 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

# Флаги

Нужны для повышения качества склонения. Есть слова, которые могут склоняться по-разному, например:, (*24)

  • Фамилия Резник склоняется у мужчин и не склоняется у женщин;
  • Ростов в творительном падеже будет Ростовым, если это фамилия, и Ростовом, если это город;
  • тестер в винительном падеже будет тестера, если это человек, и тестер, если имеется в виду прибор.

Методы inflectName, inflectMaleName, inflectFemaleName используют необходимые флаги по умолчанию, (*25)

Флаг Описание Алиас
Feminine И Emagedev_Morpher_Helper_Data::FLAG_FEMININE
Masculine Р Emagedev_Morpher_Helper_Data::FLAG_MASCULINE
Animate Д Emagedev_Morpher_Helper_Data::FLAG_ANIMATE
Inanimate В Emagedev_Morpher_Helper_Data::FLAG_INANIMATE
Common Т Emagedev_Morpher_Helper_Data::FLAG_COMMON
Name П Emagedev_Morpher_Helper_Data::FLAG_NAME

Юнит тесты

Основная логика покрыта, для запуска нужен модуль EcomDev_PHPUnit, (*26)

To Do:

  • Покрыть тестами логику имен
  • Добавить кейс для предложно-падежных форм для мест (теги где, куда и откуда)
  • Добавить кейс для прилагательных

N.B. Не забывайте модифицировать ключи кэша для корректной работы с числами., (*27)

N.B. Так как функции модуля - косметические, модуль как правило не поднимает ошибок. Если что-то работает некорректно, стоит посмотреть в логи., (*28)

Описание API тут: http://morpher.ru/ws3/, (*29)

Все совпадения с реальными лицами в примере случайны., (*30)

The Versions

19/04 2018

dev-master

9999999-dev

Magento extension to inflect russian word with API of website morpher.ru

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

  • ecomdev/ecomdev_phpunit *

by Dmitry Burlakov

19/04 2018

1.1.4

1.1.4.0

Magento extension to inflect russian word with API of website morpher.ru

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

  • ecomdev/ecomdev_phpunit *

by Dmitry Burlakov

19/04 2018

1.1.3

1.1.3.0

Magento extension to inflect russian word with API of website morpher.ru

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

  • ecomdev/ecomdev_phpunit *

by Dmitry Burlakov

22/03 2018

dev-hws47a-patch-1

dev-hws47a-patch-1

Magento extension to inflect russian word with API of website morpher.ru

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

  • ecomdev/ecomdev_phpunit *

by Dmitry Burlakov

20/11 2017

1.1.1

1.1.1.0

Magento extension to inflect russian word with API of website morpher.ru

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

  • ecomdev/ecomdev_phpunit *

by Dmitry Burlakov