<?php use Lead\Inflector\Inflector; Inflector::singular('/s$/i', '', 'es'); Inflector::plural('/$/i', 's', 'es'); Inflector::singular('/es$/i', '', 'es'); Inflector::plural('/([^aeéiou])$/i', '\\1es', 'es'); Inflector::singular('/ces$/i', 'z', 'es'); Inflector::plural('/z$/i', 'ces', 'es'); Inflector::singular('/iones$/i', 'ión', 'es'); Inflector::plural('/ión$/i', 'iones', 'es'); Inflector::irregular('carácter', 'caracteres', 'es'); /** * Warning, using an "exhastive" list of rules will slow * down all singularizations/pluralizations generation. * So it's preferable to only add the ones you are actually using. */
<?php use Lead\Inflector\Inflector; Inflector::singular('/s$/i', '', 'fr'); Inflector::plural('/([^s])$/i', '\\1s', 'fr'); Inflector::plural('/(eu|eau)$/i', '\\1x', 'fr'); Inflector::singular('/(eu|eau)x$/i', '\\1', 'fr'); Inflector::plural('/(x|z)$/i', '\\1', 'fr'); Inflector::irregular('monsieur', 'messieurs', 'fr'); Inflector::irregular('madame', 'mesdames', 'fr'); Inflector::irregular('mademoiselle', 'mesdemoiselles', 'fr'); /** * Warning, using an "exhastive" list of rules will slow * down all singularizations/pluralizations generation. * So it's preferable to only add the ones you are actually using. */
Inflector::singular('/(bye)$/i', 'Good \\1', 'fr'); expect(Inflector::singularize('bye'))->not->toBe('Good bye'); expect(Inflector::singularize('bye', 'fr'))->toBe('Good bye'); }); }); describe("::irregular()", function () { beforeEach(function () { Inflector::reset(); }); it("adds a new irregularity", function () { Inflector::irregular('nexus', 'nexxus'); expect(Inflector::singularize('nexxus'))->toBe('nexus'); expect(Inflector::pluralize('nexus'))->toBe('nexxus'); }); it("adds a new irregularity only in a specified locale", function () { Inflector::irregular('nexus', 'nexxus', 'fr'); expect(Inflector::singularize('nexxus'))->not->toBe('nexus'); expect(Inflector::pluralize('nexus'))->not->toBe('nexxus'); expect(Inflector::singularize('nexxus', 'fr'))->toBe('nexus'); expect(Inflector::pluralize('nexus', 'fr'))->toBe('nexxus'); }); }); context("using `'default'`", function () { beforeEach(function () { Inflector::reset(); }); describe("::pluralize()", function () { it("pluralizes empty word", function () { expect(Inflector::pluralize(''))->toBe(''); }); it("pluralizes words", function () {