Filename | /var/www/foswiki11/lib/Foswiki/I18N/Fallback.pm |
Statements | Executed 301 statements in 1.11ms |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
48 | 3 | 3 | 260µs | 260µs | maketext | Foswiki::I18N::Fallback::
1 | 1 | 1 | 33µs | 40µs | finish | Foswiki::I18N::Fallback::
1 | 1 | 1 | 28µs | 55µs | BEGIN@7 | Foswiki::I18N::Fallback::
1 | 1 | 1 | 20µs | 20µs | new | Foswiki::I18N::Fallback::
1 | 1 | 1 | 19µs | 30µs | BEGIN@8 | Foswiki::I18N::Fallback::
1 | 1 | 1 | 7µs | 7µs | BEGIN@10 | Foswiki::I18N::Fallback::
0 | 0 | 0 | 0s | 0s | _handlePlurals | Foswiki::I18N::Fallback::
0 | 0 | 0 | 0s | 0s | enabled_languages | Foswiki::I18N::Fallback::
0 | 0 | 0 | 0s | 0s | fromSiteCharSet | Foswiki::I18N::Fallback::
0 | 0 | 0 | 0s | 0s | language | Foswiki::I18N::Fallback::
0 | 0 | 0 | 0s | 0s | toSiteCharSet | Foswiki::I18N::Fallback::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | # See bottom of file for license and copyright information | ||||
2 | # Foswiki::I18N::Fallback - a fallback class for when | ||||
3 | # Locale::Maketext isn't available. | ||||
4 | |||||
5 | package Foswiki::I18N::Fallback; | ||||
6 | |||||
7 | 2 | 56µs | 2 | 81µs | # spent 55µs (28+26) within Foswiki::I18N::Fallback::BEGIN@7 which was called:
# once (28µs+26µs) by Foswiki::I18N::new at line 7 # spent 55µs making 1 call to Foswiki::I18N::Fallback::BEGIN@7
# spent 26µs making 1 call to strict::import |
8 | 2 | 47µs | 2 | 40µs | # spent 30µs (19+11) within Foswiki::I18N::Fallback::BEGIN@8 which was called:
# once (19µs+11µs) by Foswiki::I18N::new at line 8 # spent 30µs making 1 call to Foswiki::I18N::Fallback::BEGIN@8
# spent 11µs making 1 call to warnings::import |
9 | |||||
10 | 2 | 620µs | 1 | 7µs | # spent 7µs within Foswiki::I18N::Fallback::BEGIN@10 which was called:
# once (7µs+0s) by Foswiki::I18N::new at line 10 # spent 7µs making 1 call to Foswiki::I18N::Fallback::BEGIN@10 |
11 | 1 | 18µs | our @ISA = ('Foswiki::I18N'); | ||
12 | |||||
13 | # spent 20µs within Foswiki::I18N::Fallback::new which was called:
# once (20µs+0s) by Foswiki::I18N::new at line 176 of /var/www/foswiki11/lib/Foswiki/I18N.pm | ||||
14 | 1 | 1µs | my $class = shift; | ||
15 | 1 | 15µs | my $this = bless( {}, $class ); | ||
16 | 1 | 12µs | return $this; | ||
17 | } | ||||
18 | |||||
19 | # spent 40µs (33+7) within Foswiki::I18N::Fallback::finish which was called:
# once (33µs+7µs) by Foswiki::finish at line 2163 of /var/www/foswiki11/lib/Foswiki.pm | ||||
20 | |||||
21 | # No data, nothing to do. | ||||
22 | # Must call SUPER finish to avoid memory leaks | ||||
23 | 1 | 500ns | my $this = shift; | ||
24 | 1 | 28µs | 1 | 7µs | $this->SUPER::finish(@_); # spent 7µs making 1 call to Foswiki::I18N::finish |
25 | } | ||||
26 | |||||
27 | # spent 260µs within Foswiki::I18N::Fallback::maketext which was called 48 times, avg 5µs/call:
# 33 times (173µs+0s) by Foswiki::MAKETEXT at line 50 of /var/www/foswiki11/lib/Foswiki/Macros/MAKETEXT.pm, avg 5µs/call
# 12 times (64µs+0s) by Foswiki::Search::formatResult at line 1195 of /var/www/foswiki11/lib/Foswiki/Search.pm, avg 5µs/call
# 3 times (24µs+0s) by Foswiki::Meta::haveAccess at line 1812 of /var/www/foswiki11/lib/Foswiki/Meta.pm, avg 8µs/call | ||||
28 | 48 | 58µs | my ( $this, $text, @args ) = @_; | ||
29 | |||||
30 | 48 | 9µs | return '' unless $text; | ||
31 | |||||
32 | # substitute parameters: | ||||
33 | 48 | 51µs | $text =~ s/\[\_(\d+)\]/$args[$1-1]/ge; | ||
34 | |||||
35 | # unescape escaped square brackets: | ||||
36 | 48 | 22µs | $text =~ s/~(\[|\])/$1/g; | ||
37 | |||||
38 | #plurals: | ||||
39 | $text =~ | ||||
40 | 48 | 16µs | s/\[\*,\_(\d+),([^,]+)(,([^,]+))?\]/_handlePlurals($args[$1-1],$2,$4)/ge; | ||
41 | |||||
42 | 48 | 151µs | return $text; | ||
43 | } | ||||
44 | |||||
45 | sub _handlePlurals { | ||||
46 | my ( $number, $singular, $plural ) = @_; | ||||
47 | |||||
48 | # bad hack, but Locale::Maketext does it the same way ;) | ||||
49 | return | ||||
50 | $number . ' ' | ||||
51 | . ( | ||||
52 | ( $number == 1 ) | ||||
53 | ? $singular | ||||
54 | : ( $plural ? ($plural) : ( $singular . 's' ) ) | ||||
55 | ); | ||||
56 | } | ||||
57 | |||||
58 | sub language { | ||||
59 | return 'en'; | ||||
60 | } | ||||
61 | |||||
62 | sub enabled_languages { | ||||
63 | my $this = shift; | ||||
64 | return $this->{enabled_languages}; | ||||
65 | } | ||||
66 | |||||
67 | sub fromSiteCharSet { | ||||
68 | my ( $this, $text ) = @_; | ||||
69 | return $text; | ||||
70 | } | ||||
71 | |||||
72 | sub toSiteCharSet { | ||||
73 | my ( $this, $text ) = @_; | ||||
74 | return $text; | ||||
75 | } | ||||
76 | |||||
77 | 1 | 6µs | 1; | ||
78 | __END__ |