NAME
Template::Plugin::Lingua::EN::Inflexion - Interface to Lingua::EN::Inflexion module
SYNOPSIS
use strict;
use warnings;
use Template;
my $tsrc = <<'EOT';
[% USE infl = Lingua.EN.Inflexion; -%]
[% FOR obj IN objects; -%]
[% FOR n IN [0, 1, 2]; -%]
[% FILTER inflect; -%]
<#d:$n>There <V:was> <#n:$n> <N:$obj.name>.
[% IF n > 0 %] <A:This> <N:$obj.name> <V:was> ${obj.colour}.
[% END; END; END %]
[% END; -%]
EOT
my $data = {
objects => [
{ name => 'dog', colour => 'brown' },
{ name => 'goose', colour => 'white' },
{ name => 'fish', colour => 'gold' }
]
};
my $template = Template->new ({INTERPOLATE => 1});
$template->process (\$tsrc, $data);
DESCRIPTION
The Lingua::EN::Inflexion Plugin is an interface to Damian Conway's Lingua::EN::Inflexion Perl module, which provides plural inflections, "a"/"an" selection for English words, and manipulation of numbers as words. The plugin provides an 'inflect' filter, which can be used to interpolate inflections in a string.
For the full gory details of the inflection functionality refer to the Lingua::EN::Inflexion manual.
METHODS
new
my $infl = Template::Plugin::Lingua::EN::Inflexion->new ($context);
The constructor takes one argument which is the context on which the filter will be defined and returns the new object. You will not need to call this explicitly within a template, just USE the plugin as normal:
[% USE infl = Lingua.EN.Inflexion; -%]
noun
my $plural = $infl->noun ('dog')->plural;
The noun method is a wrapper around Lingua::EN::Inflexion::noun()
and returns an object of Lingua::EN::Inflexion::Noun.
verb
my $plural = $infl->verb ('dog')->plural;
The verb method is a wrapper around Lingua::EN::Inflexion::verb()
and returns an object of Lingua::EN::Inflexion::Verb.
adj
my $plural = $infl->adj ('canine')->plural;
The adj method is a wrapper around Lingua::EN::Inflexion::adj()
and returns an object of Lingua::EN::Inflexion::Adj.
wordlist
my $list = $class->wordlist (@fruits);
The wordlist method is a wrapper around Lingua::EN::Inflexion::wordlist()
and returns a scalar string.
INTERNAL METHODS
SEE ALSO
Lingua::EN::Inflexion, Template, Template::Plugin, Template::Plugin::Lingua::EN::Inflect
AUTHOR
Written and maintained by Pete Houston.
ACKNOWLEDGEMENTS
This module was inspired by and borrows very heavily from Template::Plugin::Lingua::EN::Inflect, originally written by Andrew Ford and maintained by Barbie.
Damian Conway <damian@conway.org> wrote the Lingua::EN::Inflexion module, which does all the heavy lifting.
COPYRIGHT & LICENSE
Parts of Template::Plugin::Lingua::EN::Inflect
retained here are
Copyright © 2005-2014 Andrew Ford
Copyright © 2014-2015 Barbie for Miss Barbell Productions
Other works are
Copyright © 2019-2020 Pete Houston
This distribution is free software; you can redistribute it and/or modify it under the Artistic Licence v2.