Não é possível personalizar alguns textos do site

@sam, obrigado pela sua resposta. Implantei três instâncias do Discourse usando métodos diferentes e todas apresentam o mesmo problema, o que me leva a acreditar que não é um problema de instalação.

Ao reexaminar meus plugins, descobri que um deles criou um arquivo de local (plugins/XXXX/config/locales/client.en.yml) com o seguinte conteúdo:

en:
   js:

Excluir este arquivo resolveu o problema. Após uma breve investigação sobre a implementação do I18n, descobri que deep_merge é usado para mesclar traduções durante o carregamento:

    # File activesupport/lib/active_support/vendor/i18n-0.4.1/i18n/backend/simple.rb, line 31
31:         def store_translations(locale, data, options = {})
32:           locale = locale.to_sym
33:           translations[locale] ||= {}
34:           data = data.deep_symbolize_keys
35:           translations[locale].deep_merge!(data)
36:         end

O YAML acima é analisado como:

{"en": {"js": null}}

Isso resulta na exclusão de todo o conteúdo sob a chave en.js após a mesclagem. Como desenvolvedor de plugins, entendo que esse problema decorre de um erro meu de codificação e sou totalmente responsável por ele. No entanto, acredito que o Discourse poderia se beneficiar de verificações adicionais para alertar contra tais ocorrências, especialmente considerando que o Discourse já possui um design para inspecionar arquivos de local, como visto aqui.

4 curtidas