Próximo: , Anterior: , Acima: Contribuindo   [Conteúdo][Índice]


22.19 Traduzindo o Guix

Escrever código e pacotes não é a única maneira de fornecer uma contribuição significativa para o Guix. Traduzir para um idioma que você fala é outro exemplo de uma contribuição valiosa que você pode fazer. Esta seção foi criada para descrever o processo de tradução. Ela dá conselhos sobre como você pode se envolver, o que pode ser traduzido, quais erros você deve evitar e o que podemos fazer para ajudar você!

Guix é um grande projeto que tem vários componentes que podem ser traduzidos. Nós coordenamos o esforço de tradução em uma instância Weblate hospedada por nossos amigos no Fedora. Você precisará de uma conta para enviar traduções.

Alguns dos softwares empacotados no Guix também contêm traduções. Não hospedamos uma plataforma de tradução para eles. Se você quiser traduzir um pacote fornecido pelo Guix, entre em contato com os desenvolvedores ou encontre as informações no site deles. Como exemplo, você pode encontrar a homepage do pacote hello digitando guix show hello. Na linha "homepage”, você verá https://www.gnu.org/software/hello/ como a homepage.

Muitos pacotes GNU e não-GNU podem ser traduzidos no Translation Project. Alguns projetos com múltiplos componentes têm sua própria plataforma. Por exemplo, o GNOME tem sua própria plataforma, Damned Lies.

O Guix tem cinco componentes hospedados no Weblate.

General Directions

Depois de obter uma conta, você deve conseguir selecionar um componente do o projeto guix e selecionar um idioma. Se seu idioma não aparecer na lista, vá até o final e clique no botão "niciar nova tradução”. Selecione o idioma para o qual deseja traduzir na lista para iniciar sua nova tradução.

Como muitos outros pacotes de software livre, o Guix usa GNU Gettext para suas traduções, com as quais sequências traduzíveis são extraídas do código-fonte para os chamados arquivos PO.

Embora os arquivos PO sejam arquivos de texto, as alterações não devem ser feitas com um editor de texto, mas com um software de edição PO. O Weblate integra a funcionalidade de edição PO. Como alternativa, os tradutores podem usar qualquer uma das várias ferramentas de software livre para preencher traduções, das quais Poedit é um exemplo, e (após efetuar login) upload o arquivo alterado. Há também um modo de edição PO especial para usuários do GNU Emacs. Com o tempo, os tradutores descobrem com qual software estão satisfeitos e quais recursos precisam.

No Weblate, você encontrará vários links para o editor, que mostrarão vários subconjuntos (ou todos) das strings. Dê uma olhada ao redor e na documentation para se familiarizar com a plataforma.

Componentes de tradução

Nesta seção, fornecemos orientações mais detalhadas sobre o processo de tradução, bem como detalhes sobre o que você deve ou não fazer. Em caso de dúvida, entre em contato conosco, ficaremos felizes em ajudar!

guix

Guix é escrito na linguagem de programação Guile, e algumas strings contêm formatação especial que é interpretada pelo Guile. Essas formatações especiais devem ser destacadas pelo Weblate. Elas começam com ~ seguido por um ou mais caracteres.

Ao imprimir a string, Guile substitui os símbolos especiais de formatação por valores reais. Por exemplo, a string ‘ambiguous package specification `~a'’ seria substituída para conter a dita especificação de pacote em vez de ~a. Para traduzir corretamente essa string, você deve manter o código de formatação em sua tradução, embora você possa colocá-lo onde fizer sentido em seu idioma. Por exemplo, a tradução francesa diz ‘spécification du paquet « ~a » ambiguë’ porque o adjetivo precisa ser colocado no final da frase.

Se houver vários símbolos de formatação, certifique-se de respeitar a ordem. O Guile não sabe em qual ordem você pretendia que a string fosse lida, então ele substituirá os símbolos na mesma ordem da frase em inglês.

Por exemplo, você não pode traduzir ‘package '~a' has been superseded by '~a'’ como ‘'~a' superseeds package '~a'’, porque o significado seria invertido. Se foo for substituído por bar, a tradução seria ‘'foo' superseeds package 'bar'’. Para contornar esse problema, é possível usar uma formatação mais avançada para selecionar um dado pedaço de dados, em vez de seguir a ordem padrão em inglês. Veja Formatted Output em GNU Guile Reference Manual, para mais informações sobre formatação no Guile.

pacotes

As descrições de pacotes ocasionalmente contêm marcação Texinfo (veja Sinopses e descrições). A marcação Texinfo se parece com ‘@code{rm -rf}’, ‘@emph{important}’, etc. Ao traduzir, deixe a marcação como está.

Os caracteres após “@” formam o nome da marcação, e o texto entre “{” e “}” é seu conteúdo. Em geral, você não deve traduzir o conteúdo de uma marcação como @code, pois ela contém código literal que não muda com o idioma. Você pode traduzir o conteúdo de uma marcação de formatação como @emph, @i, @itemize, @item. No entanto, não traduza o nome da marcação, ou ela não será reconhecida. Não traduza a palavra após @end, é o nome da marcação que é fechado nesta posição (por exemplo, @itemize ... @end itemize).

documentation-manual e documentation-cookbook

O primeiro passo para garantir uma tradução bem-sucedida do manual é encontrar e traduzir as seguintes strings primeiro:

  • version.texi: Traduza esta string como version-xx.texi, onde xx é o código do seu idioma (aquele mostrado na URL no weblate).
  • contributing.texi: Traduzir esta string como contributing.xx.texi, onde xx é o mesmo código de idioma.
  • Top: Não traduza esta string, ela é importante para o Texinfo. Se você traduzi-lo, o documento estará vazio (faltando um nó Top). Por favor, procure por ele e registre Top como sua tradução.

Traduzir essas strings primeiro garante que podemos incluir sua tradução no repositório guix sem interromper o processo de criação ou a máquina guix pull.

O manual e o livro de receitas usam Texinfo. Quanto a packages, mantenha a marcação Texinfo como está. Há mais tipos de marcação possíveis no manual do que nas descrições de pacotes. Em geral, não traduza o conteúdo de @code, @file, @var, @value, etc. Você deve traduzir o conteúdo da marcação de formatação, como @emph, @i, etc.

O manual contém seções que podem ser referenciadas pelo nome por @ref, @xref e @pxref. Temos um mecanismo em vigor para que você não tenha que traduzir o conteúdo delas. Se você mantiver o título em inglês, nós o substituiremos automaticamente pela sua tradução desse título. Isso garante que o Texinfo sempre será capaz de encontrar o nó. Se você decidir alterar a tradução do título, as referências serão atualizadas automaticamente e você não terá que atualizá-las todas sozinho.

Ao traduzir referências do livro de receitas para o manual, você precisa substituir o nome do manual e o nome da seção. Por exemplo, para traduzir @pxref{Defining Packages,,, guix, GNU Guix Reference Manual}, você substituiria Defining Packages pelo título daquela seção no manual traduzido somente se aquele título estiver traduzido. Se o título ainda não estiver traduzido para o seu idioma, não o traduza aqui, ou o link será quebrado. Substitua guix por guix.xx onde xx é o código do seu idioma. GNU Guix Reference Manual é o texto do link. Você pode traduzi-lo como quiser.

website

As páginas do site são escritas usando SXML, uma versão s-expression do HTML, a linguagem básica da web. Temos um processo para extrair strings traduzíveis da fonte e substituir s-expressions complexas por uma marcação XML mais familiar, onde cada marcação é numerada. Os tradutores podem alterar arbitrariamente a ordem, como no exemplo a seguir.

#. TRANSLATORS: Defining Packages is a section name
#. in the English (en) manual.
#: apps/base/templates/about.scm:64
msgid "Packages are <1>defined<1.1>en</1.1><1.2>Defining-Packages.html</1.2></1> as native <2>Guile</2> modules."
msgstr "Pakete werden als reine <2>Guile</2>-Module <1>definiert<1.1>de</1.1><1.2>Pakete-definieren.html</1.2></1>."

Note que você precisa incluir as mesmas marcações. Você não pode pular nenhuma.

Caso você cometa um erro, o componente pode falhar ao construir corretamente com seu idioma, ou até mesmo fazer o guix pull falhar. Para evitar isso, temos um processo em vigor para verificar o conteúdo dos arquivos antes de enviar para nosso repositório. Não poderemos atualizar a tradução para seu idioma no Guix, então iremos notificá-lo (por meio do weblate e/ou por e-mail) para que você tenha a chance de corrigir o problema.

Fora do Weblate

Atualmente, algumas partes do Guix não podem ser traduzidas no Weblate. Precisamos de ajuda!

Condições de inclusão

Não há condições para adicionar novas traduções dos componentes guix e guix-packages, além de que eles precisam de pelo menos uma string traduzida. Novos idiomas serão adicionados ao Guix o mais rápido possível. Os arquivos podem ser removidos se ficarem fora de sincronia e não tiverem mais strings traduzidas.

Dado que o site é dedicado a novos usuários, queremos que sua tradução esteja o mais completa possível antes de incluí-la no menu de idiomas. Para que um novo idioma seja incluído, ele precisa atingir pelo menos 80% de conclusão. Quando um idioma é incluído, ele pode ser removido no futuro se ficar fora de sincronia e ficar abaixo de 60% de conclusão.

O manual e o livro de receitas são adicionados automaticamente no destino de compilação padrão. Toda vez que sincronizamos traduções, os desenvolvedores precisam recompilar todos os manuais e livros de receitas traduzidos. Isso é inútil para o que é essencialmente o manual ou livro de receitas em inglês. Portanto, só incluiremos um novo idioma quando ele atingir 10% de conclusão no componente. Quando um idioma é incluído, ele pode ser removido no futuro se ficar fora de sincronia e cair abaixo de 5% de conclusão.

Infraestrutura de tradução

O Weblate é apoiado por um repositório git do qual ele descobre novas strings para traduzir e envia traduções novas e atualizadas. Normalmente, seria suficiente dar a ele acesso de commit para nossos repositórios. No entanto, decidimos usar um repositório separado por dois motivos. Primeiro, teríamos que dar ao Weblate acesso de commit e autorizar sua chave de assinatura, mas não confiamos nele da mesma forma que confiamos nos desenvolvedores do guix, especialmente porque não gerenciamos a instância nós mesmos. Segundo, se os tradutores bagunçarem alguma coisa, isso pode quebrar a geração do site e/ou o guix pull para todos os nossos usuários, independentemente do idioma deles.

Por esses motivos, usamos um repositório dedicado para hospedar as traduções e o sincronizamos com nossos repositórios guix e artworks após verificar se nenhum problema foi introduzido na tradução.

Os desenvolvedores podem baixar os arquivos PO mais recentes do weblate no repositório Guix executando o comando make download-po. Ele baixará automaticamente os arquivos mais recentes do weblate, os reformatará para um formato canônico e verificará se eles não contêm problemas. O manual precisa ser construído novamente para verificar se há problemas adicionais que podem travar o Texinfo.

Antes de enviar novos arquivos de tradução, os desenvolvedores devem adicioná-los à maquinaria de make para que as traduções estejam realmente disponíveis. O processo difere para os vários componentes.


Próximo: Contributing to Guix’s Infrastructure, Anterior: Escrevendo documentação, Acima: Contribuindo   [Conteúdo][Índice]