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>