POD2::Base~[pt] - Módulo básico para traduções de documentação Perl



NAME/NOME

POD2::Base~[pt] - Módulo básico para traduções de documentação Perl


SINOPSE

    use POD2::Base;
    $pod2 = POD2::Base->new({ lang => 'EO' });
    @dirs = $pod2->pod_dirs;
    $re = $pod2->search_perlfunc_re;


DESCRIÇÃO

Este código é uma abstração do código em POD2::IT e POD2::FR, módulos que pertencem aos projetos italiano e francês de tradução dos documentos que acompanham o interpretador Perl.

Com o pacote de tradução já instalado, a documentação traduzida pode ser acessada através do comando:

    $ perldoc POD2::<lang>::<podname>

(onde <lang> é uma abreviação para linguagem como IT, FR, TLH, etc.)

Isto funciona seguramente até para as versões antigas do the perldoc manpage. Não é muito conveniente mas sempre funciona.

Para incrementar o suporte para leitura destes documentos traduzidos, o programa the perldoc manpage (desde a versão 3.14_01) foi atualizado para encontrar PODs traduzidos assim:

    $ perldoc -L IT <podpage>
    $ perldoc -L FR -f <function>
    $ perldoc -L TLH -q <FAQregex>

(Nota: Este suporte foi distribuído junto da versão 5.10.0 do interpretador Perl recentemente disponilizado no CPAN.)

O objetivo desta classe é prover uma base mínima para ajudar o perldoc e os autores de projetos de tradução a fazerem seu trabalho.


SUBCLASSES

Se você quer escrever um pacote de tradução (e tem algumas necessidades de personalização), seu trabalho pode ser diminuído se você criar uma subclasse de POD2::Base.

Por exemplo, um exemplo mínimo é ilustrado abaixo.

    package POD2::TLH; # Klingon
    use POD2::Base;
    our @ISA = qw( POD2::Base );
    sub search_perlfunc_re { # ajuda 'perldoc -f' a funcionar
        return 'Klingon Listing of Perl Functions';
    }
    1;

E então

    $ perldoc -L tlh perlintro

vai lhe apresentar a introdução de Perl na linguagem Klingon (desde que um arquivo POD2/TLH/perlintro.pod tenha sido distribuído junto com POD2/TLH.pm) e

    $ perldoc -L tlh -f pack

vai encontrar a documentação em Klingon de pack (se POD2/TLH/perlfunc.pod foi disponibilizado também).


MÉTODOS

Este módulo foi projetado como uma classe OO com uma API bem pequena.

new
    $pod2 = POD2::Base->new(\%args);
    $pod2 = POD2::ANY->new();

O constructor. A criação de uma instância pode se fazer de modo similar a:

    $pod2 = POD2::Base->new({ lang => 'tlh' });

onde as opções suportadas são:

Se POD2::ANY é uma subclasse de POD2::Base, o construtor herdado funcionará sem argumentos extraindo 'ANY' do nome do pacote e usando-o como o código da linguagem desejada.

Note que o uso de ``inc'' no construtor congela a lista de diretórios vasculhados pela instância POD2::Base. Se não é usado, o conteúdo atualizado de @INC é usado em cada chamada de pod_dirs (de tal forma que mudanças dinâmicas no path para as bibliotecas Perl são percebidas). É isto que queríamos dizer com ``Na maior parte do tempo, você não vai querer mexer com isto.''

pod_dirs
    @dirs = $pod2->pod_dirs;
    @dirs = $pod2->pod_dirs(\%options);

Usado por Pod::Perldoc para descobrir onde procurar por PODs traduzidos.

O comportamento padrão de POD2::Base é encontrar cada diretório POD2/<lang/ >> sob os diretórios de bibliotecas Perl (@INC) ou na lista dada como o argumento ``inc'' no construtor.

As opções suportadas são:

search_perlfunc_re
    $re = $pod2->search_perlfunc_re;

Para implementar perldoc -f <function> o código atual de Pod::Perldoc usa um string fixo ``Alphabetical Listing of Perl Functions'' ou o retorno deste método (em uma regex) para pular a introdução e alcançar a listagem das funções builtin. Então um pacote de tradução com a correspondente tradução de perlfunc.pod deve definir este método para fazer perldoc -L <lang> -f <function> funcionar corretamente.

Há outros métodos documentados abaixo. Entretanto, eles provavelmente serão tornados obsoletos em versões futuras quando forem projetados e implementados métodos mais gerais de encontrar e mostrar os metadados sobre os PODs traduzidos.

pod_info
    $hashref = $pod2->pod_info;

Usado pelo próprio POD2::Base e seus ancestrais POD2::IT e POD2::FR. O retorno contém alguns metadados sobre os PODs traduzidos usados pelos métodos print_pod e print_pods.

Ao fazer subclasses seguindo o padrão de POD2::IT e POD2::FR, você deve redefinir este método com a informação atual sobre quais traduções POD o pacote atual está disponibilizando.

print_pods
    $pod2->print_pods;

Mostra (via print) todos PODs traduzidos e a versão correspondente de Perl dos arquivos originais.

print_pod
    $pod2->print_pod(@pages);
    $pod2->print_pod(); # usa @ARGV

Mostra a versão de Perl correspondente dos arquivos originais associados aos PODs passados como argumentos.


EXEMPLOS

POD2::TLH

Uma versão mais completa de POD2::TLH pode-se parecer com isto:

    package POD2::TLH; # Klingon
    use POD2::Base;
    our @ISA = qw( POD2::Base );
    sub search_perlfunc_re {
        return 'Klingon Listing of Perl Functions';
    }
    sub pod_info {
        return { perlintro => '5.8.8' };
    }
    1;

E você pode experimentar:

    use POD2::TLH;
    my $pod2 = 'POD2::TLH';
    $pod2->print_pods();
    $pod2->print_pod('pod_foo', 'pod_baz', ...);

OS ARQUIVOS INSTALADOS

Se você quer descobrir quais arquivos PODs de uma dada linguagem que estão instalados junto com seu interpretador Perl, você pode usar um código similar a este.

    use File::Find;
    use POD2::Base;
    my $pod2 = POD2::Base->new({ lang => $lang });
    my @files;
    find sub { push @files, $File::Find::name } if -f },
         $pod2->pod_dirs;
    print "$_\n" for @files;

Na distribuição POD2-Base, é incluído um script eg/list.pl com uma versão estendida deste código.

As regras para encontrar POD em arquivos .pod, .pm e outros pertencem ao módulo the Pod::Perldoc manpage. Assim POD2::Base não tenta repetir esta funcionalidade aqui.


AUTORES

Enrico Sorcinelli <bepi at perl.it> (pelo código original em POD2::IT)

Adriano Ferreira <ferreira at cpan.org>


VEJA TAMBÉM

the POD2::IT manpage, the POD2::FR manpage, the POD2::LT manpage, the POD2::CN manpage, the perldoc manpage, the perl manpage.

A versão original deste documento: the POD2::Base manpage.

(O propósito desta tradução é servir como um primeiro teste para experimentar o suporte dos vários modules Pod e sites Perl aos PODs traduzidos.)

(This translation was supplied as a front test against the support of the many Pod modules and Perl sites on translated PODs.)


COPYRIGHT E LICENÇA

Copyright (C) 2004-2006 Perl.it / Perl Mongers Italia

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

 POD2::Base~[pt] - Módulo básico para traduções de documentação Perl