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

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

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

関連記事

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

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

ブルー・オレンジ・ピンクと選べるテーマ「Bouquet」をカスタマイズ

プレビューはこちら ダウンロード 目次 ヘッダー画像の高さを変更 アイキャッチをアップロード h1タグがやたら多いので最適化 画像をレスポンシブ対応 フォント「Sorts Mill

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

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

no image

「固定ページ」ウィジェット カスタマイズ

「固定ページ」ウィジェットは、そのままではありますが、固定ページの一覧をウィジェットに表示してくれます。 カスタマイズは、管理画面よりいくつかできるようです。 目次 特定の(固定)ページ

折りたたみ要素やタブなどをショートコードで実装できるプラグイン「Arconix Shortcodes」

「Arconix Shortcodes」は、投稿内にショートコードでいろいろな要素を実装できるプラグインです。ダウンロードはこちらからできます。ダウンロード・解凍してpluginsディレクトリにアップ

no image

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

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

Lightbox (画像ポップアップ) プラグイン

WordPressで使用できるLightbox(画像ポップアップ)プラグインのまとめ ひとまずインストール・有効化するだけで使用可能です。(3.7/3.8/3.9) blueimp lig

「カテゴリー」ウィジェット カスタマイズ

「カテゴリー」ウィジェットは、管理画面ではあまりカスタマイズできません。必要であれば、フックやプラグインを用いて表示設定などの変更を行うことができます。 目次 「カテゴリー」ウィジェットの追加

Twenty Twelve カスタマイズ

何点かTwentyTwelveのカスタマイズについてご質問をいただきましたのでここでまとめてみます。 目次 子テーマのつくりかた 他記事へのリンク アーカイブタイトル("カテゴリー別アーカ

Google Code Prettifyを使用してソースコードを表示をしてくれる「Prettify Code Syntax」

Prettify Code Syntaxは、WordPressでGoogle Code Prettifyを使用してソースコードを表示してくれるプラグインです。 プラグインダウンロード Google

Comment

Message

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

*

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

    PAGE TOP ↑