.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.29) .\" .\" 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 turned on, 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 .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "PO4A-RUNTIME 7" .TH PO4A-RUNTIME 7 "2016-01-05" "Ferramentas do Po4a" "Ferramentas do 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 com gettext em tempo de execução sem Autotools .SH "Introdução" .IX Header "Introdução" Com \fIpo4a\-build\fR, \fIpo4a\fR 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 \fI./configure\fR comum. .PP Usando pedaços de \fIMakefile\fR exemplo, pacotes podem aproveitar \fIintltool\fR com esforço mínimo. .SH "Layout" .IX Header "Layout" Tradução de documentação NÃO usa o mesmo diretório \fIpo/\fR que a tradução em tempo de execução. Embora tradução em tempo de execução possa usar diretórios diferentes de \fIpo/\fR, normalmente é mais fácil seguir nesta convenção. .SH "Múltiplas linguagens" .IX Header "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 \s-1VAI\s0 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. .PP Quando se está usando múltiplas linguagens, experimente com várias configurações em \fIpo/Makevars\fR até que você obtenha todas as strings que você precisa no arquivo \s-1POT.\s0 .PP Em particular, ao especificar duas linguagens no \fIpo/Makevars\fR pode ser problemático. Ao invés de: .PP .Vb 2 \& # Não faça isso: \& XGETTEXT_OPTIONS = \-L Perl \-L Shell \-\-from\-code=iso\-8859\-1 .Ve .PP 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 \fIpo/POTFILES.in\fR está sendo processado. .PP The \-\-keywords option can also be useful \- see the \fBxgettext\fR(1) documentation. .SH "Populando po/" .IX Header "Populando po/" Então, crie seu diretório \fIpo/\fR nível de topo e use os arquivos exemplos em \&\fI/usr/share/doc/po4a/examples/\fR para populá\-lo. .IP "\s-1LINGUAS\s0" 4 .IX Item "LINGUAS" Must exist, even if empty. Consists of a list of translations \- each line not starting with a '#' must match an existing \s-1PO\s0 file. E.g. if \fI\s-1LINGUAS\s0\fR contains a single line, 'fr', an \fIfr.po\fR file must exist alongside the \&\fI\s-1LINGUAS\s0\fR file. .Sp .Vb 5 \& $ cat po/LINGUAS \& cs \& de \& fr \& $ .Ve .Sp Por convenção, o arquivo \fI\s-1LINGUAS\s0\fR é organizado em ordem alfabética, mas esse é um processo manual. .IP "\s-1POTFILES\s0.in" 4 .IX Item "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 \fIpo/\fR 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 \fIpo/\fR. .Sp .Vb 11 \& $ ls \-l \& meuscript.pl \& outro.pl \& foo/suporte.pl \& po/ \& po/POTFILES.in \& $ cat po/POTFILES.in \& meuscript.pl \& outro.pl \& foo/suporte.pl \& $ .Ve .Sp 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 \s-1POD\s0 embutido para documentação. Então, não é um problema ter o mesmo arquivo listado no \&\fIpo/POTFILES.in\fR e \fIdoc/po4a\-build.conf\fR .IP "Makevars\-perl.example" 4 .IX Item "Makevars-perl.example" Se os seus scripts são Perl, copie este arquivo exemplo como \fIpo/Makevars\fR e edite-o para adequá\-lo. .IP "Makevars\-shell.example" 4 .IX Item "Makevars-shell.example" Se os seus scripts são shell, copie este arquivo exemplo como \fIpo/Makevars\fR e edite-o para adequá\-lo. .IP "po4a\-build.make" 4 .IX Item "po4a-build.make" Copie este exemplo como \fIpo/Makefile\fR \- ele não deveria precisar de ser editado, mas você pode desejar mantê\-lo atualizado em relação ao \&\fI/usr/share/doc/po4a/examples/po4a\-build.make\fR, 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.) .SH "Compilação" .IX Header "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. .PP .Vb 2 \& clean: \& $(MAKE) \-C po/ clean \& \& install: \& $(MAKE) \-C po/ install DESTDIR=$(DESTDIR) \& \& dist: \& $(MAKE) \-C po/ pot .Ve .PP (Em um projeto com Autotools, isso aconteceria automaticamente simplesmente adicionando \fIpo\fR ao valor \f(CW\*(C`SUBDIRS\*(C'\fR em \fIMakefile.am\fR.) .SH "Manutenção" .IX Header "Manutenção" Tradução de tempo de execução não é tão fácil, pois \fIpo4a\-build\fR no processo de adicionar uma nova tradução requer edição do \fIpo/LINGUAS\fR, mas, tirando essa questão, atualização de traduções é meramente uma questão de substituir o arquivo \s-1PO\s0 relevante com sua nova versão. .PP Dependendo em como você prepara o seu tarball fonte, você pode também precisar listar os novos arquivos \s-1PO\s0 no arquivo \fI\s-1MANIFEST\s0\fR ou adicionar scripts que preparam o tarball. (que também se aplica a \fIpo4a\-build\fR.) .PP Quaisquer arquivos \fI*.mo\fR ou \fI*.gmo\fR em \fIpo/\fR podem ser excluídos / apagados. .SH "Copyright" .IX Header "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. .SH "AUTORES" .IX Header "AUTORES" .Vb 1 \& Neil Williams .Ve