WordPress JapanによるWordPress ME 2.2.3から、WordPress日本語ローカルサイトによるWordPress 2.3.2 日本語版へと移行しました。日本語化の方針の違い等によるブランチが存在している状態ですが、MEの開発が遅滞していること等を勘案した結果、MEから日本語版へと乗り換えることとしたものです。
WikipediaのWordPressの記事やGoogleの検索結果等をかつて拝見した限りでは、前者のみが存在しているように誤解していました。「検索結果の最初のページに表示されないページは存在しないことと同義だ」というSEO界隈の金言を改めて思い返す今日この頃です。
2.3系ではタグに対応したのですが、タグに対応するようなテーマの修正はこれから行おうと思います。
なお、導入したそのままの状態ではまだ日本語化が十分でない内容もありましたので、以下の通り変更を加えました。
日本語化ファイルの作成とコンパイル
導入した状態の場合、例えばget_calender();でカレンダーを表示すると、日本語化しきれていない部分が目に付きます。
- キャプションが「12 月 2007」となっている
- 曜日が「M T W T F S S」となっている
- 前後の月へのリンクが「Nov」などとなっている
公開を前提としないテーマファイルを使う場合、テーマファイルの側で日本語を直接書いてしまっても良いのですが、get_calender();だけで済ませている場合(関数を読んでいるだけの場合)には、うまくいきません。
そこで関数の内容それ自体を変更してしまうという手もあるのですが、バージョンアップの度に差分を取るのも大変ですので、日本語化ファイルによる日本語化を試すことにしましょう。
WordPressの日本語化は、/wp-contents/languages/ja.moというファイルによって行われています。このファイルは、GNU gettextカタログ(*.po)をコンパイルしたものです。poファイルでは、置換対象のファイル・行・記述を指定し、置換後の文字列を任意に記述出来ます。
曜日短縮形の変更
6617行目から始まるS_Sunday_initial等を変更します。例えば、以下の通りです。
#: wp23/wp-includes/locale.php:30
msgid "S_Sunday_initial"
msgstr "日"
月名短縮形の変更
6733行目から始まるJAN_January_abbreviation等を変更します。例えば、以下の通りです。
#: wp23/wp-includes/locale.php:67
msgid "Jan_January_abbreviation"
msgstr "1月"
その他
ついでなので、好みの問題ですが「1 月」と半角スペースが空いている点についても変更しました。
#: wp23/wp-includes/locale.php:52
#: wp23/wp-includes/locale.php:67
msgid "January"
msgstr "1月"
また、前後の月にマウスポインタをあてたときのヒント文字列も、以下の通り変更しました。
#: wp23/wp-includes/general-template.php:571
#: wp23/wp-includes/general-template.php:581
#, php-format
msgid "View posts for %1$s %2$s"
msgstr "%2$s年 %1$sの投稿を表示"
moファイルへのコンパイルとダウンロード
poファイルの編集はエディタで出来ますが、そのコンパイルについてはPoeditというソフトを使うのが良いようです(なお、Poeditではpoファイルの編集も出来ます。その場合でも修正内容は同じです)。早速Poeditのバイナリをダウンロードし、エディタで書いたja.poファイルを食わせてja.moファイルをビルドしましょう。出来上がったja.moファイルをアップロードすれば一丁上がりです。
カレンダーのキャプションは関数を直接変更する
こうしてすぐに目に付いた場所の日本語化を推進出来たと思いきや、カレンダーのキャプションはまだ直りません。それというのも、/wp-includes/general-template.phpの547行目、get_calender関数内の記述として、以下のように(国際化を考慮しないコードとして)直書きされているからです。
<caption>' . $wp_locale->get_month($thismonth) . ' ' . date('Y', $unixmonth) . '</caption>
以下のように日本語化ファイルでの書き換えも試してみましたが……。
#: wp23/wp-includes/general-template.php:547
#, php-format
msgid "$wp_locale->get_month($thismonth) . ' ' . date('Y', $unixmonth)"
msgstr "date('Y', $unixmonth) . __('年 ') . $wp_locale->get_month($thismonth)"
結果は変わりませんでした。結局、仕方なしにgeneral-template.php(547行目)を以下の通りの通り書き換えました(文字コードをUTF-8として保存してください)。要はpoファイル(moファイル)による書き換えをしたいという意図を手動で行っただけです。もしかしたらpoファイルの記述次第で巧い方法があるのかも知れませんが……。
<caption>' . date('Y', $unixmonth) . __('年 ') . $wp_locale->get_month($thismonth) . '</caption>
ともあれ、結果として、以下の通り想定通りの描画内容を得ることが出来ました。
- キャプションが 「2007年 12月」となった
- 曜日が「月火水木金土日」となった
- 前後の月へのリンクが「11月」などとなった
おわりに
日本語版作成チームは精力的に活動されていますが、まだまだ未翻訳であったり、字面だけの翻訳であったりする部分も散見されますので、気付いたところから直していこうと思います(汎用性がある修正であればチームにフィードバックもしようと思います)。
なお、週の始まりを日曜日としつつ”S_Sunday_initial”を”月”に・”S_Saturday_initial”を”金”に変えると「月月火水木金金」となり、デスマっている同志の気分を表現出来たりしますが、汎用性には難がありますので自重しましょう。というのは冗談ですが、例えばエスペラント用のファイルも上記の方法で容易に作成可能です。エスペラント書きのウェブログを公開する場合等にもご活用ください。
蛇足ですが、Wikipediaの日本語化関連の記述がずっと更新されていなかったようなので、日本語版に関する記述を加えておきました。
ほんとうにありがとうございました。
バッチリ希望通りに、変更できました。
Comment by 591 — 2007/12/31 月曜日 @ 09:11:06
おはようございます。616です。
無事解決されたようで何よりです。おめでとうございます。
Comment by Gardejo — 2007/12/31 月曜日 @ 09:49:14
日本語リソースを入れました
現在、このBlogでは本家版WordPress 2.3を使っています。おおよその見当はつくので困りはしないのですが、メッセージは英語のまま。そこで、日本語リソースを入れてみました。ブログを訪…
トラックバック by Internet Zone::WordPressでBlog生活 — 2008/01/06 日曜日 @ 21:34:28
すいません、少々お伺いしたいことがあるのですが
自分は1、1月 2008という表記をAugust 2008というようにしたい
2、日曜日と土曜日をそれぞれ赤色と青色の文字にしたい
この2点についてどうにかできないかと苦心しているのですが
こちらの記事をそのまま応用しようとしてもどうやら無理なようで
かといってphp等は専門外なのでどうしたものかと思っているのですが
何か御存知ないでしょうか?
不躾で申し訳ありませんがもし何か御存知でしたら御教授願いたいのですが。。
Comment by pha — 2008/01/11 金曜日 @ 11:57:57
phaさん、こんばんは。
2.については、記事を設けました。同様にgeneral-template.phpを直接変更するものです。
http://blogo.ermitejo.com/2008/01/11/sxangu_koloron_en_kalendaro_de_wordpress/
1.について、2008年1月の時に日本語版のデフォルトで「1月 2008」となっている表記を「August 2008」(「January 2008」でなく)に変えたいということでしょうか。
もし「January 2008」であるなら、ja.poの6673行目付近からの”1月”となっている部分を元通り”January”にすれば良いです。その他の月も同様です。
ただし、他で「1月」と表示させたい場合も芋蔓式に「January」となってしまいます。
また、もしAugustにする場合には、”January”に戻すのではなく”August”に変えます。
私もPHPはWordPressを触り始めてから触ったに等しいので、かなり専門外です。それでも何とかなるものですので、どうぞ楽しんでください。
Comment by Gardejo — 2008/01/11 金曜日 @ 23:16:35
[...] Wordpress2.3.2日本語版への移行を参考に設定 /wp-contents/languages/ja.moで日本語化しているらしいので、ここを書き換えるらしいのだが、テキストエディタでja.moを開いても、文字化けして何も [...]
ピンバック by WordPress2.3.2のカレンダー日本語化 — 2008/01/18 金曜日 @ 22:50:27
[...] WordPress 2.3.2 日本語版への移行 [...]
ピンバック by aozora blog 2» ブログアーカイブ » Wordpress のマイナーバージョンアップ — 2008/02/11 月曜日 @ 20:49:43
[...] ャプションです。 同じくErmitejoさんのお力をお借りする。 http://blogo.ermitejo.com/2007/12/30/mi_transiras_al_japana_eldono_de_wordpress/#commentlist 1. /wp-includes/general-template.phpの547行目を以下のとおりに [...]
ピンバック by Green web6 » Blog Archive » カレンダーの不具合を修正;WordPress — 2008/03/11 火曜日 @ 03:27:45