MKDoc-Core

 view release on metacpan or  search on metacpan

lib/MKDoc/Core/Language.pm  view on Meta::CPAN

    return wantarray ? %res : \%res;
}


=head2 $self->code();

Returns the iso code of a given language object, e.g:

  my $lang = new MKDoc::Core::Language ('en');
  print $lang->code(); # should print 'en'

=cut
sub code
{
    my $self = shift;
    return $$self;
}



=head2 $self->label();

Returns the label associated with a given language object, e.g:

  my $lang = new MKDoc::Core::Language ('en');
  print $lang->label(); # should print 'English'

=cut
sub label
{
    my $self = shift;
    my $code = $self->code;
    $::MKD_CORE_LANGUAGES || _mkd_core_languages();
    $::MKD_CORE_LANGUAGES->{$code};
}



=head2 $thing->code_list()

Returns a list of ISO codes of all languages, sorted by the Unicode
value of their associated label.

=cut
sub code_list
{
    $::MKD_CORE_LANGUAGES || _mkd_core_languages();
    $::MKD_CORE_LANGUAGE_CODE_LIST ||= [
           sort { $::MKD_CORE_LANGUAGES->{$a} cmp $::MKD_CORE_LANGUAGES->{$b} }
           keys %{$::MKD_CORE_LANGUAGES}
    ];

    return @{$::MKD_CORE_LANGUAGE_CODE_LIST};
}



=head2 $self->align();

In order to do proper multilingual HTML formatting, you need to have a
sensible value for the XHTML align="left|right" attribute.

If the language is written left to right, this method returns 'left'.

If the language is written right to left, this method returns 'right'.

=cut
sub align
{
    my $self = shift;
    my $code = $self->code;
    $::MKD_CORE_LANGUAGES_RTL || _mkd_core_languages_rtl();
    return $::MKD_CORE_LANGUAGES_RTL->{$code} ? 'right' : 'left';
}



=head2 $self->align_opposite();

In order to do proper multilingual HTML formatting, you need to have a
sensible value for the XHTML align="left|right" attribute.

This method does the exact opposite as $self->align(), i.e.

If the language is written left to right, this method returns 'right'.

If the language is written right to left, this method returns 'left'.

=cut
sub align_opposite
{
    my $self = shift;
    my $code = $self->code;
    $::MKD_CORE_LANGUAGES_RTL || _mkd_core_languages_rtl();
    return $::MKD_CORE_LANGUAGES_RTL->{$code} ? 'left' : 'right';
}



=head2 $self->dir()

In order to do proper multilingual HTML formatting, you need to have a
sensible value for the XHTML dir="ltr|rtl" attribute.

If the language is written left to right, this method returns 'ltr'.

If the language is written right to left, this method returns 'rtl'.

=cut
sub dir
{
    my $self = shift;
    my $code = $self->code;
    $::MKD_CORE_LANGUAGES_RTL || _mkd_core_languages_rtl();
    return $::MKD_CORE_LANGUAGES_RTL->{$code} ? 'rtl' : 'ltr';
}


sub direction
{
    my $self = shift;
    return $self->dir (@_);
}


1;


__END__


=head1 AUTHOR

Copyright 2003 - MKDoc Holdings Ltd.

Author: Jean-Michel Hiver

This module is free software and is distributed under the same license as Perl
itself. Use it at your own risk.


=head1 SEE ALSO

  L<Petal> TAL for perl
  MKDoc: http://www.mkdoc.com/

Help us open-source MKDoc. Join the mkdoc-modules mailing list:

  mkdoc-modules@lists.webarch.co.uk



( run in 1.468 second using v1.01-cache-2.11-cpan-39bf76dae61 )