Ir para o conteúdo principal
Version: 2.0.0-beta.19

Sites traduzidos

Esta página explica como migrar um site Docusaurus v1 traduzido para o Docusaurus v2.

diferenças i18n

Docusaurus v2 i18n é conceitualmente muito semelhante ao Docusaurus v1 i18n, com algumas diferenças.

Ele não está fortemente acoplado ao Crowdin, e você pode usar o Git ou outro SaaS.

Caminhos de sistema de arquivos diferentes

On Docusaurus v2, localized content is generally found at website/i18n/[locale].

Docusaurus v2 é modular baseado em um sistema de plugins, e cada plugin é responsável por gerenciar suas próprias traduções.

Cada plugin tem sua própria pasta de i18n, como: website/i18n/fr/docusaurus-plugin-content-blog

APIs de tradução atualizadas

Com o Docusaurus v1, você traduz suas páginas com <translate>:

const translate = require('../../server/translate.js').translate;

<h2>
<translate desc="the header description">
This header will be translated
</translate>
</h2>;

No Docusaurus v2, você traduz suas páginas com <Translate>

import Translate from '@docusaurus/Translate';

<h2>
<Translate id="header.translation.id" description="the header description">
This header will be translated
</Translate>
</h2>;
note

A CLI write-translations ainda funciona para extrair traduções de seu código.

The code translations are now added to i18n/[locale]/code.json using Chrome i18n JSON format.

Stricter Markdown parser

O Docusaurus v2 está usando MDX para analisar arquivos Markdown.

MDX compila arquivos Markdown para componentes React, é mais rigoroso que o stricter Docusaurus v1, e irá fazer sua compilação falhar no erro em vez de renderizar algum conteúdo ruim.

Além disso, os elementos HTML devem ser substituídos por elementos JSX.

Isso é particularmente importante para i18n porque se suas traduções não forem boas no Crowdin e usarem marcação inválida, seu site traduzido v2 pode falhar na construção: você pode precisar fazer alguma limpeza de tradução para corrigir os erros.

Estratégias de migração

Esta seção o ajudará a descobrir como manter suas traduções v1 existentes depois de migrar para a v2.

Existem múltiplas estratégias possíveis para migrar um site Docusaurus v1 usando Crowdin, com diferentes compensações.

caution

Esta documentação é o melhor esforço para ajudá-lo a migrar, ajude-nos a melhorá-la se encontrar uma maneira melhor!

Antes de tudo, recomendamos:

danger

Não tente migrar sem entender o Crowdin e o Docusaurus v2 i18n.

Criar um novo projeto no Crowdin

Para evitar qualquer risco de interromper seu site v1 em produção, uma estratégia possível é duplicar o projeto Crowdin v1 original.

info

Esta estratégia foi usada para atualizar o site Jest.

Infelizmente, o Crowdin não tem qualquer recurso "Duplicar/clonar Projeto", o que torna as coisas complicadas.

  • Baixe a memória de tradução de seu projeto original no formato .tmx ( https://crowdin.com/project/<ORIGINAL_PROJECT>/settings#tm>Exibir registros)
  • Enviar a memória de tradução para o seu novo projeto (https://crowdin.com/project/<NEW_PROJECT>/settings#tm > Ver Registros
  • Reconfigurar crowdin.yml para o Docusaurus v2 de acordo com a documentação de i18n
  • Carregar os arquivos fonte do Docusaurus v2 com o CLI do Crowdin para o novo projeto
  • Marcar frases sensíveis como id ou slug como "hidden string" no Crowdin
  • Na guia "Traduções", clique em "Pré-Tradução > via TM" (https://crowdin.com/project/<NEW_PROJECT>/settings#translations)
  • Tente primeiro com "correspondência 100%" (mais conteúdo será traduzido do que "Perfeito") e pré-traduza suas fontes
  • Baixar localmente as traduções do Crowdin
  • Tente executar/construir seu site e veja se há algum erro

You will likely have errors on your first-try: the pre-translation might try to translate things that it should not be translated (front matter, admonition, code blocks...), and the translated md files might be invalid for the MDX parser.

Você terá que corrigir todos os erros até que seu site seja criado. Você pode fazer isso modificando os arquivos md traduzidos localmente e corrigir seu site para um local de cada vez usando docusaurus build --locale fr.

Não existe um guia definitivo que possamos escrever para corrigir esses erros, mas os erros comuns são devidos a:

  • Não marcar strings suficientes como "hidden strings" no Crowdin, levando à pré-tradução tentando traduzir essas strings.
  • Ter traduções ruins v1, levando a marcação inválida na v2: elementos html inválidos dentro de traduções e tags não fechadas
  • Qualquer coisa rejeitada pelo analisador MDX, como usar elementos HTML em vez de elementos JSX (use o playground MDX para depuração)

Você pode querer repetir este processo de pré-tradução, eventualmente tentando a opção "Perfect" e limitando a pré-tradução apenas alguns idiomas/arquivos.

tip

Use mdx-code-block em torno de elementos de marcação problemáticos: Crowdin é menos provável que bagunce as coisas com blocos de código.

note

Você provavelmente notará que algumas coisas foram traduzidas em seu projeto antigo, mas agora não estão traduzidas em seu novo projeto.

O analisador Crowdin Markdown está evoluindo outra vez e cada projeto Crowdin tem uma versão de analisador diferente, o que pode fazer com que a pré-tradução não seja capaz de pré-traduzir todas as strings.

Esta versão do analisador não está documentada e você terá que pedir ao suporte Crowdin para saber a versão do analisador do seu projeto e corrigir uma versão específica.

Usar a mesma versão cli e versão do analisador nos 2 projetos Crowdin pode dar melhores resultados.

danger

Crowdin tem um recurso de "upload de traduções", mas em nossa experiência não dá resultados muito bons para Markdown

Use o projeto Crowdin existente

Se você não se importa em modificar seu projeto Crowdin existente e arriscar bagunçar as coisas, pode ser possível usar o sistema de ramificação Crowdin.

caution

Este fluxo de trabalho não foi testado na prática, informe-nos como ele é bom.

Dessa forma, você não precisaria criar um novo projeto Crowdin, transferir a memória de tradução, aplicar pré-traduções e tentar corrigir os erros de pré-traduções.

You could create a Crowdin branch for Docusaurus v2, where you upload the v2 sources, and merge the Crowdin branch to main once ready.

Usar o Git em vez do Crowdin

É possível migrar para fora do Crowdin e adicionar os arquivos de tradução ao Git.

Use a CLI do Crowdin para baixar os arquivos traduzidos da v1 e coloque esses arquivos traduzidos no local correto do sistema de arquivos Docusaurus v2.