サポート » プラグイン » ウィジット:カレンダーの英語表記方法について

  • 解決済 RMVP

    (@rmvp)


    はじめまして、RMVPと申します。
    いつもお世話になっております。

    ウィジットのカレンダーを英語表記にしたく、下記のプラグインをダウンロードさせていただきました。

    プラグイン
    EnglishDate

    こちらで、曜日とアーカイブリンクを好きな表記に変更させていただいのですが、
    曜日の上にありますカレンダータイトル?はどのように変更すればいいでしょうか?

    今現在ですと、カレンダーの曜日の上の表記は「2013年March」となっております。
    これを「3. 2013」にのように表記するにはどのようにしたらいいでしょうか?

    カレンダー英語表記には、「Delocalized Calendar」というプラグインもあったのですが、

    こちらを有効化すると、使用しているテーマと相性が良くないらしく、CSSなどに不具合が出てしまい諦めました。

    こちらのプラグインですと、「3. 2013」と可能でしたが、合わない為「EnglishDate」にしました。

    また、投稿がある日は日曜日と同じ赤色になり、リンクがつくように既存ではなっておりますが、わかりやすくするために、「太文字・灰色」にしたい場合はどのようにすればいいでしょうか?

    プラグイのphpは下記の通りとなります。

    <?php
    /*
    Plugin Name: EnglishDate
    Plugin URI: http://www.feelwct.jp/staffblog/
    Description: For WordPress Japanese version only.
    Author: FeelWCT
    Version: 0.2
    Author URI: http://www.feelwct.jp/
    */

    function enDate_init(){
    global $wp_locale;

    $wp_locale->weekday[0] = (‘Sunday’);
    $wp_locale->weekday[1] = (‘Monday’);
    $wp_locale->weekday[2] = (‘Tuesday’);
    $wp_locale->weekday[3] = (‘Wednesday’);
    $wp_locale->weekday[4] = (‘Thursday’);
    $wp_locale->weekday[5] = (‘Friday’);
    $wp_locale->weekday[6] = (‘Saturday’);

    $wp_locale->weekday_initial[(‘Sunday’)] = (‘SU’);
    $wp_locale->weekday_initial[(‘Monday’)] = (‘M’);
    $wp_locale->weekday_initial[(‘Tuesday’)] = (‘T’);
    $wp_locale->weekday_initial[(‘Wednesday’)] = (‘W’);
    $wp_locale->weekday_initial[(‘Thursday’)] = (‘T’);
    $wp_locale->weekday_initial[(‘Friday’)] = (‘F’);
    $wp_locale->weekday_initial[(‘Saturday’)] = (‘SA’);

    $wp_locale->weekday_abbrev[(‘Sunday’)] = (‘Sun’);
    $wp_locale->weekday_abbrev[(‘Monday’)] = (‘Mon’);
    $wp_locale->weekday_abbrev[(‘Tuesday’)] = (‘Tue’);
    $wp_locale->weekday_abbrev[(‘Wednesday’)] = (‘Wed’);
    $wp_locale->weekday_abbrev[(‘Thursday’)] = (‘Thu’);
    $wp_locale->weekday_abbrev[(‘Friday’)] = (‘Fri’);
    $wp_locale->weekday_abbrev[(‘Saturday’)] = (‘Sat’);

    $wp_locale->month[’01’] = (‘January’);
    $wp_locale->month[’02’] = (‘February’);
    $wp_locale->month[’03’] = (‘March’);
    $wp_locale->month[’04’] = (‘April’);
    $wp_locale->month[’05’] = (‘May’);
    $wp_locale->month[’06’] = (‘June’);
    $wp_locale->month[’07’] = (‘July’);
    $wp_locale->month[’08’] = (‘August’);
    $wp_locale->month[’09’] = (‘September’);
    $wp_locale->month[’10’] = (‘October’);
    $wp_locale->month[’11’] = (‘November’);
    $wp_locale->month[’12’] = (‘December’);

    $wp_locale->month_abbrev[(‘January’)] = (‘1.’);
    $wp_locale->month_abbrev[(‘February’)] = (‘2.’);
    $wp_locale->month_abbrev[(‘March’)] = (‘3.’);
    $wp_locale->month_abbrev[(‘April’)] = (‘4.’);
    $wp_locale->month_abbrev[(‘May’)] = (‘5.’);
    $wp_locale->month_abbrev[(‘June’)] = (‘6.’);
    $wp_locale->month_abbrev[(‘July’)] = (‘7.’);
    $wp_locale->month_abbrev[(‘August’)] = (‘8.’);
    $wp_locale->month_abbrev[(‘September’)] = (‘9.’);
    $wp_locale->month_abbrev[(‘October’)] = (’10.’);
    $wp_locale->month_abbrev[(‘November’)] = (’11.’);
    $wp_locale->month_abbrev[(‘December’)] = (’12.’);

    }

    add_action(‘init’, ‘enDate_init’);

    ?>

    皆様のアドバイス等いただけましたら幸いでございます。
    大変御迷惑お手数をおかけ致しまして誠に申し訳ございません。

    何卒宜しくお願い申し上げます。

15件の返信を表示中 - 1 - 15件目 (全16件中)
  • こんにちは。

    質問の前に、【重要】 お読みくださいを読みましたか?

    フォーラム詳細ルール

    C: コードの投稿

    基本的に、このフォーラムはコードをペーストしてトラブルシューティングを助けてもらうのには向いていません。読みにくく、混乱が生じるためです。

    長いコードがある際は、こちらの「ペーストビン」にコードを投稿してください。こちらに投稿されたコードはアーカイブ保存されます。

    また、マルチポストはマナー違反です。

    このトピックと
    ウィジット:カレンダーの英語表記方法について

    月別アーカイブページの title 要素の英語表示方法

    月別アーカイブページの title 要素の英語表示方法

    他の方がこのフォーラムを使いやすくするためにも、フォーラムのルールには従ってください。

    Orbit様

    お世話になっております。
    この度はOrbit様をはじめ、ご利用の皆様に多大なご迷惑お手数をおかけ致しまして誠に申し訳ございません。

    訂正・再投稿致します。

    誠に申し訳ございませんでした。
    心よりお詫び申し上げます。

    モデレーター gatespace

    (@gatespace)

    本来なら最初からフォーラムのルール読んで欲しいですけど、初めてならしょうがないという部分もあるし、次から気をつけてもらえればいいですよー。

    世話役(or 管理者)側でスレッドの調整は出来ますので、うっかり間違ったり、重複してしまったらその旨を書き込んだり、移動先のスレッドのURLを閉じたい方に投稿してもらえればいいので。

    で、また再投稿すると同じ内容で重複、になるので、新規でスレッドをたてるのではなく、この下に投稿しちゃってください。

    仮にも回答した者として、調べてみました。

    ウィジェットのカレンダーの日付を完全な英語表記するにはコアファイル(wp-includes/general-template.php)を書き換えるか、Delocalized CalendarのようにjQueryを使って文字列を置き換える必要があるようです。古い情報なので、今はまた違う方法があるかもしれません。

    後者はRMVPさんの環境と相性が良くないようなので前者になりますが、コアファイルを編集するのはあまりおすすめできません。また、WordPressのアップデートをする度に元に戻ってしまうという問題もあります。

    コアファイルを編集する方法は以下になります。

    調べてみると、コアファイルの編集箇所を紹介している記事がありました。方法はリンク先を参照してください。
    英語表記にしたカレンダーとアーカイブの日付

    記事が古くWordPressのバージョンが異なるため、行数は異なりますが数十行あとに同様の記述が見つかると思います。
    編集後は、

    March. 2013

    という表記になると思います。ここから月表示を01~12にするにはEnglishDateを編集する必要があります。

    $wp_locale->month['01'] = ('January');

    $wp_locale->month['01'] = ('01');

    とJanuaryからDecemberまで対応する数字に置き換えれば

    03. 2013

    と表示されると思います。やや強引な方法なので、もっとスマートな方法があるかもしれません。

    投稿のある日を太字、灰色にするにはstyle.cssに下記を書き加えてみてください。

    table#wp-calendar > tbody a {font-weight:bold; color: #999;}

    灰色、といっても様々なので、ご自身で好みの色に編集してください。
    これで、おそらく希望通りの表示になると思うのですがどうでしょう?

    gatespace様

    この度は、ご利用の皆様をはじめ、多大な御迷惑をおかけ致しまして申し訳ございません。
    また確認が遅くなり、ご返信が大変遅くなりまして申し訳ございません。

    心よりお詫び申し上げます。

    Orbit様

    お世話になっております。
    ご利用のご指導だけでなく、ご質問に対するお答えも頂きまして大変恐縮でございます。

    ありがとうございます、心より御礼申し上げます。

    わたくしも、March. 2013に変更する方法を検索で見つけたのですが、
    March. 2013に変更後、EnglishDateを編集すれば希望の表記になるのは知りませんでした。

    ありがとうございます。

    無事、希望表記「3. 2013」になりました。

    ただ、過去の月を表示する「« 2」の数字が消えてしまいました。
    これはどういうことが原因でしょうか?

    数字が消えて気がついたのですが、カーソルを合わせると、「2013年2の投稿を表示」と出ます。

    この「2013年2の投稿を表示」の表記も変えることは可能でしょうか?

    度々、ご質問が多くなってしまい大変恐れ入ります。
    もしアドバイス等頂けましたら幸いでございます。

    何卒宜しくお願い申し上げます。

    お世話になっております。
    カーソルを合わせると、「2013年2の投稿を表示」と出ます。

    と記載させて頂きました件につきまして、
    if ( $previous )とif ( $next )内にある
    sprintf(__(‘View posts for %1$s %2$s’)を
    sprintf(__(‘View posts for %1$s. %2$s’)にしたところ、

    「View posts for 2. 2013」と表記が変わりましたが、

    シンプルに「2. 2013」などの表記は難しいのでしょうか?

    また上記でご投稿させて頂きました。
    ただ、過去の月を表示する「« 2」の数字が消えてしまいました~につきましては、

    全く理由がわかりませんでした。

    ご指導・アドバイス頂けましたら幸いでございます。

    作業が中途半端でしたね。すみません。

    English Dateの
    $wp_locale->month_abbrev[('January')] = ('Jan');

    $wp_locale->month_abbrev[('01')] = ('01');
    とJanuaryからDecemberまで全て対応する数字に置き換えてください。

    表示が消えてしまったのは、 month(January 等)をmonth_addrev(月の省略形 Jan 等)として取得する際に、プラグインの書き換えが不完全だったために January は 01 に置き換えられてるのに month_addrevで January(もう存在しない) には Janを代入する。と命令していたので取得できずに出力できなかった。ということです。
    修正後は、monthが01の場合、month_addrevには01を代入する。としました。
    これで過去の月と次の月の数字の表示が消えることなく表示されると思います。

    カーソルを合わせた際に出るポップアップの表示については、RMVPさんも惜しいところまで来ていましたね。sprintfは文字列を返す、という命令です。
    sprintf(__('View posts for %1$s %2$s')

    sprintf(__('%1$s. %2$s')
    とすれば良いです。

    Orbit様

    お世話になっております。
    早々のご連絡・アドバイス頂きまして誠にありがとうございます。

    $wp_locale->month_abbrev[(’01’)] = (’01’);の「0」が抜けておりました。
    ご指導いただきました通りに記述させて頂きましたところ、両方無事に表示されました。

    ありがとうございます。

    また、03. 2013の03のゼロをなくすこともできるかなと思い、
    ご指導いただきましたことを応用し、0をなくし記述したところ、

    $wp_locale->month[‘1’] = (‘1’);
    $wp_locale->month_abbrev[(‘1’)] = (‘1’);

    03. 2013

    3月. 2013

    となってしまいました。

    03. 2013

    3. 2013

    当初お書きさせて頂きました「3. 2013」という正気も可能でございますのでしょうか?

    ご回答いただきます度に、ご質問が増えてしまい大変ご迷惑お手数をおかけ致しまして申し訳ございません。

    ポップアップの表示のご返事ありがとうございます。
    ご自宅に戻りましたら、早速やってみたいと思います。

    もしアドバイス等頂けましたら幸いでございます。

    何卒宜しくお願い申し上げます。
    度々大変恐れ入ります。

    「正気」ではなく「表記」の入力ミスがございました。
    申し訳ございません。

    そうでしたね、0のことを忘れていました。

    01~09まで下記のように変更してください。

    $wp_locale->month['01'] = ('01');

    $wp_locale->month['01'] = ('1');

    $wp_locale->month_abbrev[('01')] = ('01');

    $wp_locale->month_abbrev[('1')] = ('1');

    Orbit様

    お世話になっております。
    早急にご返事を頂きまして恐縮でございます。

    早速ご指導いただきました通りに記述いたしましたところ、
    希望通りの表記になりました!

    シンプルで見やすくとても気に入っております!!
    幾度となくお世話になりなりました。

    投稿方法から、ご質問まで親身になってご相談に乗っていただきまして大変ありがとうございます。

    Orbit様のおかげで無事、理想の形でカレンダーを表現できることができました。

    この場をおかりして心よりお礼申し上げます。

    ポップアップの表示の件は、また変更次第ご投稿させて頂きます。
    何卒宜しくお願い申し上げます。

    Orbit様

    お世話になっております。
    度々のご投稿失礼致します。

    sprintf(__(‘%1$s. %2$s’)に変更したところ、希望通りのポップアップ表示になりました。

    お蔭様ですべて希望通りに変更することができました。

    この度は、大変お世話になりました。
    今一度御礼申し上げます。

    合わせて、投稿ルールにつきまして、御迷惑をおかけ致しまして、
    改めてお詫び申し上げます。

    今後とも何卒宜しくお願い申し上げます。

    Orbit様

    お世話になっております。
    後々に気がついたのですが、デフォルトの英語月表示から

    $wp_locale->month[’01’] = (‘January’);

    $wp_locale->month[’12’] = (‘December’);

    ——————————————

    $wp_locale->month_abbrev[(‘January’)] = (‘Jan’);

    $wp_locale->month_abbrev[(‘December’)] = (‘Dec’);

    $wp_locale->month[’01’] = (‘1’);

    $wp_locale->month[’12’] = (’12’);

    ——————————————

    $wp_locale->month_abbrev[(‘1’)] = (‘1’);

    $wp_locale->month_abbrev[(’12’)] = (’12’);

    と数字表記にすると、

    それが原因で、休日の色分け(土曜日:青、日曜日:赤)がズレてしまったようです。

    カレンダー切抜き画像です

    下記のように記述を直せば、休日も正しく表示されるのですが、
    数字で月を表示したい場合はどうすればいいでしょうか?

    解決済み後に大変申し訳ございません。

    jim912さんが既に答えを書いていますよ。

    jim912さんのレスより引用。

    休日表示付きリアルタイムカレンダーは、カレンダーの caption タグの初めの数字を年、2番目の数字を月として認識して、計算しているようなので、それと表示との食い違いが原因だと思われます。

    jim912さんの仰る通り、カレンダーの caption タグを書き換えているのが原因です。

    $calendar_caption = _x('%1$s %2$s', 'calendar caption');
    			↓
    $calendar_caption = _x('%2$s. %1$s', 'calendar caption');

    英語表記に変更していく過程で %1$s と %2$s の順番を入れ替えているので、リアルタイムカレンダーのdayChecker.jsが月の部分を年、年の部分を月と認識し、結果的に表示のズレが発生しています。

    ズレを修正するには、リアルタイムカレンダーのdayChecker.jsの178,179行目を書き換えてください。

    var year = number[0];
    var month = number[1];
    	↓
    var year = number[1];
    var month = number[0];

    行ごと入れ替えたほうが視覚的に分かりやすいかもしれませんね。

    書き換えを次々行なっていくと、問題が生じた際にどれが原因なのか切り分けていくのが難しくなるので、変更を加えた点は細かくメモを残しておいたほうが良いですよ。

15件の返信を表示中 - 1 - 15件目 (全16件中)
  • トピック「ウィジット:カレンダーの英語表記方法について」には新たに返信することはできません。