rust-br / rust-book-pt-br

A Linguagem de Programação Rust
https://rust-br.github.io/rust-book-pt-br/
Other
356 stars 88 forks source link

Gettextizar documentação #198

Open rffontenelle opened 8 months ago

rffontenelle commented 8 months ago

Já consideraram em traduzir strings em um arquivo PO (padrão Gettext) em vez de diretamente em arquivos Markdown?

Comumente usados em projetos de código aberto, arquivos PO são ótimos porque alterações no código-fonte são atualizadas nos exatos pontos, evitando o transtorno de ter que se preocupar com o que mudou no arquivo Markdown de uma versão para outra. Também tem a vantagem de de-duplicar parágrafos: traduz uma string, se aplica para todas as ocorrências.

Enquanto mdbook não tem suporte a internalização, mdbook-i18n-helpers traz ferramentas que resolve isso. Os detalhes e mais informações estão documentadas no USAGE.md, mas resumidamente os passos são:

  1. Instalar: cargo install mdbook-i18n-helpers

  2. Na raiz do projeto rust-lang/book, extrair mensagens e o modelo de catálogo de mensagens (arquivo POT): MDBOOK_OUTPUT='{"xgettext": {"pot-file": "messages.pot"}}' mdbook build -d po

  3. Somente primeira vez, gerar o arquivo de tradução (arquivo PO): msginit --no-translate -i po/messages.pot -o po/pt_BR.po

  4. Nas próximas vezes, basta atualizar a partir do POT: msgmerge --update --previous po/pt_BR.po po/messages.pot pt_BR.po está pronto para ser traduzido. Pode-se usar ferramentas locais, como poedit, ou ferramentas web colaborativas, como o Transifex. Todas gratuitas.

  5. Para gerar a documentação traduzida, antes precisa adicionar o seguinte ao 'book.toml' do projeto rust-lang/book:

    [preprocessor.gettext]
    after = ["links"]
  6. Para gerar a documentação traduzida: MDBOOK_BOOK__LANGUAGE=pt_BR mdbook build -d book/pt_BR