93 lines
2.5 KiB
Perl
93 lines
2.5 KiB
Perl
##
|
||
## Bulgarian tables contributed by Krasimir Berov
|
||
##
|
||
|
||
package Date::Language::Bulgarian;
|
||
use strict;
|
||
use warnings;
|
||
use utf8;
|
||
use base qw(Date::Language);
|
||
our (@DoW, @DoWs, @MoY, @MoYs, @AMPM, @Dsuf, %MoY, %DoW, $VERSION);
|
||
$VERSION = "1.01";
|
||
|
||
@DoW = qw(неделя понеделник вторник сряда четвъртък петък събота);
|
||
@MoY = qw(януари февруари март април май юни
|
||
юли август септември октомври ноември декември);
|
||
@DoWs = qw(нд пн вт ср чт пт сб);
|
||
@MoYs = map { substr($_,0,3) } @MoY;
|
||
@AMPM = qw(AM PM);
|
||
|
||
@Dsuf = (qw(ти ви ри ти ти ти ти ми ми ти)) x 3;
|
||
@Dsuf[11,12,13] = qw(ти ти ти);
|
||
@Dsuf[30,31] = qw(ти ви);
|
||
|
||
@MoY{@MoY} = (0 .. scalar(@MoY));
|
||
@MoY{@MoYs} = (0 .. scalar(@MoYs));
|
||
@DoW{@DoW} = (0 .. scalar(@DoW));
|
||
@DoW{@DoWs} = (0 .. scalar(@DoWs));
|
||
|
||
# Formatting routines
|
||
|
||
sub format_a { $DoWs[$_[0]->[6]] }
|
||
sub format_A { $DoW[$_[0]->[6]] }
|
||
sub format_b { $MoYs[$_[0]->[4]] }
|
||
sub format_B { $MoY[$_[0]->[4]] }
|
||
sub format_h { $MoYs[$_[0]->[4]] }
|
||
sub format_p { $_[0]->[2] >= 12 ? $AMPM[1] : $AMPM[0] }
|
||
sub format_o { ($_[0]->[3]<10?' ':'').$_[0]->[3].$Dsuf[$_[0]->[3]] }
|
||
|
||
1;
|
||
|
||
__END__
|
||
|
||
=encoding utf8
|
||
|
||
=head1 NAME
|
||
|
||
Date::Language::Bulgarian - localization for Date::Format
|
||
|
||
=head1 DESCRIPTION
|
||
|
||
This is Bulgarian localization for Date::Format.
|
||
It is important to note that this module source code is in utf8.
|
||
All strings which it outputs are in utf8, so it is safe to use it
|
||
currently only with English. You are left alone to try and convert
|
||
the output when using different Date::Language::* in the same application.
|
||
This should be addresed in the future.
|
||
|
||
=head1 SYNOPSIS
|
||
|
||
use strict;
|
||
use warnings;
|
||
use Date::Language;
|
||
local $\=$/;
|
||
my $template ='%a %b %e %T %Y (%Y-%m-%d %H:%M:%S)';
|
||
my $time=1290883821; #or just use time();
|
||
my @lt = localtime($time);
|
||
my %languages = qw(English GMT German EEST Bulgarian EET);
|
||
binmode(select,':utf8');
|
||
|
||
foreach my $l(keys %languages){
|
||
my $lang = Date::Language->new($l);
|
||
my $zone = $languages{$l};
|
||
print $/. "$l $zone";
|
||
print $lang->time2str($template, $time);
|
||
print $lang->time2str($template, $time, $zone);
|
||
|
||
print $lang->strftime($template, \@lt);
|
||
}
|
||
|
||
=head1 AUTHOR
|
||
|
||
Krasimir Berov (berov@cpan.org)
|
||
|
||
=head1 COPYRIGHT
|
||
|
||
Copyright (c) 2010 Krasimir Berov. This program is free
|
||
software; you can redistribute it and/or modify it under the same terms
|
||
as Perl itself.
|
||
|
||
=cut
|
||
|
||
|