Ok, compartilho a resposta do Discourse Helper para aqueles que estão interessados e têm o conhecimento para fazê-lo ![]()
Acho essencial melhorar a UI/UX (modernizar nossos fóruns), como o composer, IA e as últimas melhorias que vimos.
O inglês usado é super neutro/simples e faz sentido, mas - no meu caso - as traduções em espanhol não são boas por padrão.
Editar strings na UI do Discourse é OK, mas leva muito tempo, e eu só quero delegar essa tarefa.
Entendo que não é possível baixar todas as strings como um arquivo JSON, mas os textos editados?
Baixar todos os textos do idioma e editar o arquivo seria uma solução alternativa para obter o resultado desejado em 1/5 do tempo.
Estrutura de Plugin de Alto Nível
- Criar Esqueleto do Plugin
- Use:
rake plugin:create[custom-site-texts-group]
- Use:
- Backend: Estender Permissões
- Substitua o controlador relevante, por exemplo,
Admin::SiteTextController, para permitir que membros do seu grupo personalizado acessem os endpoints de edição de texto. - Você pode usar algo semelhante a:
Isso é apenas ilustrativo — você precisará localizar a verificação de permissão correta e garantir que ela esteja restrita apenas à edição de localização, não à administração completa.add_to_class(:admin_constraint, :matches?) do |request| user = ... # carrega o usuário atual da requisição return true if user.admin? # Verifica a associação ao seu grupo group_id = Group.find_by(name: 'seugruponome')&.id return user.group_ids.include?(group_id) end
- Substitua o controlador relevante, por exemplo,
- Frontend: Expor UI para Membros do Grupo
- Use PluginAPI para injetar UI para os membros do seu grupo onde os administradores têm “Personalizar Textos do Site”.
- Oculte essa UI para outros usuários.
- Segurança
- Verifique novamente as permissões em quaisquer ações de controlador e rotas substituídas. Nunca confie em verificações do lado do cliente.