Para sua informação, é possível uma tradução completa do Discourse, incluindo postagens

Para quem se interessa por sites Discourse multilíngues, gostaria de compartilhar informações sobre um produto que recentemente consegui integrar ao meu site hospedado. Não tenho nenhuma associação com esta empresa além de ser cliente e não recebo nenhuma compensação. Apenas estou impressionado com esta tecnologia e quero compartilhá-la porque a tradução é muito difícil e isso a torna tão fácil!

O produto chama-se Linguise. Você pode ver como ele é configurado para funcionar com Discourse (ou tecnologia semelhante) neste vídeo.

Basicamente, você cria uma conta (gratuita por 30 dias) e ele o orienta na configuração de alguns CNAMEs de DNS para o domínio principal do seu site que incluem um prefixo de idioma de 2 letras. Por exemplo, fr.meusite.com, es.meusite.com - um para cada idioma que você deseja disponibilizar.

Eles, então, fornecem um elemento <script> personalizado que você precisa incluir no site Discourse. A maneira mais fácil de fazer isso é criar um novo componente de tema e, em seguida, colocar o comando de script deles na seção <Head>.

É só isso. Um seletor de idioma agora aparece em seu site (você pode ajustar facilmente sua posição e outras características).

Clique nesse seletor e escolha outro idioma e a página será atualizada. Você verá a maioria dos elementos da tela ficarem embaçados por um ou dois segundos, e então a página inteira será traduzida automaticamente.

Isso inclui menus, títulos, nomes de categorias, nomes de posts, conteúdo de posts, etc. Até mesmo as telas de administração e configurações são traduzidas.

É incrível. Você tem 85 idiomas para escolher, e o preço é baseado em quantas palavras são traduzidas - não importa quais idiomas são usados. Começa em cerca de US$ 15 por mês e atinge o máximo de US$ 45 por mês para uso ilimitado.

Essa tecnologia também funciona em quase qualquer site. Eles suportam diretamente Wordpress, Joomla, Squarespace, Wix, Drupal e muitos sites de E-commerce, etc. Mas a forma como isso funciona para Discourse é um tipo de mecanismo geral que pode traduzir qualquer site - até mesmo aqueles para os quais você não tem código-fonte ou acesso de back-end, desde que você tenha uma maneira de incluir essa única tag <script>.

6 curtidas

Você compartilharia seu componente de tema?

É possível personalizar traduções (nomes de categorias, títulos de tópicos…)?

3 curtidas

O guia em vídeo do Linguise não é suficiente para me permitir traduzir meu site Discourse.

Na primeira etapa, onde precisamos escolher nossa Plataforma, ‘Discourse’ não é uma opção lá, e o vídeo do YouTube é mudo quanto ao que escolher nessa lista se estivermos em um site Discourse (e não podemos avançar a menos que façamos uma escolha correta lá).

Olá Bathinda. Você escolheu “Outro CMS hospedado na nuvem”.

2 curtidas

Olá Thomas,

Você pode facilmente criar seu próprio Componente de Tema vazio indo em Admin/Temas/Componentes.

Clique em Instalar e, na caixa de diálogo que aparece, clique em Criar Novo:

Na próxima caixa de diálogo, dê um nome a ele:

Isso cria um componente vazio. Agora, tudo o que você precisa fazer é clicar em Editar CSS/HTML:

Vá para a aba chamada Head. Lá você colará a tag de script personalizada que o Linguise lhe dá quando você configura as coisas em seu site:

Na minha imagem, incluí alguns comentários, mas normalmente você obteria uma lista em branco na qual colaria sua URL personalizada do Linguise.

Note que, trabalhando com o suporte técnico do Linguise, descobrimos que a tag de script precisava ser ligeiramente modificada porque, às vezes, a página exigia uma atualização manual ao mudar de idioma.

Se você mudar o início da tag para que ela comece com <script defer src=…, isso corrige o problema de atualização manual.

Como nota lateral, esses componentes personalizados simples podem ser usados como uma maneira segura e elegante de fazer quaisquer substituições no tema que você está usando e afetar muitos elementos da tela.

Por exemplo, no meu site, desabilitei uma série de elementos de tela que achei que apenas confundiriam minha base de usuários. Para fazer isso, na aba CSS, adicionei alguns seletores CSS com a propriedade display: none.

Por exemplo, isso suprime o botão Adicionar Seção na barra lateral:

.sidebar-wrapper .sidebar-footer-wrapper .btn-flat.add-section {
    display: none;
}

A parte complicada é descobrir os seletores CSS (ou seja, a parte antes do colchete de abertura), mas se você usar as ferramentas de desenvolvedor do seu navegador da web, geralmente poderá encontrar os itens da tela e copiar seus seletores.

Boa sorte!

3 curtidas

Esta é uma explicação muito boa e detalhada. Obrigado por isso.

1 curtida

Gostaria de fornecer alguns detalhes adicionais sobre nossa experiência ao fazer o Linguise funcionar bem com o Discourse.

Primeiro, em nosso site, usamos o plugin Discourse SAML para autenticar usuários em um armazenamento de usuários diferente. Descobrimos que havia um problema de cookie nesse caso específico.

Felizmente, o pessoal da Communiteq (https://www.communiteq.com/), que é uma excelente empresa de hospedagem para Discourse, conseguiu analisar o problema e criar uma pequena correção na forma de um plugin para resolvê-lo. Mas, para a maioria das pessoas, isso não será necessário.

Há uma limitação que você deve estar ciente; o Linguise não faz tradução quando está rodando em seu idioma padrão, no nosso caso, inglês.

Normalmente, isso não é um problema, mas há um caso em que é — posts escritos em outro idioma, digamos espanhol, aparecem em espanhol quando o Linguise está configurado para inglês. Em qualquer outro idioma, eles seriam traduzidos, mas não no idioma padrão.

O Linguise pode melhorar isso no futuro, mas não há compromisso.

A solução alternativa para isso é também utilizar o plugin Discourse Translator. Você precisa configurar o acesso à API de uma das empresas de tradução (Google, Yandex, Microsoft, etc.) e, em seguida, configurar essas credenciais no plugin.

Depois de fazer isso, se você estiver em inglês e lendo um post criado por alguém em espanhol, verá um pequeno ícone de globo

Clicar nele faz com que uma tradução apareça abaixo da original.

Entre os dois, ele cobre todos os casos, embora não tão elegantemente quanto eu gostaria.

Usamos uma conta do Google Cloud que oferece as primeiras 500.000 palavras a cada mês gratuitamente, e raramente excedemos esse limite. Acho que outros fornecedores têm ofertas semelhantes.

Espero que isso seja útil para alguém.

3 curtidas