Provided by: po4a_0.52-1_all bug

NOME

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

Introdução

       Com po4a-build, po4a também incluir suporte a adição de tradução de mensagens de saída de scripts em
       tempo de execução usando gettext, mas sem exigir o pacote para adotar Autotools e o processo de
       ./configure comum.

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

Layout

       Tradução de documentação NÃO usa o mesmo diretório po/ que a tradução em tempo de execução. Embora
       tradução em tempo de execução possa usar diretórios diferentes de po/, normalmente é mais fácil seguir
       nesta convenção.

Múltiplas linguagens

       Apenas uma palavras sobre pacotes que usam scripts em múltiplas linguagens de programação. Uma mistura
       comum é Perl e shell. Note bem: gettext VAI ficar confuso e vai omitir strings de uma ou outra linguagem
       a menos que extensões de arquivos sejam usadas seja qual for a linguagem menos problemática.

       Quando se está usando múltiplas linguagens, experimente com várias configurações em po/Makevars até que
       você obtenha todas as strings que você precisa no arquivo POT.

       Em particular, ao especificar duas linguagens no po/Makevars pode ser problemático. Ao invés de:

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

       Considere renomear (o fornecer links simbólicos para) todos arquivos de uma linguagem envolvida e omitir
       as opções explícitas -L. A extensão de arquivo apenas precisa existir durante o momento em que
       po/POTFILES.in está sendo processado.

       A opção --keywords também pode ser útil - veja a documentação do xgettext(1).

Populando po/

       Então, crie seu diretório po/ nível de topo e use os arquivos exemplos em /usr/share/doc/po4a/examples/
       para populá-lo.

       LINGUAS
           Deve  existir,  mesmo  se vazio. Consiste em uma lista de traduções - cada linha não iniciando com um
           "#" deve corresponder a um arquivo PO existente. Por ex.: se LINGUAS contém um único  arquivo,  "fr",
           um fr.po deve existir também no arquivo LINGUAS.

            $ cat po/LINGUAS
            cs
            de
            fr
            $

           Por convenção, o arquivo LINGUAS é organizado em ordem alfabética, mas esse é um processo manual.

       POTFILES.in
           A  lista  de arquivos contendo as mensagens que precisam ser traduzidas em tempo de execução, isto é,
           seus scripts. Se você usou o diretório po/ de nível de topo,  os  caminhos  devem  ser  relativos  ao
           diretório de nível de topo, e não ao próprio diretório po/.

            $ ls -l
            meuscript.pl
            outro.pl
            foo/suporte.pl
            po/
            po/POTFILES.in
            $ cat po/POTFILES.in
            meuscript.pl
            outro.pl
            foo/suporte.pl
            $

           Note  que  há suporte explícito a scripts conterem eles mesmo strings para tradução de ambos tempo de
           execução e documentação. ex: usando funções do gettext para tempo  de  execução  e  conteúdo  de  POD
           embutido  para documentação. Então, não é um problema ter o mesmo arquivo listado no po/POTFILES.in e
           doc/po4a-build.conf

       Makevars-perl.example
           Se os seus scripts são Perl, copie este arquivo exemplo como po/Makevars e edite-o para adequá-lo.

       Makevars-shell.example
           Se os seus scripts são shell, copie este arquivo exemplo como po/Makevars e edite-o para adequá-lo.

       po4a-build.make
           Copie este exemplo como po/Makefile - ele não deveria precisar de ser editado, mas você pode  desejar
           mantê-lo  atualizado  em  relação  ao  /usr/share/doc/po4a/examples/po4a-build.make,  pois  ele  pode
           precisar ser atualizado com o passar das versões do po4a porque o  intltool  permite  alterações.  (O
           arquivo em si é gerado em um outro projeto usando Autotools e intltool.)

Compilação

       Esses  excertos  precisam  ser  adicionados ao seu Makefile de nível de topo ou qualquer outro método que
       você usar para preparar seus fontes para distribuição.

        clean:
               $(MAKE) -C po/ clean

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

        dist:
               $(MAKE) -C po/ pot

       (Em um projeto com Autotools, isso aconteceria  automaticamente  simplesmente  adicionando  po  ao  valor
       "SUBDIRS" em Makefile.am.)

Manutenção

       Tradução de tempo de execução não é tão fácil, pois po4a-build no processo de adicionar uma nova tradução
       requer  edição do po/LINGUAS, mas, tirando essa questão, atualização de traduções é meramente uma questão
       de substituir o arquivo PO relevante com sua nova versão.

       Dependendo em como você prepara o seu tarball fonte, você pode também precisar listar os  novos  arquivos
       PO no arquivo MANIFEST ou adicionar scripts que preparam o tarball. (que também se aplica a po4a-build.)

       Quaisquer arquivos *.mo ou *.gmo em po/ podem ser excluídos / apagados.

Copyright

       Enquanto  os  arquivos  exemplos  são  parte  do  projeto po4a, você é livre para usá-los, modificá-los e
       distribuí-los em seus próprios projetos sem precisar avisar o po4a ou listar a  equipe  do  po4a  no  seu
       aviso  de  direitos  autorais,  da  mesma  maneira  que  outras ferramentas de compilação, como o próprio
       Autotools. Se você deseja mencionar o po4a, não tem problema.

AUTORES

        Neil Williams <linux@codehelp.co.uk>

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