[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
branch master updated: * tp/Texinfo/Translations.pm (gdt, complete_indic
From: |
Patrice Dumas |
Subject: |
branch master updated: * tp/Texinfo/Translations.pm (gdt, complete_indices), tp/Texinfo/Convert/Text.pm: pass optionally the language to gdt(). |
Date: |
Sun, 05 Sep 2021 09:44:20 -0400 |
This is an automated email from the git hooks/post-receive script.
pertusus pushed a commit to branch master
in repository texinfo.
The following commit(s) were added to refs/heads/master by this push:
new fb6c301 * tp/Texinfo/Translations.pm (gdt, complete_indices),
tp/Texinfo/Convert/Text.pm: pass optionally the language to gdt().
fb6c301 is described below
commit fb6c30157140a26f3f86d9518af71c5b8d4d3cac
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Sun Sep 5 15:44:11 2021 +0200
* tp/Texinfo/Translations.pm (gdt, complete_indices),
tp/Texinfo/Convert/Text.pm: pass optionally the language to gdt().
* tp/Texinfo/XS/parsetexi/Parsetexi.pm (get_parser_info)
(_set_errors_node_lists_labels_indices, parse_texi_line): do
the actions after parsing that are done in ParserNonXS for
all parsing functions, using _set_errors_node_lists_labels_indices().
* tp/Texinfo/XS/parsetexi/Parsetexi.pm (parse_texi_text):
do not merge the indices, it is done elsewhere.
---
ChangeLog | 14 +++
tp/TODO | 2 -
tp/Texinfo/Convert/Text.pm | 14 +--
tp/Texinfo/Translations.pm | 80 +++++++-------
tp/Texinfo/XS/parsetexi/Parsetexi.pm | 58 ++++-------
tp/t/languages.t | 11 ++
tp/t/results/languages/multiple.pl | 196 +++++++++++++++++++++++++++++------
7 files changed, 256 insertions(+), 119 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 1739989..8afad52 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
2021-09-05 Patrice Dumas <pertusus@free.fr>
+ * tp/Texinfo/Translations.pm (gdt, complete_indices),
+ tp/Texinfo/Convert/Text.pm: pass optionally the language to gdt().
+
+ * tp/Texinfo/XS/parsetexi/Parsetexi.pm (get_parser_info)
+ (_set_errors_node_lists_labels_indices, parse_texi_line): do
+ the actions after parsing that are done in ParserNonXS for
+ all parsing functions, using _set_errors_node_lists_labels_indices().
+
+ * tp/Texinfo/XS/parsetexi/Parsetexi.pm (parse_texi_text):
+ do not merge the indices, it is done elsewhere.
+
+
+2021-09-05 Patrice Dumas <pertusus@free.fr>
+
* texi2any.pl: use Storable::dclone to copy parser configuration
for each file and command line options for each file. A shallow
copy is not enough to make sure that the initial information is not
diff --git a/tp/TODO b/tp/TODO
index ef1f5f6..3033b14 100644
--- a/tp/TODO
+++ b/tp/TODO
@@ -15,8 +15,6 @@ Before next release
Rename _set_global_multiple_commands
-complete_indices, gdt, some code in Text: add documentlanguage arg to gdt
-
not internal (maybe move?)
Texinfo::Common::_convert_text_options
diff --git a/tp/Texinfo/Convert/Text.pm b/tp/Texinfo/Convert/Text.pm
index e76e46d..cde2deb 100644
--- a/tp/Texinfo/Convert/Text.pm
+++ b/tp/Texinfo/Convert/Text.pm
@@ -367,19 +367,9 @@ sub _convert($;$)
if (defined($root->{'text'})) {
if ($root->{'type'} and $root->{'type'} eq 'untranslated'
and $options and $options->{'converter'}) {
- # FIXME here converter is both a source for the documentlanguage
- # information, modified for the translation and used for the
- # translation itself. It is wrong on two levels
- # * configuration and other functions should be seprated
- # * there should not be a need to modify internal converter
- # state to get the translation
- my $save_lang = $options->{'converter'}->get_conf('documentlanguage');
- $options->{'converter'}->{'documentlanguage'}
- = $root->{'extra'}->{'documentlanguage'};
- my $tree = Texinfo::Translations::gdt($options->{'converter'},
- $root->{'text'});
+ my $tree = $options->{'converter'}->gdt($root->{'text'}, undef,
+ undef, $root->{'extra'}->{'documentlanguage'});
$result = _convert($tree, $options);
- $options->{'converter'}->{'documentlanguage'} = $save_lang;
} else {
$result = $root->{'text'};
if ((! defined($root->{'type'})
diff --git a/tp/Texinfo/Translations.pm b/tp/Texinfo/Translations.pm
index 9ce5ef8..d24827f 100644
--- a/tp/Texinfo/Translations.pm
+++ b/tp/Texinfo/Translations.pm
@@ -52,9 +52,15 @@ sub _encode_i18n_string($$)
# Get document translation - handle translations of in-document strings.
# Return a parsed Texinfo tree
-sub gdt($$;$$)
+sub gdt($$;$$$)
{
- my ($self, $message, $context, $type) = @_;
+ my ($self, $message, $context, $type, $lang) = @_;
+
+ # In addition to being settable from the command line,
+ # the language needs to be dynamic in case there is an untranslated string
+ # from another language that needs to be translated.
+ $lang = $self->get_conf('documentlanguage') if (!defined($lang));
+ $lang = $DEFAULT_LANGUAGE if (!defined($lang));
my $re = join '|', map { quotemeta $_ } keys %$context
if (defined($context) and ref($context));
@@ -81,9 +87,9 @@ sub gdt($$;$$)
our $locale_command;
if (!$locale and !$locale_command) {
$locale_command = "locale -a";
- my @locales = split("\n", `$locale_command`);
+ my @local_command_locales = split("\n", `$locale_command`);
if ($? == 0) {
- for my $try (@locales) {
+ foreach my $try (@local_command_locales) {
next if $try eq 'C' or $try eq 'POSIX';
$locale = POSIX::setlocale(LC_ALL, $try);
last if $locale;
@@ -114,11 +120,6 @@ sub gdt($$;$$)
}
}
- # This needs to be dynamic in case there is an untranslated string
- # from another language that needs to be translated.
- # FIXME make it an argument
- my $lang = $self->get_conf('documentlanguage');
- $lang = $DEFAULT_LANGUAGE if (!defined($lang));
my @langs = ($lang);
if ($lang =~ /^([a-z]+)_([A-Z]+)/) {
my $main_lang = $1;
@@ -126,22 +127,28 @@ sub gdt($$;$$)
push @langs, $main_lang;
}
- my $locales = '';
-
+ my @locales;
foreach my $language (@langs) {
if ($encoding) {
- $locales .= "$language.$encoding:";
+ push @locales, "$language.$encoding";
} else {
- $locales .= "$language:";
+ push @locales, $language;
}
# always try us-ascii, the charset should always be a subset of
# all charset, and should resort to @-commands if needed for non
# ascii characters
+ # REMARK this is not necessarily true for every language/encoding.
+ # This can be true for latin1, and maybe some other 8 bit encodings
+ # with accents available as @-commands, but not for most
+ # language. However, for those languages, it is unlikely that
+ # the locale with .us-ascii can be set, so it should not hurt
+ # to add this possibility.
if (!$encoding or ($encoding and $encoding ne 'us-ascii')) {
- $locales .= "$language.us-ascii:";
+ push @locales, "$language.us-ascii";
}
}
- $locales =~ s/:$//;
+
+ my $locales = join(':', @locales);
Locale::Messages::nl_putenv("LANGUAGE=$locales");
@@ -169,18 +176,19 @@ sub gdt($$;$$)
return $translation_result;
}
- my $parser_conf;
- # we change the substituted brace-enclosed strings to values, that
- # way they are substituted, including when they are Texinfo trees.
- # a _ is prepended to avoid clashing with other values, although since
- # the parser is a new one there should not be any problem anyway.
+ # we change the substituted brace-enclosed strings to internal
+ # values marked by @txiinternalvalue such that their location
+ # in the Texinfo tree can be marked. They are substituted
+ # after the parsing in the final tree.
+ # Using a special command that is invalid unless a special
+ # configuration is set means that there should be no clash
+ # with @-commands used in translations.
if (defined($re)) {
# next line taken from libintl perl, copyright Guido. sub __expand
$translation_result =~ s/\{($re)\}/\@txiinternalvalue\{$1\}/g;
}
-
- # Don't reuse the current parser itself, as (tested) the parsing goes
- # wrong, certainly because the parsed text can affect the parser state.
+
+ # determine existing parser, if any
my $current_parser;
if (ref($self) eq 'Texinfo::Parser') {
$current_parser = $self;
@@ -188,6 +196,10 @@ sub gdt($$;$$)
$current_parser = $self->{'parser'};
}
+ # Don't reuse the current parser itself, as (tested) the parsing goes
+ # wrong, certainly because the parsed text can affect the parser state.
+
+ my $parser_conf;
if ($current_parser) {
# 'TEST' can be used fot @today{} expansion.
# FIXME use get_conf
@@ -281,16 +293,13 @@ sub complete_indices
{
my $self = shift;
- my ($index_entry, $index_contents_normalized);
-
- my $save_lang = $self->get_conf('documentlanguage');
-
foreach my $index_name (keys(%{$self->{'index_names'}})) {
next if !defined $self->{'index_names'}->{$index_name}->{'index_entries'};
foreach my $entry
(@{$self->{'index_names'}->{$index_name}->{'index_entries'}}) {
$entry->{'in_code'} = $self->{'index_names'}->{$index_name}->{'in_code'};
if (!defined $entry->{'content'}) {
+ my ($index_entry, $index_contents_normalized);
my $def_command = $entry->{'command'}->{'extra'}->{'def_command'};
my $def_parsed_hash =
$entry->{'command'}->{'extra'}->{'def_parsed_hash'};
@@ -298,25 +307,27 @@ sub complete_indices
and $def_command) {
# Use the document language that was current when the command was
# used for getting the translation.
- $self->{'documentlanguage'}
+ my $entry_language
= $entry->{'command'}->{'extra'}->{'documentlanguage'};
if ($def_command eq 'defop'
or $def_command eq 'deftypeop'
or $def_command eq 'defmethod'
or $def_command eq 'deftypemethod') {
$index_entry = $self->gdt('{name} on {class}',
- {'name' => $def_parsed_hash->{'name'},
- 'class' => $def_parsed_hash->{'class'}});
- $index_contents_normalized
- = [_non_bracketed_contents($def_parsed_hash->{'name'}),
+ {'name' => $def_parsed_hash->{'name'},
+ 'class' => $def_parsed_hash->{'class'}},
+ undef, $entry_language);
+ $index_contents_normalized
+ = [_non_bracketed_contents($def_parsed_hash->{'name'}),
{ 'text' => ' on '},
_non_bracketed_contents($def_parsed_hash->{'class'})];
} elsif ($def_command eq 'defivar'
or $def_command eq 'deftypeivar'
or $def_command eq 'deftypecv') {
$index_entry = $self->gdt('{name} of {class}',
- {'name' => $def_parsed_hash->{'name'},
- 'class' => $def_parsed_hash->{'class'}});
+ {'name' => $def_parsed_hash->{'name'},
+ 'class' => $def_parsed_hash->{'class'}},
+ undef, $entry_language);
$index_contents_normalized
= [_non_bracketed_contents($def_parsed_hash->{'name'}),
{ 'text' => ' of '},
@@ -336,7 +347,6 @@ sub complete_indices
}
}
}
- $self->{'documentlanguage'} = $save_lang;
}
diff --git a/tp/Texinfo/XS/parsetexi/Parsetexi.pm
b/tp/Texinfo/XS/parsetexi/Parsetexi.pm
index 332b2ee..d960edc 100644
--- a/tp/Texinfo/XS/parsetexi/Parsetexi.pm
+++ b/tp/Texinfo/XS/parsetexi/Parsetexi.pm
@@ -168,23 +168,35 @@ sub _get_error_registrar($)
return $registrar, $configuration_informations;
}
-sub get_parser_info {
+# done after all the parsings. Part may not make much sense for
parse_texi_line,
+# We nevertheless do it in any case to do the same as in ParserNonXS
+sub _set_errors_node_lists_labels_indices($)
+{
my $self = shift;
- my ($TARGETS, $INTL_XREFS, $FLOATS,
- $INDEX_NAMES, $ERRORS, $GLOBAL_INFO, $GLOBAL_INFO2);
+ my $TARGETS = build_label_list ();
+ $self->{'targets'} = $TARGETS;
- $TARGETS = build_label_list ();
- $INTL_XREFS = build_internal_xref_list ();
- $FLOATS = build_float_list ();
+ _get_errors ($self);
+ # Setup labels info and nodes list based on 'targets'
+ Texinfo::Convert::NodeNameNormalization::set_nodes_list_labels($self,
+ $self->{'registrar'}, $self);
- $INDEX_NAMES = build_index_data ();
+ my $INDEX_NAMES = build_index_data ();
$self->{'index_names'} = $INDEX_NAMES;
+ Texinfo::Translations::complete_indices ($self);
+}
+
+sub get_parser_info {
+ my $self = shift;
+
+ my ($INTL_XREFS, $FLOATS, $ERRORS, $GLOBAL_INFO, $GLOBAL_INFO2);
+ $INTL_XREFS = build_internal_xref_list ();
+ $FLOATS = build_float_list ();
$GLOBAL_INFO = build_global_info ();
$GLOBAL_INFO2 = build_global_info2 ();
- $self->{'targets'} = $TARGETS;
$self->{'internal_references'} = $INTL_XREFS;
$self->{'floats'} = $FLOATS;
$self->{'info'} = $GLOBAL_INFO;
@@ -204,12 +216,7 @@ sub get_parser_info {
}
}
- _get_errors ($self);
-
- # Setup labels info and nodes list based on 'targets'
- Texinfo::Convert::NodeNameNormalization::set_nodes_list_labels($self,
- $self->{'registrar'}, $self);
- Texinfo::Translations::complete_indices ($self);
+ _set_errors_node_lists_labels_indices($self);
}
use File::Basename; # for fileparse
@@ -331,13 +338,6 @@ sub parse_texi_text($$;$$$$)
my $INDEX_NAMES = build_index_data ();
$self->{'index_names'} = $INDEX_NAMES;
- for my $index (keys %$INDEX_NAMES) {
- if ($INDEX_NAMES->{$index}->{'merged_in'}) {
- $self->{'merged_indices'}-> {$index}
- = $INDEX_NAMES->{$index}->{'merged_in'};
- }
- }
-
get_parser_info($self);
_associate_node_menus ($self, $tree);
@@ -360,17 +360,8 @@ sub parse_texi_line($$;$$$$)
utf8::upgrade($text);
parse_string($text);
my $tree = build_texinfo_tree ();
- _get_errors ($self);
- # It is unclear if it is an error to have targets set in parse_texi_line.
- # We nevertheless set targets and other infos to do the same as in
- # ParserNonXS.
- my $TARGETS = build_label_list ();
- $self->{'targets'} = $TARGETS;
-
- # Setup labels info and nodes list based on 'targets'
- Texinfo::Convert::NodeNameNormalization::set_nodes_list_labels($self,
- $self->{'registrar'}, $self);
+ _set_errors_node_lists_labels_indices($self);
return $tree;
}
@@ -380,11 +371,6 @@ sub indices_information($)
{
my $self = shift;
- my $INDEX_NAMES;
- if (!$self->{'index_names'}) {
- $INDEX_NAMES = build_index_data ();
- $self->{'index_names'} = $INDEX_NAMES;
- }
return $self->{'index_names'};
}
diff --git a/tp/t/languages.t b/tp/t/languages.t
index c31cbae..5b34de8 100644
--- a/tp/t/languages.t
+++ b/tp/t/languages.t
@@ -14,6 +14,13 @@ my @test_cases = (
@defivar AAA BBB CCC
@end defivar
'],
+# FIXME in HTML, the copying comment is a mix of fr and pt
+# FIXME it may be correct, but it is worth noting that the
+# @defivar in @insertcopying after @documentlanguage de appears
+# in german in the document, (and after @documentlanguage pt at
+# the end appears in portruguese) but the index entry is in fr, because
+# the index entry is set in the @copying block which is in
+# @documentlanguage fr.
['multiple',
'@documentlanguage fr
@@ -27,6 +34,8 @@ my @test_cases = (
@defivar fr BBB CCC
@end defivar
+@documentlanguage de
+
@insertcopying
@documentlanguage pt
@@ -35,6 +44,8 @@ my @test_cases = (
@end defivar
@insertcopying
+
+@printindex vr
'],
['appendix_translated',
'@documentlanguage fr
diff --git a/tp/t/results/languages/multiple.pl
b/tp/t/results/languages/multiple.pl
index 454c242..1ac335a 100644
--- a/tp/t/results/languages/multiple.pl
+++ b/tp/t/results/languages/multiple.pl
@@ -469,6 +469,41 @@ $result_trees{'multiple'} = {
{
'args' => [
{
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'de'
+ }
+ ],
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'parent' => {},
+ 'type' => 'line_arg'
+ }
+ ],
+ 'cmdname' => 'documentlanguage',
+ 'extra' => {
+ 'spaces_before_argument' => ' ',
+ 'text_arg' => 'de'
+ },
+ 'line_nr' => {
+ 'file_name' => '',
+ 'line_nr' => 13,
+ 'macro' => ''
+ },
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'empty_line'
+ },
+ {
+ 'args' => [
+ {
'parent' => {},
'text' => '
',
@@ -478,7 +513,7 @@ $result_trees{'multiple'} = {
'cmdname' => 'insertcopying',
'line_nr' => {
'file_name' => '',
- 'line_nr' => 13,
+ 'line_nr' => 15,
'macro' => ''
},
'parent' => {}
@@ -513,7 +548,7 @@ $result_trees{'multiple'} = {
},
'line_nr' => {
'file_name' => '',
- 'line_nr' => 15,
+ 'line_nr' => 17,
'macro' => ''
},
'parent' => {}
@@ -640,7 +675,7 @@ $result_trees{'multiple'} = {
},
'line_nr' => {
'file_name' => '',
- 'line_nr' => 17,
+ 'line_nr' => 19,
'macro' => ''
},
'parent' => {},
@@ -671,7 +706,7 @@ $result_trees{'multiple'} = {
},
'line_nr' => {
'file_name' => '',
- 'line_nr' => 18,
+ 'line_nr' => 20,
'macro' => ''
},
'parent' => {}
@@ -683,7 +718,7 @@ $result_trees{'multiple'} = {
},
'line_nr' => {
'file_name' => '',
- 'line_nr' => 17,
+ 'line_nr' => 19,
'macro' => ''
},
'parent' => {}
@@ -706,13 +741,51 @@ $result_trees{'multiple'} = {
'cmdname' => 'insertcopying',
'line_nr' => {
'file_name' => '',
- 'line_nr' => 20,
+ 'line_nr' => 22,
+ 'macro' => ''
+ },
+ 'parent' => {}
+ },
+ {
+ 'parent' => {},
+ 'text' => '
+',
+ 'type' => 'empty_line'
+ },
+ {
+ 'args' => [
+ {
+ 'contents' => [
+ {
+ 'parent' => {},
+ 'text' => 'vr'
+ }
+ ],
+ 'extra' => {
+ 'spaces_after_argument' => '
+'
+ },
+ 'parent' => {},
+ 'type' => 'line_arg'
+ }
+ ],
+ 'cmdname' => 'printindex',
+ 'extra' => {
+ 'misc_args' => [
+ 'vr'
+ ],
+ 'spaces_before_argument' => ' '
+ },
+ 'line_nr' => {
+ 'file_name' => '',
+ 'line_nr' => 24,
'macro' => ''
},
'parent' => {}
}
],
'extra' => {
+ 'isindex' => 1,
'node_content' => [
{}
],
@@ -800,39 +873,47 @@
$result_trees{'multiple'}{'contents'}[1]{'contents'}[1]{'contents'}[1]{'parent'}
$result_trees{'multiple'}{'contents'}[1]{'contents'}[1]{'extra'}{'end_command'}
= $result_trees{'multiple'}{'contents'}[1]{'contents'}[1]{'contents'}[1];
$result_trees{'multiple'}{'contents'}[1]{'contents'}[1]{'parent'} =
$result_trees{'multiple'}{'contents'}[1];
$result_trees{'multiple'}{'contents'}[1]{'contents'}[2]{'parent'} =
$result_trees{'multiple'}{'contents'}[1];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[3]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'multiple'}{'contents'}[1]{'contents'}[3]{'args'}[0];
$result_trees{'multiple'}{'contents'}[1]{'contents'}[3]{'args'}[0]{'parent'} =
$result_trees{'multiple'}{'contents'}[1]{'contents'}[3];
$result_trees{'multiple'}{'contents'}[1]{'contents'}[3]{'parent'} =
$result_trees{'multiple'}{'contents'}[1];
$result_trees{'multiple'}{'contents'}[1]{'contents'}[4]{'parent'} =
$result_trees{'multiple'}{'contents'}[1];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[5]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'multiple'}{'contents'}[1]{'contents'}[5]{'args'}[0];
$result_trees{'multiple'}{'contents'}[1]{'contents'}[5]{'args'}[0]{'parent'} =
$result_trees{'multiple'}{'contents'}[1]{'contents'}[5];
$result_trees{'multiple'}{'contents'}[1]{'contents'}[5]{'parent'} =
$result_trees{'multiple'}{'contents'}[1];
$result_trees{'multiple'}{'contents'}[1]{'contents'}[6]{'parent'} =
$result_trees{'multiple'}{'contents'}[1];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'args'}[0]{'contents'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'args'}[0]{'contents'}[0];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'args'}[0];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'args'}[0];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'args'}[0]{'contents'}[3]{'parent'}
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'args'}[0];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'args'}[0]{'contents'}[5]{'parent'}
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'args'}[0];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'args'}[0]{'contents'}[6]{'parent'}
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'args'}[0];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'args'}[0]{'contents'}[7]{'parent'}
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'args'}[0];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'args'}[0]{'parent'}
= $result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'extra'}{'def_parsed_hash'}{'category'}
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'args'}[0]{'contents'}[0];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'extra'}{'def_parsed_hash'}{'class'}
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'args'}[0]{'contents'}[2];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'extra'}{'def_parsed_hash'}{'name'}
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'args'}[0]{'contents'}[4];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'extra'}{'index_entry'}{'command'}
= $result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'extra'}{'index_entry'}{'content'}[0]
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'args'}[0]{'contents'}[4];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'extra'}{'index_entry'}{'content'}[2]
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'args'}[0]{'contents'}[2];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'extra'}{'index_entry'}{'content_normalized'}[0]
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'args'}[0]{'contents'}[4];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'extra'}{'index_entry'}{'content_normalized'}[2]
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'args'}[0]{'contents'}[2];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'extra'}{'index_entry'}{'node'}
= $result_trees{'multiple'}{'contents'}[1];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[0]{'parent'}
= $result_trees{'multiple'}{'contents'}[1]{'contents'}[7];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[1]{'args'}[0];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[1]{'args'}[0]{'parent'}
= $result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[1];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[1]{'parent'}
= $result_trees{'multiple'}{'contents'}[1]{'contents'}[7];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'extra'}{'end_command'}
= $result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'contents'}[1];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'args'}[0];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'args'}[0]{'parent'} =
$result_trees{'multiple'}{'contents'}[1]{'contents'}[7];
$result_trees{'multiple'}{'contents'}[1]{'contents'}[7]{'parent'} =
$result_trees{'multiple'}{'contents'}[1];
$result_trees{'multiple'}{'contents'}[1]{'contents'}[8]{'parent'} =
$result_trees{'multiple'}{'contents'}[1];
-$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'args'}[0]{'parent'} =
$result_trees{'multiple'}{'contents'}[1]{'contents'}[9];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'args'}[0]{'contents'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'args'}[0]{'contents'}[0];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'args'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'args'}[0];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'args'}[0]{'contents'}[1]{'parent'}
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'args'}[0];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'args'}[0]{'contents'}[3]{'parent'}
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'args'}[0];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'args'}[0]{'contents'}[5]{'parent'}
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'args'}[0];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'args'}[0]{'contents'}[6]{'parent'}
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'args'}[0];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'args'}[0]{'contents'}[7]{'parent'}
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'args'}[0];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'args'}[0]{'parent'}
= $result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'extra'}{'def_parsed_hash'}{'category'}
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'args'}[0]{'contents'}[0];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'extra'}{'def_parsed_hash'}{'class'}
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'args'}[0]{'contents'}[2];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'extra'}{'def_parsed_hash'}{'name'}
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'args'}[0]{'contents'}[4];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'extra'}{'index_entry'}{'command'}
= $result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'extra'}{'index_entry'}{'content'}[0]
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'args'}[0]{'contents'}[4];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'extra'}{'index_entry'}{'content'}[2]
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'args'}[0]{'contents'}[2];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'extra'}{'index_entry'}{'content_normalized'}[0]
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'args'}[0]{'contents'}[4];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'extra'}{'index_entry'}{'content_normalized'}[2]
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'args'}[0]{'contents'}[2];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'extra'}{'index_entry'}{'node'}
= $result_trees{'multiple'}{'contents'}[1];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[0]{'parent'}
= $result_trees{'multiple'}{'contents'}[1]{'contents'}[9];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[1]{'args'}[0]{'contents'}[0]{'parent'}
=
$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[1]{'args'}[0];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[1]{'args'}[0]{'parent'}
= $result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[1];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[1]{'parent'}
= $result_trees{'multiple'}{'contents'}[1]{'contents'}[9];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'extra'}{'end_command'}
= $result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'contents'}[1];
$result_trees{'multiple'}{'contents'}[1]{'contents'}[9]{'parent'} =
$result_trees{'multiple'}{'contents'}[1];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[10]{'parent'} =
$result_trees{'multiple'}{'contents'}[1];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[11]{'args'}[0]{'parent'}
= $result_trees{'multiple'}{'contents'}[1]{'contents'}[11];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[11]{'parent'} =
$result_trees{'multiple'}{'contents'}[1];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[12]{'parent'} =
$result_trees{'multiple'}{'contents'}[1];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[13]{'args'}[0]{'contents'}[0]{'parent'}
= $result_trees{'multiple'}{'contents'}[1]{'contents'}[13]{'args'}[0];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[13]{'args'}[0]{'parent'}
= $result_trees{'multiple'}{'contents'}[1]{'contents'}[13];
+$result_trees{'multiple'}{'contents'}[1]{'contents'}[13]{'parent'} =
$result_trees{'multiple'}{'contents'}[1];
$result_trees{'multiple'}{'contents'}[1]{'extra'}{'node_content'}[0] =
$result_trees{'multiple'}{'contents'}[1]{'args'}[0]{'contents'}[0];
$result_trees{'multiple'}{'contents'}[1]{'extra'}{'nodes_manuals'}[0]{'node_content'}[0]
= $result_trees{'multiple'}{'contents'}[1]{'args'}[0]{'contents'}[0];
$result_trees{'multiple'}{'contents'}[1]{'parent'} = $result_trees{'multiple'};
@@ -849,6 +930,8 @@ $result_texis{'multiple'} = '@documentlanguage fr
@defivar fr BBB CCC
@end defivar
+@documentlanguage de
+
@insertcopying
@documentlanguage pt
@@ -857,6 +940,8 @@ $result_texis{'multiple'} = '@documentlanguage fr
@end defivar
@insertcopying
+
+@printindex vr
';
@@ -867,8 +952,10 @@ Instance Variable of fr: BBB CCC
+
Instance Variable of pt: BBB CCC
+
';
$result_sectioning{'multiple'} = {};
@@ -876,6 +963,7 @@ $result_sectioning{'multiple'} = {};
$result_nodes{'multiple'} = {
'cmdname' => 'node',
'extra' => {
+ 'isindex' => 1,
'normalized' => 'Top',
'spaces_before_argument' => ' '
}
@@ -884,6 +972,7 @@ $result_nodes{'multiple'} = {
$result_menus{'multiple'} = {
'cmdname' => 'node',
'extra' => {
+ 'isindex' => 1,
'normalized' => 'Top',
'spaces_before_argument' => ' '
}
@@ -907,11 +996,18 @@ $result_indices_sort_strings{'multiple'} = {
$result_converted{'plaintext'}->{'multiple'} = ' -- Variable d\'instance de fr
: BBB CCC
- -- Variable d\'instance de copying : a b
+ -- Instanzvariable von copying: a b
-- Variável de instância da pt: BBB CCC
-- Variável de instância da copying: a b
+
+* Menu:
+
+* a de copying: Top. (line 6)
+* BBB da pt: Top. (line 4)
+* BBB de fr: Top. (line 0)
+
';
@@ -924,12 +1020,20 @@ File: , Node: Top, Up: (dir)
-- Variable d\'instance de fr : BBB CCC
- -- Variable d\'instance de copying : a b
+ -- Instanzvariable von copying: a b
-- Variável de instância da pt: BBB CCC
-- Variável de instância da copying: a b
+ [index ]
+* Menu:
+
+* a de copying: Top. (line 9)
+* BBB da pt: Top. (line 7)
+* BBB de fr: Top. (line 3)
+
+
Tag Table:
Node: Top69
@@ -948,7 +1052,7 @@ $result_converted{'html'}->{'multiple'} = '<!DOCTYPE html
PUBLIC "-//W3C//DTD HT
<!-- Created by texinfo, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<!-- Variável de instância da copying: a b -->
+<!-- Variable d\'instance da copying: a b -->
<title>Documento Sem Nome</title>
<meta name="description" content="Documento Sem Nome">
@@ -958,6 +1062,7 @@ $result_converted{'html'}->{'multiple'} = '<!DOCTYPE html
PUBLIC "-//W3C//DTD HT
<meta name="viewport" content="width=device-width,initial-scale=1">
<link href="#Top" rel="start" title="Top">
+<link href="#Top" rel="index" title="Top">
<style type="text/css">
<!--
a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em}
@@ -990,8 +1095,9 @@ ul.no-bullet {list-style: none}
<dt id="index-BBB-of-fr"><span>Variable d\'instance de fr :
<strong>BBB</strong> <em>CCC</em><a href=\'#index-BBB-of-fr\'
class=\'copiable-anchor\'> ¶</a></span></dt>
</dl>
+
<dl class="def">
-<dt id="index-copying-a-of-copying"><span>Variable d\'instance de
copying : <strong>a</strong> <em>b</em><a
href=\'#index-copying-a-of-copying\' class=\'copiable-anchor\'>
¶</a></span></dt>
+<dt id="index-copying-a-of-copying"><span>Instanzvariable von copying:
<strong>a</strong> <em>b</em><a href=\'#index-copying-a-of-copying\'
class=\'copiable-anchor\'> ¶</a></span></dt>
</dl>
@@ -1002,6 +1108,28 @@ ul.no-bullet {list-style: none}
<dl class="def">
<dt id="index-copying-a-of-copying"><span>Variável de instância da copying:
<strong>a</strong> <em>b</em><a href=\'#index-copying-a-of-copying\'
class=\'copiable-anchor\'> ¶</a></span></dt>
</dl>
+
+<table><tr><th valign="top">Pular para: </th><td><a
class="summary-letter" href="#Top_vr_letter-A"><b>A</b></a>
+
+<a class="summary-letter" href="#Top_vr_letter-B"><b>B</b></a>
+
+</td></tr></table>
+<table class="index-vr" border="0">
+<tr><td></td><th align="left">Entrada de Índice</th><td> </td><th
align="left"> Seção</th></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th id="Top_vr_letter-A">A</th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-copying-a-of-copying"><code>a de
copying</code></a>:</td><td> </td><td valign="top"><a
href="#Top">Top</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th id="Top_vr_letter-B">B</th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-BBB-of-pt"><code>BBB da
pt</code></a>:</td><td> </td><td valign="top"><a
href="#Top">Top</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-BBB-of-fr"><code>BBB de
fr</code></a>:</td><td> </td><td valign="top"><a
href="#Top">Top</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Pular para: </th><td><a
class="summary-letter" href="#Top_vr_letter-A"><b>A</b></a>
+
+<a class="summary-letter" href="#Top_vr_letter-B"><b>B</b></a>
+
+</td></tr></table>
<hr>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- branch master updated: * tp/Texinfo/Translations.pm (gdt, complete_indices), tp/Texinfo/Convert/Text.pm: pass optionally the language to gdt().,
Patrice Dumas <=