업그레이드 후 팝업 메시지 및 텍스트 사용자 지정 문제

며칠 전에 업데이트를 했습니다. 업그레이드 후 문제가 발생했습니다.

"기본 언어"가 영어인 경우 문제는 없습니다. 팝업 메시지가 정상적으로 표시되지만, 다른 언어에서는 문제가 발생합니다.
채팅 섹션과 관련된 일부 텍스트를 변경할 수 없습니다. 참고로 다른 부분에서는 변경이 가능합니다. 이 문제가 채팅 부분에만 해당되는지, 아니면 다른 영역에도 있는지 확실하지 않습니다.
인터페이스를 통해 업데이트를 하든, 명령어로 하든 동일한 문제가 발생했습니다.
오늘 다시 시도했습니다. 모든 것을 삭제하고 새로 설치했습니다.
새로 설치했으며, 플러그인이나 컴포넌트가 설치되어 있지 않은 상태입니다.

버전: 3.1.0.beta2 -(6fa9a8990d)

아무 아이디어가 있으신가요?



1개의 좋아요

방금 테스트 사이트에서 이 문제를 재현해 보았습니다. 테스트 사이트를 꽤 오랫동안 업데이트하지 않아서, 버전 f19044af6a에서는 정상적으로 작동했지만, 최신 버전 39be3cb619로 업데이트하니 보고된 것과 동일한 증상이 나타났습니다.

단계별 재현 방법:

(버전 f19044af6a)

  • 기본 로케일(default locale)을 'Español’로 설정
  • 채팅 DM 보관 일수(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개의 좋아요

여러 방법을 시도해 보았지만, 리셋을 실행하여 수동으로 변경할 수 있도록 다시 로그인하는 데 실패했습니다. 지금 다시 확인해 보니, 텍스트는 기본 텍스트로 되돌아갔지만 원시 변수(raw variable)가 그대로 남아 있습니다(따라서 ‘되돌리기’ 옵션이 사용 불가). 수동으로 편집을 시도하면 500 에러가 발생합니다. 다른 토픽에서 언급된 안전 모드 우회 방법도 시도해 보았지만, 효과는 없었습니다.

영어(영국) 로케일에서 js.chat.retention_reminders.dm를 검색하면 세 가지 옵션이 제시되지만, 에스파뇰(스페인어)에서는 두 가지만 제시됩니다.

2개의 좋아요

번역이 업데이트되었으므로, Discourse를 최신 버전으로 업데이트한 후 UI에서 이 문제를 수정할 수 있습니다:

Customize → Text로 이동하여 사용자 정의한 문자열을 수정할 수 있습니다:

  • "js.chat.retention_reminders.dm"를 검색하세요.
  • "edit"를 클릭하세요.
  • "revert changes"를 클릭하고 "yes"로 확인하세요.
  • "back to search"를 클릭하세요.
  • "js.chat.retention_reminders.dm"를 다시 검색하세요.
  • 3개의 결과를 볼 수 있으며, 원하는 대로 해당 문자열을 사용자 정의하세요.
7개의 좋아요

나쁜 소식이라 죄송합니다…

1개의 좋아요

사용자가 수정한 “js.chat.retention_reminders.dm” 문자열을 되돌릴 수 있었나요? 그로 인해 문제가 해결되었다면 이 버그를 닫고 싶습니다.

음, 2번 문제는 제 실수입니다. 수정하겠습니다. FIX: Wrong interpolation key - Pull Request #20374 - discourse/discourse - GitHub

1번 문제는 별개의 문제입니다. 해당 문제에 대해 새로운 버그 보고서를 작성해 주시겠어요?

4개의 좋아요

네, 바로 만들게요 :+1:

1개의 좋아요

이 주제는 마지막 답변 후 24시간이 지나면 자동으로 닫힙니다. 더 이상 새 답변을 할 수 없습니다.