Impossible de personnaliser certains textes du site

@sam, merci pour votre réponse. J’ai déployé trois instances de Discourse en utilisant différentes méthodes, et toutes présentent le même problème, ce qui me fait croire qu’il ne s’agit pas d’un problème d’installation.

En réexaminant mes plugins, j’ai découvert que l’un d’eux avait créé un fichier de locale (plugins/XXXX/config/locales/client.en.yml) avec le contenu suivant :

en:
   js:

La suppression de ce fichier a résolu le problème. Après une brève investigation de l’implémentation I18n, j’ai constaté que deep_merge est utilisé pour fusionner les traductions lors du chargement :

    # 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

Le YAML ci-dessus est analysé comme suit :

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

Cela entraîne la suppression de tout le contenu sous la clé en.js après la fusion. En tant que développeur de plugin, je comprends que ce problème découle de ma propre erreur de codage, et j’en assume l’entière responsabilité. Cependant, je pense que Discourse pourrait bénéficier de vérifications supplémentaires pour avertir de telles occurrences, d’autant plus que Discourse dispose déjà d’une conception pour inspecter les fichiers de locale, comme on peut le voir ici.

4 « J'aime »