No se pueden personalizar algunos textos del sitio

@sam, gracias por tu respuesta. He implementado tres instancias de Discourse utilizando diferentes métodos y todas presentan el mismo problema, lo que me lleva a creer que no es un problema de instalación.

Al reexaminar mis plugins, descubrí que uno de ellos creó un archivo de localización (plugins/XXXX/config/locales/client.en.yml) con el siguiente contenido:

en:
   js:

Eliminar este archivo resolvió el problema. Después de una breve investigación sobre la implementación de I18n, encontré que deep_merge se utiliza para fusionar traducciones durante la carga:

    # 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

El YAML anterior se analiza como:

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

Esto da como resultado la eliminación de todo el contenido bajo la clave en.js después de la fusión. Como desarrollador de plugins, entiendo que este problema se debe a un error de codificación propio y soy totalmente responsable de él. Sin embargo, creo que Discourse podría beneficiarse de verificaciones adicionales para advertir contra tales ocurrencias, especialmente considerando que Discourse ya tiene un diseño para inspeccionar archivos de localización, como se ve aquí.

4 Me gusta