4 |
use warnings; |
use warnings; |
5 |
use Carp; |
use Carp; |
6 |
|
|
7 |
sub test { |
sub populate { |
8 |
my $self = shift; |
my $self = shift; |
9 |
print STDERR ">>>$self<<<\n"; |
$self->{LANGTEXT}{general}{mastersthesis} ||= '[default:mastersthesis]'; |
10 |
return $self->{LNG}{test}; |
$self->{LANGTEXT}{general}{and} ||= '[default:and]'; |
11 |
|
$self->{LANGTEXT}{general}{comma} ||= ', '; |
12 |
|
$self->{LANGTEXT}{general}{fullstop} ||= '. '; |
13 |
|
$self->{LANGTEXT}{general}{in} ||= '[default:in]'; |
14 |
|
$self->{LANGTEXT}{general}{edition} ||= '[default:edition]'; |
15 |
|
$self->{LANGTEXT}{general}{technicalreport} ||= '[default:technicalreport]'; |
16 |
|
$self->{LANGTEXT}{general}{numberabbr} ||= '[default:numberabbr]'; |
17 |
|
$self->{LANGTEXT}{general}{chapter} ||= '[default:chapter]'; |
18 |
|
$self->{LANGTEXT}{general}{phdthesis} ||= '[default:phdthesis]'; |
19 |
|
$self->{LANGTEXT}{general}{volume} ||= '[default:volume]'; |
20 |
|
$self->{LANGTEXT}{general}{of} ||= '[default:of]'; |
21 |
|
$self->{LANGTEXT}{general}{number} ||= '[default:number]'; |
22 |
|
|
23 |
|
$self->{LANGINIT}{general} = 1; |
24 |
} |
} |
25 |
|
|
26 |
sub and { |
sub and { |
27 |
return "og"; |
my $self = shift; |
28 |
|
return $self->{LANGTEXT}{$self->{LANG}}{and}; |
29 |
} |
} |
30 |
|
|
31 |
sub comma { |
sub comma { |
32 |
return ', '; |
my $self = shift; |
33 |
|
return $self->{LANGTEXT}{$self->{LANG}}{comma}; |
34 |
} |
} |
35 |
|
|
36 |
sub fullstop { |
sub fullstop { |
37 |
return '. '; |
my $self = shift; |
38 |
|
return $self->{LANGTEXT}{$self->{LANG}}{fullstop}; |
39 |
} |
} |
40 |
|
|
41 |
sub in { |
sub in { |
42 |
my $self = shift; |
my $self = shift; |
43 |
my $t = shift; |
my $t = shift; |
44 |
return 'i' . $self->nobreakspace . $t; |
return $self->{LANGTEXT}{$self->{LANG}}{in} . $self->nobreakspace . $t; |
45 |
} |
} |
46 |
|
|
47 |
sub edition { |
sub edition { |
48 |
my $self = shift; |
my $self = shift; |
49 |
my $num = shift; |
my $num = shift; |
50 |
return $self->ordinal($num) . ' udgave'; |
return $self->ordinal($num) . ' ' |
51 |
|
. $self->{LANGTEXT}{$self->{LANG}}{edition}; |
52 |
} |
} |
53 |
|
|
54 |
sub technicalreport { |
sub technicalreport { |
55 |
my $self = shift; |
my $self = shift; |
56 |
my $num = shift; |
my $num = shift; |
57 |
my $t = 'teknisk rapport'; |
my $t = $self->{LANGTEXT}{$self->{LANG}}{technicalreport}; |
58 |
if ($num) { |
if ($num) { |
59 |
$t .= ' nr.' . $self->nobreakspace . $num; |
$t .= ' ' . $self->{LANGTEXT}{$self->{LANG}}{numberabbr} |
60 |
|
. $self->nobreakspace . $num; |
61 |
} |
} |
62 |
return $t; |
return $t; |
63 |
} |
} |
66 |
my $self = shift; |
my $self = shift; |
67 |
my ($ch) = @_; |
my ($ch) = @_; |
68 |
|
|
69 |
return 'kapitel' . $self->nobreakspace . $ch; |
return $self->{LANGTEXT}{$self->{LANG}}{chapter} |
70 |
|
. $self->nobreakspace . $ch; |
71 |
} |
} |
72 |
|
|
73 |
sub phdthesis { |
sub phdthesis { |
74 |
return 'ph.d.-afhandling'; |
my $self = shift; |
75 |
|
return $self->{LANGTEXT}{$self->{LANG}}{phdthesis}; |
76 |
} |
} |
77 |
|
|
78 |
sub mastersthesis { |
sub mastersthesis { |
79 |
return 'speciale'; |
my $self = shift; |
80 |
|
return $self->{LANGTEXT}{$self->{LANG}}{mastersthesis}; |
81 |
} |
} |
82 |
|
|
83 |
sub volume { |
sub volume { |
84 |
my $self = shift; |
my $self = shift; |
85 |
my $vol = shift; |
my $vol = shift; |
86 |
my $series = shift; |
my $series = shift; |
87 |
|
my $volword = $self->{LANGTEXT}{$self->{LANG}}{volume}; |
88 |
if (!$series) { |
if (!$series) { |
89 |
return 'bind' . $self->nobreakspace . $vol; |
return $volword . $self->nobreakspace . $vol; |
90 |
} else { |
} else { |
91 |
return 'bind' . $self->nobreakspace . $vol . ' af' |
return $volword . $self->nobreakspace . $vol . $self->{LANGTEXT}{$self->{LANG}}{of} |
92 |
. $self->nobreakspace . $series; |
. $self->nobreakspace . $series; |
93 |
} |
} |
94 |
} |
} |
97 |
my $self = shift; |
my $self = shift; |
98 |
my ($number, $series) = @_; |
my ($number, $series) = @_; |
99 |
|
|
100 |
my $t = 'nummer' . $self->nobreakspace . $number; |
my $t = $self->{LANGTEXT}{$self->{LANG}}{number} . $self->nobreakspace . $number; |
101 |
if ($series) { |
if ($series) { |
102 |
$t .= ' i' . $self->nobreakspace .$series; |
$t .= ' ' . $self->{LANGTEXT}{$self->{LANG}}{in} . $self->nobreakspace .$series; |
103 |
} |
} |
104 |
return $t; |
return $t; |
105 |
} |
} |
108 |
my $self = shift; |
my $self = shift; |
109 |
my ($number) = @_; |
my ($number) = @_; |
110 |
|
|
111 |
unless ($number =~ /^\d+$/) { |
return "[general:ordinal:$number]"; |
|
$self->warning("$number is not numeric"); |
|
|
return $number; |
|
|
} |
|
|
|
|
|
if ($self->{ORDABBR}) { |
|
|
return $number . '.'; |
|
|
} |
|
|
|
|
|
if ($number < 20) { |
|
|
return qw(første anden tredie fjerde femte |
|
|
sjette syvende ottende niende tiende |
|
|
ellevte tolvte trettende fjortende femtende |
|
|
sekstende syttende attende nittende)[$number - 1]; |
|
|
} elsif ($number < 100) { |
|
|
my ($ten, $one) = (int($number / 10), $number % 10); |
|
|
my $res; |
|
|
$res = ('', 'enog', 'toog', 'treog', 'fireog', 'femog', |
|
|
'seksog', 'syvog', 'otteog', 'niog')[$one]; |
|
|
$ten -= 2; |
|
|
return $res . qw(tyvende tredivte fyrretyvende halvtredsindstyvende |
|
|
tresindstyvende halvfjerdsindstyvende firsindstyvende |
|
|
halvfemsindstyvende)[$ten]; |
|
|
} else { |
|
|
warn "I don't know how to say $number"."th in Danish"; |
|
|
return $number . '.'; |
|
|
} |
|
112 |
} |
} |
113 |
|
|
114 |
|
|
119 |
|
|
120 |
Bibulus::general -- fall-back language support |
Bibulus::general -- fall-back language support |
121 |
|
|
|
=head1 SYNOPSIS |
|
|
|
|
|
Bibulus::Lang::da - Bibulus support for Danish |
|
|
|
|
|
=head1 DESCRIPTION |
|
|
|
|
|
=head2 EXPORT |
|
|
|
|
|
None. |
|
|
|
|
122 |
=head1 SEE ALSO |
=head1 SEE ALSO |
123 |
|
|
124 |
F<Bibulus>. |
F<Bibulus>. |