Topic: Reflectの日本語化について  (Read 5822 times)

Pages: [1]   Go Down

#1: 18-May-2007, 02:20 AM

joy
Posts: 10

Reflectで表示されるアーカイブに関してですが
(現在UTF-8でサイトを構築しています。)
May 2007
のようになっているので
2007年5月
のようにしたいと思い、ReflectおよびDittoのlangファイルを探しましたが、
それらしいのはなく、また
\manager\includes\lang
の中のjapanese-utf8.inc.phpもみてみましたがやはりありませんでした。

ただ、
japanese-sjis.inc.php
japanese-euc.inc.php
を開いてみると$_lang['months']があり、
japanese-utf8.inc.php
にはなかったので一応追加してみましたがやはり変わりませんでした。

Reflectの日付表示を日本語化するのはどうすればよいでしょうか?

また、Reflectとは関係ありませんが、ドキュメントの作成日時やカレンダー
なども

作成日時:  05/05/07 00:16:10
のように英語表記で 日>月>年 となっていますが、
これを年>月>日
のようにするにはどのようにすれば良いでしょうか?


質問ばかりで申し訳ございませんが、ご回答よろしくお願いいたします。

#2: 18-May-2007, 08:05 PM

custar
Posts: 224

Reflectの日付表示を日本語化するのはどうすればよいでしょうか?
以下の説明文は参考にならないでしょうか。使ってないから詳しく分かってま
せんが。技術的には絶対変更できます。が、直ぐに応えられない。

- Reflect Snippet

#3: 18-May-2007, 08:34 PM


MEGU
Posts: 890

WWW
こんにちは。

スニペットの Reflect を直すようになると思います。

426行目付近に
Code:
$month_text = $ditto->formatDate(mktime(10, 10, 10, $mon, 10, $year),"%B");
というところがあるので、ここの「%B」を「%e」に直します。。勘違いしてました。。「%m」が正解ですね。。

そして、「reflect_month_tpl」の方を以下のようにしてみてください
Code:
<a href="[+url+]" title="[+year+]年[+month+]月" class="reflect_month_link">[+year+]年[+month+]月</a>

こんな感じになります。
http://www.liolion.info/096rc3/blog.html
(このURLはすぐなくなっちゃうかも知れません。。)


%B とか %e は、こちらを見て頂くといいとおもいます。
http://php.benscom.com/manual/ja/function.strftime.php
ロケールはサーバーによって設定してないこともあるようです。
« Last Edit: 21-May-2007, 10:30 PM by MEGU »

#4: 18-May-2007, 08:47 PM


MEGU
Posts: 890

WWW
あ、ドキュメントの作成日時の表示形式の方は、
Dittoの「dateFormat」で指定します。
「&dateFormat=`%Y.%m.%d %R`」などです。

#5: 18-May-2007, 09:28 PM


MEGU
Posts: 890

WWW
Reflect の方ですが、日付の形式をパラメータで指定できると
便利ですよね。。

#6: 19-May-2007, 04:39 AM

joy
Posts: 10

custarさん MEGUさん

ご回答ありがとうございます。
MEGUさんに教えていただいた方法で望みどおりの結果を得ることができました。
どうもありがとうございました。

#MODxはPHPそれほどわからなくても何とかなりますが、PHPを知っていると
色々とできることが増えそうですね。
MEGUさんに教えていただいたページなども参考にもう少し勉強していこうと思います。

#7: 19-May-2007, 05:40 AM


MEGU
Posts: 890

WWW
あ、良かったですね。
なんかうちの環境だと「%e」だとよろしくなくて、「%m」で
うまくいったみたいです。月が一桁の時、前に「0」が入るんですけど。。

※私もphp は、眺める専門な方なので (^^;、
詳しい方のフォローお願いしたいですぅ。。

2007.5.21追記
Quote
なんかうちの環境だと「%e」だとよろしくなくて、「%m」で…
よろしくないのは当たり前ですね。。「%e」は日付を現すものです。
勘違いしてました。。
« Last Edit: 21-May-2007, 10:32 PM by MEGU »

#8: 19-May-2007, 09:12 PM

custar
Posts: 224

「%m」でうまくいったみたいです。月が一桁の時、前に「0」が入るんですけど。。
%n としてみたらどうなりますか?

全くソースを見らずに php のパラメータとして考えながら言ってますので、動
かないかもしれません。
« Last Edit: 19-May-2007, 10:18 PM by custar »

#9: 20-May-2007, 11:01 AM


MEGU
Posts: 890

WWW
%n としてみたらどうなりますか?

>custar さん。
やってみましたが、その部分にはなにも表示されませんでした。

#10: 20-May-2007, 10:53 PM

custar
Posts: 224

ditto のソース見ました。

strftime() を使われているのですね。だったら "%n" は改行を意味するので表
示されません。調べもせずに言ったから間違いです。

では、どうするかというと、%-m としてください。
これで表示されると思います (未確認)。

Quote
echo strftime ("%-m");

これで、今だったら "5" が表示されます。windows の場合は "%#m" としなきゃ
なりません。

windows 版 strftime の説明には書かれてますが、unix 版には何の説明もない
ですね。忘れてるのかな。

#11: 21-May-2007, 08:49 AM


MEGU
Posts: 890

WWW
> ditto のソース見ました。

すんませんん。。Ditto じゃなく、Reflect の方なんです~。。
で、Reflect の方では、"%-m"は、
「-m」とそのまま表示されました。

#12: 21-May-2007, 07:52 PM

custar
Posts: 224

Ditto じゃなく、Reflect の方なんです~。。
reflect の中で ditto object が呼ばれてますから、同じだと思います。入れ
てないから動作を追ってませんが、ソースを見る限りそうなっているようです。

Reflect の方では、"%-m"は、「-m」とそのまま表示されました。
私の環境 (xrea, php5) では <?php echo strftime("%-m"); ?> で "5" と出力
されています。MEGU さんの環境は php4 ?

#13: 21-May-2007, 08:02 PM

custar
Posts: 224

もし %-m が使えないのなら、
Quote
echo strftime ("%Y-").(int)strftime ("%m").strftime ("-%d");
としてもできました。スマートに書こうと全く考えてません。ただ "できる" というだけです。
# 同じ関数を3度も呼んでる......

方法は幾つかあるでしょう。

#14: 21-May-2007, 10:04 PM


MEGU
Posts: 890

WWW
custer さん。ありがとうございます。
phpは4.4.4です。

本家のフォーラムでも出ているみたいなので、
もしかすると次期バージョンで解決されているのかも知れません。
http://modxcms.com/forums/index.php/topic,12433.msg83670.html#msg83670
Pages: [1]   Go Up
0 Members and 2 Guests are viewing this topic.