js.browser_update テキストの変更は、JS 無効表示には適用されません

  1. Customise > Textjs.browser_update を変更します。

  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% 確信はありません)、今日確認すると元のテキストが表示されています。これを回避する方法はないでしょうか?おそらく、このメッセージが表示される際は JavaScript がオフになっていることが多いので、このメッセージを特別に扱うか、短いプラグインを作成するなどはどうでしょうか。

一部のブラウザでは表示され、他のブラウザでは表示されなかったのは、非常に古いブラウザの中にはクライアントサイド翻訳をサポートしていないものがある一方、サポートしているものもあるためと考えられます。

まず翻訳を試み、それが機能しない場合は、英語のデフォルトメッセージのハードコードされたインスタンスにフォールバックします。

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

残念ながら、これ以上できることはあまりありません。いつか人々がそれらのブラウザを使わなくなることを願っています。