CatalystX-I18N
view release on metacpan or search on metacpan
lib/CatalystX/I18N/Model/Maketext.pm view on Meta::CPAN
# ============================================================================
package CatalystX::I18N::Model::Maketext;
# ============================================================================
use namespace::autoclean;
use Moose;
extends 'CatalystX::I18N::Model::Base';
use CatalystX::I18N::TypeConstraints;
use Path::Class;
use Scalar::Util qw(weaken);
has 'gettext_style' => (
is => 'rw',
isa => 'Bool',
default => 1,
);
sub BUILD {
my ($self) = @_;
lib/CatalystX/I18N/Model/Maketext.pm view on Meta::CPAN
my ( $self, $c ) = @_;
# set locale and fallback
my $handle = $self->class->get_handle( $c->locale );
# Catch error
Catalyst::Exception->throw(sprintf("Could not fetch lanuage handle for locale '%s'",$c->locale))
unless ( scalar $handle );
if ($self->can('fail_with')) {
weaken($c);
$handle->fail_with( sub {
$self->fail_with($c,@_);
} );
} else {
$handle->fail_with( sub { } );
}
return $handle;
}
lib/CatalystX/I18N/TraitFor/ViewTT.pm view on Meta::CPAN
# ============================================================================
package CatalystX::I18N::TraitFor::ViewTT;
# ============================================================================
use namespace::autoclean;
use Moose::Role;
requires qw(template render);
use Template::Stash;
use Scalar::Util qw(weaken);
around render => sub {
my $orig = shift;
my ( $self,$c,$template,$args ) = @_;
# local $Template::Stash::HASH_OPS;
# local $Template::Stash::LIST_OPS;
if ($c->can('i18n_collator')) {
my $collator = $c->i18n_collator;
lib/CatalystX/I18N/TraitFor/ViewTT.pm view on Meta::CPAN
# Call original BUILDARGS
return $self->$orig($app,$config);
};
sub _i18n_numberformat_factory {
my ( $context, $format, @options ) = @_;
my $stash = $context->stash;
my $catalyst_var = $context->{CONFIG}{CATALYST_VAR};
my $c = $stash->{$catalyst_var};
weaken $c;
my $number_format = $c->i18n_numberformat;
if (defined $format) {
undef $format
unless (grep { $format eq $_ } qw(number negative bytes price picture));
}
return sub {
my $value = shift;
lib/CatalystX/I18N/TraitFor/ViewTT.pm view on Meta::CPAN
return _i18n_factory_helper('localize', $context,@params)
}
sub _i18n_factory_helper {
my ( $method, $context, @params ) = @_;
my $stash = $context->stash;
my $catalyst_var = $context->{CONFIG}{CATALYST_VAR};
my $c = $stash->{$catalyst_var};
weaken $c;
return sub {
my ($msgid) = @_;
if (scalar @params == 1
&& ref($params[0]) eq 'ARRAY') {
@params = @{$params[0]};
}
return $c->$method($msgid,@params);
}
( run in 0.736 second using v1.01-cache-2.11-cpan-65fba6d93b7 )