WordPress での時刻表記「AM/PM」を「午前/午後」にする方法
WordPress で投稿時間等に用いる「AM/PM」あるいは「am/pm」という表示を日本語表記の「午前/午後」にする方法です。
1.Portable Object ファイルの編集
ローカライズ機能で用いる Portable Object ファイルを編集します。
1.1 2.1.x の場合
ご利用の文字コードに合わせて下記のいずれかのファイルを任意のエディタで開きます。文字コードが UTF-8 の場合は ja_UTF.po を編集します。
wp-content/languages/ja_EUC.po
wp-content/languages/ja_SJIS.po
wp-content/languages/ja_UTF.po
次に下記の行を探し、青色のように修正します。修正前は msgid と同じ値が入っています。
#: wp-includes/locale.php:85
msgid "am"
msgstr "午前"
#: wp-includes/locale.php:86
msgid "pm"
msgstr "午後"
#: wp-includes/locale.php:87
msgid "AM"
msgstr "午前"
#: wp-includes/locale.php:88
msgid "PM"
msgstr "午後"
1.2 2.0.x の場合
ご利用の文字コードに合わせて下記のいずれかのファイルを任意のエディタで開き、下記の行を追加してください。文字コードが UTF-8 の場合は ja_UTF.po を編集します。
wp-includes/languages/ja_EUC.po
wp-includes/languages/ja_SJIS.po
wp-includes/languages/ja_UTF.po
msgid "am"
msgstr "午前"
msgid "pm"
msgstr "午後"
2.functions.php の修正
この作業は 2.0.x のみです。wp-includes/functions.php
を任意のエディタで開き、下記の青色を追加してください。
function mysql2date($dateformatstring, $mysqlstring, $translate = true) {
global $month, $weekday, $month_abbrev, $weekday_abbrev;
$m = $mysqlstring;
if ( empty($m) ) {
return false;
}
$i = mktime(substr($m,11,2),substr($m,14,2),substr($m,17,2),substr($m,5,2),substr($m,8,2),substr($m,0,4));
if ( -1 == $i || false == $i )
$i = 0;
if ( !empty($month) && !empty($weekday) && $translate ) {
$datemonth = $month[date('m', $i)];
$datemonth_abbrev = $month_abbrev[$datemonth];
$dateweekday = $weekday[date('w', $i)];
$dateweekday_abbrev = $weekday_abbrev[$dateweekday];
$dateformatstring = ' '.$dateformatstring;
$dateformatstring = preg_replace("/([^\\\])D/", "\${1}".backslashit($dateweekday_abbrev), $dateformatstring);
$dateformatstring = preg_replace("/([^\\\])F/", "\${1}".backslashit($datemonth), $dateformatstring);
$dateformatstring = preg_replace("/([^\\\])l/", "\${1}".backslashit($dateweekday), $dateformatstring);
$dateformatstring = preg_replace("/([^\\\])M/", "\${1}".backslashit($datemonth_abbrev), $dateformatstring);
$dateampm = (substr($m,11,2) >= 12) ? __('pm') : __('am');
$dateformatstring = preg_replace("/([^\\\])a/", "\${1}".backslashit($dateampm), $dateformatstring);
$dateformatstring = preg_replace("/([^\\\])A/", "\${1}".backslashit($dateampm), $dateformatstring);
$dateformatstring = substr($dateformatstring, 1, strlen($dateformatstring)-1);
}
$j = @date($dateformatstring, $i);
if ( !$j ) {
// for debug purposes
// echo $i." ".$mysqlstring;
}
return $j;
}
3.Portable Object のコンパイル
2.0.x、2.1.x、いずれの場合も、編集した ja_XXX.po ファイルをコンパイルします。
コンパイルするには、poEDIT または msgfmt を利用します。poEDIT によるコンパイルが簡単ですが、このエントリーでは説明を省略します(順序が逆になりますが、後日ご紹介します)。
以上です。
なお管理画面の「時間のフォーマット」で日本語が適用されない(下記)のは、サンプル表示のために mysql2date
関数を起動していないためですので心配ありません。
Posted by yujiro このページの先頭に戻る
- poEDIT の使い方
- WordPress の月および曜日を英語表記にする
トラックバックURL
コメントする
greeting