NAME

Rose::HTML::Object::Message::Localized - Localized message object.

SYNOPSIS

use Rose::HTML::Form::Field::Integer;
Rose::HTML::Form::Field::Integer->load_all_messages;

use Rose::HTML::Object::Messages qw(NUM_INVALID_INTEGER);

$localizer = Rose::HTML::Object->default_localizer;

$msg = 
  Rose::HTML::Object::Message::Localized->new(
    localizer => $localizer,
    id        => NUM_INVALID_INTEGER,
    args      => { label => 'XYZ' });

print $msg->localized_text; # XYZ must be an integer.

$msg->locale('fr');

print $msg->localized_text; # XYZ doit être un entier.

DESCRIPTION

Rose::HTML::Object::Message::Localized objects encapsulate a localized text message with an integer id and an optional set of name/value pairs to be used to fill in any placeholders in the message text.

This class inherits from Rose::HTML::Object::Message. See the Rose::HTML::Object::Message documentation for more information.

OVERLOADING

Stringification is overloaded to call the localized_text method. In numeric and boolean contexts, Rose::HTML::Object::Message::Localized objects always evaluate to true.

CLASS METHODS

default_locale [LOCALE]

Get or set the default locale. Defaults to en.

default_localizer [LOCALIZER]

Get or set the default Rose::HTML::Object::Message::Localizer-derived localizer object. Defaults to the default_localizer of the generic object class for this HTML object class hierarchy (Rose::HTML::Object, by default).

CONSTRUCTOR

new [ PARAMS | TEXT ]

Constructs a new Rose::HTML::Object::Message::Localized object. If a single argument is passed, it is taken as the value for the text parameter. Otherwise, PARAMS name/value pairs are expected. Any object method is a valid parameter name.

OBJECT METHODS

args [ PARAMS | HASHREF ]

Get or set the name/value pairs to be used to fill in any placeholders in the localized message text. To set, pass a list of name/value pairs or a reference to a hash of name/value pairs. Values must be strings, code references, or references to arrays of strings or code references. Code references are evaluated each time a message with placeholders is constructed.

See the LOCALIZED TEXT section of the Rose::HTML::Object::Message::Localizer documentation for more information on message text placeholders.

id [INT]

Get or set the message's integer identifier.

locale [LOCALE]

Get or set the locale string for this message. If no locale is set but a parent is defined and has a locale, then the parent's locale() is returned. If the parent doesn't exist or has no locale set, the default_locale is returned.

localizer [LOCALIZER]

Get or set the Rose::HTML::Object::Message::Localizer-derived object used to localize message text. If no localizer is set but a parent is defined, then the parent's localizer() is returned. Otherwise, the default_localizer is returned.

localized_text

Asks the localizer to produce the localized version of the message text for the current locale and args. The localized text is returned.

parent [OBJECT]

Get or set a weakened reference to a parent object. This parent must have a localizer() method that returns a Rose::HTML::Object::Message::Localizer-derived object and a locale() method that returns a locale string.

AUTHOR

John C. Siracusa (siracusa@gmail.com)

LICENSE

Copyright (c) 2010 by John C. Siracusa. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.