.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Mojolicious::Plugin::I18N 3pm" .TH Mojolicious::Plugin::I18N 3pm "2012-09-05" "perl v5.14.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Mojolicious::Plugin::I18N \- Internationalization plugin .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 4 \& # Mojolicious \& $self\->plugin(\*(AqI18N\*(Aq); \& % languages \*(Aqde\*(Aq; \& %=l \*(Aqhello\*(Aq \& \& # Mojolicious::Lite \& plugin I18N => {namespace => \*(AqMyApp::I18N\*(Aq}; \& %=l \*(Aqhello\*(Aq \& \& # Lexicon \& package MyApp::I18N::de; \& use Mojo::Base \*(AqMyApp::I18N\*(Aq; \& \& our %Lexicon = (hello => \*(Aqhallo\*(Aq); \& \& 1; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Mojolicious::Plugin::I18N adds Locale::Maketext support to Mojolicious. All you have to do besides using this plugin is to add as many lexicon classes as you need. Languages can usually be detected automatically from the \f(CW\*(C`Accept\-Languages\*(C'\fR request header. .PP This plugin can save a lot of typing, since it will generate the following code by default. .PP .Vb 7 \& # $self\->plugin(\*(AqI18N\*(Aq); \& package MyApp::I18N; \& use base \*(AqLocale::Maketext\*(Aq; \& package MyApp::I18N::en; \& use base \*(AqMyApp::I18N\*(Aq; \& our %Lexicon = (_AUTO => 1); \& 1; .Ve .PP Namespace and default language of generated code are affected by their respective options. The default lexicon class will only be generated if it doesn't already exist. .PP The code of this plugin is a good example for learning to build new plugins, you're welcome to fork it. .SH "OPTIONS" .IX Header "OPTIONS" Mojolicious::Plugin::I18N supports the following options. .ie n .SS """default""" .el .SS "\f(CWdefault\fP" .IX Subsection "default" .Vb 2 \& # Mojolicious::Lite \& plugin I18N => {default => \*(Aqen\*(Aq}; .Ve .PP Default language, defaults to \f(CW\*(C`en\*(C'\fR. .ie n .SS """namespace""" .el .SS "\f(CWnamespace\fP" .IX Subsection "namespace" .Vb 2 \& # Mojolicious::Lite \& plugin I18N => {namespace => \*(AqMyApp::I18N\*(Aq}; .Ve .PP Lexicon namespace, defaults to the application class followed by \f(CW\*(C`::I18N\*(C'\fR. .SH "HELPERS" .IX Header "HELPERS" Mojolicious::Plugin::I18N implements the following helpers. .ie n .SS """l""" .el .SS "\f(CWl\fP" .IX Subsection "l" .Vb 2 \& %=l \*(Aqhello\*(Aq \& $self\->l(\*(Aqhello\*(Aq); .Ve .PP Translate sentence. .ie n .SS """languages""" .el .SS "\f(CWlanguages\fP" .IX Subsection "languages" .Vb 2 \& % languages \*(Aqde\*(Aq; \& $self\->languages(\*(Aqde\*(Aq); .Ve .PP Change languages. .SH "METHODS" .IX Header "METHODS" Mojolicious::Plugin::I18N inherits all methods from Mojolicious::Plugin and implements the following new ones. .ie n .SS """register""" .el .SS "\f(CWregister\fP" .IX Subsection "register" .Vb 1 \& $plugin\->register($app, $conf); .Ve .PP Register plugin hooks and helpers in Mojolicious application. .SH "SEE ALSO" .IX Header "SEE ALSO" Mojolicious, Mojolicious::Guides, .