package DXM;
-require Exporter;
-@ISA = qw(Exporter);
-@EXPORT = qw(msg);
-
-%msgs = (
- addr => 'Address set to: $_[0]',
- anns => 'Announce flag set on $_[0]',
- annu => 'Announce flag unset on $_[0]',
- conother => 'Sorry $_[0] you are connected on another port',
- concluster => 'Sorry $_[0] you are already connected elsewhere on the cluster',
- dxs => 'DX Spots flag set on $_[0]',
- dxu => 'DX Spots flag unset on $_[0]',
- e1 => 'Invalid command',
- e2 => 'Error: $_[0]',
- e3 => '$_[0]: $_[1] not found',
- email => 'E-mail address set to: $_[0]',
- heres => 'Here set on $_[0]',
- hereu => 'Here unset on $_[0]',
- homebbs => 'Home BBS set to: $_[0]',
- homenode => 'Home Node set to: $_[0]',
- l1 => 'Sorry $_[0], you are already logged on on another channel',
- l2 => 'Hello $_[0], this is $main::mycall located in $main::myqth',
- m2 => '$_[0] Information: $_[1]',
- node => '$_[0] set as AK1A style Node',
- nodee1 => 'You cannot use this command whilst your target ($_[0]) is on-line',
- pr => '$_[0] de $main::mycall $main::cldate $main::ztime >',
- prx => '$main::$mycall >',
- talks => 'Talk flag set on $_[0]',
- talku => 'Talk flag unset on $_[0]',
- wwvs => 'WWV flag set on $_[0]',
- wwvu => 'WWV flag unset on $_[0]',
-);
+use strict;
+
+use DXVars;
+use DXDebug;
+
+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;
- return eval qq("$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 ();
}
-
+
+sub init
+{
+ load();
+}
+
+1;