Group
Extension

Mojolicious-Plugin-Wolowitz/lib/Mojolicious/Plugin/Wolowitz.pm

package Mojolicious::Plugin::Wolowitz;
BEGIN {
  $Mojolicious::Plugin::Wolowitz::VERSION = '1.0.1';
}
# ABSTRACT: Mojo I18n with Locale::Wolowitz

use Mojo::Base 'Mojolicious::Plugin';
use Locale::Wolowitz;

sub register {
    my ($self, $app, $config) = @_;

    my $w = Locale::Wolowitz->new( $app->home->rel_dir("i18n") );
    $app->helper(
        loc => sub {
            my ($app, $message, @args) = @_;
            $w->loc($message, $app->stash('language') || 'en' , @args);
        }
    );
}

1;


__END__
=pod

=head1 NAME

Mojolicious::Plugin::Wolowitz - Mojo I18n with Locale::Wolowitz

=head1 VERSION

version 1.0.1

=head1 SYNOPSIS

    # Enable this plugin in the startup method.
    sub startup {
        my $self = shift;
        $self->plugin('wolowitz');
        ...
    }

=head1 DESCRIPTION

L<Locale::Wolowitz> is a i18n tool that use JSON as its lexicon
storage.  This Mojolicious plugin is an alternative choice to do i18n
in Mojolicious.  You'll need to make a directory named C<i18n> under
you app home, and then put translation files into there. See
L<Locale::Wolowitz> for the content format of JSON files.

=head1 METHODS

=head2 loc($message, @args)

Return the localized C<$message>. The target language is retrieved from app stash.

For example:

    # In controller
    $self->stash("zh-TW");

    # In view
    <%= loc("Nihao") %>

=head1 AUTHOR

Kang-min Liu <gugod@gugod.org>

=head1 COPYRIGHT AND LICENSE

This software is Copyright (c) 2011 by Kang-min Liu.

This is free software, licensed under:

  The MIT (X11) License

=cut



Powered by Groonga
Maintained by Kenichi Ishigaki <ishigaki@cpan.org>. If you find anything, submit it on GitHub.