Em qui., 5 de mar. de 2026 às 06:17, Patrice Dumas <[email protected]> escreveu:
>
> On Thu, Mar 05, 2026 at 05:39:52AM -0300, Jamenson Espindula wrote:
> > Below is the actual content of the 't2a_modify_translations.pm':
> >
> >  = = = transcription begins = = =
>
> It would be much easier if you attached the file, and also it could
> allow me to check the actual encoding.  Once transcripted, some
> information on the actual file, in particular how characters are
> encoded is lost.
>
> >     1
> >
> >     2 use strict;
> >
> >     3 use warnings;
> >
> >     4 use utf8
>
> A ; is missing on the use utf8 line, which explains why you have an
> error message below.  Should be:
>
> use utf8;
>
> >
> >     5
> >
> >     6 my %translations = (
> >
> >     7   'pt_BR' => {
> >
> >     8         'error@arrow{}' => {'' => 'error@arrow{}'},
> >
> >     9         'Next' => {'NodeNext direction string' => 'Próximo'},
> >
> >    10         ' &nbsp; ' => {'' => ' &nbsp; '},
> >
> >    11         'Table of contents' => {'Contents direction description'
> > => 'Sumário'},
> >
> >    12         'Contents' => {'Contents direction string' => 'Conteúdo'},
> >
> >    13         'Index' => {'Index direction description' => 'Índice'},
> >
> >    14         'Index' => {'Index direction string' => 'Índice'},
> >
> >    15         ' ? ' => {'' => ' ? '},
> >
> >    16         '{number} {section_title}' => {'' => '{number} 
> > {section_title}'},
> >
> >    17         'Appendix {number} {section_title}' => {'' => 'Anexo
> > {number} {section_title}'},
> >
> >    18         'Short Table of Contents' => {'shortcontents section
> > heading' => 'Sumaríssimo'},
> >
> >    19         'Table of Contents' => {'contents section heading' => 
> > 'Sumário'},
> >
> >    20         '{element_text} ({title})' => {'' => '{element_text} 
> > ({title})'},
> >
> >    21         'Previous' => {'NodePrev direction string' => 'Anterior'},
> >
> >    22         'Up' => {'NodeUp direction string' => 'Acima'},
> >
> >    23         'see {reference_name}' => {'' => 'veja-se {reference_name}'},
> >
> >    24         'See {reference_name}' => {'' => 'Veja-se {reference_name}'},
> >
> >    25         '{reference} in @cite{{book}}' => {'' => '{reference} em
> > @cite{{book}}'},
> >
> >    26         'see @cite{{book_reference}}' => {'' => 'veja-se
> > @cite{{book_reference}}'},
> >
> >    27         'see {reference} in @cite{{book}}' => {'' => 'veja-se
> > {reference} em @cite{{book}}'},
> >
> >    28         '{reference_name}' => {'' => '{reference_name}'},
> >
> >    29         'See @cite{{book_reference}}' => {'' => 'Veja-se
> > @cite{{book_reference}}'},
> >
> >    30         'See {reference} in @cite{{book}}' => {'' => 'Veja-se
> > {reference} em @cite{{book}}'},
> >
> >    31         'Footnotes' => {'footnotes section heading' => 'Notas de 
> > Rodapé'},
> >
> >    32         '{explained_string} ({explanation})' => {'' =>
> > '{explained_string} ({explanation})'},
> >
> >    33         '@b{{quotation_arg}:} ' => {'' => '@b{{quotation_arg}:} '},
> >
> >    34         '@center --- @emph{{author}}' => {'' => '@center ---
> > @emph{{author}}'},
> >
> >    35         '{category}: ' => {'' => '{category}: '},
> >
> >    36         '{category} of @code{{class}}: ' => {'' => '{category}
> > da @code{{class}}: '},
> >
> >    37         '@cite{{book_reference}}' => {'' => 
> > '@cite{{book_reference}}'},
> >
> >    38         'Jump to' => {'' => 'Pular para'},
> >
> >    39         'The node you are looking for is at {href}.' => {'' =>
> > 'O nó que você está procurando está em {href}.'},
> >
> >    40         'Index' => {'Index direction description' => 'Índice'},
> >
> >    41         'Function' => {'category of functions for @defun' => 
> > 'Função'},
> >
> >    42         'Special Form' => {'' => 'Forma Especial'},
> >
> >    43         'Instance Variable' => {'category of instance variables
> > in object-oriented programming for @defivar' => 'Variável de
> > Instância'},
> >
> >    44         'Instance Variable' => {'category of instance variables
> > with data type in object-oriented programming for @deftypeivar' =>
> > 'Variável de Instância'},
> >
> >    45    },
> >
> >    46 );
> >
> >    47
> >
> >    48 my $seen_translated = {};
> >
> >    49 my $translated_lang = 'pt_BR';
> >
> >    50
> >
> >    51 sub my_format_translate_message($$$;$) {
> >
> >    52   my ($converter, $string, $lang, $translation_context) = @_;
> >
> >    53
> >
> >    54   $translation_context = '' if (!defined($translation_context));
> >
> >    55
> >
> >    56   # uncomment next lines to have the strings to translate being 
> > printed
> >
> >    57   #if (!exists($seen_translated->{"$string-$translation_context"})) {
> >
> >    58   #  if (!exists($translations{$translated_lang})
> >
> >    59   #      or !exists($translations{$translated_lang}->{$string})
> >
> >    60   #      or !exists($translations{$translated_lang}->{$string}
> >
> >    61   #                                        ->{$translation_context})) 
> > {
> >
> >    62   #    print STDERR "       # '$string' =>
> > {'$translation_context' => ''},\n";
> >
> >    63   #  }
> >
> >    64   #  $seen_translated->{"$string-$translation_context"} = 1;
> >
> >    65   #}
> >
> >    66
> >
> >    67   return $string if (!defined($lang) or $lang eq '');
> >
> >    68   if (exists($translations{$lang})
> >
> >    69       and exists($translations{$lang}->{$string})
> >
> >    70       and
> > exists($translations{$lang}->{$string}->{$translation_context})) {
> >
> >    71     my $translation =
> > $translations{$lang}->{$string}->{$translation_context};
> >
> >    72     return $translation;
> >
> >    73   }
> >
> >    74   return undef;
> >
> >    75 }
> >
> >    76
> >
> >    77 texinfo_register_formatting_function('format_translate_message',
> >
> >    78                                           
> > \&my_format_translate_message);
> >
> >    79
> >
> >    80 sub my_reset_seen_translated {
> >
> >    81   $seen_translated = {};
> >
> >    82
> >
> >    83   return 0;
> >
> >    84 }
> >
> >    85
> >
> >    86 texinfo_register_handler('setup', \&my_reset_seen_translated);
> >
> >    87
> >
> >    88 1;
> >
> >  = = = transcription ends = = =
> >
> > Output of 'texi2any --html --init-file ./t2a_modify_translations.pm':
> >
> > = = = transcription begins = = =
> >
> >     1 texi2any: error parsing ./t2a_modify_translations.pm: Global
> > symbol "%translations" requires explicit package name (did you forget
> > to declare "my %translations"?) at ./t2a_modify_translations.pm line
> > 68.
> >
> >     2 Global symbol "%translations" requires explicit package name
> > (did you forget to declare "my %translations"?) at
> > ./t2a_modify_translations.pm line 69.
> >
> >     3 Global symbol "%translations" requires explicit package name
> > (did you forget to declare "my %translations"?) at
> > ./t2a_modify_translations.pm line 70.
> >
> >     4 Global symbol "%translations" requires explicit package name
> > (did you forget to declare "my %translations"?) at
> > ./t2a_modify_translations.pm line 71.
> >
> >  = = = transcription ends = = =
> >
> > > Also you need to make sure that the strings in
> > > t2a_modify_translations.pm are actually UTF-8 encoded.
> > >
> >
> > Output of 'LC_ALL=C file t2a_modify_translations.pm':
> >
> > t2a_modify_translations.pm: Unicode text, UTF-8 text, with CRLF line 
> > terminators
>
> What is your platform?  If you are not on Windows, it would be strange
> to have CRLF line terminators.
>
> > Output of '/usr/bin/perl --version':
> >
> > This is perl 5, version 42, subversion 0 (v5.42.0) built for
> > x86_64-linux-thread-multi
>
> That is recent enough (even more than the one I use).
>
> --
> Pat

!It works! Really, the problem was the lack of a semicolon (;)
character after the 'use utf8' directive! Sorry. My bad. :)

The words on the HTML pages are now well formed!

Thank you very very much!

Jamenson Espindula

Reply via email to