per-agent disable_previous_balance, #15863
[freeside.git] / FS / FS / Maketext.pm
1 package FS::Maketext;
2
3 use base qw( Exporter );
4 use FS::CurrentUser;
5 use FS::Conf;
6 use FS::L10N;
7 use HTML::Entities qw( encode_entities );
8
9 our @EXPORT_OK = qw( mt emt js_mt );
10
11 our $lh;
12
13 sub mt {
14   return '' if $_[0] eq '';
15   $lh ||= lh();
16   $lh->maketext(@_);
17 }
18
19 # HTML-escaped version of mt()
20 sub emt {
21     encode_entities(mt(@_));
22 }
23
24 # Javascript-escaped version of mt()
25 sub js_mt {
26   my $s = mt(@_);
27   #false laziness w/Mason.pm
28   $s =~ s/(['\\])/\\$1/g;
29   $s =~ s/\r/\\r/g;
30   $s =~ s/\n/\\n/g;
31   $s = "'$s'";
32 }
33
34 sub lh {
35   my $locale =  $FS::CurrentUser::CurrentUser->option('locale')
36              || FS::Conf->new->config('locale')
37              || 'en_US';
38   $locale =~ s/_/-/g;
39   FS::L10N->get_handle($locale) || die "Unknown locale $locale";
40 }
41
42 # XXX pod me
43
44 1;