Skip to content

Examples

github-actions[bot] edited this page Jul 16, 2026 · 1 revision

Примеры

Практические сценарии использования cloudcastle/dictionary. См. также каталог examples/ в репозитории.

Согласование числительных со словарной точностью

use CloudCastle\Dictionary\{Dictionary, WordClass};

$nouns = Dictionary::load('ru', WordClass::Noun);

echo '5 ' . $nouns->formOf('человек', 'gen:pl');   // 5 людей
echo 'нет ' . $nouns->formOf('ребёнок', 'gen:pl'); // нет детей

Персонализация обращения по полу

use CloudCastle\Dictionary\Gender;

$names = Dictionary::load('ru', WordClass::GivenName);

$greeting = match ($names->find($userName)?->gender) {
    Gender::Feminine => 'Уважаемая',
    Gender::Masculine => 'Уважаемый',
    default => 'Здравствуйте,',
};

Нормализация словоформ к лемме (поиск, аналитика)

// «людьми», «людей», «люди» → один ключ «человек»
$lemma = $nouns->find($token)?->lemma ?? $token;

Доменный словарь поверх поставляемого

$domain = Dictionary::fromArray([
    'терминал' => ['g' => 'm', 'f' => [
        'nom:sg' => 'терминал', 'gen:sg' => 'терминала',
        'nom:pl' => 'терминалы', 'gen:pl' => 'терминалов',
    ]],
]);

$nouns = $nouns->merge($domain);

Мультиязычные формы в UI

Dictionary::load('de', WordClass::Noun)->formOf('Stadt', 'nom:pl');   // Städte
Dictionary::load('fr', WordClass::Noun)->formOf('cheval', 'nom:pl');  // chevaux
Dictionary::load('es', WordClass::Noun)->formOf('régimen', 'nom:pl'); // regímenes

Запускаемый файл: examples/basic.php.

Clone this wiki locally