summaryrefslogtreecommitdiff
path: root/lib/Date
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Date')
-rw-r--r--lib/Date/Language.pm2
-rw-r--r--lib/Date/Language/Bulgarian.pm92
2 files changed, 93 insertions, 1 deletions
diff --git a/lib/Date/Language.pm b/lib/Date/Language.pm
index 229a1c0..02a05e7 100644
--- a/lib/Date/Language.pm
+++ b/lib/Date/Language.pm
@@ -110,7 +110,7 @@ L<Date::Language> provides objects to parse and format dates for specific langua
Danish Norwegian TigrinyaEritrean
Dutch Oromo TigrinyaEthiopian
English Romanian Turkish
- Finnish Russian
+ Finnish Russian Bulgarian
=head1 METHODS
diff --git a/lib/Date/Language/Bulgarian.pm b/lib/Date/Language/Bulgarian.pm
new file mode 100644
index 0000000..cf3d127
--- /dev/null
+++ b/lib/Date/Language/Bulgarian.pm
@@ -0,0 +1,92 @@
+##
+## 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
+
+