wordpressのカレンダーを英語化
wordpress をインストールした標準のままだと、カレンダーは「2012年5月」「日」のように日本語です。当然といえば当然です。
これを「2012,May」「Su」というような英語表示にかえるには関数を使う方法もあるようですが、翻訳ファイルを修正する方法の方が本来読み込んでいるものなので余分な負荷が増えず良さそうです。
と、思って最初は翻訳ファイルを修正する方法を使っていたのですが、何度かwordpressのバージョンアップを経験しているうちに、その都度翻訳ファイルも訂正してアップし直さないといけないので、とても面倒に思えてきてしまった。
関数で変換すること自体はwordpressのカレンダーで作った関数add_today_class2calendar()の中で一緒にやってしまえばいいことなので簡単にできます。
関数add_today_class2calendar()のreturn文の前に以下の文を追加しただけのこと。
<?php
$search=array("年1月","年2月","年3月","年4月","年5月","年6月","年7月","年8月","年9月","年10月","年11月","年12月","11月","12月","1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","日","月","火","水","木","金","土");
$change=array(" January"," February"," March"," April"," May"," June"," July"," August"," September"," October"," November"," December","Nov","Dec","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Su","Mo","Tu","We","Th","Fr","Sa");
$calendar_output=str_replace($search,$change,$calendar_output);
?>
翻訳ファイルを修正する方法よりもstr_replaceで入れ替える処理が増えた分、処理は重くなるはずだけど、体感的にはわからない程度なのでこちらの方が使い勝手は良いということになります。
一応、翻訳ファイルを修正する方法も以下に残しておくことにします。
いっそのこと投稿カレンダーを自作してしまおうというのは下記です。
wordpressのカレンダーを自作
/wp-content/languages/ にある元言語ファイル ja.po をダウンロードしたのち、 poedit を使用して編集し、 ja.mo を生成して再びアップロードします。
ただし、この方法だと wordpress 本体のバージョンアップがあった時に、一緒に更新されてしまうので、再びアップロードしなおす必要があります。
私の場合の変更項目は以下の通り。
原文 "%1$s %2$d"
対訳 "%2$d 年 %1$s"
変更 "%2$d, %1$s"
原文 "%1$s %2$s"
対訳 "%2$s 年 %1$s"
変更 "%2$s, %1$s"
原文 "View posts for %1$s %2$s"
対訳 "%2$s 年 %1$s の投稿を表示"
変更 "%2$s, %1$s の投稿を表示"
原文 "January"
対訳 "1 月"
変更 "January"
・
・
原文 "December"
対訳 "12 月"
変更 "December"
原文 "Jan_January_abbreviation"
対訳 "1 月_January_abbreviation"
変更 "Jan_January_abbreviation"
・
・
原文 "Dec_December_abbreviation"
対訳 "12 月_December_abbreviation"
変更 "Dec_December_abbreviation"
原文 "Sunday"
対訳 "日曜日"
変更 "Sunday"
・
・
原文 "Saturday"
対訳 "土曜日"
変更 "Saturday"
原文 "Sun"
対訳 "日"
変更 "Sun"
・
・
原文 "Sat"
対訳 "土"
変更 "Sat"
原文 "S_Sunday_initial"
対訳 "日_Sunday_initial"
変更 "Su_Sunday_initial"
・
・
原文 "S_Saturday_initial"
対訳 "土_Saturday_initial"
変更 "Sa_Saturday_initial"
<!--この下はコメントフォームに関するところです-->
原文 "Name"
対訳 "名前"
変更 "Name"
原文 "Mail"
対訳 "メール"
変更 "Mail"
原文 "Website"
対訳 "ウェブサイト"
変更 "Website"
原文 "Comments Feed"
対訳 "コメントフィード"
変更 "Comments Feed"
原文 "Post Comment"
対訳 "コメント送信"
変更 "Post Comment"
1月から12月まで、日曜から土曜までそれぞれの項目を原文と同様に変更するというか原文に戻すというかするだけです。
表中のダブルクォーテーションは不必要。
ただ、私の場合は S_Sunday_initial などの曜日の省略型は Su_Sunday_initial というように2文字にしました。
なお、英語化したのちにここの前ページwordpressのカレンダーの土日祝日のclass付け関数 add_today_class2calendar を使用する場合は<caption></caption>内の年月の表示や、曜日の表題の 土曜日 の表示が変更されたものに変わってしまうため、その部分の修正が必要。
ちなみに add_today_class2calendar の13行目から17行目までの変更は下記のようにしました。
<?php
$frompos=mb_strpos($calendar_output,"<caption>")+9;
$topos=mb_strpos($calendar_output,"</caption>")-$frompos;
$tukihi=mb_substr($calendar_output,$frompos,$topos);
list($nen,$tuki)=explode(",",$tukihi);
$monthnum=array("m","January","February","March","April","May","June","July","August","September","October","November","December");
$tuki=array_search(trim($tuki),$monthnum);
?>
37、38行目の曜日表題の title="土曜日" の土曜日はそのまま変更した英文字にするだけ。
Post : 2012/05/17 14:11
Comments feed
Trackback URL : https://strix.main.jp/wp-trackback.php?p=16165