Provided by: po4a_0.52-1_all bug

NOME

       po4a-runtime - po4a e tradução gettext em tempo de execução sem Autotools

Introdução

       Com po4a-build, po4a também inclui suporte para adicionar tradução de script de mensagens de saída em
       tempo de execução usando gettext mas sem exigir o pacote para adotar Autotools e o típico processo
       ./configure.

       Usando 'snippets' como exemplo Makefile, os pacotes podem aproveitar intltool com o mínimo de esforço.

Apresentação

       Tradução de documentação NÃO deve usar o mesmo diretório po/ como a tradução em tempo de execução.
       Enquanto tradução tempo de execução pode usar outros diretórios além de po/, é geralmente mais fácil ir
       com a convenção.

Multiplos Idiomas

       Apenas uma palavra sobre os pacotes que usam scripts na programação múltipla de idiomas. Uma mistura
       comum é Perl e shell. Note bem: gettext VAI ficar confuso e omitir sequências de um ou outro idioma a não
       ser que extensões de ficheiros sejam utilizadas para o idioma que for menos problemático.

       Ao usar vários idiomas, experimentar com várias configurações em po/Makevars até obter todas as
       sequências que você precisa no  ficheiro POT.

       Em particular, especificando duas línguas em po/Makevars pode ser problemático. Em vez de:

        # Não fazer isso:
        XGETTEXT_OPTIONS = -L Perl -L Shell --from-code=iso-8859-1

       Considere renomear (ou fornecer ligações simbólicas para) todos os ficheiros por um dos idiomas
       envolvidos e omitindo as opções explícitas -L. A extensão do ficheiro só precisa existir durante o tempo
       em que po/POTFILES.in está sendo processado.

       The --keywords option can also be useful - see the xgettext(1) documentation.

Preenchendo po/

       Então, crie o seu diretório de nível mais alto po/ e, em seguida, usar os ficheiros de exemplo em
       /usr/share/doc/po4a/examples/ para preenchê-lo.

       LINGUAS
           Must  exist,  even  if  empty. Consists of a list of translations - each line not starting with a '#'
           must match an existing PO file.  E.g. if LINGUAS contains a single line, 'fr',  an  fr.po  file  must
           exist alongside the LINGUAS file.

            $ cat po/LINGUAS
            cs
            de
            fr
            $

           Por convenção, o ficheiro LINGUAS é classificado por ordem alfabética, mas isso é um processo manual.

       POTFILES.in
           A  lista  de ficheiros contendo as mensagens que precisam de ser traduzidas em tempo de execução - ou
           seja, os seus scripts. Se você já usou o diretório de nível  superior  po/,  os  caminhos  devem  ser
           relativos ao diretório de nível superior, e não ao próprio diretório po/.

            $ ls -l
            myscript.pl
            another.pl
            foo/support.pl
            po/
            po/POTFILES.in
            $ cat po/POTFILES.in
            myscript.pl
            another.pl
            foo/support.pl
            $

           Note  que é explicitamente suportado que os próprios scripts podem conter sequências tanto para tempo
           de execução como para tradução da documentação, por exemplo, usando funções  gettext  para  tempo  de
           execução  e  conteúdo POD incorporado para documentação. Assim não é um problema ter o mesmo ficheiro
           listado em po/POTFILES.in e doc/po4a-build.conf.

       Makevars-perl.example
           Se seus scripts são em Perl, copie este ficheiro exemplo como po/Makevars e edite-o para se adequar.

       Makevars-shell.example
           Se seus scripts são em shell, copie este ficheiro exemplo como po/Makevars e edite-o para se adequar.

       po4a-build.make
           Copie este ficheiro exemplo como po/Makefile - não deve precisar de  edição,  mas  você  pode  querer
           mantê-lo  atualizado  contra  / usr/share/doc/po4a/examples/po4a-build.make como ele pode precisar de
           ser atualizado dentro dos lançamentos po4a como as  mudanças  de  suporte  subjacentes  intltool.  (O
           ficheiro em si foi gerado a partir de outro projeto utilizando Autotools e intltool.)

Construindo

       Estes  'snippets' precisam ser adicionados ao seu Makefile de nível superior ou qualquer outro método que
       usar para preparar as suas fontes para distribuição.

        clean:
               $(MAKE) -C po/ clean

        install:
               $(MAKE) -C po/ install DESTDIR=$(DESTDIR)

        dist:
               $(MAKE) -C po/ pot

       (Num projeto Autotools, isso iria acontecer automaticamente, basta adicionar po  ao  valor  "SUBDIRS"  em
       Makefile.am.)

Manutenção

       Tradução  em tempo de execução não é tão fácil como po4a-build em que a adição de uma nova tradução exige
       a edição po/LINGUAS, mas aparte disso, atualizar traduções é apenas um caso de substituir o  ficheiro  PO
       relevante com a nova versão.

       Dependendo  de  como preparar o seu pacote de código, você também pode precisar de listar novos ficheiros
       PO no ficheiro manifest ou adicionar ao script(s) que preparar o 'tarball'.  (Isso  também  se  aplica  a
       po4a-build.)

       Qualquer ficheiro *.mo ou *.gmo em po/ pode ser apagado / limpo.

Direitos de Autor

       Enquanto  os  ficheiros  exemplo  são  parte  do  projeto  po4a,  você  está livre para usar, modificar e
       distribuí-los nos seus próprios projetos sem a necessidade de remeter para po4a ou listar a equipa  po4a,
       nos  seus próprios direitos de autor, da mesma forma como outras ferramentas de construção como o próprio
       Automake. Se você quiser mencionar po4a, isso é bom também.

AUTORES

        Neil Williams <linux@codehelp.co.uk>

Ferramentas Po4a                                   2017-08-26                                    PO4A-RUNTIME(7)