Como os emblemas e grupos podem ser localizados (multilíngues)? Durante a configuração, notei que os títulos dos emblemas e grupos não mudam com o idioma do tema. Como posso fazer com que os emblemas e grupos sigam a troca de tema?
A capacidade de localizar emblemas e grupos personalizados para um site multilíngue ainda não existe — no momento, apenas publicações, categorias e etiquetas podem ser localizadas.
Ok, obrigado. Mas por que os emblemas neste site (meta.discourse.org) mudam de idioma junto com o tema? Isso é causado por um recurso de tradução? Eu sugiro que a equipe oficial adicione configurações de personalização multilíngue para emblemas, grupos e tags; caso contrário, usuários multilíngues não conseguirão entender o conteúdo dos emblemas, grupos e tags.
Existem alguns emblemas semeados em todos os sites que são internacionalizados (i18n) através do Crowdin.
Emblemas personalizados armazenam nome/descrição como texto simples no banco de dados. Quando I18n.t (recurso de internacionalização) é chamado com uma chave como badges.my_custom_badge.name, não há uma tradução correspondente, então ele retorna para o valor armazenado no BD — o mesmo texto para todas as localizações.
Existe uma solução alternativa onde os administradores podem adicionar manualmente traduções para chaves de emblemas personalizados por localização.
Você pode personalizar os textos do seu site em \u003cyour site\u003e/admin/customize/site_texts.
Algumas etapas concretas para você
- Crie o emblema
- Vá para /admin/badges → Novo Emblema
- Defina nome, descrição, ícone, etc. normalmente
- Encontre a chave i18n
- O padrão da chave é
badges.{snake_case_name}.name - O snake_case_name é o nome do emblema em letras minúsculas com espaços substituídos por sublinhados
- Então “Pokémon Master” →
badges.pokémon_master.name
- Adicione substituições de tradução
- Vá para /admin/customize/site_texts
- Pesquise por
badges.pokémon_master - Você verá chaves como:
badges.pokémon_master.namebadges.pokémon_master.descriptionbadges.pokémon_master.long_description
- Mude para a localização de destino (ex: 简体中文), clique na chave e insira o texto traduzido
- Repita por localização
- Mude a localização no menu suspenso, adicione traduções para cada idioma que você precisa
.name- título do emblema.description- descrição curta mostrada nos cartões de emblema.long_description- descrição completa mostrada na página de detalhes do emblema
english
japanese
Oi! Obrigado pela resposta! Como é implementada a segunda etapa de encontrar a “i18n key”? Não encontrei a localização da i18n key.
Você não o "encontra" de verdade, apenas o deriva do nome que você dará ao distintivo. (Atualizarei a segunda etapa para usar "derivar" em vez de "encontrar")
Portanto, se você usar “Bug Finder” como nome do distintivo, a chave será badges.bug_finder.name
Não sei por que, mas ao pesquisar qualquer coisa em /admin/customize/site_texts, ele sempre retorna “No matching site texts found”. Você sabe qual pode ser a causa?
Ah, desculpe, preciso corrigir meus passos anteriores!
A página de administração de textos do site (/admin/customize/site_texts) só consegue encontrar chaves que já existem nos arquivos de tradução do Discourse. Portanto, infelizmente, chaves de emblemas personalizados como badges.pokémon_master.name não existem lá, e procurá-las retornará nada (que é o problema que você está enfrentando).
As capturas de tela que compartilhei foram de uma configuração onde criei as entradas de tradução através do console Rails. Os passos da interface de administração que forneci não funcionarão como escritos. Desculpe pela confusão. O que realmente funciona, se você tiver acesso ao console, é criar substituições de tradução para emblemas personalizados:
# o padrão da chave é: badges.{nome_em_snake_case}.{name|description|long_description}
# ex: para um emblema chamado "Pokemon Master":
TranslationOverride.upsert!("zh_CN", "badges.pokemon_master.name", "宝可梦大师")
TranslationOverride.upsert!("zh_CN", "badges.pokemon_master.description", "你的描述")
Uma vez criadas pelo console, a tradução aparecerá em /admin/customize/site_texts e poderá ser editada a partir daí dali em diante.
Se você não tiver acesso ao console, isso atualmente não é possível. A localização de emblemas personalizados ainda não é suportada, como @awesomerobot havia mencionado.


