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:
Instalar:
cargo install mdbook-i18n-helpers
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
Somente primeira vez, gerar o arquivo de tradução (arquivo PO):
msginit --no-translate -i po/messages.pot -o po/pt_BR.po
Nas próximas vezes, basta atualizar a partir do POT:
msgmerge --update --previous po/pt_BR.po po/messages.potpt_BR.po está pronto para ser traduzido. Pode-se usar ferramentas locais, como poedit, ou ferramentas web colaborativas, como o Transifex. Todas gratuitas.
Para gerar a documentação traduzida, antes precisa adicionar o seguinte ao 'book.toml' do projeto rust-lang/book:
[preprocessor.gettext]
after = ["links"]
Para gerar a documentação traduzida:
MDBOOK_BOOK__LANGUAGE=pt_BR mdbook build -d book/pt_BR
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:
Instalar:
cargo install mdbook-i18n-helpers
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
Somente primeira vez, gerar o arquivo de tradução (arquivo PO):
msginit --no-translate -i po/messages.pot -o po/pt_BR.po
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.Para gerar a documentação traduzida, antes precisa adicionar o seguinte ao 'book.toml' do projeto rust-lang/book:
Para gerar a documentação traduzida:
MDBOOK_BOOK__LANGUAGE=pt_BR mdbook build -d book/pt_BR