翻訳ファイルの子テーマ化

子テーマでfunctions.phpなどを変更していくと翻訳すべき項目にぶつかっていくと思います。例を挙げると_()の部分で、Wordpressが翻訳を行ってくれる部分です。
個人的には、日本語のみでブログを運用していく場合は、子テーマのfunctions.phpに日本語で直書きしてもいいような気がしないでもないですが。
子テーマのfucntions.phpで定義した関数が翻訳必要な場合、子テーマで翻訳ファイルを読み込む必要があります。なぜなら、Wordpressの呼び出し順序として子テーマfunctions.php→親テーマfunctions.phpとなり、翻訳ファイルの読み込みは親テーマ内で行われるため、子テーマ用に読み込ませる翻訳ファイルが必要になります。子テーマ内で親テーマの翻訳ファイルを読み込ませればいい(やったことないです)のですが、どうせなら、子テーマ内で必要なものは子テーマ専用の翻訳ファイルに記述して、その他は親テーマ任せるということにすれば、管理がグっと楽になります。これは、そもそもの「子テーマ」という考え方そのものです。
そこで、ここでは子テーマに翻訳ファイルを作成し、読み込むようにすることをやっていきます。
翻訳するための情報はWordpressでは、moファイル(バイナリ)なるものに格納されています。主なものとして以下があります。
- 「ja.mo」 ー WordPress本体用の翻訳ファイル
- 「{テーマ名}-ja.mo」 ー テーマ用の翻訳ファイル
- 「~.mo」 ー プラグイン用の翻訳ファイル
moファイルはpo(テキスト)からコンパイルすることで使用できるようになります。
代表的なコンパイラとしてはPoeditがありますのでダウンロードしてインストールしてみてください。ここからダウンロードできます。
TwentyTwelveの場合は、テーマ用の翻訳ファイルtwentytwelve-ja.poが/wp-content/languages/themes/にあると思いますので、これをベースに作成するといいと思います。
例として、ここで行った変更を例に手順を追っていきます。
1. poファイルに新規追加する
twentytwelve-ja.poをテキストエディタで開くと、文字の羅列があると思います。今回変更したもので一例を挙げると、以下の部分があると思います。
#: functions.php:352 msgid "This entry was posted in %1$s and tagged %2$s on %3$s<span class=\"by-author\"> by %4$s</span>." msgstr "カテゴリー: %1$s | タグ: %2$s | 投稿日: %3$s | <span class=\"by-author\">投稿者: %4$s</span>"
WordPressを日本語で使用している場合は、*msgidからmsgstrへWordpressが翻訳を行います。
今回 This entry was posted in %1$s and tagged %2$s on %3$s .
を This entry was posted in %1$s and tagged %2$s .
に変更したので、それ用のものを挿入します。
以下は例です。(投稿日の部分を消しました。)
#: functions.php: child theme msgid "This entry was posted in %1$s and tagged %2$s <span class="by-author"> by %4$s</span>." msgstr "カテゴリー: %1$s | タグ: %2$s | <span class=\"by-author\">投稿者: %4$s</span>"
2. po -> moへコンパイルする
このファイルをja.poにリネームしてPoeditで開いて下さい。左に翻訳前(英語)と翻訳後(日本語)があると思います。追加した内容が間違いないか確認して「保存」ボタンを押してください。日本語側は、ここで編集もできます。
うまくいったら、同じフォルダにja.moファイルが作成されているはずなので/wp-content/themes/[子テーマ]/languagesにコピーして下さい。
3. 子テーマに子テーマ用翻訳ファイルを読み込むようにする
functions.php(子テーマ)に、子テーマの翻訳ファイルを読み込むようにします。このまま追記して下さい。
また、load_child_theme_textdomainは「ja.mo」など言語記述のみのファイル名だけ読み込むを行うようなので気をつけて下さい。
load_child_theme_textdomain
add_action( 'after_setup_theme', 'child_setup'); function child_setup() { // 子テーマフォルダ/languages下のmoファイルを読み込む load_child_theme_textdomain( 'tt_child', get_stylesheet_directory() . '/languages'); }
ポイントは、'tt_child'の部分です。名前はなんでもいいですが、__( '翻訳対象のテキスト', 'tt_child');と第二引数に指定する必要があります。ここの投稿日の非表示もしくは投稿者の非表示の部分のソースを参照。
関連記事
-
-
Twenty Twelve 投稿日・投稿者を非表示に
TwentyTwelveのちょっとした部分をカスタマイズする方法を紹介していきます。 また、子テーマで出力部分を変更する際に、翻訳が必要な部分//_()の部分がでてきますので、以下の投稿も参考に
-
-
パーマリンク・スラッグなどURL カスタマイズ
管理画面からの設定 管理画面の「設定」→「パーマリンク設定」で以下の設定が可能です。 共通設定 色々なタグの組み合わせで、URLをカスタマイズできます。 パーマリンク設定の画面に利用可
-
-
Google+ プラスワン(+1)ボタンの設置
Google+の+1ボタンの設置はプラグインを使用しなくても容易に実装できるようです。ソーシャルボタン設置のプラグインはこちらにいちおうまとめています。 プラスワン(+1)ボタンの設置コード 公式
-
-
新年早々やらかした
あけましておめでとうございます。 タイトルどおり、新年早々やらかしてしまいましたのでご報告まで。どうやらかしたかというと、確認用サイトとこのブログを間違えてしまいWordpress 3.5にアップグ
-
-
ie.cssの子テーマ化など Twenty Twelve 1.1での変更点
TwentyTwelveが1.0から1.1にアップデートされたので、勉強もかねていくつか変更点を洗ってみました。 ie.cssを外出し pubdateの削除 rel="generator"
-
-
条件を付けて訪問時に開くポップアップを実装できる「WordPress Popup」
「WordPress Popup」は、ユーザの訪問時にポップアップを開くように実装できるプラグインです。それぞれ条件によって開くかどうかを設定することができます。 ダウンロード / サンプル イン
-
-
ソーシャルボタン設置 プラグイン
各種メジャーなソーシャルメディアボタンを設置できるプラグイン WP Social Bookmarking Light 国産プラグイン。国産ゆえ、はてなボタンの設置も可能 ダウンロード Twe
-
-
Twenty Ten カスタマイズ
Twenty Tenのカスタマイズについてのまとめです。 目次 コンテンツナビゲーション 非表示 「投稿日」を非表示 「作成者(投稿者)」を非表示 "コメントをどうぞ"("leave a
-
-
Tumblrの投稿をウィジェットに表示できる「Tumblr Widget」
このブログでは、サイドバーウィジェットに「Tumblr」に投稿したブックマーク一覧を表示させています。プラグインは「Tumblr Widget」を使用しています。ダウンロード 「This plugi
-
-
Twenty Fourteen "コメントをどうぞ"の非表示と変更方法
Twenty Fourteenでは、デフォルトで投稿ページと各アーカイブページの各投稿のメタ情報欄に「コメントをどうぞ」というコメントフォームへのリンクが設置されます。 それぞれ、コメントが0件の場
- PREV
- 入力数値の桁区切り挿入
- NEXT
- ソーシャルボタン設置 プラグイン
Comment
[…] jQuery( document ).ready( function($ ) { jQuery( '#bsc-slideshow').nivoSlider({ effect: 'random', directionNav: true, controlNav: true, } ); } ); […]
[…] WooCommerceの翻訳を自分の意図したものに変えたい時は翻訳ファイル自体を子テーマ化して変更する方法もありますが、受託開発でテーマにインクルードしたい場合もあります。 その時は […]
[…] http://kwski.net/wordpress/1075/ […]