This is an old revision of the document!
PHP Manual: Brazilian Portuguese translation
In this page, we provide details about the Brazilian Portuguese translation effort, as well means of communication between translators. This page will be written in Brazilian Portuguese.
Comunicação
Lista
Toda a comunicação entre os tradutores deve ser feita através da lista de email oficial (para se cadastrar, é só mandar um e-mail para doc-pt-br-subscribe@lists.php.net). Decisões importantes e votações serão feitas sempre por lá.
IRC
Contudo, existe também um meio de comunicação mais dinâmico que é o nosso canal de IRC: irc.freenode.net/phpdocbr, se quiser via web, é só acessar https://webchat.freenode.net/?channels=phpdocbr
Organização
Usamos o Trello para organizar o esforço de tradução e saber exatamente o que precisa ser feito. Confira: https://trello.com/b/j6Nuulpn/lista-de-tarefas-traducao-pt-br
Regras
Para manter o ambiente de tradução do manual íntegro e estável, precisamos seguir algumas regras essenciais. Existem regras tanto para quem possui conta SVN como para quem não possui. Para quem está trabalhando no repositório:
- Jamais faça commit sem antes compilar o manual e verificar se nada está errado
- Jamais aceite patches sem antes compilar o manual e verificar todas as alterações enviadas
- Seja responsável, tudo que for feito no repositório entra em produção algumas horas depois do commit
- Não use tabs, idente com espaços
- Idente apenas com 1 espaço
- Mais uma vez: COMPILE E TESTE ANTES DE COMITAR!
- Utilize um corretor ortográfico antes de comitar
- Na dúvida, use um dicionário. Veja bem: um dicionário, não o Google Translate!
- Jamais mexa em um arquivo marcado como wip por outro tradutor
Situação atual e foco
O build da tradução brasileira atualmente está obsoleto e fora de sincronia com o build EN, tornando-o extremamente volátil. Qualquer alteração em certos documentos que possam ter referências inexistentes no build pt_BR, mas existentes no EN, quebram o build. Portanto, o foco atual do grupo é a sincronização com o build EN, a partir do material já traduzido. Em resumo:
- Não faça novas traduções dos documentos dentro da pasta “reference”, apenas faça a sincronização do material já traduzido
- Foco na sincronia do “language” e do “security”
Tag de revisão
Os arquivos originais do manual possuem uma tag de revisão automática, com o seguinte formato:
<!-- $Revision: nnnnnn $ -->
Os arquivos traduzidos, no entanto, possuem uma tag de revisão diferente:
<!-- EN-Revision: nnnnnn Maintainer: user Status: ready -->
Essa tag permite o rastreamento facilitado da situação da tradução. Em particular:
- EN-Revision: O número da revisão que constava no arquivo original, no momento da tradução.
- Maintainer: O nick do usuário responsável pela manutenção da sincronia da tradução.
- Status: O status atual da tradução. Existem alguns status, conforme abaixo.
Os valores previstos para o Status:
- ready: Significa que a tradução está pronta.
- revision: Significa que a tradução está pronta, mas que o tradutor solicita que outra pessoa revise.
- wip: Work in progress. Um tradutor revisou essa tradução para posterior commit. Entre em contato com ele ou discuta a situação na lista, caso encontre um arquivo em WIP a muito tempo.
Existe também a tag de créditos, que serve para dar créditos à tradutores que trabalharam juntos em um arquivo. O maintainer é o responsável pela manutenção futura arquivo, não significa que ele traduziu tudo sozinho.
A tag de créditos pode estar abaixo ou a direta da tag de revisão. Para manter o número de linhas entre original e tradução, coloque na mesma linha, e após a tag de revisão. Exemplo:
<!-- CREDITS: fulano, ciclano, beltrano -->
Exemplo na mesma linha:
<!-- EN-Revision: nnnnnn Maintainer: user Status: ready --><!-- CREDITS: fulano, ciclano, beltrano -->
Notas
PHPTranslationFestBrasil2014: No caso de não possuir uma credencial do php.net, preencher o Maintainer:
com none
, para indicar que a tradução pode ser conduzida, depois, por outro tradutor. Caso haja interesse em continuar como tradutor do manual do PHP, você poderá assumir essas (e outras) traduções. Acrescente uma tag CREDITS:
com seu email ou um nick no formato __id
, caso deseje.
revcheck: O script de monitoração da tradução usa REGEXs bem simples para ler as tags, então os espaços, ordem e formato geral das tags precisam ser exatamente como nos exemplos acima. De outra forma o script não rastreará corretamente as traduções.
Estilo de Tradução
Durante a tradução, procure sempre:
- Fazer uso da voz ativa em primeira pessoa, jamais chamando o leitor de “você”
- Evitar fugir do contexto, procurando sempre manter-se no assunto do documento sendo traduzido
- Fazer uso do presente, sempre que possível, mas sabendo usar passado e futuro quando apropriado
- Evitar utilizar pronomes pessoais
Quero contribuir
Antes de você pensar em contribuir, deve refletir se realmente está apto para a tarefa. Ajudar a traduzir um manual técnico não é algo fácil. Além de você precisar dominar a língua inglesa, precisa saber escrever português de maneira clara e correta, tomando decisões pertinentes durante a tradução. Você também precisa saber do que está falando, de nada adianta traduzir uma parte do manual que fala sobre LDAP sendo que você nem sabe o que significa ou nunca usou.
Se você quer começar a contribuir para a tradução do manual do PHP, por favor, dedique todo seu tempo ao endereço http://doc.php.net/tutorial/. Nele você aprenderá sobre como o sistema de build do manual funciona, como modificar as páginas apropriadamente e como contribuir de maneira coerente e eficiente. Uma vez que você entendeu como todo o processo funciona, você pode começar a contribuir. Mas lembre-se:
- Siga as regras e leia o jargão de tradução
- Escolha manuais de extensões ainda não documentadas
- Se você é novato, prefira manuais pequenos
- Sempre respeite o foco atual da tradução
Você pode fazer o checkout do repositório e enviar um patch com as suas modificações. Para fazer o checkout:
svn co https://svn.php.net/repository/phpdoc/modules/doc-pt_BR cd doc-pt_BR
Lembre-se de instalar todas as dependências para que você consiga contribuir.
Dependências
- git
- subversion
- php5-cli
- php-pear
- php5-sqlite
- phd
Quase tudo você instala via apt-get/yum/brew, exceto o phd. O phd pode ser instalado facilmente assim:
git clone https://git.php.net/repository/phd.git cd phd sudo pear install package.xml package_generic.xml package_php.xml
Prepare o ambiente e ajude a contribuir com a tradução
Você pode utilizar uma máquina virtual com as dependências já instaladas. Para isso, siga os próximos passos.
Baixar e instalar o Oracle Virtual Box
Utilize a página abaixo para instalar o Virtual Box na sua máquina.
Máquina Virtual para utilização
Baixe a máquina virtual de sua preferência nos endereços abaixo.
Máquina Virtual Ubuntu 14.04 32bits (3,8Gb)
- md5sum 83c4947594ebdae38dc4ec515eef94c7
- Usuário root Senha translationfest
Nessa maquina ainda é preciso instalar o package_php antes de compilar o manual, você pode fazer isso da seguinte forma:
cd ~/translation_fest/phd sudo pear install package_php.xml
Máquina Virtual xUbuntu 14.04 64bits (1,6Gb)
- md5sum ad167d8953a36996d14f422f2942538f
- Usuário xubuntu Senha reverse
- Usuário root Senha reverse
Nessa maquina ainda é preciso instalar o package_php antes de compilar o manual, você pode fazer isso da seguinte forma:
cd ~/translation_fest/phd sudo pear install package_php.xml
Máquina Virtual xUbuntu 14.04 32bits (2,0Gb)
- md5sum 494e45601657efe973d1b1f19853b4f9
- Usuário xubuntu Senha reverse
- Usuário root Senha reverse
Nessa maquina ainda é preciso instalar o package_php antes de compilar o manual, você pode fazer isso da seguinte forma:
cd ~/translation_fest/phd sudo pear install package_php.xml
Máquina Virtual centOS 7 64bits (740Mb)
- md5sum 3794c55e94de29a4001ecaec2ce1cc50
- shasum 678c97df3d059ad784035a9a2cb7c299d0fefb1d
- Usuário root Senha tfest
Existe um compartilhamento nfs na pasta /root/translationfest para que a máquina host possa ler os arquivos. Basta montar como um compartilhamento de rede. Funciona em Windows/Linux/Mac.
Instalar as dependências Ubuntu like
Caso não esteja usando uma máquina virtual, você também pode usar o script abaixo para instalar as dependências numa máquina Ubuntu like:
source <(wget -qO- https://gist.github.com/royopa/599259ebeffa6ab7b1cb/raw/)
Pronto, você já pode começar a editar o manual.
Atualize o repositório svn da documentação
Assim que iniciar o trabalho em qualquer dos ambientes escolhidos, atualize o repositório svn da documentação, com o comando:
cd ~/translation_fest/doc-pt_BR svn up
Compilando o manual
Para compilar, existem algumas opções:
Documentação no formato xHTML
Gera arquivos no formato xHTML, sem imagens, porém funcional:
$ cd ~/doc-pt_BR/ $ php doc-base/configure.php --enable-xml-details --with-lang=pt_BR $ phd --docbook doc-base/.manual.xml --package PHP --format xhtml --output mydocs_xhtml
Agora inicie o servidor web do PHP para acessar a documentação pelo navegador:
$ php -S localhost:8000 -t ./mydocs_xhtml/php-chunked-xhtml
E acesse a documentação gerada através do endereço http://localhost:8000/
Veja esse processo rodando aqui: https://asciinema.org/a/14378
Documentação no formato PHP
Gera arquivos no formato php, que dependem de outros arquivos explicados em http://doc.php.net/tutorial/local-setup.php. Com os comandos abaixo essas dependências já são resolvidas.
$ cd ~/doc-pt_BR/ $ php doc-base/configure.php --enable-xml-details --with-lang=pt_BR $ phd --docbook doc-base/.manual.xml --package PHP --format php --output mydocsphp_pt_BR
Depois de executar os passos acima, utilize os comandos abaixo para baixar as dependências que o formato de documentação em php possui:
$ wget https://github.com/php/web-php/archive/master.zip $ unzip master.zip $ rm -rf master.zip $ rsync -avzC --timeout=600 --delete --delete-after --exclude='distributions/**' --exclude='extra/**' --exclude='backend/notes/**' ./web-php-master/ ./myphpnet/ $ rm -rf web-php-master/
Então mova a pasta da versão da documentação que você criou para dentro da pasta que será usada pelo servidor web:
$ mv mydocsphp_pt_BR/php-web/ myphpnet/manual/pt_BR
Agora inicie o servidor web do PHP para acessar a documentação pelo navegador:
$ php -S localhost:8000 -t ./myphpnet/
E acesse a documentação gerada através do endereço http://localhost:8000/manual/pt_BR/
Veja esse processo rodando aqui: https://asciinema.org/a/14385
Criando um patch com as suas alterações
Depois de terminar suas alterações de tradução e testá-las, você deve fazer um patch com essas alterações.
Para evitar mandar algum patch que mexa na estrutura do original do manual, é sugerido que o patch seja gerado a partir da pasta pt_BR
. Depois de navegar para essa pasta, execute o seguinte comando:
svn diff > minha_traducao.patch
Pronto. Basta mandar esse patch para a lista e alguém irá aplicá-lo caso esteja acordo com o foco da tradução e as regras mencionadas no manual.
Não esqueça de mandar uma commit message junto! ex.:
Translating the Windows install FAQ [Fulano de Tal <fulano@tal.com>]
Quanto mais patches seus forem aprovados, mais fácil para você conseguir uma conta VCS aprovada (SVN, nome@php.net) e agilizar o processo, pois você mesmo vai poder mesclar suas alterações.
Aplicando um patch na documentação
Para aplicar um patch na sua tradução, utilize um dos comandos abaixo:
Se tiver usando o SVN >= 1.7 é só chamar:
svn patch $file
Se não tiver o comando svn patch, use o seguinte comando:
patch -p0 < $file
Arquivos não traduzidos ou desatualizados
Para obter uma lista de arquivos ainda não traduzidos ou desatualizados, execute:
php doc-base/scripts/revcheck.php pt_BR > revcheck.html ; xdg-open revcheck.html
A preferência total é no esforço de atualização de arquivos traduzidos mas desatualizados, já que os mesmos aparecem com texto antigo no site do php.net. Os arquivos em inglês pelo menos estão sempre atualizados.
Como política, sempre pergunte/avise na lista sobre o desejo de mexer em arquivo de algum outro mantenedor. Se auto-credite numa atualização pontual, ou tome para si a manutenção do arquivo caso deseje mantê-lo atualizado ou caso o mantenedor anterior avise que não está mais participando da tradução. Credite o mantenedor anterior caso ele não esteja na tag de créditos.