Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Template::MultilingualUserrContributed Perl DTemplate::Multilingual::Parser(3)

NAME
       Template::Multilingual::Parser -	Multilingual template parser

SYNOPSIS
	   use Template;
	   use Template::Multilingual::Parser;

	   my $parser =	Template::Multilingual::Parser->new();
	   my $template	= Template->new(PARSER => $parser);
	   $template->process('example.ttml', {	language => 'en'});

DESCRIPTION
       This subclass of	Template Toolkit's "Template::Parser" parses
       multilingual templates: templates that contain text in several
       languages.

	   <t>
	     <en>Hello!</en>
	     <fr>Bonjour !</fr>
	   </t>

       Use this	module directly	if you have subclassed "Template", otherwise
       you may find it easier to use "Template::Multilingual".

       Language	codes can be any string	that matches "\w+", but	we suggest
       sticking	to ISO-639 which provides 2-letter codes for common languages
       and 3-letter codes for many others.

METHODS
   new(\%params)
       The new() constructor creates and returns a reference to	a new parser
       object. A reference to a	hash may be supplied as	a parameter to provide
       configuration values.

       Parser objects are typically provided as	the "PARSER" option to the
       "Template" constructor.

       Configuration values are	all valid "Template::Parser" superclass
       options,	and one	specific to this class:

       LANGUAGE_VAR
	   The LANGUAGE_VAR option can be used to set the name of the template
	   variable which contains the current language. Defaults to language.

	     my	$parser	= Template::Multilingual::Parser->new({
		LANGUAGE_VAR =>	'global.language',
	     });

	   You will need to set	this variable with the current language	value
	   at request time, usually in your "Template" subclass' "process()"
	   method.

   parse($text)
       parse() is called by the	Template Toolkit. It parses multilingual
       sections	from the input text and	translates them	to Template Toolkit
       directives. The result is then passed to	the "Template::Parser"
       superclass.

   sections
       Returns a reference to an array of tokenized sections. Each section is
       a reference to hash with	either a "nolang" key or a "lang" key.

       A "nolang" key denotes text outside of any multilingual sections. The
       value is	the text itself.

       A "lang"	key denotes text inside	a multilingual section.	The value is a
       reference to a hash, whose keys are language codes and values the
       corresponding text. For example,	the following multilingual template:

	 foo <t><fr>bonjour</fr><en>Hello</en></t> bar

       will parse to the following sections:

	 [ { nolang => 'foo ' },
	   {   lang => { fr => 'bonjour', en =>	'hello'	} },
	   { nolang => ' bar' },
	 ]

LANGUAGE SUBTAG	HANDLING
       This module supports language subtags to	express	variants, e.g. "en_US"
       or "en-US".  Here are the rules used for	language matching:

       o   Exact match:	the current language is	found in the template

	     language	 template			       output
	     fr		 <fr>foo</fr><fr_CA>bar</fr_CA>	       foo
	     fr_CA	 <fr>foo</fr><fr_CA>bar</fr_CA>	       bar

       o   Fallback to the primary language

	     language	 template			       output
	     fr_CA	 <fr>foo</fr><fr_BE>bar</fr_BE>	       foo

       o   Fallback to first (in alphabetical order) other variant of the
	   primary language

	     language	 template			       output
	     fr		 <fr_FR>foo</fr_FR><fr_BE>bar</fr_BE>  bar
	     fr_CA	 <fr_FR>foo</fr_FR><fr_BE>bar</fr_BE>  bar

AUTHOR
       Eric Cholet, "<cholet@logilune.com>"

BUGS
       Multilingual text sections cannot be used inside	TT directives.	The
       following is illegal and	will trigger a TT syntax error:

	   [% title = "<t><fr>Bonjour</fr><en>Hello</en></t>" %]

       Use this	instead:

	   [% title = BLOCK %]<t><fr>Bonjour</fr><en>Hello</en></t>[% END %]

       The TAG_STYLE, START_TAG	and END_TAG directives are supported, but the
       TAGS directive is not.

       Please report any bugs or feature requests to
       "bug-template-multilingual@rt.cpan.org",	or through the web interface
       at
       <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Template-Multilingual>.
       I will be notified, and then you'll automatically be notified of
       progress	on your	bug as I make changes.

SEE ALSO
       Template::Multilingual

       ISO 639-2 Codes for the Representation of Names of Languages:
       http://www.loc.gov/standards/iso639-2/langcodes.html

COPYRIGHT & LICENSE
       Copyright 2009 Eric Cholet, All Rights Reserved.

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

perl v5.32.1			  2009-01-18 Template::Multilingual::Parser(3)

NAME | SYNOPSIS | DESCRIPTION | METHODS | LANGUAGE SUBTAG HANDLING | AUTHOR | BUGS | SEE ALSO | COPYRIGHT & LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Template::Multilingual::Parser&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help