+# non english help (if available)
+if ($h) {
+ my $state = 0;
+ foreach $in (<$h>) {
+ next if $in =~ /^\#/;
+ chomp $in;
+ if ($in =~ /^===/) {
+ last if $state == 2; # come out on next command
+ $in =~ s/=== //;
+ my ($priv, $cmd, $desc) = split /\^/, $in;
+ next if $priv > $self->priv; # ignore subcommands that are of no concern
+ next unless $cmd =~ /^$line/i;
+ push @out, "$cmd $desc" unless $cmd =~ /-$/o;
+ $state = 1;
+ next;
+ }
+ if ($state > 0) {
+ push @out, " $in";
+ $state = 2;
+ }
+ }
+ $h->close;
+
+ # return if some help was given, otherwise continue to english help
+ return (1, @out) if @out && $state == 2;
+}
+
+# standard 'english' help