We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 20625
    • 4 Posts
    Kalenderスニペットを導入したところ
    カレンダーの曜日等が文字化けしてしまいます。

    &lang=`ja`と入れても変わらず
    239行あたりの
    setlocale (LC_TIME, $locale);
    を
    setlocale(LC_ALL,"ja_JP.UTF-8");
    と変更しても変化がありませんでした。

    どなたかこのスニペットを使用している
    もしくは解決方法などわかりましたら
    ご教授ください。
      • 19033
      • 892 Posts
      こんにちは。mune@p-creさん。

      少し確認したいことがあるのですが、ご利用のスニペットは、以下のものでしょうか。
      http://modxcms.com/Kalender-1210.html

      また、phpのバージョン、mysqlのバージョン、MODxのバージョンなども合わせて
      お知らせ頂けますか?
        • 19033
        • 892 Posts
        あ、こちらですか?
        http://modxcms.com/Kalender-1421.html
          • 19033
          • 892 Posts
          こんにちは。ためしに、以下のふたつの言語ファイルを書き替えてみて頂けますか?

          # modules/docmanager/lang/japanese-utf8.inc.php
          # modules/quick_edit/lang/japanese-utf8.inc.php

          これの
          setlocale( LC_ALL, "ja_JP");

          上記を↓以下に修正
          setlocale( LC_ALL, "ja_JP.UTF-8");
            • 19033
            • 892 Posts
            こんにちは。
            色々試してみたのですが、カレンダーの上下の「月」の文字化けは直りましたが、
            曜日は直らないですね。ちょっと私の範疇外になってきました。。

            プログラムに詳しい方、可能でしたらフォローお願い出来れば幸いです。
              • 20625
              • 4 Posts
              MEGUさん
              レス及び検証ありがとうございます。

              大事な情報を忘れてました。申し訳ありません。
              現在の構築環境は

              PHP 5.2.6
              MySQL 4.1.22
              MODx 0.9.6.1p2

              全てUTF-8にて動作しています。

              Dittoなどのスニペットは正常に動作しています。

              カレンダースニペットは以下のものを使用しています。
              http://modxcms.com/Kalender-1421.html
              http://modxcms.com/Kalender-Enhanced-1732.html

              言語ファイル等はこれから検証してみます。
                • 20625
                • 4 Posts
                一応自己解決しました

                その他日本語関連も合わせて修正してあります。


                239行目
                setlocale (LC_TIME, $locale);
                ↓
                setlocale(LC_ALL,"ja_JP.UTF-8");


                425行目
                <? echo utf8_encode($month).’ ’.$yyyy; ?>
                ↓
                <? echo strftime("%Y %B"); ?>

                440行目
                <? echo substr($showday, 0, $dayLen); ?>
                <? echo $showday; ?>


                524行目
                $html.= strftime("%A, %b. %d",strtotime($mm."/".$d."/".$yyyy)).", ".$yyyy;
                ↓
                $html.= $yyyy."年 ". strftime("%b %d日 %a",strtotime($mm."/".$d."/".$yyyy));


                715行目
                <a href="<? echo $url_prefix; ?>mo=<? echo date("n"); ?>&yr=<? echo date("Y"); ?>" class="kalender-jump-link"><? echo strftime("%B %Y"); ?></a></td>
                <a href="<? echo $url_prefix; ?>mo=<? echo date("n"); ?>&yr=<? echo date("Y"); ?>" class="kalender-jump-link"><? echo strftime("%Y %B"); ?></a></td>


                「動けば良し」ってことでコードがスマートではないと思います。
                どなたかフォローがありましたらお願いいたします。
                  • 19033
                  • 892 Posts
                  mune@p-creさん。ありがとうございます。

                  ひとつだけ追記させて頂きますね。
                  phpの設定で、「short_open_tag = off」の場合、カレンダーが表示されず、プログラムの内容が
                  画面に表示されます。その場合は、「<?」の表記を「<?php」に直すと、正常に動作します。何カ所か
                  あるので、ツールなどを使って置換するとよいかと。。
                    • 20625
                    • 4 Posts
                    MEGUさん
                    フォローありがとうございます。

                    一応修正したファイルをあげときます。

                    動けば良いという方はお使いください。