翻訳ファイルの子テーマ化
子テーマで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 Fourteen クレジットを非表示・変更方法
Twenty Fourteenにも最下部に「Proudly powered by WordPress」というコピーライトが表示されます。それを削除もしくは変更するには、footer.phpを編集して行
-
アバターサイズの変更など Twenty Twelve 1.3での変更点
Twenty Twelve 1.3 での変更点 アバターサイズの設定ロジック変更 ヘッダ画像の設定ロジック変更 全ての変更点はこちら Changes from twentytwel
-
Pocketボタンの設置
日本のブログでは、4大SNS(Twitter, はてな, Facebook, Google+)に加えて最近では、Pocket(以前は、Read it later)もよく見かけますよね。追加してみました
-
Twenty Fourteen 「投稿日」や"先頭固定表示"を非表示
日付を表示する部分は、全てtwentyfourteen_posted_onに集約されています。該当部分をコメントアウトしたかたちで子テーマのfunctions.phpに追加して下さい。 「投稿日
-
Twenty Eleven カスタマイズ
目次 author-info 消す 作成者(投稿者)を消す 投稿者情報を表示しない proudly powered by wordpressのリンクをコピーライトに変更
-
管理画面のCSSをカスタマイズ
管理画面のスタイルを変更したくなったので、カスタマイズしてみました。一例として以下を取り上げてみます。 「投稿一覧」の画面でカスタムフィールドが追加されていくと、そんなに幅が必要のないところが長くな
-
Twenty Twelve "コメントをどうぞ"を消す
今回は「Twenty Twelve」で標準で投稿タイトル下に出力されるリンク"コメントをどうぞ"|"Leave a reply"を非表示にする方法を。(コメントやピンバックが1件の場合は"1件のフィー
-
画像マウスオーバーでキャプションを表示
メディアをアップロードした際に、「キャプション」項目にテキストを設定された画像を挿入した場合はキャプションショートコードが生成され、ページ内の各画像下にその設定したテキストが表示されます。 今回
-
ブルー・オレンジ・ピンクと選べるテーマ「Bouquet」をカスタマイズ
プレビューはこちら ダウンロード 目次 ヘッダー画像の高さを変更 アイキャッチをアップロード h1タグがやたら多いので最適化 画像をレスポンシブ対応 フォント「Sorts Mill
-
Twenty Thirteen テーマ用フォント "Source Sans Pro" / "Bitter"の使用を止
TwentyThirteenでは、テーマ用のフォントとして「Source Sans Pro」と「Bitter」というフォントをGoogleフォントから引っ張ってきて使用されるようです。 ちなみにどの
- PREV
- 入力数値の桁区切り挿入
- NEXT
- ソーシャルボタン設置 プラグイン
Comment
[…] jQuery( document ).ready( function($ ) { jQuery( '#bsc-slideshow').nivoSlider({ effect: 'random', directionNav: true, controlNav: true, } ); } ); […]
[…] WooCommerceの翻訳を自分の意図したものに変えたい時は翻訳ファイル自体を子テーマ化して変更する方法もありますが、受託開発でテーマにインクルードしたい場合もあります。 その時は […]
[…] http://kwski.net/wordpress/1075/ […]