Traduzir

Você pode contribuir para a tradução deste plugin. As traduções são feitas usando o software Weblate, utilizando a instância Framasoft Weblate.

Warning

Nunca modifique diretamente os arquivos na pasta languages, isso pode causar conflitos.

Como fazer

Warning

Pode haver algumas sequências de caracteres “muito técnicas”. Se você não tiver 100% de certeza do significado ou da sua tradução, é melhor não traduzi-la, para que ela seja exibida em inglês.

Traduções do ConverseJS

Este plugin utiliza o ConverseJS para o front-end de bate-papo. O ConverseJS possui suas próprias traduções, em sua própria instância do Weblate. Você também pode traduzir diretamente no repositório de código. Para mais informações, consulte a documentação de traduções do ConverseJS.

Adicionando uma nova localidade

Se você acha que há alguma localidade faltando, verifique primeiro se ela é gerenciada no Peertube. Se for o caso, você pode abrir um problema para solicitá-la.

Adicionar novas strings / usar traduções no código

Se você estiver trabalhando em novos recursos e precisar de novas strings, poderá criá-las diretamente no Weblate. A versão em inglês é obrigatória. Comece por ela.

Cada string está vinculada a uma chave (por exemplo, use_chat). Escolha uma chave explícita, em inglês, com letras minúsculas.

Se você precisar testar novas strings sem esperar por uma mesclagem do Weblate, você pode modificar os arquivos languages/*.yml, mas evite confirmar essas alterações (para minimizar os riscos de conflito).

Use traduções no código front-end

Antes de usar uma string no front-end, você precisa declarar uma nova constante em client/@types/global.d.ts. O nome da constante deve:

  • comece com o prefixo “LOC_”
  • use a tecla string, em maiúsculas
  • você só precisa declarar seu tipo, não seu valor

Por exemplo, para usar “use_chat”, você deve declarar:

declarar const LOC_USE_CHAT: string

O script build-client.js lerá client/@types/global.d.ts, procurará por tais constantes e carregará seus valores dos arquivos de idiomas.

Agora, você pode simplesmente chamar peertubeHelpers.translate(LOC_USE_CHAT) no seu código.

Use traduções no código de back-end

Em teoria, as únicas partes do código de backend onde você precisa de localização são a declaração de configurações e os dados padronizados (ActivityPub, RSS, …). Aqui, precisamos obter strings em inglês da chave de tradução.

Observação: você nunca deve precisar de outra tradução de idioma do código do backend. A localização deve ser feita no frontend.

Existe um módulo lib/loc.ts que fornece uma função loc(). Basta passar a chave para obter a string em inglês: loc('diagnostic')'.

Tradução de documentação

A tradução da documentação é feita usando o componente Weblate correspondente.

Existe um “Hugo shortcodes” específico que você pode usar para exibir uma string de aplicativo. Se você quiser exibir o nome do botão “open_chat_new_window”, pode usar isso no arquivo markdown da documentação:

{{% rótulo_do_chat_ao_vivo abrir_nova_janela_do_chat %}}

Você também pode impedir que uma página inteira seja traduzida adicionando livechatnotranslation: true na seção Yaml Font Matter:

  ---
  título: "Terceiros"
  descrição: "Exibindo o chat ao vivo com software de terceiros."
  peso: 20
  capítulo: falso
  livechatnotranslation: verdadeiro
  ---

Nunca traduza uma string no arquivo livechat.en.pot, pois ela será ignorada. Em vez disso, edite diretamente os arquivos markdown.

Se uma string contiver um link, você poderá alterá-lo para o link correto no idioma traduzido. Por exemplo, para um link para esta documentação, você pode adicionar o código do idioma na URL.

Algumas strings são blocos de código. Não traduza o código. Mas você pode traduzir comentários ou parâmetros, se relevante.

Se não tiver certeza, simplesmente não traduza e pergunte o que fazer.

A ferramenta que utilizo para gerenciar traduções da documentação pode apresentar comportamentos estranhos. Quando adiciono frases que se parecem com outras frases existentes, às vezes ela copia traduções existentes. Portanto, quando houver traduções marcadas como “para verificar”, certifique-se de que ela não copie uma string que não tenha nada a ver com a em inglês antes de validar.

Se você tiver certeza sobre o contexto de uma string, pode verificar a localização da string no painel direito do Weblate e abrir a página de documentação correspondente. Por exemplo, para uma string localizada no arquivo support/documentation/content/en/documentation/user/streamers.md, a URL correspondente é https://livingston.frama.io/peertube-plugin-livechat/documentation/user/streamers/.

Recomendações genéricas

Por favor, seja inclusivo em suas formulações e respeite o código de conduta.