code:
#+##############################################################################
#
# plaintext.pm: convert to plaintext
#
#    Copyright (C) 2009 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License,
# or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# Originally written by Patrice Dumas.
#
#-##############################################################################

use strict;

sub plaintext_default_load(;$)
{
my $from_command_line = shift;
info_default_load();

set_default('SHOW_MENU', 0);
set_default('OUTFILE', '-');
# unless(defined($OUT) and $OUT !~ m:/$:);
set_default('HEADERS', 0);
@T2H_FORMAT_EXPAND = ('plaintext');

$print_page_head   = \&plaintext_default_print_page_head;
$print_page_foot   = \&plaintest_default_print_page_foot;
$element_heading   = \&plaintext_default_element_heading;
$image             = \&plaintext_default_image;
$print_index       = \&plaintext_default_print_index;

}

sub plaintext_default_print_page_head($)
{
   my $fh = shift;
}

sub plaintest_default_print_page_foot($)
{
   my $fh = shift;
}

sub plaintext_default_element_heading($$$$$$$$$$$$)
{
    my $info_result = &Texi2HTML::Config::info_default_element_heading(@_);
    my $element = shift;
    my $command = shift;
    my $texi_line = shift;
    my $line = shift;
    my $in_preformatted = shift;
    my $one_section = shift;
    my $element_heading = shift;
    my $first_in_page = shift;
    my $is_top = shift;
    my $previous_is_top = shift;
    my $command_line = shift;
    my $element_id = shift;
    my $new_element = shift;

    return $info_result if (!$element->{'node'});
    return '';
}

sub plaintext_default_image($$$$$$$$$$$$$$$$$)
{
    my $file = shift;
    my $base = shift;
    my $preformatted = shift;
    my $file_name = shift;
    my $alt = shift;
    my $width = shift;
    my $height = shift;
    my $raw_alt = shift;
    my $extension = shift;
    my $working_dir = shift;
    my $file_path = shift;
    my $in_paragraph = shift;
    my $file_locations = shift;
    my $base_simple_format = shift;
    my $extension_simple_format = shift;
    my $file_name_simple_format = shift;
    my $line_nr = shift;

    my $txt_path;
    my $found_file;

    my @extensions = @IMAGE_EXTENSIONS;
    if (defined($extension) and ($extension ne ''))
    {
        unshift @extensions, ".$extension";
        unshift @extensions, "$extension";
    }
    else
    {
        $extension = undef;
    }
    my $file_found_index = undef;
    my $file_index = 0;

    foreach my $file_location (@$file_locations)
    {
        my ($file_located, $path, $file_simple_format) = @$file_location;
        my $extension = shift @extensions;
        if (defined($path))
        {
           if ($extension eq 'txt' and !defined($txt_path))
           {
              $txt_path = $path;
           }
           elsif (!defined($found_file))
           {
              $found_file = [$file_located, $extension, $file_simple_format];
              $file_found_index = $file_index;
           }
        }
        $file_index++;
    }

    my $text = '';
    if (defined($txt_path))
    {
       if (open(TXT, "<$txt_path"))
       {
          my $in_encoding = get_conf('IN_ENCODING');
          if (defined($in_encoding) and get_conf('USE_UNICODE'))
          {
              binmode(TXT, ":encoding($in_encoding)");
          }
          $text='[' if ($in_paragraph or $preformatted);
          while (my $img_txt = <TXT>)
          {
              $text .= $img_txt;
          }
          $text .= ']' if ($in_paragraph or $preformatted);
          close(TXT);
       }
       else
       {
          main::line_warn (sprintf(__("\@image file `%s' unreadable: %s"), $txt_path, $!), $line_nr);
       }
    }
    elsif (!defined($found_file))
    {
        main::line_warn (sprintf(__("Cannot find \@image file `%s.txt'"), $base), $line_nr);
    }
    return $text;
}

sub plaintext_default_print_index($$)
{
    my $text = shift;
    my $name = shift;
    return '';
}

1;

repo_name: mthl/texinfo

license: mit


code:
# vim: set filetype=perl:
#
# Convert to texinfo xml.
#
# This file is in the public domain. Thus it may easily be used as an
# example for further customizations.
#
# Originally written by Patrice Dumas in 2009.

use strict;

my @xml_multitable_stack = ();
my @xml_table_stack = ();

my @xml_ignored_misc_commands;
my %xml_misc_command_output;
my %xml_misc_elements_with_arg_map;
my @xml_misc_elements_with_arg;
my %def_format_xml;
my $xml_current_section;

sub xml_default_load(;$)
{
my $from_command_line = shift;

t2h_default_set_variables_xml();
set_default('DOCTYPE', '<!DOCTYPE texinfo PUBLIC "-//GNU//DTD TexinfoML V4.12//EN" "http://www.gnu.org/software/texinfo/dtd/4.12/texinfo.dtd">');
set_default('SIMPLE_MENU', 0);
set_default('SEPARATE_DESCRIPTION', 1);
@T2H_FORMAT_EXPAND = ('xml', 'direntry');
set_default('HEADERS', 0);
set_default('INLINE_INSERTCOPYING', 0);
set_default('SHOW_MENU', 1);
set_default('SHOW_TITLE', 0);
set_default('NUMBER_SECTIONS', 0);
set_default('USE_NODES', 1);
set_default('USE_SECTIONS', 1);
set_default('SPLIT', '');

t2h_default_push_handler(\&xml_init_variables, \@command_handler_init);

$colon_command_punctuation_characters{'.'} = '.';
$colon_command_punctuation_characters{':'} = ':';
$colon_command_punctuation_characters{'?'} = '?';
$colon_command_punctuation_characters{'!'} = '!';

$simple_map{'*'} = '&linebreak;';
$simple_map{' '} = '&space;';
$simple_map{"\t"} = '&space;';
$simple_map{"\n"} = '&space;';
$simple_map{'.'} = '&eosperiod;';
$simple_map{'!'} = '&eosexcl;';
$simple_map{'?'} = '&eosquest;';

%simple_map_pre = %simple_map;

# FIXME right?
$things_map{'l'} = '/l';
$things_map{'L'} = '/L';
$things_map{'enddots'} = '&enddots;';
$things_map{'dots'} = '&dots;';
# FIXME equiv, point, expansion could be ameliorated
$things_map{'equiv'} = '==';
$things_map{'point'} = '-!-';
$things_map{'expansion'} = '==>'; # →?

$things_map{'minus'} = '−';
$things_map{'result'} = '⇒';
$things_map{'bullet'} = '•';
$things_map{'copyright'} = '&copyright;';
$things_map{'registeredsymbol'} = '&registered;';
$things_map{'arrow'} = '→';
$things_map{'TeX'} = '&tex;';
$things_map{'LaTeX'} = '&latex;';

%pre_map = %things_map;

$stop_paragraph_command{'caption'} = 1;
$stop_paragraph_command{'shortcaption'} = 1;

%line_command_map = ();
foreach my $command ('contents', 'shortcontents', 'summarycontents')
{
   $line_command_map{$command} = $command;
}

%format_map = ();

$format_map{'copying'} = '';
$format_map{'titlepage'} = 'titlepage';
$format_map{'documentdescription'} = 'documentdescription';
$format_map{'group'} = 'group';
$format_map{'raggedright'} = 'raggedright';

foreach my $region ('titlepage', 'documentdescription', 'copying')
{
   $region_formats_kept{$region} = 1;
}

%style_map = ();
t2h_default_copy_style_map (\%default_style_map, \%style_map);

foreach my $style (keys(%style_map))
{
    next if grep {$style eq $_} ('asis', 'ctrl', 'w');
    if (grep {$style eq $_} ('tieaccent', 'dotless', keys(%unicode_accents)))
    {
     $style_map{$style} = { 'function' => \&xml_default_accent };
    }
    elsif (!exists($style_map{$style}->{'args'}) or (scalar(@{$style_map{$style}->{'args'}}) eq 1 and ($style_map{$style}->{'args'}->[0] eq 'code' or $style_map{$style}->{'args'}->[0] eq 'normal')))
    {
        $style_map{$style}->{'inline_attribute'} = $style;
        delete ($style_map{$style}->{'quote'});
        delete ($style_map{$style}->{'begin'});
        delete ($style_map{$style}->{'end'});
        delete ($style_map{$style}->{'function'});
    }
}

foreach my $complex_format (keys(%complex_format_map))
{
   my $style = $complex_format_map{$complex_format}->{'style'};
   delete $complex_format_map{$complex_format};
   $complex_format_map{$complex_format}->{'begin'} = "<$complex_format xml:space=\"preserve\">";
   $complex_format_map{$complex_format}->{'end'} = "</$complex_format>";
   $complex_format_map{$complex_format}->{'style'} = $style if (defined($style));
}
foreach my $menu_command('menu', 'detailmenu', 'direntry', 'menu_comment')
{
  $complex_format_map{$menu_command} = undef;
  delete $complex_format_map{$menu_command};
}

# this is not needed because normal_text isn't the same than in html
#t2h_remove_text_substitutions("'", 1, 0, 0, 1);
#t2h_remove_text_substitutions('`', 1, 0, 0, 1);

$style_map{'w'}->{'end'} = '<!-- /@w -->';
$style_map{'='}->{'function'} = \&xml_macron;
$style_map{'email'}->{'function'} = \&xml_email;
$style_map{'titlefont'}->{'function'} = \&xml_titlefont;
$style_map{'math'}->{'function'} = \&xml_math;
$style_map{'uref'}->{'function'} = \&xml_uref;
$style_map{'url'}->{'function'} = \&xml_uref;
$style_map{'t'}->{'inline_attribute'} = 'tt';
# FIXME
delete $special_accents{'ringaccent'};
$special_accents{'ogonek'} = 'aeiuAEIU';

%style_map_pre = %style_map;

$no_paragraph_commands{'cindex'} = 0;

#my @xml_ignored_misc_commands = ('bye', 'sp', 'verbatiminclude');

@xml_ignored_misc_commands = ('bye', 'sp', 'verbatiminclude', 'clickstyle',
  'defcodeindex',
  'syncodeindex', 'paragraphindent', 'shorttitlepage', 'refill', 'noindent');

# we want to proceed all the misc commands
# makeinfo ignores clickstyle, changes setfilename. Not sure it is right.
foreach my $misc_command (keys(%misc_command))
{
    next if (grep {$misc_command eq $_} @xml_ignored_misc_commands);
    $xml_misc_command_output{$misc_command} = 1;
}

$format_map{'menu'} = 'menu';
# checked on bug-texinfo, only node is in code_style, as with makeinfo --xml
#$format_code_style{'menu'} = 1;
#$format_code_style{'menu_name'} = 1;
#$format_code_style{'menu_description'} = 1;
$format_map{'detailmenu'} = 'detailmenu';
$format_map{'direntry'} = 'direntry';
$format_map{'menu_comment'} = '';

$menu_description = \&xml_menu_description;
$menu_link = \&xml_menu_link;
$element_heading = \&xml_heading;
$heading = \&xml_heading;
$paragraph = \&xml_paragraph;
$preformatted = \&xml_preformatted;
$misc_element_label = \&xml_noop;
$element_label = \&xml_noop;
$anchor_label = \&xml_anchor_label;
$index_entry_label = \&xml_index_entry_label;
$index_entry_command = \&xml_index_entry_command;
$listoffloats = \&xml_listoffloats;
$acronym_like = \&xml_acronym_like;
$foot_line_and_ref = \&xml_foot_line_and_ref;
$image = \&xml_image;
$sp = \&xml_sp;
$quotation = \&xml_quotation;
$table_list = \&xml_table_list;
$row = \&xml_row;
$cell = \&xml_cell;
$list_item = \&xml_list_item;
$format_list_item_texi = \&xml_format_list_item_texi;
$misc_command_line = \&xml_misc_commands;
$begin_format_texi = \&xml_begin_format_texi;
$def_line = \&xml_def_line;
$def = \&xml_def;
$def_item = \&xml_def_item;
$printindex = \&xml_printindex;
$index_summary = \&xml_index_summary;
$external_ref = \&xml_external_ref;
$internal_ref = \&xml_internal_ref;
$table_item = \&xml_table_item;
$table_line = \&xml_table_line;
$float = \&xml_float;
$caption_shortcaption = \&xml_caption_shortcaption;
$caption_shortcaption_command = \&xml_caption_shortcaption_command;
$normal_text = \&xml_normal_text;
$protect_text = \&xml_default_protect_text;
$paragraph_style_command = \&xml_paragraph_style_command;
$raw = \&xml_raw;
$cartouche = \&xml_cartouche;

$print_Top = \&xml_print_Top;
$print_Top_footer = \&xml_print_Top_footer;
$print_page_head = \&xml_print_page_head;
$print_foot_navigation = \&xml_noop;
$toc_body = \&xml_noop;
$about_body = \&xml_noop;
$print_page_foot = \&xml_print_page_foot;
$end_section = \&xml_end_section;
$one_section = \&xml_one_section;

%xml_misc_elements_with_arg_map = (
  'title'     => 'booktitle',
  'subtitle'  => 'booksubtitle'
);

@xml_misc_elements_with_arg = ('author',
  'dircategory', 'settitle');
#my @xml_misc_elements_with_arg = ('author', 'shorttitlepage',
#  'vskip', 'dircategory', 'settitle');

%def_format_xml = (
  'deffn' => [ ['category', 'category'], ['function', 'name'] ],
   'defvr' => [ ['category', 'category'], ['variable', 'name'] ],
   'deftypefn' => [ ['category', 'category'], ['type', 'type'], ['function', 'name'] ],
   'deftypeop' => [ ['category', 'category'], ['type', 'type'], ['operation', 'name'] ],
   'deftypevr' => [ ['category', 'category'], ['type', 'type'], ['variable', 'name'] ],
   'defcv' => [ ['category' , 'category'], ['class', 'class'], ['classvar', 'name'] ],
   'deftypecv' => [ ['category', 'category'], ['type', 'type'], ['classvar', 'name'] ],
   'defop' => [ ['category', 'category'], ['class', 'class'], ['operation', 'name'] ],
   'deftp' => [ ['category', 'category'], ['datatype', 'name'] ]
);

}

sub xml_macron($$)
{
    my $accent = shift;
    my $args = shift;
    return $args->[0] . "¯";
}

sub xml_email($$)
{
    my $command = shift;
    my $args = shift;
    my $mail = shift @$args;
    my $text = shift @$args;
    $mail = main::normalise_space($mail);
    my $result = "<email><emailaddress>$mail</emailaddress>";
    if (defined($text) and $text =~ /\S/)
    {
        $result .= "<emailname>".main::normalise_space($text)."</emailname>";
    }
    return $result . '</email>';
}

sub xml_uref($$)
{
    shift;
    my $args = shift;
    my $url = shift @$args;
    my $text = shift @$args;
    my $replacement = shift @$args;
    $url = main::normalise_space($url);
    $replacement = '' if (!defined($replacement));
    $replacement = main::normalise_space($replacement);
    $text = '' if (!defined($text));
    $text = main::normalise_space($text);
    my $result = "<uref><urefurl>$url</urefurl>";
    $result .= "<urefdesc>$text</urefdesc>" if ($text ne '');
    $result .= "<urefreplacement>$replacement</urefreplacement>" if ($replacement ne '');
    return $result.'</uref>';
}

sub xml_titlefont($$)
{
    shift;
    my $args = shift;
    return "<titlefont>$args->[0]</titlefont>";
}

sub xml_math($$)
{
    shift;
    my $args = shift;
    my $text = shift @$args;
    return "<math>$text</math>";
}

sub xml_menu_description($$$)
{
    my $text = shift;
    my $state = shift;
    my $element_text = shift;
    return "<menucomment>$text</menucomment>\n</menuentry>";
}

sub xml_menu_link($$$$$$$$$$)
{
    my $entry = shift;
    my $state = shift;
    my $href = shift;
    my $menunode = shift;
    my $menutitle = shift;
    my $ending = shift;
    my $has_title = shift;
    my $command_stack = shift;
    my $in_preformatted = shift;
    my $menunode_normalized = shift;

    return "<menuentry>\n<menunode>$menunode_normalized</menunode>\n<menutitle>$menutitle</menutitle>\n";
}

sub xml_print_page_head($)
{
    my $fh = shift;
    my $setfilename = '';
    $setfilename = "<setfilename>$Texi2HTML::THISDOC{'file_base_name'}.".get_conf('EXTENSION')."</setfilename>"
        unless (defined(get_conf('setfilename')) and get_conf('setfilename') ne '');
    my $language = get_conf('documentlanguage');
    my $doctype = get_conf('DOCTYPE');
    print $fh <<EOT;
<?xml version="1.0"?>
$doctype
<texinfo xml:lang="$language">
$setfilename
EOT
}

sub xml_print_page_foot($)
{
    my $fh = shift;
    print $fh "". xml_close_section();
    print $fh <<EOT;
</texinfo>
EOT
}

sub xml_one_section($$)
{
    my $fh = shift;
    my $element = shift;
    main::print_lines($fh);
    #print $fh "". xml_footing($element);
    &$print_foot_navigation($fh);
    &$print_page_foot($fh);
}

sub xml_heading($$$$$)
{
    my $element = shift;
    my $command = shift;
    my $texi_line = shift;
    my $line = shift;
    my $in_preformatted = shift;

#print STDERR "'$command' $line";
    if (defined($command) and $command =~ /heading/)
    {
        my $text = '';
        if (defined($line))
        {
            $text = $line;
            # this isn't done in main program in that case...
            chomp ($text);
            $text =~ s/^\s*//;
        }
        return "<${command}>$text</${command}>\n";
    }
    elsif (defined($command) and $command eq 'node')
    {
#print STDERR "node $command $node_element->{'texi'}\n";
        my $result = '';
        $result .= xml_close_section();
        $result .= "<node>\n";
        $result .= "<nodename>$element->{'text'}</nodename>\n";
        foreach my $direction('nodenext', 'nodeprev', 'nodeup')
        {
            if ($element->{$direction})
            {
                $result .= "<${direction}>$element->{$direction}->{'text'}</${direction}>\n";
            }
        }
        $result .= "</node>\n";
        return $result;

    }
    else
    {
        my $result = '';
        $result .= xml_close_section();
        $result .= "<".xml_element_tag($element).">\n<title>$element->{'text'}</title>\n";
        $xml_current_section = $element;
        return $result;
    }
}

sub xml_element_tag($)
{
    my $element = shift;
    my $class = $element->{'tag_level'};
    return $class;
}

sub xml_close_section()
{
    my $element = $xml_current_section;

    if (!defined($element))
    {
        return '';
    }
    my $result = '';

    $xml_current_section = undef;

    # there is a special case for a @chapter that is a child of @top
    # but should not be considered as is, since it is also toplevel.
    # @part, however may have other toplevel elements as children.
    return '' if ($element->{'child'} and (!$element->{'child'}->{'toplevel'} or $element->{'tag'} ne 'top'));
    $result .= '</'.xml_element_tag($element).">\n";

    my $current = $element;
    # the second condition is such that top is closed only if it has
    # sub-elements below chapter.
    # the third condition is such that elements with a next element are
    # only closed for the last element, except when the next element is
    # toplevel and below top, such that @top is closed before the first
    # @chapter if there are @section or the like below @top
    while ($current->{'sectionup'} and !($current->{'sectionup'}->{'tag'} eq 'top' and $current->{'toplevel'}) and (!$current->{'childnext'} or ($current->{'childnext'}->{'toplevel'} and $current->{'sectionup'}->{'tag'} eq 'top')))
    {
        $current = $current->{'sectionup'};
        $result .= '</'.xml_element_tag($current).">\n";
    }
    return $result;

    ## there is a special case for a @chapter that is a child of @top
    ## but should not be considered as is, since it is also toplevel.
    #return '' if ($element->{'child'} and !$element->{'child'}->{'toplevel'});
    #$result .= '</'.xml_element_tag($element).">\n";

    #return $result if ($element->{'sectionnext'} or $element->{'level'} <= 1);
    #my $current = $element;
    #while ($current->{'level'} != 1 and $current->{'sectionup'} and !$current->{'sectionnext'})
    #{
    #    $current = $current->{'sectionup'};
    #    $result .= '</'.xml_element_tag($current).">\n";
    #}
    #return $result;
}

sub xml_end_section($$$)
{
    my $fh = shift;
    my $end_foot_navigation = shift;
    my $element = shift;
}

sub xml_print_Top($$$)
{
    my $fh = shift;
    my $has_top_heading = shift;
    my $element = shift;
    main::print_lines($fh, $Texi2HTML::THIS_SECTION);
}

sub xml_print_Top_footer($$)
{
    my $fh = shift;
    my $end_page = shift;
    my $element = shift;
}

# FIXME warning:
#
# @samp{first para
#
# second para}.
#
# maybe should lead to:
# <para><samp>first para  second para</samp>.</para>
#
# But it leads to
# <para><samp>first para
# </samp></para>
# <para><samp>second para</samp>.
# </para>
sub xml_paragraph($$$$$$$$$$$$)
{
    my $text = shift;
    my $align = shift;
    my $indent = shift;
    my $paragraph_command = shift;
    my $paragraph_command_formatted = shift;
    my $paragraph_number = shift;
    my $format = shift;
    my $item_nr = shift;
    my $enumerate_style = shift;
    my $number = shift;
    my $command_stack_at_end = shift;
    my $command_stack_at_begin = shift;

    # no para in multitables, caption and shortcaptions.
    my $top_stack = '';
    $top_stack = $command_stack_at_begin->[-1] if (scalar (@$command_stack_at_begin));
    return $text if ($top_stack eq 'multitable' or $top_stack eq 'shortcaption' or $top_stack eq 'caption' or $top_stack eq 'documentdescription');

    if ($text =~ /\S/)
    {
       return "<para>$text</para>";
    }
    return $text;
}

sub xml_preformatted($$$$$$$$$$$$)
{
    my $text = shift;
    my $pre_style = shift;
    my $class = shift;
    my $leading_command = shift;
    my $leading_command_formatted = shift;
    my $preformatted_number = shift;
    my $format = shift;
    my $item_nr = shift;
    my $enumerate_style = shift;
    my $number = shift;
    my $command_stack_at_end = shift;
    my $command_stack_at_begin = shift;

    return $text;
}

sub xml_misc_commands($$$$$)
{
   my $macro = shift;
   my $line = shift;
   my $args = shift;
   my $stack = shift;
   my $state = shift;

#print STDERR "$macro $line";
#print STDERR "ARGS @$args\n" if defined ($args);
    return ($macro, $line, undef) unless($xml_misc_command_output{$macro});

    my $value_name = '';
    my $value = '';
    if ($macro eq 'set' or $macro eq 'clear')
    {
        my $value_line = $line;
        if ($value_line =~ s/^\s+([\w\-]+)//)
        {
            $value_name = $1;
            if ($macro eq 'set')
            {
                $value = $value_line;
                chomp ($value);
                $value =~ s/^\s*//;
            }
        }
    }
    my $result_text = "<${macro}></${macro}>";
    if ($macro eq 'set' or $macro eq 'clear')
    {
        $result_text = "<${macro}value name=\"$value_name\">$value</${macro}value>\n";
    }
    if ($macro eq 'c' or $macro eq 'comment' and scalar(@$args))
    {
        my $comment_line = $args->[0];
        chomp ($comment_line);
        # makeinfo remove all the leading spaces
        $comment_line =~ s/^\s//;
        $result_text = &$comment ($comment_line);
    }
    if ($macro eq 'frenchspacing')
    {
       my $value = $args->[0];
       $value =~ s/\s*//g;
       $result_text = "<${macro} var=\"$value\"></${macro}>";
    }
    if (grep {$macro eq $_} @xml_misc_elements_with_arg)
    {
       my $arg = $args->[0];
       $arg =~ s/^\s*//;
       chomp($arg);
       $result_text = "<${macro}>".main::substitute_line($arg, "\@$macro")."</${macro}>\n";
    }
    if (exists($xml_misc_elements_with_arg_map{$macro}))
    {
       my $arg = $args->[0];
       $arg =~ s/^\s*//;
       chomp($arg);
       $result_text = "<$xml_misc_elements_with_arg_map{$macro}>".main::substitute_line($arg, "\@$macro")."</$xml_misc_elements_with_arg_map{$macro}>\n";
    }
    if ($macro eq 'setfilename')
    {
       my $arg = $args->[0];
       #$arg =~ s/^\s*//;
       #$arg =~ s/\s*$//;
       #$arg = main::substitute_line($arg, "\@$macro");
       if ($arg =~ /\S/)
       {
           $arg = get_conf('setfilename');
           $arg =~ s/\.[^\.]*$//;
           $result_text = "<${macro}>${arg}.xml</${macro}>\n";
       }
    }
    return ($macro, $line, $result_text);
}

sub xml_anchor_label($$)
{
    my $id = shift;
    my $anchor_text = shift;
    return '<anchor name="'. &$protect_text($anchor_text) . '"></anchor>';
}

sub xml_index_entry_command($$$$$)
{
   my $command = shift;
   my $index_name = shift;
   my $label = shift;
   my $entry_texi = shift;
   my $entry_formatted = shift;

   return $label if (defined($label) and $label ne '');
   return xml_index_entry_label('','','',$main::index_prefix_to_name{$index_name}, '', '', $entry_formatted, {});
}

sub xml_index_entry_label($$$$$$$$$)
{
    my $identifier = shift;
    my $preformatted = shift;
    my $formatted_entry = shift;
    my $index_name = shift;
    my $index_command = shift;
    my $texi_entry = shift;
    my $formatted_entry_reference = shift;
    my $in_region_not_in_output = shift;
    my $index_entry_ref = shift;

    return "<indexterm index=\"${index_name}\">${formatted_entry_reference}</indexterm>";
}

sub xml_listoffloats($$$)
{
    my $style_texi = shift;
    my $style = shift;
    my $float_entries = shift;
    # FIXME style, style_texi? Protected?
    return "<listoffloats type=\"$style\"></listoffloats>";
}

sub xml_acronym_like($$$$$$)
{
    my $command = shift;
    my $acronym_texi = shift;
    my $acronym_text = shift;
    my $with_explanation = shift;
    my $explanation_lines = shift;
    my $explanation_text = shift;
    my $explanation_simply_formatted = shift;

    $command = 'abbrev' if ($command eq 'abbr');
    my $opening = "<${command}><${command}word>$acronym_text</${command}word>";
    if ($with_explanation)
    {
        $opening .= "<${command}desc>$explanation_text</${command}desc>";
    }
    return $opening . "</${command}>";
}

sub xml_foot_line_and_ref($$$$$$$)
{
    my $number_in_doc = shift;
    my $number_in_page = shift;
    my $footnote_id = shift;
    my $place_id = shift;
    my $document_file = shift;
    my $footnote_file = shift;
    my $lines = shift;
    my $state = shift;

    my $result = '<footnote>';
    foreach my $line (@$lines)
    {
       $result .= $line;
    }
    return ([], $result . '</footnote>');
}

sub xml_image($$$$$$$$$$$$$)
{
    my $file = shift;
    my $base = shift;
    my $preformatted = shift;
    my $file_name = shift;
    my $alt = shift;
    my $width = shift;
    my $height = shift;
    my $raw_alt = shift;
    my $extension = shift;
    my $working_dir = shift;
    my $file_path = shift;
    my $in_paragraph = shift;
    my $file_locations = shift;

    $alt = '' if (!defined($alt));
    # dirty hack to avoid " that can be here because of a @verb
    $alt =~ s/"/"/g;

    $width = '' if (!defined($width));
    $height = '' if (!defined($height));

    my $tag = 'inlineimage';
    $tag = 'image' if ($preformatted or !$in_paragraph);

    return "<$tag width=\"$width\" height=\"$height\" name=\"". &$protect_text($base)."\" extension=\"$extension\"><alttext>$alt</alttext></$tag>";
}

sub xml_sp($$)
{
   my $number = shift;
   my $preformatted = shift;
   return "<sp lines=\"$number\"></sp>\n";
}

sub xml_quotation($$$$$)
{
    my $command = shift;
    my $text = shift;
    my $argument_text = shift;
    my $argument_text_texi = shift;
    my $authors = shift;
    return "<$command>\n" . $text . "</$command>\n";
}

sub xml_format_list_item_texi($$$$)
{
    my $format = shift;
    my $line = shift;
    my $prepended = shift;
    my $command = shift;

    my $result_line = undef;

    if (defined($command) and $command ne '' and !exists $special_list_commands{$format}->{$command} and $format ne 'itemize')
    {
        #@*table
        $line =~ s/^\s*//;
        $line =~ s/\s*$//;
        if (exists ($style_map{$command}))
        {
           $result_line = "\@$command\{$line\}\n";
        }
        elsif (exists ($things_map{$command}))
        {
           $result_line = "\@$command\{\} $line\n";
        }
        else
        {
           $result_line = "\@$command $line\n";
        }
    }

    return ($result_line, 0);
}

sub xml_list_item($$$$$$$$$)
{
    my $text = shift;
    my $format = shift;
    my $command = shift;
    my $formatted_command = shift;
    my $item_nr = shift;
    my $enumerate_style = shift;
    my $number = shift;
    my $prepended = shift;
    my $prepended_formatted = shift;

    return '<item>' . $text . "</item>\n";
}

sub xml_init_variables()
{
   @xml_multitable_stack = ();
   @xml_table_stack = ();
   $xml_current_section = undef;
}

# row in multitable
sub xml_row($$;$$)
{
    my $text = shift;
    my $macro = shift;
    my $columnfractions = shift;
    my $prototype_row = shift;
    my $prototype_lengths = shift;
    my $column_number = shift;

    my $result = '';
    if ($macro eq 'headitem')
    {
         if ($xml_multitable_stack[-1] != 0)
         {
             $result .= "<thead>";
             $result = "</tbody>" . $result if ($xml_multitable_stack[-1] == 1);
             $xml_multitable_stack[-1] = 0;
         }
    }
    elsif ($xml_multitable_stack[-1] != 1)
    {
         $result .= "<tbody>";
         $result = "</thead>" . $result if ($xml_multitable_stack[-1] == 0);
         $xml_multitable_stack[-1] = 1;
    }
    $result .= "<row>$text</row>";

    return $result;
}

# cell in multitable
sub xml_cell($$;$$)
{
    my $text = shift;
    my $row_macro = shift;
    my $columnfractions = shift;
    my $prototype_row = shift;
    my $prototype_lengths = shift;
    my $column_number = shift;

    return "<entry>" . $text . '</entry>';
}

sub xml_table_list($$$$$$$$$)
{
    my $format_command = shift;
    my $text = shift;
    my $command = shift;
    my $formatted_command = shift;
# enumerate
    my $item_nr = shift;
    my $enumerate_style = shift;
# itemize
    my $prepended = shift;
    my $prepended_formatted = shift;
# multitable
    my $columnfractions = shift;
    my $prototype_row = shift;
    my $prototype_lengths = shift;
    my $number = shift;

    my $result = "<$format_command>";
    if ($format_command eq 'itemize')
    {
        my $itemfunction;
        $prepended_formatted =~ s/^\s*// if (defined($prepended_formatted));
        if (defined($formatted_command) and $formatted_command ne '')
        {
            $itemfunction = $formatted_command;
            $itemfunction .= " $prepended_formatted" if (defined($prepended_formatted) and $prepended_formatted ne '');
        }
        elsif (defined($prepended_formatted))
        {
            $itemfunction = $prepended_formatted;
        }
        $itemfunction = "•" if (!defined($itemfunction) or
            $itemfunction eq '');
        $result .=  "<itemfunction>$itemfunction</itemfunction>";
    }
    elsif ($format_command eq 'enumerate')
    {
        $result = "<$format_command first=\"$enumerate_style\">";
    }
    elsif ($format_command eq 'multitable')
    {
       my $fractions;
       my $multiply = 1;
       if (defined($columnfractions) and (ref($columnfractions) eq 'ARRAY')
           and scalar(@$columnfractions))
       {
           $fractions = [ @$columnfractions ];
           $multiply = 100;
       }
       elsif (defined($prototype_lengths) and (ref($prototype_lengths) eq 'ARRAY')
           and scalar(@$prototype_lengths))
       {
           $fractions = [ @$prototype_lengths ];
       }

       if (defined ($fractions))
       {
           foreach my $fraction (@$fractions)
           {
               $result .= "<columnfraction>".($fraction*$multiply)."</columnfraction>\n";
           }
       }
       $text .= "</tbody>" if ($xml_multitable_stack[-1] == 1);
       $text .= "</thead>" if ($xml_multitable_stack[-1] == 0);
       pop @xml_multitable_stack;
    }
    elsif ($format_command =~ /^(v|f)?table$/)
    {
       $result = '<table>';
       $text .= '</tableitem>' if ($xml_table_stack[-1] == 1);
       pop @xml_table_stack;
       return $result . "$text</table>\n";
    }
    return $result . "$text</$format_command>\n";
}

sub xml_begin_format_texi($$$)
{
    my $command = shift;
    my $line = shift;
    my $state = shift;

    push (@xml_multitable_stack, -1) if ($command eq 'multitable');
    push (@xml_table_stack, 0) if ($command =~ /^(v|f)?table/);
    return $line;
}

sub xml_def_line($$$$$$$$$$$$$$$)
{
   my $category_prepared = shift;
   my $name = shift;
   my $type = shift;
   my $arguments = shift;
   my $index_label = shift;
   my $arguments_array = shift;
   my $arguments_type_array = shift;
   my $unformatted_arguments_array = shift;
   my $command = shift;
   my $class_name = shift;
   my $category = shift;
   my $class = shift;
   my $style = shift;
   my $original_command = shift;

   my $result = "<definitionterm><indexterm index=\""
    .$main::index_prefix_to_name{$style}."\">$class_name</indexterm>";

   my %arguments = ( 'prepared_category' => $category_prepared,
         'category' => $category,
         'name' => $name,
         'type' => $type,
         'class' => $class
    );
   foreach my $type (keys(%arguments))
   {
       $arguments{$type} = '' if (!defined($arguments{$type}));
   }

   foreach my $mandatory_arg (@{$def_format_xml{$command}})
   {
       my $elem = $mandatory_arg->[0];
       $result .= "<def$elem>$arguments{$mandatory_arg->[1]}</def$elem>";
   }

   my $params = '';
   my @types = @$arguments_type_array;
   foreach my $arg (@$arguments_array)
   {
       my $type = shift @types;
       if (grep {$_ eq $type} ('param', 'paramtype', 'delimiter'))
       {
            $result .= "<def$type>$arg</def$type>";
       }
   }

   $result .= "</definitionterm>\n";
   return $result;
}

# FIXME
# @deffn
# @c comment
# @end deffn
# leads to the creation of a <definitionitem> with a comment within,
# while there should be no definitionitem
sub xml_def_item($$)
{
    my $text = shift;
    my $only_inter_item_commands = shift;

    if ($text =~ /\S/)
    {
       return '<definitionitem>' . $text . '</definitionitem>' unless $only_inter_item_commands;
       return $text;
    }
    return '';
}

sub xml_def($)
{
   my $text = shift;
   return '<definition>'.$text.'</definition>';
}

sub xml_index_summary($$)
{
    my $alpha = shift;
    my $nonalpha = shift;
    return '';
}

sub xml_printindex($$)
{
    my $name = shift;
    my $printindex = shift;
    return "<printindex>$name</printindex>\n";
}

sub xml_any_ref($$)
{
    my $type = shift;
    my $args = shift;
    my $result = '';
    if ($type eq 'pxref')
    {
        $result = gdt('see ',{'duplicate'=>1});
    }
    elsif ($type eq 'xref' or $type eq 'inforef')
    {
        $result = gdt('See ',{'duplicate'=>1});
    }
    if ($type eq 'inforef')
    {
        $result .= "<inforef><inforefnodename>$args->[0]</inforefnodename>";
        $result .= "<inforefrefname>$args->[1]</inforefrefname>" if ($args->[1] ne '');
        $result .= "<inforefinfoname>$args->[2]</inforefinfoname></inforef>"
    }
    else
    {
        $result .= "<xref><xrefnodename>$args->[0]</xrefnodename>";
        $result .= "<xrefinfoname>$args->[1]</xrefinfoname>" if ($args->[1] ne '');
        $result .= "<xrefprinteddesc>$args->[2]</xrefprinteddesc>" if ($args->[2] ne '');
        $result .= "<xrefinfofile>$args->[3]</xrefinfofile>" if ($args->[3] ne '');
        $result .= "<xrefprintedname>$args->[4]</xrefprintedname>" if ($args->[4] ne '');
        $result .= '</xref>';
    }
    return $result;
}

sub xml_external_ref($$$$$$$$$)
{
    my $type = shift;
    my $section = shift;
    my $book = shift;
    my $file = shift;
    my $href = shift;
    my $cross_ref = shift;
    my $args_texi = shift;
    my $formatted_args = shift;
    my $node = shift;

    return xml_any_ref ($type, $formatted_args);
}

sub xml_internal_ref($$$$$)
{
    my $type = shift;
    my $href = shift;
    my $short_name = shift;
    my $name = shift;
    my $is_section = shift;
    my $args_texi = shift;
    my $formatted_args = shift;

    return xml_any_ref ($type, $formatted_args);
}

sub xml_table_item($$$$$$$)
{
    my $text = shift;
    my $index_label = shift;
    my $format = shift;
    my $command = shift;
#    my $formatted_command = shift;
    my $style_stack = shift;
#    my $text_formatted = shift;
#    my $text_formatted_leading_spaces = shift;
#    my $text_formatted_trailing_spaces = shift;
    my $item_cmd = shift;
    my $formatted_index_entry = shift;

#    $formatted_command = '' if (!defined($formatted_command));
#
#    if (defined($text_formatted))
#    {
#        $text_item = $text_formatted_leading_spaces . $text_formatted .$text_formatted_trailing_spaces;
#    }
#    else
#    {
#        $text_item = $text;
#    }

    my $result = '';
    if ($item_cmd eq 'item')
    {
        $result .= '</tableitem>' if ($xml_table_stack[-1] == 1);
        $xml_table_stack[-1] = 1;
        $result .= '<tableitem>';
    }
    $result .= '<tableterm>';
    #print STDERR "$text | $format | $command | $formatted_command | $text_formatted | $item_cmd \n";
    my $indexterm = '';
#print STDERR "FFFFFFFFFFFFFFFFf   `$index_label' `$text'\n";
    if ($format =~ /^(v|f)/)
    {
#        my $index_prefix = $1;
#        $indexterm = $text;
#        $indexterm =~ s/^\s*//;
#        $result .= "<indexterm index=\"$main::index_prefix_to_name{$index_prefix}\">$formatted_index_entry</indexterm>";
        $result .= "$index_label";
    }
    $result .= $text ."</tableterm>\n";
    return $result;
}

sub xml_table_line($)
{
    my $text = shift;
    my $only_inter_item_commands = shift;
    my $before_items = shift;

    if ($text =~ /\S/)
    {
        return "<item>$text</item>" unless $only_inter_item_commands;
        return $text;
    }
    else
    {
        return '';
    }
}

sub xml_caption_shortcaption($)
{
    my $float = shift;
    my $caption_lines;
    my $shortcaption_lines;
    if (defined($float->{'caption_texi'}))
    {
        @$caption_lines = @{$float->{'caption_texi'}};
    }
    if (defined($float->{'shortcaption_texi'}))
    {
        @$shortcaption_lines = @{$float->{'shortcaption_texi'}};
    }
    return ($caption_lines, $shortcaption_lines);
}

sub xml_caption_shortcaption_command($$$)
{
   my $command = shift;
   my $text = shift;
   my $texi_lines = shift;
   my $float_element = shift;

   if ($text =~ /\S/)
   {
      return "<$command>$text</$command>";
   }
   return '';
}

sub xml_float($$$$$)
{
    my $text = shift;
    my $float = shift;
    my $caption = shift;
    my $shortcaption = shift;

    # FIXME don't use the texi, but a normalized node name
    my $label_texi = $float->{'texi'};
    $label_texi = '' if (!defined($label_texi));
    my $result = "<float name=\"$label_texi\">\n";
    my $style = $float->{'style'};
    $style = '' if (!defined($style));
    $result .= "<floattype>$style</floattype>\n";
    $result .= "<floatpos></floatpos>\n";
    $result .= $text;
    return $result."</float>\n";
}

sub xml_normal_text($$$$$$$;$)
{
   my $text = shift;
   my $in_raw_text = shift;
   my $in_preformatted = shift;
   my $in_code = shift;
   my $in_math = shift;
   my $in_simple = shift;
#print STDERR "Bug: in_raw_text in_simple $text\n" if ($in_raw_text and $in_simple);
   my $style_stack = shift;
   my $state = shift;

   $text = &$protect_text($text) unless($in_raw_text);

   if (! $in_code and !$in_preformatted and !$in_raw_text)
   {
       $text =~ s/---/\&mdash\;/g;
       $text =~ s/--/\&ndash\;/g;
       $text =~ s/``/\&ldquo\;/g;
       $text =~ s/''/\&rdquo\;/g;
   }
   return $text;
}

sub xml_paragraph_style_command($$)
{
    my $format = shift;
    my $text = shift;
    return "<$format>$text</$format>" if ($format eq 'center');
    return $text;
}

sub xml_raw($$)
{
    my $style = shift;
    my $text = shift;

    if ($style eq 'verbatim' or $style eq 'verbatiminclude')
    {
        return '<verbatim xml:space="preserve">' . &$protect_text($text) . '</verbatim>';
    }
    return '' unless (grep {$style eq $_} @EXPAND);
    if ($style eq 'xml')
    {
        chomp ($text);
        return $text;
    }
    else
    {
        main::msg_warn ("Raw style $style not handled", $Texi2HTML::THISDOC{'line_nr'});
        return &$protect_text($text);
    }
}

sub xml_cartouche($$)
{
    my $text = shift;

    return "<cartouche>$text</cartouche>";
}

sub xml_noop
{
    return '';
}

1;


code:
#! /usr/bin/perl -w

use strict;

my $msgtxt = '';
my $separator = '||qg::fd||';

while (<STDIN>)
{
   $msgtxt .= $_;
}
print "$ENV{'MSGEXEC_MSGID'}$separator\n$msgtxt$separator\n";


code:
# Automatically generated file. Edit the .po file instead.
$LANGUAGES->{'de'} = {
                       '  The buttons in the navigation panels have the following meaning:' => ' Die Links in der Navigationsleiste haben die folgende Bedeutung: ',
                       '  where the @strong{ Example } assumes that the current position is at @strong{ Subsubsection One-Two-Three } of a document of the following structure:' => ' wobei das @strong{ Beispiel } annimmt, dass die aktuelle Position bei @strong{ Unterabschnitt 1-2-3 } in einem Dokument mit folgender Struktur liegt:',
                       ' Up ' => ' Nach oben ',
                       '(outside of any element)' => '',
                       '(outside of any node)' => '',
                       '@b{{quotation_arg}:} ' => '@b{{quotation_arg}:} ',
                       '@center --- @emph{{author}}
' => '',
                       '@cite{{book}}' => '@cite{{book}}',
                       '@{No value for `{value}\'@}' => '',
                       'About' => '@"Uber',
                       'About (help)' => '@"Uber (Hilfe)',
                       'About This Document' => '@"Uber dieses Dokument',
                       'April' => 'April',
                       'August' => 'August',
                       'Back' => 'Zur@"uck',
                       'Back section in previous file' => '',
                       'Beginning of this chapter or previous chapter' => 'Anfang dieses oder des letzten Kapitels',
                       'Button' => '',
                       'Contents' => 'Inhalt',
                       'Cover (top) of document' => 'Titelseite des Dokuments',
                       'Current' => '',
                       'Current Position' => 'Aktuelle Position',
                       'Current section' => 'Aktueller Abschnitt',
                       'December' => 'Dezember',
                       'FastBack' => '',
                       'FastForward' => '',
                       'February' => 'Februar',
                       'First' => '',
                       'First section in reading order' => 'Erster Abschnitt in Lesereihenfolge',
                       'Following' => '',
                       'Following node' => 'N@"achster Knoten',
                       'Footnotes' => 'Fu@ss{}noten',
                       'Forward' => 'Nach vorne',
                       'Forward section in next file' => '',
                       'From 1.2.3 go to' => 'Von 1.2.3 gehe zu',
                       'Go to' => 'Gehe zu',
                       'Index' => 'Index',
                       'Index Entry' => 'Indexeintrag',
                       'January' => 'Januar',
                       'July' => 'Juli',
                       'Jump to' => 'Springe zu',
                       'June' => 'Juni',
                       'Last' => '',
                       'Last section in reading order' => 'Letzter Abschnitt in Lesereihenfolge',
                       'March' => 'M@"arz',
                       'May' => 'Mai',
                       'Menu:' => 'Auswahl:',
                       'Name' => 'Name',
                       'Next' => '',
                       'Next chapter' => 'N@"achstes Kapitel',
                       'Next file' => '',
                       'Next node' => 'N@"achster Knoten',
                       'Next section in reading order' => 'N@"achster Abschnitt in Lesereihenfolge',
                       'Next section on same level' => 'N@"achster Abschitt derselben Ebene',
                       'NextFile' => '',
                       'Node following in node reading order' => 'N@"achster Abschnitt in Lesereihenfolge',
                       'Node up' => 'Knoten nach oben',
                       'NodeNext' => '',
                       'NodePrev' => '',
                       'NodeUp' => '',
                       'November' => 'November',
                       'October' => 'Oktober',
                       'Overview' => '@"Ubersicht',
                       'Prev' => '',
                       'PrevFile' => '',
                       'Previous' => '',
                       'Previous file' => '',
                       'Previous node' => 'Voriger Knoten',
                       'Previous section in reading order' => 'Voriger Abschnitt in Lesereihenfolge',
                       'Previous section on same level' => 'Voriger Abschnitt derselben Ebene',
                       'Section' => 'Abschnitt',
                       'Section One' => 'Abschnitt 1',
                       'See ' => '',
                       'See @cite{{book}}' => '',
                       'See `{section}\'' => 'Abschnitt nach oben',
                       'See `{section}\' in @cite{{book}}' => 'Siehe Abschnitt `{section}\' in @cite{{book}}',
                       'See section `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}' => '',
                       'See section {reference_name}' => '',
                       'See {node_file_href}' => 'Siehe {node_file_href}',
                       'See {node_file_href} section `{section}\' in @cite{{book}}' => 'Siehe {node_file_href} in Abschnitt `{section}\' in @cite{{book}}',
                       'See {reference_name}' => '',
                       'See {reference}' => 'siehe {reference_name}',
                       'See {reference} in @cite{{book}}' => 'Siehe {node_file_href} @cite{{book}}',
                       'See {ref}' => '',
                       'See {title_ref}' => '',
                       'September' => 'September',
                       'Short Table of Contents' => 'Kurzes Inhaltsverzeichnis',
                       'Short table of contents' => 'Kurzes Inhaltsverzeichnis',
                       'Subsection One-Four' => 'Unterabschnitt 1-4',
                       'Subsection One-One' => 'Unterabschnitt 1-1',
                       'Subsection One-Three' => 'Unterabschnitt 1-3',
                       'Subsection One-Two' => 'Unterabschnitt 1-2',
                       'Subsubsection One-Two-Four' => 'Unterabschnitt 1-2-4',
                       'Subsubsection One-Two-One' => 'Unterabschnitt 1-2-1',
                       'Subsubsection One-Two-Three' => 'Unterabschnitt 1-2-3',
                       'Subsubsection One-Two-Two' => 'Unterabschnitt 1-2-2',
                       'Table of Contents' => 'Inhaltsverzeichnis',
                       'Table of contents' => 'Inhaltsverzeichnis',
                       'The node you are looking for is at {href}.' => 'Der Knoten, den Sie sehen, befindet sich bei {href}',
                       'This' => '',
                       'This document was generated on @i{{date}} using @uref{{program_homepage}, @i{{program}}}.' => 'Dieses Dokument wurde erzeugt am @i{{date}} durch @uref{{program_homepage}, @i{{program}}}.',
                       'This document was generated using @uref{{program_homepage}, @emph{{program}}}.' => 'Dieses Dokument wurde erzeugt durch @uref{{program_homepage}, @emph{{program}}}.',
                       'Top' => 'Anfang',
                       'Untitled Document' => 'Unbenanntes Dokumen',
                       'Up' => 'Nach oben',
                       'Up node' => 'Knoten nach oben',
                       'Up section' => 'Abschnitt nach oben',
                       '`{section}\'' => 'Abschnitt nach oben',
                       '`{section}\' in @cite{{book}}' => 'Abschnitt `{section}\' in @cite{{book}}',
                       'current' => '',
                       'on @emph{{date}}' => 'am @emph{{date}}',
                       'section `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}' => '',
                       'see ' => '',
                       'see @cite{{book}}' => 'siehe @cite{{book}}',
                       'see `{section}\'' => 'Abschnitt nach oben',
                       'see `{section}\' in @cite{{book}}' => 'Abschnitt `{section}\' in @cite{{book}}',
                       'see section `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}' => '',
                       'see section `{section}\' in @cite{{book}}' => 'siehe Abschnitt `{section}\' in @cite{{book}}',
                       'see section {reference_name}' => 'siehe Abschnitt {reference_name}',
                       'see {node_file_href}' => 'siehe {node_file_href}',
                       'see {node_file_href} section `{section}\' in @cite{{book}}' => 'siehe {node_file_href} im Abschnitt `{section}\' in @cite{{book}}',
                       'see {reference_name}' => 'siehe {reference_name}',
                       'see {reference}' => 'siehe {reference_name}',
                       'see {reference} in @cite{{book}}' => 'siehe {node_file_href} @cite{{book}}',
                       'see {ref}' => '',
                       'see {title_ref}' => '',
                       '{acronym_like} ({explanation})' => '{acronym_like} ({explanation})',
                       '{month} {day}, {year}' => '{day}. {month} {year}',
                       '{name} of {class}' => '',
                       '{name} on {class}' => '',
                       '{node_file_href} section `{section}\' in @cite{{book}}' => '{node_file_href} in Abschnitt `{section}\' in @cite{{book}}',
                       '{reference_name}' => '{reference_name}',
                       '{reference}' => '{reference_name}',
                       '{reference} in @cite{{book}}' => 'siehe @cite{{book}}',
                       '{ref}' => '',
                       '{style} {number}' => '{style} {number}',
                       '{style}: {caption_first_line}' => '{style}: {caption_first_line}',
                       '{style}: {shortcaption_first_line}' => '{style}: {shortcaption_first_line}',
                       '{title_ref}' => ''
                     };


code:
# Automatically generated file. Edit the .po file instead.
$LANGUAGES->{'en'} = {
                       '  The buttons in the navigation panels have the following meaning:' => '',
                       '  where the @strong{ Example } assumes that the current position is at @strong{ Subsubsection One-Two-Three } of a document of the following structure:' => '',
                       ' Up ' => '',
                       '(outside of any element)' => '',
                       '(outside of any node)' => '',
                       '@b{{quotation_arg}:} ' => '',
                       '@center --- @emph{{author}}
' => '',
                       '@cite{{book}}' => '',
                       '@{No value for `{value}\'@}' => '',
                       'About' => '',
                       'About (help)' => '',
                       'About This Document' => '',
                       'April' => '',
                       'August' => '',
                       'Back' => '',
                       'Back section in previous file' => '',
                       'Beginning of this chapter or previous chapter' => '',
                       'Button' => '',
                       'Contents' => '',
                       'Cover (top) of document' => '',
                       'Current' => '',
                       'Current Position' => '',
                       'Current section' => '',
                       'December' => '',
                       'FastBack' => '',
                       'FastForward' => '',
                       'February' => '',
                       'First' => '',
                       'First section in reading order' => '',
                       'Following' => '',
                       'Following node' => '',
                       'Footnotes' => '',
                       'Forward' => '',
                       'Forward section in next file' => '',
                       'From 1.2.3 go to' => '',
                       'Go to' => '',
                       'Index' => '',
                       'Index Entry' => '',
                       'January' => '',
                       'July' => '',
                       'Jump to' => '',
                       'June' => '',
                       'Last' => '',
                       'Last section in reading order' => '',
                       'March' => '',
                       'May' => '',
                       'Menu:' => '',
                       'Name' => '',
                       'Next' => '',
                       'Next chapter' => '',
                       'Next file' => '',
                       'Next node' => '',
                       'Next section in reading order' => '',
                       'Next section on same level' => '',
                       'NextFile' => '',
                       'Node following in node reading order' => '',
                       'Node up' => '',
                       'NodeNext' => '',
                       'NodePrev' => '',
                       'NodeUp' => '',
                       'November' => '',
                       'October' => '',
                       'Overview' => '',
                       'Prev' => '',
                       'PrevFile' => '',
                       'Previous' => '',
                       'Previous file' => '',
                       'Previous node' => '',
                       'Previous section in reading order' => '',
                       'Previous section on same level' => '',
                       'Section' => '',
                       'Section One' => '',
                       'See ' => '',
                       'See @cite{{book}}' => '',
                       'See `{section}\'' => '',
                       'See `{section}\' in @cite{{book}}' => '',
                       'See section `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}' => '',
                       'See section {reference_name}' => '',
                       'See {reference_name}' => '',
                       'See {reference}' => '',
                       'See {reference} in @cite{{book}}' => '',
                       'See {ref}' => '',
                       'See {title_ref}' => '',
                       'September' => '',
                       'Short Table of Contents' => '',
                       'Short table of contents' => '',
                       'Subsection One-Four' => '',
                       'Subsection One-One' => '',
                       'Subsection One-Three' => '',
                       'Subsection One-Two' => '',
                       'Subsubsection One-Two-Four' => '',
                       'Subsubsection One-Two-One' => '',
                       'Subsubsection One-Two-Three' => '',
                       'Subsubsection One-Two-Two' => '',
                       'Table of Contents' => '',
                       'Table of contents' => '',
                       'The node you are looking for is at {href}.' => '',
                       'This' => '',
                       'This document was generated on @i{{date}} using @uref{{program_homepage}, @i{{program}}}.' => '',
                       'This document was generated using @uref{{program_homepage}, @emph{{program}}}.' => '',
                       'Top' => '',
                       'Untitled Document' => '',
                       'Up' => '',
                       'Up node' => '',
                       'Up section' => '',
                       '`{section}\'' => '',
                       '`{section}\' in @cite{{book}}' => '',
                       'current' => '',
                       'on @emph{{date}}' => '',
                       'section `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}' => '',
                       'see ' => '',
                       'see @cite{{book}}' => '',
                       'see `{section}\'' => '',
                       'see `{section}\' in @cite{{book}}' => '',
                       'see section `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}' => '',
                       'see section {reference_name}' => '',
                       'see {reference_name}' => '',
                       'see {reference}' => '',
                       'see {reference} in @cite{{book}}' => '',
                       'see {ref}' => '',
                       'see {title_ref}' => '',
                       '{acronym_like} ({explanation})' => '',
                       '{month} {day}, {year}' => '',
                       '{name} of {class}' => '',
                       '{name} on {class}' => '',
                       '{reference_name}' => '',
                       '{reference}' => '',
                       '{reference} in @cite{{book}}' => '',
                       '{ref}' => '',
                       '{style} {number}' => '',
                       '{style}: {caption_first_line}' => '',
                       '{style}: {shortcaption_first_line}' => '',
                       '{title_ref}' => ''
                     };


code:
# Automatically generated file. Edit the .po file instead.
$LANGUAGES->{'es'} = {
                       '  The buttons in the navigation panels have the following meaning:' => '  Los botones de los paneles de navegaci@\'on tienen el significado siguiente:',
                       '  where the @strong{ Example } assumes that the current position is at @strong{ Subsubsection One-Two-Three } of a document of the following structure:' => '  donde el @strong{ Ejemplo } supone que la posici@\'on actual est@\'a en la @strong{ Sub-subsecci@\'on uno-dos-tres } de un documento de la estructura siguiente:',
                       ' Up ' => ' Subir ',
                       '(outside of any element)' => '',
                       '(outside of any node)' => '',
                       '@b{{quotation_arg}:} ' => '',
                       '@center --- @emph{{author}}
' => '',
                       '@cite{{book}}' => '',
                       '@{No value for `{value}\'@}' => '',
                       'About' => 'Acerca de',
                       'About (help)' => 'Acerca de (p@\'agina de ayuda)',
                       'About This Document' => 'Acerca de este documento',
                       'April' => 'abril',
                       'August' => 'agosto',
                       'Back' => 'Atr@\'as',
                       'Back section in previous file' => 'Retroceder secci@\'on en el archivo anterior',
                       'Beginning of this chapter or previous chapter' => 'Inicio de este cap@\'itulo o cap@\'itulo anterior',
                       'Button' => 'Bot@\'on',
                       'Contents' => '@\'Indice general',
                       'Cover (top) of document' => 'Portada del documento',
                       'Current' => '',
                       'Current Position' => 'Posici@\'on actual',
                       'Current section' => 'Secci@\'on actual',
                       'December' => 'diciembre',
                       'FastBack' => 'Retroceso r@\'apido',
                       'FastForward' => 'Avance r@\'apido',
                       'February' => 'febrero',
                       'First' => 'Primero',
                       'First section in reading order' => 'Primera secci@\'on en orden de lectura',
                       'Following' => 'Siguiente',
                       'Following node' => 'Nodo siguiente',
                       'Footnotes' => 'Notas al pie',
                       'Forward' => 'Adelante',
                       'Forward section in next file' => 'Avanzar secci@\'on en el pr@\'oximo archivo',
                       'From 1.2.3 go to' => 'Desde 1.2.3 ir a',
                       'Go to' => 'Ir a',
                       'Index' => '@\'Indice',
                       'Index Entry' => 'Entrada de @\'indice',
                       'January' => 'enero',
                       'July' => 'julio',
                       'Jump to' => 'Saltar a',
                       'June' => 'junio',
                       'Last' => '@\'Ultimo',
                       'Last section in reading order' => '@\'Ultima secci@\'on en orden de lectura',
                       'March' => 'marzo',
                       'May' => 'mayo',
                       'Menu:' => 'Men@\'u:',
                       'Name' => 'Nombre',
                       'Next' => 'Siguiente',
                       'Next chapter' => 'Cap@\'itulo siguiente',
                       'Next file' => 'Archivo siguiente',
                       'Next node' => 'Nodo siguiente',
                       'Next section in reading order' => 'Secci@\'on siguiente en orden de lectura',
                       'Next section on same level' => 'Secci@\'on siguiente en el mismo nivel',
                       'NextFile' => 'ArchivoSiguiente',
                       'Node following in node reading order' => 'Nodo siguiente en orden de lectura de nodos',
                       'Node up' => 'Subir nodo',
                       'NodeNext' => 'NodoSiguiente',
                       'NodePrev' => 'NodoAnterior',
                       'NodeUp' => 'SubirNodo',
                       'November' => 'noviembre',
                       'October' => 'octubre',
                       'Overview' => 'Panor@\'amica',
                       'Prev' => 'Ant',
                       'PrevFile' => 'ArchivoAnt',
                       'Previous' => '',
                       'Previous file' => 'Archivo anterior',
                       'Previous node' => 'Nodo anterior',
                       'Previous section in reading order' => 'Secci@\'on anterior en orden de lectura',
                       'Previous section on same level' => 'Secci@\'on anterior en el mismo nivel',
                       'Section' => 'Secci@\'on',
                       'Section One' => 'Secci@\'on Uno',
                       'See ' => '',
                       'See @cite{{book}}' => 'V@\'ease @cite{{book}}',
                       'See `{section}\'' => 'Subir secci@\'on',
                       'See `{section}\' in @cite{{book}}' => 'V@\'ease la secci@\'on `{section}\' en @cite{{book}}',
                       'See section `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}' => '',
                       'See section {reference_name}' => 'V@\'ease la secci@\'on  {reference_name}',
                       'See {node_file_href}' => 'V@\'ease {node_file_href}',
                       'See {node_file_href} section `{section}\' in @cite{{book}}' => 'V@\'ease {node_file_href} secci@\'on `{section}\' en @cite{{book}}',
                       'See {reference_name}' => 'V@\'ease {reference_name}',
                       'See {reference}' => 'V@\'ease {reference_name}',
                       'See {reference} in @cite{{book}}' => 'V@\'ease {node_file_href} @cite{{book}}',
                       'See {ref}' => '',
                       'See {title_ref}' => '',
                       'September' => 'septiembre',
                       'Short Table of Contents' => 'Resumen del Contenido',
                       'Short table of contents' => 'Resumen del contenido',
                       'Subsection One-Four' => 'Subsecci@\'on uno-cuatro',
                       'Subsection One-One' => 'Subsecci@\'on uno-uno',
                       'Subsection One-Three' => 'Subsecci@\'on uno-tres',
                       'Subsection One-Two' => 'Subsecci@\'on uno-dos',
                       'Subsubsection One-Two-Four' => 'Sub-subsecci@\'on uno-dos-cuatro',
                       'Subsubsection One-Two-One' => 'Sub-subsecci@\'on uno-dos-uno',
                       'Subsubsection One-Two-Three' => 'Sub-subsecci@\'on uno-dos-tres',
                       'Subsubsection One-Two-Two' => 'Sub-subsecci@\'on uno-dos-dos',
                       'Table of Contents' => '@\'{@dotless{I}}ndice General',
                       'Table of contents' => '@\'{@dotless{I}}ndice general',
                       'The node you are looking for is at {href}.' => 'El nodo que busca se encuentra en {href}.',
                       'This' => 'Este',
                       'This document was generated on @i{{date}} using @uref{{program_homepage}, @i{{program}}}.' => 'Este documento se gener@\'o el @i{{date}} utilizando @uref{{program_homepage}, @i{{program}}}.',
                       'This document was generated using @uref{{program_homepage}, @emph{{program}}}.' => 'Este documento se gener@\'o utilizando @uref{{program_homepage}, @emph{{program}}}.',
                       'Top' => 'Arriba',
                       'Untitled Document' => 'Documento sin t@\'itulo',
                       'Up' => 'Subir',
                       'Up node' => 'Subir nodo',
                       'Up section' => 'Subir secci@\'on',
                       '`{section}\'' => 'Subir secci@\'on',
                       '`{section}\' in @cite{{book}}' => 'secci@\'on `{section}\' en @cite{{book}}',
                       'current' => 'actual',
                       'on @emph{{date}}' => 'el @emph{{date}}',
                       'section `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}' => '',
                       'see ' => '',
                       'see @cite{{book}}' => 'v@\'ease @cite{{book}}',
                       'see `{section}\'' => 'Subir secci@\'on',
                       'see `{section}\' in @cite{{book}}' => 'secci@\'on `{section}\' en @cite{{book}}',
                       'see section `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}' => '',
                       'see section `{section}\' in @cite{{book}}' => 'v@\'ease la secci@\'on `{section}\' en @cite{{book}}',
                       'see section {reference_name}' => 'v@\'ease la secci@\'on {reference_name}',
                       'see {node_file_href}' => 'v@\'ease {node_file_href}',
                       'see {node_file_href} section `{section}\' in @cite{{book}}' => 'v@\'ease {node_file_href} secci@\'on `{section}\' en @cite{{book}}',
                       'see {reference_name}' => 'v@\'ease {reference_name}',
                       'see {reference}' => 'v@\'ease {reference_name}',
                       'see {reference} in @cite{{book}}' => 'v@\'ease {node_file_href} @cite{{book}}',
                       'see {ref}' => '',
                       'see {title_ref}' => '',
                       '{acronym_like} ({explanation})' => '',
                       '{month} {day}, {year}' => 'el {day} {month} {year}',
                       '{name} of {class}' => '{name} de {class}',
                       '{name} on {class}' => '{name} en {class}',
                       '{node_file_href} section `{section}\' in @cite{{book}}' => '{node_file_href} secci@\'on `{section}\' en @cite{{book}}',
                       '{reference_name}' => '',
                       '{reference}' => 'v@\'ease {reference_name}',
                       '{reference} in @cite{{book}}' => 'v@\'ease @cite{{book}}',
                       '{ref}' => '',
                       '{style} {number}' => '',
                       '{style}: {caption_first_line}' => '',
                       '{style}: {shortcaption_first_line}' => '',
                       '{title_ref}' => ''
                     };


code:
# Automatically generated file. Edit the .po file instead.
$LANGUAGES->{'fr'} = {
                       '  The buttons in the navigation panels have the following meaning:' => '  Les boutons de navigation ont la signification suivante :',
                       '  where the @strong{ Example } assumes that the current position is at @strong{ Subsubsection One-Two-Three } of a document of the following structure:' => '  Dans cet exemple on est @`a @strong{ Sous sous section un-deux-trois } dans un document dont la structure est :',
                       ' Up ' => 'Plus haut',
                       '(outside of any element)' => '',
                       '(outside of any node)' => '',
                       '@b{{quotation_arg}:} ' => '',
                       '@center --- @emph{{author}}
' => '',
                       '@cite{{book}}' => '',
                       '@{No value for `{value}\'@}' => '',
                       'About' => 'A propos',
                       'About (help)' => 'A propos (page d\'aide)',
                       'About This Document' => 'A propos de ce document',
                       'April' => 'avril',
                       'August' => 'ao@^ut',
                       'Back' => 'Retour',
                       'Back section in previous file' => '',
                       'Beginning of this chapter or previous chapter' => 'D@\'ebut de ce chapitre ou chapitre pr@\'ec@\'edent',
                       'Button' => 'Bouton',
                       'Contents' => 'Table des mati@`eres',
                       'Cover (top) of document' => 'Couverture (top) du document',
                       'Current' => '',
                       'Current Position' => 'Position',
                       'Current section' => 'Section actuelle',
                       'December' => 'd@\'ecembre',
                       'FastBack' => 'RetourRapide',
                       'FastForward' => 'AvanceRapide',
                       'February' => 'f@\'evrier',
                       'First' => 'Premier',
                       'First section in reading order' => 'Premi@`e section dans l\'ordre de lecture',
                       'Following' => 'Suivant',
                       'Following node' => 'N@oe{}ud suivant',
                       'Footnotes' => 'Notes de bas de page',
                       'Forward' => 'Avant',
                       'Forward section in next file' => '',
                       'From 1.2.3 go to' => 'Depuis 1.2.3 aller @`a',
                       'Go to' => 'Aller @`a',
                       'Index' => 'Index',
                       'Index Entry' => 'Entr@\'ee d\'index',
                       'January' => 'janvier',
                       'July' => 'juillet',
                       'Jump to' => 'Aller @`a',
                       'June' => 'juin',
                       'Last' => 'Dernier',
                       'Last section in reading order' => 'Derni@`ere section dans l\'ordre de lecture',
                       'March' => 'mars',
                       'May' => 'mai',
                       'Menu:' => 'Menu@ :',
                       'Name' => 'Nom',
                       'Next' => 'Suivant',
                       'Next chapter' => 'Chapitre suivant',
                       'Next file' => 'Fichier suivant',
                       'Next node' => 'N@oe{}ud suivant',
                       'Next section in reading order' => 'Section suivante dans l\'ordre de lecture',
                       'Next section on same level' => 'Section suivante au m@^eme niveau',
                       'NextFile' => 'FichierSuivant',
                       'Node following in node reading order' => 'N@oe{}ud suivant dans l\'ordre de lecture',
                       'Node up' => 'N@oe{}ud au dessus',
                       'NodeNext' => 'N@oe{}udSuivant',
                       'NodePrev' => 'N@oe{}udPr@\'ec@\'edent',
                       'NodeUp' => 'N@oe{}udMonter',
                       'November' => 'novembre',
                       'October' => 'octobre',
                       'Overview' => 'Vue d\'ensemble',
                       'Prev' => 'Pr@\'ec@\'edent',
                       'PrevFile' => '',
                       'Previous' => '',
                       'Previous file' => 'Fichier pr@\'ec@\'edent',
                       'Previous node' => 'N@oe{}ud pr@\'ec@\'edent',
                       'Previous section in reading order' => 'Section pr@\'ec@\'edente dans l\'ordre de lecture',
                       'Previous section on same level' => 'Section pr@\'ec@\'edente au m@^eme niveau',
                       'Section' => '',
                       'Section One' => 'Section un',
                       'See ' => '',
                       'See @cite{{book}}' => 'Voir @cite{{book}}',
                       'See `{section}\'' => 'Section sup@\'erieure',
                       'See `{section}\' in @cite{{book}}' => 'Voir la section `{section}\' dans @cite{{book}}',
                       'See section `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}' => '',
                       'See section {reference_name}' => 'Voir la section {reference_name}',
                       'See {node_file_href}' => 'Voir {node_file_href}',
                       'See {node_file_href} section `{section}\' in @cite{{book}}' => 'Voir {node_file_href} section `{section}\' dans @cite{{book}}',
                       'See {reference_name}' => 'Voir {reference_name}',
                       'See {reference}' => 'Voir {reference_name}',
                       'See {reference} in @cite{{book}}' => 'Voir {node_file_href} @cite{{book}}',
                       'See {ref}' => '',
                       'See {title_ref}' => '',
                       'September' => 'septembre',
                       'Short Table of Contents' => 'R@\'esum@\'e du contenu',
                       'Short table of contents' => 'R@\'esum@\'e du contenu',
                       'Subsection One-Four' => 'Sous section un-quatre',
                       'Subsection One-One' => 'Sous section un-un',
                       'Subsection One-Three' => 'Sous section un-trois',
                       'Subsection One-Two' => 'Sous section un-deux',
                       'Subsubsection One-Two-Four' => 'Sous sous section un-deux-quatre',
                       'Subsubsection One-Two-One' => 'Sous sous section un-deux-un',
                       'Subsubsection One-Two-Three' => 'Sous sous section un-deux-trois',
                       'Subsubsection One-Two-Two' => 'Sous sous section un-deux-deux',
                       'Table of Contents' => 'Table des mati@`eres',
                       'Table of contents' => 'Table des mati@`eres',
                       'The node you are looking for is at {href}.' => 'Le n@oe{}ud que vous recherchez est ici@ : {href}.',
                       'This' => 'Ici',
                       'This document was generated on @i{{date}} using @uref{{program_homepage}, @i{{program}}}.' => 'Ce document a @\'et@\'e g@\'en@\'er@\'e le @emph{{date}} en utilisant @uref{{program_homepage}, @emph{{program}}}',
                       'This document was generated using @uref{{program_homepage}, @emph{{program}}}.' => 'Ce document a @\'et@\'e g@\'en@\'er@\'e en utilisant @uref{{program_homepage}, @emph{{program}}}.',
                       'Top' => 'Racine',
                       'Untitled Document' => 'Document sans titre',
                       'Up' => 'Monter',
                       'Up node' => 'N@oe{}ud au dessus',
                       'Up section' => 'Section sup@\'erieure',
                       '`{section}\'' => 'Section sup@\'erieure',
                       '`{section}\' in @cite{{book}}' => 'section `{section}\' dans @cite{{book}}',
                       'current' => 'courante',
                       'on @emph{{date}}' => 'le @emph{{date}}',
                       'section `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}' => '',
                       'see ' => '',
                       'see @cite{{book}}' => 'voir @cite{{book}}',
                       'see `{section}\'' => 'Section sup@\'erieure',
                       'see `{section}\' in @cite{{book}}' => 'section `{section}\' dans @cite{{book}}',
                       'see section `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}' => '',
                       'see section `{section}\' in @cite{{book}}' => 'voir la section `{section}\' dans @cite{{book}}',
                       'see section {reference_name}' => 'voir la section {reference_name}',
                       'see {node_file_href}' => 'voir {node_file_href}',
                       'see {node_file_href} section `{section}\' in @cite{{book}}' => 'voir {node_file_href} section `{section}\' dans @cite{{book}}',
                       'see {reference_name}' => 'voir {reference_name}',
                       'see {reference}' => 'voir {reference_name}',
                       'see {reference} in @cite{{book}}' => 'voir {node_file_href} @cite{{book}}',
                       'see {ref}' => '',
                       'see {title_ref}' => '',
                       '{acronym_like} ({explanation})' => '',
                       '{month} {day}, {year}' => 'le {day} {month} {year}',
                       '{name} of {class}' => '{name} de {class}',
                       '{name} on {class}' => '{name} de {class}',
                       '{node_file_href} section `{section}\' in @cite{{book}}' => '{node_file_href} section `{section}\' dans @cite{{book}}',
                       '{reference_name}' => '',
                       '{reference}' => 'voir {reference_name}',
                       '{reference} in @cite{{book}}' => 'voir @cite{{book}}',
                       '{ref}' => '',
                       '{style} {number}' => '',
                       '{style}: {caption_first_line}' => '',
                       '{style}: {shortcaption_first_line}' => '',
                       '{title_ref}' => ''
                     };


code:
# Automatically generated file. Edit the .po file instead.
$LANGUAGES->{'hu'} = {
                       '  The buttons in the navigation panels have the following meaning:' => '  A navigációs panelen levő gombok jelentése a következő:',
                       '  where the @strong{ Example } assumes that the current position is at @strong{ Subsubsection One-Two-Three } of a document of the following structure:' => '  @strong{ Példánkban } az aktuális pozíció az @strong{ 1.2.3 alalszakasz } egy olyan dokumentumban, melynek szerkezete a következő:',
                       ' Up ' => 'Fel',
                       '(outside of any element)' => '(bármelyik elemen kívül)',
                       '(outside of any node)' => '(bármelyik csomóponton kívül)',
                       '@b{{quotation_arg}:} ' => '@b{{quotation_arg}:} ',
                       '@center --- @emph{{author}}
' => '',
                       '@cite{{book}}' => '@cite{{book}}',
                       '@{No value for `{value}\'@}' => '@{Nincs értéke ennek: `{value}\'@}',
                       'About' => 'Súgó',
                       'About (help)' => 'Segítség a navigációhoz',
                       'About This Document' => 'A navigációs panel használata',
                       'April' => 'április',
                       'August' => 'augusztus',
                       'Back' => 'Vissza',
                       'Back section in previous file' => 'Előző fájl hátsó szakasza',
                       'Beginning of this chapter or previous chapter' => 'Fejezet eleje vagy előző fejezet',
                       'Button' => 'Gomb',
                       'Contents' => 'Tartalom',
                       'Cover (top) of document' => 'Dokumentum címoldala',
                       'Current' => 'Aktuális',
                       'Current Position' => 'Aktuális pozíció',
                       'Current section' => 'Aktuális szakasz',
                       'December' => 'december',
                       'FastBack' => 'Visszaugrás',
                       'FastForward' => 'Előreugrás',
                       'February' => 'február',
                       'First' => 'Első',
                       'First section in reading order' => 'Első szakasz az olvasási sorrendben',
                       'Following' => 'Következő',
                       'Following node' => 'Következő csomópont',
                       'Footnotes' => 'Lábjegyzet',
                       'Forward' => 'Előre',
                       'Forward section in next file' => 'Következő fájl elülső szakasza',
                       'From 1.2.3 go to' => '1.2.3-ból ide jutunk',
                       'Go to' => 'Cél',
                       'Index' => 'Tárgymutató',
                       'Index Entry' => 'Tárgymutató-bejegyzés',
                       'January' => 'január',
                       'July' => 'július',
                       'Jump to' => 'Ugorj ide',
                       'June' => 'június',
                       'Last' => 'Utolsó',
                       'Last section in reading order' => 'Utolsó szakasz az olvasási sorrendben',
                       'March' => 'március',
                       'May' => 'május',
                       'Menu:' => 'Menü:',
                       'Name' => 'Név',
                       'Next' => 'Következő',
                       'Next chapter' => 'Következő fejezet',
                       'Next file' => 'Következő fájl',
                       'Next node' => 'Következő csomópont',
                       'Next section in reading order' => 'Következő szakasz az olvasási sorrendben',
                       'Next section on same level' => 'Következő szakasz ugyanazon a szinten',
                       'NextFile' => 'KövetkezőFájl',
                       'Node following in node reading order' => 'Következő csomópont az olvasási sorrendben',
                       'Node up' => 'Szülő csomópont',
                       'NodeNext' => 'KövetkezőCsomópont',
                       'NodePrev' => 'ElőzőCsomópont',
                       'NodeUp' => 'SzülőCsomópont',
                       'November' => 'november',
                       'October' => 'október',
                       'Overview' => 'Áttekintés',
                       'Prev' => 'Előző',
                       'PrevFile' => 'ElőzőFájl',
                       'Previous' => 'Előző',
                       'Previous file' => 'Előző fájl',
                       'Previous node' => 'Előző csomópont',
                       'Previous section in reading order' => 'Előző szakasz az olvasási sorrendben',
                       'Previous section on same level' => 'Előző szakasz ugyanazon a szinten',
                       'Section' => 'Szakasz',
                       'Section One' => 'szakasz',
                       'See ' => 'Ld. ',
                       'See @cite{{book}}' => 'Ld. @cite{{book}}',
                       'See `{section}\'' => 'Szülő szakasz',
                       'See `{section}\' in @cite{{book}}' => 'Ld. ezt a szakaszt: `{section}\' itt: @cite{{book}}',
                       'See section `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}' => 'Ld. ezt a szakaszt: `@asis{}`{section_name}\'@asis{}\' itt: @cite{{book}}',
                       'See section {reference_name}' => 'Ld. ezt a szakaszt: {reference_name}',
                       'See {node_file_href}' => 'Ld. {node_file_href}',
                       'See {node_file_href} section `{section}\' in @cite{{book}}' => 'Ld. {node_file_href} ezt a szakaszt: `{section}\' itt: @cite{{book}}',
                       'See {reference_name}' => 'Ld. {reference_name}',
                       'See {reference}' => 'Ld. {reference_name}',
                       'See {reference} in @cite{{book}}' => 'See {node_file_href} @cite{{book}}',
                       'See {ref}' => 'Ld. {ref}',
                       'See {title_ref}' => 'Ld. {title_ref}',
                       'September' => 'szeptember',
                       'Short Table of Contents' => 'Rövid tartalomjegyzék',
                       'Short table of contents' => 'Rövid tartalomjegyzék',
                       'Subsection One-Four' => 'alszakasz',
                       'Subsection One-One' => 'alszakasz',
                       'Subsection One-Three' => 'alszakasz',
                       'Subsection One-Two' => 'alszakasz',
                       'Subsubsection One-Two-Four' => 'alalszakasz',
                       'Subsubsection One-Two-One' => 'alalszakasz',
                       'Subsubsection One-Two-Three' => 'alalszakasz',
                       'Subsubsection One-Two-Two' => 'alalszakasz',
                       'Table of Contents' => 'Tartalomjegyzék',
                       'Table of contents' => 'Tartalomjegyzék',
                       'The node you are looking for is at {href}.' => 'A keresett csomópont itt található: {href}.',
                       'This' => 'Ez a(z)',
                       'This document was generated on @i{{date}} using @uref{{program_homepage}, @i{{program}}}.' => 'Ezt a dokumentumot @i{{date}} napon generálta a(z) @uref{{program_homepage}, @i{{program}}}.',
                       'This document was generated using @uref{{program_homepage}, @emph{{program}}}.' => 'Ezt a dokumentumot a(z) @uref{{program_homepage}, @emph{{program}}} generálta.',
                       'Top' => 'Címoldal',
                       'Untitled Document' => 'Névtelen dokumentum',
                       'Up' => 'Fel',
                       'Up node' => 'Szülő csomópont',
                       'Up section' => 'Szülő szakasz',
                       '`{section}\'' => 'Szülő szakasz',
                       '`{section}\' in @cite{{book}}' => 'szakasz: `{section}\' itt: @cite{{book}}',
                       'current' => 'aktuális',
                       'on @emph{{date}}' => 'ekkor: @emph{{date}}',
                       'section `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}' => 'szakasz: `@asis{}`{section_name}\'@asis{}\' itt: @cite{{book}}',
                       'see ' => 'ld. ',
                       'see @cite{{book}}' => 'ld. @cite{{book}}',
                       'see `{section}\'' => 'Szülő szakasz',
                       'see `{section}\' in @cite{{book}}' => 'szakasz: `{section}\' itt: @cite{{book}}',
                       'see section `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}' => 'ld. ezt a szakaszt: `@asis{}`{section_name}\'@asis{}\' itt: @cite{{book}}',
                       'see section `{section}\' in @cite{{book}}' => 'ld. ezt a szakaszt: `{section}\' itt: @cite{{book}}',
                       'see section {reference_name}' => 'ld. ezt a szakaszt: {reference_name}',
                       'see {node_file_href}' => 'ld. {node_file_href}',
                       'see {node_file_href} section `{section}\' in @cite{{book}}' => 'ld. {node_file_href} ezt a szakaszt: `{section}\' itt: @cite{{book}}',
                       'see {reference_name}' => 'ld. {reference_name}',
                       'see {reference}' => 'ld. {reference_name}',
                       'see {reference} in @cite{{book}}' => 'ld. {node_file_href} @cite{{book}}',
                       'see {ref}' => 'ld. {ref}',
                       'see {title_ref}' => 'ld. {title_ref}',
                       '{acronym_like} ({explanation})' => '{acronym_like} ({explanation})',
                       '{month} {day}, {year}' => '',
                       '{name} of {class}' => '{name} típusa: {class}',
                       '{name} on {class}' => '{name} ezen: {class}',
                       '{node_file_href}' => '{node_file_href}',
                       '{node_file_href} section `{section}\' in @cite{{book}}' => '{node_file_href} szakasz: `{section}\' itt: @cite{{book}}',
                       '{reference_name}' => '{reference_name}',
                       '{reference}' => '{reference_name}',
                       '{reference} in @cite{{book}}' => '{node_file_href} @cite{{book}}',
                       '{ref}' => '{ref}',
                       '{style} {number}' => '{style} {number}',
                       '{style}: {caption_first_line}' => '{style}: {caption_first_line}',
                       '{style}: {shortcaption_first_line}' => '{style}: {shortcaption_first_line}',
                       '{title_ref}' => '{title_ref}'
                     };


code:
# Automatically generated file. Edit the .po file instead.
$LANGUAGES->{'it'} = {
                       '  The buttons in the navigation panels have the following meaning:' => '  I bottoni nei pannelli di navigazione hanno il seguente significato:',
                       '  where the @strong{ Example } assumes that the current position is at @strong{ Subsubsection One-Two-Three } of a document of the following structure:' => '  dove @strong{ Esempio } assume che l\'attuale posizione è alla @strong{ Sottosottosezione Uno-Due-Tre } di un documento che ha la seguente struttura:',
                       ' Up ' => ' Su ',
                       '(outside of any element)' => '(fuori da qualsiasi elemento)',
                       '(outside of any node)' => '(fuori da qualsiasi nodo)',
                       '@b{{quotation_arg}:} ' => '@b{{quotation_arg}:} ',
                       '@center --- @emph{{author}}
' => '',
                       '@cite{{book}}' => '@cite{{book}}',
                       '@{No value for `{value}\'@}' => '@{Nessun valore per `{value}\'@}',
                       'About' => 'Informazioni',
                       'About (help)' => 'Informazioni (aiuto)',
                       'About This Document' => 'Informazioni su questo documento',
                       'April' => 'Aprile',
                       'August' => 'Agosto',
                       'Back' => 'Indietro',
                       'Back section in previous file' => '',
                       'Beginning of this chapter or previous chapter' => 'Inizio di questo capitolo o capitolo precedente',
                       'Button' => 'Bottone',
                       'Contents' => 'Contenuti',
                       'Cover (top) of document' => 'Copertina (inizio) del documento',
                       'Current' => 'Attuale',
                       'Current Position' => 'Posizione Attuale',
                       'Current section' => 'Sezione attuale',
                       'December' => 'Dicembre',
                       'FastBack' => 'Indietro veloce',
                       'FastForward' => 'Avanti veloce',
                       'February' => 'Febbraio',
                       'First' => 'Primo',
                       'First section in reading order' => 'Prima sezione in ordine di lettura',
                       'Following' => 'Seguente',
                       'Following node' => 'Nodo seguente',
                       'Footnotes' => 'Note a piè di pagina',
                       'Forward' => 'Avanti',
                       'Forward section in next file' => 'Sezione successiva nel prossimo file',
                       'From 1.2.3 go to' => 'Da 1.2.3 vai a',
                       'Go to' => 'Vai a',
                       'Index' => 'Indice',
                       'Index Entry' => 'Voce dell\'indice',
                       'January' => 'Gennaio',
                       'July' => 'Luglio',
                       'Jump to' => 'Salta a',
                       'June' => 'Giugno',
                       'Last' => 'Ultimo',
                       'Last section in reading order' => 'Ultima sezione in ordine di lettura',
                       'March' => 'Marzo',
                       'May' => 'Maggio',
                       'Menu:' => 'Menu',
                       'Name' => 'Nome',
                       'Next' => 'Successivo',
                       'Next chapter' => 'Capitolo successivo',
                       'Next file' => 'File successivo',
                       'Next node' => 'Nodo successivo',
                       'Next section in reading order' => 'Sezione successiva in ordine di lettura',
                       'Next section on same level' => 'Sezione successiva sullo stesso livello',
                       'NextFile' => 'File successivo',
                       'Node following in node reading order' => 'Nodo seguente in ordine di lettura',
                       'Node up' => 'Nodo superiore',
                       'NodeNext' => 'Nodo successivo',
                       'NodePrev' => 'Nodo precedente',
                       'NodeUp' => 'Nodo superiore',
                       'November' => 'Novembre',
                       'October' => 'Ottobre',
                       'Overview' => 'Panoramica',
                       'Prev' => 'Prec.',
                       'PrevFile' => 'File precedente',
                       'Previous' => 'Precedente',
                       'Previous file' => 'File precedente',
                       'Previous node' => 'Nodo precedente',
                       'Previous section in reading order' => 'Sezione precedente in ordine di lettura',
                       'Previous section on same level' => 'Sezione precedente sullo stesso livello',
                       'Section' => 'Sezione',
                       'Section One' => 'Sezione uno',
                       'See ' => 'Vedi',
                       'See @cite{{book}}' => 'Vedi @cite{{book}}',
                       'See `{section}\'' => 'Sezione superiore',
                       'See `{section}\' in @cite{{book}}' => 'Vedi la sezione `{section}\' in @cite{{book}}',
                       'See section `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}' => 'Vedi la sezione `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}',
                       'See section {reference_name}' => 'Vedi la sezione {reference_name}',
                       'See {node_file_href}' => 'Vedi {node_file_href}',
                       'See {node_file_href} section `{section}\' in @cite{{book}}' => 'Vedi {node_file_href} nella sezione `{section}\' in @cite{{book}}',
                       'See {reference_name}' => 'Vedi {reference_name}',
                       'See {reference}' => 'Vedi {reference_name}',
                       'See {reference} in @cite{{book}}' => 'Vedi {node_file_href} @cite{{book}}',
                       'See {ref}' => 'Vedi {ref}',
                       'See {title_ref}' => 'Vedi {title_ref}',
                       'September' => 'Settembre',
                       'Short Table of Contents' => 'Indice breve',
                       'Short table of contents' => 'Indice breve',
                       'Subsection One-Four' => 'Sottosezione Uno-Quattro',
                       'Subsection One-One' => 'Sottosezione Uno-Uno',
                       'Subsection One-Three' => 'Sottosezione Uno-Tre',
                       'Subsection One-Two' => 'Sottosezione Uno-Due',
                       'Subsubsection One-Two-Four' => 'Sottosottosezione Uno-Due-Quattro',
                       'Subsubsection One-Two-One' => 'Sottosottosezione Uno-Due-Uno',
                       'Subsubsection One-Two-Three' => 'Sottosottosezione Uno-Due-Tre',
                       'Subsubsection One-Two-Two' => 'Sottosottosezione Uno-Due-Due',
                       'Table of Contents' => 'Indice',
                       'Table of contents' => 'Indice',
                       'The node you are looking for is at {href}.' => 'Il nodo che stai cercando è {href}',
                       'This' => 'Questo',
                       'This document was generated on @i{{date}} using @uref{{program_homepage}, @i{{program}}}.' => 'Questo documento è stato generato il @i{{date}} con @uref{{program_homepage}, @i{{program}}}.',
                       'This document was generated using @uref{{program_homepage}, @emph{{program}}}.' => 'Questo documento è stato generato con @uref{{program_homepage}, @emph{{program}}}.',
                       'Top' => 'Inizio',
                       'Untitled Document' => 'Documento senza titolo',
                       'Up' => 'Su',
                       'Up node' => 'Nodo superiore',
                       'Up section' => 'Sezione superiore',
                       '`{section}\'' => 'Sezione superiore',
                       '`{section}\' in @cite{{book}}' => 'sezione `{section}\' in @cite{{book}}',
                       'current' => 'attuale',
                       'on @emph{{date}}' => 'il @emph{{date}}',
                       'section `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}' => 'sezione `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}',
                       'see ' => 'vedi ',
                       'see @cite{{book}}' => 'vedi @cite{{book}}',
                       'see `{section}\'' => 'Sezione superiore',
                       'see `{section}\' in @cite{{book}}' => 'sezione `{section}\' in @cite{{book}}',
                       'see section `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}' => 'vedi la sezione `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}',
                       'see section `{section}\' in @cite{{book}}' => 'vedi la sezione `{section}\' in @cite{{book}}',
                       'see section {reference_name}' => 'vedi la sezione {reference_name}',
                       'see {node_file_href}' => 'vedi {node_file_href}',
                       'see {node_file_href} section `{section}\' in @cite{{book}}' => 'vedi {node_file_href} nella sezione `{section}\' in @cite{{book}}',
                       'see {reference_name}' => 'vedi {reference_name}',
                       'see {reference}' => 'vedi {reference_name}',
                       'see {reference} in @cite{{book}}' => 'vedi {node_file_href} @cite{{book}}',
                       'see {ref}' => 'vedi {ref}',
                       'see {title_ref}' => 'vedi {title_ref}',
                       '{acronym_like} ({explanation})' => '{acronym_like} ({explanation})',
                       '{month} {day}, {year}' => '',
                       '{name} of {class}' => '{name} di {class}',
                       '{name} on {class}' => '{name} in {class}',
                       '{node_file_href}' => '{node_file_href}',
                       '{node_file_href} section `{section}\' in @cite{{book}}' => '{node_file_href} nella sezione `{section}\' in @cite{{book}}',
                       '{reference_name}' => '{reference_name}',
                       '{reference}' => '{reference_name}',
                       '{reference} in @cite{{book}}' => '{node_file_href} @cite{{book}}',
                       '{ref}' => '{ref}',
                       '{style} {number}' => '{style} {number}',
                       '{style}: {caption_first_line}' => '{style}: {caption_first_line}',
                       '{style}: {shortcaption_first_line}' => '{style}: {shortcaption_first_line}',
                       '{title_ref}' => '{title_ref}'
                     };