NAME

    Mojolicious::Plugin::I18NUtils - provide some helper functions for I18N

VERSION

    version 0.21

SYNOPSIS

    In your startup:

        sub startup {
            my $self = shift;
      
            # do some Mojolicious stuff
            $self->plugin( 'I18NUtils' );
    
            # more Mojolicious stuff
        }

    In your template:

        <%= datetime_loc('2014-12-10', 'de') %>

CONFIGURE

    If you use a default format other than %Y-%m-%d %H:%M:%S for dates in
    your application, you can set a format for the parser. E.g. if your
    dates look like

      10.12.2014 12:34:56

    You can add the plugin this way

      $self->plugin( I18NUtils => { format => '%d.%m.%Y %H:%M:%S' } );

HELPERS

    This plugin adds those helper methods to your web application:

 browser_languages

    Return a list of languages defined in the Accept-Language header.

      my @languages = $c->browser_languages;

    or

      your browser accepts those languages: <%= join ', ', browser_languages() %>

    Samples:

      Accept-Language: en-ca,en;q=0.8,en-us;q=0.6,de-de;q=0.4,de;q=0.2

    returns

      your browser accepts those languages: en-ca, en, en-us, de-de, de

 datetime_loc

    This helper returns the givent date and time in the localized format.

     <%= datetime_loc('2014-12-10 11:12:13', 'de') %>

    will return

     10.12.2014 11:12:13

    If you omit the language it will be retrieved from Accept-Language
    header

     <%= datetime_loc('2014-12-10 11:12:13') %>
     # Accept-Language: de, en;q=0.8

    will return

     10.12.2014 11:12:13

 date_loc

    Same as datetime_loc, but omits the time

     <%= date_loc('2014-12-10 11:12:13', 'de') %>

    will return

     10.12.2014

    If you omit the language it will be retrieved from Accept-Language
    header

     <%= date_loc('2014-12-10 11:12:13') %>
     # Accept-Language: de, en;q=0.8

    will return

     10.12.2014

 currency

    If you need to handle prices, the helper currency might help you

      <%= currency(1111.99, 'ar', 'EUR') %>
      <%= currency(1111.99, 'de', 'EUR') %>
      <%= currency(1111.99, 'en', 'EUR') %>

    will return

      € ١٬١١١٫٩٩
      1.111,99 €
      €1,111.99 

    If you omit the language it will be retrieved from Accept-Language
    header

     <%= currency(1111.99, 'EUR') %>
     # Accept-Language: de, en;q=0.8

    will return

     1.111,99 €

 decimal

      <%= decimal( 2000, 'ar' ) %>
      <%= decimal( 2000, 'de' ) %>
      <%= decimal( 2000, 'en' ) %>

    will return

      ٢٬٠٠٠
      2.000
      2,000

    If you omit the language it will be retrieved from Accept-Language
    header

     <%= decimal( 2000 ) %>
     # Accept-Language: de, en;q=0.8

    will return

     2.000

 range

      <%= range(1, 2000, 'ar' ) %>
      <%= range(1, 2000, 'de' ) %>
      <%= range(1, 2000, 'en' ) %>

    will return

      ١–٢٬٠٠٠
      1–2.000
      1–2,000

    If you omit the language it will be retrieved from Accept-Language
    header

     <%= range( 1, 2000 ) %>
     # Accept-Language: de, en;q=0.8

    will return

      1–2.000

 at_least

      <%= at_least( 2000, 'ar' ) %>
      <%= at_least( 2000, 'de' ) %>
      <%= at_least( 2000, 'en' ) %>

    will return

      +٢٬٠٠٠
      2.000+
      2,000+

    If you omit the language it will be retrieved from Accept-Language
    header

     <%= at_least( 2000 ) %>
     # Accept-Language: de, en;q=0.8

    will return

      2.000+

METHODS

 register

    Called when registering the plugin.

        # load plugin, alerts are dismissable by default
        $self->plugin( 'I18NUtils' );

AUTHOR

    Renee Baecker <reneeb@cpan.org>

COPYRIGHT AND LICENSE

    This software is Copyright (c) 2017 by Renee Baecker.

    This is free software, licensed under:

      The Artistic License 2.0 (GPL Compatible)