Tag Archives: wp-weather

WP-Weatherプラグインの日本語化

当ブログのテーマを変えたついでに、ウェジットプラグインで使っているお天気情報表示プラグイン「WP-Weather」を日本語化してみました。このプラグインは国際化に対応しているので、ある程度はリソースだけを弄るだけで日本語化できます。

大雑把な手順は以下の通り。(ちなみに訳等の作業はWindowsマシンで行っています)

  1. wp-weather-en_US.poをwp-weather-ja.poにコピーし、作業マシンに引っ張ってきます。
  2. POEdit(作者さんのサイト)でこのファイルを開き、対訳を変更していきます。
  3. 対訳の変更が終わったら、カタログを作成します。(wp-weather-ja.moができあがります)
  4. wp-weather-ja.moファイルをlocalizationディレクトリにコピーします。

上記の方法で固定文字列が日本語化されます。しかし、私は欲張って日付の書式を日本式にしたり、動的に変わるお天気なども日本語化したくなり・・・「はまりました・・・orz icon_cry.gif

このプラグインの流れは、「更新→weather.comに問い合わせ→wordpress DBのデータ更新→データ表示」となるわけです。当方は、「DBはUTF-8だし、wordpressやプラグインで使用する文字列もUTF-8なので問題ないだろう」と高をくくり、がしがしと動的に変わる文字列をpoファイルに登録・対訳し、ソースを変更していきました。そして、更新~。
「・・・、対訳が出てこねぇ~ icon_evil.gif
ソース文字列をHexコードでチェックして見るも、特に変なコードが入っているわけでもなし。「う~ん、う~ん」と呻きながら小一時間。phpの文字列操作関数群を眺めながら、「おやっ、mb_~()?、もしやマルチバイト・・・」。
ここまで足突っ込んじゃっているし、とりあえずマルチバイト系文字列に変換してみるか~とゴソゴソソースを修正&更新~。
「うぉ、対訳出てきやがった icon_eek.gif
う~ん、文字列はかなり癖あるなぁ~と。(当方の知識不足は棚上げしておきます、ぉぃ)

DBのデータを一旦マルチバイト文字列に変換し、その文字列を変換用検索文字列として渡します。
変更例は以下のよう感じ。

$htmlstring .= '<br />'.__(mb_substr($xml->cc->t, 0, mb_strlen($xml->cc->t) ,'UTF-8'), 'wp-weather').'<br/>';

また、日付を海外書式(Monday, May 23)から日本書式(5月23日 月曜日)へ変換したい場合の例はこんな感じ。

$htmlstring .= date_i18n('n月j日 l', strtotime($day_forecast->lsup));

上記の例の基のデータ($day_forecast->lsup)はデータベースを覗くと[ 5/23/11 2:13 PM Local Time ]な感じなんですが、date_i18n()とstrtotime()関数の組み合わせは結構融通が利くみたい。例えば[ May 24 ]をstrtotime()に通した後、date_i18n()に通すと思い通りの書式で出力してくれる。もし、ソースを見る機会があったら覗いて見ようかと。ここまで融通が利くと結構バグがあるかもしれんしね。(ぉぃ、疑う前に知識身につけろ・・・ごもっとも)
注:date_i18n()関数はwordpress固有の関数ですのでご注意を。

さて最後に
まだ日本語化終わっていません、キリッ

と言うのも、お天気の種類がいくつあるのか分からないので、出たとこ勝負で訳しています。
作者に聞いてみようと思うので、進捗があったら更新します。
それと、この変更はまだ作者に了解を取って行っているわけではないのでファイルは公開できません。上記の問い合わせとあわせて聞いてみますので、これも進捗があったら更新します、あしからず。

WP用 – サイドバーお天気ウィジェット with weather.com

wp-plugin01

WordPress Plugin : wp-weather

お天気予報をサイドバーに表示するプラグインだそうです。

Weather.comのXMLサービスから天気予報情報を引き出し、サイドバーにウィジェットとして登録できます。

使い方:

作者さんサイトからプラグインをダウンロードし、プラグインディレクトリ配下に放り込み、プラグインをアクティブにします。途中、Weather.comからライセンスを取得するための作業が必要になりますが、このプラグインオプションを設定する画面にリンクが出ているので、リンク先の質問に答えるだけでライセンスがWeather.comからメールで送られてきます。送られてきたIDとキーをオプションにセットし、後は表示の塩梅をみながら調整します。
ここで問題なのが、地域コードと呼ばれるものです。Weather.comは米国が拠点なので、

「日本の都市なんて知らねーよ」

と言われると思われるかもしれませんが、多分各県の県庁所在地の都市名がコード化されているものと思われます。全部調べていませんので違うかもしれませんが・・・

例えば、札幌は「JAXX0078」、東京は「JAXX0085」です。
では、このコード、どうやって調べるかというと、札幌を例として、

wp-plugin02まず、Weather.comにアクセスすると画像のようなサイトが表示されます。その中で「都市名」を入力するボックス(画像赤丸部分)に、「sapporo,japan」(真ん中はカンマ)と打ち込み検索します。すると、下の方になにやら天気情報っぽいものが出てきます。(もしこれが出てこなければあきらめた方がいいかもしれません)

さて、では「札幌」のコードはというと、検索結果のURLにその正体が記されています(画像の赤線部分)。そこを読み取ると、「JAXX0078」となっています。このコードをこのプラグインのオプション項目に設定します。晴れてその都市の天気がサイドバーに・・・

ただし、

日本国内の予報よりは大雑把な感じなので、それでも良ければ・・・

という人向けです。

Page 1 of 11