Impossibile personalizzare alcuni testi del sito

@sam, grazie per la tua risposta. Ho distribuito tre istanze di Discourse utilizzando metodi diversi e tutte presentano lo stesso problema, il che mi porta a credere che non si tratti di un problema di installazione.

Riesaminando i miei plugin, ho scoperto che uno di essi ha creato un file locale (plugins/XXXX/config/locales/client.en.yml) con il seguente contenuto:

en:
   js:

L’eliminazione di questo file ha risolto il problema. Dopo una breve indagine sull’implementazione di I18n, ho scoperto che deep_merge viene utilizzato per unire le traduzioni durante il caricamento:

    # 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

Lo YAML sopra viene analizzato come:

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

Ciò comporta l’eliminazione dell’intero contenuto sotto la chiave en.js dopo l’unione. In qualità di sviluppatore di plugin, comprendo che questo problema deriva da un mio errore di codifica e ne sono pienamente responsabile. Tuttavia, credo che Discourse potrebbe beneficiare di controlli aggiuntivi per avvisare contro tali occorrenze, soprattutto considerando che Discourse ha già una progettazione per ispezionare i file locali, come si vede qui.

4 Mi Piace