NAME

Locale::TextDomain::OO::Plugin::Expand::BabelFish::Loc - Additional BabelFish methods, prefixed with loc_b

$Id: $

$HeadURL: $

VERSION

1.025

DESCRIPTION

This module provides translation with BabelFish writing.

Use this plugin for multiple plurals in one phrase otherwise use Locale::TextDomain::OO::Plugin::Expand::Gettext::Loc because that writing is much easier to read for a translation office. Gettext writing has no or constructs and less cryptic chars inside. The translation office needs no programmer experience.

SYNOPSIS

my $loc = Locale::Text::TextDomain::OO->new(
    plugins => [ qw (
        Expand::BabelFish::Loc
        ...
    )],
    ...
);

Optional type formatting or grammar stuff see Locale::Utils::PlaceholderBabelFish for possible methods.

$loc->expand_babel_fish_loc->modifier_code($code_ref);

SUBROUTINES/METHODS

method expand_babel_fish_loc

Returns the Locale::Utils::PlaceholderBabelFish object to be able to set some options.

my $expander_object = $self->expand_babel_fish_loc;

e.g.

$self->expand_babel_fish_loc->plural_code(
    $loc->plural_code,
);

$self->expand_babel_fish_loc->modifier_code(
    sub {
        my ( $value, $attribute ) = @_;
        if ( $attribute eq 'numf' ) {
            # modify that numeric $value
            # e.g. change 1234.56 to 1.234,56 or 1,234.56
            ...
        }
        elsif ( $attribute eq 'accusative' ) {
            # modify the string with that grammar rule
            # e.g. needed for East-European languages
            # write grammar rules only on msgstr/msgstr_plural[n]
            # and not on msgid
            ...
        }
        ...
        return $value;
    },
);

translation methods

How to build the method name?

Use loc_b and append this with "p".

.------------------------------------------------------------------------.
| Snippet | Description                                                  |
|---------+--------------------------------------------------------------|
| p       | Context is the first parameter.                              |
'------------------------------------------------------------------------'

method loc_b

Translate only

print $loc->loc_b(
    'Hello World!',
);

method loc_bp

Context

print $loc->loc_bp(
    'time', # Context
    'to',
);

print $loc->loc_bp(
    'destination', # Context
    'to',
);

Methods to mark the translation for extraction only

How to build the method name?

Use Nloc_b and append this with "p".

.------------------------------------------------------------------------.
| Snippet | Description                                                  |
|---------+--------------------------------------------------------------|
| p       | Context is the first parameter.                              |
'------------------------------------------------------------------------'

methods Nloc_b, Nloc_bp

The extractor looks for loc_b('... and has no problem with $loc->Nloc_b('....

This is the idea of the N-Methods.

$loc->Nloc_b('...');
$loc->Nloc_bp('...', '...');

EXAMPLE

Inside of this distribution is a directory named example. Run this *.pl files.

DIAGNOSTICS

confess

CONFIGURATION AND ENVIRONMENT

none

DEPENDENCIES

Locale::Utils::PlaceholderBabelFish

Moo::Role

namespace::autoclean

INCOMPATIBILITIES

not known

BUGS AND LIMITATIONS

none

SEE ALSO

Locale::TextDoamin::OO

Locale::TextDomain::OO::Plugin::Expand::Gettext::Loc

AUTHOR

Steffen Winkler

LICENSE AND COPYRIGHT

Copyright (c) 2017, Steffen Winkler <steffenw at cpan.org>. All rights reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.