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

子テーマで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 by %4$s.
を This entry was posted in %1$s and tagged %2$s by %4$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>"
%1$sがカテゴリー・%2$sにタグ・%3$sに投稿日・%4$sに投稿者が出力されるので、それさえ守れば変更内容は自由です。

2. po -> moへコンパイルする

このファイルをja.poにリネームしてPoeditで開いて下さい。左に翻訳前(英語)と翻訳後(日本語)があると思います。追加した内容が間違いないか確認して「保存」ボタンを押してください。日本語側は、ここで編集もできます。
うまくいったら、同じフォルダにja.moファイルが作成されているはずなので/wp-content/themes/[子テーマ]/languagesにコピーして下さい。
poedit

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');と第二引数に指定する必要があります。ここの投稿日の非表示もしくは投稿者の非表示の部分のソースを参照。

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

関連記事

新年早々やらかした

あけましておめでとうございます。 タイトルどおり、新年早々やらかしてしまいましたのでご報告まで。どうやらかしたかというと、確認用サイトとこのブログを間違えてしまいWordpress 3.5にアップグ

サイトのキャプチャをショートコードで生成してくれる「Browser Shots」

外部のサイトを紹介する際にそのサイトのキャプチャが添えられているとイメージがつかみやすくなりクリックのモチベーションが上がるような気がします。 今回は、ショートコード一行でサイトのスクリーンショット

コメントフォーム・リストのカスタマイズ

コメント投稿部分は、基本的にはどのテーマでも同じフォームを出力してテーマのstyle.cssで外観を変えています。コメントフォーム欄をカスタマイズするには、プラグインもしくはフックを用いてカスタマイズ

no image

スライダー・ギャラリー プラグイン

WordPressにギャラリーが実装できるプラグインをまとめてみました。 順番はオススメ順です。 Simple Responsive Slider #ショートコード #テンプレート #ウ

テーマ ブックマーク 2013

2012 フリーテーマ トップ 20 Top 20 Free WordPress Themes of 2012 http://ow.ly/wMGjZ ハイクオリティフリーテーマ 3月 20 Top

no image

「最近の投稿」ウィジェット カスタマイズ

目次 ウィジェットを削除 標準の設定 特定のカテゴリーに属する投稿を除外 カスタマイズ プラグイン 「最近の投稿」ウィジェットを削除 「最近の投稿」ウィジェット

投稿タイトルのtitle属性を削除など Twenty Twelve 1.2での変更点

TwentyTwelveが1.1から1.2にアップデートされたので、いくつか変更点を洗ってみました。 (*全てを網羅しているわけではありません) 全ての変更部分は、こちらに記載されています。

Twenty Fifteen カスタマイズ

WordPress 4.1のデフォルトテーマである「Twenty Fifteen」は三世代前の「Twenty Twelve」に似たテーマで非常にシンプルなテーマにまとまっていますね。カスタマイズをまと

Twenty Thirteen ナビゲーションメニューを固定

ナビゲーションメニューを固定にしてみました。下方にスクロールしても最上部に固定されるやつです。 スクリプト 以下のjsファイルを用意して下さい。 nav要素のidは、ソースもしくはheade

「Contact Form 7」 メッセージの送信に失敗~

この修正はWordPress 3.5で行われているようです。(~3.4.2) Contact Form 7で以下のエラーメッセージが出る場合は、確認してみて下さい。 「メッセージの送信に失敗

Comment

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

    PAGE TOP ↑