(速報)1.3のi18nFormat()はまだ使ってはいけない

CakePHP1.3では、Time Helperを使うことにより、日付/時刻の表示の多国後対応が容易になりました。
http://book.cakephp.org/ja/view/1579/Library-classes


これは少なくとも自分にとって非常に嬉しいニュースでした。
というわけで嬉々として試してみたんですが、ガイド通りにセットアップしても妙な文字列が表示されます。


ソースリーディングしたところ、こういうことでした

  1. app/localeに置かれた言語別の日時/時刻定義ファイル(LC_TIME)を解析する。
  2. 中身の文字列は全て(?)という形式になっている。これはUTF-8コードの頭文字にUを付けたもの。
  3. 'Unnnn' => "\xnnnn"という変換を行う。(かなり乱暴に言うと)
  4. ただし変換するのは'U00nn'となっているもののみ


というわけで、マルチバイトユニコード(つまり日本語は全滅)のものは、全てUnnnnといった文字列がそのまま表示され、使い物になりません。
この件に関しては、完全にバグだと思われますので、修正コードとそのテストケースを含むチケットを後ほど投げる予定です。