Próximo: Contributing to Guix’s Infrastructure, Anterior: Escrevendo documentação, Acima: Contribuindo [Conteúdo][Índice]
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.
guix
contém todas as strings do software Guix (o
instalador de sistema guiado, gerenciador de pacotes, etc.), excluindo
pacotes.
packages
contém a sinopse (descrição de uma única frase
de um pacote) e descrição (descrição mais longa) de pacotes no Guix.
website
contém o site oficial do Guix, exceto para
postagens de blog e conteúdo multimídia.
documentation-manual
corresponde a este manual.
documentation-cookbook
é o componente do livro de receitas.
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.
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 é 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.
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
).
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.
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.
Atualmente, algumas partes do Guix não podem ser traduzidas no Weblate. Precisamos de ajuda!
guix pull
news pode ser traduzido em news.scm, mas não é
disponível no Weblate. Se você quiser fornecer uma tradução, pode preparar
um patch conforme descrito acima, ou simplesmente nos enviar sua tradução
com o nome da entrada de notícias que você traduziu e seu
idioma. Veja Escrevendo notícias do canal, para mais informações sobre notícias do
canal.
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.
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.
guix
e packages
devem
ser registrado adicionando o novo idioma em po/guix/LINGUAS ou
po/packages/LINGUAS.
documentation-manual
devem ser
registrado adicionando o nome do arquivo em DOC_PO_FILES
em
po/doc/local.mk, o manual gerado em %D%/guix.xx.texi em
info_TEXINFOS
em doc/local.mk e o gerado em
%D%/guix.xx.texi e %D%/contributing.xx.texi em
TRANSLATED_INFO
também em doc/local.mk.
documentation-cookbook
devem ser
registrado adicionando o nome do arquivo em DOC_COOKBOOK_PO_FILES
em
po/doc/local.mk, o manual gerado em %D%/guix-cookbook.xx.texi
em info_TEXINFOS
em doc/local.mk e o gerado em
%D%/guix-cookbook.xx.texi em TRANSLATED_INFO
também em
doc/local.mk.
website
devem ser adicionados ao
Repositório guix-artwork
, em
website/po/. website/po/LINGUAS e
website/po/ietf-tags.scm devem ser atualizados adequadamente (veja
website/i18n-howto.txt para mais informações sobre o processo).
Próximo: Contributing to Guix’s Infrastructure, Anterior: Escrevendo documentação, Acima: Contribuindo [Conteúdo][Índice]