Provided by: po4a_0.52-1_all
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>