Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

PEAR::Date_Holidays_Japan 0.1.1パッチ(その2)

via. PEAR::Date_Holidays_Japan 0.1.1パッチ - Do You PHP はてな

うーん。langファイルを使うと、1973年、1979年、1984年の名称が取得できないようです。。。ご迷惑をおかけします。
PEAR::Date_Holidays_Japan 0.1.1パッチ - Do You PHP はてなにコメントいただいたスクリプトを修正して確認してみました。

<?php
/**
 * @see http://d.hatena.ne.jp/shimooka/20080827/1219818457#c1245205759
 */
require_once 'Date/Holidays.php';

$filename = '/usr/local/lib/php5/pear/data/Date_Holidays_Japan/lang/Japan/ja_JP.xml';

for ($year = 1900; $year < date('Y'); $year++) {
    $dh = Date_Holidays::factory('Japan', $year, 'ja_JP');
    $dh->addTranslationFile($filename, 'ja_JP');

    $holidays = array();
    foreach ($dh->getHolidays() as $h) {
        if (PEAR::isError($h)) {
            echo $h->getMessage() . " in {$year}\n";
            continue;
        }
        $holidays[$h->getDate()->format('%Y-%m-%d')] = $h->getTitle();
    }
}

実際に実行すると、

$ php date_holidays_japan.php
The internal name (substituteHolidayForshowaEmperorsBirthday) for the holiday was correct but no localized title could be found in 1973
The internal name (substituteHolidayForshowaEmperorsBirthday) for the holiday was correct but no localized title could be found in 1979
The internal name (substituteHolidayForshowaEmperorsBirthday) for the holiday was correct but no localized title could be found in 1984
$ 

のようになります。該当するローカル名がlangファイルにないことが原因です。
取り急ぎ、パッチを付けてバグ報告しときました。

パッチの中身は次の通りです。

*** data/Date_Holidays_Japan/lang/Japan/ja_JP.xml.org   2008-12-15 15:59:56.000000000 +0900
--- data/Date_Holidays_Japan/lang/Japan/ja_JP.xml       2009-06-18 10:49:19.000000000 +0900
***************
*** 169,173 ****
--- 169,177 ----
              <internal-name>substituteHolidayFortheRiteofWeddingofHIHCrownPrinceNaruhito</internal-name>
              <translation>振替休日</translation>
          </holiday>
+         <holiday>
+             <internal-name>substituteHolidayForshowaEmperorsBirthday</internal-name>
+             <translation>振替休日</translation>
+         </holiday>
      </holidays>
  </driver-data>

つか、まだcommit権限残ってんのかな。。。

追記(2009/06/18 11:40)

ja_JP.xmlとja_JP.serファイルをtar玉にまとめてUPしました。

お急ぎの方は、ダウンロードして、[PEARディレクトリ]/data/Date_Holidays_Japan/lang/Japan/に展開してご利用ください。