fix i18n of javascript re-print/email confirmations, RT#12515
[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   $lh ||= lh();
15   $lh->maketext(@_);
16 }
17
18 # HTML-escaped version of mt()
19 sub emt {
20     encode_entities(mt(@_));
21 }
22
23 # Javascript-escaped version of mt()
24 sub js_mt {
25   my $s = mt(@_);
26   #false laziness w/Mason.pm
27   $s =~ s/(['\\])/\\$1/g;
28   $s =~ s/\r/\\r/g;
29   $s =~ s/\n/\\n/g;
30   $s = "'$s'";
31 }
32
33 sub lh {
34   my $locale =  $FS::CurrentUser::CurrentUser->option('locale')
35              || FS::Conf->new->config('locale')
36              || 'en_US';
37   $locale =~ s/_/-/g;
38   FS::L10N->get_handle($locale) || die "Unknown locale $locale";
39 }
40
41 # XXX pod me
42
43 1;