The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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

tt_inflect ($string)

The underlying inflect filter.

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.