Errore nella modifica dei testi del sito

Ciao,
Oggi sto cercando di modificare alcuni testi del sito nel pannello di amministrazione. Quando faccio clic su “Salva modifiche” ricevo un errore di server 500.
Da quel momento, ogni volta che cerco per ID del testo o corpo del testo, ottengo nuovamente l’errore di server 500.

Credo che il testo tradotto contenga la parola chiave “{{count}}”.

Il mio Discourse è aggiornato e di seguito trovi le informazioni dal log:

Ambiente:

REQUEST_URI	/admin/customize/site_texts?q=off_
REQUEST_METHOD	GET

Informazioni:

TypeError (nessuna conversione implicita da Symbol a Integer)
/var/www/discourse/app/controllers/admin/site_texts_controller.rb:172:in `[]'

Backtrace:

/var/www/discourse/app/controllers/admin/site_texts_controller.rb:172:in `[]'
/var/www/discourse/app/controllers/admin/site_texts_controller.rb:172:in `block in fix_plural_keys'
/var/www/discourse/app/controllers/admin/site_texts_controller.rb:171:in `map'
/var/www/discourse/app/controllers/admin/site_texts_controller.rb:171:in `fix_plural_keys'
/var/www/discourse/app/controllers/admin/site_texts_controller.rb:153:in `block in find_translations'
/var/www/discourse/app/controllers/admin/site_texts_controller.rb:151:in `each'
/var/www/discourse/app/controllers/admin/site_texts_controller.rb:151:in `find_translations'
/var/www/discourse/app/controllers/admin/site_texts_controller.rb:30:in `index'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/abstract_controller/base.rb:194:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_controller/metal/rendering.rb:30:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:132:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/abstract_controller/callbacks.rb:41:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_controller/metal/rescue.rb:22:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.3/lib/active_support/notifications.rb:168:in `block in instrument'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.3/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.3/lib/active_support/notifications.rb:168:in `instrument'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_controller/metal/instrumentation.rb:32:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_controller/metal/params_wrapper.rb:256:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/railties/controller_runtime.rb:24:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/abstract_controller/base.rb:134:in `process'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionview-5.2.3/lib/action_view/rendering.rb:32:in `process'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.0.2/lib/mini_profiler/profiling_methods.rb:104:in `block in profile_method'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_controller/metal.rb:191:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_controller/metal.rb:252:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/routing/route_set.rb:52:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/routing/route_set.rb:34:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/routing/mapper.rb:18:in `block in <class:Constraints>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/routing/mapper.rb:48:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/journey/router.rb:52:in `block in serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/journey/router.rb:35:in `each'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/journey/router.rb:35:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/routing/route_set.rb:840:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-protection-2.0.5/lib/rack/protection/frame_options.rb:31:in `call'
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:68:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/tempfile_reaper.rb:15:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/conditional_get.rb:25:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/head.rb:12:in `call'
/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'
/var/www/discourse/lib/middleware/anonymous_cache.rb:220:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/session/abstract/id.rb:232:in `context'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/session/abstract/id.rb:226:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/middleware/cookies.rb:670:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:98:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/middleware/debug_exceptions.rb:61:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/logster-2.3.1/lib/logster/middleware/reporter.rb:30:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-5.2.3/lib/rails/rack/logger.rb:38:in `call_app'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-5.2.3/lib/rails/rack/logger.rb:28:in `call'
/var/www/discourse/config/initializers/100-quiet_logger.rb:18:in `call'
/var/www/discourse/config/initializers/100-silence_logger.rb:31:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/middleware/request_id.rb:27:in `call'
/var/www/discourse/lib/middleware/enforce_hostname.rb:17:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/method_override.rb:22:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/middleware/executor.rb:14:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/sendfile.rb:111:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.0.2/lib/mini_profiler/profiler.rb:281:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-2.2.2/lib/message_bus/rack/middleware.rb:57:in `call'
/var/www/discourse/lib/middleware/request_tracker.rb:169:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-5.2.3/lib/rails/engine.rb:524:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-5.2.3/lib/rails/railtie.rb:190:in `public_send'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-5.2.3/lib/rails/railtie.rb:190:in `method_missing'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/urlmap.rb:68:in `block in call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/urlmap.rb:53:in `each'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/urlmap.rb:53:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:605:in `process_client'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:700:in `worker_loop'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:548:in `spawn_missing_workers'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:144:in `start'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `<main>'
3 Mi Piace

Non riesco a riprodurre il problema qui; potrebbe trattarsi di una traduzione errata. Qual è la tua località?

1 Mi Piace

La mia lingua Discourse è fa_IR. Questo succede dopo che provo a modificare il testo.
A volte la modifica del testo genera errori, specialmente quando nel testo sono presenti delle variabili.

Penso che alcune variabili siano cambiate nel tempo, ma vengono ancora utilizzate nelle traduzioni vecchie. Come {site_title} e {site_name} oppure {base_url} e {basePath} o {base_path}.

Potrebbe non essere male mostrare il testo in inglese come spiegazione per la traduzione, sotto la casella di modifica del testo, quando Discourse utilizza una lingua diversa.

2 Mi Piace

Sì, credo che ci sia un problema nella traduzione. Fammi sapere appena passi all’inglese. Puoi aiutare a correggere le stringhe su Transifex?

3 Mi Piace

Onestamente, non posso usare l’inglese perché il mio Discourse è attivo e molti utenti lo utilizzano.

Sì, sono felice di aiutare a correggere la traduzione in persiano, dato che ci sono molti errori in questa lingua. Modifichiamo i testi del nostro sito Discourse e li personalizziamo. Posso correggere alcuni degli errori comuni che vedo nel mio Discourse nel tempo su Transifex.


La pagina di personalizzazione dei testi in Discourse ha un design molto semplice e non sarebbe male dedicare un po’ più di tempo a questa grande funzionalità.

Modifiche come:

  • Visualizzare il testo inglese predefinito per ogni elemento durante la personalizzazione dei testi
  • Mostrare il suggerimento della comunità nella lingua selezionata per ogni elemento durante la personalizzazione dei testi
  • Suggerire una traduzione migliore alla comunità in loco
  • Possibilità di modificare le traduzioni nei testi memorizzati nel database, come i messaggi di sistema
  • Visualizzare un elenco delle variabili consentite che possono essere utilizzate nel testo durante la personalizzazione dei testi
2 Mi Piace

Non riesco a riprodurre un problema di ricerca con off_ che rompe Discourse con fa_IR impostato. Sei sicuro di essere sull’ultima versione?

@gerhard è questo un bug in fix_plural_keys? Dovrebbe essere più conservativo. Immagino che I18n.t(key, locale: :en) potrebbe in teoria restituire qui qualcosa di non plurale:

Almeno, se rendiamo questo un po’ più multilinea, potremo vedere cosa è esploso.

6 Mi Piace

La mia istanza di Discourse è aggiornata. Se hai bisogno di un log o di un rapporto specifico per il debug, fammi sapere e te lo invierò. Possiamo anche darti accesso remoto o privilegi di amministratore per ulteriori indagini.

@nildarar Vorrei capire cosa sta causando quell’errore. Potresti eseguire quanto segue e pubblicare l’output?

cd /var/discourse
./launcher enter app
rails c

TranslationOverride.where("translation_key LIKE '%off_%'").pluck(:locale, :translation_key, :value)
2 Mi Piace

Grazie per il tuo supporto. Ho eseguito questo comando e ottenuto questo output:

[1] pry(main)> TranslationOverride.where("translation_key LIKE '%off_%'").pluck(:locale, :translation_key, :value)
=> [["fa_IR", "post_action_types.off_topic.title", "Non è correlato al tema della chat o alla categoria selezionata"],
 ["fa_IR", "js.post.actions.undo.off_topic", "Rimuovi segnalazione"],
 ["fa_IR", "js.post.actions.by_others.off_topic.one", "{{count}} utente ha segnalato questo elemento come fuori tema"],
 ["fa_IR", "post_action_types.off_topic.long_form", "Segnala questo argomento come fuori tema"],
 ["fa_IR", "js.post.actions.people.off_topic", "Segnalato come fuori tema dalla chat"],
 ["fa_IR", "js.post.actions.by_you.off_topic", "Hai segnalato questo messaggio ai moderatori per verifica tematica."],
 ["fa_IR", "js.composer.drafts_offline", "Bozza offline"],
 ["fa_IR", "js.flagging.official_warning", "Invia avvertimento ufficiale"],
 ["fa_IR", "js.flagging.formatted_name.off_topic", "Non è correlato al tema della chat o alla categoria selezionata"],
 ["fa_IR", "post_action_types.off_topic.short_description", "Non è correlato al tema della chat o alla categoria selezionata"],
 ["fa_IR", "post_action_types.off_topic.description", "Questo messaggio non presenta problemi, ma non è pertinente al tema della chat o alla categoria selezionata; sarebbe meglio spostarlo in un'altra chat o inserirlo nella categoria corretta."]]
[2] pry(main)>
2 Mi Piace

Grazie! Ci ha aiutato molto. L’errore è stato corretto in FIX: An overridden text of a non-existent plural key resulted in error · discourse/discourse@d516e49 · GitHub

3 Mi Piace