X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXM.pm;h=bb6fb597d919e3ea6dff2d784af5c98033b2bc34;hb=2b58ccdf81685a1167a43c38705a0d84b9d8d661;hp=99fd3773f6369ae4c3622854e314f714a4c27992;hpb=f77b59f4fcceb428142461972e94345419cbda28;p=spider.git diff --git a/perl/DXM.pm b/perl/DXM.pm index 99fd3773..bb6fb597 100644 --- a/perl/DXM.pm +++ b/perl/DXM.pm @@ -16,21 +16,56 @@ package DXM; -require Exporter; -@ISA = qw(Exporter); -@EXPORT = qw(msg); +use strict; + +use DXVars; +use DXDebug; -%msgs = ( - l1 => 'Sorry $_[0], you are already logged on on another channel', - l2 => 'Hello $_[0], this is $main::mycall located in $main::myqth', -); +my $localfn = "$main::root/local/Messages"; +my $fn = "$main::root/perl/Messages"; + +use vars qw($VERSION $BRANCH); +$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ ); +$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ ) || 0; +$main::build += $VERSION; +$main::branch += $BRANCH; + +use vars qw(%msgs); sub msg { - my $self = shift; - my $s = $msgs{$self}; - return "unknown message '$self'" if !defined $s; + 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 (); +} - return eval '"'. $s . '"'; +sub init +{ + load(); } - + +1;