From 8467e0bbd9951b6b2395e832c7f54f78f5fff8cc Mon Sep 17 00:00:00 2001 From: Dirk Koopman Date: Mon, 24 Jan 2022 23:52:17 +0000 Subject: [PATCH] fix users delete? messages, local::pcprot() --- Changes | 5 + cmd/export_users.pl | 5 +- perl/DXChannel.pm | 9 + perl/DXProt.pm | 5 +- perl/DXUser.pm | 496 +++++++++++++++++++++++++------------------- perl/Messages | 234 ++++++++++----------- perl/cluster.pl | 2 - 7 files changed, 417 insertions(+), 339 deletions(-) diff --git a/Changes b/Changes index c3dcd6db..a6e8b294 100644 --- a/Changes +++ b/Changes @@ -1,3 +1,8 @@ +24Jan22======================================================================= +1. Change Local::pcprot() calling conventions to be the same as the rest of + software (see any 'sub handle_nn' function in DXProtHandle.pm. +2. Corrected some interpolations in Messages. +3. Tried to make users file deletes and updates more stable. 22Jan22======================================================================= 1. Refine spot display to retain the ':' and also reduce the likelyhood of of misalignment by using the available space in the 39 characters more diff --git a/cmd/export_users.pl b/cmd/export_users.pl index 62429ffe..c9d7e784 100644 --- a/cmd/export_users.pl +++ b/cmd/export_users.pl @@ -8,14 +8,13 @@ my $line = shift;; return (1, $self->msg('e5')) unless $self->priv >= 9; $line ||= 'user_json'; -my ($fn, $flag) = split /\s+/, $line; +my ($fn) = split /\s+/, $line; unless ($fn && $fn eq 'user_json') { $fn =~ s|[/\.]||g; $fn = "/tmp/$fn"; } -my $strip = $flag && $flag eq 'strip'; -my @out = DXUser::export($fn, $strip); +my @out = DXUser::export($fn); return (1, @out); diff --git a/perl/DXChannel.pm b/perl/DXChannel.pm index c4584ba7..7f4d996a 100644 --- a/perl/DXChannel.pm +++ b/perl/DXChannel.pm @@ -771,6 +771,15 @@ sub error_handler $self->disconnect(1); } +sub refresh_user +{ + my $call = shift; + my $user = shift; + return unless $call && $user && ref $user; + my $self = DXChannel::get($call); + $self->{user} = $user; + return $user; +} sub isregistered { diff --git a/perl/DXProt.pm b/perl/DXProt.pm index e1b1ea45..67dc5663 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -429,14 +429,15 @@ sub normal } } + my $origin = $self->{call}; + if (defined &Local::pcprot) { my $r; - eval { $r = Local::pcprot($self, $pcno, $line, @field); }; + eval { $r = Local::pcprot($self, $pcno, $line, $origin, \@field); }; return if $r; # i.e don't process it } # send it out for processing - my $origin = $self->{call}; no strict 'subs'; my $sub = "handle_$pcno"; diff --git a/perl/DXUser.pm b/perl/DXUser.pm index b5f56c2a..dd35c5e7 100644 --- a/perl/DXUser.pm +++ b/perl/DXUser.pm @@ -20,6 +20,7 @@ use File::Copy; use Data::Structure::Util qw(unbless); use Time::HiRes qw(gettimeofday tv_interval); use IO::File; +use DXChannel; use DXJSON; use strict; @@ -304,6 +305,8 @@ sub put $lru->put($call, $self); my $ref = $self->encode; $dbm->put($call, $ref); + DXChannel::refresh_user($call, $ref); + return $ref; } @@ -369,208 +372,6 @@ sub fields } -# -# export the database to an ascii file -# - -sub export -{ - my $name = shift || 'user_json'; - my $basic_info_only = shift; - - my $fn = $name ne 'user_json' ? $name : "$main::local_data/$name"; # force use of local - - # save old ones - copy $fn, "$fn.keep" unless -e "$fn.keep"; - copy "$fn.ooooo", "$fn.backstop" unless -e "$fn,backstop"; - - move "$fn.oooo", "$fn.ooooo" if -e "$fn.oooo"; - move "$fn.ooo", "$fn.oooo" if -e "$fn.ooo"; - move "$fn.oo", "$fn.ooo" if -e "$fn.oo"; - move "$fn.o", "$fn.oo" if -e "$fn.o"; - move "$fn", "$fn.o" if -e "$fn"; - - - my $ta = [gettimeofday]; - my $count = 0; - my $err = 0; - my $del = 0; - my $spurious = 0; - my $unlocked = 0; - my $old = 0; - my $ancient = 0; - my $nodes = 0; - my $renamed = 0; - - my $fh = new IO::File ">$fn" or return "cannot open $fn ($!)"; - if ($fh) { - my $key = 0; - my $val = undef; - my $action; - my $t = scalar localtime; - print $fh q{#!/usr/bin/perl -# -# The exported userfile for a DXSpider System -# -# Input file: $filename -# Time: $t -# - -package main; - -# search local then perl directories -BEGIN { - umask 002; - - # root of directory tree for this system - $root = "/spider"; - $root = $ENV{'DXSPIDER_ROOT'} if $ENV{'DXSPIDER_ROOT'}; - - unshift @INC, "$root/perl"; # this IS the right way round! - unshift @INC, "$root/local"; - - # try to detect a lockfile (this isn't atomic but - # should do for now - $lockfn = "$root/local_data/cluster.lck"; # lock file name - if (-e $lockfn) { - open(CLLOCK, "$lockfn") or die "Can't open Lockfile ($lockfn) $!"; - my $pid = ; - chomp $pid; - die "Lockfile ($lockfn) and process $pid exists - cluster must be stopped first\n" if kill 0, $pid; - close CLLOCK; - } -} - -use SysVar; -use DXUtil; -use DXUser; -use JSON; -use Time::HiRes qw(gettimeofday tv_interval); -package DXUser; - -our $json = JSON->new->canonical(1); - -my $ta = [gettimeofday]; -our $filename = "$main::local_data/users.v3j"; -my $exists = -e $filename ? "OVERWRITING" : "CREATING"; -print "perl user_json $exists $filename\n"; - -del_file(); -init(2); -%u = (); -my $count = 0; -my $err = 0; -while () { - chomp; - my @f = split /\t/; - my $ref = decode($f[1]); - if ($ref) { - $ref->put(); - $count++; - } else { - print "# Error: $f[0]\t$f[1]\n"; - $err++ - } -} -DXUser::sync(); DXUser::finish(); -my $diff = _diffms($ta); -print "There are $count user records and $err errors in $diff mS\n"; -}; - print $fh "__DATA__\n"; - - for ($action = R_FIRST; !$dbm->seq($key, $val, $action); $action = R_NEXT) { - if (!is_callsign($key) || $key =~ /^0/) { - my $eval = $val; - my $ekey = $key; - $eval =~ s/([\%\x00-\x1f\x7f-\xff])/sprintf("%%%02X", ord($1))/eg; - $ekey =~ s/([\%\x00-\x1f\x7f-\xff])/sprintf("%%%02X", ord($1))/eg; - LogDbg('DXCommand', "Export Error1: invalid call '$key' => '$val'"); - eval {$dbm->del($key)}; - dbg(carp("Export Error1: delete $key => '$val' $@")) if $@; - ++$err; - next; - } - my $ref; - eval {$ref = decode($val); }; - if ($ref) { - my $t = $ref->{lastseen} if exists $ref->{lastseen}; - $t ||= $ref->{lastin} if exists $ref->{lastin}; - $t ||= $ref->{lastoper} if exists $ref->{lastoper}; - $t //= 0; - - if ($ref->is_user) { - if (!$ref->{priv} && $main::systime > $t + $tooold) { - unless (($ref->{lat} && $ref->{long}) || $ref->{qth} || $ref->{name} || $ref->{qra}) { - LogDbg('DXCommand', sprintf("$ref->{call} deleted, empty and too Old at %s", difft($t, ' '))); - ++$del; - ++$old; - eval {$dbm->del($key)}; - dbg(carp("Export Error2: delete '$key' => '$val' $@")) if $@; - next; - } - } - if ($main::systime > $t + $veryold) { - LogDbg('DXCommand', sprintf("$ref->{call} deleted, POSITIVELY ANCIENT at %s", difft($t, ' '))); - ++$del; - ++$ancient; - eval {$dbm->del($key)}; - dbg(carp("Export Error2: delete '$key' => '$val' $@")) if $@; - next; - } - if (exists $ref->{lockout} && $ref->{lockout} == 1 && exists $ref->{priv} && $ref->{priv} == 1) { - LogDbg('DXCommand', "$ref->{call} depriv'd and unlocked"); - $ref->{lockout} = $ref->{priv} = 0; - $ref->put; - ++$unlocked; - } - if ($ref->is_node && $main::systime > $t + $veryold) { - LogDbg('DXCommand', sprintf("NODE $ref->{call} deleted (%s) old", difft($t, ' '))); - ++$del; - ++$nodes; - eval {$dbm->del($key)}; - dbg(carp("Export Error2: delete '$key' => '$val' $@")) if $@; - next; - } - - my $normcall = normalise_call($key); - if ($normcall ne $key) { - # if the normalised call does not exist, create it from the duff call. - my $nref = DXUser::get_current($normcall); - unless ($nref) { - $ref->{call} = $normcall; - $ref->put; - LogDbg('DXCommand', "DXProt: spurious call $key normalises to $normcall renaming $key -> $normcall"); - ++$renamed; - } - LogDbg('DXCommand', "DXProt: spurious call $key (should be $normcall), removing"); - eval {$dbm->del($key)}; - dbg(carp("Export Error1: delete $key => '$val' $@")) if $@; - ++$spurious; - ++$del; - next; - } - } - } else { - LogDbg('DXCommand', "Export Error3: '$key'\t" . carp($val) ."\n$@"); - eval {$dbm->del($key)}; - dbg(carp("Export Error3: delete '$key' => '$val' $@")) if $@; - ++$err; - next; - } - - # only store users that are reasonably active or have useful information - print $fh "$key\t" . encode($ref) . "\n"; - ++$count; - } - } - $fh->close; - - my $diff = _diffms($ta); - my $s = qq{Exported users to $fn - $count Users, $del Deleted ($old empty \& too old, $ancient ancient, $nodes nodes, $spurious spurious), $renamed renamed, $unlocked Unlocked, $err Errors in $diff mS ('sh/log Export' for details)}; - LogDbg('command', $s); - return $s; -} - # # group handling # @@ -896,20 +697,285 @@ sub lastping return $b->{$call}; } -#sub registered -#{ -# my $self = shift; -# my $val; -# if (defined $_[0]) { -# $val = unpad($_[0]); -# $self->{registered} = $val; -# } -# if (exists $self->{registered}) { -# $val = $self->{registered} // 0; -# } -# return $val // 0 ; # to stop undef warnings -#} +# +# export the database to an ascii file +# + +sub export +{ + my $name = shift || 'user_json'; + + my $fn = $name ne 'user_json' ? $name : "$main::local_data/$name"; # force use of local + + # save old ones + copy $fn, "$fn.keep" unless -e "$fn.keep"; + copy "$fn.ooooo", "$fn.backstop" unless -e "$fn,backstop"; + + move "$fn.oooo", "$fn.ooooo" if -e "$fn.oooo"; + move "$fn.ooo", "$fn.oooo" if -e "$fn.ooo"; + move "$fn.oo", "$fn.ooo" if -e "$fn.oo"; + move "$fn.o", "$fn.oo" if -e "$fn.o"; + move "$fn", "$fn.o" if -e "$fn"; + + + my $ta = [gettimeofday]; + my $count = 0; + my $err = 0; + my $del = 0; + my $spurious = 0; + my $unlocked = 0; + my $old = 0; + my $ancient = 0; + my $nodes = 0; + my $renamed = 0; + + my %del; + + my $fh = new IO::File ">$fn" or return "cannot open $fn ($!)"; + if ($fh) { + my $key = 0; + my $val = undef; + my $action; + my $t = scalar localtime; + print $fh export_preamble(); + + + for ($action = R_FIRST; !$dbm->seq($key, $val, $action); $action = R_NEXT) { + if (!is_callsign($key) || $key =~ /^0/) { + my $eval = $val; + my $ekey = $key; + $eval =~ s/([\%\x00-\x1f\x7f-\xff])/sprintf("%%%02X", ord($1))/eg; + $ekey =~ s/([\%\x00-\x1f\x7f-\xff])/sprintf("%%%02X", ord($1))/eg; + LogDbg('DXCommand', "Export Error1: invalid call '$key' => '$val'"); + + $del{$key} = $val; + ++$err; + next; + } + my $ref; + eval {$ref = decode($val); }; + if ($ref) { + my $t = $ref->{lastseen} if exists $ref->{lastseen}; + $t ||= $ref->{lastin} if exists $ref->{lastin}; + $t ||= $ref->{lastoper} if exists $ref->{lastoper}; + $t //= 0; + + if ($ref->is_user) { + if (!$ref->{priv} && $main::systime > $t + $tooold) { + unless (($ref->{lat} && $ref->{long}) || $ref->{qth} || $ref->{name} || $ref->{qra}) { + LogDbg('DXCommand', sprintf("$ref->{call} deleted, empty and too Old at %s", difft($t, ' '))); + ++$del; + ++$old; + $del{$key} = $val; + next; + } + } + if ($main::systime > $t + $veryold) { + LogDbg('DXCommand', sprintf("$ref->{call} deleted, POSITIVELY ANCIENT at %s", difft($t, ' '))); + ++$del; + ++$ancient; + $del{$key} = $val; + next; + } + if (exists $ref->{lockout} && $ref->{lockout} == 1 && exists $ref->{priv} && $ref->{priv} == 1) { + LogDbg('DXCommand', "$ref->{call} depriv'd and unlocked"); + $ref->{lockout} = $ref->{priv} = 0; + $ref->put; + ++$unlocked; + } + if ($ref->is_node && $main::systime > $t + $veryold) { + LogDbg('DXCommand', sprintf("NODE $ref->{call} deleted (%s) old", difft($t, ' '))); + ++$del; + ++$nodes; + $del{$key} = $val; + next; + } + + my $normcall = normalise_call($key); + if ($normcall ne $key) { + # if the normalised call does not exist, create it from the duff call. + my $nref = DXUser::get_current($normcall); + unless ($nref) { + $ref->{call} = $normcall; + $ref->put; + LogDbg('DXCommand', "DXProt: spurious call $key normalises to $normcall renaming $key -> $normcall"); + ++$renamed; + } + LogDbg('DXCommand', "DXProt: spurious call $key (should be $normcall), removing"); + $del{$key} = $val; + ++$spurious; + ++$del; + next; + } + } + } else { + LogDbg('DXCommand', "Export Error3: '$key'\t" . carp($val) ."\n$@"); + $del{$key} = $val; + ++$err; + next; + } + + # only store users that are reasonably active or have useful information + print $fh "$key\t" . encode($ref) . "\n"; + ++$count; + } + } + $fh->close; + + while (my ($k, $v) = each %del) { + eval {$dbm->del($k)}; + LogDbg('DXCommand', "Error deleting key: $k value: $v error: $@") if $@; + } + + my $diff = _diffms($ta); + my $s = qq{Exported users to $fn - $count Users, $del Deleted ($old empty \& too old, $ancient ancient, $nodes nodes, $spurious spurious), $renamed renamed, $unlocked Unlocked, $err Errors in $diff mS ('sh/log Export' for details)}; + LogDbg('command', $s); + return ($s); +} + +sub export_preamble +{ + return q{#!/usr/bin/perl +# +# The exported userfile for a DXSpider System +# +# Input file: $filename +# Time: $t +# + +package main; + +# search local then perl directories +BEGIN { + umask 002; + + # root of directory tree for this system + $root = "/spider"; + $root = $ENV{'DXSPIDER_ROOT'} if $ENV{'DXSPIDER_ROOT'}; + + unshift @INC, "$root/perl"; # this IS the right way round! + unshift @INC, "$root/local"; + + # try to detect a lockfile (this isn't atomic but + # should do for now + $lockfn = "$root/local_data/cluster.lck"; # lock file name + if (-e $lockfn) { + open(CLLOCK, "$lockfn") or die "Can't open Lockfile ($lockfn) $!"; + my $pid = ; + chomp $pid; + die "Lockfile ($lockfn) and process $pid exists - cluster must be stopped first\n" if kill 0, $pid; + close CLLOCK; + } +} + +use SysVar; +use DXUtil; +use DXUser; +use DXChannel; +use JSON; +use Time::HiRes qw(gettimeofday tv_interval); +package DXUser; + +our $json = JSON->new->canonical(1); + +my $ta = [gettimeofday]; +our $filename = "$main::local_data/users.v3j"; +my $exists = -e $filename ? "OVERWRITING" : "CREATING"; +print "perl user_json $exists $filename\n"; + +del_file(); +init(2); +%u = (); +my $count = 0; +my $err = 0; + +while () { + chomp; + my @f = split /\t/; + my $ref = decode($f[1]); + if ($ref) { + $ref->put(); + $count++; + } else { + print "# Error: $f[0]\t$f[1]\n"; + $err++ + } +} +DXUser::sync(); DXUser::finish(); +my $diff = _diffms($ta); +print "There are $count user records and $err errors in $diff mS\n"; + +exit $err ? -1 : 0; + +__DATA__ +}; + +} + +sub recover +{ + my $name = shift || 'recover_json'; + + my $fn = $name ne 'recover_json' ? $name : "$main::local_data/$name"; # force use of local + + # save old ones + move "$fn.oooo", "$fn.ooooo" if -e "$fn.oooo"; + move "$fn.ooo", "$fn.oooo" if -e "$fn.ooo"; + move "$fn.oo", "$fn.ooo" if -e "$fn.oo"; + move "$fn.o", "$fn.oo" if -e "$fn.o"; + move "$fn", "$fn.o" if -e "$fn"; + + my $ta = [gettimeofday]; + my $count = 0; + my $errs = 0; + my $total = 0; + + my $strings = "strings $filename"; + my $ifh = new IO::File "$strings |" or return "cannot open input $filename ($!)"; + my $fh = new IO::File ">$fn" or return "cannot open output $fn ($!)"; + if ($ifh && $fh) { + my $key = 0; + my $val = undef; + my $action; + my $t = scalar localtime; + print $fh export_preamble(); + + my $call; + my $l; + + my $last = ''; + while (defined ($l = $ifh->getline)) { + next unless $l =~ /^{"call":"[-\d\w\/]+"/; + dbg("recover: $l"); + $l =~ s/[^}]+$//; + my $data = $l; + if ($data) { + my $v; + + eval{ $v = decode($data); }; + if ($@) { + ++$errs; + ++$total; + } else { + next if $data eq $last; + print $fh "$v->{call}\t$l\n"; + ++$count; + ++$total; + $last = $l; + } + } + } + } + $fh->close; + $ifh->close; + + my $diff = _diffms($ta); + my $s = qq{Recovered users to $fn - $count Users, $errs errors $total possible records read in $diff mS ('sh/log recover' for details)}; + LogDbg('command', $s); + return ($s); +} + 1; __END__ diff --git a/perl/Messages b/perl/Messages index f3f6b585..c82c4ec5 100644 --- a/perl/Messages +++ b/perl/Messages @@ -23,11 +23,11 @@ package DXM; badnode2 => q{$_[0] is now a good node}, badnode3 => q{List of Bad Nodes:-}, bbse1 => q{Please enter your BBS address,, set/bbs }, - bbs => q{Your BBS Address is now "$_[0]"}, + bbs => q{Your BBS Address is now '$_[0]'}, beepoff => q{Beeps are now off}, beepon => q{Beeps are now on}, believes => q{Believe node $_[0] via $_[1]}, - believeu => q{Don't believe node $_[0] via $_[1]'}, + believeu => q{Don't believe node $_[0] via $_[1]}, buddya => q{$_[0] has been added to your buddies}, buddyu => q{$_[0] has been removed from your buddies}, call1 => q{Callsign lookup via $_[0]:}, @@ -39,7 +39,7 @@ package DXM; conother => q{Sorry $_[0] you are connected to me on another port}, concluster => q{Sorry $_[0] you are already connected elsewhere on the cluster (on $_[1])}, contomany => q{Sorry $_[0] but you are already connected to $_[1] other nodes (on $_[2])}, - conscript => q{no connect script called "$_[0]" found in $main::root/connect}, + conscript => q{no connect script called '$_[0]' found in $main::root/connect}, confail => q{connection to $_[0] failed ($_[1])}, constart => q{connection to $_[0] started}, conbump => q{Reconnected as $_[0] at $_[1], this instance is disconnected}, @@ -90,8 +90,8 @@ package DXM; e12 => q{Need a node callsign}, e13 => q{$_[0] is not a node}, e14 => q{First argument must be numeric and > 0}, - e15 => q{invalid qualifier "$_[0]"}, - e16 => q{File "$_[0]" exists}, + e15 => q{invalid qualifier '$_[0]'}, + e16 => q{File '$_[0]' exists}, e17 => q{Please don't use the words: @_ on here}, e18 => q{Cannot connect to $_[0] ($!)}, e19 => q{Invalid character(s) in line $_[0]}, @@ -120,7 +120,7 @@ package DXM; echooff => q{Echoing disabled}, echow => q{*Echoing is currently disabled, set/echo to enable}, emaile1 => q{Please enter your email address, set/email }, - emaila => q{Your E-Mail Address is now "$_[0]"}, + emaila => q{Your E-Mail Address is now '$_[0]'}, email => q{E-mail address set to: $_[0]}, export1 => q{usage: export }, export2 => q{$_[3] has error exporting msg $_[0] to $_[1] ($_[2])}, @@ -155,7 +155,7 @@ package DXM; homenode2 => q{Home Node}, hnodee1 => q{Please enter your Home Node, set/homenode }, hnodee2 => q{Failed to set homenode on $_[0]}, - hnode => q{Your Homenode is now "$_[0]"}, + hnode => q{Your Homenode is now '$_[0]'}, init1 => q{sent initialisation message to $_[0]}, iso => q{$_[0] Isolated}, isou => q{$_[0] UnIsolated}, @@ -176,9 +176,9 @@ package DXM; lh1 => q{$main::data/hop_table.pl doesn't exist}, local1 => q{Local}, loce1 => q{Please enter your location,, set/location }, - loce2 => q{Cannot recognise "$_[0]" as a Lat/Long (eg 52 20 N 0 16 E)}, + loce2 => q{Cannot recognise '$_[0]' as a Lat/Long (eg 52 20 N 0 16 E)}, loce3 => q{$_[0] is a QRA locator, please use: set/qra $_[0]}, - loc => q{Your Lat/Long is now "$_[0]"}, + loc => q{Your Lat/Long is now '$_[0]'}, location => q{Location}, lockout => q{$_[0] Locked out}, lockoutc => q{$_[0] Created and Locked out}, @@ -227,7 +227,7 @@ package DXM; name1 => q{Name}, namee1 => q{Please enter your name, set/name }, namee2 => q{Can't find user $_[0]!}, - name => q{Your name is now "$_[0]"}, + name => q{Your name is now '$_[0]'}, nodea => q{$_[0] set as AK1A style Node}, nodeac => q{$_[0] created as AK1A style Node}, nodeb => q{$_[0] set as BBS}, @@ -276,14 +276,14 @@ package DXM; pw4 => q{Passwords differ, password NOT changed}, qll => q{Please enter your location with set/location or set/qra}, qthe1 => q{Please enter your QTH, set/qth }, - qth => q{Your QTH is now "$_[0]"}, + qth => q{Your QTH is now '$_[0]'}, qrae1 => q{Please enter your QRA locator, set/qra (eg set/qra JO02LQ)}, qrashe1 => q{Please enter a QRA locator, eg sh/qra JO02LQ or sh/qra JO02LQ IO93NS}, - qrae2 => q{Cannot recognise "$_[0]" as a QRA locator (eg JO02LQ)}, - qra => q{Your QRA Locator is now "$_[0]"}, + qrae2 => q{Cannot recognise '$_[0]' as a QRA locator (eg JO02LQ)}, + qra => q{Your QRA Locator is now '$_[0]'}, rbnusers => qq{RBN User List}, qsl1 => q{Call Manager Times Last Time Seen De}, - rcmdo => q{RCMD "$_[0]" sent to $_[1]}, + rcmdo => q{RCMD '$_[0]' sent to $_[1]}, read1 => q{Sorry, no new messages for you}, read2 => q{Msg $_[0] not found}, read3 => q{Msg $_[0] not available}, @@ -305,7 +305,7 @@ package DXM; sethop2 => q{$_[0] hops set on $_[1]$_[2] for $_[3]'}, sethop3 => q{No hops set for $_[0]'}, showconf => q{Node Callsigns}, - shu => q{"SHU" is not enough! you need to type at least "SHUT" to shutdown the node}, + shu => q{'SHU' is not enough! you need to type at least 'SHUT' to shutdown the node}, shutting => q{$main::mycall shutting down...}, skims => q{RBN/Skimming set to $_[1] for $_[0]}, sloc => q{Cluster lat $_[0] long $_[1], DON'T FORGET TO CHANGE YOUR DXVars.pm}, @@ -376,12 +376,12 @@ package DXM; anns => q{Announce berichten AAN gezet voor $_[0]}, annu => q{Announce berichten UIT gezet voor $_[0]}, bbse1 => q{Geef je home bbs (mailbox),, set/bbs }, - bbs => q{Je home bbs (mailbox) is nu "$_[0]"}, + bbs => q{Je home bbs (mailbox) is nu '$_[0]'}, beepoff => q{De beep staat nu UIT}, beepon => q{De beep staat nu AAN}, conother => q{Sorry $_[0] je bent reeds geconnect op een andere poort}, concluster => q{Sorry $_[0] je bent reeds op een ander cluster geconnect}, - conscript => q{Geen connectscript aangeroepen "$_[0]" gevonden in $main::root/connect}, + conscript => q{Geen connectscript aangeroepen '$_[0]' gevonden in $main::root/connect}, confail => q{Verbinding met $_[0] mislukt ($_[1])}, constart => q{Verbinding met $_[0] gestart}, disc1 => q{Gedisconnect door $_[0]}, @@ -403,17 +403,17 @@ package DXM; e12 => q{Ik heb een node call nodig}, e13 => q{$_[0] is geen node}, emaile1 => q{Geef uw E-mail addres, set/email }, - emaila => q{Uw E-Mail addres is nu "$_[0]"}, + emaila => q{Uw E-Mail addres is nu '$_[0]'}, email => q{E-mail addres gezet op: $_[0]}, helpe1 => q{Help systeem niet beschikbaar, meld dit aan de sysop}, - helpe2 => q{Geen help beschikbaar over "$_[0]"}, + helpe2 => q{Geen help beschikbaar over '$_[0]'}, heres => q{Aanwezigheid AAN gezet voor $_[0]}, heade1 => q{Gebruik gemaakt van de $main::mycall coordinaten, overweeg een set/location of set/qra}, hereu => q{Aanwezigheid UIT gezet voor $_[0]}, homebbs => q{Uw Home mailbox is nu $_[0]}, homenode => q{Uw (Home) DX-Cluster is : $_[0]}, hnodee1 => q{Geef mij uw lokale (home) DX-cluster, set/homenode }, - hnode => q{Uw (home) DX-cluster is nu "$_[0]"}, + hnode => q{Uw (home) DX-cluster is nu '$_[0]'}, iso => q{$_[0] is geisoleerd (Isolated)}, isou => q{$_[0] is niet meer geisoleerd (UnIsolated)}, isoc => q{$_[0] gecreerd en geisoleerd (Isolated)}, @@ -422,8 +422,8 @@ package DXM; lang => q{De taal zijn nu Nederlandse}, lh1 => q{$main::data/hop_table.pl bestaat niet}, loce1 => q{Geef uw coordinaten met, set/location }, - loce2 => q{Herken "$_[0]" niet als Lat/Long (vb 52 20 N 0 16 E)}, - loc => q{Uw Latitude en Longitude zijn nu "$_[0]"}, + loce2 => q{Herken '$_[0]' niet als Lat/Long (vb 52 20 N 0 16 E)}, + loc => q{Uw Latitude en Longitude zijn nu '$_[0]'}, lockout => q{$_[0] heeft geen toegang meer (Locked out)}, lockoutun => q{$_[0] heeft wederom toegang (Unlocked)}, m2 => q{$_[0] Informatie: $_[1]}, @@ -431,7 +431,7 @@ package DXM; msgnew => q{Er is nieuwe post gearriveerd voor u}, namee1 => q{Geef aub uw naam met, set/name }, namee2 => q{Gebruiker $_[0] niet te vinden!}, - name => q{Uw naam is gezet op "$_[0]"}, + name => q{Uw naam is gezet op '$_[0]'}, node => q{$_[0] gezet als een AK1A stijl DX-cluster}, nodeu => q{$_[0] teruggezet naar gebruiker status}, nodec => q{$_[0] gecreeerd als AK1A stijl DX-cluster}, @@ -447,12 +447,12 @@ package DXM; prx => q{$main::mycall >}, qll => q{Geef uw locator met set/location of set/qra}, qthe1 => q{Geef uw woonplaats met, set/qth }, - qth => q{Uw QTH is nu "$_[0]"}, + qth => q{Uw QTH is nu '$_[0]'}, qrae1 => q{Geef uw QRA locator, set/qra (vb set/qra JO33FD)}, qrashe1 => q{Geef uw QRA locator, vbg sh/qra JO33FD of sh/qra JO33FD IO93NS}, - qrae2 => q{Ik herken "$_[0]" niet als een QRA locator (vb JO33FD)}, - qra => q{Uw QRA Locator is nu "$_[0]"}, - rcmdo => q{RCMD "$_[0]" verzonden naar $_[1]}, + qrae2 => q{Ik herken '$_[0]' niet als een QRA locator (vb JO33FD)}, + qra => q{Uw QRA Locator is nu '$_[0]'}, + rcmdo => q{RCMD '$_[0]' verzonden naar $_[1]}, read1 => q{Sorry, geen berichten voor u}, read2 => q{Bericht $_[0] niet gevonden}, read3 => q{Bericht $_[0] niet beschikbaar}, @@ -480,13 +480,13 @@ package DXM; badnode2 => q{Le serveur $_[0] n'est maintenant plus en rejet}, badnode3 => q{Liste des serveurs en rejet :-}, bbse1 => q{Veuillez entrer l'adresse de votre BBS avec : set/bbs }, - bbs => q{Votre BBS est définie comme étant "$_[0]"}, + bbs => q{Votre BBS est définie comme étant '$_[0]'}, beepoff => q{Bips désactivés}, beepon => q{Bips activés}, call1 => q{Recherche de l'indicatif via $_[0]:}, conother => q{Désolé $_[0], vous êtes déjà connecté sur un autre port}, concluster => q{Désolé $_[0], vous êtes déjà connecté ailleurs au cluster (sur $_[1])}, - conscript => q{Pas de script de connexion "$_[0]" dans $main::root/connect !}, + conscript => q{Pas de script de connexion '$_[0]' dans $main::root/connect !}, confail => q{Echec de la connexion avec $_[0] ($_[1])}, constart => q{Etablissement de la connexion avec $_[0]}, deluser => q{L'utilisateur $_[0] a été supprimé}, @@ -507,7 +507,7 @@ package DXM; disc1 => q{Déconnecté par $_[0]}, disc2 => q{Canal $_[0] déconnecté}, disc3 => q{Pas de canal, mais connexion $_[0] terminée}, - disc4 => q{Pas de canal ni de connexion mais "orphelin" $_[0] déconnecté}, + disc4 => q{Pas de canal ni de connexion mais 'orphelin' $_[0] déconnecté}, done => q{Terminé.}, dup => q{Désolé, ceci est un doublon.}, dx1 => q{La fréquence $_[0] est hors bande (voir show/band); syntaxe: DX [BY indicatif] fréquence indicatif remarques}, @@ -533,8 +533,8 @@ package DXM; e12 => q{Il faut spécifier un indicatif de serveur !}, e13 => q{$_[0] n'est pas un serveur}, e14 => q{Le premier argument doit être une valeur numérique > 0}, - e15 => q{Paramètre incorrect : "$_[0]"}, - e16 => q{Le fichier "$_[0]" existe déjà}, + e15 => q{Paramètre incorrect : '$_[0]'}, + e16 => q{Le fichier '$_[0]' existe déjà}, e17 => q{Prière de ne pas utiliser les mots : @_ ici !'}, e18 => q{Connexion impossible avec $_[0] ($!)}, e19 => q{Caractère non valide dans la ligne $_[0]}, @@ -559,7 +559,7 @@ package DXM; echooff => q{Echo désactivé}, echow => q{L'écho est actuellement désactivé (set/echo pour l'activer)}, emaile1 => q{Veuillez entrer votre adresse e-mail avec : set/email }, - emaila => q{Votre adresse e-mail est enregistrée comme étant "$_[0]"}, + emaila => q{Votre adresse e-mail est enregistrée comme étant '$_[0]'}, email => q{Adresse e-mail définie comme étant $_[0]}, export1 => q{Syntaxe: export }, export2 => q{$_[3] rencontre une erreur à l'exportation du message $_[0] vers $_[1] ($_[2])}, @@ -589,7 +589,7 @@ package DXM; homenode2 => q{Utilise}, hnodee1 => q{Veuillez entrer votre serveur cluster usuel (set/homenode )}, hnodee2 => q{Impossible de définir votre serveur usuel comme étant $_[0]}, - hnode => q{Votre serveur cluster usuel est défini comme étant "$_[0]"}, + hnode => q{Votre serveur cluster usuel est défini comme étant '$_[0]'}, init1 => q{Message d'initialisation envoyé à $_[0]}, iso => q{$_[0] isolé}, isou => q{$_[0] n'est plus isolé}, @@ -608,9 +608,9 @@ package DXM; lh1 => q{$main::data/hop_table.pl n'existe pas}, local1 => q{Local}, loce1 => q{Veuillez entrer vos coordonnées avec : set/location }, - loce2 => q{"$_[0]" n'est visiblement pas une latitude/longitude (ex: 46 20 N 6 12 E)}, + loce2 => q{'$_[0]' n'est visiblement pas une latitude/longitude (ex: 46 20 N 6 12 E)}, loce3 => q{$_[0] est un QTH locator, veuillez utiliser : set/qra $_[0]}, - loc => q{Votre latitude/longitude est enregistrée comme étant "$_[0]"}, + loc => q{Votre latitude/longitude est enregistrée comme étant '$_[0]'}, location => q{Coordonnées}, lockout => q{$_[0] exclus}, lockoutc => q{$_[0] créé et exclus}, @@ -650,7 +650,7 @@ package DXM; name1 => q{Nom}, namee1 => q{Veuillez entrer votre nom avec : set/name }, namee2 => q{Utilisateur $_[0] introuvable.}, - name => q{Votre nom est enregistré comme étant "$_[0]"}, + name => q{Votre nom est enregistré comme étant '$_[0]'}, nodea => q{$_[0] défini comme serveur de type AK1A}, nodeac => q{$_[0] créé comme serveur de type AK1A}, nodeb => q{$_[0] défini comme BBS}, @@ -684,7 +684,7 @@ package DXM; pinge1 => q{Vous ne pouvez pas vous pinger vous-même !}, pingint => q{Intervalle de ping vers $_[0] fixé à $_[1] secondes}, 'pos' => q{Indicatif source : latitude $_[0] : longitude $_[1] : $_[2]}, - prs => q{Prompt défini comme étant "$_[0]"}, + prs => q{Prompt défini comme étant '$_[0]'}, pru => q{Prompt remis à sa valeur par défaut}, priv => q{Niveau de privilège changé en $_[0]}, prx => q{$main::mycall >}, @@ -695,13 +695,13 @@ package DXM; pw4 => q{Les mots de passe sont différents, changement PAS effectué}, qll => q{Veuillez entrer votre emplacement avec set/location ou set/qra}, qthe1 => q{Veuillez entrer votre QTH, set/qth }, - qth => q{Votre QTH est enregistré comme étant "$_[0]"}, + qth => q{Votre QTH est enregistré comme étant '$_[0]'}, qrae1 => q{Veuillez entrer votre QRA locator, set/qra (exemple : set/qra JN36BE)}, qrashe1 => q{Veuillez entrer un QRA locator, par exemple: sh/qra JN36BE or sh/qra JN36BE JO31NS}, - qrae2 => q{"$_[0]" n'est pas un QRA locator (exemple: JN36BE)}, - qra => q{Votre QRA Locator est enregistré comme étant "$_[0]"}, + qrae2 => q{'$_[0]' n'est pas un QRA locator (exemple: JN36BE)}, + qra => q{Votre QRA Locator est enregistré comme étant '$_[0]'}, qsl1 => q{Indicatif Manager Fois Dernière annonce Par}, - rcmdo => q{RCMD "$_[0]" envoyé à $_[1]}, + rcmdo => q{RCMD '$_[0]' envoyé à $_[1]}, read1 => q{Désolé, pas de nouveaux messages pour vous.}, read2 => q{Message $_[0] introuvable}, read3 => q{Message $_[0] non disponible}, @@ -723,7 +723,7 @@ package DXM; sethop2 => q{$_[0] hops définis pour $_[1]$_[2] vers $_[3]'}, sethop3 => q{Pas de nombre de hops défini vers $_[0]'}, showconf => q{Serveur Utilisateurs}, - shu => q{"SHU" ne suffit pas. Vous devez taper au moins "SHUT" pour arrêter le serveur !}, + shu => q{'SHU' ne suffit pas. Vous devez taper au moins 'SHUT' pour arrêter le serveur !}, shutting => q{$main::mycall en cours d'arrêt...}, sloc => q{Latitude du serveur $_[0], longitude $_[1]. N'OUBLIEZ PAS D'ADAPTER VOTRE DXVars.pm}, snode1 => q{Serveur Type Version}, @@ -794,7 +794,7 @@ package DXM; badnode2 => q{Se aceptan spots del nodo $_[0], sale de la lista badnode}, badnode3 => q{Lista de nodos rechazados:}, bbse1 => q{Por favor introduce tu BBS, set/bbs }, - bbs => q{Tu BBS es ahora "$_[0]"}, + bbs => q{Tu BBS es ahora '$_[0]'}, beepoff => q{Avisos sonoros desactivados}, beepon => q{Avisos sonoros activados}, believes => q{Creo en el nodo $_[0] via $_[1]}, @@ -808,7 +808,7 @@ package DXM; chattoomany => q{Operación no permitida, actualmente estas en el canal $_[1], usa /chat $_[0]}, conother => q{Lo siento $_[0] ya estás conectado en otro puerto}, concluster => q{Lo siento $_[0] ya estás conectado en otro cluster}, - conscript => q{No hay ningún script que se llame "$_[0]" en $main::root/connect}, + conscript => q{No hay ningún script que se llame '$_[0]' en $main::root/connect}, confail => q{La conexión con $_[0] ha fallado ($_[1])}, constart => q{Se inicia la conexión a $_[0]}, conbump => q{Reconectado como $_[0] en $_[1], Esta sesión termina y se te desconecta}, @@ -856,8 +856,8 @@ package DXM; e12 => q{Se necesita el indicativo del nodo}, e13 => q{$_[0] no es un nodo}, e14 => q{El primer argumento debe de ser numérico y > 0}, - e15 => q{calificador no válido "$_[0]"}, - e16 => q{El fichero "$_[0]" ya existe}, + e15 => q{calificador no válido '$_[0]'}, + e16 => q{El fichero '$_[0]' ya existe}, e17 => q{Por favor no uses la palabra: @_ aquí}, e18 => q{No se puede conectar con $_[0] ($!)}, e19 => q{Carácter no válido en la línea $_[0]}, @@ -883,7 +883,7 @@ package DXM; echooff => q{Eco local desactivado}, echow => q{*Eco local desactivado, set/echo para activarlo}, emaile1 => q{Por favor introduce tu E-mail, set/email }, - emaila => q{Tu dirección E-mail es ahora "$_[0]"}, + emaila => q{Tu dirección E-mail es ahora '$_[0]'}, email => q{La dirección E-mail es ahora: $_[0]}, export1 => q{uso: export }, export2 => q{$_[3] hubo un error exportando mensaje $_[0] a $_[1] ($_[2])}, @@ -914,12 +914,12 @@ package DXM; homenode => q{Tu cluster habitual es ahora: $_[0]}, hnodee1 => q{Por favor introduce tu cluster habitual, set/homenode }, hnodee2 => q{Error al definir homenode en $_[0]}, - hnode => q{Tu nodo habitual es ahora "$_[0]"}, + hnode => q{Tu nodo habitual es ahora '$_[0]'}, init1 => q{Enviado mensaje de inicialización a $_[0]}, iso => q{El cluster $_[0] se pone en modo pasivo (Aislado)}, isou => q{El cluster $_[0] se pone en modo activo}, isoc => q{$_[0] creado y definido como pasivo (Aislado)}, - isoari => q{Existe un filtro de rutas "input" para $_[0]; clear/route input $_[0] primero}, + isoari => q{Existe un filtro de rutas 'input' para $_[0]; clear/route input $_[0] primero}, isoaro => q{Existe un filtro de rutas para $_[0]; clear/route $_[0] primero', }, isow => q{$_[0] está en modo aislado; unset/isolate $_[0] primero}, join => q{Entras en el grupo $_[0]}, @@ -933,9 +933,9 @@ package DXM; lh1 => q{$main::data/hop_table.pl no existe}, local1 => q{Local}, loce1 => q{Por favor introduce tu posición, set/location }, - loce2 => q{No se reconoce "$_[0]" como una Lat/Long (ej: 52 20 N 0 16E)}, + loce2 => q{No se reconoce '$_[0]' como una Lat/Long (ej: 52 20 N 0 16E)}, loce3 => q{$_[0] es un QRA locator, por favor usa: set/qra $_[0]}, - loc => q{Tu Lat/Long es ahora "$_[0]"}, + loc => q{Tu Lat/Long es ahora '$_[0]'}, location => q{Location}, lockout => q{$_[0] Excluido del sistema}, lockoutc => q{$_[0] Creado y excluido del sistema}, @@ -981,7 +981,7 @@ package DXM; name1 => q{Nombre}, namee1 => q{Por favor, introduce tu nombre con set/name }, namee2 => q{No se encuentra el usuario $_[0]!}, - name => q{Tu nombre es "$_[0]"}, + name => q{Tu nombre es '$_[0]'}, nodea => q{$_[0] definido como nodo AK1A }, nodeac => q{$_[0] creado como nodo AK1A }, nodeb => q{$_[0] definido como BBS}, @@ -1026,13 +1026,13 @@ package DXM; pw4 => q{Los passwords no coinciden, NO se han cambiado}, qll => q{Por favor introduce tu locator con set/location o set/qra}, qthe1 => q{Por favor introduce tu QTH, set/qth }, - qth => q{Tu QTH es ahora "$_[0]"}, + qth => q{Tu QTH es ahora '$_[0]'}, qrae1 => q{Por favor introduce tu QRA locator, set/qra (ej: set/qra JO02LQ)}, qrashe1 => q{Por favor introduce un QRA locator, ej sh/qra JO02LQ o sh/qra JO02LQ IO93NS}, - qrae2 => q{No se reconoce "$_[0]" como un QRA locator ( ej JO02LQ)}, - qra => q{Tu QRA Locator es ahora "$_[0]"}, + qrae2 => q{No se reconoce '$_[0]' como un QRA locator ( ej JO02LQ)}, + qra => q{Tu QRA Locator es ahora '$_[0]'}, qsl1 => q{Indicativo Manager Nº veces Último Spot De}, - rcmdo => q{RCMD "$_[0]" enviado a $_[1]}, + rcmdo => q{RCMD '$_[0]' enviado a $_[1]}, read1 => q{Lo siento, no hay mensajes nuevos para ti}, read2 => q{Mensaje $_[0] no encontrado}, read3 => q{Mensaje $_[0] no disponible}, @@ -1054,7 +1054,7 @@ package DXM; sethop2 => q{$_[0] hops set on $_[1]$_[2] para $_[3]}, sethop3 => q{No hay hops definidos para $_[0]}, showconf => q{Nodo Indicativos}, - shu => q{"SHU" No es suficiente! Es necesario como mínimo escribir "SHUT" para apagar el cluster}, + shu => q{'SHU' No es suficiente! Es necesario como mínimo escribir 'SHUT' para apagar el cluster}, shutting => q{$main::mycall shutting down...}, sloc => q{Cluster lat $_[0] long $_[1], NO OLVIDES CAMBIAR TU DXVars.pm}, snode1 => q{Nodo Call Sort Versión}, @@ -1129,13 +1129,13 @@ package DXM; badnode2 => q{$_[0] ist nun ein good node}, badnode3 => q{Liste der Bad Nodes:-}, bbse1 => q{Bitte die BBS Adresse eingeben,, set/bbs }, - bbs => q{Deine BBS Adresse ist nun "$_[0]"}, + bbs => q{Deine BBS Adresse ist nun '$_[0]'}, beepoff => q{Beeps sind nun aus}, beepon => q{Beeps sind jetzt eingeschaltet}, call1 => q{Callsign lookup via $_[0]:}, conother => q{Sorry $_[0] Du bist zu diesem Cluster auf einem anderen Port connected}, concluster => q{Sorry $_[0] Du bist schon anderswo mit einem Cluster verbunden (on $_[1])}, - conscript => q{Kein connect script mit Namen "$_[0]" gefunden in $main::root/connect}, + conscript => q{Kein connect script mit Namen '$_[0]' gefunden in $main::root/connect}, confail => q{Verbindungsaufbau zu $_[0] misslungen ($_[1])}, constart => q{Verbindungsaufbau zu $_[0] gestartet}, deluser => q{User $_[0] wurde geloescht}, @@ -1182,8 +1182,8 @@ package DXM; e12 => q{Brauche ein Node Rufzeichen}, e13 => q{$_[0] ist kein Node}, e14 => q{Erstes Argument muss eine Zahl und > 0 sein}, - e15 => q{Unguelitges Abfragekriterium "$_[0]"}, - e16 => q{Datei "$_[0]" existiert}, + e15 => q{Unguelitges Abfragekriterium '$_[0]'}, + e16 => q{Datei '$_[0]' existiert}, e17 => q{Bitte gebrauche dieses Wort: @_ nicht hier}, e18 => q{Kann nicht verbinden mit $_[0] ($!)}, e19 => q{Ungueltiger Character in der Zeile $_[0]}, @@ -1207,7 +1207,7 @@ package DXM; echooff => q{Echo disabled}, echow => q{*Echo ist momentan disabled, set/echo zum aktivieren}, emaile1 => q{Bitte E-Mail Addresse eingeben, set/email }, - emaila => q{Deine E-Mail Adresse ist nun "$_[0]"}, + emaila => q{Deine E-Mail Adresse ist nun '$_[0]'}, email => q{E-mail Adresse gesetzt auf: $_[0]}, export1 => q{Gebrauch: export }, export2 => q{$_[3] has error exporting msg $_[0]to $_[1] ($_[2])}, @@ -1235,7 +1235,7 @@ package DXM; homenode => q{Heimat-Node gesetzt auf: $_[0]}, hnodee1 => q{Bitte Heimat-Node eingeben, set/homenode }, hnodee2 => q{Heimat-Node setzen ist misslungen $_[0]}, - hnode => q{Dein Heimat-Node ist nun "$_[0]"}, + hnode => q{Dein Heimat-Node ist nun '$_[0]'}, init1 => q{Initialisierungs-Nachricht gesendet an $_[0]}, iso => q{$_[0] Isoliert}, isou => q{$_[0] UnIsoliert}, @@ -1251,9 +1251,9 @@ package DXM; lange2 => q{Fehler beim Setzen der Sprache auf $_[0]}, lh1 => q{$main::data/hop_table.pl existiert nicht}, loce1 => q{Bitte Deinen Standort eingeben, set/location }, - loce2 => q{Nicht anerkannt "$_[0]" als Lat/Long (z.B. 52 20 N 0 16 E)}, + loce2 => q{Nicht anerkannt '$_[0]' als Lat/Long (z.B. 52 20 N 0 16 E)}, loce3 => q{$_[0] ist ein QRA Locator, Gebrauch: set/qra $_[0]}, - loc => q{Dein Lat/Long ist nun "$_[0]"}, + loc => q{Dein Lat/Long ist nun '$_[0]'}, lockout => q{$_[0] ausgesperrt}, lockoutc => q{$_[0] erstellt und ausgesperrt}, lockoutun => q{$_[0] Aussperrung aufgehoben}, @@ -1291,7 +1291,7 @@ package DXM; mone => q{Ueberwachung Enabled}, namee1 => q{Bitte Deinen Namen eingeben, set/name }, namee2 => q{Kann User $_[0] nicht finden!}, - name => q{Dein Name ist jetzt "$_[0]"}, + name => q{Dein Name ist jetzt '$_[0]'}, nodea => q{$_[0] gesetzt als AK1A style Node}, nodeac => q{$_[0] erstellt als AK1A style Node}, nodeb => q{$_[0] gesetzt als BBS}, @@ -1321,7 +1321,7 @@ package DXM; pinge1 => q{Du kannst Dich nicht selber pingen!}, pingint => q{Ping-Intervall zu $_[0] gesetzt auf $_[1] Sekunden}, 'pos' => q{Von Rufzeichen: $_[0] Breite: $_[1] Laenge: $_[2]}, - prs => q{Prompt gesetzt auf "$_[0]"}, + prs => q{Prompt gesetzt auf '$_[0]'}, pru => q{Prompt jetzt zurueckgesetzt auf Default-Einstellung}, priv => q{Priviligierten Level geaendert auf $_[0]}, prx => q{$main::mycall >}, @@ -1332,12 +1332,12 @@ package DXM; pw4 => q{Passwoerter differieren, Passwort NICHT geaendert}, qll => q{Bitte gib Deinen Standort als geograph. Koordinaten mit set/location oder als Maidenhead-Kenner mit set/qra ein}, qthe1 => q{Bitte gib Dein QTH ein mit set/qth }, - qth => q{Dein QTH ist nun "$_[0]"}, + qth => q{Dein QTH ist nun '$_[0]'}, qrae1 => q{Bitte gib Deinen QRA Locator ein mit set/qra (z.B. set/qra JO44RK)}, qrashe1 => q{Bitte einen QRA Locator eingeben, z.B. sh/qra JO02LQ oder sh/qra JO02LQ IO93NS}, - qrae2 => q{Erkenne nicht "$_[0]" als einen QRA Locator (z.B. JO02LQ)}, - qra => q{Dein QRA Locator ist nun "$_[0]"}, - rcmdo => q{RCMD "$_[0]" gesendet an $_[1]}, + qrae2 => q{Erkenne nicht '$_[0]' als einen QRA Locator (z.B. JO02LQ)}, + qra => q{Dein QRA Locator ist nun '$_[0]'}, + rcmdo => q{RCMD '$_[0]' gesendet an $_[1]}, read1 => q{Sorry, keine neuen Nachrichten fuer Dich}, read2 => q{Msg $_[0] nicht gefunden}, read3 => q{Msg $_[0] nicht verfuegbar}, @@ -1357,7 +1357,7 @@ package DXM; sethop1 => q{Gebrauch: set/hops ann|spots|wwv|wcy }, sethop2 => q{$_[0] hops gesetzt auf $_[1]$_[2] fuer $_[3]}, sethop3 => q{Keine hops gesetzt fuer $_[0]}, - shu => q{"SHU" genuegt nicht! Du musst mindestens "SHUT" eingeben, um den Node herunterzufahren}, + shu => q{'SHU' genuegt nicht! Du musst mindestens 'SHUT' eingeben, um den Node herunterzufahren}, shutting => q{$main::mycall shutting down...}, sloc => q{Cluster lat $_[0] long $_[1], Nicht vergessen die DXVars.pm zu aendern}, snode1 => q{Node Call Sort Version}, @@ -1408,13 +1408,13 @@ package DXM; badnode2 => q{$_[0] e' un nodo attivo}, badnode3 => q{Lista dei nodi disabilitati:-}, bbse1 => q{Per favore inserisci l'indirizzo del tuo BBS con set/bbs }, - bbs => q{Il tuo BBS e' ora "$_[0]"}, + bbs => q{Il tuo BBS e' ora '$_[0]'}, beepoff => q{I beep sono disattivati}, beepon => q{I beep sono attivati}, call1 => q{Ricerca del nominativo via $_[0]:}, conother => q{Spiacente $_[0] sei connesso già su un'altra porta}, concluster => q{Spiacente $_[0] sei connesso già alla rete cluster (su $_[1])}, - conscript => q{nessuno script di connessione chiamato "$_[0]" trovato in $main::root/connect}, + conscript => q{nessuno script di connessione chiamato '$_[0]' trovato in $main::root/connect}, confail => q{connessione a $_[0] fallita ($_[1])}, constart => q{connessione a $_[0] iniziata}, deluser => q{L'utente $_[0] e' stato eliminato}, @@ -1456,8 +1456,8 @@ package DXM; e12 => q{Inserire il nominativo di un nodo}, e13 => q{$_[0] non e' un nodo}, e14 => q{Il primo argomento deve essere numerico e > 0}, - e15 => q{qualificatore non valido "$_[0]"}, - e16 => q{Il file "$_[0]" esiste}, + e15 => q{qualificatore non valido '$_[0]'}, + e16 => q{Il file '$_[0]' esiste}, e17 => q{Non usare le parole: @_ qui'}, e18 => q{Impossibile connettere $_[0] ($!)}, e19 => q{Carattere non valido nella linea $_[0]}, @@ -1476,7 +1476,7 @@ package DXM; echooff => q{Echo disabilitato}, echow => q{*Echo e' al momento disabilitato, usa set/echo per abilitarlo}, emaile1 => q{Per favore inserisci il tuo indirizzo email con: set/email }, - emaila => q{Il tuo indirizzo email e' ora "$_[0]"}, + emaila => q{Il tuo indirizzo email e' ora '$_[0]'}, email => q{Indirizzo email impostato a: $_[0]}, export1 => q{sintassi: export }, export2 => q{$_[3] ha problemi esportando i messaggi da $_[0] a $_[1] ($_[2])}, @@ -1504,7 +1504,7 @@ package DXM; homenode => q{Home Node impostato a: $_[0]}, hnodee1 => q{Per piacere imposta il tuo Home Node con set/homenode }, hnodee2 => q{Impostazione dell'homenode fallita per $_[0]}, - hnode => q{Il tuo Homenode e' adesso "$_[0]"}, + hnode => q{Il tuo Homenode e' adesso '$_[0]'}, init1 => q{inizializzaione inviata a $_[0]}, iso => q{$_[0] Isolato}, isou => q{$_[0] non Isolato}, @@ -1519,9 +1519,9 @@ package DXM; lange2 => q{impostazione lingua fallita per $_[0]'}, lh1 => q{$main::data/hop_table.pl non esiste}, loce1 => q{Per piacere inserisci la tua posizione, set/location }, - loce2 => q{Non riconosco "$_[0]" come Lat/Long (es 52 20 N 0 16 E)}, + loce2 => q{Non riconosco '$_[0]' come Lat/Long (es 52 20 N 0 16 E)}, loce3 => q{$_[0] e' una locatore QRA, usa: set/qra $_[0]}, - loc => q{I tuoi dati Lat/Long sono ora "$_[0]"}, + loc => q{I tuoi dati Lat/Long sono ora '$_[0]'}, lockout => q{$_[0] Bloccato}, lockoutc => q{$_[0] Creato e bloccato}, lockoutun => q{$_[0] Sbloccato}, @@ -1558,7 +1558,7 @@ package DXM; mone => q{Monitor abilitato}, namee1 => q{Per favore inserisci con set/name }, namee2 => q{Impossibile trovare l'utente $_[0]!}, - name => q{Il tuo nome ora e' "$_[0]"}, + name => q{Il tuo nome ora e' '$_[0]'}, nodea => q{$_[0] impostato come nodo stile AK1A}, nodeac => q{$_[0] creato come nodo stile AK1A}, nodeb => q{$_[0] impostato come BBS}, @@ -1589,7 +1589,7 @@ package DXM; pingint => q{Intervallo di ping per $_[0] impostato a $_[1] secondi}, 'pos' => q{Dal nominativo: $_[0] Lat: $_[1] Long: $_[2]}, priv => q{Privilegi cambiati per $_[0]}, - prs => q{Prompt impostato a "$_[0]"}, + prs => q{Prompt impostato a '$_[0]'}, pru => q{Prompt reimpostato al predefinito}, prx => q{$main::mycall >}, pw0 => q{Inserisci la vecchia password: }, @@ -1599,12 +1599,12 @@ package DXM; pw4 => q{Le password sono differenti, password NON cambiata}, qll => q{Per favore inserisci la tua località con set/location o set/qra}, qthe1 => q{Per favore inserisci il tuo QTH con set/qth }, - qth => q{Il tuo QTH e' adesso "$_[0]"}, + qth => q{Il tuo QTH e' adesso '$_[0]'}, qrae1 => q{Per favore inserisci il tuo locatore QRA con set/qra (es set/qra JM77GF)}, qrashe1 => q{Please enter a QRA locator, eg sh/qra JO02LQ or sh/qra JO02LQ IO93NS}, - qrae2 => q{Non riconosco "$_[0]" come locatore QRA (es JM77GF)}, - qra => q{Il tuo locatore QRA e' adesso "$_[0]"}, - rcmdo => q{RCMD "$_[0]" spedito a $_[1]}, + qrae2 => q{Non riconosco '$_[0]' come locatore QRA (es JM77GF)}, + qra => q{Il tuo locatore QRA e' adesso '$_[0]'}, + rcmdo => q{RCMD '$_[0]' spedito a $_[1]}, rec => q{$_[0] records}, read1 => q{Spiacente, non ci sono nuovi messaggi per te}, read2 => q{Messaggio $_[0] non trovato}, @@ -1680,13 +1680,13 @@ package DXM; badnode2 => q{$_[0] je nyni bezvadny nod}, badnode3 => q{Seznam zavadnych nodu:-}, bbse1 => q{Prosim zadej svou BBS adresu, set/bbs }, - bbs => q{Tva BBS adresa je nyni "$_[0]"}, + bbs => q{Tva BBS adresa je nyni '$_[0]'}, beepoff => q{Zvuky jsou nyni vypnuty}, beepon => q{Zvuky jsou nyni zapnuty}, call1 => q{Vyhledani znacky pres $_[0]:}, conother => q{Lituji $_[0], jses na me napojen na jinem portu}, concluster => q{Lituji $_[0], jses uz napojen nekde jinde na clusteru (na $_[1])}, - conscript => q{nebyl spusten connect skript "$_[0]" nalezen v $main::root/connect}, + conscript => q{nebyl spusten connect skript '$_[0]' nalezen v $main::root/connect}, confail => q{pripojeni na $_[0] selhalo ($_[1])}, constart => q{pripojeni na $_[0] bylo zahajeno}, deluser => q{Uzivatel $_[0] byl smazan}, @@ -1728,8 +1728,8 @@ package DXM; e12 => q{Potrebuji znacku nodu}, e13 => q{$_[0] neni nod}, e14 => q{Prvni argument musi byt cislo vetsi nez 0}, - e15 => q{neplatny parametr "$_[0]"}, - e16 => q{Soubor "$_[0]" uz existuje}, + e15 => q{neplatny parametr '$_[0]'}, + e16 => q{Soubor '$_[0]' uz existuje}, e17 => q{Prosim nepouzivej zde toto slovo: @_'}, e18 => q{Nemohu se pripojit na $_[0] ($!)}, e19 => q{neplatny znak v radku $_[0]}, @@ -1752,7 +1752,7 @@ package DXM; echooff => q{Echo zakazano}, echow => q{*Echo je momentalne zakazano, pouzij set/echo k povoleni}, emaile1 => q{Prosim zadej svou e-mailovou adresu, set/email }, - emaila => q{Tva e-mailova adresa je nyni "$_[0]"}, + emaila => q{Tva e-mailova adresa je nyni '$_[0]'}, email => q{E-mailova adresa je nastavena na: $_[0]}, export1 => q{pouziti: export }, export2 => q{$_[3] hlasi chyby pri exportu zpravy $_[0] do $_[1] ($_[2])}, @@ -1780,7 +1780,7 @@ package DXM; homenode => q{Domaci DXC nod je nastaven na: $_[0]}, hnodee1 => q{Prosim zadej svuj domaci DXC nod, set/homenode }, hnodee2 => q{Nastaveni domaciho nodu na $_[0] selhalo}, - hnode => q{Tvuj domaci nod je nyni "$_[0]"}, + hnode => q{Tvuj domaci nod je nyni '$_[0]'}, init1 => q{vyslana inicializacni zprava do $_[0]}, iso => q{$_[0] izolovan}, isou => q{$_[0] neni izolovan}, @@ -1795,9 +1795,9 @@ package DXM; lange2 => q{selhalo nastaveni jazyka na $_[0]'}, lh1 => q{$main::data/hop_table.pl neexistuje}, loce1 => q{Prosim zadej svou polohu, set/location }, - loce2 => q{Nemohu rozpoznat "$_[0]" jako sirka/delka (napr 52 20 N 0 16 E)}, + loce2 => q{Nemohu rozpoznat '$_[0]' jako sirka/delka (napr 52 20 N 0 16 E)}, loce3 => q{$_[0] je QRA lokator, prosim pouzij: set/qra $_[0]}, - loc => q{Tva poloha (sirka/delka) je nyni "$_[0]"}, + loc => q{Tva poloha (sirka/delka) je nyni '$_[0]'}, lockout => q{$_[0] zamknuto}, lockoutc => q{$_[0] vytvoreno a zamknuto}, lockoutun => q{$_[0] Odemceno}, @@ -1835,7 +1835,7 @@ package DXM; mone => q{Monitoring je povolen}, namee1 => q{Prosim zadej sve jmeno, set/name }, namee2 => q{Nemohu najit uzivatele $_[0]!}, - name => q{Tve jmeno je nyni "$_[0]"}, + name => q{Tve jmeno je nyni '$_[0]'}, nodea => q{$_[0] nastaven jako nod typu AK1A}, nodeac => q{$_[0] vytvoren jako nod typu AK1A}, nodeb => q{$_[0] nastaven jako BBS}, @@ -1870,7 +1870,7 @@ package DXM; pingint => q{Ping interval na $_[0] byl nastaven na $_[1] sekundy}, 'pos' => q{Od znacky: $_[0] Sirka: $_[1] Delka: $_[2]}, pr2 => q{($_[0]) de $main::mycall $_[1] $_[2] >}, - prs => q{Prompt byl nastaven na "$_[0]"}, + prs => q{Prompt byl nastaven na '$_[0]'}, pru => q{Prompt byl vracen na default}, priv => q{Uroven prav byla zmenena na $_[0]}, prx => q{$main::mycall >}, @@ -1881,12 +1881,12 @@ package DXM; pw4 => q{Hesla se lisi, heslo NEBYLO zmeneno}, qll => q{Prpsim zadej svou polohu s pomoci set/location nebo set/qra}, qthe1 => q{Prosim zadej sve QTH, set/qth }, - qth => q{Tve QTH je nyni "$_[0]"}, + qth => q{Tve QTH je nyni '$_[0]'}, qrae1 => q{Prosim zadej svuj QRA lokator, set/qra (napr set/qra JN79FM)}, qrashe1 => q{Prosim zadej QRA locator, napr sh/qra JN79FM nebo sh/qra JN79FM JN63GV}, - qrae2 => q{Nerozpoznal jsem "$_[0]" jako QRA lokator (napr JN79FM)}, - qra => q{Tvuj QRA lokator je nyni "$_[0]"}, - rcmdo => q{RCMD "$_[0]" bylo zaslano do $_[1]}, + qrae2 => q{Nerozpoznal jsem '$_[0]' jako QRA lokator (napr JN79FM)}, + qra => q{Tvuj QRA lokator je nyni '$_[0]'}, + rcmdo => q{RCMD '$_[0]' bylo zaslano do $_[1]}, read1 => q{Lituji, nemas zadne nove zpravy}, read2 => q{Zprava $_[0] nenalezena}, read3 => q{Msg $_[0] neni k dispozici}, @@ -1907,7 +1907,7 @@ package DXM; sethop1 => q{pouziti: set/hops ann|spots|wwv|wcy }, sethop2 => q{$_[0] skoku nastaveno na $_[1]$_[2] pro $_[3]'}, sethop3 => q{Zadny pocet skoku nastaven pro $_[0]'}, - shu => q{"SHU" nestaci, je treba alespon "SHUT" k vypnuti nodu}, + shu => q{'SHU' nestaci, je treba alespon 'SHUT' k vypnuti nodu}, shutting => q{$main::mycall se vypina...}, sloc => q{Cluster lat $_[0] long $_[1], NEZAPOMEN ZMENIT DXVars.pm}, snode1 => q{Nod Znacka Typ Verze }, @@ -1968,13 +1968,13 @@ package DXM; badnode2 => q{$_[0] agora um bom node}, badnode3 => q{Lista dos maus nodes:-}, bbse1 => q{Por favor escreva qual a sua BBS local,, set/bbs }, - bbs => q{A sua bbs local agora "$_[0]"}, + bbs => q{A sua bbs local agora '$_[0]'}, beepoff => q{A campainha est desligada agora}, beepon => q{A campainha est ligada agora}, call1 => q{Indicativo fechado via $_[0]:}, conother => q{Desculpe $_[0] voc est ligado a mim noutra porta}, concluster => q{Desculpe $_[0] voc j est ligado em algum sitio no cluster (on $_[1])}, - conscript => q{nenhum script de ligao chamado "$_[0]" encontrado em $main::root/connect}, + conscript => q{nenhum script de ligao chamado '$_[0]' encontrado em $main::root/connect}, confail => q{ligao para $_[0] falhada ($_[1])}, constart => q{ligao para $_[0] comeada}, deluser => q{User $_[0] foi apagado}, @@ -2020,8 +2020,8 @@ package DXM; e12 => q{Preciso de um indicativo de node}, e13 => q{$_[0] no um node}, e14 => q{O primeiro argumento deve ser numrico e > 0}, - e15 => q{qualificador invlido "$_[0]"}, - e16 => q{O ficheiro "$_[0]" existe}, + e15 => q{qualificador invlido '$_[0]'}, + e16 => q{O ficheiro '$_[0]' existe}, e17 => q{Por favor no use as palavras: @_ aqui'}, e18 => q{No posso ligar a $_[0] ($!)}, e19 => q{Caracter invlido na linha $_[0]}, @@ -2046,7 +2046,7 @@ package DXM; echooff => q{Eco desactivado}, echow => q{*O eco est actualmente desactivado, escreva set/echo para activar}, emaile1 => q{Por favor escreva o seu email, faa set/email }, - emaila => q{O seu email agora "$_[0]"}, + emaila => q{O seu email agora '$_[0]'}, email => q{Email definido para: $_[0]}, export1 => q{uso: export }, export2 => q{$_[3] houve um erro ao exportar a msg $_[0] para $_[1] ($_[2])}, @@ -2074,7 +2074,7 @@ package DXM; homenode => q{Node local definido como: $_[0]}, hnodee1 => q{Por favor escreva o seu node local, set/homenode }, hnodee2 => q{Falha ao definir o node local em $_[0]}, - hnode => q{O seu node local agora "$_[0]"}, + hnode => q{O seu node local agora '$_[0]'}, init1 => q{enviar mensagem de inicializao para $_[0]}, iso => q{$_[0] Isolado}, isou => q{$_[0] No isolado}, @@ -2091,9 +2091,9 @@ package DXM; leave => q{a deixar o grupo $_[0]}, lh1 => q{$main::data/hop_table.pl no existe}, loce1 => q{Por favor diga as suas coordenadas,, set/location }, - loce2 => q{No reconhece "$_[0]" como uma Lat/Long (ex 52 20 N 0 16 E)}, + loce2 => q{No reconhece '$_[0]' como uma Lat/Long (ex 52 20 N 0 16 E)}, loce3 => q{$_[0] um locator, por favor use: set/qra $_[0]}, - loc => q{A sua lat/long agora "$_[0]"}, + loc => q{A sua lat/long agora '$_[0]'}, lockout => q{$_[0] Fechado}, lockoutc => q{$_[0] Criado e fechado}, lockoutun => q{$_[0] Aberto}, @@ -2131,7 +2131,7 @@ package DXM; mone => q{Monitorizao activada}, namee1 => q{Por favor escreva o seu nome, set/name }, namee2 => q{No encontro o usurio $_[0]!}, - name => q{O seu nome "$_[0]"}, + name => q{O seu nome '$_[0]'}, nodea => q{$_[0] definido como um node tipo AK1A}, nodeac => q{$_[0] criado como um node tipo AK1A}, nodeb => q{$_[0] definido como BBS}, @@ -2165,7 +2165,7 @@ package DXM; pinge1 => q{No pode fazer ping para si prprio!}, pingint => q{Intervalo de Ping em $_[0] definido para $_[1] segundos}, 'pos' => q{Do indicativo: $_[0] Lat: $_[1] Long: $_[2]}, - prs => q{Prompt agora definida para "$_[0]"}, + prs => q{Prompt agora definida para '$_[0]'}, pru => q{Prompt agora regressou para a default}, priv => q{Nivel de privilgio alterado em $_[0]}, prx => q{$main::mycall >}, @@ -2176,13 +2176,13 @@ package DXM; pw4 => q{As Passwordes diferem, a password NO foi alterada}, qll => q{Por favor escreva a sua localizao com set/location ou set/qra}, qthe1 => q{Por favor escreva o seu QTH, set/qth }, - qth => q{O seu QTH "$_[0]"}, + qth => q{O seu QTH '$_[0]'}, qrae1 => q{Por favor escreva o seu locator, set/qra (ex set/qra IM58LP)}, qrashe1 => q{Por favor escreva o seu locator, ex sh/qra IM58LP ou sh/qra IM58LP IO93NS}, - qrae2 => q{No reconhece "$_[0]" como um locator (ex IM58LP)}, - qra => q{O seu locator "$_[0]"}, + qrae2 => q{No reconhece '$_[0]' como um locator (ex IM58LP)}, + qra => q{O seu locator '$_[0]'}, qsl1 => q{Call Manager Times Last Time Seen De}, - rcmdo => q{RCMD "$_[0]" enviado para $_[1]}, + rcmdo => q{RCMD '$_[0]' enviado para $_[1]}, read1 => q{Desculpe, nenhuma mensagem nova para voc}, read2 => q{Msg $_[0] no foi encontrada}, read3 => q{Msg $_[0] no est disponivel}, @@ -2203,7 +2203,7 @@ package DXM; sethop1 => q{uso: set/hops ann|spots|wwv|wcy }, sethop2 => q{$_[0] saltos definidos em $_[1]$_[2] por $_[3]'}, sethop3 => q{Nenhuns saltos definidos por $_[0]'}, - shu => q{"SHU" no suficiente! voc precisa pelo menos de "SHUT" para desligar o node}, + shu => q{'SHU' no suficiente! voc precisa pelo menos de 'SHUT' para desligar o node}, shutting => q{$main::mycall a desligar...}, sloc => q{Cluster lat $_[0] long $_[1], NO ESQUECER DE ALTERAR O SEU DXVars.pm}, snode1 => q{Node Call Sort Verso}, diff --git a/perl/cluster.pl b/perl/cluster.pl index d471b71b..f96fbfea 100755 --- a/perl/cluster.pl +++ b/perl/cluster.pl @@ -176,8 +176,6 @@ use Fcntl ':flock'; use POSIX ":sys_wait_h"; use Web; -use vars qw($version $build $gitversion $gitbranch); - use strict; use Local; -- 2.43.0