+ my $lang = shift;
+ my $m = shift;
+ my $ref = $msgs{$lang};
+ my $s = $ref->{$m} if $ref;
+ if (!$s && $lang ne 'en') {
+ $ref = $msgs{'en'};
+ $s = $ref->{$m};
+ }
+ return "unknown message '$m' in lang '$lang'" if !defined $s;
+ my $ans = eval qq{ "$s" };
+ warn $@ if $@;
+ return $ans;
+}
+
+sub load
+{
+ my $ref = shift;
+ if (-e $localfn) {
+ do $localfn;
+ return ($@) if $@ && ref $ref;
+ confess $@ if $@;
+ return ();
+ }
+ do $fn;
+ return ($@) if $@ && ref $ref;
+ confess $@ if $@;
+ return ();
+}