アップグレード後のポップアップメッセージとテキストのカスタマイズの問題

数日前にアップデートしました。アップグレード後、問題が発生しました。

「デフォルトロケール」が英語の場合は問題ありません。ポップアップメッセージは正常に表示されますが、他の言語では問題が発生します。
チャットセクションに関連する一部のテキストを変更できません。ちなみに、試したところ、他の部分は変更できました。この問題がチャット部分のみに関連しているのか、それとも他の領域にも影響があるのかはわかりません。
インターフェースからアップデートしても、コマンドでアップデートしても、同じ問題が発生しました。
本日再度試しました。すべてアンインストールして、クリーンインストールしました。
クリーンインストール済みで、プラグインやコンポーネントはインストールされていません。

バージョン:3.1.0.beta2 -(6fa9a8990d)

何かアイデアはありますか?



「いいね!」 1

テストサイトでこの問題を再現できました。しばらくテストサイトを更新していなかったのですが、バージョン f19044af6a では問題なく動作していました。しかし、最新版の 39be3cb619 に更新したところ、報告されたのと同じ動作になりました。

私の手順:

(バージョン f19044af6a

  • default locale を ‘Español’ に設定
  • chat dm retention days を ‘30’ に設定
  • /admin/customize/site_texts に移動し、js.chat.retention_reminders.dm を編集
  • 新しいテストユーザーでメッセージをリフレッシュして確認:

39be3cb619 に更新

  • 既存のメッセージには、生のパラメータ値が含まれています:

  • /admin/customize/site_texts に移動し、js.chat.retention_reminders.dm を編集すると、ログに以下のエラーが出て 500 エラーが発生します:

Message (4 copies reported)

NoMethodError (undefined method `scan' for {:one=>"Personal chat history is retained for %{count} day.", :other=>"Personal chat history is retained for %{count} days."}:Hash
    keys = text.scan(pattern)
               ^^^^^
)
lib/i18n/i18n_interpolation_keys_finder.rb:6:in `find'
app/models/translation_override.rb:124:in `check_interpolation_keys'
app/models/translation_override.rb:65:in `upsert!'
app/controllers/admin/site_texts_controller.rb:88:in `update'
app/controllers/application_controller.rb:414:in `block in with_resolved_locale'
app/controllers/application_controller.rb:414:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:369:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:228:in `call'

Backtrace

lib/i18n/i18n_interpolation_keys_finder.rb:6:in `find'
app/models/translation_override.rb:124:in `check_interpolation_keys'
activesupport (7.0.4.1) lib/active_support/callbacks.rb:400:in `block in make_lambda'
activesupport (7.0.4.1) lib/active_support/callbacks.rb:199:in `block (2 levels) in halting'
activesupport (7.0.4.1) lib/active_support/callbacks.rb:687:in `block (2 levels) in default_terminator'
activesupport (7.0.4.1) lib/active_support/callbacks.rb:686:in `catch'
activesupport (7.0.4.1) lib/active_support/callbacks.rb:686:in `block in default_terminator'
activesupport (7.0.4.1) lib/active_support/callbacks.rb:200:in `block in halting'
activesupport (7.0.4.1) lib/active_support/callbacks.rb:595:in `block in invoke_before'
activesupport (7.0.4.1) lib/active_support/callbacks.rb:595:in `each'
「いいね!」 3

UIだけではこの状況を修正する方法はありませんか @JammyDodger

「いいね!」 1

Cannot update text for js.composer.error.post_length - #2 by gerhard のような解決策が機能すると確信しています。

「いいね!」 3

お示しいただいたリンクのものとは少し違うと思います。デフォルトのロケールが英語ではなく、「chat dm retention days」を0からx日に変更した場合に問題が発生します。
また、お示しいただいた解決策は機能しません。セーフモードでもテキスト(js.chat.retention_reminders.dm)を変更することはできません。変更しようとすると500エラーが発生します。

「いいね!」 2

いくつか試しましたが、リセットして手動で変更することはできませんでした。現在確認したところ、テキストはデフォルトのテキストに戻っていますが、生の変数(「元に戻す」オプションなし)が表示されており、手動で編集しようとすると500エラーが発生します。他のトピックのセーフモードの回避策も試しましたが、効果はないようです。

英語(英国)ロケールで js.chat.retention_reminders.dm を検索すると3つの選択肢が表示されますが、Español では2つしか表示されません。

「いいね!」 2

翻訳を更新しました。Discourse を最新バージョンに更新すると、UI でこれを修正できるようになります。

カスタマイズした文字列は、[カスタマイズ] → [テキスト] に移動して修正できます。

  • 「js.chat.retention_reminders.dm」を検索します。
  • 「編集」をクリックします。
  • 「変更を元に戻す」をクリックし、「はい」で質問を確認します。
  • 「検索に戻る」をクリックします。
  • 「js.chat.retention_reminders.dm」を検索します。
  • 3 つの結果が表示されるので、これらの文字列をお好みに合わせてカスタマイズしてください。
「いいね!」 7

悪いニュースですみません…

「いいね!」 1

カスタマイズされた「js.chat.retention_reminders.dm」文字列を元に戻すことはできましたか?もしそれで解決したのであれば、このバグをクローズしたいと思います。

さて、問題#2は私のミスです。修正します。FIX: Wrong interpolation key by gschlager · Pull Request #20374 · discourse/discourse · GitHub

問題#1は別の問題です。そちらについては、新しいバグレポートを作成していただけますか?

「いいね!」 4

はい、すぐに作成します :+1:

「いいね!」 1

このトピックは、最後の返信から24時間後に自動的にクローズされました。新しい返信は許可されていません。