This is done for forwards compatibility, in case something that is
currently an alias becomes a unique locale in the future.
This means that the value of C<id()> and the object's class may not
match.
The loaded locale is cached, so that B<locale objects may be
singletons>. Calling C<register()>, C<add_aliases()>,
or C<remove_alias()> clears the cache.
=item * ids
my @ids = DateTime::Locale->ids;
my $ids = DateTime::Locale->ids;
Returns an unsorted list of the available locale ids, or an array
reference if called in a scalar context. This list does not include
aliases.
=item * names
my @names = DateTime::Locale->names;
my $names = DateTime::Locale->names;
Returns an unsorted list of the available locale names in English, or
an array reference if called in a scalar context.
=item * native_names
my @names = DateTime::Locale->native_names;
my $names = DateTime::Locale->native_names;
Returns an unsorted list of the available locale names in their native
language, or an array reference if called in a scalar context. All
native names are utf8 encoded.
B<NB>: Many locales are only partially translated, so some native
locale names may still contain some English.
=item * add_aliases ( $alias1 => $id1, $alias2 => $id2, ... )
Adds an alias to an existing locale id. This allows a locale to be
C<load()>ed by its alias rather than id or name. Multiple aliases are
allowed.
If the passed locale id is neither registered nor listed in
L</AVAILABLE LOCALES>, an exception is thrown.
DateTime::Locale->add_aliases( LastResort => 'es_ES' );
# Equivalent to DateTime::Locale->load('es_ES');
DateTime::Locale->load('LastResort');
You can also pass a hash reference to this method.
DateTime::Locale->add_aliases( { Default => 'en_GB',
Alternative => 'en_US',
LastResort => 'es_ES' } );
=item * remove_alias( $alias )
Removes a locale id alias, and returns true if the specified alias
actually existed.
DateTime::Locale->add_aliases( LastResort => 'es_ES' );
# Equivalent to DateTime::Locale->load('es_ES');
DateTime::Locale->load('LastResort');
DateTime::Locale->remove_alias('LastResort');
# Throws an exception, 'LastResort' no longer exists
DateTime::Locale->load('LastResort');
=item * register( { ... }, { ... } )
This method allows you to register custom locales with the module. A
single locale is specified as a hash, and you may register multiple
locales at once by passing an array of hash references.
Until registered, custom locales cannot be instantiated via C<load()>
and will not be returned by querying methods such as C<ids()> or
C<names()>.
register( id => $locale_id,
en_language => ..., # something like 'English' or 'Afar',
# All other keys are optional. These are:
en_script => ...,
en_territory => ...,
en_variant => ...,
native_language => ...,
native_sript => ...,
native_territory => ...,
native_variant => ...,
# Optional - defaults to DateTime::Locale::$locale_id
class => $class_name,
=5= |