js.browser_update 텍스트를 변경해도 JS 없는 뷰에 적용되지 않음

  1. js.browser_update를 Customise > Text에서 변경하세요.

  2. IE10에서 Discourse를 엽니다.

  3. 사용자 지정 메시지가 아닌 기본 메시지가 표시됩니다

AFAIK에 따르면, JS 텍스트 커스터마이징은 JavaScript로 실행됩니다. 구형 브라우저를 위한 우리 모드는 JavaScript 없이 순수 HTML로만 구성되므로, JS 관련 기능은 해당 모드에서 실행되지 않습니다. 이는 예상되는 동작입니다.

여기에 설정되어 있습니다. https://github.com/discourse/discourse/blob/master/vendor/assets/javascripts/browser-update.js.erb#L29

그래서 적용되어야 합니다. :man_shrugging:

아, 더 이상 작동하지 않을 것입니다. 모든 전역 변수를 제거하고 있으며, I18n은 지난주에 제거된 마지막 대상이었습니다.

@zcuric 님, 재빌드 후에는 작동할 수 있습니다.

안타깝게도 작동하지 않습니다. 오늘 릴리스를 진행했고 앱을 다시 빌드했지만, 같은 문제가 발생합니다.

저도 같은 문제를 겪고 있습니다. 처음에 js.browser_update를 변경했을 때 오래된 브라우저에서 표시되는 것 같았어요(하지만 지금은 100% 확신하지 못합니다). 그런데 오늘 보니 원래 텍스트가 표시되고 있네요. 이 문제를 우회할 수 있는 방법이 있을까요… 예를 들어 이 특정 메시지를 다르게 처리하는 것이라든가요. 대부분 이 메시지가 표시될 때는 자바스크립트가 꺼져 있을 테니까요. 짧은 플러그인을 만드는 것도 방법일까요?

이 작업이 한 브라우저에서는 작동했지만 다른 브라우저에서는 작동하지 않은 이유는, 매우 오래된 브라우저는 클라이언트 측 번역을 지원하지 않는 반면 다른 브라우저는 지원할 수 있기 때문일 수 있습니다.

우리는 먼저 번역을 실행해 보지만, 작동하지 않으면 영어 기본 메시지의 하드코딩된 인스턴스로 폴백합니다:

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/scripts/browser-update.js#L50

불행히도 이 문제에 대해 우리가 더 할 수 있는 일은 많지 않습니다. Hopefully 사람들이 언젠가는 이러한 브라우저를 사용하지 않게 되기를 바랍니다.