WordPress wp-content/languages/ja.po で翻訳されている日本語を変えたいとき

あるサイトをつくっていてWordPressのデフォルトで翻訳されている部分を変更したいという要望を受けました。そういった場合の変更方法はXOOPS Cubeだととても簡単だったので気軽に受けたのですが、色々試してみてこれはちょっと…面倒かも?と思いました。
languagesを変更するという方法を試した結果、最終的にはちょっとお手軽的な方法でja.poで翻訳されている日本語を変えてみたのでその経緯について書きます。

ウィジェットで表示している アーカイブ という日本語を変更したい

WordPressをインストールするとデフォルトでウィジェットに「アーカイブ」が表示されます。これは投稿を年月別に表示するというウィジェットなのですが、アーカイブ=年月別の投稿が表示されているということがわかりにくい客層もあると思います。というか私も年月が書いてなければぴんと来ない感じです(^_^;。

そこで「アーカイブ」となっているところを「月別」と変更したい、ということを依頼されました。

まず 「アーカイブ」 はどこで翻訳されているのかを調べてみました。

wp-content\languages\ja.po に、

このように翻訳指定されています。これを以前やった(「Poeditを使って多言語対応ファイルをカスタマイズする」)ように、編集してmoファイルを作り直せば出来るはずです。

実際にこうやってみて変わるのは分かったのですが、この部分はWordPressの本体部分なのでアップデートがあるたびに上書きの可能性があります。なのでここを修正してもアップデートをすると元に戻る可能性があります。

ということでこの方法ではない別の方法を検討してみました。

子テーマのlanguagesの指定

WordPress Codex 日本語版 子テーマ

を見て、子テーマでlanguageを使う方法を調べました。

子テーマにlanguagesというフォルダを作って、 ja.po というファイルを置きます。

ja.poは

このように記述して保存。さらに子テーマのfunctions.phpに

このように記述します。任意に付ける名称 my-child-theme という部分がこの言語ファイルのIDのようなものになります。

子テーマ内で使っているテンプレートに、

このように書けば指定した部分には 月別 と表示されます。しかし、今回修正したいウィジェットの部分はテーマで表示しているところではないため、このように子テーマのlanguagesを参照するように書く事ができません(>_<)。

この方法がわかって、今後のためには役立ちそうですが(子テーマではimportを使わない方法が推奨されてるということも知りました(^_^;)、今回やりたいことには使えそうにありませんでした。

表記さえ変わればいい、ということで割り切ってjQueryで書き換えました

と、ここまで色々考えたり試してみた結果、表記さえ変わればいいなら、jQuery要素の内容を置き換えちゃえばいいのかな?と割り切ってやってみたところ問題なく(?)変えられましたのでその方法を書きます。

子テーマのfunctions.php

この記述を追加します。

wp_enqueue_script( ‘jquery’ );

でjQueryを使えるようにしてその後に、子テーマのjsというフォルダにある、ryus_custom.js というファイルを読み込むような指定です。

ryus_custom.js は

こんな内容になっています。 widget-title というclassで色々なウィジェットが表示されているので、 each でそれぞれの要素を一つずつ見ます。もし、表示されている文字が アーカイブ だったときは 月別 と書き換える という処理を記述してあります。

これで実行してみると、

このようにアーカイブとなっていたところが月別に変わりました。

この方法で例えば

メタ情報 も意味がいまひとつ分からないので 管理情報 に変更することも

こんなコードを追加すれば、

可能です。

まとめ:結果的にはこんな形になりました

結果的にはこんな形になりましたが、languagesのことをちゃんと考えたのは今回が初めてだったので色々勉強になりました。またjQueryでとりあえず表示を変える方法も複数要素があったときはこんな感じだなぁと自分でもあとでまた使えそうなコードが書けたので満足です(^^)/

兎本美佳
ブログを見た人がそのままできたらいいなと思って、できるだけ丁寧に書いています。blogに書いたようなネタの有償対応のご相談は「ゆうそうと」へいただければと思います(^^)/ 無償での対応をご希望の場合は、コメントをいただけましたら可能な場合はコメントを返させていただきます。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサー広告
トップへ戻る