Filename | /var/www/foswikidev/core/lib/Foswiki/I18N/Fallback.pm |
Statements | Executed 369 statements in 801µs |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
59 | 2 | 2 | 277µs | 277µs | maketext | Foswiki::I18N::Fallback::
1 | 1 | 1 | 31µs | 37µs | finish | Foswiki::I18N::Fallback::
1 | 1 | 1 | 15µs | 29µs | BEGIN@7 | Foswiki::I18N::Fallback::
1 | 1 | 1 | 10µs | 15µs | BEGIN@8 | Foswiki::I18N::Fallback::
1 | 1 | 1 | 8µs | 8µs | new | Foswiki::I18N::Fallback::
1 | 1 | 1 | 5µs | 5µs | BEGIN@13 | Foswiki::I18N::Fallback::
1 | 1 | 1 | 4µs | 4µs | BEGIN@10 | Foswiki::I18N::Fallback::
1 | 1 | 1 | 2µs | 2µs | language | 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 | 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 | 28µs | 2 | 42µs | # spent 29µs (15+14) within Foswiki::I18N::Fallback::BEGIN@7 which was called:
# once (15µs+14µs) by Foswiki::I18N::new at line 7 # spent 29µs making 1 call to Foswiki::I18N::Fallback::BEGIN@7
# spent 14µs making 1 call to strict::import |
8 | 2 | 25µs | 2 | 19µs | # spent 15µs (10+4) within Foswiki::I18N::Fallback::BEGIN@8 which was called:
# once (10µs+4µs) by Foswiki::I18N::new at line 8 # spent 15µs making 1 call to Foswiki::I18N::Fallback::BEGIN@8
# spent 4µs making 1 call to warnings::import |
9 | |||||
10 | 2 | 59µs | 1 | 4µs | # spent 4µs within Foswiki::I18N::Fallback::BEGIN@10 which was called:
# once (4µs+0s) by Foswiki::I18N::new at line 10 # spent 4µs making 1 call to Foswiki::I18N::Fallback::BEGIN@10 |
11 | 1 | 8µs | our @ISA = ('Foswiki::I18N'); | ||
12 | |||||
13 | # spent 5µs within Foswiki::I18N::Fallback::BEGIN@13 which was called:
# once (5µs+0s) by Foswiki::I18N::new at line 18 | ||||
14 | 1 | 5µs | if ( $Foswiki::cfg{UseLocale} ) { | ||
15 | require locale; | ||||
16 | import locale(); | ||||
17 | } | ||||
18 | 1 | 285µs | 1 | 5µs | } # spent 5µs making 1 call to Foswiki::I18N::Fallback::BEGIN@13 |
19 | |||||
20 | # spent 8µs within Foswiki::I18N::Fallback::new which was called:
# once (8µs+0s) by Foswiki::I18N::new at line 195 of /var/www/foswikidev/core/lib/Foswiki/I18N.pm | ||||
21 | 1 | 600ns | my $class = shift; | ||
22 | 1 | 6µs | my $this = bless( {}, $class ); | ||
23 | 1 | 6µs | return $this; | ||
24 | } | ||||
25 | |||||
26 | # spent 37µs (31+6) within Foswiki::I18N::Fallback::finish which was called:
# once (31µs+6µs) by Foswiki::finish at line 2488 of /var/www/foswikidev/core/lib/Foswiki.pm | ||||
27 | |||||
28 | # No data, nothing to do. | ||||
29 | # Must call SUPER finish to avoid memory leaks | ||||
30 | 1 | 600ns | my $this = shift; | ||
31 | 1 | 30µs | 1 | 6µs | $this->SUPER::finish(@_); # spent 6µs making 1 call to Foswiki::I18N::finish |
32 | } | ||||
33 | |||||
34 | # spent 277µs within Foswiki::I18N::Fallback::maketext which was called 59 times, avg 5µs/call:
# 57 times (270µs+0s) by Foswiki::MAKETEXT at line 57 of /var/www/foswikidev/core/lib/Foswiki/Macros/MAKETEXT.pm, avg 5µs/call
# 2 times (8µs+0s) by Foswiki::Plugins::SubscribePlugin::_SUBSCRIBE at line 95 of /var/www/foswikidev/core/lib/Foswiki/Plugins/SubscribePlugin.pm, avg 4µs/call | ||||
35 | 59 | 44µs | my ( $this, $text, @args ) = @_; | ||
36 | |||||
37 | 59 | 8µs | return '' unless $text; | ||
38 | |||||
39 | # substitute parameters: | ||||
40 | 59 | 107µs | $text =~ s/\[\_(\d+)\]/$args[$1-1]/ge; | ||
41 | |||||
42 | # unescape escaped square brackets: | ||||
43 | 59 | 20µs | $text =~ s/~(\[|\])/$1/g; | ||
44 | |||||
45 | #plurals: | ||||
46 | $text =~ | ||||
47 | 59 | 23µs | s/\[\*,\_(\d+),([^,]+)(,([^,]+))?\]/_handlePlurals($args[$1-1],$2,$4)/ge; | ||
48 | |||||
49 | 59 | 138µs | return $text; | ||
50 | } | ||||
51 | |||||
52 | sub _handlePlurals { | ||||
53 | my ( $number, $singular, $plural ) = @_; | ||||
54 | |||||
55 | # bad hack, but Locale::Maketext does it the same way ;) | ||||
56 | return | ||||
57 | $number . ' ' | ||||
58 | . ( | ||||
59 | ( $number == 1 ) | ||||
60 | ? $singular | ||||
61 | : ( $plural ? ($plural) : ( $singular . 's' ) ) | ||||
62 | ); | ||||
63 | } | ||||
64 | |||||
65 | # spent 2µs within Foswiki::I18N::Fallback::language which was called:
# once (2µs+0s) by Foswiki::Plugins::JQueryPlugin::UI::init at line 63 of /var/www/foswikidev/core/lib/Foswiki/Plugins/JQueryPlugin/UI.pm | ||||
66 | 1 | 4µs | return 'en'; | ||
67 | } | ||||
68 | |||||
69 | sub enabled_languages { | ||||
70 | my $this = shift; | ||||
71 | return $this->{enabled_languages}; | ||||
72 | } | ||||
73 | |||||
74 | sub fromSiteCharSet { | ||||
75 | my ( $this, $text ) = @_; | ||||
76 | return $text; | ||||
77 | } | ||||
78 | |||||
79 | sub toSiteCharSet { | ||||
80 | my ( $this, $text ) = @_; | ||||
81 | return $text; | ||||
82 | } | ||||
83 | |||||
84 | 1 | 3µs | 1; | ||
85 | __END__ |