We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 33072
    • 25 Posts
    Jotで今まで、ログイン時に文字化けしていた現象が解消され、ロケールに基づく日付の
    表示が正常になりました。ただし、ログアウトすると、ロケール設定は無視?されて、
    たとえば、ログイン時は「9月」であるところが「September」となります。
    ログインしている状態だとQuick Editなどの変更を加えた言語ファイルを読み込むので文字化けが解消されますが、ログアウトするとそれらのファイルを読み込まなくなるのでシステムのデフォルトが利用されるからだと思います。

    言語ファイルを持たないスニペット等でもja_JP.UTF-8を設定したいのであれば、manager/includes/document.parser.class.inc.phpの18行目あたりで
        function DocumentParser() {
            setlocale(LC_ALL,"ja_JP.UTF-8");
    

    などと強引に設定してやれば良いのかと思います。決め打ちになっちゃいますけど。
    ただし、このような変更を加えてもスニペットの言語ファイルなどで
    setlocale(LC_ALL,"ja_JP");

    が実行されると元に戻りますので、相変わらず言語ファイルの変更も必要になるかと思います。
    上記からすると、utf8用の言語ファイルのロケール設定は「ja_JP」ではなく、「ja_JP.UTF-8」が
    適切と言う理解で、良いのでしょうか。。
    うーん、少なくともUnix系のシステムではそうだと私は理解しているんですが、どうなんでしょう>識者の方々。 grin
      • 19033
      • 892 Posts
      yassiさん。ありがとうございます。

      言語ファイルを持たないスニペット等でもja_JP.UTF-8を設定したいのであれば、manager/includes/document.parser.class.inc.phpの18行目あたりで
          function DocumentParser() {
              setlocale(LC_ALL,"ja_JP.UTF-8");

      なるほど~っ。すごいです。
      ログインしていない状態でも、ロケールに基づく日付が表示されました。 laugh

      整理しますと、
      ・utf8の日本語言語ファイルの場合、「setlocale(LC_ALL,"ja_JP.UTF-8")」を指定すること。
      ・言語ファイルがないスニペットなどのロケールに基づく日付を正常に表示させるには「document.parser.class.inc.php」に
       手を加える必要があること。

      ということですよね。。言語ファイルは、日本で独自に用意するモノなので、良いとしても、
      「document.parser.class.inc.php」に手を加えるのは、開発チームの方で対応して頂けると
      うれしいですよね。たとえば、マネージャ画面で、言語選択をしたら、その言語のロケール設定が、
      挿入されるとか。あるいは、ロケールの設定を有効にするかどうかという選択肢もあれば便利かも。。
      そうしたら、各国の言語に対応できるわけですよね?
      (私はプログラムわからないのでアレなのですが...)。

      いずれにしても、疑問が解けてすっきりできました。どうもありがとうございます。