--- description: 'Como entrar para a equipe de tradutores do FreeBSD e traduzir online no Weblate' next: books/fdp-primer/manual-pages params: path: "/books/fdp-primer/weblate/" prev: books/fdp-primer/po-translations showBookMenu: 'true' tags: ["weblate", "po", "translations", "tutorial", "quick start"] title: 'Capítulo 10. Traduções Weblate' weight: 10 --- [[weblate-translations]] = Traduções Weblate :doctype: book :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :sectnumoffset: 10 :partnums: :source-highlighter: rouge :experimental: :images-path: books/fdp-primer/ ifdef::env-beastie[] ifdef::backend-html5[] :imagesdir: ../../../../images/{images-path} endif::[] ifndef::book[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] toc::[] endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] toc::[] include::../../../../../shared/asciidoctor.adoc[] endif::[] [[weblate-introduction]] == Introdução Este capítulo descreve alguns passos básicos para ingressar na equipe de tradutores do FreeBSD, traduzindo online no Weblate ou offline, e algumas sugestões simples sobre tradução, revisão e teste. O foco é na parte da tradução. Os documentos originais (artigos e livros) estão no {main-site-en}[portal de documentação]. https://weblate.org/en/[Weblate] é um software web de código aberto com foco em idiomas; o projeto FreeBSD possui uma instância local. [[weblate-become-translator]] == Como se Tornar um Tradutor do FreeBSD A seguir seguem os passos para começar a traduzir artigos e livros do Projeto de Documentação do FreeBSD. . Crie uma conta na https://translate-dev.freebsd.org/[instância Weblate do FreeBSD] com um endereço de e-mail ou sua conta GitHub. . Inscreva-se na {freebsd-translators}. . Apresente-se e peça para participar de uma equipe de idiomas. Se a equipe de idiomas não existir, peça para criá-la. A auto-apresentação é essencial. Isso aumenta suas chances de ser aprovado para acesso de escrita. . Acesse o https://translate-dev.freebsd.org/[Weblate] com a nova conta. . Encontre a equipe de idiomas e escolha um documento inicial para traduzir. . Crie uma conta no Bugzilla para enviar as traduções depois de terminar um documento. O projeto de documentação também está aceitando Pull Requests do GitHub com envio de traduções. [WARNING] ==== Todos os arquivos de tradução e documentos devem seguir a https://www.freebsd.org/copyright/freebsd-doc-license/[Licença de Documentação do FreeBSD]; se isso não for aceitável, por favor, não se inscreva ou envie patches ou traduções. ==== [[weblate-introduce-yourself]] == Apresente-se Forneça uma breve auto-apresentação na {freebsd-translators} para iniciar o processo de concessão de acesso. Isso permitirá que um coordenador ou administrador de idiomas forneça as permissões necessárias para que o novo usuário do Weblate comece a traduzir. A seguir está um exemplo de como tal e-mail poderia parecer. [.programlisting] .... Subject: Self-Introduction: Name and language Name: Name (usar nome preferido) Location: City, country (opcional) Login: username or email (essencial) Language: Language to translate (essencial) Profession or student status: (opcional) About You: (formato livre -- informações com as quais você se sente à vontade para compartilhar others: empresa, escola, outra afiliação, habilitações históricas, outras projetos em que você trabalhou, nível e tipo de conhecimento de informática, outras habilidades relevantes, etc.) You and the FreeBSD Project: (formato livre: outros projetos FreeBSD de interesse, comentários, etc.) .... [[weblate-login]] == Entrar no Weblate Abra https://translate-dev.freebsd.org/[] e `Entre`. image::weblate-login.png["Login Weblate", 800] Use um nome de usuário, endereço de e-mail ou conta do GitHub para fazer login. O perfil do usuário contém suas preferências, nome e endereço de e-mail. O nome e o endereço serão usados nos commits; mantenha esta informação atualizada. Na instância Weblate do FreeBSD, todas as traduções serão enviadas para o https://github.com/freebsd/freebsd-doc-translate[freebsd-doc-translate] (um repositório intermediário no GitHub), e não diretamente para o https://github.com/freebsd/freebsd-doc[freebsd-doc]. Os tradutores devem pegar os arquivos PO gettext (`.po`), converte-los para `.adoc` e submete-los via https://bugs.freebsd.org/bugzilla/[Bugzilla] ou https://github.com/freebsd/freebsd-doc/pulls[GitHub] para publicar ou atualizar o documento traduzido no portal de documentação. Veja mais nas seções a seguir. O Weblate irá enviar os commits diariamente, pelo menos, para o `freebsd-doc-translate`, se quaisquer novas strings forem traduzidas. [[weblate-find-language-team]] == Encontre uma Equipe de Idiomas para Participar Clique em `Projetos`, escolha `Documentação`, depois clique em `Idiomas` e veja todos os idiomas disponíveis. image::weblate-languages.png["Idiomas Weblate", 500] Observe que alguns idiomas e documentos traduzidos já existem no portal de documentação e repositórios. Se o idioma desejado para tradução não estiver disponível no Weblate, entre em contato com os https://www.freebsd.org/docproj/translations/[coordenadores de idiomas] antes de solicitar a criação de um novo idioma. Se não houver resposta, entre em contato com a {doceng}. [[weblate-translating-online]] == Traduzindo Online no Weblate Traduzir documentos online tende a ser o método mais fácil para tradução de documentos no FreeBSD, pois permite que os usuários trabalhem no mesmo arquivo, distribuindo a carga de trabalho. Assim que um coordenador ou administrador conceder acesso a um idioma específico para um usuário, o botão salvar será habilitado para que esse usuário possa começar a traduzir. image::weblate-documents.png["Documentos Weblate", 800] image::weblate-translate.png["Weblate Translate", 800] O Weblate possui um conjunto de links que levam à tradução. A tradução é dividida em verificações individuais, como `Não traduzido` ou `Precisando de revisão`. Se todo o documento estiver traduzido sem nenhum erro, o link `Todas as traduções` ainda estará disponível caso uma revisão seja necessária. Como alternativa, o campo de pesquisa pode ser usado para localizar uma string ou termo específico. Na https://docs.weblate.org/en/latest/user/translating.html#translation-projects[documentação do Weblate], há mais informações sobre traduções, como atalhos de teclado e outras dicas sobre a ferramenta de tradução. [[weblate-translating-offline]] == Traduzindo Offline O Weblate no FreeBSD usa arquivos PO gettext para traduções. Os usuários familiarizados com os arquivos PO gettext que desejam traduzir offline podem baixar e enviar as traduções através da página do documento no Weblate clicando na seção `Arquivos`. image::weblate-offline.png["Weblate Offline", 800] [[weblate-automatic-suggestions]] == Tradução baseada em Sugestões Automáticas Os idiomas que usavam Weblate antes da migração para Hugo/Asciidoctor podem usar esse recurso do Weblate para economizar tempo. Este recurso do Weblate usa a Memória de Tradução gerada pelos outros componentes e projetos no mesmo servidor. As antigas traduções do Weblate estão hospedadas no mesmo servidor como somente leitura por causa disso. Strings que correspondem a `100/100` em similaridade podem ser copiadas e salvas diretamente. Outras strings precisarão de pelo menos um pequeno ajuste. Alguns exemplos: image::weblate_automatic_suggestion_01.png["Weblate Sugestões Automáticas 01", 800] Com a migração para Hugo/Asciidoctor, os documentos passaram a utilizar UTF-8. Algumas entidades HTML devem ser substituídas. Algumas strings, como links, requerem alterações na marcação. image::weblate_automatic_suggestion_02.png["Weblate Sugestões Automáticas 02", 800] Links: image::weblate_automatic_suggestion_03.png["Weblate Sugestões Automáticas 03", 800] [[weblate-proofreading-qa]] == Revisão e Verificações de Qualidade do Weblate O dashboard do documento `Projeto/Idioma/Documento` mostra o status da tradução e o status das strings desse documento. Esta página é útil para revisão e verificações de qualidade. image::weblate-revision1.png["Weblate Revisão 01", 800] Neste exemplo, falta o ponto final em duas strings; clicando nesse link será mostrado apenas as strings a serem revisadas/traduzidas. image::weblate-revision2.png["Weblate Revisão 02", 800] Tradutores e revisores geralmente gostam da visualização das strings traduzidas em seu contexto. [[weblate-building]] == Compilando o Documento Traduzido O projeto não usa integração contínua e entrega contínua (CI/CD) para gerar as traduções. Existem estudos para a sua disponibilização. [NOTE] ==== O exemplo a seguir usa o GitHub, pois o Weblate também está no GitHub. Observe que este repositório é um espelho somente leitura, mas as Pull Requests são aceitas. ==== Para gerar a tradução localmente, siga estas etapas: [[weblate-clone-repositories]] [.procedure] ==== .Procedimento: Clone os repositórios necessários . Clone o repositório `freebsd-doc`: + [source, console?prompt=%] .... % git clone https://github.com/freebsd/freebsd-doc.git ~/freebsd-doc .... . Clone o repositório `freebsd-doc-translate`: + [source, console?prompt=%] .... % git clone https://github.com/freebsd/freebsd-doc-translate.git ~/freebsd-doc-translate .... ==== [[weblate-copy-translation]] [.procedure] ==== .Procedimento: Copie um arquivo de tradução para `freebsd-doc` Com ambos os repositórios, copie a tradução de `freebsd-doc-translate` para `freebsd-doc`. Exemplo de tradução do artigo do Committer's Guide em espanhol. [source, console?prompt=%] .... % cp ~/freebsd-doc-translate/documentation/content/es/articles/committers-guide/_index.po \ ~/freebsd-doc/documentation/content/es/articles/committers-guide/ .... ==== [[weblate-translate]] [.procedure] ==== .Procedimento: Converter um arquivo de tradução (`.po`) para `.adoc` Vá para a raiz do `freebsd-doc`. [source, console?prompt=%] .... % cd ~/freebsd-doc .... Traduzir (converter) o arquivo `.po` para `.adoc` [source, console?prompt=%] .... % ./tools/translate.sh documentation es articles/committers-guide .... Por padrão: apenas arquivos com mais de oitenta por cento de strings traduzidas serão convertidos para `.adoc`. Para ignorar esse limite: [source, console?prompt=%] .... % KEEP_ENV=0 ./tools/translate.sh documentation es articles/committers-guide .... ==== Alguns documentos, como livros, possuem muitos arquivos PO gettext. Sempre copie todos eles ao traduzir e compilar. Arquivos que não foram traduzidos serão convertidos com as strings de origem (inglês). [WARNING] ==== A estrutura de diretórios é fundamental. Siga sempre a estrutura de diretórios dos documentos em inglês. ==== [[weblate-build]] [.procedure] ==== .Procedimento: Gerar o documento traduzido Por último, a parte da compilação. Entre no diretório de documentação porque não há necessidade de compilar o site do FreeBSD. [source, console?prompt=%] .... % cd documentation .... E compile a documentação. Observe que `en` é sempre adicionado por padrão ao compilar qualquer outro idioma. [source, console?prompt=%] .... % DOC_LANG=es make .... Este comando irá compilar apenas os documentos em inglês e espanhol do portal de documentação do FreeBSD. A saída estará no diretório [.filename]#public#; abra-o em um navegador. Observe que alguns arquivos de índice podem redirecionar o navegador para a página online. Outra boa opção é compilar e servir o conteúdo com o servidor web interno do Hugo: [source, console?prompt=%] .... % DOC_LANG=es make run .... Por padrão, o servidor web escuta em `localhost`; Para substituir esse comportamento, especifique o endereço IP desejado no valor do parâmetro `BIND`. [source, console?prompt=%] .... % DOC_LANG=es make run BIND=192.168.15.10 .... Isso compila e serve o conteúdo com o servidor web interno de Hugo e deixa ele em espera, quando algum arquivo for alterado, ele o recompila automaticamente. ==== Para fazer os ajustes necessários na tradução, siga as etapas abaixo para sincronizar novamente todos os componentes: - Corrija a string de tradução em https://translate-dev.freebsd.org/[Weblate]. - Force o Weblate a realizar o commit das alterações na aba `Document/Manage/Commit`. - Sincronize o repositório Weblate local `freebsd-doc-translate` com o comando `git pull origin main`. - Copie a tradução novamente para `freebsd-doc`. - Converta a tradução para .adoc com o script `./tools/translate.sh`. - Hugo irá recompilar o arquivo e não todo o conjunto se `make run` foi utilizado; ou execute novamente o `make`. [IMPORTANT] ==== Siga os passos anteriores quantas vezes forem necessárias até que o documento esteja pronto para ser publicado. ==== O capítulo crossref:doc-build[doc-build-rendering,Processo de Compilação da Documentação] inclui informações sobre a renderização para HTML e PDF. [[weblate-submitting-translations]] == Enviando Traduções Exemplo de envio de atualização do artigo Committer's Guide em Português do Brasil. [[weblate-git-repo-status]] [.procedure] ==== .Verifique o repositório Depois de seguir os passos em crossref:weblate[weblate-building,Compilando o Documento Traduzido], vá para a raiz do `freebsd-doc` e visualize o que deve ser submetido. Para obter uma visão geral dos arquivos a serem alterados e das diferenças no conteúdo do arquivo: [source, console?prompt=%] .... % git status % git diff .... Revise a saída e, se algum arquivo não relacionado à atualização da tradução do Committer's Guide foi alterado ou adicionado, tome a ação apropriada de revertê-lo ou removê-lo, respectivamente, antes de continuar. Sempre inclua o arquivo PO gettext (`.po`) e o documento traduzido em Hugo/Asciidoctor (`.adoc`). ==== [[weblate-git-new-branch]] [.procedure] ==== .Crie uma nova branch e faça o commit Crie outra branch para separar o trabalho, o que ajudará em futuras atualizações no repositório local. [source, console?prompt=%] .... % git checkout -b committers-guide_pt-br .... Registre o commit local. [source, console?prompt=%] .... % git add . % git commit .... Exemplo de mensagens de commit para traduções: [.programlisting] .... pt-br/committers-guide: Sincronizar com en XXXXXXX .... Onde `XXXXXXX` é a revisão man:git[1] armazenada no repositório Weblate [.filename]#~/freebsd-doc-translate/revision.txt#. Se for a primeira tradução de um artigo: [.programlisting] .... Adicionar tradução Coreana do artigo Leap Seconds .... Uma mensagem será exibida após o commit se o man:git[1] não tiver sido configurado anteriormente. Siga as instruções e forneça o nome e o endereço de e-mail usado no Weblate. Esta etapa é crucial para creditar o trabalho dos contribuidores. Em seguida, verifique todo o commit, revise as alterações e o nome e e-mail do autor. [source, console?prompt=%] .... % git show .... ==== [[weblate-git-patch-submit]] [.procedure] ==== .Gerar um patch Em seguida, gere um arquivo man:git-format-patch[1]. [source, console?prompt=%] .... % git format-patch main 0001-pt-br-committers-guide-Sync-with-en-XXXXXXX.patch .... ==== Anexe o patch [.filename]#0001-pt-br-committers-guide-Sync-with-en-XXXXXXX.patch# a um relatório de problema no https://bugs.freebsd.org/bugzilla/[Bugzilla do FreeBSD]. Inclua as seguintes informações no relatório: [[weblate-bugzilla-fields]] .Campos do Bugzilla [cols="1,1", frame="none", options="header"] |=== | Campo | Valor | *produto* | Documentação | *Componente* | Artigos e Livros | *Resumo* | O mesmo que o commit local | *Descrição* | Declare que as instruções deste guia foram seguidas, incluindo revisão e outras etapas necessárias. Inclua informações que podem ajudar na triagem e no progresso do relatório. | *CC* (Opcional) | Se o idioma tiver coordenadores, inclua seus endereços de e-mail no campo CC. |=== Para pessoas familiarizadas com man:git[1] e GitHub: em vez de enviar o patch através do https://bugs.freebsd.org/bugzilla/[Bugzilla], um https://github.com/freebsd/freebsd-doc/pulls[pull request do GitHub] pode ser usado (use o nome e o endereço de e-mail utilizado no Weblate). https://github.com/freebsd/freebsd-doc/ é um espelho secundário. Alterações na árvore `doc` podem ser feitas apenas por pessoas que possuem um `doc` commit bit. Quando os tradutores continuam enviando patches de boa qualidade, eles podem ser nomeados por outros committers para receber acesso de escrita (um extref:{committers-guide}[doc commit bit, committer.types] para traduções), uma conta FreeBSD e todas as vantagens associadas. A lista de extref:{contributors}[Contribuidores Adicionais do FreeBSD, contrib-additional] inclui não-committers cujas contribuições são submetidas à árvore `doc`. Em caso de dúvida sobre algum procedimento, escreva para a {freebsd-translators}. [[weblate-faq]] == FAQ (Perguntas Frequentes) [[weblate-copyrights]] === É necessário traduzir todas as mensagens de Copyright? Cada equipe de idiomas decide isso para o seu próprio idioma; na equipe `pt-br` (Português do Brasil), foi decidido não traduzir essas mensagens.