.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .if !\nF .nr F 0 .if \nF>0 \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} .\} .\" ======================================================================== .\" .IX Title "PO4A-RUNTIME 7" .TH PO4A-RUNTIME 7 "2018-06-07" "Ferramentas Po4a" "Ferramentas Po4a" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NOME" .IX Header "NOME" po4a\-runtime \- po4a e tradução gettext em tempo de execução sem Autotools .SH "Introdução" .IX Header "Introdução" Com \fIpo4a\-build\fR, \fIpo4a\fR 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 \fI./configure\fR. .PP Usando 'snippets' como exemplo \fIMakefile\fR, os pacotes podem aproveitar \&\fIintltool\fR com o mínimo de esforço. .SH "Apresentação" .IX Header "Apresentação" Tradução de documentação NÃO deve usar o mesmo diretório \fIpo/\fR como a tradução em tempo de execução. Enquanto tradução tempo de execução pode usar outros diretórios além de \fIpo/\fR, é geralmente mais fácil ir com a convenção. .SH "Multiplos Idiomas" .IX Header "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 \s-1VAI\s0 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. .PP Ao usar vários idiomas, experimentar com várias configurações em \&\fIpo/Makevars\fR até obter todas as sequências que você precisa no ficheiro \&\s-1POT.\s0 .PP Em particular, especificando duas línguas em \fIpo/Makevars\fR pode ser problemático. Em vez de: .PP .Vb 2 \& # Não fazer isso: \& XGETTEXT_OPTIONS = \-L Perl \-L Shell \-\-from\-code=iso\-8859\-1 .Ve .PP 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 \fIpo/POTFILES.in\fR está sendo processado. .PP A opção '\-\-keywords' também pode ser útil \- consulte a documentação \&\fBxgettext\fR(1). .SH "Preenchendo po/" .IX Header "Preenchendo po/" Então, crie o seu diretório de nível mais alto \fIpo/\fR e, em seguida, usar os ficheiros de exemplo em \fI/usr/share/doc/po4a/examples/\fR para preenchê\-lo. .IP "\s-1LINGUAS\s0" 4 .IX Item "LINGUAS" Deve existir, mesmo que vazio. Consiste numa lista de traduções \- cada linha não começando com um '#' deve corresponder a um ficheiro \s-1PO\s0 existente. por exemplo, se \fI\s-1LINGUAS\s0\fR contém uma única linha, 'fr', um arquivo \fIfr.po\fR deve coexistir com o ficheiro \fI\s-1LINGUAS\s0\fR. .Sp .Vb 5 \& $ cat po/LINGUAS \& cs \& de \& fr \& $ .Ve .Sp Por convenção, o ficheiro \fI\s-1LINGUAS\s0\fR é classificado por ordem alfabética, mas isso é um processo manual. .IP "\s-1POTFILES\s0.in" 4 .IX Item "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 \fIpo/\fR, os caminhos devem ser relativos ao diretório de nível superior, e não ao próprio diretório \fIpo/\fR. .Sp .Vb 11 \& $ ls \-l \& myscript.pl \& another.pl \& foo/support.pl \& po/ \& po/POTFILES.in \& $ cat po/POTFILES.in \& myscript.pl \& another.pl \& foo/support.pl \& $ .Ve .Sp 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 \s-1POD\s0 incorporado para documentação. Assim não é um problema ter o mesmo ficheiro listado em \fIpo/POTFILES.in\fR e \fIdoc/po4a\-build.conf\fR. .IP "Makevars\-perl.example" 4 .IX Item "Makevars-perl.example" Se seus scripts são em Perl, copie este ficheiro exemplo como \fIpo/Makevars\fR e edite-o para se adequar. .IP "Makevars\-shell.example" 4 .IX Item "Makevars-shell.example" Se seus scripts são em shell, copie este ficheiro exemplo como \&\fIpo/Makevars\fR e edite-o para se adequar. .IP "po4a\-build.make" 4 .IX Item "po4a-build.make" Copie este ficheiro exemplo como \fIpo/Makefile\fR \- não deve precisar de edição, mas você pode querer mantê\-lo atualizado contra \fI/ usr/share/doc/po4a/examples/po4a\-build.make\fR 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). .SH "Construindo" .IX Header "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. .PP .Vb 2 \& clean: \& $(MAKE) \-C po/ clean \& \& install: \& $(MAKE) \-C po/ install DESTDIR=$(DESTDIR) \& \& dist: \& $(MAKE) \-C po/ pot .Ve .PP (Num projeto Autotools, isso iria acontecer automaticamente, basta adicionar \&\fIpo\fR ao valor \f(CW\*(C`SUBDIRS\*(C'\fR em \fIMakefile.am\fR.) .SH "Manutenção" .IX Header "Manutenção" Tradução em tempo de execução não é tão fácil como \fIpo4a\-build\fR em que a adição de uma nova tradução exige a edição \fIpo/LINGUAS\fR, mas aparte disso, atualizar traduções é apenas um caso de substituir o ficheiro \s-1PO\s0 relevante com a nova versão. .PP Dependendo de como preparar o seu pacote de código, você também pode precisar de listar novos ficheiros \s-1PO\s0 no ficheiro \fImanifest\fR ou adicionar ao script(s) que preparar o 'tarball' (isso também se aplica a \&\fIpo4a\-build\fR). .PP Qualquer ficheiro \fI*.mo\fR ou \fI*.gmo\fR em \fIpo/\fR pode ser apagado / limpo. .SH "Direitos de Autor" .IX Header "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. .SH "AUTORES" .IX Header "AUTORES" .Vb 1 \& Neil Williams .Ve