Ploneの日付表記方法の変更

Ploneの日付のフォーマットは、2005-12-15 15:30と2005-12-15のように表示される。

これは、読み上げブラウザーでは、「にぜろぜろご の いちに の いちご いちご さんぜろ」 「にぜろぜろご の いちに の いちご」と読み上げる。これではさっぱりわからない。

2005年12月15日 15時30分 と表記されていれば、読み上げブラウザは、「にせんごねん じゅうにがつ じゅうごにち じゅうごじ さんじゅっぷん」とよむ。

修正の場所は…

Products\PloneTranslations\i18n\plone-ja.po ファイルの以下の部分を修正すればよい。

————1957行目
msgid “date_format_long”
msgstr “${Y}年${m}月${d}日 ${H}時${M}分”

 

————-1967行目
msgid “date_format_short”
msgstr “${Y}年${m}月${d}日”

————-

←適用した様子

Ploneは、portal_propertiesのsite_propertiesに「localLongTimeFormat」と「localTimeFormat」が存在していますが、これは、各言語の.poファイルに上記のmsgidがなかったときに初めて利用するようです。(plone_en.poにはこのmsgidがない。)

また、日本語固定で、.poの書き換えは面倒くさいという方は、以下のスクリプトをcustomフォルダーにこぴって、コードを書き換えることでも対応できます。

portal_skins -> plone_scripts -> toLocalizedTime  

以下のコードを
tool = context.translation_service
return tool.ulocalized_time(time, long_format, context, domain=’plone’)

以下のように変更
from DateTime import DateTime

if long_format == 1:
    return DateTime(time).strftime(‘%Y年%m月%d日 %H時%M分’)
else:
    return DateTime(time).strftime(‘%Y年%m月%d日’)