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権限残ってんのかな。。。